SpyBara
Go Premium

Documentation 2026-10-01 23:59 UTC to 2026-10-02 11:59 UTC

88 files changed +6,456 −4,151. View all changes and history on the product overview
2026
Fri 2 13:00 Thu 1 23:59

accessibility.md +11 −5

Details

44| [`CLAUDE_AX_SCREEN_READER`](/docs/zh-TW/env-vars#variables) | 環境變數 | 從您設定它的殼層啟動的工作階段的螢幕閱讀器模式。 |44| [`CLAUDE_AX_SCREEN_READER`](/docs/zh-TW/env-vars#variables) | 環境變數 | 從您設定它的殼層啟動的工作階段的螢幕閱讀器模式。 |

45| [`axScreenReader`](/docs/zh-TW/settings-reference#axscreenreader) | 設定 | 當設為 `true` 時,每個工作階段的螢幕閱讀器模式。 |45| [`axScreenReader`](/docs/zh-TW/settings-reference#axscreenreader) | 設定 | 當設為 `true` 時,每個工作階段的螢幕閱讀器模式。 |

46| [`CLAUDE_AX_STARTUP_QUIET_MS`](/docs/zh-TW/env-vars#variables) | 環境變數 | Claude Code 在確認行之後等待多長時間,然後在螢幕閱讀器模式中繪製第一個提示。需要 Claude Code v2.1.217 或更新版本。 |46| [`CLAUDE_AX_STARTUP_QUIET_MS`](/docs/zh-TW/env-vars#variables) | 環境變數 | Claude Code 在確認行之後等待多長時間,然後在螢幕閱讀器模式中繪製第一個提示。需要 Claude Code v2.1.217 或更新版本。 |

47| [`CLAUDE_AX_PREPARK_MS`](/docs/zh-TW/env-vars#variables) | 環境變數 | Claude Code 等待多長時間,游標位於行的開始,然後在螢幕閱讀器模式中寫入新的或變更的行。需要 Claude Code v2.1.233 或更新版本。 |47| [`CLAUDE_AX_PREPARK_MS`](/docs/zh-TW/env-vars#variables) | 環境變數 | 設定後,Claude Code 在螢幕閱讀器模式中寫入新的或變更的行之前,將終端機游標停留在目前行開頭的毫秒數。需要 Claude Code v2.1.233 或更新版本。 |

48| [`CLAUDE_CODE_ACCESSIBILITY`](/docs/zh-TW/env-vars#variables) | 環境變數 | 當您將其設定為 `1` 時,終端游標對於螢幕放大鏡(例如 macOS Zoom)保持可見。游標跟隨輸入插入符號,在 Claude Code v2.1.218 或更新版本上,跟隨功能表和面板(例如 `/config` 和 `/plugin`)中的反白列。 |48| [`CLAUDE_CODE_ACCESSIBILITY`](/docs/zh-TW/env-vars#variables) | 環境變數 | 當您將其設定為 `1` 時,終端游標對於螢幕放大鏡(例如 macOS Zoom)保持可見。游標跟隨輸入插入符號,在 Claude Code v2.1.218 或更新版本上,跟隨功能表和面板(例如 `/config` 和 `/plugin`)中的反白列。 |

49| [`prefersReducedMotion`](/docs/zh-TW/settings-reference#prefersreducedmotion) | 設定 | 當設為 `true` 時,減少或沒有微調器、閃爍和其他動畫。 |49| [`prefersReducedMotion`](/docs/zh-TW/settings-reference#prefersreducedmotion) | 設定 | 當設為 `true` 時,減少或沒有微調器、閃爍和其他動畫。 |

50| [`theme`](/docs/zh-TW/settings-reference#theme) | 設定 | 介面顏色,包括色盲友善的 `dark-daltonized` 和 `light-daltonized` 主題。您也可以使用 [`/theme`](/docs/zh-TW/commands#all-commands) 選擇一個。 |50| [`theme`](/docs/zh-TW/settings-reference#theme) | 設定 | 介面顏色,包括色盲友善的 `dark-daltonized` 和 `light-daltonized` 主題。您也可以使用 [`/theme`](/docs/zh-TW/commands#all-commands) 選擇一個。 |


60* 沒有僅限顏色的提示60* 沒有僅限顏色的提示

61* 沒有未變更內容的重繪。進度微調器呈現為靜態文字61* 沒有未變更內容的重繪。進度微調器呈現為靜態文字

62* Claude 回覆中的表格讀作 `Header: value` 句子,而不是方框字元網格62* Claude 回覆中的表格讀作 `Header: value` 句子,而不是方框字元網格

63* 差異以純文字讀出,逐行以 `+` 和 `-` 標記新增和移除的行,因此您可以在回答檔案編輯核准提示之前,先聽到提議的變更

63 64 

64Claude Code 將其列印到終端機捲軸的所有內容都保留下來,因此您可以使用螢幕閱讀器的檢視命令或終端機的搜尋功能重新閱讀較早的回合。Claude Code 在螢幕閱讀器模式中忽略 [`tui` 設定](/docs/zh-TW/settings-reference#tui)。除了在[已知限制](#known-limitations)下列出的附加背景工作階段外,它列印捲動文字而不是[全螢幕呈現](/docs/zh-TW/fullscreen)。65Claude Code 將其列印到終端機捲軸的所有內容都保留下來,因此您可以使用螢幕閱讀器的檢視命令或終端機的搜尋功能重新閱讀較早的回合。Claude Code 在螢幕閱讀器模式中忽略 [`tui` 設定](/docs/zh-TW/settings-reference#tui)。除了在[已知限制](#known-limitations)下列出的附加背景工作階段外,它列印捲動文字而不是[全螢幕呈現](/docs/zh-TW/fullscreen)。

65 66 

66Claude Code 也在兩個位置等待,以便您的螢幕閱讀器能夠跟上:67Claude Code 在啟動時列印[確認行](#turn-on-screen-reader-mode)後,會等待 3 秒再繪製提示,以便您的螢幕閱讀器可以完成該行。按任何鍵結束等待。若要變更等待的長度,請設定 [`CLAUDE_AX_STARTUP_QUIET_MS`](/docs/zh-TW/env-vars#variables)。

67 

68* Claude Code 列印確認行後,在繪製提示之前等待 3 秒,以便您的螢幕閱讀器可以完成該行。按任何鍵結束等待。若要變更等待的長度,請設定 [`CLAUDE_AX_STARTUP_QUIET_MS`](/docs/zh-TW/env-vars#variables)。

69* 在 Claude Code 寫入新行或變更的行(例如提示或更多 Claude 的回覆)之前,它會將游標移到行的開始並等待 50 毫秒。您的螢幕閱讀器隨後從其第一個字元讀取該行。您在輸入行末尾輸入或刪除的字元會立即出現。若要變更等待的長度,請設定 [`CLAUDE_AX_PREPARK_MS`](/docs/zh-TW/env-vars#variables)。

70 68 

71文字記錄中的每條訊息都以您的螢幕閱讀器宣佈的標籤開頭,命名其內容:您的訊息、Claude 的回覆和思考、工具活動、錯誤和警告以及提示。這些標籤也可搜尋,因此您可以透過搜尋終端機的捲軸在文字記錄的各個部分之間跳轉:69文字記錄中的每條訊息都以您的螢幕閱讀器宣佈的標籤開頭,命名其內容:您的訊息、Claude 的回覆和思考、工具活動、錯誤和警告以及提示。這些標籤也可搜尋,因此您可以透過搜尋終端機的捲軸在文字記錄的各個部分之間跳轉:

72 70 


94 92 

95當您使用 `Shift+Tab` 循環[權限模式](/docs/zh-TW/permission-modes)時,Claude Code 會宣佈您登陸的權限模式,例如 `[plan mode on]` 或 `[accept edits on]`。Claude Code 列印公告一次,不會在稍後的重繪上重複。93當您使用 `Shift+Tab` 循環[權限模式](/docs/zh-TW/permission-modes)時,Claude Code 會宣佈您登陸的權限模式,例如 `[plan mode on]` 或 `[accept edits on]`。Claude Code 列印公告一次,不會在稍後的重繪上重複。

96 94 

95<h3 id="read-earlier-output-without-losing-your-place">

96 閱讀較早的輸出而不失去目前位置

97</h3>

98 

99如果您在閱讀較早的輸出時,螢幕閱讀器跳回提示,這是因為它正在跟隨終端機游標。Claude Code 每次寫入新文字時,都會將終端機游標移回提示。

100 

101若要在閱讀時保持目前位置,請停止讓螢幕閱讀器跟隨終端機游標。在 NVDA 中,按 `NVDA+6` 可停止檢視游標跟隨終端機游標。再按一次 `NVDA+6` 即可重新開啟跟隨。

102 

97<h3 id="jump-between-turns">103<h3 id="jump-between-turns">

98 在回合之間跳轉104 在回合之間跳轉

99</h3>105</h3>

admin-setup.md +23 −2

Details

118如果您的成員透過 claude.ai 或 Anthropic API 登入,且您使用 Claude Enterprise 方案,您也可以從組織的管理設定中管理模型,而無需部署任何內容:118如果您的成員透過 claude.ai 或 Anthropic API 登入,且您使用 Claude Enterprise 方案,您也可以從組織的管理設定中管理模型,而無需部署任何內容:

119 119 

120* [Organization model restrictions](/docs/zh-TW/model-config#organization-model-restrictions):停用個別模型。在伺服器端執行。120* [Organization model restrictions](/docs/zh-TW/model-config#organization-model-restrictions):停用個別模型。在伺服器端執行。

121* [Organization default model](/docs/zh-TW/model-config#organization-default-model):設定新會話啟動時使用的模型。使用者可以變更它,除非您的組織強制執行預設值,這僅適用於有限的組織集合;請詢問您的 Anthropic 帳戶團隊。121* [Organization default model](/docs/zh-TW/model-config#organization-default-model):設定新工作階段啟動時使用的模型。成員仍可切換模型。若要在啟動時將他們恢復為您的預設模型,請開啟該節所述的覆寫設定。若要限制他們可選擇的模型,請使用[組織模型限制](/docs/zh-TW/model-config#organization-model-restrictions)。

122* [Organization effort limits](/docs/zh-TW/model-config#organization-effort-limits):按角色限制工作量級別。在伺服器端執行。122* [Organization effort limits](/docs/zh-TW/model-config#organization-effort-limits):按角色限制工作量級別。在伺服器端執行。

123 123 

124這些控制都不會到達 Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 或 [Claude Platform on AWS](/docs/zh-TW/claude-platform-on-aws) 上的會話。在這些提供者上,改用受管設定:`availableModels` 用於限制、`model` 用於預設值,以及 [`maxEffortLevel`](/docs/zh-TW/settings-reference#maxeffortlevel) 用於工作量限制。124這些控制都不會到達 Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 或 [Claude Platform on AWS](/docs/zh-TW/claude-platform-on-aws) 上的會話。在這些提供者上,改用受管設定:`availableModels` 用於限制、`model` 用於預設值,以及 [`maxEffortLevel`](/docs/zh-TW/settings-reference#maxeffortlevel) 用於工作量限制。

125 125 

126[Cloud sessions](/docs/zh-TW/claude-code-on-the-web)有其自己的管理表面:在管理設定中的 Cloud environments 頁面上,擁有者建立[組織共享環境](/docs/zh-TW/cloud-environments#organization-shared-environments),設定成員雲端會話的[網路存取級別](/docs/zh-TW/cloud-environments#network-access)、環境變數和設定指令碼。擁有者在 [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code) 分別選擇組織的預設環境。126[Cloud sessions](/docs/zh-TW/claude-code-on-the-web) 在 claude.ai 上有其專屬的管理介面:

127 

128* **Cloud environments 頁面**:擁有者建立[組織共享環境](/docs/zh-TW/cloud-environments#organization-shared-environments),設定成員雲端工作階段的[網路存取級別](/docs/zh-TW/cloud-environments#network-access)、環境變數和設定指令碼。

129* **預設環境**:擁有者在 [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code) 另外選擇組織的預設環境。

130* **GitHub 頁面**:請參閱[已連結的 GitHub 帳戶](#connected-github-accounts),以了解連結至您組織的 GitHub 帳戶。

127 131 

128權限規則和沙箱涵蓋不同的層。拒絕 WebFetch 會阻止 Claude 的 fetch 工具,但如果允許 Bash,`curl` 和 `wget` 仍然可以到達任何 URL。沙箱透過在作業系統級別執行的網路網域允許清單來彌補這一差距。132權限規則和沙箱涵蓋不同的層。拒絕 WebFetch 會阻止 Claude 的 fetch 工具,但如果允許 Bash,`curl` 和 `wget` 仍然可以到達任何 URL。沙箱透過在作業系統級別執行的網路網域允許清單來彌補這一差距。

129 133 

130有關這些控制防禦的威脅模型,請參閱 [Security](/docs/zh-TW/security)。134有關這些控制防禦的威脅模型,請參閱 [Security](/docs/zh-TW/security)。

131 135 

136<h3 id="connected-github-accounts">

137 已連結的 GitHub 帳戶

138</h3>

139 

140在 Team 和 Enterprise 方案中,[**Admin settings > GitHub**](https://claude.ai/admin-settings/github) 會列出透過 [Claude GitHub App](https://github.com/apps/claude) 連結至您 Claude 組織的 GitHub 組織和個人帳戶。Claude Code、[Claude Tag](https://claude.com/docs/claude-tag/admins/configure-github) 和 Claude Security 共用此清單。開啟此頁面需要您在 Claude 組織中具備管理員角色。

141 

142管理員或成員都可以連結帳戶:

143 

144* **管理員連線**:管理員在該頁面上點擊 **Connect**,並在 GitHub 組織上安裝 Claude GitHub App。以此方式連結組織,需要一位同時是該 GitHub 組織擁有者及您 Claude 組織管理員的人員。

145* **成員連線**:當成員將其 GitHub 帳戶連接至 Claude 時(例如在[設定雲端工作階段](/docs/zh-TW/web-quickstart#connect-github)期間),Claude 會連結該成員所擁有、且已安裝 Claude GitHub App 的 GitHub 帳戶。這可能包括其個人帳戶以及其擁有的 GitHub 組織。

146 

147標示為 **Not linked** 的列來自您自己的 GitHub 登入。這是您在 GitHub 上可以看到、且已安裝 Claude GitHub App 的帳戶。

148 

149若要將帳戶從您的 Claude 組織取消連結,請開啟該列的選單並選取 **Unlink from this workspace**。取消連結後,Claude GitHub App 仍會保留安裝在 GitHub 上,而當該帳戶的任一擁有者下次將 GitHub 連接至 Claude 時,該帳戶會再次被連結。若要避免其再次被連結,請在 GitHub 上從該帳戶解除安裝 Claude GitHub App。

150 

151在 Enterprise 方案中,用於連結和取消連結的 [Compliance API](https://platform.claude.com/docs/en/api/compliance/activities/list) 活動類型為 `github_app_installation_linked` 和 `github_app_installation_unlinked`。

152 

132<h2 id="set-up-usage-visibility">153<h2 id="set-up-usage-visibility">

133 設定使用情況可見性154 設定使用情況可見性

134</h2>155</h2>

Details

325 325 

326長時間執行代理程式的幾個策略:326長時間執行代理程式的幾個策略:

327 327 

328* **為子任務使用子代理程式。** 每個子代理程式以新鮮的對話開始(沒有先前的訊息歷史記錄,儘管它確實加載自己的系統提示和專案級上下文,如 CLAUDE.md)。它看不到父級的回合,只有其最終回應作為工具結果返回給父級。主代理程式的上下文增長該摘要,而不是完整的子任務成績單。請參閱 [子代理程式繼承什麼](/docs/zh-TW/agent-sdk/subagents#what-subagents-inherit) 以了解詳細資訊。328* **為子任務使用 subagent。** 每個 subagent 以全新的對話開始(沒有先前的訊息歷史記錄,儘管它確實載入自己的系統提示詞和專案級上下文,如 CLAUDE.md)。它看不到父級的回合,只有其最終回應會返回給父級。主 agent 的上下文只增加該摘要,而不是完整的子任務逐字稿。請參閱 [subagent 繼承什麼](/docs/zh-TW/agent-sdk/subagents#what-subagents-inherit) 以了解詳細資訊。

329* **選擇性地使用工具。** 每個工具定義都佔用上下文空間。在 [`AgentDefinition`](/docs/zh-TW/agent-sdk/subagents#agentdefinition-configuration) 上使用 `tools` 欄位將子代理程式限制在它們需要的最小集合。329* **選擇性地使用工具。** 每個工具定義都佔用上下文空間。在 [`AgentDefinition`](/docs/zh-TW/agent-sdk/subagents#agentdefinition-configuration) 上使用 `tools` 欄位將子代理程式限制在它們需要的最小集合。

330* **監視 MCP 伺服器成本。** [MCP 工具搜尋](/docs/zh-TW/agent-sdk/mcp#mcp-tool-search) 預設延遲 MCP 工具架構,並按需加載它們。當工具搜尋關閉或已回退到預先加載時,每個 MCP 伺服器將其所有工具架構添加到每個請求,因此具有許多工具的幾個伺服器可以在代理程式執行任何工作之前消耗大量上下文。請參閱 [配置工具搜尋](/docs/zh-TW/agent-sdk/tool-search#configure-tool-search) 以了解回退適用的配置。330* **監視 MCP 伺服器成本。** [MCP 工具搜尋](/docs/zh-TW/agent-sdk/mcp#mcp-tool-search) 預設延遲 MCP 工具架構,並按需加載它們。當工具搜尋關閉或已回退到預先加載時,每個 MCP 伺服器將其所有工具架構添加到每個請求,因此具有許多工具的幾個伺服器可以在代理程式執行任何工作之前消耗大量上下文。請參閱 [配置工具搜尋](/docs/zh-TW/agent-sdk/tool-search#configure-tool-search) 以了解回退適用的配置。

331* **為常規任務使用較低的努力。** 為僅需要讀取檔案或列出目錄的代理程式設定 [努力](#effort-level) 為 `"low"`。這會減少代幣使用量和成本。331* **為常規任務使用較低的努力。** 為僅需要讀取檔案或列出目錄的代理程式設定 [努力](#effort-level) 為 `"low"`。這會減少代幣使用量和成本。

Details

261 261 

262* **頂級欄位**在每個事件上被接受:`systemMessage` 向使用者顯示訊息,`continue`(Python 中的 `continue_`)決定此 hook 後代理是否繼續執行。某些事件會捨棄它們或將它們傳遞到其他地方。每個[事件的部分](/docs/zh-TW/hooks#hook-events)在 hooks 頁面上說明它們的位置。262* **頂級欄位**在每個事件上被接受:`systemMessage` 向使用者顯示訊息,`continue`(Python 中的 `continue_`)決定此 hook 後代理是否繼續執行。某些事件會捨棄它們或將它們傳遞到其他地方。每個[事件的部分](/docs/zh-TW/hooks#hook-events)在 hooks 頁面上說明它們的位置。

263* **`hookSpecificOutput`** 控制目前操作。內部的欄位取決於 hook 事件類型:263* **`hookSpecificOutput`** 控制目前操作。內部的欄位取決於 hook 事件類型:

264 * 對於 `PreToolUse` hooks,這是您設定 `permissionDecision`(`"allow"`、`"deny"`、`"ask"` 或 `"defer"`)、`permissionDecisionReason` 和 `updatedInput` 的地方。如果您返回 `"defer"`,查詢會結束,以便您可以[稍後繼續](/docs/zh-TW/hooks#defer-a-tool-call-for-later)。264 * 對於 `PreToolUse` hook,這是您設定 `permissionDecision`(`"allow"`、`"deny"`、`"ask"` 或 `"defer"`)、`permissionDecisionReason` 和 `updatedInput` 的地方。如果您返回 `"defer"`,該回合會以一則 `stop_reason` 為 `"tool_deferred"` 的結果訊息結束,以便您可以[稍後繼續該呼叫](/docs/zh-TW/hooks#defer-a-tool-call-for-later)。

265 * 對於 `PostToolUse` hooks,您可以設定 `additionalContext` 以將資訊附加到工具結果。要在 Claude 看到之前替換工具的輸出,請設定 `updatedToolOutput`,這適用於兩個 SDK 中的任何工具。較舊的 `updatedMCPToolOutput` 欄位僅替換 MCP 工具輸出,已被棄用。265 * 對於 `PostToolUse` hook,您可以設定 `additionalContext` 以將資訊附加到工具結果。要在 Claude 看到之前替換工具的輸出,請設定 `updatedToolOutput`,這適用於兩個 SDK 中的任何工具。較舊的 `updatedMCPToolOutput` 欄位僅替換 MCP 工具輸出,已被棄用。

266 * 在 TypeScript SDK 中,`PostToolUse` 回調也可以返回 `classifierContext`,這是關於工具呼叫結果的簡短說明,用於[自動模式](/docs/zh-TW/permission-modes#eliminate-prompts-with-auto-mode)權限分類器。因為您的回調在您應用程式自己的程序中執行,分類器可能會將您在說明中轉達的使用者陳述視為使用者意圖。該欄位需要 TypeScript Agent SDK v0.3.236 或更新版本。[為自動模式分類器註解結果](/docs/zh-TW/hooks#annotate-a-result-for-the-auto-mode-classifier)涵蓋長度上限、僅同步規則,以及不要在說明中放入的內容。266 * 在 TypeScript SDK 中,`PostToolUse` 回調也可以返回 `classifierContext`,這是關於工具呼叫結果的簡短說明,用於[自動模式](/docs/zh-TW/permission-modes#eliminate-prompts-with-auto-mode)權限分類器。因為您的回調在您應用程式自己的程序中執行,分類器可能會將您在說明中轉達的使用者陳述視為使用者意圖。該欄位需要 TypeScript Agent SDK v0.3.236 或更新版本。[為自動模式分類器註解結果](/docs/zh-TW/hooks#annotate-a-result-for-the-auto-mode-classifier)涵蓋長度上限、僅同步規則,以及不要在說明中放入的內容。

267 267 

268返回 `{}` 以允許操作而不進行變更。SDK 回調 hooks 使用與 [Claude Code shell 命令 hooks](/docs/zh-TW/hooks#json-output) 相同的 JSON 輸出格式,其記錄每個欄位和事件特定選項。對於 SDK 類型定義,請參閱 [TypeScript](/docs/zh-TW/agent-sdk/typescript#synchookjsonoutput) 和 [Python](/docs/zh-TW/agent-sdk/python#synchookjsonoutput) SDK 參考。268返回 `{}` 以允許操作而不進行變更。SDK 回調 hooks 使用與 [Claude Code shell 命令 hooks](/docs/zh-TW/hooks#json-output) 相同的 JSON 輸出格式,其記錄每個欄位和事件特定選項。對於 SDK 類型定義,請參閱 [TypeScript](/docs/zh-TW/agent-sdk/typescript#synchookjsonoutput) 和 [Python](/docs/zh-TW/agent-sdk/python#synchookjsonoutput) SDK 參考。

Details

1488與 `ClaudeAgentOptions` 中的 `betas` 欄位搭配使用以啟用測試版功能。1488與 `ClaudeAgentOptions` 中的 `betas` 欄位搭配使用以啟用測試版功能。

1489 1489 

1490<Warning>1490<Warning>

1491 `context-1m-2025-08-07` 測試版自 2026 年 4 月 30 日起已停用。使用 Claude Sonnet 4.5 或 Sonnet 4 傳遞此標頭無效,超過標準 200k 權杖內容視窗的要求會傳回錯誤。若要使用 1M 權杖內容視窗,請遷移至 [Claude Opus 5.5、Claude Opus 5、Claude Sonnet 5、Claude Sonnet 4.6、Claude Opus 4.6、Claude Opus 4.7 或 Claude Opus 4.8](https://platform.claude.com/docs/en/about-claude/models/overview),其中包括標準定價的 1M 內容,無需測試版標頭。1491 在 Claude API 上,`context-1m-2025-08-07` 測試版已針對 Claude Sonnet 4.5 和 Claude Sonnet 4 停用。如果您仍在使用這兩個模型之一時傳遞它,超過標準 200K token 上下文視窗的請求會傳回錯誤,因此請將其從 `betas` 中移除。若要以 1M token 上下文視窗執行工作階段,請將 `model` 設定為[預設以 1M 視窗執行](/docs/zh-TW/model-config#extended-context)的模型,例如 `claude-sonnet-5-5` 或 `claude-opus-5-5`。對於僅能透過其 `[1m]` 變體達到 1M 的模型,請將後綴附加到模型 ID,例如 `claude-opus-4-6[1m]`。

1492</Warning>1492</Warning>

1493 1493 

1494<h3 id="mcpsdkserverconfig">1494<h3 id="mcpsdkserverconfig">

Details

92 Sandbox runtime92 Sandbox runtime

93</h3>93</h3>

94 94 

95對於無需容器的輕量級隔離,[sandbox-runtime](https://github.com/anthropic-experimental/sandbox-runtime) 在 OS 級別強制執行檔案系統和網路限制。95對於無需容器的輕量級隔離,[sandbox-runtime](https://github.com/anthropics/sandbox-runtime) 在 OS 級別強制執行檔案系統和網路限制。

96 96 

97主要優點是簡單性:不需要 Docker 配置、容器映像或網路設定。代理和檔案系統限制是內建的。97主要優點是簡單性:不需要 Docker 配置、容器映像或網路設定。代理和檔案系統限制是內建的。

98 98 


164 164 

165使用 `--network none`,容器根本沒有網路介面。代理到達外部世界的唯一方式是透過掛載的 Unix 套接字,該套接字連接到在主機上執行的代理。此代理可以強制執行網域允許清單、注入認證並記錄所有流量。165使用 `--network none`,容器根本沒有網路介面。代理到達外部世界的唯一方式是透過掛載的 Unix 套接字,該套接字連接到在主機上執行的代理。此代理可以強制執行網域允許清單、注入認證並記錄所有流量。

166 166 

167這與 [sandbox-runtime](https://github.com/anthropic-experimental/sandbox-runtime) 使用的架構相同。即使代理透過提示注入而被洩露,它也無法將資料洩露到任意伺服器。它只能透過代理進行通訊,代理控制哪些網域可到達。有關更多詳情,請參閱 [Claude Code 沙箱部落格文章](https://www.anthropic.com/engineering/claude-code-sandboxing)。167這與 [sandbox-runtime](https://github.com/anthropics/sandbox-runtime) 使用的架構相同。即使 agent 透過提示詞注入而被入侵,它也無法將資料洩露到任意伺服器。它只能透過代理伺服器進行通訊,由代理伺服器控制哪些網域可到達。有關更多詳情,請參閱 [Claude Code 沙箱機制部落格文章](https://www.anthropic.com/engineering/claude-code-sandboxing)。

168 168 

169**額外強化選項:**169**額外強化選項:**

170 170 


385* [Claude Code 安全文件](/docs/zh-TW/security)385* [Claude Code 安全文件](/docs/zh-TW/security)

386* [託管 Agent SDK](/docs/zh-TW/agent-sdk/hosting)386* [託管 Agent SDK](/docs/zh-TW/agent-sdk/hosting)

387* [處理權限](/docs/zh-TW/agent-sdk/permissions)387* [處理權限](/docs/zh-TW/agent-sdk/permissions)

388* [Sandbox runtime](https://github.com/anthropic-experimental/sandbox-runtime)388* [Sandbox runtime](https://github.com/anthropics/sandbox-runtime)

389* [The Lethal Trifecta for AI Agents](https://simonwillison.net/2025/Jun/16/the-lethal-trifecta/)389* [The Lethal Trifecta for AI Agents](https://simonwillison.net/2025/Jun/16/the-lethal-trifecta/)

390* [OWASP Top 10 for LLM Applications](https://owasp.org/www-project-top-10-for-large-language-model-applications/)390* [OWASP Top 10 for LLM Applications](https://owasp.org/www-project-top-10-for-large-language-model-applications/)

391* [Docker Security Best Practices](https://docs.docker.com/engine/security/)391* [Docker Security Best Practices](https://docs.docker.com/engine/security/)

Details

378</h2>378</h2>

379 379 

380<Note>380<Note>

381 對於項目和個人 Skills,Claude Code 在 SDK 會話中應用 [`allowed-tools`](/docs/zh-TW/skills#pre-approve-tools-for-a-skill) frontmatter 欄位。您也可以通過查詢配置中的 `allowedTools` 選項(Python 中的 `allowed_tools`)為這些 Skills 預先批准工具。從 claude.ai [同步的 Skills](/docs/zh-TW/skills#how-claude-code-handles-the-frontmatter-of-a-synced-skill) 遵循它們自己的 frontmatter 規則。381 在 SDK 工作階段中,您可以透過 skill 的 [`allowed-tools`](/docs/zh-TW/skills#pre-approve-tools-for-a-skill) frontmatter,或透過查詢設定中的 `allowedTools` 選項(Python 中為 `allowed_tools`),為專案或個人 skill 預先核准工具。如果您的組織在受管設定中設定了 [`allowManagedPermissionRulesOnly`](/docs/zh-TW/settings-reference#allowmanagedpermissionrulesonly),Claude Code 會忽略這兩者。[從 claude.ai 同步](/docs/zh-TW/skills#how-claude-code-handles-the-frontmatter-of-a-synced-skill)的 skill 遵循其自身的 frontmatter 規則。

382</Note>382</Note>

383 383 

384Skills 使用會話的工具運行。下面的示例使用 `allowedTools`(Python 中的 `allowed_tools`)預先批准 `Read`、`Grep` 和 `Glob`,因此 Claude 可以在運行 [security-check Skill](#create-and-dispatch-your-first-skill) 時檢查文件,而無需停止以獲得批准:384Skills 使用會話的工具運行。下面的示例使用 `allowedTools`(Python 中的 `allowed_tools`)預先批准 `Read`、`Grep` 和 `Glob`,因此 Claude 可以在運行 [security-check Skill](#create-and-dispatch-your-first-skill) 時檢查文件,而無需停止以獲得批准:

Details

166 166 

167當您執行範例時,TypeScript 版本會在每個回應完成時列印它。Python 版本的 `receive_response()` 迴圈在第一個結果訊息處結束,因此它會列印安全性分析;若要讀取兩個回應,請使用一個 `query()` 和 `receive_response()` 配對,如 [Python 參考的繼續對話範例](/docs/zh-TW/agent-sdk/python#example-continuing-a-conversation) 所示。167當您執行範例時,TypeScript 版本會在每個回應完成時列印它。Python 版本的 `receive_response()` 迴圈在第一個結果訊息處結束,因此它會列印安全性分析;若要讀取兩個回應,請使用一個 `query()` 和 `receive_response()` 配對,如 [Python 參考的繼續對話範例](/docs/zh-TW/agent-sdk/python#example-continuing-a-conversation) 所示。

168 168 

169如果影像區塊的 `source` 遺失或不是物件,SDK 不會回報錯誤。Claude Code 會以一則文字說明取代該影像傳送給 Claude,例如 `[Image could not be processed: image block has no source object]`,而工作階段會繼續進行。

170 

169<Note>171<Note>

170 在 TypeScript SDK 中,如果您的訊息產生器拋出例外,例如當它讀取的檔案遺失時,串流會以錯誤結束,該錯誤顯示為 `Claude Code process aborted by user`,而不是原始錯誤,因此當您看到該訊息時,請先檢查產生器內的程式碼。該錯誤前面也可能會有一長行的最小化捆綁 SDK 原始碼,因此請閱讀輸出末尾以取得錯誤文字。172 在 TypeScript SDK 中,如果您的訊息產生器拋出例外,例如當它讀取的檔案遺失時,串流會以錯誤結束,該錯誤顯示為 `Claude Code process aborted by user`,而不是原始錯誤,因此當您看到該訊息時,請先檢查產生器內的程式碼。該錯誤前面也可能會有一長行的最小化捆綁 SDK 原始碼,因此請閱讀輸出末尾以取得錯誤文字。

171 173 

Details

204| 工具定義(繼承自父代理或 `tools` 中的子集,[針對背景執行進行篩選](/docs/zh-TW/sub-agents#available-tools)) | 父代理的系統提示 |204| 工具定義(繼承自父代理或 `tools` 中的子集,[針對背景執行進行篩選](/docs/zh-TW/sub-agents#available-tools)) | 父代理的系統提示 |

205 205 

206<Note>206<Note>

207 父代理會將子代理的最終訊息作為 Agent 工具結果接收,但可能會在其自身回應中進行摘要。若要在面向使用者的回應中逐字保留子代理輸出,請在您傳遞給主 `query()` 呼叫的提示或 `systemPrompt` 選項中包含執行此操作的指示。207 父層會接收 subagent 的最終報告,但可能會在其自身回應中進行摘要。若要在面向使用者的回應中逐字保留 subagent 輸出,請在您傳遞給主 `query()` 呼叫的提示詞或 `systemPrompt` 選項中包含執行此操作的指示。

208 208 

209 在 v2.1.210 及更新版本中,Claude Code [在父代理讀取最終訊息之前掃描它以尋找指示形狀的模式](/docs/zh-TW/sub-agents#subagent-output-scanning)。掃描以三種不同的方式處理三種模式:209 在 v2.1.210 及更新版本中,Claude Code [在父代理讀取最終訊息之前掃描它以尋找指示形狀的模式](/docs/zh-TW/sub-agents#subagent-output-scanning)。掃描以三種不同的方式處理三種模式:

210 210 

Details

1552* `'model_not_found'`:選定的模型不存在或無法供您的帳戶或部署使用1552* `'model_not_found'`:選定的模型不存在或無法供您的帳戶或部署使用

1553* `'overloaded'`:API 傳回 529,因為伺服器已滿載,與 `'rate_limit'` 相對,後者是針對您配額的 4291553* `'overloaded'`:API 傳回 529,因為伺服器已滿載,與 `'rate_limit'` 相對,後者是針對您配額的 429

1554* `'account_on_hold'`:[您的帳戶已被暫停](/docs/zh-TW/errors#your-account-is-on-hold)1554* `'account_on_hold'`:[您的帳戶已被暫停](/docs/zh-TW/errors#your-account-is-on-hold)

1555* `'cloud_credential_error'`:Claude Code 無法在其執行的機器上取得可用的 AWS 或 Google Cloud 認證,因此沒有請求到達雲端提供者。通常的原因是雲端登入已過期或從未在該機器上完成,但暫時無法連線的認證服務會報告相同的值。請參閱[無法載入 AWS 或 Google Cloud 認證](/docs/zh-TW/errors#could-not-load-aws-or-google-cloud-credentials)。需要 TypeScript Agent SDK v0.3.267 或更新版本,其中包含 Claude Code v2.1.2671555* `'cloud_credential_error'`:Claude Code 無法在其執行的機器上取得可用的 AWS 或 Google Cloud 憑證,因此沒有請求到達雲端提供者。通常的原因是雲端登入已過期或從未在該機器上完成,但暫時無法連線的憑證服務也會回報相同的值。請參閱[無法載入 AWS 或 Google Cloud 憑證](/docs/zh-TW/errors#could-not-load-aws-or-google-cloud-credentials)。需要 TypeScript Agent SDK v0.3.267 或更新版本,其中包含 Claude Code v2.1.267

1556 1556 

1557當中斷或中止在串流完成前截斷助手訊息時,`aborted` 為 `true`:訊息沒有 `stop_reason`,內容可能在中間詞處結束。該欄位在正常完成的訊息上不存在。它需要 Agent SDK v0.3.214 或更新版本。1557當中斷或中止在串流完成前截斷助手訊息時,`aborted` 為 `true`:訊息沒有 `stop_reason`,內容可能在詞的中間結束。該欄位在正常完成的訊息上不存在。它需要 Agent SDK v0.3.214 或更新版本。

1558 1558 

1559Claude Code 在轉換的第一個助手訊息上設定 `user_message_uuid` 和 `user_message_uuids`,條件在 [`user_message_uuid`](#user_message_uuid) 中。當 Claude Code 重新執行被重新啟動中斷的轉換時,重新執行的助手訊息如果攜帶這些欄位,也會攜帶 [`resume_reason`](#resume_reason)。1559Claude Code 會在回合的第一個助手訊息上設定 `user_message_uuid` 和 `user_message_uuids`,條件請見 [`user_message_uuid`](#user_message_uuid)。當 Claude Code 重新執行被重新啟動中斷的回合時,重新執行中攜帶這些欄位的助手訊息也會攜帶 [`resume_reason`](#resume_reason)。

1560 1560 

1561`timestamp` 是訊息內容在產生它的程序上完成生成的 ISO 8601 時間。該值來自該機器的時鐘,因此僅用於顯示,不要按其排序訊息。一個 API 轉換可以產生多個共享 `message.id` 的助手訊息,每個都有自己的 `timestamp`。當欄位不存在時,回退到您收到訊息的時間。1561`timestamp` 是訊息內容在產生它的程序上完成生成的 ISO 8601 時間。該值來自該機器的時鐘,因此僅用於顯示,不要依其排序訊息。一個 API 回合可以產生多個共用同一 `message.id` 的助手訊息,每個都有自己的 `timestamp`。當欄位不存在時,請改用您收到訊息的時間。

1562 1562 

1563`context_usage` 是 `/context` 報告的結構化副本,類型為 [`SDKContextUsage`](#sdkcontextusage),需要 Agent SDK v0.3.232 或更新版本。當您以提示形式傳送 `/context` 時,Claude Code 會將報告作為助手訊息傳遞,其 `message.content` 包含 markdown 表格,並將 `context_usage` 附加到同一訊息。Claude Code 不會在任何其他助手訊息上設定該欄位,較早的版本會傳遞 `/context` 表格而不設定它,因此當欄位存在時從欄位讀取明細,當不存在時回退到 markdown 文字。1563`context_usage` 是 `/context` 報告的結構化副本,類型為 [`SDKContextUsage`](#sdkcontextusage),需要 Agent SDK v0.3.232 或更新版本。當您以提示詞形式傳送 `/context` 時,Claude Code 會將報告作為助手訊息傳遞,其 `message.content` 包含 markdown 表格,並將 `context_usage` 附加到同一訊息。Claude Code 不會在任何其他助手訊息上設定該欄位,較早的版本傳遞 `/context` 表格時也不會帶有它,因此當欄位存在時從欄位讀取明細,不存在時則改用 markdown 文字。

1564 1564 

1565<h3 id="sdkusermessage">1565<h3 id="sdkusermessage">

1566 `SDKUserMessage`1566 `SDKUserMessage`


1585};1585};

1586```1586```

1587 1587 

1588設定 `pasted_content` 以傳送使用者貼上到您的提示 UI 中而不是輸入的內容,每個貼上一個項目,每個都是字串或內容區塊陣列。Claude Code 按順序在輸入的文字後附加每個項目的文字,並可能將每個貼上內容包裝在 `<pasted_content>` 標籤中。除文字外的區塊會被忽略,因此在 `message.content` 中傳送影片和文件。需要 Agent SDK v0.3.277 或更新版本。1588設定 `pasted_content` 以傳送使用者貼上到您提示詞 UI 中(而非輸入)的內容,每次貼上一個項目,每個項目都是字串或內容區塊陣列。Claude Code 會依序將每個項目的文字附加在輸入的文字之後,並可能將每次貼上的內容包裝在 `<pasted_content>` 標籤中。文字以外的區塊會被忽略,因此請在 `message.content` 中傳送圖片和文件。需要 Agent SDK v0.3.277 或更新版本。

1589 1589 

1590設定 `shouldQuery` 或 `client_composed` 以改變 Claude Code 如何處理您傳送的訊息:1590設定 `shouldQuery` 或 `client_composed` 以改變 Claude Code 處理您所傳送訊息的方式:

1591 1591 

1592* `shouldQuery`:設定為 `false` 以將訊息附加到文字記錄而不觸發助手轉換。訊息被保留並合併到下一個觸發轉換的使用者訊息中。使用此方法注入內容,例如您在帶外執行的命令的輸出,而不在模型呼叫上花費。1592* `shouldQuery`:設定為 `false` 以將訊息附加到逐字稿,而不觸發助手回合。訊息會被保留,並合併到下一個會觸發回合的使用者訊息中。使用此方式注入上下文,例如您在頻外執行之命令的輸出,而不必為此花費一次模型呼叫。

1593* `client_composed`:設定為 `true` 以讓 Claude Code 按照寫入的方式傳遞訊息文字。Claude Code 然後不展開 `@path` 或 [`@server:resource`](/docs/zh-TW/mcp#use-mcp-resources) 提及,也不執行以 `/` 開頭的文字作為命令。當 [`verbatimPrompts`](#options) 選項開啟時,SDK 在每個訊息上設定該欄位。需要 TypeScript Agent SDK v0.3.280 或更新版本和 Claude Code v2.1.248 或更新版本。1593* `client_composed`:設定為 `true` 以讓 Claude Code 依原文傳遞訊息文字。Claude Code 將不會展開 `@path` 或 [`@server:resource`](/docs/zh-TW/mcp#use-mcp-resources) 提及,也不會將以 `/` 開頭的文字作為命令執行。當 [`verbatimPrompts`](#options) 選項開啟時,SDK 會在每則訊息上設定該欄位。需要 TypeScript Agent SDK v0.3.280 或更新版本以及 Claude Code v2.1.248 或更新版本。

1594 1594 

1595在攜帶 `tool_result` 區塊的訊息上,`tool_use_result` 是工具的結構化輸出物件,而不是傳送給模型的文字。其形狀取決於匹配 `tool_use` 區塊命名的工具,因此欄位的類型為 `unknown`;內建形狀列在[工具輸出類型](#tool-output-types)下。1595在攜帶 `tool_result` 區塊的訊息上,`tool_use_result` 是工具的結構化輸出物件,而不是傳送給模型的文字。其形狀取決於對應 `tool_use` 區塊所指名的工具,因此欄位的類型為 `unknown`;內建形狀列在[工具輸出類型](#tool-output-types)下。

1596 1596 

1597對於 `Agent` 工具,`tool_use_result` 是 [`AgentOutput`](#agent-2)。在 `completed` 結果上,`content` 包含子代理的報告,不包含 Claude Code 附加到 `tool_result` 文字的代理 ID 和使用情況預告片,因此從 `tool_use_result` 呈現而不是解析該文字。1597對於 `Agent` 工具,`tool_use_result` 是 [`AgentOutput`](#agent-2)。請依據它呈現,而不是解析 `tool_result` 文字。`completed` 結果的 `content` 包含 subagent 的報告;若 subagent 的報告是透過 `SubagentHandback` 工具呼叫交回,則 `content` 會以一則關於該交回的簡短說明取代報告。在 Claude Code v2.1.271 或更新版本的[自動模式](/docs/zh-TW/permission-modes#eliminate-prompts-with-auto-mode)中,每個產生 `completed` 結果的 subagent 都以這種方式回報,除非它是 [fork](/docs/zh-TW/sub-agents#fork-the-current-conversation),且 Claude 會以來自該 subagent 的另一則訊息接收報告。

1598 1598 

1599對於其結果包含 `resource_link` 區塊的 MCP 工具,`tool_use_result` 是一個物件,其中包含 [`SDKMcpResourceLink`](#sdkmcpresourcelink) 項目的 `resourceLinks` 陣列。Claude 將每個連結作為 `tool_result` 區塊中的一行文字接收,因此讀取 `resourceLinks` 以呈現伺服器傳回的檔案,而不是解析該文字。Claude Code 在結果沒有連結時省略 `resourceLinks`,在來自子代理的結果上省略,每個結果最多保留 50 個連結,並在陣列達到 64 KiB 序列化 JSON 後停止新增連結。`resourceLinks` 需要 Agent SDK v0.3.257 或更新版本。1599對於結果包含 `resource_link` 區塊的 MCP 工具,`tool_use_result` 是一個物件,其中包含由 [`SDKMcpResourceLink`](#sdkmcpresourcelink) 項目組成的 `resourceLinks` 陣列。Claude 會將每個連結作為 `tool_result` 區塊中的一行文字接收,因此請讀取 `resourceLinks` 來呈現伺服器傳回的檔案,而不是解析該文字。當結果沒有連結時,以及在來自 subagent 的結果上,Claude Code 會省略 `resourceLinks`;每個結果最多保留 50 個連結,並在陣列達到 64 KiB 的序列化 JSON 後停止新增連結。`resourceLinks` 需要 Agent SDK v0.3.257 或更新版本。

1600 1600 

1601設定 `inline_pastes` 以告訴 Claude Code `message.content` 的哪些部分使用者貼上而不是輸入,每個貼上一個字串。提示文字保留在使用者放置的位置。Claude Code 可能會在其所在位置將每個列出的貼上內容包裝在 `<pasted_content>` 標籤中,以便 Claude 可以區分貼上的材料與使用者自己的話語。只有提示最後一個文字區塊中的貼上內容會被包裝。需要 TypeScript Agent SDK v0.3.280 或更新版本。1601設定 `inline_pastes` 以告訴 Claude Code `message.content` 的哪些部分是使用者貼上而非輸入的,每次貼上一個字串。提示詞文字保留在使用者放置的位置。Claude Code 可能會在原處將每個列出的貼上內容包裝在 `<pasted_content>` 標籤中,讓 Claude 能區分貼上的素材與使用者自己的話語。只有提示詞最後一個文字區塊中的貼上內容會被包裝。需要 TypeScript Agent SDK v0.3.280 或更新版本。

1602 1602 

1603<h3 id="sdkusermessagereplay">1603<h3 id="sdkusermessagereplay">

1604 `SDKUserMessageReplay`1604 `SDKUserMessageReplay`

1605</h3>1605</h3>

1606 1606 

1607具有必需 UUID 的重播使用者訊息。1607具有必要 UUID 的重播使用者訊息。

1608 1608 

1609```typescript theme={null}1609```typescript theme={null}

1610type SDKUserMessageReplay = {1610type SDKUserMessageReplay = {


1621};1621};

1622```1622```

1623 1623 

1624從工作階段外部注入的使用者轉換,其 [`origin`](#sdkmessageorigin) 類型為 `peer` 或 `channel` 的轉換,無論是在活躍轉換期間傳遞還是在工作階段閒置時啟動新轉換,都會作為重播到達串流。在 v2.1.207 之前,在工作階段閒置時傳遞的注入轉換在串流上不產生訊息,只在您重新讀取文字記錄時出現。1624從工作階段外部注入的使用者回合(其 [`origin`](#sdkmessageorigin) kind 為 `peer` 或 `channel`),無論是在進行中的回合期間傳遞,還是在工作階段閒置時啟動新回合,都會作為重播到達串流。在 v2.1.207 之前,於工作階段閒置時傳遞的注入回合不會在串流上產生訊息,只會在您重新讀取逐字稿時出現。

1625 1625 

1626<h3 id="sdkresultmessage">1626<h3 id="sdkresultmessage">

1627 `SDKResultMessage`1627 `SDKResultMessage`


1701 1701 

1702結果上的多個欄位除了 `subtype` 之外還提供診斷詳細資訊:1702結果上的多個欄位除了 `subtype` 之外還提供診斷詳細資訊:

1703 1703 

1704* `api_error_status`:終止對話的 API 錯誤的 HTTP 狀態碼。當轉換在沒有 API 錯誤的情況下結束時不存在或為 `null`。1704* `api_error_status`:終止對話的 API 錯誤的 HTTP 狀態碼。當回合在沒有 API 錯誤的情況下結束時,不存在或為 `null`。

1705* `ttft_ms`:首個令牌的時間(毫秒),在第一個完整助手訊息到達時測量。僅在成功分支上存在。1705* `ttft_ms`:首個 token 的時間(毫秒),在第一個完整助手訊息到達時測量。僅在成功分支上存在。

1706* `ttft_stream_ms`:直到第一個 `message_start` 串流事件(當回應串流開啟時)的時間(毫秒)。低於 `ttft_ms`;兩者之間的差距是串流第一個訊息所花費的時間。僅在成功分支上存在。1706* `ttft_stream_ms`:直到第一個 `message_start` 串流事件(即回應串流開啟時)的時間(毫秒)。低於 `ttft_ms`;兩者之間的差距是串流第一個訊息所花費的時間。僅在成功分支上存在。

1707* `user_message_uuid`:您傳送的訊息的 `uuid`,此轉換回答了該訊息。請參閱 [`user_message_uuid`](#user_message_uuid) 以了解哪些結果攜帶它。1707* `user_message_uuid`:此回合所回答的、您傳送之訊息的 `uuid`。請參閱 [`user_message_uuid`](#user_message_uuid) 以了解哪些結果會攜帶它。

1708* `user_message_uuids`:您傳送的每個訊息的 `uuid`,Claude Code 在此轉換中回答了這些訊息。請參閱 [`user_message_uuids`](#user_message_uuids)。1708* `user_message_uuids`:Claude Code 在此回合中回答的、您傳送之每則訊息的 `uuid`。請參閱 [`user_message_uuids`](#user_message_uuids)。

1709* `resume_reason`:Claude Code 在重新啟動中斷了此轉換後重新執行此轉換的原因。在兩個分支上存在,僅在此類重新執行上。請參閱 [`resume_reason`](#resume_reason)。1709* `resume_reason`:Claude Code 在重新啟動中斷此回合後重新執行此回合的原因。在兩個分支上都存在,且僅在此類重新執行上出現。請參閱 [`resume_reason`](#resume_reason)。

1710*1710* `local_command`:回合所分派之命令的名稱,出現在由命令完成、未進入 agent 迴圈之回合的成功結果上,例如 `/compact`。名稱會轉為小寫字母和底線,因此 `/reload-plugins` 回報為 `reload_plugins`。由 MCP 伺服器提供的命令以及內建的 `/mcp` 回報為 `mcp`。您自行定義的命令回報為 `custom`。引數永遠不會包含在內。在每個進入 agent 迴圈的回合上,以及在未執行任何命令的傳送上,此欄位不存在。需要 Agent SDK v0.3.268 或更新版本。

1711 1711* `request_sent_wall_ms`:Claude Code 分派 API 請求時的紀元毫秒,用於與伺服器端時間戳記進行對照。僅與 [`user_message_uuid`](#user_message_uuid) 一起存在,出現在 `is_error` 為 false、且其回合傳送了 API 請求的成功結果上。

1712`local_command`:轉換分派的命令的名稱,在轉換的成功結果上,該轉換由命令完成而不進入代理迴圈,例如 `/compact`。名稱折疊為小寫字母和底線,因此 `/reload-plugins` 報告 `reload_plugins`。MCP 伺服器提供的命令以及內建 `/mcp` 報告 `mcp`。您自己定義的命令報告 `custom`。引數永遠不包括。在進入代理迴圈的每個轉換上不存在,以及在執行沒有命令的傳送上不存在。需要 Agent SDK v0.3.268 或更新版本。1712* `first_content_frame_ms`:直到第一個 `content_block_start` 或 `content_block_delta` 串流事件的時間(毫秒),思考區塊也計為內容。僅在成功分支上、`is_error` 為 false 時存在。需要 Agent SDK v0.3.260 或更新版本。

1713 1713* `first_stream_post_ms`、`first_stream_post_ack_ms`、`first_stream_post_wall_ms`:上傳回合第一個串流事件的計時。Claude Code 僅在它串流到 claude.ai 的工作階段中記錄這些值,例如[雲端工作階段](/docs/zh-TW/claude-code-on-the-web),`query()` 產生的結果不會攜帶它們。需要 Agent SDK v0.3.260 或更新版本。

1714* `request_sent_wall_ms`:Claude Code 分派 API 請求的紀元毫秒,用於與伺服器端時間戳記的連接。僅與 [`user_message_uuid`](#user_message_uuid) 一起存在,在成功結果上,其中 `is_error` 為 false,其轉換傳送了 API 請求。1714* `usage`:僅限主 agent 迴圈。排除 subagent 和輔助模型呼叫,且在串流輸入工作階段中按回合計算。token/成本會計請優先使用 `modelUsage`。

1715*1715* `modelUsage`:在此 `query()` 呼叫期間,透過查詢管線進行之每個模型呼叫的各模型總計,包括主迴圈、subagent,以及壓縮和 Workflow agent 等內部呼叫。該管線之外的輔助呼叫,例如權限分類器和 token 計數請求,不計入。恢復工作階段的呼叫也會計入[從工作階段較早呼叫還原的各模型總計](/docs/zh-TW/agent-sdk/cost-tracking#accumulate-costs-across-multiple-calls)。在串流輸入工作階段中,總計會跨回合累積,因此請讀取最新結果,而不是加總所有結果。請參閱[在串流輸入模式中追蹤成本](/docs/zh-TW/agent-sdk/cost-tracking#track-costs-in-streaming-input-mode)以了解重設,以及[在工作階段當機後恢復總計](/docs/zh-TW/agent-sdk/cost-tracking#recover-totals-after-a-session-crash)以了解歸零的結果。

1716 1716* `total_cost_usd`:累積的估計成本(美元),涵蓋與 `modelUsage` 相同的呼叫,並在相同時間點重設。恢復工作階段的呼叫也會計入[從工作階段較早呼叫還原的總計](/docs/zh-TW/agent-sdk/cost-tracking#accumulate-costs-across-multiple-calls)。這是估計值,不是帳單。請參閱[追蹤成本和使用情況](/docs/zh-TW/agent-sdk/cost-tracking)以了解準確性注意事項。

1717`first_content_frame_ms`:直到第一個 `content_block_start` 或 `content_block_delta` 串流事件的時間(毫秒),將思考區塊計為內容。僅在成功分支上存在,當 `is_error` 為 false 時。需要 Agent SDK v0.3.260 或更新版本。1717* `queued_turn_count`:您以 `origin: { kind: "human" }` 傳送、在 Claude Code 產生結果時仍在等待的訊息數量。請參閱 [`queued_turn_count`](#queued_turn_count) 以了解 `0` 和不存在的欄位代表什麼。

1718 1718* `result_index`:此結果在執行之傳遞順序中的位置,從 0 開始,涵蓋程序寫入的每個結果。在兩個分支上都存在。寫入失敗的結果仍會消耗其編號,因此序列中出現間隙即表示有結果遺失。需要 Agent SDK v0.3.268 或更新版本。

1719*1719* `startup_failure_reason`:Claude Code 拒絕啟動的原因,出現在它因已知啟動失敗而結束前寫入的 `error_during_execution` 結果上。請參閱 [`startup_failure_reason`](#startup_failure_reason) 以了解其值以及哪些失敗會攜帶它。需要 Agent SDK v0.3.274 或更新版本。

1720 1720* `terminal_reason`:迴圈結束的原因。為 `"completed"`、`"max_turns"`、`"tool_deferred"`、`"aborted_streaming"`、`"aborted_tools"`、`"hook_stopped"`、`"stop_hook_prevented"`、`"background_requested"`、`"blocking_limit"`、`"rapid_refill_breaker"`、`"prompt_too_long"`、`"image_error"`、`"model_error"`、`"api_error"`、`"malformed_tool_use_exhausted"`、`"budget_exhausted"`、`"structured_output_retry_exhausted"`、`"tool_deferred_unavailable"` 或 `"turn_setup_failed"` 之一。

1721`first_stream_post_ms`、`first_stream_post_ack_ms`、`first_stream_post_wall_ms`:上傳轉換第一個串流事件的計時。Claude Code 僅在它串流到 claude.ai 的工作階段中記錄它們,例如[雲端工作階段](/docs/zh-TW/claude-code-on-the-web),`query()` 產生的結果不攜帶它們。需要 Agent SDK v0.3.260 或更新版本。

1722 

1723* `usage`:僅限主代理迴圈。排除子代理和輔助模型呼叫,在串流輸入工作階段中按轉換計算。優先使用 `modelUsage` 進行令牌/成本會計。

1724* `modelUsage`:在此 `query()` 呼叫期間通過查詢管道進行的每個模型呼叫的每個模型總計,包括主迴圈、子代理和內部呼叫,例如壓縮和 Workflow 代理。該管道外的輔助呼叫,例如權限分類器和令牌計數請求,被排除。恢復工作階段的呼叫也計算[從工作階段較早呼叫恢復的每個模型總計](/docs/zh-TW/agent-sdk/cost-tracking#accumulate-costs-across-multiple-calls)。在串流輸入工作階段中,總計在轉換中是累積的,因此讀取最新結果而不是跨結果求和。請參閱[在串流輸入模式中追蹤成本](/docs/zh-TW/agent-sdk/cost-tracking#track-costs-in-streaming-input-mode)以了解重設,以及[在工作階段崩潰後恢復總計](/docs/zh-TW/agent-sdk/cost-tracking#recover-totals-after-a-session-crash)以了解歸零結果。

1725* `total_cost_usd`:累積估計成本(美元),涵蓋與 `modelUsage` 相同的呼叫並在相同點重設。恢復工作階段的呼叫也計算[從工作階段較早呼叫恢復的總計](/docs/zh-TW/agent-sdk/cost-tracking#accumulate-costs-across-multiple-calls)。這是估計值,不是帳單聲明。請參閱[追蹤成本和使用情況](/docs/zh-TW/agent-sdk/cost-tracking)以了解準確性注意事項。

1726* `queued_turn_count`:您傳送的帶有 `origin: { kind: "human" }` 的訊息數量,在 Claude Code 產生結果時仍在等待。請參閱 [`queued_turn_count`](#queued_turn_count) 以了解 `0` 和不存在的欄位告訴您什麼。

1727*

1728 

1729`result_index`:此結果在執行的傳遞順序中的位置,從 0 開始計算,跨越程序寫入的每個結果。在兩個分支上存在。寫入失敗的結果仍會消耗其編號,因此序列中的間隙意味著結果遺失。需要 Agent SDK v0.3.268 或更新版本。

1730 

1731*

1732 

1733`startup_failure_reason`:Claude Code 拒絕啟動的原因,在它在已知啟動失敗時寫入的 `error_during_execution` 結果上。請參閱 [`startup_failure_reason`](#startup_failure_reason) 以了解值以及哪些失敗攜帶它。需要 Agent SDK v0.3.274 或更新版本。

1734 

1735* `terminal_reason`:迴圈結束的原因。`"completed"`、`"max_turns"`、`"tool_deferred"`、`"aborted_streaming"`、`"aborted_tools"`、`"hook_stopped"`、`"stop_hook_prevented"`、`"background_requested"`、`"blocking_limit"`、`"rapid_refill_breaker"`、`"prompt_too_long"`、`"image_error"`、`"model_error"`、`"api_error"`、`"malformed_tool_use_exhausted"`、`"budget_exhausted"`、`"structured_output_retry_exhausted"`、`"tool_deferred_unavailable"` 或 `"turn_setup_failed"` 之一。

1736* `fast_mode_state`:`"on"`、`"off"` 或 `"cooldown"` 之一。1721* `fast_mode_state`:`"on"`、`"off"` 或 `"cooldown"` 之一。

1737* `fast_mode_disabled_reason`:為什麼[快速模式](/docs/zh-TW/fast-mode)現在不可用。當沒有任何東西阻止快速模式時不存在,儘管請求仍可能以標準速度執行。在快速模式速率限制後的冷卻期間,Claude Code 報告 `fast_mode_state: "cooldown"` 而沒有原因代碼,並在冷卻期過期時重新啟用快速模式。需要 Claude Code v2.1.219 或更新版本。1722* `fast_mode_disabled_reason`:[快速模式](/docs/zh-TW/fast-mode)目前無法使用的原因。當沒有任何因素阻止快速模式時不存在,但請求仍可能以標準速度執行。在快速模式速率限制後的冷卻期間,Claude Code 會回報 `fast_mode_state: "cooldown"` 而不附原因代碼,並在冷卻期結束時重新啟用快速模式。需要 Claude Code v2.1.219 或更新版本。

1738 1723 

1739使用原因代碼在您自己的 UI 中解釋為什麼快速模式關閉,而不是重新推導可用性。每個代碼命名阻止快速模式的檢查:1724使用原因代碼在您自己的 UI 中說明快速模式為何關閉,而不是重新推導可用性。每個代碼指名阻止快速模式的檢查:

1740 1725 

1741| 原因代碼 | 含義 |1726| 原因代碼 | 含義 |

1742| - | - |1727| - | - |

1743| `free` | 帳戶沒有快速模式所需的付費訂閱或使用額度 |1728| `free` | 帳戶沒有快速模式所需的付費訂閱或用量點數 |

1744| `preference` | 組織已禁用快速模式 |1729| `preference` | 組織已停用快速模式 |

1745| `extra_usage_disabled` | 帳戶已關閉使用額度 |1730| `extra_usage_disabled` | 帳戶的用量點數已關閉 |

1746| `network_error` | [可用性檢查](/docs/zh-TW/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways)無法連線到 `api.anthropic.com` |1731| `network_error` | [可用性檢查](/docs/zh-TW/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways)無法連線到 `api.anthropic.com` |

1747| `unknown` | Claude Code 無法確定可用性 |1732| `unknown` | Claude Code 無法判斷可用性 |

1748| `not_first_party` | 工作階段使用 Anthropic API 以外的提供者 |1733| `not_first_party` | 工作階段使用 Anthropic API 以外的提供者 |

1749| `disabled_by_env` | [`CLAUDE_CODE_DISABLE_FAST_MODE`](/docs/zh-TW/env-vars) 已設定 |1734| `disabled_by_env` | 已設定 [`CLAUDE_CODE_DISABLE_FAST_MODE`](/docs/zh-TW/env-vars) |

1750| `model_not_allowed` | 快速模式 Opus 模型不在組織的 [`availableModels`](/docs/zh-TW/model-config#restrict-model-selection) 允許清單中 |1735| `model_not_allowed` | 快速模式的 Opus 模型不在組織的 [`availableModels`](/docs/zh-TW/model-config#restrict-model-selection) 允許清單中 |

1751| `sdk_opt_in_required` | 工作階段尚未選擇加入快速模式:在 [`settings`](#options) 選項中或通過 [`applyFlagSettings()`](#applyflagsettings) 傳遞 `fastMode: true` |1736| `sdk_opt_in_required` | 工作階段尚未選擇加入快速模式:請在 [`settings`](#options) 選項中或透過 [`applyFlagSettings()`](#applyflagsettings) 傳遞 `fastMode: true` |

1752| `pending` | 可用性檢查尚未完成 |1737| `pending` | 可用性檢查尚未完成 |

1753 1738 

1754相同的欄位對出現在 [`SDKSystemMessage`](#sdksystemmessage) 和 [`SDKControlInitializeResponse`](#sdkcontrolinitializeresponse) 上,因此您可以在第一個轉換之前讀取快速模式狀態。1739相同的這對欄位也出現在 [`SDKSystemMessage`](#sdksystemmessage) 和 [`SDKControlInitializeResponse`](#sdkcontrolinitializeresponse) 上,因此您可以在第一個回合之前讀取快速模式狀態。

1755 1740 

1756`origin` 欄位轉發觸發此結果的使用者訊息的 [`SDKMessageOrigin`](#sdkmessageorigin)。當 SDK 注入合成後續轉換(例如針對完成的背景任務)時,生成的 `SDKResultMessage` 攜帶 `origin: { kind: "task-notification" }`。其觸發器觸發且伺服器驗證的例程和來自您其他工作階段的訊息也會到達此類型,每個都帶有[任務通知子類型](#task-notification-subkinds)中描述的 `subkind`。檢查 `kind` 以區分回答您提示的結果與注入的後續內容,然後在路由或抑制它們之前進行區分。如果您的應用程式[宣告排定的執行](#declare-a-scheduled-run),其結果也攜帶 `kind: "task-notification"`,因此不要僅在 `kind` 上抑制。1741`origin` 欄位會轉送觸發此結果之使用者訊息的 [`SDKMessageOrigin`](#sdkmessageorigin)。當 SDK 注入合成的後續回合(例如針對已完成的背景任務)時,產生的 `SDKResultMessage` 會攜帶 `origin: { kind: "task-notification" }`。觸發器已觸發的 routine,以及來自您其他工作階段、經伺服器驗證的訊息,也會以此 kind 到達,各自帶有[任務通知子類型](#task-notification-subkinds)中描述的 `subkind`。在路由或抑制結果之前,請檢查 `kind` 以區分回答您提示詞的結果與注入的後續回合。如果您的應用程式[宣告排程執行](#declare-a-scheduled-run),其結果也會攜帶 `kind: "task-notification"`,因此不要僅依 `kind` 來抑制。

1757 1742 

1758當多個背景任務完成一起排隊時,Claude Code 可以在一個轉換中回答它們,而不是每個一個轉換。每個完成仍會產生自己的結果與此來源。Claude Code 一起回答的完成中除最後一個外的所有完成都會按順序產生帶有 `num_turns: 0` 的空結果,最後一個的結果攜帶回答它們全部的轉換。1743當多個背景任務完成事件一起排入佇列時,Claude Code 可以在一個回合中回答它們,而不是每個一個回合。每個完成事件仍會產生自己帶有此 origin 的結果。在 Claude Code 一併回答的完成事件中,除最後一個之外,其餘都會依序產生 `num_turns: 0` 的空結果,而最後一個的結果則攜帶回答所有事件的那個回合。

1759 1744 

1760該欄位對於任何使用者轉換之前發出的結果(例如啟動錯誤)不存在。1745對於在任何使用者回合之前發出的結果(例如啟動錯誤),該欄位不存在。

1761 1746 

1762當 `PreToolUse` 鉤子傳回 `permissionDecision: "defer"` 時,結果具有 `stop_reason: "tool_deferred"` 和 `deferred_tool_use` 攜帶待處理工具的 `id`、`name` 和 `input`。讀取此欄位以在您自己的 UI 中呈現請求,然後使用相同的 `session_id` 恢復以繼續。請參閱[延遲工具呼叫以供稍後使用](/docs/zh-TW/hooks#defer-a-tool-call-for-later)以了解完整往返。1747當 `PreToolUse` hook 傳回 `permissionDecision: "defer"` 時,結果會帶有 `stop_reason: "tool_deferred"`,且 `deferred_tool_use` 攜帶待處理工具的 `id`、`name` 和 `input`。讀取此欄位以在您自己的 UI 中呈現請求,然後使用相同的 `session_id` 恢復以繼續。請參閱[延後工具呼叫以供稍後處理](/docs/zh-TW/hooks#defer-a-tool-call-for-later)以了解完整的往返流程。

1763 1748 

1764<h4 id="user_message_uuid">1749<h4 id="user_message_uuid">

1765 `user_message_uuid`1750 `user_message_uuid`

1766</h4>1751</h4>

1767 1752 

1768轉換回答的 [`SDKUserMessage`](#sdkusermessage) 的 `uuid`,回顯以便您可以將 Claude Code 的回覆與您傳送的訊息相匹配。Claude Code 僅在您在訊息上設定 uuid 時才回顯 `uuid`。該欄位在 `SDKUserMessage` 上是可選的,傳遞給 `query()` 的字串提示不攜帶任何。1753回合所回答之 [`SDKUserMessage`](#sdkusermessage) 的 `uuid`,回傳此值以便您將 Claude Code 的回覆與您傳送的訊息對應起來。只有在您於訊息上設定了 `uuid` 時,Claude Code 才會回傳它。該欄位在 `SDKUserMessage` 上是選用的,而傳遞給 `query()` 的字串提示詞不會攜帶任何 uuid。

1769 

1770轉換回答的訊息取決於轉換如何啟動:

1771 

1772* **您傳送的常規訊息**,意思是沒有 `isSynthetic: true` 的訊息:轉換在其整個執行過程中回答該訊息。當您一起傳送多個訊息時,Claude Code 可以將它們合併為一個轉換,該欄位然後僅攜帶最後一個訊息的 `uuid`。要將回覆與任何合併的訊息相匹配,請使用 [`user_message_uuids`](#user_message_uuids)。

1773*

1774 

1775**您傳送的帶有 `isSynthetic: true` 的訊息**:轉換最初回答該訊息。如果 Claude Code 在工具呼叫之間拾取您的常規訊息,轉換從那時起回答拾取的訊息。回顯合成訊息的 `uuid` 需要 Agent SDK v0.3.265 或更新版本;較早的版本在合成轉換上不回顯任何內容。

1776 

1777*

1778 

1779**Claude Code 在 [`CLAUDE_CODE_RESUME_INTERRUPTED_TURN`](/docs/zh-TW/env-vars) 下重新執行中斷轉換時生成的提示**:當中斷轉換的最後一個提示是您傳送的常規訊息時,無論它是開啟轉換還是 Claude Code 在轉換期間拾取它,重新執行最初回答該訊息。[`resume_reason`](#resume_reason) 告訴重新執行的框架來自中斷嘗試的。當最後一個提示不是您傳送的常規訊息時,重新執行最初不回答您的任何訊息。如果 Claude Code 在工具呼叫之間拾取您的常規訊息,轉換從那時起回答拾取的訊息。回顯中斷轉換的提示需要 Agent SDK v0.3.268 或更新版本。

1780 

1781*

1782 

1783**Claude Code 自己生成的任何其他提示**:轉換最初不回答您的任何訊息,其框架不攜帶任何回顯。如果 Claude Code 在工具呼叫之間拾取您的常規訊息,轉換從那時起回答該訊息。拾取回顯需要 Agent SDK v0.3.265 或更新版本;較早的版本在這些轉換上不回顯任何內容。

1784 1754 

1785Claude Code 在三種框架上回顯回答的訊息的 `uuid`:1755回合所回答的是您的哪則訊息,取決於回合的啟動方式:

1786 1756 

1787* **結果**:回答您傳送的訊息的轉換的每個結果。在 Agent SDK v0.3.265 或更新版本上,每個此類結果都攜帶它。在 v0.3.265 之前,常規訊息啟動的轉換的成功結果在轉換未傳送 API 請求或以延遲工具呼叫結束時缺少它。在 v0.3.246 之前,錯誤結果也缺少它,在 v0.3.216 之前每個結果都缺少它。1757* **您傳送的一般訊息**,即不帶 `isSynthetic: true` 的訊息:回合在整個執行過程中都回答該訊息。當您在短時間內傳送多則訊息時,Claude Code 可以將它們合併為一個回合,此時該欄位僅攜帶最後一則訊息的 `uuid`。若要將回覆與任何一則被合併的訊息對應,請使用 [`user_message_uuids`](#user_message_uuids)。

1788*1758* **您以 `isSynthetic: true` 傳送的訊息**:回合一開始回答該訊息。如果 Claude Code 在工具呼叫之間接收到您的一般訊息,回合從那時起改為回答所接收的訊息。回傳合成訊息的 `uuid` 需要 Agent SDK v0.3.265 或更新版本;較早的版本在合成回合上不會回傳任何內容。

1759* **Claude Code 在 [`CLAUDE_CODE_RESUME_INTERRUPTED_TURN`](/docs/zh-TW/env-vars) 下為重新執行中斷回合而產生的提示詞**:當中斷回合的最後一個提示詞是您傳送的一般訊息時,無論它是開啟該回合,還是 Claude Code 在回合期間接收到的,重新執行一開始都會回答該訊息。[`resume_reason`](#resume_reason) 可用來區分重新執行的框架與中斷嘗試的框架。當最後一個提示詞不是您的一般訊息時,重新執行一開始不回答您的任何訊息。如果 Claude Code 在工具呼叫之間接收到您的一般訊息,回合從那時起改為回答所接收的訊息。回傳中斷回合的提示詞需要 Agent SDK v0.3.268 或更新版本。

1760* **Claude Code 自行產生的任何其他提示詞**:回合一開始不回答您的任何訊息,其框架不攜帶任何回傳值。如果 Claude Code 在工具呼叫之間接收到您的一般訊息,回合從那時起回答該訊息。接收時的回傳需要 Agent SDK v0.3.265 或更新版本;較早的版本在這些回合上不會回傳任何內容。

1789 1761 

1790**轉換的第一個回覆**:第一個[助手訊息](#sdkassistantmessage),或使用 `includePartialMessages` 的第一個[串流事件](#sdkpartialassistantmessage),其 `event.type` 不是 `ping`,因此您可以在結果到達之前綁定回覆。當轉換不串流任何內容時,Claude Code 改為在第一個助手訊息上設定它。第一個回覆回顯需要 Agent SDK v0.3.246 或更新版本。當轉換回答的訊息在中途改變時,變更後的第一個回覆也攜帶該欄位,在 Agent SDK v0.3.265 或更新版本上;較早的版本在每個轉換上設定一個回覆框架。1762Claude Code 會在三種框架上回傳所回答訊息的 `uuid`:

1791 1763 

1792*1764* **結果**:回答了您所傳送訊息之回合的每個結果。在 Agent SDK v0.3.265 或更新版本上,每個此類結果都攜帶它。在 v0.3.265 之前,由一般訊息啟動之回合的成功結果,若該回合未傳送 API 請求或以延後的工具呼叫結束,則缺少此欄位。在 v0.3.246 之前,錯誤結果也缺少此欄位,而在 v0.3.216 之前,每個結果都缺少此欄位。

1765* **回合的第一個回覆**:第一個[助手訊息](#sdkassistantmessage),以及在使用 `includePartialMessages` 時,第一個 `event.type` 不是 `ping` 的[串流事件](#sdkpartialassistantmessage),讓您可以在結果到達之前對應回覆。第一個回覆的回傳需要 Agent SDK v0.3.246 或更新版本。在 v0.3.269 之前,使用 `includePartialMessages` 時,Claude Code 只會在該第一個串流事件上設定此欄位,或在回合未串流任何內容時設定在第一個助手訊息上。當回合所回答的訊息在回合中途變更時,變更後的第一個回覆也會攜帶該欄位,這在 Agent SDK v0.3.265 或更新版本上適用;較早的版本在每個回合只會於一個回覆框架上設定它。

1766* **回合的每個 [`thinking_tokens`](#sdkthinkingtokensmessage) 框架**:讓您無需等待回合的第一個回覆,就能將思考進度歸屬到您傳送的訊息。需要 Agent SDK v0.3.260 或更新版本。

1793 1767 

1794**轉換的每個 [`thinking_tokens`](#sdkthinkingtokensmessage) 框架**:以便您可以將思考進度歸因於您傳送的訊息,而無需等待轉換的第一個回覆。需要 Agent SDK v0.3.260 或更新版本。1768在下列情況中,Claude Code 會省略該欄位:

1795 1769 

1796Claude Code 在這些情況下省略該欄位:1770* 上述第一個回覆以外的回覆框架

1797 1771* Subagent 框架

1798* 除了那些第一個回覆之外的回覆框架1772* 不回答您任何訊息的回合,或回答您傳送之不帶 `uuid` 訊息的回合

1799* 子代理框架1773* 不回答您所傳送任何訊息的結果,例如工作程序當機後歸零的結果

1800* 回答沒有 `uuid` 的訊息的轉換,或回答您傳送的沒有 `uuid` 的訊息,或 Claude Code 啟動了轉換本身並拾取了沒有 `uuid` 的常規訊息

1801* 回答您未傳送的訊息的結果,例如崩潰的工作程序後的歸零結果

1802 1774 

1803<h4 id="user_message_uuids">1775<h4 id="user_message_uuids">

1804 `user_message_uuids`1776 `user_message_uuids`

1805</h4>1777</h4>

1806 1778 

1807您傳送的每個訊息的 `uuid`,Claude Code 在此轉換中回答了這些訊息。當您一起傳送多個訊息時,Claude Code 可以將它們合併為一個轉換,`user_message_uuid` 然後僅命名其中的最後一個。要將回覆與任何合併的訊息相匹配,請在此清單中的任何位置查找該訊息的 `uuid`。需要 Agent SDK v0.3.259 或更新版本。1779Claude Code 在此回合中回答的、您所傳送之每則訊息的 `uuid`。當您在短時間內傳送多則訊息時,Claude Code 可以將它們合併為一個回合,此時 `user_message_uuid` 只會指名其中的最後一則。若要將回覆與任何一則被合併的訊息對應,請在此清單中任何位置尋找該訊息的 `uuid`。需要 Agent SDK v0.3.259 或更新版本。

1808 1780 

1809Claude Code 在每個攜帶該欄位的回覆框架和結果上設定清單以及 `user_message_uuid`。有關攜帶 `user_message_uuid` 的完整框架集以及每個所需的版本,請參閱 [`user_message_uuid`](#user_message_uuid)。清單始終包含 `user_message_uuid` 並最多保留 64 個項目。1781Claude Code 會在每個攜帶 `user_message_uuid` 的回覆框架以及結果上,將此清單與該欄位一併設定。關於回傳所回答訊息之 `uuid` 的完整回合框架集合,以及各自所需的版本,請參閱 [`user_message_uuid`](#user_message_uuid)。清單一定包含 `user_message_uuid`,且最多保留 64 個項目。

1810 1782 

1811當 Claude Code 在轉換執行時拾取您傳送的常規訊息時,它會將該訊息的 `uuid` 新增到結果的清單中。1783當 Claude Code 在回合執行期間接收到您傳送的一般訊息時,會將該訊息的 `uuid` 新增到結果的清單中。

1812 1784 

1813當第一個回覆或結果攜帶 `user_message_uuid` 而沒有清單時,它來自較早的 Claude Code 版本,因此回退到單個欄位。1785當第一個回覆或結果攜帶 `user_message_uuid` 但沒有清單時,表示它來自較早的 Claude Code 版本,因此請改用該單一欄位。

1814 1786 

1815<h4 id="resume_reason">1787<h4 id="resume_reason">

1816 `resume_reason`1788 `resume_reason`

1817</h4>1789</h4>

1818 1790 

1819Claude Code 在重新啟動後重新執行此轉換的原因。Claude Code 在它在 [`CLAUDE_CODE_RESUME_INTERRUPTED_TURN`](/docs/zh-TW/env-vars) 下重新執行的轉換上設定此欄位,以便您可以區分重新執行的回覆和結果與中斷嘗試的。需要 Agent SDK v0.3.268 或更新版本。1791Claude Code 在重新啟動後重新執行此回合的原因。Claude Code 會在它依 [`CLAUDE_CODE_RESUME_INTERRUPTED_TURN`](/docs/zh-TW/env-vars) 重新執行的回合上設定此欄位,讓您能區分重新執行的回覆和結果與中斷嘗試的回覆和結果。需要 Agent SDK v0.3.268 或更新版本。

1820 1792 

1821Claude Code 在兩種框架上設定該欄位:1793Claude Code 會在兩種框架上設定此欄位:

1822 1794 

1823* **重新執行的結果**:在成功和錯誤分支上,無論結果是否攜帶 `user_message_uuid`。1795* **重新執行的結果**:在成功和錯誤分支上皆然,無論結果是否攜帶 `user_message_uuid`。

1824* **重新執行的回覆框架**:那些攜帶 [`user_message_uuid`](#user_message_uuid) 的。1796* **重新執行的回覆框架**:即攜帶 [`user_message_uuid`](#user_message_uuid) 的那些框架。

1825 1797 

1826該值是命名轉換重新執行原因的短小寫令牌,例如 `interrupted_turn`。該欄位在所有其他轉換上不存在。1798其值是一個簡短的小寫 token,指名回合重新執行的原因,例如 `interrupted_turn`。在所有其他回合上,此欄位不存在。

1827 1799 

1828<h4 id="queued_turn_count">1800<h4 id="queued_turn_count">

1829 `queued_turn_count`1801 `queued_turn_count`

1830</h4>1802</h4>

1831 1803 

1832您傳送的帶有 [`origin: { kind: "human" }`](#sdkmessageorigin) 的訊息數量,在 Claude Code 產生結果時仍在命令佇列中等待。需要 Agent SDK v0.3.242 或更新版本。1804您以 [`origin: { kind: "human" }`](#sdkmessageorigin) 傳送、在 Claude Code 產生結果時仍在命令佇列中等待的訊息數量。需要 Agent SDK v0.3.242 或更新版本。

1833 1805 

1834`0` 和不存在的欄位告訴您什麼:1806`0` 和不存在的欄位代表什麼:

1835 1807 

1836* **`0`**:Claude Code 不計算您傳送的沒有該 `origin` 的訊息,也不計算任務通知,因此轉換仍可能跟隨。1808* **`0`**:Claude Code 不會計算您未以該 `origin` 傳送的訊息,也不計算任務通知,因此仍可能有後續回合。

1837* **不存在**:Claude Code 在崩潰或致命啟動錯誤後發出的最終結果省略該欄位,並且[可能攜帶歸零的總計](/docs/zh-TW/agent-sdk/cost-tracking#recover-totals-after-a-session-crash)。1809* **不存在**:Claude Code 在當機或致命啟動錯誤後發出的最終結果會省略該欄位,且[可能攜帶歸零的總計](/docs/zh-TW/agent-sdk/cost-tracking#recover-totals-after-a-session-crash)。

1838 1810 

1839<h4 id="startup_failure_reason">1811<h4 id="startup_failure_reason">

1840 `startup_failure_reason`1812 `startup_failure_reason`

1841</h4>1813</h4>

1842 1814 

1843Claude Code 拒絕啟動的原因,以便您的應用程式可以提供修復而不是重試。Claude Code 在它在已知啟動失敗時寫入的 `error_during_execution` 結果上設定它。該結果攜帶歸零的總計,其 `errors` 陣列攜帶與 stderr 相同的文字。該欄位在所有其他結果上不存在。需要 Agent SDK v0.3.274 或更新版本。1815Claude Code 拒絕啟動的原因,讓您的應用程式可以提供修正方式而非重試。Claude Code 會在因已知啟動失敗而結束前寫入的 `error_during_execution` 結果上設定它。該結果攜帶歸零的總計,其 `errors` 陣列攜帶與 stderr 相同的文字。在所有其他結果上,此欄位不存在。需要 Agent SDK v0.3.274 或更新版本。

1844 1816 

1845在 [`env`](#options) 中設定 `CLAUDE_CODE_STARTUP_FAILURE_RESULTS` 為 `1` 以接收每個 `SDKStartupFailureReason` 值的此結果。沒有該變數,Claude Code 僅為這些失敗寫入結果,其餘的以 stderr 輸出、非零退出和無結果訊息結束:1817在 [`env`](#options) 中將 `CLAUDE_CODE_STARTUP_FAILURE_RESULTS` 設定為 `1`,即可針對每個 `SDKStartupFailureReason` 值接收此結果。若未設定該變數,Claude Code 僅會針對下列失敗寫入結果,其餘失敗則以 stderr 輸出、非零結束代碼且無結果訊息的方式結束:

1846 1818 

1847* Claude Code 停止的恢復,因為它[無法將工作階段返回到其工作樹](/docs/zh-TW/worktrees#the-session-resumes-outside-its-worktree),帶有 `worktree_unverified` 或 `worktree_resume_refused`。該部分說明哪個錯誤攜帶哪個值。1819* Claude Code 因[無法將工作階段帶回其 worktree](/docs/zh-TW/worktrees#the-session-resumes-outside-its-worktree) 而停止的恢復,帶有 `worktree_unverified` 或 `worktree_resume_refused`。該章節說明哪個錯誤攜帶哪個值。

1848* 拒絕的背景工作階段持有的對話的 [`continue`](#options),帶有 `session_held_by_background`。對於此類對話的拒絕 [`resume`](#options),Claude Code 僅在設定變數時寫入結果。1820* 對背景工作階段所持有之對話的 [`continue`](#options) 遭拒,帶有 `session_held_by_background`。對於此類對話的 [`resume`](#options) 遭拒,Claude Code 僅在設定了該變數時才會寫入結果。

1849 1821 

1850```typescript theme={null}1822```typescript theme={null}

1851type SDKStartupFailureReason =1823type SDKStartupFailureReason =


1868 | "bypass_root";1840 | "bypass_root";

1869```1841```

1870 1842 

1871每個值命名一個拒絕:1843每個值指名一種拒絕:

1872 1844 

1873| 值 | 什麼停止了工作階段 |1845| 值 | 停止工作階段的原因 |

1874| :- | :- |1846| :- | :- |

1875| `org_pin_api_key_conflict` | 受管設定[需要第一方或 Cloud 閘道登入](/docs/zh-TW/authentication#restrict-login-to-your-organization),並且已設定 Anthropic API 金鑰、驗證令牌或 `apiKeyHelper` |1847| `org_pin_api_key_conflict` | 受管設定[要求第一方或 Cloud 閘道登入](/docs/zh-TW/authentication#restrict-login-to-your-organization),但設定的卻是 Anthropic API 金鑰、驗證 token 或 `apiKeyHelper` |

1876| `provider_not_allowed` | 受管設定[列出此機器可能使用的 API 提供者](/docs/zh-TW/settings-reference#allowedproviders),工作階段設定為不在清單中的提供者,或設定未固定的端點。需要 Claude Code v2.1.285 或更新版本 |1848| `provider_not_allowed` | 受管設定[列出此機器可使用的 API 提供者](/docs/zh-TW/settings-reference#allowedproviders),而工作階段設定的提供者不在清單中,或設定的端點未被這些設定固定。需要 Claude Code v2.1.285 或更新版本 |

1877| `org_verify_failed` | 登入的組織無法針對 pin 進行驗證,例如由於網路故障或已撤銷的令牌 |1849| `org_verify_failed` | 無法依據 pin 驗證登入的組織,例如因為網路故障或 token 已撤銷 |

1878| `org_pin_mismatch` | 登入屬於 pin 不允許的組織 |1850| `org_pin_mismatch` | 登入屬於 pin 不允許的組織 |

1879| `managed_settings_invalid` | 無法讀取受管原則設定,pin 未命名任何組織,或[受管模型限制](/docs/zh-TW/errors#managed-settings-block-the-default-model)不為預設選項留下任何允許的模型 |1851| `managed_settings_invalid` | 無法讀取受管原則設定、pin 未指名任何組織,或[受管模型限制](/docs/zh-TW/errors#managed-settings-block-the-default-model)導致預設選項沒有任何允許的模型 |

1880| `remote_settings_required_unavailable` | 組織所需的受管設定無法載入 |1852| `remote_settings_required_unavailable` | 無法載入組織要求的受管設定 |

1881| `gateway_signin_required` | [Cloud 閘道](/docs/zh-TW/claude-apps-gateway)結束了此登入 |1853| `gateway_signin_required` | [Cloud 閘道](/docs/zh-TW/claude-apps-gateway)結束了此登入 |

1882| `gateway_access_denied` | 對 Cloud 閘道的受管設定請求返回 403,閘道的[疑難排解表](/docs/zh-TW/claude-apps-gateway-deploy#troubleshooting)涵蓋了此情況 |1854| `gateway_access_denied` | 對 Cloud 閘道的受管設定請求傳回 403,閘道的[疑難排解表](/docs/zh-TW/claude-apps-gateway-deploy#troubleshooting)涵蓋了此情況 |

1883| `proxy_invalid` | 代理設定不是完整的 URL |1855| `proxy_invalid` | 代理伺服器設定不是完整的 URL |

1884| `temp_dir_unusable` | 每個使用者的臨時目錄不安全或無法建立 |1856| `temp_dir_unusable` | 每位使用者的暫存目錄不安全或無法建立 |

1885| `cwd_unavailable` | 工作目錄已刪除、移動或無法讀取 |1857| `cwd_unavailable` | 工作目錄已被刪除、移動或無法讀取 |

1886| `shell_tool_missing` | 在 Windows 上,沒有可用的 shell 工具:Git Bash 遺失,PowerShell 遺失或使用 `CLAUDE_CODE_USE_POWERSHELL_TOOL` 關閉 |1858| `shell_tool_missing` | 在 Windows 上沒有可用的 shell 工具:Git Bash 不存在,而 PowerShell 不存在或已透過 `CLAUDE_CODE_USE_POWERSHELL_TOOL` 關閉 |

1887| `session_held_by_background` | 要恢復或繼續的對話作為[背景工作階段](/docs/zh-TW/agent-view)執行 |1859| `session_held_by_background` | 要恢復或繼續的對話正作為[背景工作階段](/docs/zh-TW/agent-view)執行 |

1888| `worktree_resume_refused` | 工作階段的工作樹未通過其安全檢查,或恢復是從其內部啟動的。`errors` 說明執行相同恢復是否繼續而不使用工作樹 |1860| `worktree_resume_refused` | 工作階段的 worktree 未通過安全檢查,或恢復是從其內部啟動的。`errors` 會說明再次執行相同的恢復是否會在沒有 worktree 的情況下繼續 |

1889| `worktree_unverified` | 工作階段的工作樹現在無法驗證,重試可能會成功 |1861| `worktree_unverified` | 目前無法驗證工作階段的 worktree,重試可能會成功 |

1890| `cli_version_too_old` | 此 Claude Code 版本低於 Anthropic 所需的最低版本 |1862| `cli_version_too_old` | 此 Claude Code 版本低於 Anthropic 要求的最低版本 |

1891| `bypass_root` | 在以 root 身份執行時請求了繞過權限模式 |1863| `bypass_root` | 以 root 身分執行時請求了略過權限模式 |

1892 1864 

1893<h3 id="sdksystemmessage">1865<h3 id="sdksystemmessage">

1894 `SDKSystemMessage`1866 `SDKSystemMessage`


1933};1905};

1934```1906```

1935 1907 

1936`fast_mode_state` 報告工作階段的[快速模式](/docs/zh-TW/fast-mode)狀態。當某些東西阻止快速模式時,`fast_mode_disabled_reason` 命名阻止它的檢查;該欄位需要 Claude Code v2.1.219 或更新版本。有關原因代碼及其含義,請參閱結果訊息上的 [`fast_mode_disabled_reason`](#sdkresultmessage)。1908`fast_mode_state` 回報工作階段的[快速模式](/docs/zh-TW/fast-mode)狀態。當有因素阻止快速模式時,`fast_mode_disabled_reason` 會指名阻止它的檢查;該欄位需要 Claude Code v2.1.219 或更新版本。關於原因代碼及其含義,請參閱結果訊息上的 [`fast_mode_disabled_reason`](#sdkresultmessage)。

1937 

1938`terminal_slash_commands` 命名 `slash_commands` 中的項目,其介面綁定到本地終端,例如 `exit`。您可以像 `slash_commands` 中的任何其他項目一樣傳送它們;該欄位的存在是為了遠端或行動使用者可以從其命令選單中隱藏它們。該欄位僅在非空時存在,需要 Agent SDK v0.3.229 或更新版本。

1939 

1940*

1941 1909 

1942每個 `mcp_servers` 項目上的 `source`:伺服器定義的來源,與 [`McpServerStatus`](#mcpserverstatus) 的 `source` 具有相同的值。需要 Agent SDK v0.3.274 或更新版本。1910`terminal_slash_commands` 指名 `slash_commands` 中介面綁定於本機終端機的項目,例如 `exit`。您可以像傳送 `slash_commands` 中的任何其他項目一樣傳送它們;此欄位的存在是為了讓遠端或行動用戶端能將它們從命令選單中隱藏。此欄位僅在非空時存在,需要 Agent SDK v0.3.229 或更新版本。

1943 1911 

1944*1912* 每個 `mcp_servers` 項目上的 `source`:伺服器定義的來源,其值與 [`McpServerStatus`](#mcpserverstatus) 的 `source` 相同。需要 Agent SDK v0.3.274 或更新版本。

1913* `effort`:Claude Code 在工作階段下一個請求上傳送的 [effort 等級](/docs/zh-TW/model-config#adjust-effort-level),若不傳送則為 `null`。Claude Code 只會在傳送給 [Remote Control](/docs/zh-TW/remote-control) 用戶端的 init 訊息上設定此欄位,並會從您應用程式讀取的 init 訊息中省略它。需要 Agent SDK v0.3.234 或更新版本。

1945 1914 

1946`effort`:[努力級別](/docs/zh-TW/model-config#adjust-effort-level) Claude Code 在工作階段的下一個請求上傳送,或當它不傳送任何時為 `null`。Claude Code 僅在它傳送給[遠端控制](/docs/zh-TW/remote-control)使用者的初始化訊息上設定該欄位,並從您的應用程式讀取的初始化訊息中省略它。需要 Agent SDK v0.3.234 或更新版本。1915`capabilities` 陣列指名此 CLI 實作的協定行為,讓您可以進行功能偵測,而不是比較 `claude_code_version` 字串。這是一個開放集合:請忽略您不認識的值,並檢查您所依賴之行為對應的特定功能。此欄位需要 Claude Code v2.1.205 或更新版本,在較早的 CLI 上不存在。

1947 

1948`capabilities` 陣列命名此 CLI 實現的協議行為,因此您可以進行功能偵測而不是比較 `claude_code_version` 字串。這是一個開放集合:忽略您不認識的值,並檢查您依賴其行為的特定功能。該欄位需要 Claude Code v2.1.205 或更新版本,在較早的 CLI 上不存在。

1949 1916 

1950| 功能 | 含義 |1917| 功能 | 含義 |

1951| - | - |1918| - | - |

1952| `interrupt_receipt_v1` | [`interrupt()`](#query-object) 使用列出中斷到達時待處理的訊息的 [`SDKControlInterruptResponse`](#sdkcontrolinterruptresponse) 收據進行解析 |1919| `interrupt_receipt_v1` | [`interrupt()`](#query-object) 會以 [`SDKControlInterruptResponse`](#sdkcontrolinterruptresponse) 收據解析,其中列出中斷到達時仍待處理的訊息 |

1953| `interrupt_cancel_queued_v1` | |1920| `interrupt_cancel_queued_v1` | `interrupt` 控制請求會遵循 `cancel_queued: true`,取消收據原本會列在 `still_queued` 下的訊息,並改為列在 `cancelled` 下。請參閱 [`SDKControlInterruptResponse`](#sdkcontrolinterruptresponse)。需要 Claude Code v2.1.219 或更新版本 |

1954| `interrupt` 控制請求尊重 `cancel_queued: true`,取消收據在 `still_queued` 下列出的訊息,並改為在 `cancelled` 下列出它們。請參閱 [`SDKControlInterruptResponse`](#sdkcontrolinterruptresponse)。需要 Claude Code v2.1.219 或更新版本 | |

1955 1921 

1956`plugin_errors` 陣列列出外掛程式載入失敗。項目描述未載入且在 `plugins` 中不存在的外掛程式,或載入時沒有其部分之一(例如其 hooks 檔案)的外掛程式。當沒有任何東西失敗時,該鍵被省略。`SDKSystemMessage` 在 Agent SDK v0.3.283 或更新版本中宣告 `plugin_errors`。1922`plugin_errors` 陣列列出外掛載入失敗。項目描述的可能是未載入且不在 `plugins` 中的外掛,或是載入時缺少其中某部分(例如其 hooks 檔案)的外掛。沒有任何失敗時,會省略此鍵。`SDKSystemMessage` 在 Agent SDK v0.3.283 或更新版本中宣告 `plugin_errors`。

1957 1923 

1958當您的 [`plugins` 選項](#options)中的目錄或存檔本身無法載入時,項目的 `plugin` 欄位保留位置標籤(例如 `inline[0]`)而不是外掛程式名稱。例如,當路徑不存在或清單無效時會發生這種情況。通過其 `path` 欄位將此類項目與您的選項相匹配。1924當您 [`plugins` 選項](#options)中的目錄或封存檔本身無法載入時,項目的 `plugin` 欄位會保存位置標籤(例如 `inline[0]`),而不是外掛名稱。例如,當路徑不存在或 manifest 無效時,就會發生這種情況。請透過其 `path` 欄位將此類項目與您的選項對應。

1959 1925 

1960下表列出每個 `plugin_errors` 項目的欄位。1926下表列出每個 `plugin_errors` 項目的欄位。

1961 1927 

1962| 欄位 | 類型 | 描述 |1928| 欄位 | 類型 | 描述 |

1963| - | - | - |1929| - | - | - |

1964| `plugin` | `string` | 失敗外掛程式的 ID,或位置標籤(例如 `inline[0]`),當外掛程式目錄或存檔本身無法載入時 |1930| `plugin` | `string` | 失敗外掛的 ID;當外掛目錄或封存檔本身無法載入時,則為位置標籤,例如 `inline[0]` |

1965| `type` | `string` | 來自開放集合的錯誤類別,例如 `path-not-found` 或 `manifest-validation-error`。將您不認識的值視為通用失敗 |1931| `type` | `string` | 來自開放集合的錯誤類別,例如 `path-not-found` 或 `manifest-validation-error`。請將您不認識的值視為一般失敗 |

1966| `message` | `string` | 描述失敗的顯示文字 |1932| `message` | `string` | 描述失敗的顯示文字 |

1967| `path` | `string` | 僅當外掛程式目錄或存檔本身無法載入時存在。其絕對路徑,相對路徑從您的 `plugins` 選項針對 [`cwd`](#options) 選項進行解析 |1933| `path` | `string` | 僅當外掛目錄或封存檔本身無法載入時存在。為其絕對路徑,您 `plugins` 選項中的相對路徑會以 [`cwd`](#options) 選項為基準解析 |

1968 1934 

1969<h3 id="sdkpartialassistantmessage">1935<h3 id="sdkpartialassistantmessage">

1970 `SDKPartialAssistantMessage`1936 `SDKPartialAssistantMessage`

1971</h3>1937</h3>

1972 1938 

1973串流部分訊息(僅當 `includePartialMessages` 為 true 時)。`parent_tool_use_id` 欄位始終為 `null`:串流事件僅針對主工作階段發出。對於子代理歸因,使用完整訊息,其攜帶 `parent_tool_use_id`,或啟用 [`forwardSubagentText`](#options) 以接收子代理文字和思考作為完整訊息。1939串流部分訊息(僅當 `includePartialMessages` 為 true 時)。`parent_tool_use_id` 欄位一律為 `null`:串流事件僅針對主工作階段發出。若要進行 subagent 歸屬,請使用攜帶 `parent_tool_use_id` 的完整訊息,或啟用 [`forwardSubagentText`](#options) 以完整訊息形式接收 subagent 的文字和思考。

1974 1940 

1975```typescript theme={null}1941```typescript theme={null}

1976type SDKPartialAssistantMessage = {1942type SDKPartialAssistantMessage = {


1986};1952};

1987```1953```

1988 1954 

1989Claude Code 在轉換的第一個非 ping 串流事件上設定 `user_message_uuid` 和 `user_message_uuids`,並在轉換回答的訊息改變時再次設定,條件在 [`user_message_uuid`](#user_message_uuid) 中。當 Claude Code 重新執行被重新啟動中斷的轉換時,重新執行的串流事件如果攜帶這些欄位,也會攜帶 [`resume_reason`](#resume_reason)。1955Claude Code 會在回合的第一個非 ping 串流事件上設定 `user_message_uuid` 和 `user_message_uuids`,並在回合所回答的訊息變更時再次設定,條件請見 [`user_message_uuid`](#user_message_uuid)。當 Claude Code 重新執行被重新啟動中斷的回合時,重新執行中攜帶這些欄位的串流事件也會攜帶 [`resume_reason`](#resume_reason)。

1990 1956 

1991<h3 id="sdkcompactboundarymessage">1957<h3 id="sdkcompactboundarymessage">

1992 `SDKCompactBoundaryMessage`1958 `SDKCompactBoundaryMessage`

1993</h3>1959</h3>

1994 1960 

1995指示對話壓縮邊界的訊息。1961表示對話壓縮邊界的訊息。

1996 1962 

1997```typescript theme={null}1963```typescript theme={null}

1998type SDKCompactBoundaryMessage = {1964type SDKCompactBoundaryMessage = {


2011 `SDKInformationalMessage`1977 `SDKInformationalMessage`

2012</h3>1978</h3>

2013 1979 

2014迴圈發出的通用文字橫幅。攜帶警告、通知和其他非錯誤狀態行 Claude Code 引發,以及鉤子反饋,例如 `UserPromptSubmit` 鉤子的區塊原因。1980由迴圈發出的通用文字橫幅。攜帶 Claude Code 提出的警告、通知和其他非錯誤狀態行,以及 hook 回饋,例如 `UserPromptSubmit` hook 的封鎖原因。

2015 1981 

2016在 Claude Code v2.1.227 或更新版本上,鉤子的 [`systemMessage`](/docs/zh-TW/hooks#json-output) 可以作為此訊息到達,每行前綴為鉤子的名稱,例如 `PostToolUse:Bash says:`。每個[事件的部分](/docs/zh-TW/hooks#hook-events)在鉤子頁面上說明輸出如何呈現。1982在 Claude Code v2.1.227 或更新版本上,hook 的 [`systemMessage`](/docs/zh-TW/hooks#json-output) 可能以此訊息到達,每一行都會加上 hook 名稱作為前綴,例如 `PostToolUse:Bash says:`。hooks 頁面上每個[事件的章節](/docs/zh-TW/hooks#hook-events)會說明輸出如何呈現。

2017 1983 

2018將 `content` 呈現為給定 `level` 的純文字。1984請以給定的 `level` 將 `content` 呈現為純文字。

2019 1985 

2020```typescript theme={null}1986```typescript theme={null}

2021type SDKInformationalMessage = {1987type SDKInformationalMessage = {


2034 `SDKWorkerShuttingDownMessage`2000 `SDKWorkerShuttingDownMessage`

2035</h3>2001</h3>

2036 2002 

2037在正常工作程序拆卸時發出,以便遠端使用者可以顯示工作程序退出的原因,而不是等待心跳超時。`reason` 是由主機 CLI 設定的短 snake\_case 字串,例如 `"host_exit"` 或 `"remote_control_disabled"`。僅在即時串流時對此採取行動。恢復的工作階段會重播此訊息的過去實例,因此在這種情況下忽略它們。2003在工作程序正常關閉時發出,讓遠端用戶端可以顯示工作程序結束的原因,而不必等待心跳逾時。`reason` 是由主機 CLI 設定的簡短 snake\_case 字串,例如 `"host_exit"` 或 `"remote_control_disabled"`。僅在即時串流時據此採取動作。恢復的工作階段會重播此訊息過去的實例,因此在這種情況下請忽略它們。

2038 2004 

2039```typescript theme={null}2005```typescript theme={null}

2040type SDKWorkerShuttingDownMessage = {2006type SDKWorkerShuttingDownMessage = {


2050 `SDKPluginInstallMessage`2016 `SDKPluginInstallMessage`

2051</h3>2017</h3>

2052 2018 

2053外掛程式安裝進度事件。當設定 [`CLAUDE_CODE_SYNC_PLUGIN_INSTALL`](/docs/zh-TW/env-vars) 時發出,以便您的 Agent SDK 應用程式可以在第一個轉換之前追蹤市場外掛程式安裝。`started` 和 `completed` 狀態括住整體安裝。`installed` 和 `failed` 狀態報告個別市場並包含 `name`。2019外掛安裝進度事件。在設定 [`CLAUDE_CODE_SYNC_PLUGIN_INSTALL`](/docs/zh-TW/env-vars) 時發出,讓您的 Agent SDK 應用程式可以在第一個回合之前追蹤市集外掛的安裝。`started` 和 `completed` 狀態標示整體安裝的開始與結束。`installed` 和 `failed` 狀態回報個別市集,並包含 `name`。

2054 2020 

2055```typescript theme={null}2021```typescript theme={null}

2056type SDKPluginInstallMessage = {2022type SDKPluginInstallMessage = {


2068 `SDKPermissionDeniedMessage`2034 `SDKPermissionDeniedMessage`

2069</h3>2035</h3>

2070 2036 

2071當權限系統在沒有互動式提示的情況下拒絕工具呼叫時發出的串流事件。使用它在您的 UI 中即時呈現拒絕,而不是僅觀察隨後的 `is_error` 工具結果。它報告的拒絕取決於執行如何處理權限提示:2037當權限系統在沒有互動式權限提示的情況下拒絕工具呼叫時發出的串流事件。使用它在您的 UI 中即時呈現拒絕,而不是只觀察隨後的 `is_error` 工具結果。它回報哪些拒絕,取決於執行如何處理權限提示:

2072 

2073* **使用 [`canUseTool`](#canusetool) 回呼**和預設 [`permissionPrompts: 'host'`](#options):權限提示進入您的回呼,此事件報告 Claude Code 自己決定的拒絕,而不呼叫它。

2074*

2075 2038 

2076**都沒有**:裸 `-p` 執行,或 `query()` 既不設定 `canUseTool` 也不設定 `permissionPromptToolName`,拒絕任何會提示的工具呼叫,此事件報告這些拒絕以及 Claude Code 自己決定的拒絕。在 v2.1.223 之前,Claude Code 在沒有回呼的執行中不發出此事件。2039* **使用 [`canUseTool`](#canusetool) 回呼**且採用預設的 [`permissionPrompts: 'host'`](#options):權限提示會交給您的回呼,此事件回報 Claude Code 不呼叫回呼而自行決定的拒絕。

2040* **兩者皆無**:單純的 `-p` 執行,或既未設定 `canUseTool` 也未設定 `permissionPromptToolName` 的 `query()`,會拒絕任何原本會提示的工具呼叫,此事件會回報這些拒絕以及 Claude Code 自行決定的拒絕。在 v2.1.223 之前,Claude Code 在沒有回呼的執行中不會發出此事件。

2041* **使用 MCP 提示工具**(透過 `permissionPromptToolName` 或 [`--permission-prompt-tool`](/docs/zh-TW/cli-reference#cli-flags) 旗標設定)且採用預設的 `permissionPrompts: 'host'`:Claude Code 完全不會發出此事件,即使是它自行決定的規則拒絕也不會。

2042* **使用 [`permissionPrompts: 'none'`](#options)**:即使同時設定了 `canUseTool` 或 MCP 提示工具,Claude Code 仍會拒絕原本會提示的呼叫,此事件會回報這些拒絕以及 Claude Code 自行決定的拒絕。需要 Claude Code v2.1.259 或更新版本。

2077 2043 

2078* **使用 MCP 提示工具**,使用 `permissionPromptToolName` 或 [`--permission-prompt-tool`](/docs/zh-TW/cli-reference#cli-flags) 旗標設定,以及預設 `permissionPrompts: 'host'`:Claude Code 根本不發出此事件,甚至不發出它自己決定的規則拒絕。2044在任何設定下,此事件都會略過在 `PreToolUse` hook 路徑上決定的拒絕,無論是 hook 本身拒絕了呼叫,還是拒絕規則覆寫了 hook 的允許或詢問決定。此事件也是盡力而為:Claude Code 偶爾會記錄拒絕而不發出此事件,因此[結果訊息](#sdkresultmessage)上的 `permission_denials` 才是權威記錄。

2079*

2080 

2081**使用 [`permissionPrompts: 'none'`](#options)**:Claude Code 拒絕會提示的呼叫,即使也設定了 `canUseTool` 或 MCP 提示工具,此事件報告這些拒絕以及 Claude Code 自己決定的拒絕。需要 Claude Code v2.1.259 或更新版本。

2082 

2083在每個設定中,此事件跳過在 `PreToolUse` 鉤子路徑上決定的任何拒絕,無論鉤子本身拒絕了呼叫還是拒絕規則覆蓋了鉤子的允許或詢問決定。該事件也是盡力而為:偶爾 Claude Code 會記錄拒絕而不發出此事件,因此[結果訊息](#sdkresultmessage)上的 `permission_denials` 是權威記錄。

2084 2045 

2085```typescript theme={null}2046```typescript theme={null}

2086type SDKPermissionDeniedMessage = {2047type SDKPermissionDeniedMessage = {


2099 2060 

2100| 欄位 | 類型 | 描述 |2061| 欄位 | 類型 | 描述 |

2101| - | - | - |2062| - | - | - |

2102| `tool_name` | `string` | 被拒絕的工具的名稱 |2063| `tool_name` | `string` | 被拒絕之工具的名稱 |

2103| `tool_use_id` | `string` | 此拒絕回答的 `tool_use` 區塊的 ID |2064| `tool_use_id` | `string` | 此拒絕所回應之 `tool_use` 區塊的 ID |

2104| `agent_id` | `string` | 當拒絕的呼叫源自子代理內部時的子代理 ID。鏡像 `can_use_tool` 上的欄位以進行主機端路由 |2065| `agent_id` | `string` | 當被拒絕的呼叫源自 subagent 內部時,該 subagent 的 ID。對應 `can_use_tool` 上的欄位,以便在主機端進行路由 |

2105| `decision_reason_type` | `string` | 決定組件的判別器,例如 `"rule"`、`"mode"`、`"classifier"` 或 `"asyncAgent"` |2066| `decision_reason_type` | `string` | 做出決定之元件的判別值,例如 `"rule"`、`"mode"`、`"classifier"` 或 `"asyncAgent"` |

2106| `decision_reason` | `string` | 決定組件的人類可讀原因(如果可用) |2067| `decision_reason` | `string` | 做出決定之元件提供的人類可讀原因(若有) |

2107| `message` | `string` | 在 `tool_result` 中傳回給模型的拒絕訊息 |2068| `message` | `string` | 在 `tool_result` 中傳回給模型的拒絕訊息 |

2108 2069 

2109<h3 id="sdkpermissiondenial">2070<h3 id="sdkpermissiondenial">

2110 `SDKPermissionDenial`2071 `SDKPermissionDenial`

2111</h3>2072</h3>

2112 2073 

2113有關被拒絕的工具使用的資訊。2074關於被拒絕之工具使用的資訊。

2114 2075 

2115```typescript theme={null}2076```typescript theme={null}

2116type SDKPermissionDenial = {2077type SDKPermissionDenial = {


2124 `SDKContextUsage`2085 `SDKContextUsage`

2125</h3>2086</h3>

2126 2087 

2127`/context` 報告的結構化形式,作為 `context_usage` 在傳遞 `/context` 結果的 [`SDKAssistantMessage`](#sdkassistantmessage) 上進行。Agent SDK v0.3.232 及更新版本匯出該類型。與 [`SDKControlGetContextUsageResponse`](#sdkcontrolgetcontextusageresponse) 不同,它僅攜帶呈現使用情況明細所需的資料,不包含 `color` 和 `gridRows` 等顯示欄位。Claude Code 使用令牌計數 API 請求計算報告,這些請求不會出現在訊息串流中;請參閱[這些請求如何處理](#sdkcontrolgetcontextusageresponse)。2088`/context` 報告的結構化形式,以 `context_usage` 攜帶在傳遞 `/context` 結果的 [`SDKAssistantMessage`](#sdkassistantmessage) 上。Agent SDK v0.3.232 及更新版本會匯出此類型。與 [`SDKControlGetContextUsageResponse`](#sdkcontrolgetcontextusageresponse) 不同,它只攜帶呈現使用情況明細所需的資料,不含 `color` 和 `gridRows` 等顯示欄位。Claude Code 使用不會出現在訊息串流中的 token 計數 API 請求來計算報告;請參閱[這些請求的處理方式](#sdkcontrolgetcontextusageresponse)。

2128 2089 

2129```typescript theme={null}2090```typescript theme={null}

2130type SDKContextUsage = {2091type SDKContextUsage = {


2161};2122};

2162```2123```

2163 2124 

2164該表列出 Claude Code 在每個欄位中放置的內容。從 `model` 到 `over_limit` 的欄位描述整個工作階段,集合欄位將令牌歸因於個別項目。2125下表列出 Claude Code 在每個欄位中放入的內容。從 `model` 到 `over_limit` 的欄位描述整個工作階段,集合欄位則將 token 歸屬到個別項目。

2165 2126 

2166| 欄位 | 類型 | 描述 |2127| 欄位 | 類型 | 描述 |

2167| - | - | - |2128| - | - | - |

2168| `model` | `string` | Claude Code 計算使用情況的主迴圈的模型,不是子代理的 |2129| `model` | `string` | Claude Code 據以計算使用情況的主迴圈模型,而非 subagent 的模型 |

2169| `total_tokens` | `number` | Claude Code 對使用中令牌的估計。未限制在視窗中,因此當工作階段超過限制時可以超過 `raw_max_tokens` |2130| `total_tokens` | `number` | Claude Code 對使用中 token 的估計。不受視窗限制,因此當工作階段超過上限時可能超過 `raw_max_tokens` |

2170| `raw_max_tokens` | `number` | 模型的內容視窗,或較低的[自動壓縮視窗](/docs/zh-TW/model-config#context-window-and-auto-compaction)(當適用時),例如您設定的或 Claude Code 應用於某些具有 1M 令牌視窗的模型的 200K 邊界。Claude Code 根據此視窗測量 `total_tokens` |2131| `raw_max_tokens` | `number` | 模型的上下文視窗,或在適用時採用較低的[自動壓縮視窗](/docs/zh-TW/model-config#context-window-and-auto-compaction),例如您設定的視窗,或 Claude Code 對某些具有 1M token 視窗之模型套用的 200K 邊界。Claude Code 以此視窗衡量 `total_tokens` |

2171| `percentage` | `number` | `total_tokens` 作為 `raw_max_tokens` 的四捨五入百分比,因此當工作階段超過限制時可以超過 100 |2132| `percentage` | `number` | `total_tokens` 佔 `raw_max_tokens` 的四捨五入百分比,因此當工作階段超過上限時可能超過 100 |

2172| `over_limit` | `object` | 僅當 `total_tokens` 超過 `raw_max_tokens` 時存在。`tokens_over` 是超過的金額,`kind` 說明 Claude Code 如何解決視窗 |2133| `over_limit` | `object` | 僅當 `total_tokens` 超過 `raw_max_tokens` 時存在。`tokens_over` 是超出的數量,`kind` 說明 Claude Code 如何判定視窗 |

2173| `categories` | [`SDKContextUsageCategory`](#sdkcontextusagecategory)`[]` | 使用情況按類別明細的每一行一個項目 |2134| `categories` | [`SDKContextUsageCategory`](#sdkcontextusagecategory)`[]` | 依類別之使用情況明細中的每一列各一個項目 |

2174| `mcp_tools` | `object[]` | 歸因於每個 MCP 工具的令牌,帶有其線路名稱(例如 `mcp__linear__create_issue`)和其 `server_name` |2135| `mcp_tools` | `object[]` | 歸屬於每個 MCP 工具的 token,附上其傳輸名稱(例如 `mcp__linear__create_issue`)及其 `server_name` |

2175| `memory_files` | `object[]` | 歸因於每個載入的記憶檔案的令牌,帶有其 `path` 和來源標籤(例如 `Project` 或 `User`)在 `type` 中 |2136| `memory_files` | `object[]` | 歸屬於每個已載入記憶檔案的 token,附上其 `path`,以及 `type` 中的來源標籤,例如 `Project` 或 `User` |

2176| `agents` | `object[]` | 歸因於每個自訂子代理定義的令牌,帶有來源識別碼,例如 `projectSettings`、`userSettings` 或 `plugin`。內建子代理未列出 |2137| `agents` | `object[]` | 歸屬於每個自訂 subagent 定義的 token,附上來源識別碼,例如 `projectSettings`、`userSettings` 或 `plugin`。不列出內建 subagent |

2177| `skills` | `object[]` | 歸因於技能清單中每個技能的令牌,帶有來源識別碼,對於外掛程式技能,外掛程式的名稱在 `plugin_name` 中。當沒有技能貢獻令牌時不存在 |2138| `skills` | `object[]` | 歸屬於 skill 清單中每個 skill 的 token,附上來源識別碼;對於外掛 skill,`plugin_name` 中為外掛名稱。沒有任何 skill 佔用 token 時不存在 |

2178 2139 

2179`over_limit.kind` 記錄 Claude Code 如何解決視窗,而不是 API 是否接受下一個請求:2140`over_limit.kind` 記錄 Claude Code 如何判定視窗,而不是 API 是否接受下一個請求:

2180 2141 

2181* `hard_limit`:視窗是 Claude Code 認為是模型自己的限制,超過該限制 API 拒絕請求2142* `hard_limit`:視窗是 Claude Code 認定的模型本身上限,超過後 API 會拒絕請求

2182* `compaction_window`:視窗是壓縮原則視窗,可能與模型的限制一致,也可能不一致2143* `compaction_window`:視窗是壓縮原則所用的視窗,可能與模型的上限一致,也可能不一致

2183 2144 

2184Claude Code 以加法方式演進該類型,添加新資料作為可選欄位,而不是重新塑造現有欄位。讀取您知道的欄位並忽略您不認識的任何欄位。2145Claude Code 以增量方式演進此類型,以選用欄位加入新資料,而不是重塑現有欄位。請讀取您已知的欄位,並忽略任何您不認識的欄位。

2185 2146 

2186<h3 id="sdkcontextusagecategory">2147<h3 id="sdkcontextusagecategory">

2187 `SDKContextUsageCategory`2148 `SDKContextUsageCategory`

2188</h3>2149</h3>

2189 2150 

2190`/context` 使用情況按類別明細的一行。2151`/context` 依類別之使用情況明細中的一列。

2191 2152 

2192```typescript theme={null}2153```typescript theme={null}

2193type SDKContextUsageCategory = {2154type SDKContextUsageCategory = {


2197};2158};

2198```2159```

2199 2160 

2200該表列出 Claude Code 在行的每個欄位中放置的內容。2161下表列出 Claude Code 在一列之每個欄位中放入的內容。

2201 2162 

2202| 欄位 | 類型 | 描述 |2163| 欄位 | 類型 | 描述 |

2203| - | - | - |2164| - | - | - |

2204| `name` | `string` | 行的顯示名稱,如 `/context` 列印的那樣,例如 `Messages`。按 `kind` 分類行,而不是按名稱 |2165| `name` | `string` | 該列的顯示名稱,與 `/context` 列印的相同,例如 `Messages`。請依 `kind` 而非名稱分類各列 |

2205| `tokens` | `number` | 行的令牌計數。行可以攜帶零令牌 |2166| `tokens` | `number` | 該列的 token 數量。列的 token 數可以為零 |

2206| `kind` | `string` | 行代表什麼:`used`、`free`、`buffer` 或 `deferred` |2167| `kind` | `string` | 該列代表的內容:`used`、`free`、`buffer` 或 `deferred` |

2207 2168 

2208每個 `kind` 值說明行的令牌是什麼:2169每個 `kind` 值說明該列的 token 是什麼:

2209 2170 

2210* `used`:佔據內容視窗的內容2171* `used`:佔用上下文視窗的內容

2211* `free`:剩餘視窗2172* `free`:剩餘的視窗

2212* `buffer`:壓縮保留2173* `buffer`:壓縮保留空間

2213* `deferred`:Claude Code 保留在視窗外的工具架構,從使用情況計算中排除,列出以供了解2174* `deferred`:Claude Code 保留在視窗之外、不計入使用情況計算的工具 schema,僅列出供您參考

2214 2175 

2215<h3 id="sdkmessageorigin">2176<h3 id="sdkmessageorigin">

2216 `SDKMessageOrigin`2177 `SDKMessageOrigin`

2217</h3>2178</h3>

2218 2179 

2219使用者角色訊息的來源。這在 [`SDKUserMessage`](#sdkusermessage) 上顯示為 `origin`,並轉發到相應的 [`SDKResultMessage`](#sdkresultmessage),以便您可以告訴什麼觸發了給定的轉換。2180使用者角色訊息的來源。它在 [`SDKUserMessage`](#sdkusermessage) 上以 `origin` 出現,並會轉送到對應的 [`SDKResultMessage`](#sdkresultmessage),讓您可以得知是什麼觸發了某個回合。

2220 2181 

2221```typescript theme={null}2182```typescript theme={null}

2222type SDKMessageOrigin =2183type SDKMessageOrigin =


2244 2205 

2245| `kind` | 含義 |2206| `kind` | 含義 |

2246| - | - |2207| - | - |

2247| `human` | 來自最終使用者的直接輸入。如果您的應用程式將使用者輸入的內容轉發為使用者訊息,請明確將其 `origin` 設定為 `{ kind: "human" }`:Claude Code 將沒有 `origin` 的使用者訊息視為未歸因,並檢查需要人類輸入的提示(例如 [`ultracode` 工作流程關鍵字](/docs/zh-TW/workflows#ask-for-a-workflow-in-your-prompt))不接受它。在 v2.1.210 之前,Claude Code 將使用者訊息上不存在的 `origin` 視為人類輸入。 |2208| `human` | 來自最終使用者的直接輸入。如果您的應用程式將使用者輸入的內容轉送為使用者訊息,請明確將其 `origin` 設定為 `{ kind: "human" }`:Claude Code 會將沒有 `origin` 的使用者訊息視為未歸屬,而需要人類輸入之提示詞的檢查(例如 [`ultracode` 工作流程關鍵字](/docs/zh-TW/workflows#ask-for-a-workflow-in-your-prompt))不會接受它。在 v2.1.210 之前,Claude Code 將使用者訊息上不存在的 `origin` 視為人類輸入。 |

2248| `channel` | 在[頻道](/docs/zh-TW/channels)上到達的訊息。`server` 是來源 MCP 伺服器名稱。 |2209| `channel` | 在[頻道](/docs/zh-TW/channels)上到達的訊息。`server` 是來源 MCP 伺服器名稱。 |

2249| `peer` | 來自另一個代理的訊息:進程內[隊友](/docs/zh-TW/agent-teams)或[跨工作階段對等](/docs/zh-TW/cross-session-messaging),您的另一個 Claude Code 工作階段。請參閱[對等來源欄位](#peer-origin-fields)以了解每個欄位的語義和信任模型。 |2210| `peer` | 來自另一個 agent 的訊息:程序內的[隊員](/docs/zh-TW/agent-teams),或[跨工作階段對等端](/docs/zh-TW/cross-session-messaging),也就是您的另一個 Claude Code 工作階段。請參閱[對等來源欄位](#peer-origin-fields)以了解各欄位的語意和信任模型。 |

2250| `task-notification` | 為沒有新鮮使用者提示的傳遞注入的合成轉換,例如完成的背景任務;請參閱 [`SDKTaskNotificationMessage`](#sdktasknotificationmessage) 以了解該分支。您的應用程式[宣告為排定執行](#declare-a-scheduled-run)的提示也攜帶此類型。可選的 `subkind` 標記引發通知的原因。請參閱[任務通知子類型](#task-notification-subkinds)。 |2211| `task-notification` | 為沒有新使用者提示詞的傳遞而注入的合成回合,例如已完成的背景任務;請參閱 [`SDKTaskNotificationMessage`](#sdktasknotificationmessage) 以了解該分支。您的應用程式[宣告為排程執行](#declare-a-scheduled-run)的提示詞也攜帶此 kind。選用的 `subkind` 標示引發通知的來源。請參閱[任務通知子類型](#task-notification-subkinds)。 |

2251| `coordinator` | 來自[代理團隊](/docs/zh-TW/agent-teams)中的團隊協調員的訊息。 |2212| `coordinator` | 來自 [agent team](/docs/zh-TW/agent-teams) 中團隊協調者的訊息。 |

2252| `auto-continuation` | 當工作階段在沒有新鮮使用者輸入的情況下繼續時注入的合成轉換,例如觸發後續提示的命令結果。 |2213| `auto-continuation` | 當工作階段在沒有新使用者輸入的情況下繼續時注入的合成回合,例如觸發後續提示詞的命令結果。 |

2253| `unclassified` | 無法確定來源的注入轉換。當 Claude Code 接收帶有 `isSynthetic: true` 的 [`SDKUserMessage`](#sdkusermessage) 並無法將其分類為任何其他 `kind` 時,它在訊息到達時設定此類型,並將轉換框架化為模型的非使用者來源,而不是將其視為人類輸入。您的應用程式不應設定此值。 |2214| `unclassified` | 無法判定來源的注入回合。需要 Claude Code v2.1.223 或更新版本。當 Claude Code 收到帶有 `isSynthetic: true` 的 [`SDKUserMessage`](#sdkusermessage),且無法將其歸類為任何其他 `kind` 時,會在訊息到達時設定此 kind,並向模型將該回合表述為非使用者來源,而不是將其視為人類輸入。您的應用程式不應設定此值。 |

2254 2215 

2255<h3 id="task-notification-subkinds">2216<h3 id="task-notification-subkinds">

2256 任務通知子類型2217 任務通知子類型

2257</h3>2218</h3>

2258 2219 

2259當 Claude Code 將任務通知傳遞到工作階段時,如果 Anthropic 伺服器驗證了該通知的來源,它會在通知的 `origin` 上設定 `subkind`。當您的應用程式[自己宣告訊息為排定執行](#declare-a-scheduled-run)時,它也會設定 `subkind`,這需要 TypeScript Agent SDK v0.3.280 或更新版本。`subkind` 需要 Claude Code v2.1.213 或更新版本,它採用以下兩個值之一:2220當 Claude Code 將任務通知傳遞到工作階段時,若 Anthropic 伺服器已驗證該通知的來源,它會在通知的 `origin` 上設定 `subkind`。當您的應用程式自行[將訊息宣告為排程執行](#declare-a-scheduled-run)時,它也會設定 `subkind`,這需要 TypeScript Agent SDK v0.3.280 或更新版本。`subkind` 需要 Claude Code v2.1.213 或更新版本,其值為下列兩者之一:

2260 2221 

2261* `scheduled-trigger`:通知是[例程](/docs/zh-TW/routines)的儲存提示,因為例程的觸發器之一觸發而傳遞:其排程、其 [API 觸發器](/docs/zh-TW/routines#add-an-api-trigger)、其 [GitHub 觸發器](/docs/zh-TW/routines#add-a-github-trigger) 或**立即執行**。您的應用程式[宣告為排定執行](#declare-a-scheduled-run)的提示也攜帶此值。Claude Code 將這些框架化為工作階段的指派任務,與[其他任務通知攜帶的通知](#sdktasknotificationmessage)不同。2222* `scheduled-trigger`:通知是 [routine](/docs/zh-TW/routines) 儲存的提示詞,因 routine 的某個觸發器觸發而傳遞:其排程、其 [API 觸發器](/docs/zh-TW/routines#add-an-api-trigger)、其 [GitHub 觸發器](/docs/zh-TW/routines#add-a-github-trigger),或**立即執行**。您的應用程式[宣告為排程執行](#declare-a-scheduled-run)的提示詞也攜帶此值。Claude Code 會向模型將這些表述為工作階段被指派的任務,所附的通知與[其他任務通知所附的通知](#sdktasknotificationmessage)不同。

2262*2223* `peer-send-message`:通知是您的另一個工作階段使用伺服器端 `send_message` 工具傳送的訊息,此工具是[雲端工作階段](/docs/zh-TW/claude-code-on-the-web)彼此傳訊所用,而非[跨工作階段 `SendMessage` 工具](/docs/zh-TW/cross-session-messaging),且 Anthropic 伺服器已驗證兩個工作階段屬於同一個私人工作階段群組。需要 Claude Code v2.1.224 或更新版本。未經伺服器以此方式驗證的 `send_message` 傳遞不會有 subkind。

2263 2224 

2264`peer-send-message`:通知是另一個您的工作階段使用[雲端工作階段](/docs/zh-TW/claude-code-on-the-web)使用的伺服器端 `send_message` 工具傳送的訊息,而不是[跨工作階段 `SendMessage` 工具](/docs/zh-TW/cross-session-messaging),並且 Anthropic 伺服器驗證了兩個工作階段都屬於同一個私人工作階段組。需要 Claude Code v2.1.224 或更新版本。伺服器未以這種方式驗證的 `send_message` 傳遞沒有 subkind。2225其他所有任務通知都沒有 `subkind`。這包括傳遞到工作階段的 [PR 活動](/docs/zh-TW/claude-code-on-the-web#how-claude-responds-to-pr-activity),以及已完成任務之類的背景事件。來自[跨工作階段 `SendMessage` 工具](/docs/zh-TW/cross-session-messaging)的訊息根本不是任務通知:無論它們來自同一台機器上的工作階段,還是透過 Anthropic 伺服器來自另一台機器,Claude Code 都會給予它們 `kind: "peer"` 和[對等來源欄位](#peer-origin-fields)。

2265 2226 

2266每個其他任務通知都沒有 `subkind`。這包括[PR 活動](/docs/zh-TW/claude-code-on-the-web#how-claude-responds-to-pr-activity)傳遞到工作階段和背景事件,例如完成的任務。來自[跨工作階段 `SendMessage` 工具](/docs/zh-TW/cross-session-messaging)的訊息根本不是任務通知:無論它們來自同一機器上的工作階段還是通過 Anthropic 伺服器來自另一台機器,Claude Code 都給它們 `kind: "peer"` 和[對等來源欄位](#peer-origin-fields)。2227`fireReason` 以簡短的小寫 token 說明 `scheduled-trigger` 通知觸發的原因,例如 `scheduled`、`manual`、`retry`、`catch_up` 或 `api`。Anthropic 伺服器會在 [routine](/docs/zh-TW/routines) 的傳遞上設定它,您的應用程式則在宣告排程執行時設定它。當兩者都未傳送時,此欄位不存在。需要 TypeScript Agent SDK v0.3.280 或更新版本。

2267 

2268`fireReason` 說明 `scheduled-trigger` 通知觸發的原因,作為短小寫令牌,例如 `scheduled`、`manual`、`retry`、`catch_up` 或 `api`。Anthropic 伺服器在[例程](/docs/zh-TW/routines)的傳遞上設定它,您的應用程式在宣告排定執行時設定它。當都沒有傳送時不存在。需要 TypeScript Agent SDK v0.3.280 或更新版本。

2269 2228 

2270<h4 id="declare-a-scheduled-run">2229<h4 id="declare-a-scheduled-run">

2271 宣告排定執行2230 宣告排程執行

2272</h4>2231</h4>

2273 2232 

2274如果您的應用程式按自己的排程執行提示,請宣告每個執行,以便 Claude Code 將轉換框架化為排定任務,而不是來自使用者的即時輸入。使用 [`env`](#options) 中設定為 `1` 的 `CLAUDE_CODE_HOST_SCHEDULED_RUN` 啟動工作階段,然後使用 `origin: { kind: "task-notification", subkind: "scheduled-trigger", fireReason: "scheduled" }` 和不帶 `isSynthetic` 傳送執行的 [`SDKUserMessage`](#sdkusermessage)。Claude Code 在沒有該變數的情況下啟動的程序中忽略宣告。它也在其環境攜帶 [`CLAUDECODE`](/docs/zh-TW/env-vars) 或 `CLAUDE_CODE_CHILD_SESSION` 的程序中忽略它。Claude Code 僅在值為 1 到 32 個小寫字母或底線時保留 `fireReason`。需要 TypeScript Agent SDK v0.3.280 或更新版本。2233如果您的應用程式依自己的排程執行提示詞,請宣告每次執行,讓 Claude Code 向模型將該回合表述為排程任務,而不是來自使用者的即時輸入。請在 [`env`](#options) 中將 `CLAUDE_CODE_HOST_SCHEDULED_RUN` 設定為 `1` 來啟動工作階段,然後以 `origin: { kind: "task-notification", subkind: "scheduled-trigger", fireReason: "scheduled" }` 且不帶 `isSynthetic` 傳送該次執行的 [`SDKUserMessage`](#sdkusermessage)。在未設定該變數而啟動的程序中,Claude Code 會忽略此宣告。在環境中帶有 [`CLAUDECODE`](/docs/zh-TW/env-vars) 或 `CLAUDE_CODE_CHILD_SESSION` 的程序中,也會忽略它。只有當值為 1 到 32 個小寫字母或底線時,Claude Code 才會保留 `fireReason`。需要 TypeScript Agent SDK v0.3.280 或更新版本。

2275 2234 

2276<h3 id="peer-origin-fields">2235<h3 id="peer-origin-fields">

2277 對等來源欄位2236 對等來源欄位

2278</h3>2237</h3>

2279 2238 

2280`peer` 來源識別哪個代理傳送了訊息:進程內[隊友](/docs/zh-TW/agent-teams)使用 `SendMessage` 傳送到 `main`,或[跨工作階段對等](/docs/zh-TW/cross-session-messaging),您的另一個 Claude Code 工作階段。跨工作階段對等在 macOS 和 Linux 上需要 Claude Code v2.1.224 或更新版本;請參閱[跨工作階段訊息可用性](/docs/zh-TW/cross-session-messaging#availability)以了解原生 Windows 要求。跨工作階段對等可以在同一機器上執行,或在[您的另一台機器](/docs/zh-TW/cross-session-messaging#message-sessions-on-other-machines)或[雲端](/docs/zh-TW/claude-code-on-the-web)中執行,當其訊息通過遠端控制到達時。兩種發送者類型以不同方式填充欄位:2239`peer` 來源識別是哪個 agent 傳送了訊息:使用 `SendMessage` 傳送到 `main` 的程序內[隊員](/docs/zh-TW/agent-teams),或[跨工作階段對等端](/docs/zh-TW/cross-session-messaging),也就是您的另一個 Claude Code 工作階段。跨工作階段對等端在 macOS 和 Linux 上需要 Claude Code v2.1.224 或更新版本;關於原生 Windows 的需求,請參閱[跨工作階段傳訊可用性](/docs/zh-TW/cross-session-messaging#availability)。跨工作階段對等端可以在同一台機器上執行,也可以在[您的另一台機器](/docs/zh-TW/cross-session-messaging#message-sessions-on-other-machines)上或[雲端](/docs/zh-TW/claude-code-on-the-web)中執行,此時其訊息透過 Remote Control 到達。這兩種傳送者填入欄位的方式不同:

2281 

2282* `from`:隊友的名稱,或跨工作階段對等的發送者地址。對於[單向跨機器訊息](/docs/zh-TW/cross-session-messaging#message-sessions-on-other-machines),發送者沒有回覆地址,`from` 是 `"unknown"`。該值由發送者編寫;`verifiedPeerPid` 是驗證的身份。

2283*

2284 

2285`fromMode`:傳送工作階段的權限類別,`bypass` 或 `prompting`,由在您的工作階段之間轉發對等訊息的主機宣告,例如[桌面應用程式](/docs/zh-TW/desktop#work-across-sessions)。Claude Code 在接收工作階段中讀取它,當它應用[入站控制](/docs/zh-TW/cross-session-messaging#control-inbound-messages)時。需要 Agent SDK v0.3.234 或更新版本。

2286 

2287* `senderTaskId`:隊友的任務 ID。對於跨工作階段對等不存在。

2288*

2289 

2290`name`:發送者的顯示名稱,由 Claude Code 規範化:它去除 Unicode 控制、格式、代理和行或段落分隔符代碼點,然後修剪結果並將其限制為 64 個代碼點,帶有省略號。需要 Claude Code v2.1.205 或更新版本。

2291 

2292*

2293 

2294`body`:解碼的訊息正文,去除對等信封,與模型看到的逐位元組相同。始終存在於隊友訊息中;對於跨工作階段對等,僅當轉換恰好是由 Claude Code 形成的一個對等信封時才存在。呈現 `name` 和 `body` 而不是重新解析訊息文字。需要 Claude Code v2.1.205 或更新版本。

2295 

2296*

2297 

2298`fromSession`:發送者的主機可開啟工作階段 ID,由發送者的主機設定,以便您的 UI 可以連結回傳送工作階段。像 `from` 一樣,它是發送者聲稱的:僅將其用作導航目標,不要將其視為發送者身份的證明。需要 Claude Code v2.1.216 或更新版本。

2299 

2300*

2301 2240 

2302`verifiedPeerPid`:連線到此工作階段的跨工作階段訊息套接字的程序的程序 ID,由核心驗證並從連線本身讀取,絕不從有效負載讀取。使用它,而不是 `from`,來識別發送者:`from` 可由任何同一使用者程序偽造。當 Claude Code 無法驗證它時,該欄位不存在,例如在 Windows 或非套接字入站上,因此不存在的值意味著發送者未驗證。對於轉發的流量,它識別轉發而不是訊息的作者,程序 ID 是可回收的,因此將其視為來源而不是驗證令牌。需要 Claude Code v2.1.216 或更新版本。2241* `from`:隊員的名稱,或跨工作階段對等端的傳送者位址。對於[單向跨機器訊息](/docs/zh-TW/cross-session-messaging#message-sessions-on-other-machines),傳送者沒有回覆位址,`from` 為 `"unknown"`。此值由傳送者撰寫;`verifiedPeerPid` 才是經驗證的身分。

2242* `fromMode`:傳送端工作階段的權限類別,`bypass` 或 `prompting`,由在您的工作階段之間轉送對等訊息的主機宣告,例如[桌面應用程式](/docs/zh-TW/desktop#work-across-sessions)。Claude Code 會在接收端工作階段套用[傳入控制](/docs/zh-TW/cross-session-messaging#control-inbound-messages)時讀取它。需要 Agent SDK v0.3.234 或更新版本。

2243* `senderTaskId`:隊員的任務 ID。對於跨工作階段對等端不存在。

2244* `name`:傳送者的顯示名稱,經 Claude Code 正規化:它會移除 Unicode 控制、格式、代理(surrogate)以及行或段落分隔符號的碼位,然後修剪結果,並將其限制在 64 個碼位內,超出時加上省略號。需要 Claude Code v2.1.205 或更新版本。

2245* `body`:去除對等信封後解碼的訊息本文,與模型看到的內容逐位元組相同。隊員訊息一定會有此欄位;對於跨工作階段對等端,僅當回合恰好是由 Claude Code 形成的單一對等信封時才存在。請呈現 `name` 和 `body`,而不是重新解析訊息文字。需要 Claude Code v2.1.205 或更新版本。

2246* `fromSession`:傳送者可由主機開啟的工作階段 ID,由傳送者的主機設定,讓您的 UI 可以連結回傳送端工作階段。與 `from` 一樣,它是傳送者自行宣稱的:僅將其用作導覽目標,不要將其視為傳送者身分的證明。需要 Claude Code v2.1.216 或更新版本。

2247* `verifiedPeerPid`:連線到此工作階段之跨工作階段傳訊 socket 的程序的程序 ID,由核心驗證,並從連線本身讀取,絕不從 payload 讀取。請使用它而非 `from` 來識別傳送者:同一使用者的任何程序都能偽造 `from`。當 Claude Code 無法驗證時,此欄位不存在,例如在 Windows 上或非 socket 的傳入途徑,因此值不存在即表示傳送者未經驗證。對於轉送的流量,它識別的是轉送者而非訊息的作者,且程序 ID 可能被重複使用,因此請將其視為來源資訊,而不是驗證 token。需要 Claude Code v2.1.216 或更新版本。

2303 2248 

2304<h2 id="hook-types">2249<h2 id="hook-types">

2305 Hook 類型2250 Hook 類型


5129| `ANTHROPIC_API_KEY` | `ANTHROPIC_API_KEY` 環境變數中的金鑰 |5074| `ANTHROPIC_API_KEY` | `ANTHROPIC_API_KEY` 環境變數中的金鑰 |

5130| `apiKeyHelper` | 您的 [`apiKeyHelper`](/docs/zh-TW/settings-reference#apikeyhelper) 命令傳回的金鑰 |5075| `apiKeyHelper` | 您的 [`apiKeyHelper`](/docs/zh-TW/settings-reference#apikeyhelper) 命令傳回的金鑰 |

5131| `/login managed key` | 當您使用 [Claude Console 帳戶](/docs/zh-TW/authentication#claude-console-authentication) 登入時,Claude Code 儲存的金鑰 |5076| `/login managed key` | 當您使用 [Claude Console 帳戶](/docs/zh-TW/authentication#claude-console-authentication) 登入時,Claude Code 儲存的金鑰 |

5132| `none` | 沒有 API 金鑰。工作階段以其他方式進行驗證,例如 claude.ai 登入、持有人令牌或雲端提供者 |5077| `none` | 沒有 API 金鑰。工作階段以其他方式進行驗證,例如 claude.ai 登入、bearer token 或雲端提供者 |

5133 5078 

5134Agent SDK v0.3.234 及更新版本在類型中列出這四個值。該類型也保留 `user`、`project`、`org`、`temporary` 和 `oauth`,以便舊程式碼仍能編譯,而 Claude Code 不報告它們。5079Agent SDK v0.3.234 及更新版本在類型中列出這四個值。該類型也保留 `user`、`project`、`org`、`temporary` 和 `oauth`,以便舊程式碼仍能編譯,而 Claude Code 不報告它們。

5135 5080 


5144```5089```

5145 5090 

5146<Warning>5091<Warning>

5147 `context-1m-2025-08-07` 測試版自 2026 年 4 月 30 日起已停用。使用 Claude Sonnet 4.5 或 Sonnet 4 傳遞此值無效,超過標準 200k 令牌內容視窗的請求會傳回錯誤。若要使用 1M 令牌內容視窗,請遷移至 [Claude Opus 5.5、Claude Opus 5、Claude Sonnet 5、Claude Sonnet 4.6、Claude Opus 4.6、Claude Opus 4.7 或 Claude Opus 4.8](https://platform.claude.com/docs/en/about-claude/models/overview),這些模型在標準定價下包含 1M 內容,無需測試版標頭。5092 在 Claude API 上,`context-1m-2025-08-07` 測試版已針對 Claude Sonnet 4.5 和 Claude Sonnet 4 停用。如果您仍對任一模型傳遞此值,超過標準 200K token 上下文視窗的請求會傳回錯誤,因此請將其從 `betas` 中移除。若要以 1M token 上下文視窗執行工作階段,請將 `model` 設定為[預設以 1M 視窗執行](/docs/zh-TW/model-config#extended-context)的模型,例如 `claude-sonnet-5-5` 或 `claude-opus-5-5`。對於僅能透過其 `[1m]` 變體達到 1M 的模型,請將後綴附加至模型 ID,例如 `claude-opus-4-6[1m]`。

5148</Warning>5093</Warning>

5149 5094 

5150<h3 id="slashcommand">5095<h3 id="slashcommand">


5163};5108};

5164```5109```

5165 5110 

5166`builtin` 在命令是 Claude Code 自身且輸入 `/name` 執行它的列上為 `true`。它對由使用者、專案、plugin 或 MCP 伺服器定義的命令不存在,以及對其中一個 [按名稱替換](/docs/zh-TW/skills#resolve-skills-that-share-a-name) 的捆綁命令不存在。需要 Agent SDK v0.3.277 或更新版本。5111`builtin` 在命令是 Claude Code 自身且輸入 `/name` 會執行它的列上為 `true`。對於由使用者、專案、外掛或 MCP 伺服器定義的命令,以及被其中之一[按名稱取代](/docs/zh-TW/skills#resolve-skills-that-share-a-name)的內建捆綁命令,此欄位不存在。需要 Agent SDK v0.3.277 或更新版本。

5167 5112 

5168<h3 id="modelinfo">5113<h3 id="modelinfo">

5169 `ModelInfo`5114 `ModelInfo`


5188| 欄位 | 類型 | 說明 |5133| 欄位 | 類型 | 說明 |

5189| :- | :- | :- |5134| :- | :- | :- |

5190| `value` | `string` | 在 API 呼叫中傳遞的模型識別碼 |5135| `value` | `string` | 在 API 呼叫中傳遞的模型識別碼 |

5191| `resolvedModel` | `string \| undefined` | 此項目的 `value` 解析為的規範線路模型 ID。別名項目(例如 `sonnet`)解析為明確的模型 ID(例如 `claude-sonnet-5`),因此主機可以將儲存的明確模型 ID 與涵蓋它的別名項目進行比對。需要 Claude Code v2.1.197 或更新版本。 |5136| `resolvedModel` | `string \| undefined` | 此項目的 `value` 所解析成的模型 ID,例如 `sonnet` 別名項目解析為 `claude-sonnet-5-5`。需要 Claude Code v2.1.197 或更新版本。 |

5192| `displayName` | `string` | 人類可讀的顯示名稱 |5137| `displayName` | `string` | 人類可讀的顯示名稱 |

5193| `description` | `string` | 模型功能的說明 |5138| `description` | `string` | 模型功能的說明 |

5194| `supportsEffort` | `boolean \| undefined` | 此模型是否支援工作量級別 |5139| `supportsEffort` | `boolean \| undefined` | 此模型是否支援 effort 等級 |

5195| `supportedEffortLevels` | `("low" \| "medium" \| "high" \| "xhigh" \| "max")[] \| undefined` | 此模型接受的工作量級別 |5140| `supportedEffortLevels` | `("low" \| "medium" \| "high" \| "xhigh" \| "max")[] \| undefined` | 此模型接受的 effort 等級 |

5196| `supportsAdaptiveThinking` | `boolean \| undefined` | 此模型是否支援自適應思考,其中 Claude 決定何時以及思考多少 |5141| `supportsAdaptiveThinking` | `boolean \| undefined` | 此模型是否支援自適應思考,其中 Claude 決定何時以及思考多少 |

5197| `supportsFastMode` | `boolean \| undefined` | 此模型是否支援快速模式 |5142| `supportsFastMode` | `boolean \| undefined` | 此模型是否支援快速模式 |

5198| `supportsAutoMode` | `boolean \| undefined` | 此模型是否支援自動模式 |5143| `supportsAutoMode` | `boolean \| undefined` | 此模型是否支援自動模式 |


5201 `AgentInfo`5146 `AgentInfo`

5202</h3>5147</h3>

5203 5148 

5204有關可透過 Agent 工具叫用的可用子代理的資訊。5149有關可透過 Agent 工具叫用的可用 subagent 的資訊。

5205 5150 

5206```typescript theme={null}5151```typescript theme={null}

5207type AgentInfo = {5152type AgentInfo = {


5213 5158 

5214| 欄位 | 類型 | 說明 |5159| 欄位 | 類型 | 說明 |

5215| :- | :- | :- |5160| :- | :- | :- |

5216| `name` | `string` | 代理類型識別碼(例如 `"Explore"`、`"general-purpose"`) |5161| `name` | `string` | agent 類型識別碼(例如 `"Explore"`、`"general-purpose"`) |

5217| `description` | `string` | 何時使用此代理的說明 |5162| `description` | `string` | 何時使用此 agent 的說明 |

5218| `model` | `string \| undefined` | 此代理使用的模型:別名或模型 ID,或 `'inherit'` 表示父代的模型。當為 `undefined` 時,Claude Code 會在 [子代理模型順序](/docs/zh-TW/sub-agents#choose-a-model) 中選擇模型 |5163| `model` | `string \| undefined` | 此 agent 使用的模型:別名或模型 ID,或 `'inherit'` 表示父代的模型。當為 `undefined` 時,Claude Code 會依 [subagent 模型順序](/docs/zh-TW/sub-agents#choose-a-model) 選擇模型 |

5219 5164 

5220<h3 id="mcpserverprovenance">5165<h3 id="mcpserverprovenance">

5221 `McpServerProvenance`5166 `McpServerProvenance`


5237 5182 

5238`source` 採用以下值之一。該集合是開放的,因此將您不認識的值視為已設定的來源,絕不視為 `sdk`:5183`source` 採用以下值之一。該集合是開放的,因此將您不認識的值視為已設定的來源,絕不視為 `sdk`:

5239 5184 

5240* **`sdk`**:您的應用程式註冊的進程內伺服器。只有 SDK 主機應用程式可以註冊一個,因此已設定的伺服器絕不報告 `sdk`,無論其名稱如何。5185* **`sdk`**:您的應用程式註冊的進程內伺服器。只有 SDK 主機應用程式可以註冊此類伺服器,因此已設定的伺服器絕不報告 `sdk`,無論其名稱如何。

5241* **`plugin`**:[plugin](/docs/zh-TW/agent-sdk/plugins) 提供的伺服器。其 `name` 是 [plugin 提供的 MCP 伺服器](/docs/zh-TW/mcp#plugin-provided-mcp-servers) 下所述的範圍 `plugin:<plugin-name>:<server-name>` 形式。5186* **`plugin`**:[外掛](/docs/zh-TW/agent-sdk/plugins) 提供的伺服器。其 `name` 是 [外掛提供的 MCP 伺服器](/docs/zh-TW/mcp#plugin-provided-mcp-servers) 下所述的範圍化 `plugin:<plugin-name>:<server-name>` 形式。

5242* **設定範圍**:`user`、`project`、`local`、`dynamic`、`managed`、`enterprise`、`claudeai` 或 `agent`。`.mcp.json` 伺服器報告 `project`,[MCP 安裝範圍](/docs/zh-TW/mcp#mcp-installation-scopes) 定義 `local`、`project` 和 `user`。您的應用程式在 [`mcpServers` 選項](#options) 中傳遞的伺服器(除了進程內 SDK 伺服器外)報告 `dynamic`。5187* **設定範圍**:`user`、`project`、`local`、`dynamic`、`managed`、`enterprise`、`claudeai` 或 `agent`。`.mcp.json` 伺服器報告 `project`,[MCP 安裝範圍](/docs/zh-TW/mcp#mcp-installation-scopes) 定義 `local`、`project` 和 `user`。您的應用程式在 [`mcpServers` 選項](#options) 中傳遞的伺服器(除了進程內 SDK 伺服器外)報告 `dynamic`。

5243 5188 

5244基於 `source` 而非 `name` 或 `mcp__<server>__` 工具名稱前綴做出信任決定。對於除 `sdk` 以外的任何來源,`name` 是不受信任的文字:在顯示前逸出它。5189基於 `source` 而非 `name` 或 `mcp__<server>__` 工具名稱前綴做出信任決定。對於除 `sdk` 以外的任何來源,`name` 是不受信任的文字:在顯示前逸出它。


5336};5281};

5337```5282```

5338 5283 

5339`thinkingTokens` 計算此模型產生的思考令牌。`outputTokens` 已包含它們,因此不要將兩者相加。該欄位在輪次在記錄它的 Claude Code 版本上執行之前不存在,因此在較早版本上開始的已恢復工作階段會報告部分計數。`thinkingTokens` 需要 Agent SDK v0.3.257 或更新版本。5284`thinkingTokens` 計算此模型產生的思考 token。`outputTokens` 已包含它們,因此不要將兩者相加。在某個回合於會記錄它的 Claude Code 版本上執行之前,該欄位不存在,因此在較早版本上開始的已恢復工作階段會報告部分計數。`thinkingTokens` 需要 Agent SDK v0.3.257 或更新版本。

5340 5285 

5341`canonicalModel` 和 `provider` 欄位需要 Claude Code v2.1.218 或更新版本。`canonicalModel` 是定價查詢使用的規範模型 ID;它可能與鍵入項目的原始模型字串不同,例如當該字串是提供者特定 ID 或別名時。5286`canonicalModel` 和 `provider` 欄位需要 Claude Code v2.1.218 或更新版本。`canonicalModel` 是定價查詢使用的規範模型 ID;它可能與作為項目鍵的原始模型字串不同,例如當該字串是提供者特定 ID 或別名時。

5342 5287 

5343`provider` 命名提供模型的 API 後端,例如 `firstParty`、`bedrock`、`vertex`、`foundry`、`anthropicAws`、`mantle` 或 `gateway`。5288`provider` 命名提供模型的 API 後端,例如 `firstParty`、`bedrock`、`vertex`、`foundry`、`anthropicAws`、`mantle` 或 `gateway`。

5344 5289 


5368 `Usage`5313 `Usage`

5369</h3>5314</h3>

5370 5315 

5371令牌使用統計資訊。這是來自 `@anthropic-ai/sdk` 的 `BetaUsage` 類型。5316token 使用統計資訊。這是來自 `@anthropic-ai/sdk` 的 `BetaUsage` 類型。

5372 5317 

5373```typescript theme={null}5318```typescript theme={null}

5374type Usage = {5319type Usage = {


5391 5336 

5392`BetaServerToolUsage`、`BetaIterationsUsage` 和 `BetaOutputTokensDetails` 在 `@anthropic-ai/sdk` 中定義。5337`BetaServerToolUsage`、`BetaIterationsUsage` 和 `BetaOutputTokensDetails` 在 `@anthropic-ai/sdk` 中定義。

5393 5338 

5394`output_tokens_details` 按類別分解計費輸出。它目前攜帶一個欄位 `thinking_tokens: number`,計算模型產生的輸出令牌作為內部推理,包括思考區塊分隔符。`output_tokens_details` 欄位需要 TypeScript SDK v0.3.228 或更新版本,該版本捆綁 Claude Code v2.1.228。5339`output_tokens_details` 按類別分解計費輸出。它目前攜帶一個欄位 `thinking_tokens: number`,計算模型作為內部推理產生的輸出 token,包括思考區塊分隔符。`output_tokens_details` 欄位需要 TypeScript SDK v0.3.228 或更新版本,該版本捆綁 Claude Code v2.1.228。

5395 5340 

5396* **計費**:讀取分解以進行可觀測性,而非計費。`output_tokens` 保持為權威總計,`output_tokens - thinking_tokens` 近似非推理輸出。5341* **計費**:讀取分解以進行可觀測性,而非計費。`output_tokens` 保持為權威總計,`output_tokens - thinking_tokens` 近似非推理輸出。

5397* **計數涵蓋的內容**:模型產生的原始推理,可能比回應正文中傳回的思考文字更長。API 透過重新令牌化該原始文字來計算它,因此它可能與模型的確切生成計數相差幾個令牌。5342* **計數涵蓋的內容**:模型產生的原始推理,可能比回應正文中傳回的思考文字更長。API 透過重新 token 化該原始文字來計算它,因此它可能與模型的確切生成計數相差幾個 token。

5398* **串流**:在串流助手訊息上,此分解(如 `output_tokens`)是 `message_start` 預留位置,不攜帶實際計數,因此從結果訊息的 `usage` 讀取它,如 [從結果訊息讀取輸出令牌](/docs/zh-TW/agent-sdk/cost-tracking#read-output-tokens-from-the-result-message) 所述。在結果訊息上,當模型或提供者不報告分解時,`thinking_tokens` 讀取 `0`。5343* **串流**:在串流助手訊息上,此分解(如 `output_tokens`)是 `message_start` 預留位置,不攜帶實際計數,因此從結果訊息的 `usage` 讀取它,如 [從結果訊息讀取輸出 token](/docs/zh-TW/agent-sdk/cost-tracking#read-output-tokens-from-the-result-message) 所述。在結果訊息上,當模型或提供者不報告分解時,`thinking_tokens` 讀取 `0`。

5399* **`null` 情況**:`output_tokens_details` 本身在 Claude Code 合成的助手訊息上為 `null`,例如 API 錯誤訊息。5344* **`null` 情況**:`output_tokens_details` 本身在 Claude Code 合成的助手訊息上為 `null`,例如 API 錯誤訊息。

5400 5345 

5401<h3 id="calltoolresult">5346<h3 id="calltoolresult">


5408type CallToolResult = {5353type CallToolResult = {

5409 content: Array<{5354 content: Array<{

5410 type: "text" | "image" | "audio" | "resource" | "resource_link";5355 type: "text" | "image" | "audio" | "resource" | "resource_link";

5411 // 其他欄位因類型而異5356 // Additional fields vary by type

5412 }>;5357 }>;

5413 structuredContent?: Record<string, unknown>;5358 structuredContent?: Record<string, unknown>;

5414 isError?: boolean;5359 isError?: boolean;


5455type ThinkingDisplay = "summarized" | "omitted";5400type ThinkingDisplay = "summarized" | "omitted";

5456 5401 

5457type ThinkingConfig =5402type ThinkingConfig =

5458 | { type: "adaptive"; display?: ThinkingDisplay } // 模型決定何時以及思考多少(Opus 4.6+)5403 | { type: "adaptive"; display?: ThinkingDisplay } // The model determines when and how much to reason (Opus 4.6+)

5459 | { type: "enabled"; budgetTokens?: number; display?: ThinkingDisplay } // 固定思考令牌預算5404 | { type: "enabled"; budgetTokens?: number; display?: ThinkingDisplay } // Fixed thinking token budget

5460 | { type: "disabled" }; // 無擴展思考5405 | { type: "disabled" }; // No extended thinking

5461```5406```

5462 5407 

5463可選的 `display` 欄位控制思考文字是否以 `"summarized"` 或 `"omitted"` 傳回。在 Claude Opus 4.7 及更新版本上,API 預設為 `"omitted"`,因此設定 `"summarized"` 以在 `thinking` 區塊中接收思考內容。Claude Code 不會將 `display` 傳送至 Amazon Bedrock 或 Google Cloud 的 Agent Platform,因此在這些提供者上,Opus 4.7 及更新版本即使在您將 `display` 設定為 `"summarized"` 時也會傳回空 `thinking` 區塊。5408可選的 `display` 欄位控制思考文字是否以 `"summarized"` 或 `"omitted"` 傳回。在 Claude Opus 4.7 及更新版本上,API 預設為 `"omitted"`,因此設定 `"summarized"` 以在 `thinking` 區塊中接收思考內容。Claude Code 不會將 `display` 傳送至 Amazon Bedrock 或 Google Cloud 的 Agent Platform,因此在這些提供者上,Opus 4.7 及更新版本即使在您將 `display` 設定為 `"summarized"` 時也會傳回空 `thinking` 區塊。


5531 5476 

5532當您呼叫 `setMcpServers()` 時,Claude Code 應用這些規則:5477當您呼叫 `setMcpServers()` 時,Claude Code 應用這些規則:

5533 5478 

5534* **呼叫未命名的伺服器**:Claude Code 保持 plugin 提供的伺服器執行。需要 Agent SDK v0.3.210 或更新版本。5479* **呼叫未命名的伺服器**:Claude Code 保持外掛提供的伺服器執行。需要 Agent SDK v0.3.210 或更新版本。

5535* **呼叫命名的伺服器**:除了 CLI 在啟動時啟動的內建伺服器外,Claude Code 只在其設定與您傳遞的設定不同時才替換執行中的伺服器。5480* **呼叫命名的伺服器**:除了 CLI 在啟動時啟動的內建伺服器外,Claude Code 只在其設定與您傳遞的設定不同時才替換執行中的伺服器。

5536* **CLI 在啟動時啟動的內建伺服器**:如果呼叫命名一個,Claude Code 會捨棄該項目並在 `errors` 中報告它。5481* **CLI 在啟動時啟動的內建伺服器**:如果呼叫命名一個,Claude Code 會捨棄該項目並在 `errors` 中報告它。

5537 5482 

5538承諾在新增的 stdio、HTTP 和 SSE 伺服器連線或失敗後解決,因此來自已連線伺服器的工具在下一輪可用。5483承諾在新增的 stdio、HTTP 和 SSE 伺服器連線或失敗後解決,因此來自已連線伺服器的工具在下一回合可用。

5539 5484 

5540`added` 列出 Claude Code 新增或替換的伺服器,無論它們是否連線。未能連線的伺服器同時出現在 `added` 和 `errors` 中,失敗文字在 `errors` 下,`failed` 列在 [`mcpServerStatus()`](#methods) 中。在 Claude Code v2.1.257 之前,連線嘗試拋出的伺服器僅在 `errors` 下報告。5485`added` 列出 Claude Code 新增或替換的伺服器,無論它們是否連線。未能連線的伺服器同時出現在 `added` 和 `errors` 中,失敗文字在 `errors` 下,`failed` 列在 [`mcpServerStatus()`](#methods) 中。在 Claude Code v2.1.257 之前,連線嘗試拋出的伺服器僅在 `errors` 下報告。

5541 5486 


5556};5501};

5557```5502```

5558 5503 

5559`skippedLinks` 計算倒帶拒絕恢復或刪除以確保連結安全的追蹤路徑:追蹤路徑上的符號連結、硬連結或其他非常規檔案,不再解析為檢查點建立時指向的位置的父目錄,或無法安全讀取的備份。該欄位需要 Claude Code v2.1.216 或更新版本。使用 `rewindFiles(userMessageId, { dryRun: true })` 的預覽呼叫永遠不會設定它。5504`skippedLinks` 計算倒帶為確保連結安全而拒絕恢復或刪除的追蹤路徑:追蹤路徑上的符號連結、硬連結或其他非常規檔案,不再解析為檢查點建立時指向的位置的父目錄,或無法安全讀取的備份。該欄位需要 Claude Code v2.1.216 或更新版本。使用 `rewindFiles(userMessageId, { dryRun: true })` 的預覽呼叫永遠不會設定它。

5560 5505 

5561<h3 id="sdkstatusmessage">5506<h3 id="sdkstatusmessage">

5562 `SDKStatusMessage`5507 `SDKStatusMessage`


5579 `SDKTaskNotificationMessage`5524 `SDKTaskNotificationMessage`

5580</h3>5525</h3>

5581 5526 

5582背景工作完成、失敗或停止時的通知。背景工作包括 `run_in_background` Bash 命令、[Monitor](#monitor) 監視和背景子代理。如需 `ambient` 欄位,請參閱 [`SDKTaskStartedMessage`](#sdktaskstartedmessage),它定義它及其版本要求。5527背景工作完成、失敗或停止時的通知。背景工作包括 `run_in_background` Bash 命令、[Monitor](#monitor) 監視和背景 subagent。如需 `ambient` 欄位,請參閱 [`SDKTaskStartedMessage`](#sdktaskstartedmessage),它定義了該欄位及其版本要求。

5583 5528 

5584```typescript theme={null}5529```typescript theme={null}

5585type SDKTaskNotificationMessage = {5530type SDKTaskNotificationMessage = {


5602};5547};

5603```5548```

5604 5549 

5605當 Claude Code [將長 MCP 工具呼叫移至背景](/docs/zh-TW/mcp#automatic-backgrounding-of-long-tool-calls) 時,該呼叫的 `tool_result` 區塊僅保留預留位置,呼叫的實際結果在此通知中到達。使用 `tool_use_id` 將通知與呼叫進行比對。在 `completed` 通知上,`resource_links` 列出工具作為 [`SDKMcpResourceLink`](#sdkmcpresourcelink) 項目透過參考傳回的檔案,具有與 [`tool_use_result.resourceLinks`](#sdkusermessage) 相同的 50 連結和 64 KiB 限制。Claude Code 在結果沒有連結時省略 `resource_links`,以及在不是 MCP 工具呼叫的工作通知上。`resource_links` 需要 Agent SDK v0.3.257 或更新版本。5550當 Claude Code [將長 MCP 工具呼叫移至背景](/docs/zh-TW/mcp#automatic-backgrounding-of-long-tool-calls) 時,該呼叫的 `tool_result` 區塊僅保留預留位置,呼叫的實際結果在此通知中到達。使用 `tool_use_id` 將通知與呼叫進行比對。在 `completed` 通知上,`resource_links` 以 [`SDKMcpResourceLink`](#sdkmcpresourcelink) 項目列出工具透過參考傳回的檔案,具有與 [`tool_use_result.resourceLinks`](#sdkusermessage) 相同的 50 連結和 64 KiB 限制。Claude Code 在結果沒有連結時省略 `resource_links`,在不是 MCP 工具呼叫的工作通知上也會省略。`resource_links` 需要 Agent SDK v0.3.257 或更新版本。

5606 5551 

5607Claude Code 在傳送給模型的每個工作通知前面加上通知,除了帶有 [`scheduled-trigger` 子類型](#task-notification-subkinds) 戳記的傳遞外,它們改為攜帶指派工作框架。通知指出沒有發生人類輸入,因此模型不會將通知視為使用者指令或批准。5552Claude Code 在傳送給模型的每個工作通知前面加上通知,除了帶有 [`scheduled-trigger` 子類型](#task-notification-subkinds) 戳記的傳遞外,它們改為攜帶指派工作框架。通知指出沒有發生人類輸入,因此模型不會將通知視為使用者指令或核准。

5608 5553 

5609若要偵測工作通知輪次,請在 [`SDKUserMessage`](#sdkusermessage) 或 [`SDKResultMessage`](#sdkresultmessage) 上檢查 `origin.kind === "task-notification"`,而不是在通知文字上進行比對。如果您需要知道引發它的內容,請從同一欄位讀取 `subkind`。在 v2.1.205 之前,Claude Code 在工作階段閒置時到達的通知上省略通知。5554若要偵測工作通知回合,請在 [`SDKUserMessage`](#sdkusermessage) 或 [`SDKResultMessage`](#sdkresultmessage) 上檢查 `origin.kind === "task-notification"`,而不是在通知文字上進行比對。如果您需要知道引發它的內容,請從同一欄位讀取 `subkind`。在 v2.1.205 之前,Claude Code 在工作階段閒置時到達的通知上省略通知。

5610 5555 

5611<h3 id="sdktoolusesummarymessage">5556<h3 id="sdktoolusesummarymessage">

5612 `SDKToolUseSummaryMessage`5557 `SDKToolUseSummaryMessage`


5717};5662};

5718```5663```

5719 5664 

5720當工具呼叫在主對話中執行時,Claude Code 每 30 秒發出一個 `tool_progress` 訊息,帶有 `heartbeat: true`。每個心跳攜帶工具名稱和經過的秒數,因此您可以區分長執行呼叫和停滯工作階段。Claude Code 不為子代理內的工具呼叫發出心跳。`heartbeat` 欄位需要 Agent SDK v0.3.214 或更新版本。在 v2.1.257 之前,Claude Code 也不為前景 Agent 工具呼叫發出心跳。5665當工具呼叫在主對話中執行時,Claude Code 每 30 秒發出一個 `tool_progress` 訊息,帶有 `heartbeat: true`。每個心跳攜帶工具名稱和經過的秒數,因此您可以區分長執行呼叫和停滯工作階段。Claude Code 不為 subagent 內的工具呼叫發出心跳。`heartbeat` 欄位需要 Agent SDK v0.3.214 或更新版本。在 v2.1.257 之前,Claude Code 也不為前景 Agent 工具呼叫發出心跳。

5721 5666 

5722在除心跳外的 Agent 工具的 `tool_progress` 訊息上,`subagent_type` 命名執行中的子代理類型,例如 `general-purpose`。`subagent_retry` 在該子代理等待 API 錯誤退避(例如速率限制或過載)時存在,每次重試嘗試一個訊息。兩個欄位都需要 Agent SDK v0.3.214 或更新版本。5667在除心跳外的 Agent 工具的 `tool_progress` 訊息上,`subagent_type` 命名執行中的 subagent 類型,例如 `general-purpose`。`subagent_retry` 在該 subagent 等待 API 錯誤退避(例如速率限制或過載)時存在,每次重試嘗試一個訊息。兩個欄位都需要 Agent SDK v0.3.214 或更新版本。

5723 5668 

5724若要從 `subagent_retry` 呈現重試指示器:5669若要從 `subagent_retry` 呈現重試指示器:

5725 5670 

5726* 按 `parent_tool_use_id` 追蹤指示器,它對每個子代理是唯一的。`tool_use_id` 由來自一個助手輪次的平行子代理共享,因此按它追蹤會讓一個子代理的更新清除另一個的指示器。5671* 按 `parent_tool_use_id` 追蹤指示器,它對每個 subagent 是唯一的。`tool_use_id` 由來自一個助手回合的平行 subagent 共享,因此按它追蹤會讓一個 subagent 的更新清除另一個的指示器。

5727* 當同一 `parent_tool_use_id` 的稍後 `tool_progress` 到達時清除指示器,既不帶 `subagent_retry` 也不帶 `heartbeat: true`,或當工具的結果訊息到達時。帶 `heartbeat: true` 的框架僅報告活躍性,因此在一個到達時保持指示器。`attempt` 可能在持續重試下超過 `max_retries`,因此不要從計數器衍生清除。5672* 當同一 `parent_tool_use_id` 的稍後 `tool_progress` 到達且既不帶 `subagent_retry` 也不帶 `heartbeat: true` 時,或當工具的結果訊息到達時,清除指示器。帶 `heartbeat: true` 的框架僅報告活躍性,因此在此類框架到達時保持指示器。`attempt` 可能在持續重試下超過 `max_retries`,因此不要從計數器衍生清除。

5728* 將 `error_category` 視為選擇您自己訊息文字的令牌,而非顯示文字。值為 `rate_limit`、`overloaded`、`authentication_failed`、`server_error`、`cloud_credential_error` 和 `unknown`。處理您不認識的值的方式與處理 `unknown` 的方式相同,因為稍後的版本可以新增值。5673* 將 `error_category` 視為選擇您自己訊息文字的 token,而非顯示文字。值為 `rate_limit`、`overloaded`、`authentication_failed`、`server_error`、`cloud_credential_error` 和 `unknown`。處理您不認識的值的方式與處理 `unknown` 的方式相同,因為稍後的版本可以新增值。

5729 5674 

5730<h3 id="sdkauthstatusmessage">5675<h3 id="sdkauthstatusmessage">

5731 `SDKAuthStatusMessage`5676 `SDKAuthStatusMessage`

5732</h3>5677</h3>

5733 5678 

5734在驗證流程期間發出。5679在身分驗證流程期間發出。

5735 5680 

5736```typescript theme={null}5681```typescript theme={null}

5737type SDKAuthStatusMessage = {5682type SDKAuthStatusMessage = {


5748 `SDKTaskStartedMessage`5693 `SDKTaskStartedMessage`

5749</h3>5694</h3>

5750 5695 

5751在工作開始時發出。`task_type` 欄位對 Bash 命令和 [Monitor](#monitor) 監視為 `"local_bash"`,對子代理為 `"local_agent"`,或 `"remote_agent"`。5696在工作開始時發出。`task_type` 欄位對 Bash 命令和 [Monitor](#monitor) 監視為 `"local_bash"`,對 subagent 為 `"local_agent"`,或 `"remote_agent"`。

5752 5697 

5753```typescript theme={null}5698```typescript theme={null}

5754type SDKTaskStartedMessage = {5699type SDKTaskStartedMessage = {


5766};5711};

5767```5712```

5768 5713 

5769`ambient` 對不是工作階段工作一部分的工作為 `true`,例如 Claude Code 為其自身操作執行的工作。即時更新監視器也是環境的,包括使用者要求的監視器。從活動指示器中排除環境工作。該欄位需要 Agent SDK v0.3.247 或更新版本。5714`ambient` 對不屬於工作階段工作的工作為 `true`,例如 Claude Code 為其自身運作而執行的工作。即時更新監視器也是環境工作,包括使用者要求的監視器。從活動指示器中排除環境工作。該欄位需要 Agent SDK v0.3.247 或更新版本。

5770 5715 

5771`ambient` 也出現在 [`SDKTaskNotificationMessage`](#sdktasknotificationmessage) 和 [`SDKBackgroundTasksChangedMessage`](#sdkbackgroundtaskschangedmessage) 項目上。5716`ambient` 也出現在 [`SDKTaskNotificationMessage`](#sdktasknotificationmessage) 和 [`SDKBackgroundTasksChangedMessage`](#sdkbackgroundtaskschangedmessage) 項目上。

5772 5717 

5773`is_backgrounded` 和 `spawn_depth` 描述 Claude Code 如何啟動工作。兩個欄位都需要 Agent SDK v0.3.238 或更新版本。5718`is_backgrounded` 和 `spawn_depth` 描述 Claude Code 如何啟動工作。兩個欄位都需要 Agent SDK v0.3.238 或更新版本。

5774 5719 

5775* `is_backgrounded`:Claude Code 在 `"local_agent"` 和 `"local_bash"` 工作上設定它。`true` 表示工作在背景執行。`false` 表示工作在前景執行,啟動它的工具呼叫保持阻止,直到工作完成或移至背景。5720* `is_backgrounded`:Claude Code 在 `"local_agent"` 和 `"local_bash"` 工作上設定它。`true` 表示工作在背景執行。`false` 表示工作在前景執行,啟動它的工具呼叫保持阻止,直到工作完成或移至背景。

5776* `spawn_depth`:Claude Code 僅在 `"local_agent"` 工作上設定它。主執行緒生成的子代理的深度為 `1`。深度 `1` 子代理生成的子代理的深度為 `2`,以此類推。5721* `spawn_depth`:Claude Code 僅在 `"local_agent"` 工作上設定它。主執行緒生成的 subagent 的深度為 `1`。深度 `1` subagent 生成的 subagent 的深度為 `2`,以此類推。

5777 5722 

5778[已恢復的子代理](/docs/zh-TW/agent-sdk/subagents#resume-subagents) 始終報告 `is_backgrounded: true`,因為 Claude Code 在背景執行每個已恢復的子代理。當前景工作稍後移至背景時,Claude Code 在 [`task_updated`](#sdktaskupdatedmessage) 訊息中報告新的 `is_backgrounded` 值,而不是傳送第二個 `task_started`。5723[已恢復的 subagent](/docs/zh-TW/agent-sdk/subagents#resume-subagents) 始終報告 `is_backgrounded: true`,因為 Claude Code 在背景執行每個已恢復的 subagent。當前景工作稍後移至背景時,Claude Code 在 [`task_updated`](#sdktaskupdatedmessage) 訊息中報告新的 `is_backgrounded` 值,而不是傳送第二個 `task_started`。

5779 5724 

5780<h3 id="sdktaskprogressmessage">5725<h3 id="sdktaskprogressmessage">

5781 `SDKTaskProgressMessage`5726 `SDKTaskProgressMessage`

5782</h3>5727</h3>

5783 5728 

5784在子代理或背景工作執行時定期發出。5729在 subagent 或背景工作執行時定期發出。

5785 5730 

5786對於子代理工作,`summary` 欄位攜帶模型產生的進度摘要,僅在啟用 [`agentProgressSummaries`](#options) 時填入。對於 [背景化的 MCP 工具呼叫](/docs/zh-TW/mcp#automatic-backgrounding-of-long-tool-calls),`summary` 攜帶 MCP 伺服器最新報告的進度,不依賴該選項。5731對於 subagent 工作,`summary` 欄位攜帶模型產生的進度摘要,僅在啟用 [`agentProgressSummaries`](#options) 時填入。對於 [背景化的 MCP 工具呼叫](/docs/zh-TW/mcp#automatic-backgrounding-of-long-tool-calls),`summary` 攜帶 MCP 伺服器最新報告的進度,不依賴該選項。

5787 5732 

5788```typescript theme={null}5733```typescript theme={null}

5789type SDKTaskProgressMessage = {5734type SDKTaskProgressMessage = {


5809 `SDKTaskUpdatedMessage`5754 `SDKTaskUpdatedMessage`

5810</h3>5755</h3>

5811 5756 

5812在背景工作的狀態變更時發出,例如當它從 `running` 轉換為 `completed` 時。將 `patch` 合併到按 `task_id` 鍵入的本機工作地圖中。`end_time` 欄位是 Unix 紀元時間戳記(以毫秒為單位),可與 `Date.now()` 比較。5757在背景工作的狀態變更時發出,例如當它從 `running` 轉換為 `completed` 時。將 `patch` 合併到以 `task_id` 為鍵的本機工作對應表中。`end_time` 欄位是 Unix 紀元時間戳記(以毫秒為單位),可與 `Date.now()` 比較。

5813 5758 

5814```typescript theme={null}5759```typescript theme={null}

5815type SDKTaskUpdatedMessage = {5760type SDKTaskUpdatedMessage = {


5833 `SDKBackgroundTasksChangedMessage`5778 `SDKBackgroundTasksChangedMessage`

5834</h3>5779</h3>

5835 5780 

5836每當即時背景工作集變更時發出:工作啟動、完成、被殺死、前景代理被背景化,或工作的 `description` 或 `ambient` 欄位變更。5781每當即時背景工作集變更時發出:工作啟動、完成、被終止、前景 agent 被背景化,或工作的 `description` 或 `ambient` 欄位變更。

5837 5782 

5838`tasks` 陣列是完整的即時集。用每個承載替換任何快取集,而不是配對 `task_started` 和 `task_notification` 事件,因此下一個成員資格變更會更正您可能遺漏的任何事件。5783`tasks` 陣列是完整的即時集。用每個 payload 替換任何快取集,而不是配對 `task_started` 和 `task_notification` 事件,如此下一個成員資格變更會更正您遺漏的任何事件。

5839 5784 

5840相對於這些每個工作事件的順序未指定,因此不要關聯兩個串流。5785相對於這些每個工作事件的順序未指定,因此不要關聯兩個串流。

5841 5786 

5842啟動時不發出任何內容。每當工作階段的 CLI 程序啟動或重新啟動時重設為空集,並讓下一個成員資格變更重新填入它。5787啟動時不發出任何內容。每當工作階段的 CLI 程序啟動或重新啟動時重設為空集,並讓下一個成員資格變更重新填入它。

5843 5788 

5844當您向執行中的工作階段傳送重複的 `initialize` 控制請求時,例如在傳輸間隙後使用 [`reinitialize()`](#query-object),Claude Code 在回應後跟著目前即時集的快照,即使它是空的。因此重新連線的主機可以了解執行中的內容,而無需等待下一個成員資格變更。在 Agent SDK v0.3.239 之前,Claude Code 在重複 `initialize` 後沒有傳送快照。5789當您向執行中的工作階段傳送重複的 `initialize` 控制請求時,例如在傳輸中斷後使用 [`reinitialize()`](#query-object),Claude Code 在回應後接著傳送目前即時集的快照,即使它是空的。因此重新連線的主機可以了解執行中的內容,而無需等待下一個成員資格變更。在 Agent SDK v0.3.239 之前,Claude Code 在重複 `initialize` 後沒有傳送快照。

5845 5790 

5846需要 Claude Code v2.1.203 或更新版本。5791需要 Claude Code v2.1.203 或更新版本。

5847 5792 


5864 `SDKThinkingTokensMessage`5809 `SDKThinkingTokensMessage`

5865</h3>5810</h3>

5866 5811 

5867在 Claude 產生思考區塊時發出,包括編輯過的區塊。`estimated_tokens` 是目前區塊中迄今為止產生的思考令牌的執行估計,`estimated_tokens_delta` 是此框架攜帶的增量。使用這些估計進行進度顯示。5812在 Claude 產生思考區塊時發出,包括經過編輯的區塊。`estimated_tokens` 是目前區塊中迄今為止產生的思考 token 的累計估計,`estimated_tokens_delta` 是此框架攜帶的增量。使用這些估計進行進度顯示。

5868 5813 

5869當模型或提供者報告分解時,頂級代理迴圈的最終計數是結果訊息的 [`usage.output_tokens_details.thinking_tokens`](#usage),[不包括子代理令牌](/docs/zh-TW/agent-sdk/cost-tracking#get-the-total-cost-of-a-query)。5814當模型或提供者報告分解時,頂層 agent 迴圈的最終計數是結果訊息的 [`usage.output_tokens_details.thinking_tokens`](#usage),[不包括 subagent token](/docs/zh-TW/agent-sdk/cost-tracking#get-the-total-cost-of-a-query)。

5870 5815 

5871需要 Claude Code v2.1.153 或更新版本。5816需要 Claude Code v2.1.153 或更新版本。

5872 5817 


5922};5867};

5923```5868```

5924 5869 

5925當 `errorCode` 為 `"credits_required"` 時,拒絕來自 claude.ai 訂閱,其包含的使用已耗盡,工作階段在使用者購買使用額度之前無法繼續。`canUserPurchaseCredits` 指示已驗證的使用者是否可以為帳戶購買額度,`hasChargeableSavedPaymentMethod` 指示檔案上是否有可計費的儲存付款方式。所有三個欄位在不是額度必需拒絕的速率限制事件上不存在。需要 Claude Code v2.1.181 或更新版本。5870當 `errorCode` 為 `"credits_required"` 時,拒絕來自其內含用量已耗盡的 claude.ai 訂閱,工作階段在使用者購買用量點數之前無法繼續。`canUserPurchaseCredits` 指示已驗證的使用者是否可以為帳戶購買點數,`hasChargeableSavedPaymentMethod` 指示是否已儲存付款方式。在不是需要點數之拒絕的速率限制事件上,這三個欄位都不存在。需要 Claude Code v2.1.181 或更新版本。

5926 5871 

5927<h3 id="sdklocalcommandoutputmessage">5872<h3 id="sdklocalcommandoutputmessage">

5928 `SDKLocalCommandOutputMessage`5873 `SDKLocalCommandOutputMessage`

5929</h3>5874</h3>

5930 5875 

5931Claude Code 不發出此訊息類型。當您傳送命令(例如 `/context` 或 `/usage`)作為提示時,其輸出作為 [`SDKAssistantMessage`](#sdkassistantmessage) 到達。5876Claude Code 不發出此訊息類型。當您傳送命令(例如 `/context` 或 `/usage`)作為提示詞時,其輸出作為 [`SDKAssistantMessage`](#sdkassistantmessage) 到達。

5932 5877 

5933```typescript theme={null}5878```typescript theme={null}

5934type SDKLocalCommandOutputMessage = {5879type SDKLocalCommandOutputMessage = {


5944 `SDKCommandsChangedMessage`5889 `SDKCommandsChangedMessage`

5945</h3>5890</h3>

5946 5891 

5947當可用命令集在工作階段中期變更時發出,例如當 Claude Code 在代理進入子目錄時發現技能時。`commands` 陣列是完整的更新清單,因此用此承載替換任何快取命令清單。在此訊息後呼叫 [`supportedCommands()`](#query-object) 會傳回相同的更新清單,因為該方法追蹤最新推送;這需要 Agent SDK v0.3.216 或更新版本。在較早的 SDK 版本中,`supportedCommands()` 傳回在初始化時擷取的快照,永遠不會反映工作階段中期的變更。5892當可用命令集在工作階段中途變更時發出,例如當 Claude Code 在 agent 進入子目錄時發現 skill。`commands` 陣列是完整的更新清單,因此用此 payload 替換任何快取命令清單。在此訊息後呼叫 [`supportedCommands()`](#query-object) 會傳回相同的更新清單,因為該方法追蹤最新推送;這需要 Agent SDK v0.3.216 或更新版本。在較早的 SDK 版本中,`supportedCommands()` 傳回在初始化時擷取的快照,永遠不會反映工作階段中途的變更。

5948 5893 

5949Claude Code 也在 MCP 伺服器的 [prompts](/docs/zh-TW/mcp#use-mcp-prompts-as-commands) 加入或離開清單時發出此訊息,例如當伺服器在工作階段啟動後完成連線時。這需要 Claude Code v2.1.281 或更新版本。5894Claude Code 也在 MCP 伺服器的 [prompts](/docs/zh-TW/mcp#use-mcp-prompts-as-commands) 加入或離開清單時發出此訊息,例如當伺服器在工作階段啟動後完成連線時。這需要 Claude Code v2.1.281 或更新版本。

5950 5895 


5962 `SDKPromptSuggestionMessage`5907 `SDKPromptSuggestionMessage`

5963</h3>5908</h3>

5964 5909 

5965在啟用 [`promptSuggestions`](#options) 且 Claude Code 為該輪次產生建議時,輪次後發出。包含預測的下一個使用者提示。對於未取得任何建議的輪次,請參閱 [Claude Code 何時跳過建議](/docs/zh-TW/interactive-mode#when-claude-code-skips-suggestions)。5910在啟用 [`promptSuggestions`](#options) 且 Claude Code 為該回合產生建議時,於回合後發出。包含預測的下一個使用者提示詞。對於未取得任何建議的回合,請參閱 [Claude Code 何時跳過建議](/docs/zh-TW/interactive-mode#when-claude-code-skips-suggestions)。

5966 5911 

5967```typescript theme={null}5912```typescript theme={null}

5968type SDKPromptSuggestionMessage = {5913type SDKPromptSuggestionMessage = {


5977 `SDKConversationResetMessage`5922 `SDKConversationResetMessage`

5978</h3>5923</h3>

5979 5924 

5980在工作階段的對話被替換而不結束工作階段時發出。在 `query()` 呼叫中,只有 `/clear` 及其別名產生此訊息。在 `new_conversation_id` 下掛載空文字記錄,並捨棄任何快取工作階段標題。5925在工作階段的對話被替換而不結束工作階段時發出。在 `query()` 呼叫中,只有 `/clear` 及其別名產生此訊息。在 `new_conversation_id` 下掛載空逐字稿,並捨棄任何快取的工作階段標題。

5981 5926 

5982```typescript theme={null}5927```typescript theme={null}

5983type SDKConversationResetMessage = {5928type SDKConversationResetMessage = {


5993 5938 

5994可選欄位描述重設:5939可選欄位描述重設:

5995 5940 

5996* `trigger`:什麼捨棄了對話。在每個 `conversation_reset` 訊息上重設您的文字記錄,包括此欄位不存在或攜帶您不認識的值的訊息。5941* `trigger`:什麼捨棄了對話。在每個 `conversation_reset` 訊息上重設您的逐字稿,包括此欄位不存在或攜帶您不認識的值的訊息。

5997* `user_message_uuid`:攜帶 `/clear` 的使用者訊息的 `uuid`。使用它將重設與該訊息進行比對。5942* `user_message_uuid`:攜帶 `/clear` 的使用者訊息的 `uuid`。使用它將重設與該訊息進行比對。

5998* `timestamp`:重設發生的時間,作為 UTC 中的 ISO 8601 字串。使用它進行顯示,而非排序訊息。5943* `timestamp`:重設發生的時間,作為 UTC 中的 ISO 8601 字串。使用它進行顯示,而非排序訊息。

5999 5944 

6000`trigger`、`user_message_uuid` 和 `timestamp` 欄位需要 Claude Code v2.1.281 或更新版本。5945`trigger`、`user_message_uuid` 和 `timestamp` 欄位需要 Claude Code v2.1.281 或更新版本。

6001 5946 

6002SDK 的已發佈類型在 Claude Code v2.1.203 及更新版本中宣告 `SDKConversationResetMessage`。在 v2.1.203 之前,`SDKMessage` 參考該類型而不宣告它,因此當 `skipLibCheck` 被停用時,在 `type === "conversation_reset"` 上縮小範圍失敗類型檢查。5947SDK 的已發佈類型在 Claude Code v2.1.203 及更新版本中宣告 `SDKConversationResetMessage`。在 v2.1.203 之前,`SDKMessage` 參考該類型而不宣告它,因此當 `skipLibCheck` 被停用時,在 `type === "conversation_reset"` 上縮小範圍無法通過類型檢查。

6003 5948 

6004<h3 id="aborterror">5949<h3 id="aborterror">

6005 `AbortError`5950 `AbortError`


6011class AbortError extends Error {}5956class AbortError extends Error {}

6012```5957```

6013 5958 

6014`AbortError` 是 SDK 類型化 API 中唯一的錯誤類別。其他失敗,例如 Claude Code 程序退出或無法啟動,以沒有 SDK 類別可比對的錯誤拒絕訊息反覆運算。[疑難排解](/docs/zh-TW/agent-sdk/troubleshooting) 按訊息鍵入這些錯誤,每個都有原因和修正。5959`AbortError` 是 SDK 類型化 API 中唯一的錯誤類別。其他失敗,例如 Claude Code 程序退出或無法啟動,會以沒有 SDK 類別可比對的錯誤拒絕訊息反覆運算。[疑難排解](/docs/zh-TW/agent-sdk/troubleshooting) 按訊息列出這些錯誤,並提供每個錯誤的原因和修正方式。

6015 5960 

6016<h2 id="sandbox-configuration">5961<h2 id="sandbox-configuration">

6017 Sandbox 設定5962 Sandbox 設定

agent-teams.md +5 −2

Details

195* **In-process 模式**:使用上下箭頭鍵在 agent 面板中選擇隊友,然後按 Enter 鍵查看其工作階段並輸入以傳送訊息。在選定的隊友上按 `x` 以停止它。按 Ctrl+T 切換任務列表。195* **In-process 模式**:使用上下箭頭鍵在 agent 面板中選擇隊友,然後按 Enter 鍵查看其工作階段並輸入以傳送訊息。在選定的隊友上按 `x` 以停止它。按 Ctrl+T 切換任務列表。

196* **Split-pane 模式**:點擊隊友的窗格以直接與其工作階段互動。每個隊友都有自己終端的完整檢視。196* **Split-pane 模式**:點擊隊友的窗格以直接與其工作階段互動。每個隊友都有自己終端的完整檢視。

197 197 

198當您正在查看 in-process 隊友時,純文字和 [skills](/docs/zh-TW/skills) 會傳送給該隊友,但內建命令仍在主管的工作階段中運行。198當您正在查看 in-process 隊友時,純文字和 [skills](/docs/zh-TW/skills) 會傳送給該隊友,而內建命令會傳送到主管的工作階段,並具有以下保護措施:

199 199 

200隊友的模型和快速模式在它生成時是固定的,因此 `/model` 和 `/fast` 只會變更主管的設定。自 v2.1.199 起,在查看隊友時輸入任一命令會顯示通知,表示變更適用於主管;較早的版本會將其應用於主管而不提示。`/effort` 仍適用於所查看隊友的後續回合,因為隊友遵循主管的[努力程度](/docs/zh-TW/model-config#adjust-effort-level)。200* `/compact`、`/clear` 和 `/rewind` 作用於主管的對話,因此從此檢視執行其中任一命令前,Claude Code 會要求您確認。

201* `/model` 和 `/fast` 設定的是主管的模型和快速模式,而非隊友的,因此它們不會從此檢視執行。會有通知告訴您原因。

202 

203隊友的模型和快速模式在它生成時是固定的。`/effort` 仍適用於所查看隊友的後續回合,因為隊友遵循主管的 [effort 等級](/docs/zh-TW/model-config#adjust-effort-level)。

201 204 

202<h3 id="assign-and-claim-tasks">205<h3 id="assign-and-claim-tasks">

203 分配和認領任務206 分配和認領任務

agent-view.md +26 −6

Details

224 224 

225大多數時候查看面板就足夠了,您不需要開啟完整文字記錄。225大多數時候查看面板就足夠了,您不需要開啟完整文字記錄。

226 226 

227在查看面板中輸入回應,然後按 `Enter` 將其發送到該工作階段。當工作階段提出帶有預定義選擇的問題時,查看面板將它們顯示為編號清單,您可以按數字鍵選擇一個。權限提示顯示為描述工作階段想要執行的內容的文字,沒有編號選項。輸入回應以回答它,或附加以使用標準提示回答。對於其他被阻止的工作階段,按 `Tab` 以填充輸入建議的回應,您可以在發送前編輯。在回應前加上 `!` 以改為發送 Bash 命令。227在查看面板中輸入回覆,然後按 `Enter` 將其發送到該工作階段。在回覆前加上 `!` 則改為發送 Bash 命令。回覆的處理方式取決於工作階段以及您發送的內容:

228 

229* 工作中的工作階段:回覆會加入工作階段的 [訊息佇列](/docs/zh-TW/interactive-mode#queue-messages-while-claude-works),而不會中斷回應,並在 [佇列中的輸入生效時](/docs/zh-TW/interactive-mode#when-claude-code-sends-what-you-queued) 生效。[命令](/docs/zh-TW/commands) 會等到回合結束才執行,即使是在工作階段自身的提示詞輸入中一輸入就會立即執行的命令也是如此

230* 內容恰好為 `/stop` 的回覆:無論工作階段正在工作或正在等待您,都會立即停止工作階段,而不會傳遞給它

231* [Shell 工作](#run-a-shell-command):回覆(包括 `/stop`)會作為輸入內容送到該命令的終端機

232 

233當工作階段正在等待您時,從查看面板回答的方式取決於它在等待什麼:

234 

235* 具有預定義選項的問題:面板會以編號列出選項。在回覆輸入為空時,按下選項的編號以填入該選項,再按 `Enter` 發送,或改為輸入您自己的答案

236* 沒有預定義選項的問題:輸入您的答案。當空白輸入顯示建議的回覆時,按 `Tab` 將其填入,並在發送前編輯

237* 權限提示或其他對話框,例如 [沙箱](/docs/zh-TW/sandboxing) 提示或 MCP 伺服器的 [輸入請求](/docs/zh-TW/mcp#respond-to-mcp-elicitation-requests):回覆無法回答它。您的回覆會在佇列中等待。若要回答對話框,請使用 `→` 附加

228 238 

229當 [`PermissionRequest`](/docs/zh-TW/hooks#permissionrequest) 或 [`PreToolUse`](/docs/zh-TW/hooks#pretooluse) hook 返回 Claude Code 無法驗證工作階段要求的呼叫的輸出時,列顯示 hook 事件和 `hook output invalid:` 以及驗證錯誤,然後是待處理請求的文字。對於以其他方式失敗的 hook,列說 hook 失敗。工作階段仍然等待相同的請求。239當 [`PermissionRequest`](/docs/zh-TW/hooks#permissionrequest) 或 [`PreToolUse`](/docs/zh-TW/hooks#pretooluse) hook 返回 Claude Code 無法驗證工作階段要求的呼叫的輸出時,列顯示 hook 事件和 `hook output invalid:` 以及驗證錯誤,然後是待處理請求的文字。對於以其他方式失敗的 hook,列說 hook 失敗。工作階段仍然等待相同的請求。

230 240 


301* 按 `Ctrl+T` 將工作階段釘選到頂部並 [在閒置時保持其程序執行](#the-supervisor-process)311* 按 `Ctrl+T` 將工作階段釘選到頂部並 [在閒置時保持其程序執行](#the-supervisor-process)

302* 按 `Shift+↑` 或 `Shift+↓` 重新排序工作階段312* 按 `Shift+↑` 或 `Shift+↓` 重新排序工作階段

303* 按 `Ctrl+R` 重新命名工作階段313* 按 `Ctrl+R` 重新命名工作階段

304* 在群組標題上按 `Enter` 以摺疊它314* 在群組標題上按 `Enter` 以摺疊群組,但 [篩選](#filter-sessions) 啟用時除外,此時所有群組都會保持展開

305 315 

306若要從清單中移除工作階段,按 `Ctrl+X` 停止它,然後在兩秒內再次按 `Ctrl+X` 以刪除它。在群組標題上按 `Ctrl+X` 會在確認後刪除該群組中的每個工作階段。316若要從清單中移除工作階段,按 `Ctrl+X` 停止它,然後在兩秒內再次按 `Ctrl+X` 以刪除它。在群組標題上按 `Ctrl+X` 會在確認後刪除該群組中的每個工作階段。

307 317 


324 篩選工作階段334 篩選工作階段

325</h3>335</h3>

326 336 

327在分派輸入中輸入以篩選而不是分派:337在分派輸入的開頭使用以下其中一個篩選條件,即可在輸入時縮小清單範圍:

328 338 

329| 篩選 | 顯示 |339| 篩選 | 顯示 |

330| :- | :- |340| :- | :- |

331| `a:<name>` | 執行命名代理的工作階段 |341| `a:<name>` | 執行命名代理的工作階段 |

332| `s:<state>` | 給定狀態中的工作階段,例如 `s:working`。也接受 `s:blocked` 以獲得等待您的所有內容 |342| `s:<state>` | 處於指定狀態的工作階段,例如 `s:working`,或位於指定群組標題下的工作階段,例如代表 `Ready for review` 的 `s:ready`。`s:blocked` 會列出所有正在等待您的項目 |

333| `#<number>` 或拉取或合併請求 URL | 在該拉取請求或合併請求上工作的工作階段 |343| `n:<text>` | 名稱或第一個提示詞包含該文字的工作階段,例如 `n:login`。需要 Claude Code v2.1.287 或更新版本 |

344| `o:<text>` | 結果包含該文字的工作階段,例如 `o:merged`。單獨的 `o:` 會列出所有已回報結果的工作階段 |

345| Pull request 或 merge request 編號(例如 `#1234`)或其 URL | 正在處理該 pull request 或 merge request 的工作階段 |

334| 任何其他 URL | 其第一個提示包含該 URL 的工作階段 |346| 任何其他 URL | 其第一個提示包含該 URL 的工作階段 |

335 347 

348若要組合篩選條件,請以 `a:`、`s:`、`n:` 或 `o:` 開頭,再加上更多條件,以空格分隔。清單會顯示符合所有條件的工作階段。例如,`s:blocked a:reviewer` 會列出正在等待您的 `reviewer` 工作階段。

349 

350篩選條件啟用時,您摺疊的群組會展開以顯示符合的項目,並選定第一個符合項目,因此按 `Enter` 即可開啟它。清除輸入即可移除篩選條件,這些群組會再次摺疊。

351 

336<h3 id="keyboard-shortcuts">352<h3 id="keyboard-shortcuts">

337 鍵盤快捷鍵353 鍵盤快捷鍵

338</h3>354</h3>


342| 快捷鍵 | 動作 |358| 快捷鍵 | 動作 |

343| :- | :- |359| :- | :- |

344| `↑` / `↓` | 在列之間移動 |360| `↑` / `↓` | 在列之間移動 |

345| `Enter` | 附加到選定的工作階段,或如果輸入中有文字則分派 |361| `PgUp` / `PgDn` | 向上或向下移動一整個畫面的列 |

362| `Home` / `End` | 跳至第一列或最後一列 |

363| `Enter` | 附加到選定的工作階段,或在輸入的文字不是 [篩選條件](#filter-sessions) 時提交該文字 |

346| `Space` | 開啟或關閉選定工作階段的查看面板 |364| `Space` | 開啟或關閉選定工作階段的查看面板 |

347| `Shift+Enter` | 在分派輸入中插入新行,[如主提示中所示](/docs/zh-TW/terminal-config#enter-multiline-prompts) |365| `Shift+Enter` | 在分派輸入中插入新行,[如主提示中所示](/docs/zh-TW/terminal-config#enter-multiline-prompts) |

348| `Ctrl+Enter` | 分派並立即附加,在終端機中 `?` 覆蓋層列出 `ctrl+enter to start and open` |366| `Ctrl+Enter` | 分派並立即附加,在終端機中 `?` 覆蓋層列出 `ctrl+enter to start and open` |


1060 1078 

1061| 版本 | 變更 |1079| 版本 | 變更 |

1062| - | - |1080| - | - |

1081| v2.1.287 | [`n:<text>` 篩選器](#filter-sessions)會依名稱或第一個提示詞尋找工作階段。當任何篩選器作用中時,您摺疊的群組會展開以顯示其符合項目,並選取第一個符合項目,因此 `Enter` 會開啟它。 |

1082| v2.1.287 | 作為[查看回覆](#peek-and-reply)傳送的命令會在工作階段目前的回合結束時執行,包括在工作階段自己的輸入中一輸入就會立即執行的命令。內容恰好為 `/stop` 的回覆會立即停止工作階段。 |

1063| v2.1.281 | [`--setting-sources`](/docs/zh-TW/cli-reference#cli-flags) 限制[轉移](#what-carries-over-when-you-background)到您使用 `←` 或 `/bg` 背景化的工作階段,以及您從 agent view 分派的工作階段。在此版本之前,生成的工作階段載入每個設定來源。 |1083| v2.1.281 | [`--setting-sources`](/docs/zh-TW/cli-reference#cli-flags) 限制[轉移](#what-carries-over-when-you-background)到您使用 `←` 或 `/bg` 背景化的工作階段,以及您從 agent view 分派的工作階段。在此版本之前,生成的工作階段載入每個設定來源。 |

1064| v2.1.281 | `claude --bg` 和重新啟動工作階段的命令會先檢查工作階段目錄的工作區信任。從該目錄中的終端,如果您尚未接受,[信任對話會出現](#from-your-shell);在無法出現對話的地方(例如在指令碼中),命令會以 [`Workspace not trusted`](/docs/zh-TW/errors#workspace-not-trusted-when-dispatching-a-background-session) 錯誤退出。 |1084| v2.1.281 | `claude --bg` 和重新啟動工作階段的命令會先檢查工作階段目錄的工作區信任。從該目錄中的終端,如果您尚未接受,[信任對話會出現](#from-your-shell);在無法出現對話的地方(例如在指令碼中),命令會以 [`Workspace not trusted`](/docs/zh-TW/errors#workspace-not-trusted-when-dispatching-a-background-session) 錯誤退出。 |

1065| v2.1.274 | 自動更新後,您已遠離約一小時的 agent view 可以將自己重新啟動到新的組建。當它這樣做時,它會保留您開啟它時的[分派預設值](#dispatch-defaults):`--model`、`--effort`、`--permission-mode`、`--allow-dangerously-skip-permissions` 和 `--agent`。在此版本之前,重新啟動的 view 只保留 `--cwd` 和配置旗標,例如 `--settings` 和 `--mcp-config`,所以您之後分派的工作階段啟動時沒有這些預設值。 |1085| v2.1.274 | 自動更新後,您已遠離約一小時的 agent view 可以將自己重新啟動到新的組建。當它這樣做時,它會保留您開啟它時的[分派預設值](#dispatch-defaults):`--model`、`--effort`、`--permission-mode`、`--allow-dangerously-skip-permissions` 和 `--agent`。在此版本之前,重新啟動的 view 只保留 `--cwd` 和配置旗標,例如 `--settings` 和 `--mcp-config`,所以您之後分派的工作階段啟動時沒有這些預設值。 |

Details

526 526 

527如果您的組織改為透過 [Claude apps gateway](/docs/zh-TW/claude-apps-gateway) 政策傳遞 guardrail 標頭,它們會計為[需要核准的設定](/docs/zh-TW/server-managed-settings#environment-variables-and-the-approval-dialog)。527如果您的組織改為透過 [Claude apps gateway](/docs/zh-TW/claude-apps-gateway) 政策傳遞 guardrail 標頭,它們會計為[需要核准的設定](/docs/zh-TW/server-managed-settings#environment-variables-and-the-approval-dialog)。

528 528 

529當 guardrail 在回應進行到一半時將其封鎖,已串流的文字會保留,而回覆會以 guardrail 上為被封鎖回應所設定的訊息作為結尾。

530 

529<h2 id="use-the-mantle-endpoint">531<h2 id="use-the-mantle-endpoint">

530 使用 Mantle 端點532 使用 Mantle 端點

531</h2>533</h2>

artifacts.md +9 −0

Details

118 118 

119Claude 閱讀他人撰寫的頁面的方式與它使用 [WebFetch](/docs/zh-TW/tools-reference#webfetch-tool-behavior) 閱讀網頁的方式相同:它取得所詢問內容的摘要,而不是原始頁面,摘要報告寫入頁面的指示,而不是轉達它們。Claude Code 也會將頁面的完整原始碼儲存到本機檔案,Claude 可以在需要確切內容時開啟該檔案,例如重新發佈成品作為 [編輯器](#let-someone-edit-with-you)。119Claude 閱讀他人撰寫的頁面的方式與它使用 [WebFetch](/docs/zh-TW/tools-reference#webfetch-tool-behavior) 閱讀網頁的方式相同:它取得所詢問內容的摘要,而不是原始頁面,摘要報告寫入頁面的指示,而不是轉達它們。Claude Code 也會將頁面的完整原始碼儲存到本機檔案,Claude 可以在需要確切內容時開啟該檔案,例如重新發佈成品作為 [編輯器](#let-someone-edit-with-you)。

120 120 

121在以下情況下,Claude Code 會在 Claude 閱讀 artifact 之前要求您核准,此外還有您的權限模式或規則所要求的任何提示:

122 

123* **沒有網路存取權的雲端工作階段**:對於 [雲端環境](/docs/zh-TW/cloud-environments#access-levels),即 **None** 等級。在 [自動模式](/docs/zh-TW/permission-modes#eliminate-prompts-with-auto-mode) 中,分類器可以代為核准;在 [Cowork](https://claude.com/product/cowork) 工作階段中,核准只能由您進行。

124* **其他組織的公開 artifact**:即使在自動模式下,Claude Code 也會先詢問您。在 Claude Code 無法詢問您的情況下,例如在 `bypassPermissions` 模式中,Claude 無法閱讀該 artifact。只有在 [功能旗標擷取](/docs/zh-TW/env-vars#features-that-need-feature-flag-fetching) 開啟時,Claude 才能閱讀這些 artifact。

125* **無法確認擁有者或網路設定**:當 Claude Code 無法確認 artifact 的建立者,或無法確認雲端工作階段的網路設定時,它會詢問您,而您的核准僅適用於該次請求。

126* **plan mode,或已關閉功能旗標擷取**:在 [plan mode](/docs/zh-TW/permission-modes#analyze-before-you-edit-with-plan-mode) 中,或者如果您關閉了 [功能旗標擷取](/docs/zh-TW/env-vars#features-that-need-feature-flag-fetching),Claude Code 會在 Artifact 工具閱讀您組織中其他人建立的 artifact 之前詢問您。

127 

128當 Claude 使用 WebFetch 閱讀 artifact 時,WebFetch 本身的 [提示規則](/docs/zh-TW/tools-reference#webfetch-tool-behavior) 仍然適用。

129 

121<h2 id="collect-comments-on-an-artifact">130<h2 id="collect-comments-on-an-artifact">

122 收集成品上的評論131 收集成品上的評論

123</h2>132</h2>

channels.md +47 −43

Details

21如果您管理 Team、Enterprise 或 Console 組織,請參閱[為您的組織啟用 channels](#enterprise-controls)。若要建立您自己的 channel,請參閱 [Channels 參考](/docs/zh-TW/channels-reference)。21如果您管理 Team、Enterprise 或 Console 組織,請參閱[為您的組織啟用 channels](#enterprise-controls)。若要建立您自己的 channel,請參閱 [Channels 參考](/docs/zh-TW/channels-reference)。

22 22 

23<h2 id="supported-channels">23<h2 id="supported-channels">

24 支援的 channels24 支援的頻道

25</h2>25</h2>

26 26 

27每個支援的 channel 都是需要 [Bun](https://bun.sh) 的外掛程式。如需在連接真實平台之前親身體驗外掛程式流程的演示,請嘗試 [fakechat 快速入門](#quickstart)。27每個支援的頻道都是需要 [Bun](https://bun.sh) 的外掛程式。如需在連接真實平台之前親身體驗外掛程式流程的演示,請嘗試 [fakechat 快速入門](#quickstart)。

28 28 

29<Tabs>29<Tabs>

30 <Tab title="Telegram">30 <Tab title="Telegram">


36 </Step>36 </Step>

37 37 

38 <Step title="安裝外掛程式">38 <Step title="安裝外掛程式">

39 在 Claude Code 中,執行:39 在終端機中執行 `claude` 以啟動 Claude Code,然後在其提示字元輸入以下內容:

40 40 

41 ```41 ```

42 /plugin install telegram@claude-plugins-official42 /plugin install telegram@claude-plugins-official

43 ```43 ```

44 44 

45 如果安裝失敗,請符合 Claude Code 報告的訊息:45 如果安裝失敗,請對照 Claude Code 報告的訊息:

46 46 

47 * `Marketplace "claude-plugins-official" not found`:使用 `/plugin marketplace add anthropics/claude-plugins-official` 新增市場,然後重試安裝。47 * `Marketplace "claude-plugins-official" not found`:使用 `/plugin marketplace add anthropics/claude-plugins-official` 新增市集,然後重試安裝。

48 * 外掛程式[在市場中找不到](/docs/zh-TW/plugins/install#install-a-plugin):檢查外掛程式名稱。48 * 外掛程式[在市集中找不到](/docs/zh-TW/plugins/install#install-a-plugin):檢查外掛程式名稱。

49 49 

50 當安裝要求安裝範圍時,選擇使用者範圍選項,以便外掛程式在所有專案中可用。檢查安裝摘要:如果報告 `Run /reload-plugins to activate.`,請參閱[在不重新啟動的情況下套用外掛程式變更](/docs/zh-TW/plugins/cli-reference#reload-plugins)以使外掛程式的設定命令可用。50 當安裝要求安裝範圍時,選擇使用者範圍選項,以便外掛程式在所有專案中可用。檢查安裝摘要:如果報告 `Run /reload-plugins to activate.`,請參閱[在不重新啟動的情況下套用外掛程式變更](/docs/zh-TW/plugins/cli-reference#reload-plugins)以使外掛程式的設定命令可用。

51 </Step>51 </Step>


60 這會將其儲存到 `~/.claude/channels/telegram/.env`。您也可以在啟動 Claude Code 之前在 shell 環境中設定 `TELEGRAM_BOT_TOKEN`。60 這會將其儲存到 `~/.claude/channels/telegram/.env`。您也可以在啟動 Claude Code 之前在 shell 環境中設定 `TELEGRAM_BOT_TOKEN`。

61 </Step>61 </Step>

62 62 

63 <Step title="在啟用 channels 的情況下重新啟動">63 <Step title="在啟用頻道的情況下重新啟動">

64 退出 Claude Code 並使用 channel 旗標重新啟動。這會啟動 Telegram 外掛程式,開始輪詢來自您機器人的訊息:64 退出 Claude Code 並使用頻道旗標重新啟動。這會啟動 Telegram 外掛程式,開始輪詢來自您機器人的訊息:

65 65 

66 ```bash theme={null}66 ```bash theme={null}

67 claude --channels plugin:telegram@claude-plugins-official67 claude --channels plugin:telegram@claude-plugins-official


71 <Step title="配對您的帳戶">71 <Step title="配對您的帳戶">

72 開啟 Telegram 並向您的機器人傳送任何訊息。機器人會回覆配對代碼。72 開啟 Telegram 並向您的機器人傳送任何訊息。機器人會回覆配對代碼。

73 73 

74 <Note>如果您的機器人沒有回應,請確保 Claude Code 使用上一步的 `--channels` 執行。機器人只能在 channel 處於活動狀態時回覆。</Note>74 <Note>如果您的機器人沒有回應,請確保 Claude Code 使用上一步的 `--channels` 執行。機器人只能在頻道處於啟用狀態時回覆。</Note>

75 75 

76 回到 Claude Code,執行:76 回到 Claude Code,執行:

77 77 


114 </Step>114 </Step>

115 115 

116 <Step title="安裝外掛程式">116 <Step title="安裝外掛程式">

117 在 Claude Code 中,執行:117 在終端機中執行 `claude` 以啟動 Claude Code,然後在其提示字元輸入以下內容:

118 118 

119 ```119 ```

120 /plugin install discord@claude-plugins-official120 /plugin install discord@claude-plugins-official

121 ```121 ```

122 122 

123 如果安裝失敗,請符合 Claude Code 報告的訊息:123 如果安裝失敗,請對照 Claude Code 報告的訊息:

124 124 

125 * `Marketplace "claude-plugins-official" not found`:使用 `/plugin marketplace add anthropics/claude-plugins-official` 新增市場,然後重試安裝。125 * `Marketplace "claude-plugins-official" not found`:使用 `/plugin marketplace add anthropics/claude-plugins-official` 新增市集,然後重試安裝。

126 * 外掛程式[在市場中找不到](/docs/zh-TW/plugins/install#install-a-plugin):檢查外掛程式名稱。126 * 外掛程式[在市集中找不到](/docs/zh-TW/plugins/install#install-a-plugin):檢查外掛程式名稱。

127 127 

128 當安裝要求安裝範圍時,選擇使用者範圍選項,以便外掛程式在所有專案中可用。檢查安裝摘要:如果報告 `Run /reload-plugins to activate.`,請參閱[在不重新啟動的情況下套用外掛程式變更](/docs/zh-TW/plugins/cli-reference#reload-plugins)以使外掛程式的設定命令可用。128 當安裝要求安裝範圍時,選擇使用者範圍選項,以便外掛程式在所有專案中可用。檢查安裝摘要:如果報告 `Run /reload-plugins to activate.`,請參閱[在不重新啟動的情況下套用外掛程式變更](/docs/zh-TW/plugins/cli-reference#reload-plugins)以使外掛程式的設定命令可用。

129 </Step>129 </Step>


138 這會將其儲存到 `~/.claude/channels/discord/.env`。您也可以在啟動 Claude Code 之前在 shell 環境中設定 `DISCORD_BOT_TOKEN`。138 這會將其儲存到 `~/.claude/channels/discord/.env`。您也可以在啟動 Claude Code 之前在 shell 環境中設定 `DISCORD_BOT_TOKEN`。

139 </Step>139 </Step>

140 140 

141 <Step title="在啟用 channels 的情況下重新啟動">141 <Step title="在啟用頻道的情況下重新啟動">

142 退出 Claude Code 並使用 channel 旗標重新啟動。這會連接 Discord 外掛程式,讓您的機器人可以接收和回應訊息:142 退出 Claude Code 並使用頻道旗標重新啟動。這會連接 Discord 外掛程式,讓您的機器人可以接收和回應訊息:

143 143 

144 ```bash theme={null}144 ```bash theme={null}

145 claude --channels plugin:discord@claude-plugins-official145 claude --channels plugin:discord@claude-plugins-official


149 <Step title="配對您的帳戶">149 <Step title="配對您的帳戶">

150 在 Discord 上直接訊息您的機器人。機器人會回覆配對代碼。150 在 Discord 上直接訊息您的機器人。機器人會回覆配對代碼。

151 151 

152 <Note>如果您的機器人沒有回應,請確保 Claude Code 使用上一步的 `--channels` 執行。機器人只能在 channel 處於活動狀態時回覆。</Note>152 <Note>如果您的機器人沒有回應,請確保 Claude Code 使用上一步的 `--channels` 執行。機器人只能在頻道處於啟用狀態時回覆。</Note>

153 153 

154 回到 Claude Code,執行:154 回到 Claude Code,執行:

155 155 


169 <Tab title="iMessage">169 <Tab title="iMessage">

170 檢視完整的 [iMessage 外掛程式原始碼](https://github.com/anthropics/claude-plugins-official/tree/main/external_plugins/imessage)。170 檢視完整的 [iMessage 外掛程式原始碼](https://github.com/anthropics/claude-plugins-official/tree/main/external_plugins/imessage)。

171 171 

172 iMessage channel 直接讀取您的訊息資料庫,並通過 AppleScript 傳送回覆。它需要 macOS,不需要機器人權杖或外部服務。172 iMessage 頻道直接讀取您的訊息資料庫,並透過 AppleScript 傳送回覆。它需要 macOS,不需要機器人權杖或外部服務。

173 173 

174 <Steps>174 <Steps>

175 <Step title="授予完整磁碟存取權">175 <Step title="授予完整磁碟存取權">

176 位於 `~/Library/Messages/chat.db` 的訊息資料庫受 macOS 保護。伺服器第一次讀取它時,macOS 會提示存取:按一下**允許**。提示會命名啟動 Bun 的任何應用程式,例如終端、iTerm 或您的 IDE。176 位於 `~/Library/Messages/chat.db` 的訊息資料庫受 macOS 保護。伺服器第一次讀取它時,macOS 會提示存取:按一下**允許**。提示會命名啟動 Bun 的任何應用程式,例如終端機、iTerm 或您的 IDE。

177 177 

178 如果提示未出現或您按一下「不允許」,請在**系統設定 > 隱私與安全 > 完整磁碟存取**下手動授予存取權,並新增您的終端。沒有這個,伺服器會立即退出,並顯示 `authorization denied`。178 如果提示未出現或您按一下「不允許」,請在**系統設定 > 隱私與安全 > 完整磁碟存取**下手動授予存取權,並新增您的終端機。沒有這個,伺服器會立即退出,並顯示 `authorization denied`。

179 </Step>179 </Step>

180 180 

181 <Step title="安裝外掛程式">181 <Step title="安裝外掛程式">

182 在 Claude Code 中,執行:182 在終端機中執行 `claude` 以啟動 Claude Code,然後在其提示字元輸入以下內容:

183 183 

184 ```184 ```

185 /plugin install imessage@claude-plugins-official185 /plugin install imessage@claude-plugins-official

186 ```186 ```

187 187 

188 如果安裝失敗,請符合 Claude Code 報告的訊息:188 如果安裝失敗,請對照 Claude Code 報告的訊息:

189 189 

190 * `Marketplace "claude-plugins-official" not found`:使用 `/plugin marketplace add anthropics/claude-plugins-official` 新增市場,然後重試安裝。190 * `Marketplace "claude-plugins-official" not found`:使用 `/plugin marketplace add anthropics/claude-plugins-official` 新增市集,然後重試安裝。

191 * 外掛程式[在市場中找不到](/docs/zh-TW/plugins/install#install-a-plugin):檢查外掛程式名稱。191 * 外掛程式[在市集中找不到](/docs/zh-TW/plugins/install#install-a-plugin):檢查外掛程式名稱。

192 192 

193 當安裝要求安裝範圍時,選擇使用者範圍選項,以便外掛程式在所有專案中可用。如果安裝摘要報告 `Run /reload-plugins to activate.`,您可以在此跳過,因為下一步中的重新啟動會選取外掛程式。193 當安裝要求安裝範圍時,選擇使用者範圍選項,以便外掛程式在所有專案中可用。

194 

195 如果安裝摘要報告 `Run /reload-plugins to activate.`,您不需要在此處理,因為下一步中的重新啟動會載入外掛程式。

194 </Step>196 </Step>

195 197 

196 <Step title="在啟用 channels 的情況下重新啟動">198 <Step title="在啟用頻道的情況下重新啟動">

197 退出 Claude Code 並使用 channel 旗標重新啟動:199 退出 Claude Code 並使用頻道旗標重新啟動:

198 200 

199 ```bash theme={null}201 ```bash theme={null}

200 claude --channels plugin:imessage@claude-plugins-official202 claude --channels plugin:imessage@claude-plugins-official


202 </Step>204 </Step>

203 205 

204 <Step title="傳送訊息給自己">206 <Step title="傳送訊息給自己">

205 在任何登入您 Apple ID 的裝置上開啟訊息,並向自己傳送訊息。它立即到達 Claude:自聊天繞過存取控制,無需設定。207 在任何登入您 Apple ID 的裝置上開啟訊息,並向自己傳送訊息。它會立即到達 Claude:自聊天繞過存取控制,無需設定。

206 208 

207 <Note>Claude 傳送的第一個回覆會觸發 macOS 自動化提示,詢問您的終端是否可以控制訊息。按一下 **OK**。</Note>209 <Note>Claude 傳送的第一個回覆會觸發 macOS 自動化提示,詢問您的終端機是否可以控制訊息。按一下 **OK**。</Note>

208 </Step>210 </Step>

209 211 

210 <Step title="允許其他寄件者">212 <Step title="允許其他寄件者">

211 預設情況下,只有您自己的訊息通過。若要讓另一個聯絡人到達 Claude,請新增其控制代碼:213 預設情況下,只有您自己的訊息會通過。若要讓另一個聯絡人到達 Claude,請新增其控制代碼:

212 214 

213 ```215 ```

214 /imessage:access allow +15551234567216 /imessage:access allow +15551234567


224 快速入門226 快速入門

225</h2>227</h2>

226 228 

227Fakechat 是一個官方支援的演示 channel,在 localhost 上執行聊天 UI,無需驗證,也無需設定外部服務。229Fakechat 是一個官方支援的演示頻道,在 localhost 上執行聊天 UI,無需驗證,也無需設定外部服務。

228 230 

229安裝並啟用 fakechat 後,您可以在瀏覽器中輸入,訊息會到達您的 Claude Code 工作階段。Claude 回覆,回覆會顯示在瀏覽器中。測試 fakechat 介面後,嘗試 [Telegram](https://github.com/anthropics/claude-plugins-official/tree/main/external_plugins/telegram)、[Discord](https://github.com/anthropics/claude-plugins-official/tree/main/external_plugins/discord) 或 [iMessage](https://github.com/anthropics/claude-plugins-official/tree/main/external_plugins/imessage)。231安裝並啟用 fakechat 後,您可以在瀏覽器中輸入,訊息會到達您的 Claude Code 工作階段。Claude 回覆,回覆會顯示在瀏覽器中。測試 fakechat 介面後,嘗試 [Telegram](https://github.com/anthropics/claude-plugins-official/tree/main/external_plugins/telegram)、[Discord](https://github.com/anthropics/claude-plugins-official/tree/main/external_plugins/discord) 或 [iMessage](https://github.com/anthropics/claude-plugins-official/tree/main/external_plugins/imessage)。

230 232 

231若要嘗試 fakechat 演示,您需要:233若要嘗試 fakechat 演示,您需要:

232 234 

233* Claude Code [已安裝並使用 claude.ai 帳戶或 Claude Console API 金鑰進行驗證](/docs/zh-TW/quickstart#step-1-install-claude-code)235* Claude Code [已安裝並使用 claude.ai 帳戶或 Claude Console API 金鑰進行驗證](/docs/zh-TW/quickstart#step-1-install-claude-code)

234* [Bun](https://bun.sh) 已安裝。預先建立的 channel 外掛程式是 Bun 指令碼。使用 `bun --version` 檢查;如果失敗,[安裝 Bun](https://bun.sh/docs/installation)。236* [Bun](https://bun.sh) 已安裝。預先建立的頻道外掛程式是 Bun 指令碼。使用 `bun --version` 檢查;如果失敗,[安裝 Bun](https://bun.sh/docs/installation)。

235* **Team、Enterprise 或受管 Console 組織**:您的管理員必須在受管設定中[啟用 channels](#enterprise-controls)237* **Team、Enterprise 或受管 Console 組織**:您的管理員必須在受管設定中[啟用頻道](#enterprise-controls)

236 238 

237<Steps>239<Steps>

238 <Step title="安裝 fakechat channel 外掛程式">240 <Step title="安裝 fakechat 頻道外掛程式">

239 啟動 Claude Code 工作階段並執行安裝命令:241 在終端機中執行 `claude` 以啟動 Claude Code,然後在其提示字元中輸入安裝命令:

240 242 

241 ```text theme={null}243 ```text theme={null}

242 /plugin install fakechat@claude-plugins-official244 /plugin install fakechat@claude-plugins-official

243 ```245 ```

244 246 

245 如果安裝失敗,請符合 Claude Code 報告的訊息:247 如果安裝失敗,請對照 Claude Code 報告的訊息:

248 

249 * `Marketplace "claude-plugins-official" not found`:使用 `/plugin marketplace add anthropics/claude-plugins-official` 新增市集,然後重試安裝。

250 * 外掛程式[在市集中找不到](/docs/zh-TW/plugins/install#install-a-plugin):檢查外掛程式名稱。

246 251 

247 * `Marketplace "claude-plugins-official" not found`:使用 `/plugin marketplace add anthropics/claude-plugins-official` 新增市場,然後重試安裝。252 當安裝要求選擇安裝範圍時,選擇使用者範圍選項,以便外掛程式在您的所有專案中可用。

248 * 外掛程式[在市場中找不到](/docs/zh-TW/plugins/install#install-a-plugin):檢查外掛程式名稱。

249 253 

250 當安裝要求安裝範圍時,選擇使用者範圍選項,以便外掛程式在所有專案中可用。如果安裝摘要報告 `Run /reload-plugins to activate.`,您可以在此跳過,因為下一步中的重新啟動會選取外掛程式。254 如果安裝摘要報告 `Run /reload-plugins to activate.`,您無需在此處理,因為下一步中的重新啟動會載入外掛程式。

251 </Step>255 </Step>

252 256 

253 <Step title="在啟用 channel 的情況下重新啟動">257 <Step title="在啟用頻道的情況下重新啟動">

254 退出 Claude Code,然後使用 `--channels` 重新啟動並傳遞您安裝的 fakechat 外掛程式:258 退出 Claude Code,然後使用 `--channels` 重新啟動並傳遞您安裝的 fakechat 外掛程式:

255 259 

256 ```bash theme={null}260 ```bash theme={null}

257 claude --channels plugin:fakechat@claude-plugins-official261 claude --channels plugin:fakechat@claude-plugins-official

258 ```262 ```

259 263 

260 fakechat 伺服器會自動啟動。啟動畫面顯示 channels 通知,指出來自 `plugin:fakechat@claude-plugins-official` 的訊息直接注入此工作階段。如果外掛程式未安裝或不在核准的允許清單上,警告行會在該通知下方顯示問題名稱。264 fakechat 伺服器會自動啟動。啟動畫面顯示頻道通知,指出來自 `plugin:fakechat@claude-plugins-official` 的訊息直接注入此工作階段。如果外掛程式未安裝或不在核准的允許清單上,警告行會在該通知下方顯示問題名稱。

261 265 

262 <Tip>266 <Tip>

263 您可以將多個外掛程式傳遞到 `--channels`,以空格分隔。267 您可以將多個外掛程式傳遞到 `--channels`,以空格分隔。


271 what's in my working directory?275 what's in my working directory?

272 ```276 ```

273 277 

274 訊息到達您的 Claude Code 工作階段。終端將其顯示為入站 channel 行,例如 `← fakechat · web: what's in my working directory?`,而模型將其接收為 `<channel source="plugin:fakechat:fakechat">` 事件,使用外掛程式的範圍伺服器名稱。Claude 讀取它,完成工作,並呼叫 fakechat 的 `reply` 工具。如果 Claude Code 要求第一次回覆的權限,請批准它。答案會顯示在聊天 UI 中。278 訊息到達您的 Claude Code 工作階段。終端機將其顯示為入站頻道行,例如 `← fakechat · web: what's in my working directory?`,而模型將其接收為 `<channel source="plugin:fakechat:fakechat">` 事件,使用外掛程式的範圍伺服器名稱。Claude 讀取它,完成工作,並呼叫 fakechat 的 `reply` 工具。如果 Claude Code 要求第一次回覆的權限,請核准它。答案會顯示在聊天 UI 中。

275 </Step>279 </Step>

276</Steps>280</Steps>

277 281 

278如果 Claude 在您不在終端時遇到權限提示,工作階段會暫停,直到您回應。宣告[權限中繼功能](/docs/zh-TW/channels-reference#relay-permission-prompts)的 channel 伺服器可以將這些提示轉發給您,以便您可以遠端批准或拒絕。對於無人值守使用,[`--dangerously-skip-permissions`](/docs/zh-TW/permission-modes#skip-all-checks-with-bypasspermissions-mode) 會略過大多數提示,但僅在您信任的環境中使用。即使如此,[任何模式都不會自動批准的操作](/docs/zh-TW/permission-modes#actions-no-mode-auto-approves)仍然適用。282如果 Claude 在您不在終端機前時遇到權限提示,工作階段會暫停,直到您回應。宣告[權限中繼功能](/docs/zh-TW/channels-reference#relay-permission-prompts)的頻道伺服器可以將這些提示轉發給您,以便您可以遠端核准或拒絕。對於無人值守使用,[`--dangerously-skip-permissions`](/docs/zh-TW/permission-modes#skip-all-checks-with-bypasspermissions-mode) 會略過大多數提示,但僅在您信任的環境中使用。即使如此,[任何模式都不會自動核准的操作](/docs/zh-TW/permission-modes#actions-no-mode-auto-approves)仍然適用。

279 283 

280當您以非互動模式使用 `-p` 執行 channels 時,需要終端輸入的工具(例如多選題和計畫模式批准)會被停用,因此工作階段永遠不會因等待輸入而停滯。284當您以非互動模式使用 `-p` 執行頻道時,需要終端機輸入的工具(例如多選題和 plan mode 核准)會被停用,因此工作階段永遠不會因等待輸入而停滯。

281 285 

282<h2 id="security">286<h2 id="security">

283 安全性287 安全性

chrome.md +91 −29

Details

10 10 

11Claude 為瀏覽器任務開啟新標籤頁,並共享您瀏覽器的登入狀態,因此它可以存取您已登入的任何網站。瀏覽器操作在可見的 Chrome 視窗中即時執行。當 Claude 遇到登入頁面或 CAPTCHA 時,它會暫停並要求您手動處理。11Claude 為瀏覽器任務開啟新標籤頁,並共享您瀏覽器的登入狀態,因此它可以存取您已登入的任何網站。瀏覽器操作在可見的 Chrome 視窗中即時執行。當 Claude 遇到登入頁面或 CAPTCHA 時,它會暫停並要求您手動處理。

12 12 

13擴充功能會將 Claude 開啟的標籤頁收集到與您的工作階段綁定的 Chrome 標籤頁群組中。在本機工作階段中,工作階段結束時 Claude Code 是否會關閉該群組,取決於工作階段的結束方式:

14 

15* 當您輸入 `/clear` 時,Claude Code 會關閉該群組(包括已開啟的頁面),除非在清除後仍會保留的工作仍在執行中

16* 當您使用 `/resume` 等命令切換工作階段、結束 Claude Code,或在清除後仍會保留的工作仍在執行時執行 `/clear`,Claude Code 只會在群組中僅包含空白新標籤頁時才關閉該群組,讓您可能仍在閱讀的頁面保持開啟

17 

13<Note>18<Note>

14 Chrome 整合適用於 Google Chrome 和 Microsoft Edge。尚不支援 Brave、Arc 或其他基於 Chromium 的瀏覽器。也不支援 Windows Subsystem for Linux (WSL)。19 Chrome 整合適用於 Google Chrome 和 Microsoft Edge。Claude Code 也會在其他基於 Chromium 的瀏覽器(包括 Brave、Arc、Vivaldi 和 Opera)中偵測擴充功能並設定連線。Windows Subsystem for Linux (WSL) 不支援 Chrome 整合。

15</Note>20</Note>

16 21 

17<h2 id="capabilities">22<h2 id="capabilities">


26* **已驗證的網頁應用程式**:與 Google Docs、Gmail、Notion 或您已登入的任何應用程式互動,無需 API 連接器31* **已驗證的網頁應用程式**:與 Google Docs、Gmail、Notion 或您已登入的任何應用程式互動,無需 API 連接器

27* **資料提取**:從網頁中提取結構化資訊並將其儲存在本地32* **資料提取**:從網頁中提取結構化資訊並將其儲存在本地

28* **任務自動化**:自動化重複的瀏覽器任務,如資料輸入、表單填充或多網站工作流程33* **任務自動化**:自動化重複的瀏覽器任務,如資料輸入、表單填充或多網站工作流程

34* **檔案上傳**:將您電腦上的檔案附加到網頁上的上傳欄位

29* **工作階段錄製**:將瀏覽器互動錄製為 GIF,以記錄或分享發生的情況35* **工作階段錄製**:將瀏覽器互動錄製為 GIF,以記錄或分享發生的情況

30 36 

31<h2 id="prerequisites">37<h2 id="prerequisites">


34 40 

35在使用 Claude Code 與 Chrome 之前,您需要:41在使用 Claude Code 與 Chrome 之前,您需要:

36 42 

37* [Google Chrome](https://www.google.com/chrome/) 或 [Microsoft Edge](https://www.microsoft.com/edge) 瀏覽器43* [Google Chrome](https://www.google.com/chrome/)、[Microsoft Edge](https://www.microsoft.com/edge) 或其他基於 Chromium 的瀏覽器,例如 Brave、Arc、Vivaldi 或 Opera

38* [Claude in Chrome 擴充功能](https://chromewebstore.google.com/detail/claude/fcoeoabgfenejglbffodgkkbkcdhcgfn) 版本 1.0.36 或更高版本,可在 Chrome Web Store 中為兩個瀏覽器取得44* [Claude in Chrome 擴充功能](https://chromewebstore.google.com/detail/claude/fcoeoabgfenejglbffodgkkbkcdhcgfn) 版本 1.0.36 或更高版本,可在 Chrome Web Store 中取得

39* [Claude Code](/docs/zh-TW/quickstart#step-1-install-claude-code)45* [Claude Code](/docs/zh-TW/quickstart#step-1-install-claude-code)

40* 直接 Anthropic 計畫(Pro、Max、Team 或 Enterprise)46* 直接 Anthropic 計畫(Pro、Max、Team 或 Enterprise)

41 47 

48Chrome 整合還需要使用 `/login` 登入。如果您使用 API 金鑰或來自 [`claude setup-token`](/docs/zh-TW/authentication#generate-a-long-lived-token) 的長期 token 進行身分驗證,即使您傳入 `--chrome`,Claude Code 也會保持 Chrome 整合關閉,因為瀏覽器擴充功能無法使用這些憑證進行身分驗證。在 v2.1.216 之前,這些工作階段可以啟用 Chrome 整合,但每次嘗試連線至瀏覽器擴充功能時都會因 403 錯誤而失敗。

49 

42<Note>50<Note>

43 Chrome 整合不適用於 Amazon Bedrock、Google Cloud 的 Agent Platform 或 Microsoft Foundry 等第三方提供商。如果您只透過第三方提供商存取 Claude,則需要單獨的 claude.ai 帳戶才能使用此功能。51 Chrome 整合不適用於 Amazon Bedrock、Google Cloud 的 Agent Platform 或 Microsoft Foundry 等第三方提供商。如果您只透過第三方提供商存取 Claude,則需要單獨的 claude.ai 帳戶才能使用此功能。

44</Note>52</Note>


49 57 

50<Steps>58<Steps>

51 <Step title="使用 Chrome 啟動 Claude Code">59 <Step title="使用 Chrome 啟動 Claude Code">

52 使用 `--chrome` 標誌啟動 Claude Code:60 使用 `--chrome` 旗標啟動 Claude Code:

53 61 

54 ```bash theme={null}62 ```bash theme={null}

55 claude --chrome63 claude --chrome

56 ```64 ```

57 65 

58 您也可以透過執行 `/chrome` 在現有工作階段中啟用 Chrome。66 第一次搭配 Chrome 啟動時,Claude Code 會顯示一次性的對話框,介紹此整合並說明網站權限的運作方式。按 Enter 繼續。

67 

68 若要在未來的工作階段中不使用旗標即啟用 Chrome,請參閱[預設啟用 Chrome](#enable-chrome-by-default)。

59 </Step>69 </Step>

60 70 

61 <Step title="要求 Claude 使用瀏覽器">71 <Step title="要求 Claude 使用瀏覽器">

62 此範例導航到頁面、與其互動並報告其發現,全部來自您的終端或編輯器:72 此範例會導航到頁面、與其互動並回報其發現,全部在您的終端機或編輯器中完成:

63 73 

64 ```text theme={null}74 ```text wrap theme={null}

65 Go to code.claude.com/docs, click on the search box,75 Go to code.claude.com/docs, click on the search box,

66 type "hooks", and tell me what results appear76 type "hooks", and tell me what results appear

67 ```77 ```

68 78 

69 第一個瀏覽器操作會要求使用 `claude-in-chrome` 技能的權限。批准它,Claude 會開啟新標籤並開始執行任務。79 如果 Claude Code 在執行瀏覽器操作前要求權限,請批准它。對話框以 `Claude in Chrome wants to` 開頭,並提供一個選項,可在此工作階段中允許該網站上的所有操作。Claude 會開啟新分頁並開始執行任務。

70 </Step>80 </Step>

71</Steps>81</Steps>

72 82 

73隨時執行 `/chrome` 以檢查連接狀態、管理權限、重新連接擴充功能,或選擇要使用的已連接瀏覽器。如果在瀏覽器操作開始時連接了多個瀏覽器,Claude 會提示您選擇一個。83隨時執行 `/chrome` 以檢查連線狀態、管理權限、重新連線擴充功能,或選擇要使用的已連線瀏覽器。當狀態面板顯示「狀態:已啟用」和「擴充功能:已安裝」時,表示整合正常運作。

84 

85如果連線了多個瀏覽器,您可以選擇 Claude 要使用哪一個。當瀏覽器操作在您做出選擇之前開始時,Claude 會提示您選擇一個。若之後要切換瀏覽器,請執行 `/chrome` 並選擇 **選擇瀏覽器…**。即使有其他瀏覽器連線,Claude 仍會持續使用您的選擇。

74 86 

75對於 VS Code,請參閱 [VS Code 中的瀏覽器自動化](/docs/zh-TW/vs-code#automate-browser-tasks-with-chrome)。87對於 VS Code,請參閱 [VS Code 中的瀏覽器自動化](/docs/zh-TW/vs-code#automate-browser-tasks-with-chrome)。

76 88 

89<h3 id="install-the-extension-when-claude-asks">

90 在 Claude 詢問時安裝擴充功能

91</h3>

92 

93當 Claude 在互動式工作階段中需要使用您的瀏覽器,而 Claude Code 未偵測到擴充功能時,Claude Code 會顯示標題為「Claude 想要使用您的瀏覽器」的安裝提示。Claude Code 每個工作階段最多詢問一次。

94 

95此提示提供三個選項:

96 

97* **安裝擴充功能**:在您的瀏覽器中開啟擴充功能安裝頁面,並開始引導式設定。Claude Code 會等待安裝完成、連線擴充功能,並在同一個工作階段中啟用瀏覽器工具。連線就緒後,選擇「繼續使用瀏覽器工具」,Claude 就會在您的瀏覽器中繼續執行任務。您可以選擇「不使用瀏覽器工具繼續」以離開設定,稍後再使用 `/chrome` 完成。

98* **暫時不要**:不使用瀏覽器工具繼續執行任務。Claude Code 可能會在之後的工作階段中再次詢問。

99* **不要再詢問**:在未來的工作階段中停止顯示此提示。您仍可隨時使用 `/chrome` 設定此整合。

100 

101有兩種受管 MCP 政策會關閉此提示:

102 

103* 如果您的組織使用 [`deniedMcpServers` 受管設定](/docs/zh-TW/managed-mcp#policy-based-control-with-allowlists-and-denylists)封鎖 `claude-in-chrome` MCP 伺服器,Claude Code 不會顯示安裝提示。

104* 如果您的組織部署了 [`managed-mcp.json`](/docs/zh-TW/managed-mcp#exclusive-control-with-managed-mcp-json) 檔案,但未[在受管集合之外允許 Claude in Chrome](/docs/zh-TW/managed-mcp#allow-claude-in-chrome-alongside-the-managed-set),Claude Code 不會顯示安裝提示。

105 

77<h3 id="enable-chrome-by-default">106<h3 id="enable-chrome-by-default">

78 預設啟用 Chrome107 預設啟用 Chrome

79</h3>108</h3>

80 109 

81為了避免每個工作階段都傳遞 `--chrome`,執行 `/chrome` 並選擇「預設啟用」。110為了避免每個工作階段都傳遞 `--chrome`,執行 `/chrome` 並選擇「預設啟用」。

82 111 

83在 [VS Code 擴充功能](/docs/zh-TW/vs-code#automate-browser-tasks-with-chrome) 中,只要安裝了 Chrome 擴充功能,Chrome 就可用。無需額外標誌。112當 Chrome 未執行時,Claude Code 會正常啟動。在 v2.1.211 之前,若已啟用 Chrome 整合但 Chrome 未執行,啟動過程可能會停滯。

113 

114在 [VS Code 擴充功能](/docs/zh-TW/vs-code#automate-browser-tasks-with-chrome) 中,只要安裝了 Chrome 擴充功能,Chrome 就可用。無需額外旗標。

84 115 

85<Note>116<Note>

86 在 CLI 中預設啟用 Chrome 會增加上下文使用量,因為瀏覽器工具始終被載入。如果您注意到上下文消耗增加,請停用此設定,並僅在需要時使用 `--chrome`。117 在 CLI 中預設啟用 Chrome 會增加上下文使用量,因為瀏覽器工具始終被載入。如果您注意到上下文消耗增加,請停用此設定,並僅在需要時使用 `--chrome`。


90 管理網站權限121 管理網站權限

91</h3>122</h3>

92 123 

93網站級權限繼承自 Chrome 擴充功能。在 Chrome 擴充功能設定中管理權限,以控制 Claude 可以瀏覽、點擊和輸入的網站。124網站級權限繼承自 Chrome 擴充功能。在 Chrome 擴充功能設定中管理權限,以控制 Claude 可以瀏覽、點擊和輸入的網站。在[自動模式](/docs/zh-TW/permission-modes#eliminate-prompts-with-auto-mode)中,當自動模式分類器本身批准對某網站的瀏覽器呼叫時,擴充功能會針對該呼叫略過其本身的逐網站檢查,除非您的權限規則拒絕 Claude in Chrome 存取任何網站。

94 125 

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

96 計畫模式中的瀏覽器工具127 plan mode 中的瀏覽器工具

97</h3>128</h3>

98 129 

99在 [計畫模式](/docs/zh-TW/permission-modes#analyze-before-you-edit-with-plan-mode) 中,只讀取頁面或瀏覽器狀態的瀏覽器工具呼叫無需權限提示即可執行,而改變狀態的呼叫會提示批准。130在 [plan mode](/docs/zh-TW/permission-modes#analyze-before-you-edit-with-plan-mode) 中,Claude 錄製 GIF、開啟新分頁或執行捷徑之前,會出現權限提示。如果您的工作階段中[可使用略過權限模式](/docs/zh-TW/permission-modes#skip-all-checks-with-bypasspermissions-mode),且[功能旗標擷取](/docs/zh-TW/env-vars#features-that-need-feature-flag-fetching)已關閉,這些呼叫會在無提示的情況下執行。

100 

101* **唯讀呼叫**:`read_page`、`get_page_text`、`find`、讀取主控台訊息或網路請求,以及擷取螢幕截圖

102* **改變狀態的呼叫**:點擊、輸入、導航、標籤和視窗管理,以及錄製 GIF

103 131 

104自 v2.1.199 起,設定狀態改變輸入標誌的唯讀呼叫(例如 `tabs_context_mcp` 上的 `createIfEmpty`、主控台和網路讀取器上的 `clear`,或螢幕截圖上的 `save_to_disk`)也會提示批准。`browser_batch` 呼叫只有在其中的每個操作都是唯讀時,才會無提示執行。132`tabs_context_mcp` 呼叫在設定 `createIfEmpty` 時也會提示,包含上述任一操作的 `browser_batch` 呼叫亦同。

105 133 

106<h2 id="example-workflows">134<h2 id="example-workflows">

107 範例工作流程135 範例工作流程


115 143 

116開發網頁應用程式時,要求 Claude 驗證您的變更是否正確運作:144開發網頁應用程式時,要求 Claude 驗證您的變更是否正確運作:

117 145 

118```text theme={null}146```text wrap theme={null}

119I just updated the login form validation. Can you open localhost:3000,147I just updated the login form validation. Can you open localhost:3000,

120try submitting the form with invalid data, and check if the error148try submitting the form with invalid data, and check if the error

121messages appear correctly?149messages appear correctly?


129 157 

130Claude 可以讀取控制台輸出以幫助診斷問題。告訴 Claude 要尋找的模式,而不是要求所有控制台輸出,因為日誌可能很冗長:158Claude 可以讀取控制台輸出以幫助診斷問題。告訴 Claude 要尋找的模式,而不是要求所有控制台輸出,因為日誌可能很冗長:

131 159 

132```text theme={null}160```text wrap theme={null}

133Open the dashboard page and check the console for any errors when161Open the dashboard page and check the console for any errors when

134the page loads.162the page loads.

135```163```


142 170 

143加快重複資料輸入任務的速度:171加快重複資料輸入任務的速度:

144 172 

145```text theme={null}173```text wrap theme={null}

146I have a spreadsheet of customer contacts in contacts.csv. For each row,174I have a spreadsheet of customer contacts in contacts.csv. For each row,

147go to the CRM at crm.example.com, click "Add Contact", and fill in the175go to the CRM at crm.example.com, click "Add Contact", and fill in the

148name, email, and phone fields.176name, email, and phone fields.


150 178 

151Claude 讀取您的本地檔案、導航網頁介面並為每筆記錄輸入資料。179Claude 讀取您的本地檔案、導航網頁介面並為每筆記錄輸入資料。

152 180 

181<h3 id="upload-files-to-web-pages">

182 上傳檔案到網頁

183</h3>

184 

185Claude 可以將您電腦上的檔案附加到頁面上的上傳欄位。Claude Code 會讀取檔案並將其內容傳送到瀏覽器,因此上傳在本地和遠端工作階段中皆可運作。需要 Claude Code v2.1.211 或更新版本。

186 

187此範例將日誌檔案附加到表單:

188 

189```text wrap theme={null}

190Open the bug tracker at bugs.example.com, create a new issue,

191and attach logs/session.log to it

192```

193 

194上傳適用三項限制:

195 

196* **權限**:只有在工作階段被允許讀取檔案時,Claude 才能上傳該檔案,因此拒絕對檔案進行 `Read` 存取的[權限規則](/docs/zh-TW/settings-reference#permission-settings)也會阻止上傳該檔案。

197* **大小**:單次上傳的檔案總計最多可達 10 MB。

198* **硬連結**:Claude 會拒絕具有多個硬連結的檔案,這在 `node_modules` 等套件管理器儲存區中很常見。請複製該檔案並上傳副本。

199 

153<h3 id="draft-content-in-google-docs">200<h3 id="draft-content-in-google-docs">

154 在 Google Docs 中起草內容201 在 Google Docs 中起草內容

155</h3>202</h3>

156 203 

157使用 Claude 直接在您的文件中寫入,無需 API 設定:204使用 Claude 直接在您的文件中寫入,無需 API 設定:

158 205 

159```text theme={null}206```text wrap theme={null}

160Draft a project update based on the recent commits and add it to my207Draft a project update based on the recent commits and add it to my

161Google Doc at docs.google.com/document/d/abc123208Google Doc at docs.google.com/document/d/abc123

162```209```


169 216 

170從網站中提取結構化資訊:217從網站中提取結構化資訊:

171 218 

172```text theme={null}219```text wrap theme={null}

173Go to the product listings page and extract the name, price, and220Go to the product listings page and extract the name, price, and

174availability for each item. Save the results as a CSV file.221availability for each item. Save the results as a CSV file.

175```222```


182 229 

183協調多個網站之間的任務:230協調多個網站之間的任務:

184 231 

185```text theme={null}232```text wrap theme={null}

186Check my calendar for meetings tomorrow, then for each meeting with233Check my calendar for meetings tomorrow, then for each meeting with

187an external attendee, look up their company website and add a note234an external attendee, look up their company website and add a note

188about what they do.235about what they do.


196 243 

197建立瀏覽器互動的可共享錄製:244建立瀏覽器互動的可共享錄製:

198 245 

199```text theme={null}246```text wrap theme={null}

200Record a GIF showing how to complete the checkout flow, from adding247Record a GIF showing how to complete the checkout flow, from adding

201an item to the cart through to the confirmation page.248an item to the cart through to the confirmation page.

202```249```

203 250 

204Claude 錄製互動序列並將其儲存為 GIF 檔案。251Claude 錄製互動序列並將其儲存為 GIF 檔案。錄製內容會擷取瀏覽器中所有可見的內容,包括已登入頁面上的帳戶詳細資料,因此在與團隊以外的人分享之前,請先檢查錄製內容。

252 

253<h3 id="save-screenshots-to-disk">

254 將螢幕截圖儲存到磁碟

255</h3>

256 

257要求 Claude 將螢幕截圖保留為檔案:

258 

259```text wrap theme={null}

260Take a screenshot of the checkout page and save it to disk

261```

262 

263Claude 會將圖片儲存到磁碟並回報檔案路徑。在 v2.1.211 之前,螢幕截圖工具的 `save_to_disk` 選項不會寫入檔案。

205 264 

206<h2 id="troubleshooting">265<h2 id="troubleshooting">

207 故障排除266 疑難排解

208</h2>267</h2>

209 268 

210<h3 id="extension-not-detected">269<h3 id="extension-not-detected">


221 280 

222第一次啟用 Chrome 整合時,Claude Code 會安裝原生訊息主機設定檔。Chrome 在啟動時讀取此檔案,因此如果擴充功能在您的第一次嘗試中未被偵測到,請重新啟動 Chrome 以取得新設定。281第一次啟用 Chrome 整合時,Claude Code 會安裝原生訊息主機設定檔。Chrome 在啟動時讀取此檔案,因此如果擴充功能在您的第一次嘗試中未被偵測到,請重新啟動 Chrome 以取得新設定。

223 282 

224自 v2.1.199 起,Claude Code 會在第一次安裝時開啟瀏覽器標籤頁,提示您連接擴充功能。稍後重寫設定檔的工作階段(例如在切換 Claude Code 組建或設定目錄後)不會重新開啟它。283Claude Code 只會在第一次安裝時開啟瀏覽器標籤頁,提示您連接擴充功能。當稍後的工作階段重寫設定檔時(例如在切換建置或設定目錄後),Claude Code 不會重新開啟它。

225 284 

226如果連接仍然失敗,請驗證主機設定檔是否存在於:285如果連接仍然失敗,請驗證主機設定檔是否存在於:

227 286 


237* **Linux**:`~/.config/microsoft-edge/NativeMessagingHosts/com.anthropic.claude_code_browser_extension.json`296* **Linux**:`~/.config/microsoft-edge/NativeMessagingHosts/com.anthropic.claude_code_browser_extension.json`

238* **Windows**:在 Windows 登錄中檢查 `HKCU\Software\Microsoft\Edge\NativeMessagingHosts\`297* **Windows**:在 Windows 登錄中檢查 `HKCU\Software\Microsoft\Edge\NativeMessagingHosts\`

239 298 

299其他基於 Chromium 的瀏覽器會從各自以瀏覽器命名的設定目錄中讀取相同的檔案。例如,macOS 上的 Brave 使用 `~/Library/Application Support/BraveSoftware/Brave-Browser/NativeMessagingHosts/`,而在 Windows 上,每個瀏覽器都有自己的登錄機碼,例如 `HKCU\Software\BraveSoftware\Brave-Browser\NativeMessagingHosts\`。

300 

240<h3 id="browser-not-responding">301<h3 id="browser-not-responding">

241 瀏覽器無回應302 瀏覽器無回應

242</h3>303</h3>


261 322 

262* **命名管道衝突 (EADDRINUSE)**:如果另一個程序正在使用相同的命名管道,請重新啟動 Claude Code。關閉任何可能使用 Chrome 的其他 Claude Code 工作階段。323* **命名管道衝突 (EADDRINUSE)**:如果另一個程序正在使用相同的命名管道,請重新啟動 Claude Code。關閉任何可能使用 Chrome 的其他 Claude Code 工作階段。

263* **原生訊息主機錯誤**:如果原生訊息主機在啟動時崩潰,請嘗試重新安裝 Claude Code 以重新產生主機設定。324* **原生訊息主機錯誤**:如果原生訊息主機在啟動時崩潰,請嘗試重新安裝 Claude Code 以重新產生主機設定。

325* **設定頁面無法開啟**:請更新 Claude Code。在 v2.1.211 之前,提示您連接擴充功能的瀏覽器標籤頁在 Windows 上可能無法開啟。

264 326 

265<h3 id="common-error-messages">327<h3 id="common-error-messages">

266 常見錯誤訊息328 常見錯誤訊息


270 332 

271| 錯誤 | 原因 | 修復 |333| 錯誤 | 原因 | 修復 |

272| - | - | - |334| - | - | - |

273| 「瀏覽器擴充功能未連接」 | 原生訊息主機無法到達擴充功能 | 重新啟動 Chrome 和 Claude Code,然後執行 `/chrome` 以重新連接 |335| 「瀏覽器擴充功能未連接」 | 原生訊息主機無法到達擴充功能,或您組織的 IP 允許清單拒絕了與 `bridge.claudeusercontent.com` 的連接 | 重新啟動 Chrome 和 Claude Code,然後執行 `/chrome` 以重新連接。如果您的組織使用 IP 允許清單且錯誤仍然存在,請參閱[組織 IP 允許清單與代理伺服器出口流量](/docs/zh-TW/network-config#organization-ip-allowlists-and-proxy-egress) |

274| 「未偵測到擴充功能」 | Chrome 擴充功能未安裝或已停用 | 在 `chrome://extensions` 中安裝或啟用擴充功能 |336| 擴充功能在 `/chrome` 中顯示「未偵測到」 | Chrome 擴充功能未安裝或已停用 | 在 `chrome://extensions` 中安裝或啟用擴充功能 |

275| 「沒有可用的標籤頁」 | Claude 在標籤頁準備好之前嘗試操作 | 要求 Claude 建立新標籤頁並重試 |337| 「沒有可用的標籤頁」 | Claude 在標籤頁準備好之前嘗試操作 | 要求 Claude 建立新標籤頁並重試 |

276| 「接收端不存在」 | 擴充功能服務工作者進入閒置狀態 | 執行 `/chrome` 並選擇「重新連接擴充功能」 |338| 「接收端不存在」 | 擴充功能服務工作者進入閒置狀態 | 執行 `/chrome` 並選擇「重新連接擴充功能」 |

277 339 

Details

135 傳送沒有 GitHub 的本機儲存庫135 傳送沒有 GitHub 的本機儲存庫

136</h4>136</h4>

137 137 

138當您從沒有 git 遠端的儲存庫執行 `claude --cloud`,或從 Claude GitHub App 未安裝的 github.com 儲存庫執行時,Claude Code 會將您的本機儲存庫打包並直接上傳到雲端工作階段。即使您使用 `/web-setup` 連接了 GitHub,這也適用。該套件包括您在所有分支上的完整儲存庫歷史記錄,加上對追蹤檔案的未提交變更。138當您從沒有 git 遠端的儲存庫執行 `claude --cloud`,或從 Claude GitHub App 未安裝的 github.com 儲存庫執行時,Claude Code 會將您的本機儲存庫打包並直接上傳到雲端工作階段。即使您使用 `/web-setup` 連接了 GitHub,這也適用。

139 139 

140在 macOS、Linux 和 WSL 上,Claude Code 會將名稱類似於認證或金鑰的檔案的未提交變更排除在上傳之外,並命名它排除的檔案。這涵蓋 `.env` 檔案、Terraform `*.tfvars` 檔案和金鑰檔案,例如 `id_rsa` 和 `*.pem`。工作階段會以每個檔案的已提交版本啟動,或如果未提交任何版本,則不含該檔案。140對於完整複製,該套件包括您在所有分支上的儲存庫歷史記錄,加上對追蹤檔案的未提交變更。

141 

142敏感檔案中未提交變更的處理方式取決於您的平台:

143 

144* **macOS、Linux 和 WSL**:Claude Code 會將名稱類似於憑證或金鑰的檔案的未提交變更排除在上傳之外。這涵蓋 `.env` 檔案、Terraform `*.tfvars` 檔案和金鑰檔案,例如 `id_rsa` 和 `*.pem`。它也會排除由 Git LFS 等 git 篩選器所管理之檔案的未提交變更。`Left on this machine:` 通知會列出被排除的檔案,工作階段會以每個檔案的已提交版本啟動,或如果未提交任何版本,則不含該檔案。

145* **原生 Windows**:對追蹤檔案的未提交變更會按原樣上傳,無論檔案名稱為何。在啟動雲端工作階段之前,請先隱藏或還原您不希望出現在其中的編輯。

141 146 

142若要在 Claude Code 會從遠端複製時強制上傳套件,請設定 `CCR_FORCE_BUNDLE=1`:147若要在 Claude Code 會從遠端複製時強制上傳套件,請設定 `CCR_FORCE_BUNDLE=1`:

143 148 


153* 在 macOS、Linux 和 WSL 上,當 Claude Code 無法遵循影響您的檔案適用哪些屬性規則的 git 設定時,Claude Code 會拒絕上傳,例如在包含的設定檔中設定的 `core.attributesFile`。[拒絕訊息](/docs/zh-TW/errors#the-repository-upload-cant-follow-a-git-setting) 會命名該設定和修正方式158* 在 macOS、Linux 和 WSL 上,當 Claude Code 無法遵循影響您的檔案適用哪些屬性規則的 git 設定時,Claude Code 會拒絕上傳,例如在包含的設定檔中設定的 `core.attributesFile`。[拒絕訊息](/docs/zh-TW/errors#the-repository-upload-cant-follow-a-git-setting) 會命名該設定和修正方式

154* 從套件建立的工作階段只有在您的 [GitHub connection](#github-authentication-options) 對該儲存庫具有推送存取權時,才能推送回 GitHub 遠端159* 從套件建立的工作階段只有在您的 [GitHub connection](#github-authentication-options) 對該儲存庫具有推送存取權時,才能推送回 GitHub 遠端

155 160 

161在 macOS、Linux 和 WSL 上,上傳還需要 git 2.31 或更新版本以及其支援的簽出結構;而在原生 Windows 上,Claude Code 上傳時不會進行這兩項檢查。當簽出不符合這些需求時,Claude Code 不會啟動工作階段。它會列印包含 `Not uploading this working tree:` 的錯誤,說明原因以及需要變更的內容。以下是常見原因:

162 

163* **較舊的 git**:已安裝的 git 早於 2.31。請更新 git,然後重試。

164* **上傳不支援的簽出結構**:您是從子模組內、使用 `git clone --separate-git-dir`、`--shared` 或 `--reference` 建立的複製中、設定了 `core.worktree` 的簽出中,或以 reftable 格式儲存 refs 的儲存庫中啟動。請改為從使用一般 `git clone` 建立之複製的主要簽出啟動。

165* **使用稀疏簽出的連結 worktree**:`git sparse-checkout` 會將設定寫入 worktree 自己的 `config.worktree` 檔案,而上傳不接受該檔案,因此具有這些設定的 worktree 不會被上傳,Claude Code 透過 [`worktree.sparsePaths`](/docs/zh-TW/settings-reference#worktree-sparsepaths) 建立的 worktree 也不會。請改為從儲存庫的主要簽出啟動。

166* **保存在工作樹內的 git 設定**:您的 git 設定包含位於簽出內的檔案,例如指向儲存庫內部的 `include.path` 項目。請將該檔案移到工作樹之外或移除該 include,然後重試。

167 

168在 macOS、Linux 和 WSL 上,使用 `git clone --filter` 建立的部分複製會以其工作樹的快照(不含歷史記錄)上傳,前提是該複製在本機保有每個追蹤檔案。

169 

170對於 `claude --cloud`,如果儲存庫位於 GitHub 上,您可以避免上傳及其需求:推送您的分支、在儲存庫上安裝 Claude GitHub App,然後再次啟動工作階段,使其從 GitHub 複製。

171 

156<h3 id="send-follow-ups-from-the-cli">172<h3 id="send-follow-ups-from-the-cli">

157 從 CLI 傳送後續訊息173 從 CLI 傳送後續訊息

158</h3>174</h3>


227| 分支可用 | 雲端工作階段的分支必須已推送到遠端。Teleport 會自動擷取並簽出它。 |243| 分支可用 | 雲端工作階段的分支必須已推送到遠端。Teleport 會自動擷取並簽出它。 |

228| 相同帳戶 | 您必須驗證到雲端工作階段中使用的同一 claude.ai 帳戶。 |244| 相同帳戶 | 您必須驗證到雲端工作階段中使用的同一 claude.ai 帳戶。 |

229 245 

246當 teleport 擷取工作階段的分支時,擷取作業絕不會在您的終端機中等待輸入。如果 git 或 ssh 需要詢問密碼、金鑰密語或新 SSH 主機的確認,擷取就會失敗,而只有在您的本機複製已有該分支時,簽出才能成功。對於這兩種 SSH 情況,請將您的金鑰載入 `ssh-agent`,並先手動執行一次 `git fetch` 以記錄主機。

247 

230<h4 id="teleport-is-unavailable">248<h4 id="teleport-is-unavailable">

231 `--teleport` 不可用249 `--teleport` 不可用

232</h4>250</h4>

Details

40 安裝外掛程式40 安裝外掛程式

41</h2>41</h2>

42 42 

43在 Claude Code 工作階段中,從[官方 Anthropic 市集](/docs/zh-TW/plugins/anthropic-marketplaces)安裝:43在 VS Code 擴充功能或桌面應用程式中,請依照[安裝外掛程式](/docs/zh-TW/plugins/install#install-a-plugin)進行安裝。在終端機中,執行 `claude` 啟動 Claude Code,然後在其提示字元中輸入以下內容,從[官方 Anthropic 市集](/docs/zh-TW/plugins/anthropic-marketplaces)安裝:

44 44 

45```text theme={null}45```text theme={null}

46/plugin install claude-security@claude-plugins-official46/plugin install claude-security@claude-plugins-official

cli-reference.md +25 −17

Details

15| 命令 | 說明 | 範例 |15| 命令 | 說明 | 範例 |

16| :- | :- | :- |16| :- | :- | :- |

17| `claude` | 啟動互動式工作階段 | `claude` |17| `claude` | 啟動互動式工作階段 | `claude` |

18| `claude "query"` | 使用初始提示啟動互動式工作階段 | `claude "explain this project"` |18| `claude "query"` | 使用初始提示詞啟動互動式工作階段 | `claude "explain this project"` |

19| `claude -p "query"` | 透過 SDK 查詢,然後退出 | `claude -p "explain this function"` |19| `claude -p "query"` | 透過 SDK 查詢,然後退出 | `claude -p "explain this function"` |

20| `cat file \| claude -p "query"` | 處理管道內容 | `cat logs.txt \| claude -p "explain"` |20| `cat file \| claude -p "query"` | 處理管道內容 | `cat logs.txt \| claude -p "explain"` |

21| `claude -c` | 在目前目錄中繼續最近的對話 | `claude -c` |21| `claude -c` | 在目前目錄中繼續最近的對話 | `claude -c` |


24| `claude update` | 更新至最新版本 | `claude update` |24| `claude update` | 更新至最新版本 | `claude update` |

25| `claude gateway` | 啟動自託管 [Claude 應用程式閘道](/docs/zh-TW/claude-apps-gateway) 伺服器,供在 Amazon Bedrock、Google Cloud 的 Agent Platform 或 Microsoft Foundry 上部署 SSO 和原則在 Claude Code 前面的管理員使用。需要 `--config` 指向 [`gateway.yaml`](/docs/zh-TW/claude-apps-gateway-config)。 | `claude gateway --config gateway.yaml` |25| `claude gateway` | 啟動自託管 [Claude 應用程式閘道](/docs/zh-TW/claude-apps-gateway) 伺服器,供在 Amazon Bedrock、Google Cloud 的 Agent Platform 或 Microsoft Foundry 上部署 SSO 和原則在 Claude Code 前面的管理員使用。需要 `--config` 指向 [`gateway.yaml`](/docs/zh-TW/claude-apps-gateway-config)。 | `claude gateway --config gateway.yaml` |

26| `claude install [version]` | 安裝或重新安裝原生二進位檔。接受版本號如 `2.1.118`、`stable` 或 `latest`。請參閱 [安裝特定版本](/docs/zh-TW/setup#install-a-specific-version) | `claude install stable` |26| `claude install [version]` | 安裝或重新安裝原生二進位檔。接受版本號如 `2.1.118`、`stable` 或 `latest`。請參閱 [安裝特定版本](/docs/zh-TW/setup#install-a-specific-version) | `claude install stable` |

27| `claude auth login` | 登入您的 Anthropic 帳戶。使用 `--email` 預先填入您的電子郵件地址,`--sso` 強制 SSO 驗證,`--console` 使用 Anthropic Console 登入以進行 API 使用計費而非 Claude 訂閱 | `claude auth login --console` |27| `claude auth login` | 登入您的 Anthropic 帳戶。使用 `--email` 預先填入您的電子郵件地址,`--sso` 強制 SSO 身分驗證,`--console` 使用 Anthropic Console 登入以進行 API 使用計費而非 Claude 訂閱 | `claude auth login --console` |

28| `claude auth logout` | 登出您的 Anthropic 帳戶 | `claude auth logout` |28| `claude auth logout` | 登出您的 Anthropic 帳戶 | `claude auth logout` |

29| `claude auth status` | 以 JSON 格式顯示驗證狀態。使用 `--text` 以人類可讀的格式輸出。如果已登入則以代碼 0 退出,如果未登入則以代碼 1 退出。JSON 包含一個 `configDirectory` 欄位,命名 CLI 使用的 [設定目錄](/docs/zh-TW/claude-directory)。該欄位需要 Claude Code v2.1.268 或更新版本 | `claude auth status` |29| `claude auth status` | 以 JSON 格式顯示身分驗證狀態。使用 `--text` 以人類可讀的格式輸出。如果已登入則以代碼 0 退出,如果未登入則以代碼 1 退出。JSON 包含一個 `configDirectory` 欄位,命名 CLI 使用的 [設定目錄](/docs/zh-TW/claude-directory)。該欄位需要 Claude Code v2.1.268 或更新版本。JSON 的 `authMethod` 欄位為 `none`、`claude.ai`、`oauth_token`、`api_key`、`api_key_helper` 或 `third_party` 其中之一 | `claude auth status` |

30| `claude agents` | 開啟 [代理程式檢視](/docs/zh-TW/agent-view) 以監控和分派平行背景工作階段。使用 `--cwd <path>` 僅顯示在該目錄下啟動的工作階段,或使用 `--json` 將作用中工作階段列印為 JSON 陣列以供指令碼使用(`--json --all` 也包括已完成的背景工作階段)。傳遞 `--permission-mode`、`--model`、`--effort` 或 `--agent` 以設定 [分派工作階段的預設值](/docs/zh-TW/agent-view#permission-mode-model-and-effort)。接受 `--settings`、`--add-dir`、`--plugin-dir` 和 `--mcp-config`,如同頂層 `claude` 命令。開啟代理程式檢視需要互動式終端 | `claude agents --json` |30| `claude agents` | 開啟 [agent 檢視](/docs/zh-TW/agent-view) 以監控和分派平行背景工作階段。使用 `--cwd <path>` 僅顯示在該目錄下啟動的工作階段,或使用 `--json` 將作用中工作階段列印為 JSON 陣列以供指令碼使用(`--json --all` 也包括已完成的背景工作階段)。傳遞 `--permission-mode`、`--model`、`--effort` 或 `--agent` 以設定 [分派工作階段的預設值](/docs/zh-TW/agent-view#permission-mode-model-and-effort)。接受 `--settings`、`--add-dir`、`--plugin-dir` 和 `--mcp-config`,如同頂層 `claude` 命令。開啟 agent 檢視需要互動式終端機 | `claude agents --json` |

31| `claude attach <id>` | 在此終端中附加到 [背景工作階段](/docs/zh-TW/agent-view#manage-sessions-from-the-shell) | `claude attach 7c5dcf5d` |31| `claude attach <id>` | 在此終端機中附加到 [背景工作階段](/docs/zh-TW/agent-view#manage-sessions-from-the-shell) | `claude attach 7c5dcf5d` |

32| `claude auto-mode defaults` | 以 JSON 格式列印內建 [自動模式](/docs/zh-TW/permission-modes#eliminate-prompts-with-auto-mode) 分類器規則。使用 `claude auto-mode config` 查看應用了設定的有效設定。使用 `--label <prefix>` 僅列印標籤以該前綴開頭的規則,不區分大小寫。需要 Claude Code v2.1.208 或更新版本 | `claude auto-mode defaults --label 'Git Destructive'` |32| `claude auto-mode defaults` | 以 JSON 格式列印內建 [自動模式](/docs/zh-TW/permission-modes#eliminate-prompts-with-auto-mode) 分類器規則。使用 `claude auto-mode config` 查看應用了設定的有效設定。使用 `--label <prefix>` 僅列印標籤以該前綴開頭的規則,不區分大小寫。需要 Claude Code v2.1.208 或更新版本 | `claude auto-mode defaults --label 'Git Destructive'` |

33| `claude auto-mode reset` | 透過從使用者設定檔案中移除 `autoMode` 部分來還原預設 [自動模式](/docs/zh-TW/permission-modes#eliminate-prompts-with-auto-mode) 設定。在寫入前提示確認;傳遞 `-y`/`--yes` 以跳過提示。來自 [受管設定](/docs/zh-TW/server-managed-settings) 或 `--settings` 旗標的規則仍然適用。需要 Claude Code v2.1.212 或更新版本。請參閱 [檢查預設值和您的有效設定](/docs/zh-TW/auto-mode-config#inspect-the-defaults-and-your-effective-config) | `claude auto-mode reset --yes` |33| `claude auto-mode reset` | 透過從使用者設定檔案中移除 `autoMode` 部分來還原預設 [自動模式](/docs/zh-TW/permission-modes#eliminate-prompts-with-auto-mode) 設定。在寫入前提示確認;傳遞 `-y`/`--yes` 以跳過提示。來自 [受管設定](/docs/zh-TW/server-managed-settings) 或 `--settings` 旗標的規則仍然適用。需要 Claude Code v2.1.212 或更新版本。請參閱 [檢查預設值和您的有效設定](/docs/zh-TW/auto-mode-config#inspect-the-defaults-and-your-effective-config) | `claude auto-mode reset --yes` |

34| `claude daemon status` | 列印背景工作階段 [監督程序](/docs/zh-TW/agent-view#the-supervisor-process) 的狀態、版本、通訊端目錄和工作程序計數以進行診斷。如果監督程序未執行則退出代碼 1 | `claude daemon status` |34| `claude daemon status` | 列印背景工作階段 [監督程序](/docs/zh-TW/agent-view#the-supervisor-process) 的狀態、版本、通訊端目錄和工作程序計數以進行診斷。如果監督程序未執行則退出代碼 1 | `claude daemon status` |

35| `claude daemon stop --any` | 停止背景工作階段 [監督程序](/docs/zh-TW/agent-view#the-supervisor-process) 及其託管的工作階段。傳遞 `--keep-workers` 以保持背景工作階段執行,以便下一個監督程序重新連接到它們。`--any` 確認停止隨需監督程序,這是預設值。使用此命令從 [無回應的監督程序](/docs/zh-TW/agent-view#agent-view-says-the-background-service-did-not-respond) 復原 | `claude daemon stop --any --keep-workers` |35| `claude daemon stop --any` | 停止背景工作階段 [監督程序](/docs/zh-TW/agent-view#the-supervisor-process) 及其託管的工作階段。傳遞 `--keep-workers` 以保持背景工作階段執行,以便下一個監督程序重新連接到它們。`--any` 確認停止隨需監督程序,這是預設值。使用此命令從 [無回應的監督程序](/docs/zh-TW/agent-view#agent-view-says-the-background-service-did-not-respond) 復原 | `claude daemon stop --any --keep-workers` |

36| `claude doctor` | 從終端列印唯讀安裝和設定診斷,無需啟動工作階段,包括安裝健康狀況、設定檔案驗證錯誤和遠端控制資格。如需可以套用修復的工作階段內設定檢查,請執行 [`/doctor`](/docs/zh-TW/commands#all-commands) | `claude doctor` |36| `claude doctor` | 從終端機列印唯讀安裝和設定診斷,無需啟動工作階段,包括安裝健康狀況、設定檔案驗證錯誤和 Remote Control 資格。如需可以套用修復的工作階段內設定檢查,請執行 [`/doctor`](/docs/zh-TW/commands#all-commands) | `claude doctor` |

37| `claude import [source]` | 啟動互動式工作階段,執行 [`/import`](/docs/zh-TW/commands#all-commands) 以將其他編碼代理程式的設定帶入 Claude Code。接受與命令相同的 `--dry-run` 和 `--yes` 選項。在 Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 或 AWS 上的 Claude Platform 上不可用。當您關閉 [功能旗標擷取](/docs/zh-TW/env-vars#features-that-need-feature-flag-fetching) 時也不可用。需要 Claude Code v2.1.213 或更新版本 | `claude import codex --dry-run` |37| `claude import [source]` | 啟動互動式工作階段,執行 [`/import`](/docs/zh-TW/commands#all-commands) 以將其他編碼 agent 的設定帶入 Claude Code。接受與命令相同的 `--dry-run` 和 `--yes` 選項。在 Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 或 AWS 上的 Claude Platform 上不可用。當您關閉 [功能旗標擷取](/docs/zh-TW/env-vars#features-that-need-feature-flag-fetching) 時也不可用。需要 Claude Code v2.1.213 或更新版本 | `claude import codex --dry-run` |

38| `claude logs <id>` | 列印來自 [背景工作階段](/docs/zh-TW/agent-view#manage-sessions-from-the-shell) 的最近輸出 | `claude logs 7c5dcf5d` |38| `claude logs <id>` | 列印來自 [背景工作階段](/docs/zh-TW/agent-view#manage-sessions-from-the-shell) 的最近輸出 | `claude logs 7c5dcf5d` |

39| `claude mcp` | 設定 Model Context Protocol (MCP) 伺服器 | 請參閱 [Claude Code MCP 文件](/docs/zh-TW/mcp)。 |39| `claude mcp` | 設定 Model Context Protocol (MCP) 伺服器 | 請參閱 [Claude Code MCP 文件](/docs/zh-TW/mcp)。 |

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 [plugins](/docs/zh-TW/plugins/overview)。別名:`claude plugins`。請參閱 [plugin 參考](/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 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` |

44| `claude 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)。當移除在 [工作樹上被拒絕](/docs/zh-TW/agent-view#what-deleting-a-session-removes) 且第二個 `claude rm` 可以解決時,拒絕會列印要傳遞的確切旗標和值:`--discard-unpushed <commit>@<worktree-id>` 會捨棄具有未推送提交的工作樹以及這些提交,`--force-remove-worktree <worktree-id>` 刪除 git 或 `WorktreeRemove` 鉤子無法移除的工作樹目錄。`--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` |

47| `claude self-hosted-runner` | 啟動執行程序,將此機器或容器註冊到 [自託管環境](/docs/zh-TW/self-hosted-environments) 並在您的基礎結構上託管 Claude Code 雲端工作階段。執行 `claude self-hosted-runner setup` 以進行引導式操作員逐步解說,`claude self-hosted-runner doctor` 以 [診斷已部署的執行程序](/docs/zh-TW/self-hosted-environments-deploy#troubleshooting),以及 `claude self-hosted-runner orchestrator` 以生成 [隨需執行程序](/docs/zh-TW/self-hosted-environments-configuration#on-demand-runners)。需要 Claude Code v2.1.224 或更新版本 | `claude self-hosted-runner setup` |47| `claude self-hosted-runner` | 啟動執行程序,將此機器或容器註冊到 [自託管環境](/docs/zh-TW/self-hosted-environments) 並在您的基礎結構上託管 Claude Code 雲端工作階段。執行 `claude self-hosted-runner setup` 以進行引導式操作員逐步解說,`claude self-hosted-runner doctor` 以 [診斷已部署的執行程序](/docs/zh-TW/self-hosted-environments-deploy#troubleshooting),以及 `claude self-hosted-runner orchestrator` 以生成 [隨需執行程序](/docs/zh-TW/self-hosted-environments-configuration#on-demand-runners)。需要 Claude Code v2.1.224 或更新版本 | `claude self-hosted-runner setup` |

48| `claude setup-token` | 為 CI 和指令碼產生長期 OAuth 權杖。將權杖列印到終端而不儲存它。需要 Claude 訂閱。請參閱 [產生長期權杖](/docs/zh-TW/authentication#generate-a-long-lived-token) | `claude setup-token` |48| `claude setup-token` | 為 CI 和指令碼產生長期 OAuth token。將 token 列印到終端機而不儲存它。需要 Claude 訂閱。請參閱 [產生長期 token](/docs/zh-TW/authentication#generate-a-long-lived-token) | `claude setup-token` |

49| `claude stop <id>` | 停止 [背景工作階段](/docs/zh-TW/agent-view#manage-sessions-from-the-shell)。也接受 `claude kill` | `claude stop 7c5dcf5d` |49| `claude stop <id>` | 停止 [背景工作階段](/docs/zh-TW/agent-view#manage-sessions-from-the-shell)。也接受 `claude kill` | `claude stop 7c5dcf5d` |

50| `claude ultrareview [target]` | 非互動式執行 [ultrareview](/docs/zh-TW/ultrareview#run-ultrareview-non-interactively)。將發現列印到 stdout,成功時退出代碼 0,失敗時退出代碼 1。使用 `--json` 以取得原始承載,使用 `--timeout <minutes>` 以覆蓋 45 分鐘的預設值。在 `github.com` 拉取請求目標上使用 `--post` 以將完成的發現作為來自您 GitHub 帳戶的一個純文字註解發佈到 PR。`--no-post` 是預設值。`--post` 和 `--no-post` 需要 Claude Code v2.1.227 或更新版本。請參閱 [將發現發佈到拉取請求](/docs/zh-TW/ultrareview#post-findings-to-the-pull-request) | `claude ultrareview 1234 --json` |50| `claude ultrareview [target]` | 非互動式執行 [ultrareview](/docs/zh-TW/ultrareview#run-ultrareview-non-interactively)。將發現列印到 stdout,成功時退出代碼 0,失敗時退出代碼 1。使用 `--json` 以取得原始 payload,使用 `--timeout <minutes>` 以覆寫 45 分鐘的預設值。在 `github.com` pull request 目標上使用 `--post` 以將完成的發現作為來自您 GitHub 帳戶的一個純文字註解發佈到 PR。`--no-post` 是預設值。`--post` 和 `--no-post` 需要 Claude Code v2.1.227 或更新版本。請參閱 [將發現發佈到 pull request](/docs/zh-TW/ultrareview#post-findings-to-the-pull-request) | `claude ultrareview 1234 --json` |

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

55 55 

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

57 CLI 旗標57 CLI 旗標


156| `--append-system-prompt-file` | 將檔案內容附加到預設提示 | `claude --append-system-prompt-file ./style-rules.txt` |156| `--append-system-prompt-file` | 將檔案內容附加到預設提示 | `claude --append-system-prompt-file ./style-rules.txt` |

157| `--system-prompt-snapshot` | 使用 `off`,在每個要求上重建提示。使用 `on`(預設),重複使用[記錄適用](#system-prompt-flags-in-resumed-conversations)的記錄提示 | `claude --append-system-prompt "Draft rules" --system-prompt-snapshot off` |157| `--system-prompt-snapshot` | 使用 `off`,在每個要求上重建提示。使用 `on`(預設),重複使用[記錄適用](#system-prompt-flags-in-resumed-conversations)的記錄提示 | `claude --append-system-prompt "Draft rules" --system-prompt-snapshot off` |

158 158 

159`--system-prompt` 和 `--system-prompt-file` 互斥。附加旗標可與任一取代旗標結合。159您可以組合這些旗標。若要取代預設提示詞並仍附加您自己的文字,請將 `--append-system-prompt` 或 `--append-system-prompt-file` 與 `--system-prompt` 或 `--system-prompt-file` 一起傳遞。使用 Claude Code v2.1.283 或更新版本時,您也可以將旗標與其自身的檔案形式一起傳遞,例如 `--append-system-prompt` 搭配 `--append-system-prompt-file`,Claude Code 會同時使用兩者。

160 

161例如,在 shell 中執行下列命令,以同時附加來自檔案的風格指南和一條額外指示:

162 

163```bash theme={null}

164claude -p --append-system-prompt-file ./style.md --append-system-prompt "Always reply in French" "Summarize README.md"

165```

166 

167Claude 會收到預設系統提示詞,後接 `style.md` 的內容、一個空白行,然後是 `Always reply in French`。即使您在 `--append-system-prompt-file` 之前傳遞 `--append-system-prompt`,檔案的內容仍會排在前面。

160 168 

161當取代文字結合每次執行相同的指示與每次執行變更的內容時,在指示和內容之間新增僅包含 `__SYSTEM_PROMPT_DYNAMIC_BOUNDARY__` 的行。Claude Code 在第一個這樣的行分割提示並移除該行,因此上面的部分保持快取而下面的部分變更。需要 Claude Code v2.1.275 或更新版本。[快取自訂提示的靜態部分](/docs/zh-TW/agent-sdk/modifying-system-prompts#cache-the-static-part-of-a-custom-prompt)列出分割適用的設定。169當取代文字結合每次執行相同的指示與每次執行變更的內容時,在指示和內容之間新增僅包含 `__SYSTEM_PROMPT_DYNAMIC_BOUNDARY__` 的行。Claude Code 在第一個這樣的行分割提示並移除該行,因此上面的部分保持快取而下面的部分變更。需要 Claude Code v2.1.275 或更新版本。[快取自訂提示的靜態部分](/docs/zh-TW/agent-sdk/modifying-system-prompts#cache-the-static-part-of-a-custom-prompt)列出分割適用的設定。

162 170 

Details

271 271 

272* **Git 認證**:VM 內的 git 用戶端使用範圍認證,代理驗證並將其交換為您的實際 GitHub 令牌。272* **Git 認證**:VM 內的 git 用戶端使用範圍認證,代理驗證並將其交換為您的實際 GitHub 令牌。

273* **API 請求**:來自內建 GitHub 工具的請求,以及來自 [`proxy-injected` 預留位置](#work-with-github-issues-and-pull-requests)下的 `gh` 的請求,使用您的真實認證進行。273* **API 請求**:來自內建 GitHub 工具的請求,以及來自 [`proxy-injected` 預留位置](#work-with-github-issues-and-pull-requests)下的 `gh` 的請求,使用您的真實認證進行。

274* **推送保護**:`git push` 僅適用於工作階段的目前工作分支;複製、擷取和 PR 操作正常運作。274* **推送限制**:代理伺服器會拒絕分支刪除,以及推送分支以外的任何內容(例如標籤)。它不限制推送可以更新哪些分支。若要進行此限制,請在 GitHub 上使用分支保護規則或規則集。

275* **儲存庫範圍**:GitHub API 和發行資產請求僅到達附加到工作階段的儲存庫,因此下載來自未附加儲存庫的發行資產的設定指令碼會收到 403。275* **儲存庫範圍**:GitHub API 和發行資產請求僅到達附加到工作階段的儲存庫,因此下載來自未附加儲存庫的發行資產的設定指令碼會收到 403。

276* **GraphQL 限制**:代理僅提供一組固定的 GraphQL 操作用於拉取請求工作流程。代理在 GraphQL 端點上拒絕所有其他內容,並顯示 403,說明 `This GraphQL query is not enabled for this session` 並命名 REST 後備 `gh api repos/{owner}/{repo}/...`。限制適用於通過代理的每個請求,無論您提供的認證如何,因此您設定的 `GH_TOKEN` 會收到相同的 403。Claude 無法通過代理到達僅存在於 GraphQL 中的 GitHub API,例如 Projects v2。276* **GraphQL 限制**:代理僅提供一組固定的 GraphQL 操作用於拉取請求工作流程。代理在 GraphQL 端點上拒絕所有其他內容,並顯示 403,說明 `This GraphQL query is not enabled for this session` 並命名 REST 後備 `gh api repos/{owner}/{repo}/...`。限制適用於通過代理的每個請求,無論您提供的認證如何,因此您設定的 `GH_TOKEN` 會收到相同的 403。Claude 無法通過代理到達僅存在於 GraphQL 中的 GitHub API,例如 Projects v2。

277 277 

code-review.md +2 −4

Details

398審查預設在背景中執行;在 v2.1.218 之前,它在您的對話中執行。在以下情況下,它改為在前景中執行:398審查預設在背景中執行;在 v2.1.218 之前,它在您的對話中執行。在以下情況下,它改為在前景中執行:

399 399 

400* 您在較早的審查仍在進行時再次執行 `/code-review`400* 您在較早的審查仍在進行時再次執行 `/code-review`

401* 您以非互動式模式執行它,使用 `-p` 旗標或 Agent SDK;Claude Code 等待審查並在回應中包含發現結果,除了 `ultra`,它[啟動雲審查而不等待](#escalate-to-ultrareview)401* 您以非互動模式執行它,使用 `-p` 旗標或 Agent SDK;Claude Code 等待審查並在回應中包含發現結果,但 `ultra` 除外,它[不會等待雲端審查](/docs/zh-TW/ultrareview#run-ultrareview-non-interactively)

402* 您將 [`CLAUDE_CODE_DISABLE_BACKGROUND_TASKS`](/docs/zh-TW/env-vars) 設定為 `1`,這也會關閉所有其他背景工作功能402* 您將 [`CLAUDE_CODE_DISABLE_BACKGROUND_TASKS`](/docs/zh-TW/env-vars) 設定為 `1`,這也會關閉所有其他背景工作功能

403 403 

404<h3 id="let-claude-start-the-review">404<h3 id="let-claude-start-the-review">


435 Ultrareview 需要使用 claude.ai 帳戶進行身份驗證,在 Amazon Bedrock、Google Cloud 的 Agent Platform 或 Microsoft Foundry 上不可用,或對於啟用了零資料保留的組織不可用。當 ultrareview 不可用時,`/code-review ultra` 會在您的工作階段中執行本地審查。435 Ultrareview 需要使用 claude.ai 帳戶進行身份驗證,在 Amazon Bedrock、Google Cloud 的 Agent Platform 或 Microsoft Foundry 上不可用,或對於啟用了零資料保留的組織不可用。當 ultrareview 不可用時,`/code-review ultra` 會在您的工作階段中執行本地審查。

436</Note>436</Note>

437 437 

438若要從指令碼或 CI 開始雲審查,請執行 `claude -p '/code-review ultra'`。Claude Code 啟動審查並列印用於追蹤它的連結。需要 Claude Code v2.1.218 或更新版本。438若要從指令碼或 CI 作業執行雲端審查,請使用 [`claude ultrareview` 子命令](/docs/zh-TW/ultrareview#run-ultrareview-non-interactively),它會等待發現結果並將其列印到 stdout。

439 

440當審查會計費[使用額度](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans)時,Claude Code 在啟動前停止,因為計費確認需要互動式工作階段。改為執行 [`claude ultrareview` 子命令](/docs/zh-TW/ultrareview#run-ultrareview-non-interactively);透過執行它,您同意該費用。

441 439 

442該命令在 v2.1.147 之前被命名為 `/simplify`,當時它預設應用修復。`/simplify` 執行單獨的僅清理審查,該審查應用修復而不尋找錯誤。如果您編寫了 `/simplify` 用於尋找錯誤,請切換到 `/code-review --fix`。440該命令在 v2.1.147 之前被命名為 `/simplify`,當時它預設應用修復。`/simplify` 執行單獨的僅清理審查,該審查應用修復而不尋找錯誤。如果您編寫了 `/simplify` 用於尋找錯誤,請切換到 `/code-review --fix`。

443 441 

commands.md +82 −81

Details

38 38 

39下表列出 Claude Code 中包含的所有命令。大多數是內建命令,其行為已編碼到 CLI 中。有兩種類型的項目被標記:39下表列出 Claude Code 中包含的所有命令。大多數是內建命令,其行為已編碼到 CLI 中。有兩種類型的項目被標記:

40 40 

41* **[Skill](/docs/zh-TW/skills#bundled-skills)**:一個捆綁的技能。它的工作方式與您自己編寫的技能相同:一個提示詞交給 Claude。41* **[Skill](/docs/zh-TW/skills#bundled-skills)**:一個隨附 skill。它的運作方式與您自己編寫的 skill 相同:一個交給 Claude 的提示詞。

42 * `/verify` 僅在您調用時運行。在 v2.1.215 之前,Claude 也可以自行運行 `/verify`。42 * `/verify` 僅在您調用時運行。在 v2.1.215 之前,Claude 也可以自行運行 `/verify`。

43* **[Workflow](/docs/zh-TW/workflows#bundled-workflows)**:一個捆綁的[動態工作流](/docs/zh-TW/workflows),可以跨多個子代理展開工作並在後台運行。43* **[Workflow](/docs/zh-TW/workflows#bundled-workflows)**:一個隨附的[動態工作流程](/docs/zh-TW/workflows),可將工作分散到多個 subagent 並在背景運行。

44 * `/deep-research` 僅在您調用時運行。在 v2.1.218 之前,Claude 也可以自行啟動它。44 * `/deep-research` 僅在您調用時運行。在 v2.1.218 之前,Claude 也可以自行啟動它。

45 45 

46要添加您自己的命令,請參閱 [skills](/docs/zh-TW/skills)。46要添加您自己的命令,請參閱 [skill](/docs/zh-TW/skills)。

47 47 

48在下表中,`<arg>` 表示必需的引數,`[arg]` 表示可選的引數。48在下表中,`<arg>` 表示必需的引數,`[arg]` 表示可選的引數。

49 49 


53 53 

54| 命令 | 用途 |54| 命令 | 用途 |

55| :- | :- |55| :- | :- |

56| `/add-dir <path>` | 添加工作目錄以在目前工作階段期間進行檔案存取。輸入部分路徑以查看匹配的目錄建議;按 `Tab` 接受一個。大多數 `.claude/` 設定[不會從添加的目錄中發現](/docs/zh-TW/permissions#additional-directories-grant-file-access-not-configuration)。您無法添加大多數[網路路徑](/docs/zh-TW/errors#working-directory-is-a-network-path),例如 `\\server\share`。成功添加後,您的 [`DirectoryAdded` hooks](/docs/zh-TW/hooks#directoryadded) 會運行。當您在 Claude 回應時運行它時,Claude Code 會要求您立即確認目錄,一旦您確認,Claude 在同一輪中的下一個工具呼叫就可以存取它。在 v2.1.234 之前,Claude Code 會將命令排隊直到輪次完成 |56| `/add-dir <path>` | 添加工作目錄以在目前工作階段期間進行檔案存取。輸入部分路徑以查看匹配的目錄建議;按 `Tab` 接受一個。大多數 `.claude/` 設定[不會從添加的目錄中發現](/docs/zh-TW/permissions#additional-directories-grant-file-access-not-configuration)。您無法添加大多數[網路路徑](/docs/zh-TW/errors#working-directory-is-a-network-path),例如 `\\server\share`。成功添加後,您的 [`DirectoryAdded` hook](/docs/zh-TW/hooks#directoryadded) 會運行。當您在 Claude 回應時運行它時,Claude Code 會要求您立即確認目錄,一旦您確認,Claude 在同一回合中的下一個工具呼叫就可以存取它。在 v2.1.234 之前,Claude Code 會將命令排隊直到該回合完成 |

57| `/advisor [model\|off]` | 啟用或停用[顧問工具](/docs/zh-TW/advisor),它在任務期間的關鍵時刻諮詢第二個模型以獲得指導。接受 `fable`、`opus`、`sonnet` 或完整的模型 ID。`fable` 需要[Fable 存取](/docs/zh-TW/advisor#choose-an-advisor-model)。沒有引數時,打開選擇器。在沒有互動式終端的工作階段中,或通過[遠端控制](/docs/zh-TW/remote-control#limitations),將模型或 `off` 作為引數傳遞;在那裡沒有引數時,命令會將目前顧問列印為文字。這些形式需要 Claude Code v2.1.260 或更新版本 |57| `/advisor [model\|off]` | 啟用或停用[顧問工具](/docs/zh-TW/advisor),它在任務期間的關鍵時刻諮詢第二個模型以獲得指導。接受 `fable`、`opus`、`sonnet` 或完整的模型 ID。`fable` 需要 [Fable 存取](/docs/zh-TW/advisor#choose-an-advisor-model)。沒有引數時,打開選擇器。在沒有互動式終端機的工作階段中,或通過 [Remote Control](/docs/zh-TW/remote-control#limitations),將模型或 `off` 作為引數傳遞;在那裡沒有引數時,命令會將目前顧問列印為文字。這些形式需要 Claude Code v2.1.260 或更新版本 |

58| `/agents` | 從 v2.1.198 開始,運行 `/agents` 會列印提醒以要求 Claude 建立或管理[子代理](/docs/zh-TW/sub-agents),或直接編輯 `.claude/agents/` 或 `~/.claude/agents/`。在 v2.1.197 及更早版本上,打開用於建立和管理子代理設定的互動式介面 |58| `/agents` | 從 v2.1.198 開始,運行 `/agents` 會列印提醒以要求 Claude 建立或管理 [subagent](/docs/zh-TW/sub-agents),或直接編輯 `.claude/agents/` 或 `~/.claude/agents/`。在 v2.1.197 及更早版本上,打開用於建立和管理 subagent 設定的互動式介面 |

59| `/artifact-capabilities` | **[Skill](/docs/zh-TW/skills#bundled-skills)。** 載入已發佈[工件](/docs/zh-TW/artifacts)可以使用的執行時功能的參考,例如[呼叫您的連接器](/docs/zh-TW/artifacts#pull-live-data-with-mcp-connectors)或[提供檔案下載](/docs/zh-TW/artifacts#offer-a-file-download),包括您的帳戶擁有的功能。Claude 通常在建立使用其中一個的頁面前自行載入它。在[工件](/docs/zh-TW/artifacts#availability)可用的地方可用 |59| `/artifact-capabilities` | **[Skill](/docs/zh-TW/skills#bundled-skills)。** 載入已發佈 [artifact](/docs/zh-TW/artifacts) 可以使用的執行時功能的參考,例如[呼叫您的連接器](/docs/zh-TW/artifacts#pull-live-data-with-mcp-connectors)或[提供檔案下載](/docs/zh-TW/artifacts#offer-a-file-download),包括您的帳戶擁有的功能。Claude 通常在建立使用其中一個的頁面前自行載入它。在 [artifact](/docs/zh-TW/artifacts#availability) 可用的地方可用 |

60| `/artifact-diagramming` | **[Skill](/docs/zh-TW/skills#bundled-skills)。** 為 Claude 在[工件](/docs/zh-TW/artifacts)中遵循的圖表載入指導:何時圖表有幫助、要繪製什麼以及如何編寫在淺色和深色主題中保持清晰的內聯 SVG。需要 Claude Code v2.1.221 或更新版本 |60| `/artifact-diagramming` | **[Skill](/docs/zh-TW/skills#bundled-skills)。** 為 Claude 在 [artifact](/docs/zh-TW/artifacts) 中遵循的圖表載入指導:何時圖表有幫助、要繪製什麼以及如何編寫在淺色和深色主題中保持清晰的內聯 SVG。需要 Claude Code v2.1.221 或更新版本 |

61| `/artifacts` | 列出您擁有或與您共享的[工件](/docs/zh-TW/artifacts#find-an-artifact-again),然後將其附加到工作階段、在瀏覽器中打開它或複製其連結。在[工件](/docs/zh-TW/artifacts#availability)可用的地方可用。需要 Claude Code v2.1.208 或更新版本;使用 `Enter` 附加需要 v2.1.216 |61| `/artifacts` | 列出您擁有或與您共享的 [artifact](/docs/zh-TW/artifacts#find-an-artifact-again),然後將其附加到工作階段、在瀏覽器中打開它或複製其連結。在 [artifact](/docs/zh-TW/artifacts#availability) 可用的地方可用。需要 Claude Code v2.1.208 或更新版本;使用 `Enter` 附加需要 v2.1.216 |

62| `/auto-mode-setup` | [從您的專案和最近的工作階段草擬 `autoMode.environment` 項目](/docs/zh-TW/auto-mode-config#generate-environment-entries),然後檢查草稿並將其保存到您的使用者設定。需要 Pro、Max 或 Team 方案以及 Claude Code v2.1.228 或更新版本。在原生 Windows 上,需要 v2.1.233 或更新版本 |62| `/auto-mode-setup` | [從您的專案和最近的工作階段草擬 `autoMode.environment` 項目](/docs/zh-TW/auto-mode-config#generate-environment-entries),然後檢查草稿並將其保存到您的使用者設定。需要 Pro、Max 或 Team 方案以及 Claude Code v2.1.228 或更新版本。在原生 Windows 上,需要 v2.1.233 或更新版本 |

63| `/autocompact [auto\|<tokens>]` | 設定自動壓縮視窗:在 Claude Code 自動壓縮之前上下文視窗有多滿。傳遞大小(例如 `500k`)或 `auto` 以返回為您的模型調整的視窗。Claude Code 將該值保存到使用者設定並將其應用於目前工作階段。有關接受的值以及覆蓋它的內容,請參閱[設定自動壓縮視窗](/docs/zh-TW/model-config#set-the-auto-compact-window)。沒有引數時,打開顯示目前視窗的對話框。需要 Claude Code v2.1.221 或更新版本 |63| `/autocompact [auto\|<tokens>]` | 設定自動壓縮視窗:在 Claude Code 自動壓縮之前上下文視窗有多滿。傳遞大小(例如 `500k`)或 `auto` 以返回為您的模型調整的視窗。Claude Code 將該值保存到使用者設定並將其應用於目前工作階段。有關接受的值以及覆寫它的內容,請參閱[設定自動壓縮視窗](/docs/zh-TW/model-config#set-the-auto-compact-window)。沒有引數時,打開顯示目前視窗的對話框。需要 Claude Code v2.1.221 或更新版本 |

64| `/autofix-pr [prompt]` | 生成一個[雲端工作階段](/docs/zh-TW/claude-code-on-the-web#auto-fix-pull-requests),監視目前分支的 PR 並在 CI 失敗或審查者留下評論時推送修復。使用 `gh pr view` 從您簽出的分支檢測打開的 PR;要監視不同的 PR,請先簽出其分支。預設情況下,雲端工作階段被告知修復每個 CI 失敗和審查評論;傳遞提示詞以給它不同的指示,例如 `/autofix-pr only fix lint and type errors`。需要 `gh` CLI 和[雲端工作階段](/docs/zh-TW/claude-code-on-the-web)的存取 |64| `/autofix-pr [prompt]` | 生成一個[雲端工作階段](/docs/zh-TW/claude-code-on-the-web#auto-fix-pull-requests),監視目前分支的 PR 並在 CI 失敗或審查者留下評論時推送修復。使用 `gh pr view` 從您簽出的分支檢測打開的 PR;要監視不同的 PR,請先簽出其分支。預設情況下,雲端工作階段被告知修復每個 CI 失敗和審查評論;傳遞提示詞以給它不同的指示,例如 `/autofix-pr only fix lint and type errors`。需要 `gh` CLI 和[雲端工作階段](/docs/zh-TW/claude-code-on-the-web)的存取 |

65| `/background [prompt]` | 分離目前工作階段以作為[背景代理](/docs/zh-TW/agent-view)運行並釋放此終端。傳遞提示詞以在分離前發送一個進一步的指示。使用 `claude agents` 監視工作階段。要將對話複製到新的背景工作階段,同時此工作階段保持運行,請使用 `/fork`。別名:`/bg` |65| `/background [prompt]` | 分離目前工作階段以作為[背景 agent](/docs/zh-TW/agent-view) 運行並釋放此終端機。傳遞提示詞以在分離前發送一個進一步的指示。使用 `claude agents` 監視工作階段。要將對話複製到新的背景工作階段,同時此工作階段保持運行,請使用 `/fork`。別名:`/bg` |

66| `/batch <instruction>` | **[Skill](/docs/zh-TW/skills#bundled-skills)。** 跨程式碼庫並行協調大規模變更。研究程式碼庫,將工作分解為 5 到 30 個獨立單位,並呈現計畫。獲得批准後,在隔離的 [worktree](/docs/zh-TW/worktrees) 中為每個單位生成一個[背景子代理](/docs/zh-TW/sub-agents#run-subagents-in-foreground-or-background)。每個子代理實現其單位、運行測試並發佈其變更。需要 git 儲存庫或建立 worktrees 的 [`WorktreeCreate` hook](/docs/zh-TW/worktrees#non-git-version-control)。在 git 儲存庫外,`/batch` 需要 Claude Code v2.1.281 或更新版本。範例:`/batch migrate src/ from JavaScript to TypeScript` |66| `/batch <instruction>` | **[Skill](/docs/zh-TW/skills#bundled-skills)。** 跨程式碼庫並行協調大規模變更。研究程式碼庫,將工作分解為 5 到 30 個獨立單位,並呈現計畫。獲得批准後,在隔離的 [worktree](/docs/zh-TW/worktrees) 中為每個單位生成一個[背景 subagent](/docs/zh-TW/sub-agents#run-subagents-in-foreground-or-background)。每個 subagent 實現其單位、運行測試並發佈其變更。需要 git 儲存庫或建立 worktree 的 [`WorktreeCreate` hook](/docs/zh-TW/worktrees#non-git-version-control)。在 git 儲存庫外,`/batch` 需要 Claude Code v2.1.281 或更新版本。範例:`/batch migrate src/ from JavaScript to TypeScript` |

67| `/branch [name]` | 在此點建立目前對話的分支,以便您可以嘗試不同的方向而不會丟失目前的對話。切換到分支並保留原始分支,您可以使用 `/resume` 返回。要運行副本作為單獨的[背景工作階段](/docs/zh-TW/agent-view)而不是切換到它,請使用 `/fork`;要將側面任務交給[子代理](/docs/zh-TW/sub-agents)以報告回此對話,請使用 `/subtask` |67| `/branch [name]` | 在此點建立目前對話的分支,以便您可以嘗試不同的方向而不會丟失目前的對話。切換到分支並保留原始分支,您可以使用 `/resume` 返回。要運行副本作為單獨的[背景工作階段](/docs/zh-TW/agent-view)而不是切換到它,請使用 `/fork`;要將側面任務交給 [subagent](/docs/zh-TW/sub-agents) 以報告回此對話,請使用 `/subtask` |

68| `/btw [question]` | 詢問有關目前工作階段的[側面問題](/docs/zh-TW/interactive-mode#side-questions-with-%2Fbtw)而不添加到對話中。如果您運行 `/btw` 而沒有問題,Claude Code 會顯示您最近的側面問題,以便您可以瀏覽較早的答案;如果您還沒有提出問題,Claude Code 會列印使用行。在 v2.1.212 之前,`/btw` 需要一個問題 |68| `/btw [question]` | 詢問有關目前工作階段的[側面問題](/docs/zh-TW/interactive-mode#side-questions-with-%2Fbtw)而不添加到對話中。如果您運行 `/btw` 而沒有問題,Claude Code 會顯示您最近的側面問題,以便您可以瀏覽較早的答案;如果您還沒有提出問題,Claude Code 會列印使用行。在 v2.1.212 之前,`/btw` 需要一個問題 |

69| `/bug [report]` | 報告錯誤或分享您的對話。您選擇要包含多少工作階段歷史記錄,並在發送任何內容之前在同意螢幕上確認。當您在第一方連線上登入 Anthropic 時,報告會發送給 Anthropic;在第三方提供者上,或沒有 Anthropic 認證,Claude Code 會將報告寫入[`~/.claude/feedback-bundles/` 下的本地存檔](/docs/zh-TW/data-usage#telemetry-services),您可以自己轉發。在 [VS Code 擴充功能](/docs/zh-TW/vs-code#use-the-prompt-box)中,`/bug` 改為打開擴充功能自己的回饋對話框;需要 Claude Code v2.1.229 或更新版本。當您在 Claude 回應時運行它時,Claude Code 會立即打開對話框。在 v2.1.232 之前,Claude Code 會將命令排隊直到輪次完成。別名:`/share`。在 v2.1.212 之前,`/bug` 和 `/share` 是 `/feedback` 的別名 |69| `/bug [report]` | 報告錯誤或分享您的對話。您選擇要包含多少工作階段歷史記錄,並在發送任何內容之前在同意螢幕上確認。當您在第一方連線上登入 Anthropic 時,報告會發送給 Anthropic;在第三方提供者上,或沒有 Anthropic 憑證,Claude Code 會將報告寫入[`~/.claude/feedback-bundles/` 下的本地存檔](/docs/zh-TW/data-usage#telemetry-services),您可以自己轉發。在 [VS Code 擴充功能](/docs/zh-TW/vs-code#use-the-prompt-box)中,`/bug` 改為打開擴充功能自己的回饋對話框;需要 Claude Code v2.1.229 或更新版本。當您在 Claude 回應時運行它時,Claude Code 會立即打開對話框。在 v2.1.232 之前,Claude Code 會將命令排隊直到該回合完成。別名:`/share`。在 v2.1.212 之前,`/bug` 和 `/share` 是 `/feedback` 的別名 |

70| `/cd <path>` | 將此工作階段移動到新的工作目錄,保持對話。輸入部分路徑以查看匹配的目錄建議;按 `Tab` 接受一個。建議需要 Claude Code v2.1.206 或更新版本。有關 Claude Code 從新目錄立即應用的內容以及 `/cd` 與 `/add-dir` 的區別,請參閱[將工作階段移動到另一個目錄](/docs/zh-TW/permissions#move-the-session-to-another-directory) |70| `/cd <path>` | 將此工作階段移動到新的工作目錄,保持對話。輸入部分路徑以查看匹配的目錄建議;按 `Tab` 接受一個。建議需要 Claude Code v2.1.206 或更新版本。有關 Claude Code 從新目錄立即應用的內容以及 `/cd` 與 `/add-dir` 的區別,請參閱[將工作階段移動到另一個目錄](/docs/zh-TW/permissions#move-the-session-to-another-directory) |

71| `/chrome` | 設定 [Claude in Chrome](/docs/zh-TW/chrome) 設定 |71| `/chrome` | 設定 [Claude in Chrome](/docs/zh-TW/chrome) 設定 |

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 編號、分支或路徑,以查找正確性錯誤。根據您的模型和工作量級別,檢查也涵蓋清理機會。傳遞 `--fix` 以應用發現,`--comment` 以在 GitHub PR 或 GitLab 合併請求上發佈它們,或 `ultra` 以運行深度[雲端審查](/docs/zh-TW/ultrareview)。發佈到 GitLab 合併請求需要 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 或更新版本。有關工作量級別、目標設定以及它與 `/simplify` 的關係,請參閱[本地檢查差異](/docs/zh-TW/code-review#review-a-diff-locally)。別名:`/review` |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` |

76| `/color [color\|default]` | 設定目前工作階段的提示詞欄顏色。可用顏色:`red`、`blue`、`green`、`yellow`、`purple`、`orange`、`pink`、`cyan`。使用 `default` 重置,或運行時不帶引數以選擇隨機顏色。當[遠端控制](/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]` | 通過總結到目前為止的對話來釋放上下文。可選地傳遞焦點指示以進行摘要。請參閱[壓縮如何處理規則、技能和記憶檔案](/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 行動應用程式通過[遠端控制](/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` |

79| `/context [all]` | 將目前上下文使用情況視覺化為彩色網格。顯示上下文繁重工具、記憶膨脹和容量警告的最佳化建議。當對話超過上下文視窗時,輸出包括[警告](/docs/zh-TW/errors#context-exceeds-the-token-limit),顯示您超過限制的距離以及哪個命令釋放空間。在[全螢幕模式](/docs/zh-TW/fullscreen)中,`/context` 會摺疊每項細目以保持網格可見。傳遞 `all` 以展開它 |79| `/context [all]` | 將目前上下文使用情況視覺化為彩色網格。顯示上下文繁重工具、記憶膨脹和容量警告的最佳化建議。當對話超過上下文視窗時,輸出包括[警告](/docs/zh-TW/errors#context-exceeds-the-token-limit),顯示您超過限制的距離以及哪個命令釋放空間。在[全螢幕模式](/docs/zh-TW/fullscreen)中,`/context` 會摺疊每項細目以保持網格可見。傳遞 `all` 以展開它 |

80| `/copy [N]` | 將最後的助手回應複製到剪貼簿。傳遞數字 `N` 以複製第 N 個最新回應:`/copy 2` 複製倒數第二個。當存在程式碼區塊時,顯示互動式選擇器以選擇個別區塊或完整回應。在選擇器中按 `w` 以將選擇寫入檔案而不是剪貼簿,這在 SSH 上很有用 |80| `/copy [N]` | 將最後的助手回應複製到剪貼簿。傳遞數字 `N` 以複製第 N 個最新回應:`/copy 2` 複製倒數第二個。當存在程式碼區塊時,顯示互動式選擇器以選擇個別區塊或完整回應。在選擇器中按 `w` 以將選擇寫入檔案而不是剪貼簿,這在 SSH 上很有用 |

81| `/cost` | `/usage` 的別名 |81| `/cost` | `/usage` 的別名 |

82| `/dataviz [request]` | **[Skill](/docs/zh-TW/skills#bundled-skills)。** 圖表、圖形和儀表板的設計指導。Claude 為資料選擇圖表形式,按角色分配顏色,使用捆綁的指令碼驗證調色板以確保色盲安全和對比度,並應用標記、互動和可存取性規則。使用您用自己的調色板替換的品牌中立佔位符調色板。需要 Claude Code v2.1.198 或更新版本 |82| `/dataviz [request]` | **[Skill](/docs/zh-TW/skills#bundled-skills)。** 圖表、圖形和儀表板的設計指導。Claude 為資料選擇圖表形式,按角色分配顏色,使用隨附的指令碼驗證調色板以確保色盲安全和對比度,並應用標記、互動和可存取性規則。使用您用自己的調色板替換的品牌中立佔位符調色板。需要 Claude Code v2.1.198 或更新版本 |

83| `/debug [description]` | **[Skill](/docs/zh-TW/skills#bundled-skills)。** 為目前工作階段啟用偵錯日誌記錄並通過讀取工作階段偵錯日誌來排除故障。除非您使用 `claude --debug` 啟動,否則偵錯日誌記錄預設為關閉,因此在工作階段中期運行 `/debug` 會從該點開始捕獲日誌。可選地描述問題以集中分析 |83| `/debug [description]` | **[Skill](/docs/zh-TW/skills#bundled-skills)。** 為目前工作階段啟用偵錯日誌記錄並通過讀取工作階段偵錯日誌來排除故障。除非您使用 `claude --debug` 啟動,否則偵錯日誌記錄預設為關閉,因此在工作階段中期運行 `/debug` 會從該點開始捕獲日誌。可選地描述問題以集中分析 |

84| `/deep-research <question>` | **[Workflow](/docs/zh-TW/workflows#bundled-workflows)。** 在問題上展開網路搜尋、擷取和交叉檢查來源,並合成引用的報告 |84| `/deep-research <question>` | **[Workflow](/docs/zh-TW/workflows#bundled-workflows)。** 在問題上展開網路搜尋、擷取和交叉檢查來源,並合成引用的報告 |

85| `/design [brief]` | **[Skill](/docs/zh-TW/skills#bundled-skills)。** 在一個畫布上草擬 UI 模型、螢幕流程、登陸頁面或海報作為畫板,發佈為 Claude Design [工件](/docs/zh-TW/artifacts#draft-a-design-canvas),例如 `/design a settings screen for a mobile banking app`。您在桌面瀏覽器中編輯畫板,您的編輯會自動保存。您可以將每個畫板匯出為 PNG 或 PDF。需要 Claude Code v2.1.265 或更新版本、[工件可用](/docs/zh-TW/artifacts#availability)的工作階段,以及帳戶中[設計範本可用](/docs/zh-TW/artifacts#start-from-a-slides-design-or-docs-template)的地方;如果您的組織已關閉該範本,`/design` 不會草擬設計。在 Anthropic API 上可用。在 Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 和 Claude Platform on AWS 上,工件不可用,因此命令在那裡不可用 |85| `/design [brief]` | **[Skill](/docs/zh-TW/skills#bundled-skills)。** 在一個畫布上草擬 UI 模型、螢幕流程、登陸頁面或海報作為畫板,發佈為 Claude Design [artifact](/docs/zh-TW/artifacts#draft-a-design-canvas),例如 `/design a settings screen for a mobile banking app`。您在桌面瀏覽器中編輯畫板,您的編輯會自動保存。您可以將每個畫板匯出為 PNG 或 PDF。需要 Claude Code v2.1.265 或更新版本、[artifact 可用](/docs/zh-TW/artifacts#availability)的工作階段,以及[設計範本可用](/docs/zh-TW/artifacts#start-from-a-slides-design-or-docs-template)的帳戶;如果您的組織已關閉該範本,`/design` 不會草擬設計。在 Anthropic API 上可用。在 Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 和 Claude Platform on AWS 上,artifact 不可用,因此命令在那裡不可用 |

86| `/design-login` | 使用您的 claude.ai 帳戶授權 `/design-sync` 的設計系統存取 |86| `/design-login` | 使用您的 claude.ai 帳戶授權 `/design-sync` 的設計系統存取 |

87| `/design-sync [hint]` | **[Skill](/docs/zh-TW/skills#bundled-skills)。** 轉換您的儲存庫的 React 設計系統並將其上傳到 [Claude Design](https://claude.ai/design),以便它生成的設計使用您的真實元件。可選地命名設計系統,例如 `/design-sync Acme DS`。首次同步會驗證每個元件,在大型儲存庫上可能需要幾個小時。在 Anthropic API 上可用。它需要 claude.ai,CLI 在 Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 或 Claude Platform on AWS 上不聯絡,或通過 [Claude 應用程式閘道](/docs/zh-TW/claude-apps-gateway#availability-and-limitations),因此命令在那裡不可用 |87| `/design-sync [hint]` | **[Skill](/docs/zh-TW/skills#bundled-skills)。** 轉換您的儲存庫的 React 設計系統並將其上傳到 [Claude Design](https://claude.ai/design),以便它生成的設計使用您的真實元件。可選地命名設計系統,例如 `/design-sync Acme DS`。首次同步會驗證每個元件,在大型儲存庫上可能需要幾個小時。在 Anthropic API 上可用。它需要 claude.ai,而 CLI 在 Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 或 Claude Platform on AWS 上,或通過 [Claude 應用程式閘道](/docs/zh-TW/claude-apps-gateway#availability-and-limitations)時不會聯絡它,因此命令在那裡不可用 |

88| `/desktop` | 在 Claude Code Desktop 應用程式中繼續目前工作階段。需要 macOS 或 x64 Windows 以及 Claude 訂閱。別名:`/app` |88| `/desktop` | 在 Claude Code Desktop 應用程式中繼續目前工作階段。需要 macOS 或 x64 Windows 以及 Claude 訂閱。別名:`/app` |

89| `/diff` | 檢查工作樹中的變更,包括 Claude 到目前為止所做的編輯。請參閱[使用 /diff 檢查變更](/docs/zh-TW/interactive-mode#review-changes-with-%2Fdiff) |89| `/diff` | 檢查工作樹中的變更,包括 Claude 到目前為止所做的編輯。請參閱[使用 /diff 檢查變更](/docs/zh-TW/interactive-mode#review-changes-with-%2Fdiff) |

90| `/doctor [prompt-audit [path]]` | **[Skill](/docs/zh-TW/skills#bundled-skills)。** 運行設定檢查以診斷和修復問題。檢查安裝健康狀況,包括重複或遺留的安裝、`PATH` 問題和無法解析的設定檔案。查找未使用的技能、MCP 伺服器和外掛程式與其上下文成本,標記緩慢的 [hooks](/docs/zh-TW/hooks),並檢查您的[發佈頻道](/docs/zh-TW/setup#configure-release-channel)上是否有較新版本。根據簽入的檔案對本地 `CLAUDE.md` 檔案進行重複資料刪除,通過切割 Claude 可以從程式碼庫衍生的內容來修剪簽入的 [`CLAUDE.md`](/docs/zh-TW/memory#my-claude-md-is-too-large) 檔案,並將保留的始終載入的指導遷移到[技能](/docs/zh-TW/skills)和按需載入的嵌套 `CLAUDE.md` 檔案中。還提供使 [auto mode](/docs/zh-TW/permissions#permission-modes) 成為您的預設值的選項,以及[預先批准](/docs/zh-TW/permissions)經常被拒絕的唯讀命令。首先報告發現並在進行任何變更前要求確認。從終端,`claude doctor` 列印唯讀安裝診斷而不啟動工作階段。別名:`/checkup`。運行 `/doctor prompt-audit` 以讓 Claude [審計您的 `CLAUDE.md` 檔案、技能和其他設定](/docs/zh-TW/memory#audit-your-instruction-files)以查找過時或衝突的指示,而不是運行檢查。`prompt-audit` 子命令需要 Claude Code v2.1.283 或更新版本。CLAUDE.md 修剪檢查需要 Claude Code v2.1.206 或更新版本。在 v2.1.205 之前,`/doctor` 打開唯讀診斷螢幕,按 `f` 將報告發送給 Claude |90| `/doctor [prompt-audit [path]]` | **[Skill](/docs/zh-TW/skills#bundled-skills)。** 運行設定檢查以診斷問題並可修復它們。檢查安裝健康狀況,包括重複或遺留的安裝、`PATH` 問題和無法解析的設定檔。查找未使用的 skill、MCP 伺服器和外掛與其上下文成本,標記緩慢的 [hook](/docs/zh-TW/hooks),並檢查您的[發布通道](/docs/zh-TW/setup#configure-release-channel)上是否有較新版本。根據簽入的檔案對本地 `CLAUDE.md` 檔案進行重複資料刪除,通過切割 Claude 可以從程式碼庫衍生的內容來修剪簽入的 [`CLAUDE.md`](/docs/zh-TW/memory#my-claude-md-is-too-large) 檔案,並將保留的始終載入的指導遷移到 [skill](/docs/zh-TW/skills) 和按需載入的嵌套 `CLAUDE.md` 檔案中。還提供使[自動模式](/docs/zh-TW/permissions#permission-modes)成為您的預設值的選項,以及[預先批准](/docs/zh-TW/permissions)經常被拒絕的唯讀命令。首先報告發現並在進行任何變更前要求確認。從終端機,`claude doctor` 列印唯讀安裝診斷而不啟動工作階段。別名:`/checkup`。運行 `/doctor prompt-audit` 以讓 Claude [審計您的 `CLAUDE.md` 檔案、skill 和其他設定](/docs/zh-TW/memory#audit-your-instruction-files)以查找過時或衝突的指示,而不是運行檢查。`prompt-audit` 子命令需要 Claude Code v2.1.283 或更新版本。`CLAUDE.md` 修剪檢查需要 Claude Code v2.1.206 或更新版本。在 v2.1.205 之前,`/doctor` 打開唯讀診斷螢幕,按 `f` 將報告發送給 Claude |

91| `/effort [level\|auto\|status\|ultracode [on\|off]]` | 設定[工作量級別](/docs/zh-TW/model-config#adjust-effort-level):`low` 到 `xhigh`、`max` 或 `auto`;`status` 列印它。`ultracode` 或 `ultracode on` 在目前級別為工作階段打開 [ultracode](/docs/zh-TW/workflows#let-claude-decide-with-ultracode),`ultracode off` 關閉它;[`ultracode`](/docs/zh-TW/settings-reference#ultracode) 鍵持續存在。`max` 僅限工作階段。`on` 和 `off` 引數以及保持目前級別需要 Claude Code v2.1.284 或更新版本。在 v2.1.284 之前,`/effort ultracode` 將工作階段設定為 `xhigh`,`/effort ultracode off` 失敗並出現 `Invalid argument`。在 Claude 回應時運行它,一旦您確認[快取警告](/docs/zh-TW/prompt-caching#changing-effort-level)(如果 Claude Code 顯示一個),Claude Code 會將新級別應用於該輪中的下一個請求。在 v2.1.242 之前,Claude Code 從它從 Anthropic 擷取的功能標誌決定是在中途運行命令還是將其排隊直到輪次完成,並始終在不[擷取功能標誌](/docs/zh-TW/env-vars#features-that-need-feature-flag-fetching)的工作階段中排隊,例如在[第三方提供者](/docs/zh-TW/third-party-integrations)上。在 `-p` 中工作 |91| `/effort [level\|auto\|status\|ultracode [on\|off]]` | 設定 [effort 等級](/docs/zh-TW/model-config#adjust-effort-level):`low` 到 `xhigh`、`max` 或 `auto`;`status` 列印它。`ultracode` 或 `ultracode on` 在目前等級為工作階段打開 [ultracode](/docs/zh-TW/workflows#let-claude-decide-with-ultracode),`ultracode off` 關閉它;[`ultracode`](/docs/zh-TW/settings-reference#ultracode) 鍵持續存在。`max` 僅限工作階段。`on` 和 `off` 引數以及保持目前等級需要 Claude Code v2.1.284 或更新版本。在 v2.1.284 之前,`/effort ultracode` 將工作階段設定為 `xhigh`,`/effort ultracode off` 失敗並出現 `Invalid argument`。在 Claude 回應時運行它,一旦您確認[快取警告](/docs/zh-TW/prompt-caching#changing-effort-level)(如果 Claude Code 顯示一個),Claude Code 會將新等級應用於該回合中的下一個請求。在 v2.1.242 之前,Claude Code 從它從 Anthropic 擷取的功能旗標決定是在回合中途運行命令還是將其排隊直到該回合完成,並始終在不[擷取功能旗標](/docs/zh-TW/env-vars#features-that-need-feature-flag-fetching)的工作階段中排隊,例如在[第三方提供者](/docs/zh-TW/third-party-integrations)上。在 `-p` 中工作 |

92| `/exit` | 退出 CLI。在附加的[背景工作階段](/docs/zh-TW/agent-view#attach-to-a-session)中,這會分離並且工作階段保持運行。別名:`/quit` |92| `/exit` | 退出 CLI。在附加的[背景工作階段](/docs/zh-TW/agent-view#attach-to-a-session)中,這會分離並且工作階段保持運行。別名:`/quit` |

93| `/export [filename]` | 將目前對話匯出為純文字。使用檔案名,直接寫入該檔案。沒有,打開對話框以複製到剪貼簿或保存到檔案 |93| `/export [filename]` | 將目前對話匯出為純文字。使用檔案名,直接寫入該檔案。沒有,打開對話框以複製到剪貼簿或保存到檔案 |

94| `/fast [on\|off]` | 切換[快速模式](/docs/zh-TW/fast-mode)開啟或關閉。在 Claude 回應時運行它,Claude Code 會切換快速模式而不等待輪次結束,儘管運行中的輪次以其原始速度完成。在 v2.1.242 之前,Claude Code 從它從 Anthropic 擷取的功能標誌決定是在中途運行命令還是將其排隊直到輪次完成,並始終在不[擷取功能標誌](/docs/zh-TW/env-vars#features-that-need-feature-flag-fetching)的工作階段中排隊。非互動模式中的可用性受限於 `-p`;請參閱[切換快速模式](/docs/zh-TW/fast-mode#toggle-fast-mode)。需要 Claude Code v2.1.205 或更新版本 |94| `/fast [on\|off]` | 切換[快速模式](/docs/zh-TW/fast-mode)開啟或關閉。在 Claude 回應時運行它,Claude Code 會切換快速模式而不等待該回合結束,儘管運行中的回合以其原始速度完成。在 v2.1.242 之前,Claude Code 從它從 Anthropic 擷取的功能旗標決定是在回合中途運行命令還是將其排隊直到該回合完成,並始終在不[擷取功能旗標](/docs/zh-TW/env-vars#features-that-need-feature-flag-fetching)的工作階段中排隊。在使用 `-p` 的非互動模式中可用性受限;請參閱[切換快速模式](/docs/zh-TW/fast-mode#toggle-fast-mode)。需要 Claude Code v2.1.205 或更新版本 |

95| `/feedback [report]` | 發送有關 Claude Code 的產品回饋。打開與 [`/bug`](#all-commands) 相同的對話框,具有相同的同意步驟、發送規則和中途行為。在具有 [Claude 草擬回饋](/docs/zh-TW/tools-reference#sendfeedback-tool-behavior)的工作階段中,不帶引數的 `/feedback` 改為打開草稿佇列,您可以在其中檢查、編輯、發送或丟棄 Claude 排隊的草稿;佇列包括在對話框中編寫新報告的選項。使用引數,以及對於 `/bug` 始終,對話框直接打開 |95| `/feedback [report]` | 發送有關 Claude Code 的產品回饋。打開與 [`/bug`](#all-commands) 相同的對話框,具有相同的同意步驟、發送規則和回合中途行為。在具有 [Claude 草擬回饋](/docs/zh-TW/tools-reference#sendfeedback-tool-behavior)的工作階段中,不帶引數的 `/feedback` 改為打開草稿佇列,您可以在其中檢查、編輯、發送或丟棄 Claude 排隊的草稿;佇列包括在對話框中編寫新報告的選項。使用引數時,以及對於 `/bug` 始終,對話框直接打開 |

96| `/fewer-permission-prompts` | **[Skill](/docs/zh-TW/skills#bundled-skills)。** 掃描您的文字記錄以查找常見的唯讀 Bash 和 MCP 工具呼叫,然後將優先允許清單添加到專案 `.claude/settings.json` 以減少權限提示 |96| `/fewer-permission-prompts` | **[Skill](/docs/zh-TW/skills#bundled-skills)。** 掃描您的逐字稿以查找常見的唯讀 Bash 和 MCP 工具呼叫,然後將優先允許清單添加到專案 `.claude/settings.json` 以減少權限提示 |

97| `/focus` | 切換焦點檢視,僅顯示您的最後提示詞、帶有編輯差異統計的單行工具呼叫摘要和最終回應。工具呼叫摘要也計算在輪中啟動的子代理數量並將完成的背景任務通知摺疊為單一計數。選擇在工作階段間持續存在;在設定中設定 [`viewMode`](/docs/zh-TW/settings-reference#viewmode) 以覆蓋它。僅在[全螢幕渲染](/docs/zh-TW/fullscreen)中可用。從[遠端控制](/docs/zh-TW/remote-control)用戶端,運行 `/focus [on\|off]` 以僅為目前工作階段打開或關閉焦點檢視,而不變更您保存的選擇;這需要 Claude Code v2.1.281 或更新版本。[VS Code 擴充功能](/docs/zh-TW/vs-code#use-the-prompt-box)提供其自己的焦點檢視作為命令菜單切換,存儲為擴充功能設定,獨立於 `viewMode` |97| `/focus` | 切換焦點檢視,僅顯示您的最後提示詞、帶有編輯差異統計的單行工具呼叫摘要和最終回應。工具呼叫摘要也計算在該回合中啟動的 subagent 數量並將完成的背景任務通知摺疊為單一計數。選擇在工作階段間持續存在;在設定中設定 [`viewMode`](/docs/zh-TW/settings-reference#viewmode) 以覆寫它。僅在[全螢幕渲染](/docs/zh-TW/fullscreen)中可用。從 [Remote Control](/docs/zh-TW/remote-control) 用戶端,運行 `/focus [on\|off]` 以僅為目前工作階段打開或關閉焦點檢視,而不變更您保存的選擇;這需要 Claude Code v2.1.281 或更新版本。[VS Code 擴充功能](/docs/zh-TW/vs-code#use-the-prompt-box)提供其自己的焦點檢視作為命令選單切換,存儲為擴充功能設定,獨立於 `viewMode` |

98| `/fork [prompt]` | [將目前對話複製](/docs/zh-TW/agent-view#copy-the-session-with-%2Ffork)到新的背景工作階段並繼續在此工作。傳遞提示詞,副本立即開始處理它;沒有它會在代理檢視中等待其第一個提示詞。除非副本[就地編輯](/docs/zh-TW/agent-view#how-file-edits-are-isolated),Claude Code 會指示它在進行程式碼變更前建立自己的 worktree;隔離指示需要 Claude Code v2.1.221 或更新版本。要將側面任務交給子代理,其結果返回到此對話,請使用 `/subtask`;要自己切換到副本,請使用 `/branch`。需要 Claude Code v2.1.212 或更新版本;在 v2.1.161 到 v2.1.211 上,以及每當[代理檢視關閉](/docs/zh-TW/agent-view#turn-off-agent-view)時,`/fork` 改為啟動[分叉子代理](/docs/zh-TW/sub-agents#fork-the-current-conversation) |98| `/fork [prompt]` | [將目前對話複製](/docs/zh-TW/agent-view#copy-the-session-with-%2Ffork)到新的背景工作階段並繼續在此工作。傳遞提示詞,副本立即開始處理它;沒有它會在 agent view 中等待其第一個提示詞。除非副本[就地編輯](/docs/zh-TW/agent-view#how-file-edits-are-isolated),Claude Code 會指示它在進行程式碼變更前建立自己的 worktree;隔離指示需要 Claude Code v2.1.221 或更新版本。要將側面任務交給 subagent,其結果返回到此對話,請使用 `/subtask`;要自己切換到副本,請使用 `/branch`。需要 Claude Code v2.1.212 或更新版本;在 v2.1.161 到 v2.1.211 上,以及每當 [agent view 關閉](/docs/zh-TW/agent-view#turn-off-agent-view)時,`/fork` 改為啟動[分叉 subagent](/docs/zh-TW/sub-agents#fork-the-current-conversation) |

99| `/goal [condition\|clear]` | 設定[目標](/docs/zh-TW/goal):Claude 跨輪繼續工作直到條件滿足或目標[因另一個原因清除](/docs/zh-TW/goal#how-evaluation-works)。沒有引數時,顯示目前或最近達成的目標。`clear`、`stop`、`off`、`reset`、`none` 或 `cancel` 會提前移除活動目標 |99| `/goal [condition\|clear]` | 設定[目標](/docs/zh-TW/goal):Claude 跨回合繼續工作直到條件滿足或目標[因另一個原因清除](/docs/zh-TW/goal#how-evaluation-works)。沒有引數時,顯示目前或最近達成的目標。`clear`、`stop`、`off`、`reset`、`none` 或 `cancel` 會提前移除活動目標 |

100| `/heapdump` | 寫入 JavaScript 堆快照和記憶體細目到 `~/Desktop`,或在沒有 Desktop 資料夾的 Linux 上寫入您的主目錄,以診斷高記憶體使用情況。報告記憶體問題時僅附加 `-diagnostics.json` 檔案;`.heapsnapshot` 包含您的完整對話和認證,因此不要共享它。[從命令菜單隱藏](#how-the-command-menu-matches-what-you-type);完整輸入它。請參閱[如何處理輸出](/docs/zh-TW/troubleshooting#high-cpu-or-memory-usage) |100| `/heapdump` | 寫入 JavaScript 堆快照和記憶體細目到 `~/Desktop`,或在沒有 Desktop 資料夾的 Linux 上寫入您的家目錄,以診斷高記憶體使用情況。報告記憶體問題時僅附加 `-diagnostics.json` 檔案;`.heapsnapshot` 包含您的完整對話和憑證,因此不要共享它。[從命令選單隱藏](#how-the-command-menu-matches-what-you-type);完整輸入它。請參閱[如何處理輸出](/docs/zh-TW/troubleshooting#high-cpu-or-memory-usage) |

101| `/help` | 顯示幫助和可用命令 |101| `/help` | 顯示幫助和可用命令 |

102| `/hooks` | 檢視工具事件的 [hook](/docs/zh-TW/hooks) 設定 |102| `/hooks` | 檢視 [hook](/docs/zh-TW/hooks#the-%2Fhooks-menu) 設定 |

103| `/ide` | 管理 IDE 整合並顯示狀態 |103| `/ide` | 管理 IDE 整合並顯示狀態 |

104| `/import [codex\|gemini\|cursor] [--dry-run] [--yes]` | 將 OpenAI Codex、Google Gemini CLI 或您機器上的 Cursor 的設定帶入 Claude Code,包括指示檔案、MCP 伺服器、命令、子代理和技能。在[非互動模式](/docs/zh-TW/headless)中使用 `-p`,`/import` 列出它找到的內容並給您確認匯入的命令。添加 `--dry-run` 以預覽而不寫入任何內容,或 `--yes` 以跳過互動式選擇器。在 Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 或 Claude Platform on AWS 上不可用,或通過 [Claude 應用程式閘道](/docs/zh-TW/claude-apps-gateway#availability-and-limitations)。當您關閉[功能標誌擷取](/docs/zh-TW/env-vars#features-that-need-feature-flag-fetching)時也不可用。需要 Claude Code v2.1.213 或更新版本。從 Cursor 匯入需要 v2.1.265 或更新版本 |104| `/import [codex\|gemini\|cursor] [--dry-run] [--yes]` | 將您機器上的 OpenAI Codex、Google Gemini CLI 或 Cursor 的設定帶入 Claude Code,包括指示檔案、MCP 伺服器、命令、subagent 和 skill。在使用 `-p` 的[非互動模式](/docs/zh-TW/headless)中,`/import` 列出它找到的內容並給您確認匯入的命令。添加 `--dry-run` 以預覽而不寫入任何內容,或 `--yes` 以跳過互動式選擇器。在 Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 或 Claude Platform on AWS 上,或通過 [Claude 應用程式閘道](/docs/zh-TW/claude-apps-gateway#availability-and-limitations)時不可用。當您關閉[功能旗標擷取](/docs/zh-TW/env-vars#features-that-need-feature-flag-fetching)時也不可用。需要 Claude Code v2.1.213 或更新版本。從 Cursor 匯入需要 v2.1.265 或更新版本 |

105| `/init` | 使用 `CLAUDE.md` 指南初始化專案。設定 `CLAUDE_CODE_NEW_INIT=1` 以獲得互動式流程,也會逐步解說技能、hooks 和個人記憶檔案。如果 `/init` 找到 OpenAI Codex 或 Google Gemini CLI 設定,它會提供使用 `/import` 進行轉移 |105| `/init` | 使用 `CLAUDE.md` 指南初始化專案。設定 `CLAUDE_CODE_NEW_INIT=1` 以獲得互動式流程,也會逐步解說 skill、hook 和個人記憶檔案。如果 `/init` 找到 OpenAI Codex 或 Google Gemini CLI 設定,它會提供使用 `/import` 進行轉移 |

106| `/insights` | 生成 HTML 報告,分析您在此機器上的最近工作階段:您在哪些專案中工作、如何使用 Claude Code、事情出錯的地方以及要嘗試的功能。在[雲端工作階段](/docs/zh-TW/claude-code-on-the-web)中不可用。有關報告位置、保留和成本,請參閱[分析您的使用模式](/docs/zh-TW/costs#analyze-your-usage-patterns) |106| `/insights` | 生成 HTML 報告,分析您在此機器上的最近工作階段:您在哪些專案中工作、如何使用 Claude Code、事情出錯的地方以及要嘗試的功能。在[雲端工作階段](/docs/zh-TW/claude-code-on-the-web)中不可用。有關報告位置、保留和成本,請參閱[分析您的使用模式](/docs/zh-TW/costs#analyze-your-usage-patterns) |

107| `/install-github-app` | 為儲存庫安裝 Claude GitHub App,可選步驟設定 [GitHub Actions](/docs/zh-TW/github-actions) 工作流程和機密。逐步解說您選擇儲存庫和設定整合。僅適用於 github.com 儲存庫。當您的儲存庫的 git 遠端在 gitlab.com 或 bitbucket.org 上時,命令會列印通知並退出而不是啟動設定。要從 GitLab 管道運行 Claude Code,請參閱 [GitLab CI/CD](/docs/zh-TW/gitlab-ci-cd) |107| `/install-github-app` | 為儲存庫安裝 Claude GitHub App,可選步驟設定 [GitHub Actions](/docs/zh-TW/github-actions) 工作流程和機密。逐步解說您選擇儲存庫和設定整合。僅適用於 github.com 儲存庫。當您的儲存庫的 git 遠端在 gitlab.com 或 bitbucket.org 上時,命令會列印通知並退出而不是啟動設定。要從 GitLab 管道運行 Claude Code,請參閱 [GitLab CI/CD](/docs/zh-TW/gitlab-ci-cd) |

108| `/install-slack-app` | 安裝 Claude Slack 應用程式。打開瀏覽器以完成 OAuth 流程 |108| `/install-slack-app` | 安裝 Claude Slack 應用程式。打開瀏覽器以完成 OAuth 流程 |

109| `/keybindings` | 打開您的[快捷鍵](/docs/zh-TW/keybindings)檔案 |109| `/keybindings` | 打開您的[鍵盤快捷鍵](/docs/zh-TW/keybindings)檔案 |

110| `/list-agents` | 列出子代理、[代理團隊](/docs/zh-TW/agent-teams)隊友和其他 Claude Code 工作階段 Claude 可以訊息,以及每個要使用的名稱。請參閱[跨工作階段訊息](/docs/zh-TW/cross-session-messaging)。也可用作 `/peers`。需要 Claude Code v2.1.224 或更新版本;較早版本報告 `Unknown command: /list-agents`。隊友行和顯示此工作階段自己名稱的第一行需要 v2.1.239 或更新版本。僅在[啟用跨工作階段訊息](/docs/zh-TW/cross-session-messaging#availability)的工作階段中可用 |110| `/list-agents` | 列出 Claude 可以傳送訊息的 subagent、[agent team](/docs/zh-TW/agent-teams) 隊員和其他 Claude Code 工作階段,以及每個要使用的名稱。請參閱[跨工作階段訊息](/docs/zh-TW/cross-session-messaging)。也可用作 `/peers`。需要 Claude Code v2.1.224 或更新版本;較早版本報告 `Unknown command: /list-agents`。隊員行和顯示此工作階段自己名稱的第一行需要 v2.1.239 或更新版本。僅在[啟用跨工作階段訊息](/docs/zh-TW/cross-session-messaging#availability)的工作階段中可用 |

111| `/login` | 登入您的 Anthropic 帳戶 |111| `/login` | 登入您的 Anthropic 帳戶 |

112| `/logout` | 登出您的 Anthropic 帳戶 |112| `/logout` | 登出您的 Anthropic 帳戶 |

113| `/loop [interval] [prompt]` | **[Skill](/docs/zh-TW/skills#bundled-skills)。** 在工作階段保持打開時重複運行提示詞。省略間隔,Claude [自行調整迭代之間的步調](/docs/zh-TW/scheduled-tasks#let-claude-choose-the-interval)。省略提示詞,Claude 運行[內建維護提示詞](/docs/zh-TW/scheduled-tasks#run-the-built-in-maintenance-prompt)或您的 [`loop.md`](/docs/zh-TW/scheduled-tasks#customize-the-default-prompt-with-loop-md)。範例:`/loop 5m check if the deploy finished`。請參閱[按計畫運行提示詞](/docs/zh-TW/scheduled-tasks)。別名:`/proactive` |113| `/loop [interval] [prompt]` | **[Skill](/docs/zh-TW/skills#bundled-skills)。** 在工作階段保持打開時重複運行提示詞。省略間隔,Claude [自行調整迭代之間的步調](/docs/zh-TW/scheduled-tasks#let-claude-choose-the-interval)。省略提示詞,Claude 運行[內建維護提示詞](/docs/zh-TW/scheduled-tasks#run-the-built-in-maintenance-prompt)或您的 [`loop.md`](/docs/zh-TW/scheduled-tasks#customize-the-default-prompt-with-loop-md)。範例:`/loop 5m check if the deploy finished`。請參閱[按排程運行提示詞](/docs/zh-TW/scheduled-tasks)。別名:`/proactive` |

114| `/mcp [reconnect <server>\|enable\|disable [<server>\|all]]` | 管理 MCP 伺服器連線和 OAuth 驗證。運行時不帶引數以打開互動式清單,傳遞 `reconnect <server>` 以重新連線一個斷開連線的伺服器,或傳遞 `enable`/`disable` 與伺服器名稱或 `all` 以在不打開對話框的情況下變更連線狀態。也可在非互動模式 (`-p`) 中使用,其中運行時不帶引數會列印伺服器狀態的文字摘要而不是打開清單;需要 Claude Code v2.1.205 或更新版本 |114| `/mcp [reconnect (<server>\|all)\|enable\|disable [<server>\|all]]` | 管理 MCP 伺服器連線和 OAuth 身分驗證。運行時不帶引數以打開互動式清單,或傳遞 `reconnect`、`enable` 或 `disable` 與伺服器名稱或 `all`,以在不打開清單的情況下變更連線狀態。`reconnect all` 會[重試每個失敗或需要身分驗證的伺服器](/docs/zh-TW/mcp#retry-failed-servers-yourself)。也可在非互動模式 (`-p`) 中使用,其中運行時不帶引數會列印伺服器狀態的文字摘要而不是打開清單;需要 Claude Code v2.1.205 或更新版本 |

115| `/memory` | 編輯 `CLAUDE.md` 檔案、啟用或停用[自動記憶](/docs/zh-TW/memory#auto-memory)以及檢視自動記憶項目 |115| `/memory` | 編輯 `CLAUDE.md` 檔案、啟用或停用[自動記憶](/docs/zh-TW/memory#auto-memory)以及檢視自動記憶項目 |

116| `/mobile` | 顯示 QR 碼以下載 Claude 行動應用程式。別名:`/ios`、`/android` |116| `/mobile` | 顯示 QR 碼以下載 Claude 行動應用程式。別名:`/ios`、`/android` |

117| `/model [model]` | 切換 AI 模型並將其保存為新工作階段的預設值。對於支援它的模型,使用左/右箭頭以[調整工作量級別](/docs/zh-TW/model-config#adjust-effort-level)。沒有引數時,打開選擇器;在行上按 `s` 以僅為目前工作階段切換。請參閱[何時 Claude Code 要求您確認切換](/docs/zh-TW/prompt-caching#switching-models)。一旦您確認切換,如果 Claude Code 要求,Claude Code 會應用變更而不等待目前回應完成。在 v2.1.242 之前,Claude Code 從它從 Anthropic 擷取的功能標誌決定是在中途運行命令還是將其排隊直到輪次完成,並始終在不[擷取功能標誌](/docs/zh-TW/env-vars#features-that-need-feature-flag-fetching)的工作階段中排隊,例如在[第三方提供者](/docs/zh-TW/third-party-integrations)上。也可在非互動模式 (`-p`) 中使用模型引數而不是選擇器,其中它僅應用於目前工作階段且不保存為您的預設值;需要 Claude Code v2.1.205 或更新版本 |117| `/model [model]` | 切換 AI 模型並將其保存為新工作階段的預設值。對於支援它的模型,使用左/右箭頭以[調整 effort 等級](/docs/zh-TW/model-config#adjust-effort-level)。沒有引數時,打開選擇器;在行上按 `s` 以僅為目前工作階段切換。請參閱[何時 Claude Code 要求您確認切換](/docs/zh-TW/prompt-caching#switching-models)。一旦您確認切換(如果 Claude Code 要求),Claude Code 會應用變更而不等待目前回應完成。在 v2.1.242 之前,Claude Code 從它從 Anthropic 擷取的功能旗標決定是在回合中途運行命令還是將其排隊直到該回合完成,並始終在不[擷取功能旗標](/docs/zh-TW/env-vars#features-that-need-feature-flag-fetching)的工作階段中排隊,例如在[第三方提供者](/docs/zh-TW/third-party-integrations)上。也可在非互動模式 (`-p`) 中使用模型引數而不是選擇器,其中它僅應用於目前工作階段且不保存為您的預設值;需要 Claude Code v2.1.205 或更新版本 |

118| `/output-style [style]` | 列出[輸出樣式](/docs/zh-TW/output-styles)或切換到一個,例如 `/output-style concise`。請參閱[變更您的輸出樣式](/docs/zh-TW/output-styles#change-your-output-style)。需要 Claude Code v2.1.269 或更新版本 |118| `/output-style [style]` | 列出[輸出風格](/docs/zh-TW/output-styles)或切換到一個,例如 `/output-style concise`。請參閱[變更您的輸出風格](/docs/zh-TW/output-styles#change-your-output-style)。需要 Claude Code v2.1.269 或更新版本 |

119| `/passes` | 與朋友分享免費一週的 Claude Code。僅在您的帳戶符合條件時可見 |119| `/passes` | 與朋友分享免費一週的 Claude Code。僅在您的帳戶符合條件時可見 |

120| `/permissions` | 管理工具權限的允許、詢問和拒絕規則。打開互動式對話框,您可以按範圍檢視規則、添加或移除規則、管理工作目錄以及檢查[最近的自動模式拒絕](/docs/zh-TW/auto-mode-config#review-denials)。您也可以從對話框的 **Auto mode** 標籤檢視和編輯[自動模式分類器規則](/docs/zh-TW/auto-mode-config#edit-rules-from-permissions)。當您在 Claude 回應時運行它時,Claude Code 會立即打開對話框並從 Claude 在同一輪中的下一個工具呼叫開始應用您的變更。在 v2.1.234 之前,Claude Code 會將命令排隊直到輪次完成。別名:`/allowed-tools` |120| `/permissions` | 管理工具權限的允許、詢問和拒絕規則。打開互動式對話框,您可以按範圍檢視規則、添加或移除規則、管理工作目錄以及檢查[最近的自動模式拒絕](/docs/zh-TW/auto-mode-config#review-denials)。您也可以從對話框的 **Auto mode** 標籤檢視和編輯[自動模式分類器規則](/docs/zh-TW/auto-mode-config#edit-rules-from-permissions)。當您在 Claude 回應時運行它時,Claude Code 會立即打開對話框並從 Claude 在同一回合中的下一個工具呼叫開始應用您的變更。在 v2.1.234 之前,Claude Code 會將命令排隊直到該回合完成。別名:`/allowed-tools` |

121| `/plan [description]` | 直接從提示詞進入計畫模式。傳遞可選描述以進入計畫模式並立即開始該任務,例如 `/plan fix the auth bug` |121| `/plan [description]` | 直接從提示詞進入 plan mode。傳遞可選描述以進入 plan mode 並立即開始該任務,例如 `/plan fix the auth bug` |

122| `/plugin [subcommand]` | 管理 Claude Code [plugins](/docs/zh-TW/plugins/overview)。運行時不帶引數以打開外掛菜單,或傳遞子命令(例如 `list`、`install`、`enable` 或 `disable`)以直接執行。Claude Code 可以在安裝期間啟動外掛;[安裝摘要](/docs/zh-TW/plugins/install#install-a-plugin)會告訴您它是否執行或是否運行 `/reload-plugins` |122| `/plugin [subcommand]` | 管理 Claude Code [外掛](/docs/zh-TW/plugins/overview)。運行時不帶引數以打開外掛選單,或傳遞子命令(例如 `list`、`install`、`enable` 或 `disable`)以直接執行。Claude Code 可以在安裝期間啟動外掛;[安裝摘要](/docs/zh-TW/plugins/install#install-a-plugin)會告訴您它是否已啟動,或是否需要運行 `/reload-plugins` |

123| `/plugin-authoring` | 載入 Claude 用來[編寫 mod](/docs/zh-TW/plugins/mods/create#ask-claude-for-a-mod) 的參考資料。當您要求 mod 時,Claude 可以自行載入它。這是來自[內建外掛](/docs/zh-TW/plugins/mods/overview#mods-built-into-claude-code)的 skill,您可以在 `/plugin` 中關閉它。需要 Claude Code v2.1.287 或更新版本 |

123| `/powerup` | 通過帶有動畫演示的快速互動式課程發現 Claude Code 功能 |124| `/powerup` | 通過帶有動畫演示的快速互動式課程發現 Claude Code 功能 |

124| `/pr-comments [PR]` | 在 v2.1.91 中移除。直接要求 Claude 檢視拉取請求評論。在較早版本上,擷取並顯示來自 GitHub 拉取請求的評論;自動檢測目前分支的 PR,或傳遞 PR URL 或編號。需要 `gh` CLI |125| `/pr-comments [PR]` | 在 v2.1.91 中移除。改為直接要求 Claude 檢視 pull request 評論。在較早版本上,擷取並顯示來自 GitHub pull request 的評論;自動檢測目前分支的 PR,或傳遞 PR URL 或編號。需要 `gh` CLI |

125| `/privacy-settings` | 檢視和更新您的隱私設定。僅適用於 Pro 和 Max 方案訂閱者 |126| `/privacy-settings` | 檢視和更新您的隱私設定。僅適用於 Pro 和 Max 方案訂閱者 |

126| `/radio` | 在瀏覽器中打開 Claude FM lo-fi 廣播。當沒有瀏覽器可用時列印串流 URL |127| `/radio` | 在瀏覽器中打開 Claude FM lo-fi 廣播。當沒有瀏覽器可用時列印串流 URL |

127| `/rate-limit-options` | 顯示在 claude.ai 使用限制阻止請求時保持工作的方式:等待並[在限制重置時自動繼續](/docs/zh-TW/interactive-mode#wait-for-a-usage-limit-to-reset)、添加[使用額度](/docs/zh-TW/costs#add-usage-credits-to-your-subscription)或升級您的方案。Claude Code 也可以在您在自己的終端達到限制時自行打開此菜單。請參閱[關閉自動繼續](/docs/zh-TW/interactive-mode#turn-automatic-continue-off)。需要 claude.ai 訂閱。等待和繼續行需要 Claude Code v2.1.234 或更新版本 |128| `/rate-limit-options` | 顯示在 claude.ai 用量上限阻止請求時保持工作的方式:等待並[在限制重置時自動繼續](/docs/zh-TW/interactive-mode#wait-for-a-usage-limit-to-reset)、添加[用量點數](/docs/zh-TW/costs#add-usage-credits-to-your-subscription)或升級您的方案。Claude Code 也可以在您在自己的終端機達到限制時自行打開此選單。請參閱[關閉自動繼續](/docs/zh-TW/interactive-mode#turn-automatic-continue-off)。需要 claude.ai 訂閱。等待和繼續行需要 Claude Code v2.1.234 或更新版本 |

128| `/recap` | 按需生成目前工作階段的單行摘要。請參閱[工作階段摘要](/docs/zh-TW/interactive-mode#session-recap)以了解您離開後出現的自動摘要 |129| `/recap` | 按需生成目前工作階段的單行摘要。請參閱[工作階段摘要](/docs/zh-TW/interactive-mode#session-recap)以了解您離開後出現的自動摘要 |

129| `/release-notes` | 在互動式版本選擇器中檢視變更日誌。選擇特定版本以查看其發佈說明,或選擇顯示所有版本。說明在您的文字記錄中出現而不進入 Claude 看到的對話 |130| `/release-notes` | 在互動式版本選擇器中檢視變更日誌。選擇特定版本以查看其發佈說明,或選擇顯示所有版本。說明在您的逐字稿中出現而不進入 Claude 看到的對話 |

130| `/reload-plugins [--force]` | 重新載入所有活動 [plugins](/docs/zh-TW/plugins/overview) 以應用待處理變更而不重新啟動。報告每個重新載入元件的計數並標記任何載入錯誤。當重新載入會變更載入的 MCP 工具並使提示詞快取失效時,命令會警告並跳過,除非您傳遞 `--force`。也可在非互動模式 (`-p`)、Agent SDK 和桌面應用程式中使用,其中它僅在直接輸入到工作階段的輸入上運行且不應用外掛 MCP 伺服器變更;需要 Claude Code v2.1.260 或更新版本。請參閱[在不重新啟動的情況下應用外掛變更](/docs/zh-TW/plugins/cli-reference#reload-plugins) |131| `/reload-plugins [--force]` | 重新載入所有活動[外掛](/docs/zh-TW/plugins/overview)以應用待處理變更而不重新啟動。報告每個重新載入元件的計數並標記任何載入錯誤。當重新載入會變更載入的 MCP 工具並使提示快取失效時,命令會警告並跳過,除非您傳遞 `--force`。也可在非互動模式 (`-p`)、Agent SDK 和桌面應用程式中使用,其中它僅在直接輸入到工作階段的輸入上運行且不應用外掛 MCP 伺服器變更;需要 Claude Code v2.1.260 或更新版本。請參閱[在不重新啟動的情況下應用外掛變更](/docs/zh-TW/plugins/cli-reference#reload-plugins) |

131| `/reload-skills` | 重新掃描 [skill](/docs/zh-TW/skills) 和命令目錄,以便在工作階段期間在磁碟上添加或變更的技能在不重新啟動的情況下變為可用。報告有多少技能可用以及添加或移除了多少 |132| `/reload-skills` | 重新掃描 [skill](/docs/zh-TW/skills) 和命令目錄,以便在工作階段期間在磁碟上添加或變更的 skill 在不重新啟動的情況下變為可用。報告有多少 skill 可用以及添加或移除了多少 |

132| `/remote-control` | 使此工作階段可從 claude.ai 進行[遠端控制](/docs/zh-TW/remote-control)。在登出時運行它會列印遠端控制需要 claude.ai 訂閱並告訴您如何登入;在 v2.1.206 之前它報告 `Unknown command: /remote-control`。別名:`/rc` |133| `/remote-control` | 使此工作階段可從 claude.ai 進行 [Remote Control](/docs/zh-TW/remote-control)。在登出時運行它會列印 Remote Control 需要 claude.ai 訂閱並告訴您如何登入;在 v2.1.206 之前它報告 `Unknown command: /remote-control`。別名:`/rc` |

133| `/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) |

134| `/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) |

135| `/resume [session]` | 按 ID 或名稱恢復對話,或打開工作階段選擇器。[背景工作階段](/docs/zh-TW/agent-view)在選擇器中標記為 `bg` 出現。恢復仍在運行的工作階段,從選擇器或按 ID 或名稱,[打開該工作階段](/docs/zh-TW/sessions#resume-a-running-background-session):您目前的對話移動到背景,此終端附加到運行中的工作階段。在空提示詞上按 `←` 返回代理檢視,這也列出您留下的對話。在 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` |

136| `/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`,並採用相同的工作量級別和標誌。沒有給定級別時,檢查重複使用您最後輸入的 `low` 到 `max` 級別;有關確切規則,請參閱[本地檢查差異](/docs/zh-TW/code-review#review-a-diff-locally)。對於深度雲端檢查,使用 [`/code-review ultra`](/docs/zh-TW/ultrareview)。在 v2.1.223 之前,`/review` 是一個單獨的命令,按編號對 GitHub 拉取請求進行單次通過、唯讀檢查,在運行時不帶引數時列出打開的 PR 以選擇;從 v2.1.186 到 v2.1.201,它運行與 `/code-review medium` 相同的多代理引擎 |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| `/rewind` | 倒帶對話和/或程式碼到上一個點,或從選定的訊息進行摘要。請參閱[檢查點](/docs/zh-TW/checkpointing)。別名:`/checkpoint`、`/undo` |138| `/rewind` | 倒帶對話和/或程式碼到上一個點,或從選定的訊息進行摘要。請參閱[檢查點功能](/docs/zh-TW/checkpointing)。別名:`/checkpoint`、`/undo` |

138| `/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) |

139| `/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` 如何從乾淨環境建置、啟動和驅動您的專案應用程式 |

140| `/sandbox` | 切換[沙箱模式](/docs/zh-TW/sandboxing)。僅在支援的平台上可用 |141| `/sandbox` | 切換[沙箱模式](/docs/zh-TW/sandboxing)。僅在支援的平台上可用 |

141| `/schedule [description]` | 建立、更新、列出或運行在雲端執行的[例行程式](/docs/zh-TW/routines)。Claude 以對話方式逐步解說設定。您也可以詢問[例行程式的最近運行](/docs/zh-TW/routines#manage-routines-from-the-cli)。別名:`/routines` |142| `/schedule [description]` | 建立、更新、列出或運行在雲端執行的 [routine](/docs/zh-TW/routines)。Claude 以對話方式逐步解說設定。您也可以詢問 [routine 的最近運行](/docs/zh-TW/routines#manage-routines-from-the-cli)。別名:`/routines` |

142| `/scroll-speed` | 以互動方式調整滑鼠滾輪[捲動速度](/docs/zh-TW/fullscreen#mouse-wheel-scrolling),使用尺標,您可以在對話框打開時捲動以預覽變更。僅在[全螢幕渲染](/docs/zh-TW/fullscreen)中可用,在 JetBrains IDE 終端中不可用 |143| `/scroll-speed` | 以互動方式調整滑鼠滾輪[捲動速度](/docs/zh-TW/fullscreen#mouse-wheel-scrolling),使用尺標,您可以在對話框打開時捲動以預覽變更。僅在[全螢幕渲染](/docs/zh-TW/fullscreen)中可用,在 JetBrains IDE 終端機中不可用 |

143| `/security-review` | 分析目前分支上的變更以查找安全漏洞。檢查您的分支與 origin 預設分支之間的差異,識別注入、驗證問題和資料洩露等風險。需要 `origin` 遠端;如果檢查失敗並出現 `ambiguous argument` 錯誤,請參閱[錯誤參考](/docs/zh-TW/errors#security-review-fails-without-origin-head) |144| `/security-review` | 分析目前分支上的變更以查找安全漏洞。檢查您的分支與 origin 預設分支之間的差異,識別注入、身分驗證問題和資料洩露等風險。需要 `origin` 遠端;如果檢查失敗並出現 `ambiguous argument` 錯誤,請參閱[錯誤參考](/docs/zh-TW/errors#security-review-fails-without-origin-head) |

144| `/setup-bedrock` | 通過互動式精靈設定 [Amazon Bedrock](/docs/zh-TW/amazon-bedrock) 驗證、區域和模型釘選。[從命令菜單隱藏](#how-the-command-menu-matches-what-you-type)直到設定 `CLAUDE_CODE_USE_BEDROCK=1`;完整輸入它。首次 Amazon Bedrock 使用者也可以從登入螢幕存取此精靈 |145| `/setup-bedrock` | 通過互動式精靈設定 [Amazon Bedrock](/docs/zh-TW/amazon-bedrock) 身分驗證、區域和模型釘選。[從命令選單隱藏](#how-the-command-menu-matches-what-you-type)直到設定 `CLAUDE_CODE_USE_BEDROCK=1`;完整輸入它。首次 Amazon Bedrock 使用者也可以從登入螢幕存取此精靈 |

145| `/setup-vertex` | 通過互動式精靈設定 [Google Cloud 的 Agent Platform](/docs/zh-TW/google-vertex-ai) 驗證、專案、區域和模型釘選。[從命令菜單隱藏](#how-the-command-menu-matches-what-you-type)直到設定 `CLAUDE_CODE_USE_VERTEX=1`;完整輸入它。首次 Google Cloud 的 Agent Platform 使用者也可以從登入螢幕存取此精靈 |146| `/setup-vertex` | 通過互動式精靈設定 [Google Cloud 的 Agent Platform](/docs/zh-TW/google-vertex-ai) 身分驗證、專案、區域和模型釘選。[從命令選單隱藏](#how-the-command-menu-matches-what-you-type)直到設定 `CLAUDE_CODE_USE_VERTEX=1`;完整輸入它。首次 Google Cloud 的 Agent Platform 使用者也可以從登入螢幕存取此精靈 |

146| `/simplify [target]` | **[Skill](/docs/zh-TW/skills#bundled-skills)。** 檢查變更的程式碼以查找清理機會並應用修復。四個檢查[代理](/docs/zh-TW/sub-agents)並行運行,涵蓋現有幫助程式的重複使用、簡化、效率以及變更是否處於正確的抽象級別。檢查不尋找正確性錯誤。使用 `/code-review` 查找錯誤。傳遞路徑或 PR 參考以檢查特定目標 |147| `/simplify [target]` | **[Skill](/docs/zh-TW/skills#bundled-skills)。** 檢查變更的程式碼以查找清理機會並應用修復。四個檢查 [agent](/docs/zh-TW/sub-agents) 並行運行,涵蓋現有幫助程式的重複使用、簡化、效率以及變更是否處於正確的抽象層級。檢查不尋找正確性錯誤。使用 `/code-review` 查找錯誤。傳遞路徑或 PR 參考以檢查特定目標 |

147| `/skill-doctor` | 顯示您的每個 [skills](/docs/zh-TW/skills) 在上下文中的成本以及它被使用的頻率,以便您可以[找到要關閉的技能](/docs/zh-TW/skills#find-unused-skills)。需要 Claude Code v2.1.252 或更新版本和[功能標誌擷取](/docs/zh-TW/env-vars#features-that-need-feature-flag-fetching) |148| `/skill-doctor` | 顯示您的每個 [skill](/docs/zh-TW/skills) 在上下文中的成本以及它被使用的頻率,以便您可以[找到要關閉的 skill](/docs/zh-TW/skills#find-unused-skills)。需要 Claude Code v2.1.252 或更新版本和[功能旗標擷取](/docs/zh-TW/env-vars#features-that-need-feature-flag-fetching) |

148| `/skills` | 列出可用的 [skills](/docs/zh-TW/skills)。輸入以按名稱、描述或來源篩選清單。按 `t` 按令牌計數排序,`Space` 或 `Enter` 以[循環技能對 Claude 和 `/` 菜單的可見性](/docs/zh-TW/skills#override-skill-visibility-from-settings),以及 `Esc` 以保存並關閉。您無法循環外掛技能、其前置事項設定 `disable-model-invocation: true` 的技能或在受管設定或 `--settings` 標誌中具有 `skillOverrides` 項目的技能 |149| `/skills` | 列出可用的 [skill](/docs/zh-TW/skills)。輸入以按名稱、描述或來源篩選清單。按 `t` 按 token 計數排序,`Space` 或 `Enter` 以[循環切換 skill 對 Claude 和 `/` 選單的可見性](/docs/zh-TW/skills#override-skill-visibility-from-settings),以及 `Esc` 以保存並關閉。您無法循環切換外掛 skill、其 frontmatter 設定 `disable-model-invocation: true` 的 skill,或在受管設定或 `--settings` 旗標中具有 `skillOverrides` 項目的 skill |

149| `/slides [brief]` | **[Skill](/docs/zh-TW/skills#bundled-skills)。** 製作新簡報作為 Claude Slides [工件](/docs/zh-TW/artifacts#make-a-slide-deck),從您的簡報中填充,例如 `/slides a quarterly review of the platform team`。需要 Claude Code v2.1.265 或更新版本、[工件可用](/docs/zh-TW/artifacts#availability)的工作階段,以及帳戶中[Slides 範本可用](/docs/zh-TW/artifacts#start-from-a-slides-design-or-docs-template)的地方;否則命令不會出現。在 Anthropic API 上可用。在 Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 和 Claude Platform on AWS 上,工件不可用,因此命令在那裡不可用 |150| `/slides [brief]` | **[Skill](/docs/zh-TW/skills#bundled-skills)。** 製作新簡報作為 Claude Slides [artifact](/docs/zh-TW/artifacts#make-a-slide-deck),並根據您的簡述填充內容,例如 `/slides a quarterly review of the platform team`。需要 Claude Code v2.1.265 或更新版本、[artifact 可用](/docs/zh-TW/artifacts#availability)的工作階段,以及 [Slides 範本可用](/docs/zh-TW/artifacts#start-from-a-slides-design-or-docs-template)的帳戶;否則命令不會出現。在 Anthropic API 上可用。在 Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 和 Claude Platform on AWS 上,artifact 不可用,因此命令在那裡不可用 |

150| `/stats` | `/usage` 的別名。在 Stats 標籤上打開 |151| `/stats` | `/usage` 的別名。在 Stats 標籤上打開 |

151| `/status` | 在 Status 標籤上打開設定介面,顯示版本、模型、帳戶和連線。`Session kind` 行在[背景工作階段](/docs/zh-TW/agent-view)中讀取 `background job · attached` 或 `background job · unattended`(取決於是否附加終端),在任何其他工作階段中讀取 `interactive`。在 v2.1.221 之前,`/status` 不顯示此行。在 Claude 回應時工作 |152| `/status` | 在 Status 標籤上打開設定介面,顯示版本、模型、帳戶和連線。`Session kind` 行在[背景工作階段](/docs/zh-TW/agent-view)中顯示 `background job · attached` 或 `background job · unattended`(取決於是否附加終端機),在任何其他工作階段中顯示 `interactive`。在 v2.1.221 之前,`/status` 不顯示此行。在 Claude 回應時也可運作 |

152| `/statusline` | 設定 Claude Code 的[狀態行](/docs/zh-TW/statusline)。描述您想要的內容,或運行時不帶引數以從您的 shell 提示詞自動設定 |153| `/statusline` | 設定 Claude Code 的[狀態列](/docs/zh-TW/statusline)。描述您想要的內容,或運行時不帶引數以從您的 shell 提示字元自動設定 |

153| `/stickers` | 訂購 Claude Code 貼紙 |154| `/stickers` | 訂購 Claude Code 貼紙 |

154| `/stop` | 停止目前[背景工作階段](/docs/zh-TW/agent-view)。僅在附加到背景工作階段時可用;文字記錄和任何 worktree 都會保留。要分離而不停止,請使用 `/exit` 或按 `←` |155| `/stop` | 停止您所附加的[背景工作階段](/docs/zh-TW/agent-view),或您以[預覽回覆](/docs/zh-TW/agent-view#peek-and-reply)方式傳送此命令的目標工作階段;逐字稿和任何 worktree 都會保留。要分離而不停止,請使用 `/exit` 或按 `←` |

155| `/subtask <task>` | 生成[分叉子代理](/docs/zh-TW/sub-agents#fork-the-current-conversation):一個繼承完整對話並在您繼續工作時處理任務的背景子代理。其結果在完成時返回到此對話。要將對話複製到單獨的背景工作階段,請改用 `/fork`。需要 Claude Code v2.1.212 或更新版本;在 v2.1.161 到 v2.1.211 上,此命令是 `/fork`。當[代理檢視關閉](/docs/zh-TW/agent-view#turn-off-agent-view)時,`/subtask` 不可用,`/fork` 保持分叉子代理行為 |156| `/subtask <task>` | 生成[分叉 subagent](/docs/zh-TW/sub-agents#fork-the-current-conversation):一個繼承完整對話並在您繼續工作時處理任務的背景 subagent。其結果在完成時返回到此對話。要將對話複製到單獨的背景工作階段,請改用 `/fork`。需要 Claude Code v2.1.212 或更新版本;在 v2.1.161 到 v2.1.211 上,此命令是 `/fork`。當 [agent view 關閉](/docs/zh-TW/agent-view#turn-off-agent-view)時,`/subtask` 不可用,`/fork` 保持分叉 subagent 行為 |

156| `/tasks` | 檢視和管理目前工作階段中的背景工作,包括已完成的子代理。也可用作 `/bashes` |157| `/tasks` | 檢視和管理目前工作階段中的背景工作,包括已完成的 subagent。也可用作 `/bashes` |

157| `/team-onboarding` | 從您的 Claude Code 使用歷史記錄生成團隊入職指南。Claude 分析您過去 30 天的工作階段、命令和 MCP 伺服器使用情況,並生成隊友可以貼上作為第一條訊息以快速設定的 markdown 指南。對於 Pro、Max、Team 和 Enterprise 方案上的 claude.ai 訂閱者,也會返回隊友可以直接在 Claude Code 中打開的共享連結 |158| `/team-onboarding` | 從您的 Claude Code 使用歷史記錄生成團隊入職指南。Claude 分析您過去 30 天的工作階段、命令和 MCP 伺服器使用情況,並生成隊友可以貼上作為第一條訊息以快速設定的 markdown 指南。對於 Pro、Max、Team 和 Enterprise 方案上的 claude.ai 訂閱者,也會返回隊友可以直接在 Claude Code 中打開的共享連結 |

158| `/teleport` | 將[雲端工作階段](/docs/zh-TW/claude-code-on-the-web#from-cloud-to-terminal)拉入此終端。打開選擇器,然後擷取分支和對話。也可用作 `/tp`。需要 claude.ai 訂閱 |159| `/teleport` | 將[雲端工作階段](/docs/zh-TW/claude-code-on-the-web#from-cloud-to-terminal)拉入此終端機。打開選擇器,然後擷取分支和對話。也可用作 `/tp`。需要 claude.ai 訂閱 |

159| `/terminal-setup` | [在 VS Code、Cursor、Devin Desktop、Alacritty 或 Zed 中安裝 Shift+Enter 快捷鍵以進行新行](/docs/zh-TW/terminal-config#enter-multiline-prompts)。在 Apple Terminal 中,[改為啟用 Option+Enter 以進行新行並關閉可聽見的鈴聲](/docs/zh-TW/terminal-config#enable-option-key-shortcuts-on-macos)。在 iTerm2 中,[打開剪貼簿存取以便 `/copy` 工作](/docs/zh-TW/terminal-config#enable-option-key-shortcuts-on-macos) |160| `/terminal-setup` | [在 VS Code、Cursor、Devin Desktop、Alacritty 或 Zed 中安裝 Shift+Enter 快捷鍵以進行新行](/docs/zh-TW/terminal-config#enter-multiline-prompts)。在 Apple Terminal 中,[改為啟用 Option+Enter 以進行新行並關閉可聽見的鈴聲](/docs/zh-TW/terminal-config#enable-option-key-shortcuts-on-macos)。在 iTerm2 中,[打開剪貼簿存取以便 `/copy` 運作](/docs/zh-TW/terminal-config#enable-option-key-shortcuts-on-macos) |

160| `/theme` | 變更顏色主題。包括與您的終端淺色或深色背景相符的 `auto` 選項、淺色和深色變體、色盲無障礙 (daltonized) 主題、使用您的終端調色板的 ANSI 主題以及來自 `~/.claude/themes/` 或外掛的任何[自訂主題](/docs/zh-TW/terminal-config#create-a-custom-theme)。選擇 **New custom theme…** 以建立一個 |161| `/theme` | 變更顏色主題。包括與您的終端機淺色或深色背景相符的 `auto` 選項、淺色和深色變體、色盲無障礙 (daltonized) 主題、使用您的終端機調色板的 ANSI 主題以及來自 `~/.claude/themes/` 或外掛的任何[自訂主題](/docs/zh-TW/terminal-config#create-a-custom-theme)。選擇 **New custom theme…** 以建立一個 |

161| `/tui [default\|fullscreen]` | 設定終端 UI 渲染器並使用您的對話完整重新啟動到它。`fullscreen` 啟用[無閃爍 alt-screen 渲染器](/docs/zh-TW/fullscreen)。沒有引數時,列印活動渲染器 |162| `/tui [default\|fullscreen]` | 設定終端機 UI 渲染器並在保留您的對話的情況下重新啟動到它。`fullscreen` 啟用[無閃爍 alt-screen 渲染器](/docs/zh-TW/fullscreen)。沒有引數時,列印活動渲染器 |

162| `/ultraplan <prompt>` | 已移除。改用[計畫模式](/docs/zh-TW/permission-modes#analyze-before-you-edit-with-plan-mode)。以前將計畫任務發送到[雲端工作階段](/docs/zh-TW/claude-code-on-the-web)以在您的瀏覽器中檢查 |163| `/ultraplan <prompt>` | 已移除。改用 [plan mode](/docs/zh-TW/permission-modes#analyze-before-you-edit-with-plan-mode)。以前將計畫任務發送到[雲端工作階段](/docs/zh-TW/claude-code-on-the-web)以在您的瀏覽器中檢查 |

163| `/ultrareview [PR or branch]` | 在雲端沙箱中使用 [ultrareview](/docs/zh-TW/ultrareview) 運行深度、多代理程式碼檢查。傳遞 PR 參考以檢查該拉取請求,或分支或提交以變更比較基礎。首選調用是 `/code-review ultra`,`/ultrareview` 是別名。在 Pro 和 Max 上包括 3 次免費運行,然後需要[使用額度](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) |164| `/ultrareview [PR or branch]` | 在雲端沙箱中使用 [ultrareview](/docs/zh-TW/ultrareview) 運行深度、多 agent 程式碼審查。傳遞 PR 參考以檢查該 pull request,或傳遞基礎分支或提交以變更比較基礎。首選調用是 `/code-review ultra`,`/ultrareview` 是別名。在 Pro 和 Max 上包括 3 次免費運行,然後需要[用量點數](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) |

164| `/update-config [request]` | **[Skill](/docs/zh-TW/skills#bundled-skills)。** 描述設定變更,例如允許命令、設定環境變數或添加 [hook](/docs/zh-TW/hooks),Claude 編輯匹配的 [`settings.json`](/docs/zh-TW/settings) 檔案。對於主題和模型等選項,改用 `/config` |165| `/update-config [request]` | **[Skill](/docs/zh-TW/skills#bundled-skills)。** 描述設定變更,例如允許命令、設定環境變數或添加 [hook](/docs/zh-TW/hooks),Claude 編輯匹配的 [`settings.json`](/docs/zh-TW/settings) 檔案。對於主題和模型等選項,改用 `/config` |

165| `/upgrade` | 在瀏覽器中打開升級頁面以切換到更高的方案層級。當瀏覽器無法打開時,命令會顯示登入提示而不列印 URL |166| `/upgrade` | 在瀏覽器中打開升級頁面以切換到更高的方案層級。當瀏覽器無法打開時,命令會顯示登入提示而不列印 URL |

166| `/usage` | 顯示工作階段成本、方案使用限制和活動統計。在 Pro、Max、Team 或 Enterprise 方案上,包括[計入您的方案限制的內容細目](/docs/zh-TW/costs#plan-usage-breakdown)。`/cost` 和 `/stats` 是別名 |167| `/usage` | 顯示工作階段成本、方案用量上限和活動統計。在 Pro、Max、Team 或 Enterprise 方案上,包括[計入您的方案上限的內容細目](/docs/zh-TW/costs#plan-usage-breakdown)。`/cost` 和 `/stats` 是別名 |

167| `/usage-credits` | 設定使用額度,或在達到限制時向您的管理員請求。在瀏覽器中打開您的[使用額度計費設定](/docs/zh-TW/costs#add-usage-credits-to-your-subscription),除了沒有計費存取的 Team 和 Enterprise 成員改為從 CLI 向其管理員發送使用額度請求,在確認對話框中確認請求會通知其管理員。當沒有瀏覽器可以打開計費頁面時,例如通過 SSH,命令會列印要訪問的 URL;這需要 Claude Code v2.1.205 或更新版本,較早版本在這種情況下沒有顯示任何內容。以前 `/extra-usage` |168| `/usage-credits` | 在達到上限時設定用量點數,或向您的管理員請求。在瀏覽器中打開您的[用量點數計費設定](/docs/zh-TW/costs#add-usage-credits-to-your-subscription),但沒有計費存取權的 Team 和 Enterprise 成員則改為從 CLI 向其管理員發送用量點數請求,並先在對話框中確認該請求會通知其管理員。當沒有瀏覽器可以打開計費頁面時,例如通過 SSH,命令會改為列印要前往的 URL;這需要 Claude Code v2.1.205 或更新版本,較早版本在這種情況下不顯示任何內容。以前為 `/extra-usage` |

168| `/verify` | **[Skill](/docs/zh-TW/skills#bundled-skills)。** 通過建立您的專案應用程式、運行它並觀察結果來確認程式碼變更執行其應該執行的操作,而不是依賴測試或類型檢查。請參閱[運行和驗證您的應用程式](/docs/zh-TW/skills#run-and-verify-your-app) |169| `/verify` | **[Skill](/docs/zh-TW/skills#bundled-skills)。** 通過建置您的專案應用程式、運行它並觀察結果來確認程式碼變更執行其應該執行的操作,而不是依賴測試或類型檢查。請參閱[運行和驗證您的應用程式](/docs/zh-TW/skills#run-and-verify-your-app) |

169| `/vim` | 在 v2.1.92 中移除。要在 Vim 和 Normal 編輯模式之間切換,請使用 `/config` → Editor mode |170| `/vim` | 在 v2.1.92 中移除。要在 Vim 和 Normal 編輯模式之間切換,請使用 `/config` → Editor mode |

170| `/voice [hold\|tap\|off]` | 切換[語音聽寫](/docs/zh-TW/voice-dictation)或在特定模式下啟用它。需要 Claude.ai 帳戶 |171| `/voice [hold\|tap\|off]` | 切換[語音聽寫](/docs/zh-TW/voice-dictation)或在特定模式下啟用它。需要 Claude.ai 帳戶 |

171| `/web-setup` | 使用您的本地 `gh` CLI 認證連接您的 GitHub 帳戶以進行[雲端工作階段](/docs/zh-TW/web-quickstart#connect-from-your-terminal) |172| `/web-setup` | 使用您的本地 `gh` CLI 憑證連接您的 GitHub 帳戶以進行[雲端工作階段](/docs/zh-TW/web-quickstart#connect-from-your-terminal) |

172| `/workflow-authoring` | **[Skill](/docs/zh-TW/skills#bundled-skills)。** 載入編寫[動態工作流](/docs/zh-TW/workflows)指令碼的參考:指令碼 API、恢復行為、品質模式和已完成的範例。Claude 通常在編寫指令碼前自行載入它;在[手動編輯已保存的指令碼](/docs/zh-TW/workflows#edit-a-saved-script)前自己運行它。在啟用動態工作流時可用,需要 Claude Code v2.1.248 或更新版本 |173| `/workflow-authoring` | **[Skill](/docs/zh-TW/skills#bundled-skills)。** 載入編寫[動態工作流程](/docs/zh-TW/workflows)指令碼的參考:指令碼 API、恢復行為、品質模式和完整範例。Claude 通常在編寫指令碼前自行載入它;在[手動編輯已保存的指令碼](/docs/zh-TW/workflows#edit-a-saved-script)前自己運行它。在啟用動態工作流程時可用,需要 Claude Code v2.1.248 或更新版本 |

173| `/workflows` | 打開[工作流](/docs/zh-TW/workflows#watch-the-run)進度檢視以監視、暫停、恢復或保存運行中和已完成的工作流 |174| `/workflows` | 打開[工作流程](/docs/zh-TW/workflows#watch-the-run)進度檢視以監視、暫停、恢復或保存運行中和已完成的工作流程 |

174 175 

175<h2 id="how-the-command-menu-matches-what-you-type">176<h2 id="how-the-command-menu-matches-what-you-type">

176 命令選單如何匹配您輸入的內容177 命令選單如何匹配您輸入的內容

Details

70 70 

71* 訊息[超過大小上限](#limitations)。Claude Code 在傳送工作階段中拒絕它,在它離開之前。71* 訊息[超過大小上限](#limitations)。Claude Code 在傳送工作階段中拒絕它,在它離開之前。

72* 對此機器上工作階段的快速突發已達到[該工作階段的收件匣接受](#limitations)的內容。Claude Code 拒絕進一步訊息傳送至該工作階段。72* 對此機器上工作階段的快速突發已達到[該工作階段的收件匣接受](#limitations)的內容。Claude Code 拒絕進一步訊息傳送至該工作階段。

73* 超出此機器的工作階段[被列為無法接收跨工作階段訊息](#message-sessions-on-other-machines)。Claude Code 在傳送工作階段中拒絕該訊息,在它離開此機器之前。

73* 此機器上的回覆目標未通過安全檢查,例如符號連結目標。[拒絕傳送跨工作階段訊息](/docs/zh-TW/errors#refusing-to-send-a-cross-session-message)列出這些檢查。74* 此機器上的回覆目標未通過安全檢查,例如符號連結目標。[拒絕傳送跨工作階段訊息](/docs/zh-TW/errors#refusing-to-send-a-cross-session-message)列出這些檢查。

74 75 

75接收工作階段根據其自己的[入站控制](#control-inbound-messages)檢查每條到達的訊息,檢查以三種結果之一結束:76接收工作階段根據其自己的[入站控制](#control-inbound-messages)檢查每條到達的訊息,檢查以三種結果之一結束:


160 161 

161與您另一台機器上的工作階段開始對話需要 Claude Code v2.1.225 或更新版本以及出現在[列表](#see-which-sessions-claude-can-reach)中的目標。162與您另一台機器上的工作階段開始對話需要 Claude Code v2.1.225 或更新版本以及出現在[列表](#see-which-sessions-claude-can-reach)中的目標。

162 163 

163您可以訊息傳送至在[列表](#see-which-sessions-claude-can-reach)中顯示為 `offline` 的工作階段,其遠端控制連接已斷開的工作階段。傳送通過,但訊息僅在該工作階段的機器重新連接後到達。164工作階段在[列表](#see-which-sessions-claude-can-reach)中的行可能顯示某種狀況,該狀況會改變 Claude 訊息傳送至該工作階段時發生的情況:

165 

166* **`offline`**:該工作階段的 Remote Control 連接已斷開。訊息會傳送出去,但僅在該工作階段的機器重新連接後到達。

167* **`can't receive cross-session messages (off in that session)`**:該工作階段中[無法使用](#availability)訊息傳送功能,或其 [`crossSessionInbound`](/docs/zh-TW/settings-reference#crosssessioninbound) 值為 `refuse`。Claude Code 會在訊息離開此機器之前拒絕傳送至該工作階段的訊息。Claude 的 `SendMessage` 呼叫下的結果以 `Not sent` 開頭並說明原因。一旦在該工作階段中修正原因,之後的列表將不再顯示此狀況,Claude 即可訊息傳送至該工作階段。

164 168 

165容器內的工作階段和主機上的工作階段無法相互到達。同一容器內的兩個工作階段仍然可以訊息傳送至彼此,包括在[自託管執行器](/docs/zh-TW/self-hosted-environments)上。WSL 2 內的工作階段和同一台電腦上的原生 Windows 工作階段也無法相互到達。169容器內的工作階段和主機上的工作階段無法相互到達。同一容器內的兩個工作階段仍然可以訊息傳送至彼此,包括在[自託管執行器](/docs/zh-TW/self-hosted-environments)上。WSL 2 內的工作階段和同一台電腦上的原生 Windows 工作階段也無法相互到達。

166 170 


340* **`/list-agents` 有效但傳送未到達**:訊息傳送已啟用,某些較窄的東西適用:344* **`/list-agents` 有效但傳送未到達**:訊息傳送已啟用,某些較窄的東西適用:

341 * **拒絕規則**:[權限拒絕規則](#turn-off-cross-session-messaging)移除 `SendMessage` 和 `ListAgents` 工具。345 * **拒絕規則**:[權限拒絕規則](#turn-off-cross-session-messaging)移除 `SendMessage` 和 `ListAgents` 工具。

342 * **入站控制**:[接收工作階段的入站控制](#control-inbound-messages)可以保留或丟棄您傳送給它的內容。346 * **入站控制**:[接收工作階段的入站控制](#control-inbound-messages)可以保留或丟棄您傳送給它的內容。

343 * **雲端工作階段缺失**:雲端工作階段僅在此工作階段連接到[遠端控制](/docs/zh-TW/remote-control)時出現。347 * **雲端工作階段缺失**:雲端工作階段僅在此工作階段連接到 [Remote Control](/docs/zh-TW/remote-control) 時出現。

344 * **其他機器工作階段缺失**:您另一台機器上的工作階段僅在它執行[遠端控制](/docs/zh-TW/remote-control)並且此工作階段也連接時出現。348 * **其他機器工作階段缺失**:您另一台機器上的工作階段僅在它執行 [Remote Control](/docs/zh-TW/remote-control) 並且此工作階段也連接時出現。

345 * **其他機器工作階段 `offline`**:訊息傳送至列為 `offline` 的工作階段通過,但[僅在該工作階段的機器重新連接後到達](#message-sessions-on-other-machines)。349 * **其他機器工作階段 `offline`**:訊息傳送至列為 `offline` 的工作階段通過,但[僅在該工作階段的機器重新連接後到達](#message-sessions-on-other-machines)。

346 * **較舊的雲端或其他機器工作階段缺失**:Claude Code 首先讀取這些工作階段列表,並在有限數量的頁面後停止,因此 Claude 無法按名稱訊息傳送至超過它們的工作階段。350 * **雲端或其他機器工作階段 `can't receive cross-session messages`**:傳送至列出此狀況之工作階段的訊息[不會離開此機器](#message-sessions-on-other-machines),且 `SendMessage` 下的結果以 `Not sent` 開頭。

351 * **較舊的雲端或其他機器工作階段缺失**:Claude Code 從最新的開始讀取這些工作階段列表,並在有限數量的頁面後停止,因此 Claude 無法按名稱訊息傳送至超過它們的工作階段。

347 352 

348在具有訊息傳送的工作階段中,`/status` 也顯示 `Peer address` 行,帶有工作階段自己的收件匣地址,或 `unavailable` 和原因,當 Claude Code [無法設定收件匣](#the-sessions-inbox-socket)時。353在具有訊息傳送的工作階段中,`/status` 也顯示 `Peer address` 行,帶有工作階段自己的收件匣地址,或 `unavailable` 和原因,當 Claude Code [無法設定收件匣](#the-sessions-inbox-socket)時。

349 354 

Details

65 檢查 hooks65 檢查 hooks

66</h2>66</h2>

67 67 

68執行 `/hooks` 以列出為目前工作階段註冊的每個 hook,按事件分組。如果您定義的 hook 沒有出現,則它未被讀取:hooks 位於設定檔案中的 `"hooks"` 鍵下,而不是在獨立檔案中。68執行 `/hooks` 以列出為目前工作階段註冊的每個 hook,按事件分組。如果您定義的 hook 沒有出現,表示 Claude Code 未載入它。請檢查以下原因:

69 

70* hook 定義在獨立檔案中。hook 應位於[設定檔](/docs/zh-TW/settings#settings-files)中的 `"hooks"` 鍵下。

71* `matcher` 值是陣列而不是單一字串。當您啟動互動式工作階段時以及在 `claude doctor` 中,Claude Code 會將該項目列為無效設定。如果該陣列位於 `PreToolUse` 或 `PermissionRequest` 下,該檔案的其他 hook 也都不會載入。

69 72 

70如果 hook 出現但不觸發,通常是 matcher 的問題。檢查它是否有這些錯誤:73如果 hook 出現但不觸發,通常是 matcher 的問題。檢查它是否有這些錯誤:

71 74 

72* `matcher` 欄位是一個使用 `|` 匹配多個 tool 名稱的單一字串,例如 `"Edit|Write"`。`,` 分隔符是等效的,因此 `"Edit,Write"` 匹配相同的 tools。在 v2.1.191 之前,逗號會進入正規表達式評估,matcher 永遠不會匹配,因此如果您不在 v2.1.191 版本上,請使用 `|`。75* `matcher` 欄位是一個使用 `|` 匹配多個 tool 名稱的單一字串,例如 `"Edit|Write"`。`,` 分隔符是等效的,因此 `"Edit,Write"` 匹配相同的 tools。在 v2.1.191 之前,逗號會進入正規表達式評估,matcher 永遠不會匹配,因此如果您不在 v2.1.191 版本上,請使用 `|`。

73* 拼寫錯誤的 tool 名稱會產生一個不匹配任何內容的 matcher,因此 hook 會無聲地失敗。76* 拼寫錯誤的 tool 名稱會產生一個不匹配任何內容的 matcher,因此 hook 會無聲地失敗。

74* 陣列值是 schema 錯誤:Claude Code 顯示設定錯誤通知並拒絕整個使用者、專案或本機設定檔案,`claude doctor` 報告驗證失敗,該檔案中的任何 hook 都不會出現在 `/hooks` 中。在[受管設定](/docs/zh-TW/managed-settings)中,Claude Code 會從包含陣列的檔案中刪除整個 `hooks` 鍵,因此該檔案的 hooks 都不適用。檔案的其他設定仍然適用,`claude doctor` 會列出已刪除的鍵。

75 77 

76對 `settings.json` 的編輯在短暫的檔案穩定延遲後在執行中的工作階段中生效,即使您在工作階段開始後才建立檔案或專案的 `.claude/` 資料夾。您不需要重新啟動。在 v2.1.257 之前,Claude Code 沒有偵測到在工作階段開始後建立的 `.claude/` 資料夾中的編輯。78對 `settings.json` 的編輯在短暫的檔案穩定延遲後在執行中的工作階段中生效,即使您在工作階段開始後才建立檔案或專案的 `.claude/` 資料夾。您不需要重新啟動。在 v2.1.257 之前,Claude Code 沒有偵測到在工作階段開始後建立的 `.claude/` 資料夾中的編輯。

77 79 

Details

103 103 

104如果 apt 報告 `E: Unsupported file ./claude-desktop_*.deb given on commandline`,表示該模式與目前目錄中的 `.deb` 檔案不符。確認下載已完成,然後從包含該檔案的目錄再次執行命令。104如果 apt 報告 `E: Unsupported file ./claude-desktop_*.deb given on commandline`,表示該模式與目前目錄中的 `.deb` 檔案不符。確認下載已完成,然後從包含該檔案的目錄再次執行命令。

105 105 

106安裝 `.deb` 也會在 `/etc/apt/sources.list.d/claude-desktop.list` 註冊 Anthropic 的 apt 儲存庫,因此未來的更新會透過您系統的 [定期套件更新](#update) 到達。106`.deb` 包含 Anthropic 的簽署金鑰,並將其安裝至 `/usr/share/keyrings/claude-desktop-archive-keyring.asc`,因此您不需要自行下載金鑰。除非您已使用 `CLAUDE_DESKTOP_ADD_REPO` 關閉註冊,否則該套件也會在 `/etc/apt/sources.list.d/claude-desktop.list` 註冊 apt 儲存庫,因此未來的更新會透過您系統的 [定期套件更新](#update) 到達。

107 107 

108<h2 id="update">108<h2 id="update">

109 更新109 更新

env-vars.md +380 −375

Details

56 </Tab>56 </Tab>

57</Tabs>57</Tabs>

58 58 

59指派行在成功時不會列印任何內容,因此請在執行 `claude` 之前在同一個 shell 中列印變數來確認變數已設定:59指派行在成功時不會列印任何內容。若要確認變數已設定,請在同一個 shell 中將其列印出來:

60 60 

61<Tabs>61<Tabs>

62 <Tab title="macOS, Linux, WSL">62 <Tab title="macOS, Linux, WSL">


124 變數124 變數

125</h2>125</h2>

126 126 

127數值變數(例如逾時、權杖預算和重試次數)除了接受純數字外,還接受科學記號和數字分隔符拼寫,除非變數的列註明只接受純數字。例如,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` 以開啟,設定 `0` 或 `false` 以關閉,不分大小寫。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` | [AWS 上的 Claude Platform](/docs/zh-TW/claude-platform-on-aws) 的工作區 API 金鑰,在 AWS 主控台中產生。作為 `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` | 覆蓋 [AWS 上的 Claude Platform](/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` | [AWS 上的 Claude Platform](/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 工具搜尋](/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 的 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` | 跨區域推論設定檔前綴(`us`、`eu`、`apac`、`jp`、`au` 或 `global`)Claude Code 首先嘗試,而不是從 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 已傳送其需要的測試版標頭;在 Claude Code 新增原生支援之前,使用此變數選擇加入 [Anthropic API 測試版](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 或更新版本。[無效的請求標頭值](/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` | 模型 ID,作為自訂項目新增至 `/model` 選擇器。使用此選項可使非標準或閘道特定的模型可選,而無需替換內建別名。請參閱 [模型設定](/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 識別為 Fable 模型的 ID,用於第三方提供者上的 [自動模型回退](/docs/zh-TW/model-config#automatic-model-fallback)。請參閱 [模型設定](/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,以及 Plan Mode 啟用時 `opusplan` 使用的模型 ID。請參閱 [模型設定](/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,以及 Plan Mode 未啟用時 `opusplan` 使用的模型 ID。請參閱 [模型設定](/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` | [工作負載身份聯盟](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 驗證的持有人權杖,例如 Microsoft Entra 存取權杖。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`)。如果未設定 `ANTHROPIC_FOUNDRY_BASE_URL`,則為必需(請參閱 [Microsoft Foundry](/docs/zh-TW/microsoft-foundry)) |183| `ANTHROPIC_FOUNDRY_RESOURCE` | Microsoft Foundry 資源名稱(例如 `my-resource`)。若未設定 `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` | [工作負載身份聯盟](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 的 Agent Platform 端點 URL。用於自訂 Google Cloud 的 Agent Platform 端點或透過 [LLM 閘道](/docs/zh-TW/llm-gateway) 路由時。請參閱 [Google Cloud 的 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 的 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` | [工作負載身份聯盟](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation) 的工作區 ID。當您的聯盟規則範圍涵蓋多個工作區時設定此項,以便權杖交換知道要定位哪個工作區 |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 和 [AWS 上的 Claude Platform](/docs/zh-TW/claude-platform-on-aws) 以外的提供者上啟用。[串流監視狗](/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 命令的預設逾時(預設:120000 或 2 分鐘) |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 命令設定的最大逾時(預設:600000 或 10 分鐘)。有效的上限是此值和 `BASH_DEFAULT_TIMEOUT_MS` 中的較大值 |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` | [詳細測試版追蹤](/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` 以停用所有內建 [子代理](/docs/zh-TW/sub-agents) 類型,例如 Explore 和 Plan。僅適用於非互動模式(`-p` 旗標)。對於想要空白狀態的 SDK 使用者很有用。這也會移除 `general-purpose`,即當 Agent 工具呼叫省略 `subagent_type` 時 Claude Code 執行的子代理。此類呼叫隨後會失敗,並出現 [`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` | 子代理的停滯逾時(毫秒)。預設 `600000`(10 分鐘);如果您在串流監視狗開啟時提高 `CLAUDE_STREAM_IDLE_TIMEOUT_MS`,預設會隨之上升,如 [處理緩慢或停滯的 API 回應](/docs/zh-TW/agent-sdk/typescript#handle-slow-or-stalled-api-responses) 所述。計時器在每個串流進度事件上重設;如果在視窗內沒有進度到達,Claude Code 會中止子代理並向父代理報告停滯 |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)。適用於主要對話和子代理 |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` 以強制啟用長時間執行代理工作的自動背景化。啟用時,子代理在執行約兩分鐘後會移至背景。也在 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#what-your-screen-reader-hears) 中,Claude Code 在游標位於行首時等待多少毫秒,然後才寫入新的或變更的行。預設 `50`。設定 `0` 以立即寫入。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 Zoom 等螢幕放大鏡能追蹤游標位置 |

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 上的背景工作階段和 [代理檢視](/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` 以停止 Claude Code 在發佈新 [成品](/docs/zh-TW/artifacts#create-an-artifact) 時自動開啟瀏覽器 |219| `CLAUDE_CODE_ARTIFACT_AUTO_OPEN` | 設定為 `0` 可在發佈新 [artifact](/docs/zh-TW/artifacts#create-an-artifact) 時,阻止 Claude Code 自動開啟瀏覽器 |

220| `CLAUDE_CODE_ARTIFACT_COMMENTS` | 設定為 `0` 以停止 Claude 讀取和回覆 [成品上的評論](/docs/zh-TW/artifacts#collect-comments-on-an-artifact)。當 `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` [關閉成品](/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 的快取無論如何都不受影響。在某些直接連線設定中,Claude Code 在 [自動模式](/docs/zh-TW/permission-modes#eliminate-prompts-with-auto-mode) 分類器請求上保持區塊,即使您設定 `0`。在 [系統提示歸屬區塊](/docs/zh-TW/llm-gateway-protocol#system-prompt-attribution-block) 中,檢查此涵蓋哪些連線和認證。在 v2.1.181 之前,該區塊在自訂基礎 URL 和 Microsoft Foundry 連線上包含每個請求的權杖,因此在這些版本上,當您的 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 檢查仍在執行的 [背景子代理](/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` | 設定 [自動壓縮視窗](/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)、[AWS 上的 Claude Platform](/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` 以使非互動工作階段在每個轉向結束時向其主機報告閒置狀態,即使背景工作仍在執行。預設情況下,工作階段在背景工作(例如背景代理或 [工作流](/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 終端中設定 `0`,其中 [Backspace 刪除整個單詞](/docs/zh-TW/terminal-config#fix-backspace-deleting-a-whole-word-on-windows) |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 啟動子程序時由 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 視窗的模型上的工作階段保持在 200K 視窗,例如 [Sonnet 5.5](/docs/zh-TW/model-config#sonnet-5-5-and-sonnet-5-context-window) 和 Fable 模型;請參閱 [擴充上下文](/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` 以停用 [顧問工具](/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` 以關閉 [背景代理和代理檢視](/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` 切換。不適用於從 [代理檢視](/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` 以關閉 [成品](/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_AUTO_MEMORY` | 設定為 `1` 以停用 [自動記憶](/docs/zh-TW/memory#auto-memory)。設定為 `0` 以強制啟用自動記憶,即使 `--bare` 模式或 [`autoMemoryEnabled: false`](/docs/zh-TW/settings-reference#automemoryenabled) 會否則停用它。停用時,Claude 不會建立或載入自動記憶檔案 |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_BACKGROUND_TASKS` | 設定為 `1` 以停用所有背景工作功能,包括 Bash 和子代理工具上的 `run_in_background` 參數、自動背景化和 Ctrl+B 快捷鍵 |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_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 或更新版本 |250| `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` | 設定為 `1` 可停用所有背景任務功能,包括 Bash 與 subagent 工具上的 `run_in_background` 參數、自動背景化以及 Ctrl+B 快速鍵 |

251| `CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_GUARD` | 設定為 `1` 以跳過檢查 [Amazon Bedrock](/docs/zh-TW/amazon-bedrock) 串流回應是否攜帶 `application/vnd.amazon.eventstream` 內容類型。沒有此變數,當回應攜帶不同的內容類型時,Claude Code 會失敗請求,並出現命名該類型的錯誤,這意味著 [閘道或代理正在轉換回應](/docs/zh-TW/amazon-bedrock#streaming-errors-behind-a-gateway-or-proxy)。設定閘道以未修改地轉發 `Content-Type` 標頭和主體,而不是設定此變數。需要 Claude Code v2.1.208 或更新版本 |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_BG_EXIT_HANDOFF` | 設定為 `1` 以停止 [背景工作階段](/docs/zh-TW/agent-view) 的執行背景 shell 命令、動態工作流,以及從 v2.1.198 開始的背景子代理,當 [主管](/docs/zh-TW/agent-view#the-supervisor-process) 停止、重新啟動或更新該工作階段的程序時,而不是將它們交給工作階段的下一個程序。僅影響該交付:使用 `←` 或 [`/background`](/docs/zh-TW/agent-view#from-inside-a-session) 背景化工作階段仍會進行中的工作,`CLAUDE_DISABLE_ADOPT` 會關閉兩者。需要 Claude Code v2.1.196 或更新版本 |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_SHELL_PRESSURE_REAP` | 設定為 `1` 以停止 Claude Code 在記憶體壓力下終止 [背景 shell 命令](/docs/zh-TW/interactive-mode#background-bash-commands)。預設情況下,在 macOS 和 Linux 上,當作業系統報告關鍵記憶體壓力且工作階段已閒置 30 分鐘且沒有轉向或子代理執行時,Claude Code 會終止背景 shell。Windows 沒有記憶體壓力信號,因此此變數在那裡無效。需要 Claude Code v2.1.193 或更新版本 |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_BUNDLED_SKILLS` | 設定為 `1` 以停用 Claude Code 包含的 [技能](/docs/zh-TW/skills) 和工作流:捆綁的技能和工作流會完全移除,而內建命令(如 `/init`)保持可輸入但對模型隱藏。`/doctor` 保持可輸入,如內建命令;使用 `DISABLE_DOCTOR_COMMAND` 隱藏它。來自外掛程式、`.claude/skills/` 和 `.claude/commands/` 的技能不受影響。等同於 [`disableBundledSkills`](/docs/zh-TW/settings-reference#disablebundledskills) 設定 |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_CFC_PROMPT` | 設定為 `1` 以保持 [Chrome 中的 Claude](/docs/zh-TW/chrome) 瀏覽器工具可用,同時省略系統提示的 Chrome 部分和 `/claude-in-chrome` [捆綁技能](/docs/zh-TW/skills#bundled-skills)。適用於嵌入 Claude Code 並提供自己的瀏覽器指導的主機。需要 Claude Code v2.1.257 或更新版本 |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_CLAUDE_MDS` | 設定為 `1` 以防止將任何 CLAUDE.md 記憶體檔案載入上下文,包括使用者、專案和自動記憶檔案 |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_CRON` | 設定為 `1` 以停用 [排程工作](/docs/zh-TW/scheduled-tasks)。`/loop` 技能和 cron 工具變為不可用,任何已排程的工作停止觸發,包括已在工作階段中執行的工作 |257| `CLAUDE_CODE_DISABLE_CLAUDE_MDS` | 設定為 `1` 可防止將任何 CLAUDE.md 記憶檔案載入上下文,包括使用者、專案與自動記憶檔案 |

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

259| `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS` | 設定為 `1` 以從 API 請求中移除 Anthropic 特定的 `anthropic-beta` 請求標頭和測試版工具架構欄位(例如 `defer_loading` 和 `eager_input_streaming`)。當代理閘道拒絕請求並出現錯誤(例如「`anthropic-beta` 標頭的意外值」或「不允許額外輸入」)時使用此選項。標準欄位(`name`、`description`、`input_schema`、`cache_control`)會保留。[MCP 工具搜尋](/docs/zh-TW/mcp#scale-with-mcp-tool-search) 停用,所有 MCP 工具會預先載入,即使您設定 `ENABLE_TOOL_SEARCH`。在 Claude Code v2.1.227 或更新版本上,[受管設定](/docs/zh-TW/managed-settings) 可以保持工具搜尋開啟。[停用預發行功能](/docs/zh-TW/llm-gateway-protocol#disable-pre-release-capabilities) 涵蓋覆蓋適用的位置 |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_EXPLORE_PLAN_AGENTS` | 設定為 `1` 以停用內建 [Explore 和 Plan 子代理](/docs/zh-TW/sub-agents#built-in-subagents)。Claude 改用其搜尋工具或通用子代理進行探索,[計畫模式](/docs/zh-TW/permission-modes#analyze-before-you-edit-with-plan-mode) 直接讀取檔案,而不是啟動 Explore 和 Plan 代理。名為 `Explore` 或 `Plan` 的自訂子代理不受影響。若要在 Agent SDK 或非互動模式中移除每個內建子代理類型,請改用 `CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS`。需要 Claude Code v2.1.198 或更新版本 |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_FAST_MODE` | 設定為 `1` 以停用 [快速模式](/docs/zh-TW/fast-mode) |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_FEEDBACK_SURVEY` | 設定為 `1` 以停用「Claude 表現如何?」工作階段品質調查。當設定 `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) |262| `CLAUDE_CODE_DISABLE_FAST_MODE` | 設定為 `1` 可停用[快速模式](/docs/zh-TW/fast-mode) |

263| `CLAUDE_CODE_DISABLE_FILE_CHECKPOINTING` | 設定為 `1` 以停用檔案 [檢查點](/docs/zh-TW/checkpointing)。`/rewind` 命令將無法還原程式碼變更。覆蓋 [`fileCheckpointingEnabled`](/docs/zh-TW/settings-reference#filecheckpointingenabled) 設定 |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_GIT_INSTRUCTIONS` | 設定為 `1` 以移除內建提交和 PR 工作流指示以及 Claude 上下文中的 git 狀態快照。在使用您自己的 git 工作流技能時很有用。設定時優先於 [`includeGitInstructions`](/docs/zh-TW/settings-reference#includegitinstructions) 設定 |264| `CLAUDE_CODE_DISABLE_FILE_CHECKPOINTING` | 設定為 `1` 可停用檔案[檢查點功能](/docs/zh-TW/checkpointing)。`/rewind` 命令將無法還原程式碼變更。覆寫 [`fileCheckpointingEnabled`](/docs/zh-TW/settings-reference#filecheckpointingenabled) 設定 |

265| `CLAUDE_CODE_DISABLE_LEGACY_MODEL_REMAP` | 設定為 `1` 以防止在 Anthropic API 上自動重新對應 Opus 4.0 和 4.1 到目前的 Opus 版本。在您想要有意釘選較舊模型時使用。重新對應不在 Amazon Bedrock、Google Cloud 的 Agent Platform 或 Microsoft Foundry 上執行 |265| `CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS` | 設定為 `1` 可從 Claude 的上下文中移除內建的提交與 PR 工作流程指令,以及 git 狀態快照。適用於使用您自己的 git 工作流程 skill 的情況。設定後,優先於 [`includeGitInstructions`](/docs/zh-TW/settings-reference#includegitinstructions) 設定 |

266| `CLAUDE_CODE_DISABLE_MOUSE` | 設定為 `1` 以停用 [全螢幕呈現](/docs/zh-TW/fullscreen) 中的滑鼠追蹤。使用 `PgUp` 和 `PgDn` 的鍵盤捲軸仍然有效。使用此選項以保持終端的原生選擇複製行為 |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_MOUSE_CLICKS` | 設定為 `1` 以停用 [全螢幕呈現](/docs/zh-TW/fullscreen) 中的點擊、拖曳和懸停處理,同時保持滑鼠滾輪捲軸。當您想要滾輪捲軸在 Claude Code 內工作但不想要點擊來定位游標、展開工具輸出或開啟連結時使用此選項。設定兩者時,`CLAUDE_CODE_DISABLE_MOUSE` 優先。需要 Claude Code v2.1.195 或更新版本 |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_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 或更新版本 |268| `CLAUDE_CODE_DISABLE_MOUSE` | 設定為 `1` 可在[全螢幕轉譯](/docs/zh-TW/fullscreen)中停用滑鼠追蹤。使用 `PgUp` 與 `PgDn` 的鍵盤捲動仍可運作。使用此設定可保留終端機原生的選取即複製行為 |

269| `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),它有自己的選擇加入 |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_NONSTREAMING_FALLBACK` | 設定為 `1` 以停用串流請求在中途失敗時的非串流回退。串流錯誤會傳播到重試層。當代理或閘道導致回退產生重複工具執行時很有用 |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_NOTIFICATION_PRESENCE_CHECK` | 設定為 `1` 以在您在終端中輸入或聚焦時傳送 `PushNotification` 工具的桌面通知。預設情況下,當工具偵測到最近的鍵盤活動或終端焦點時,工具會跳過桌面通知和 [行動推播](/docs/zh-TW/remote-control#mobile-push-notifications)。此變數僅停用該本機檢查,因此伺服器在偵測到您活躍時仍可以抑制行動推播。需要 Claude Code v2.1.193 或更新版本 |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_OFFICIAL_MARKETPLACE_AUTOINSTALL` | 設定為 `1` 以停用官方外掛程式市場的自動註冊。Claude Code 在即將註冊市場時讀取變數,通常在機器的第一次互動啟動期間。如果變數在該點設定,Claude Code 會永久跳過註冊。稍後取消設定變數不會撤銷跳過。隨時執行 `claude plugin marketplace add anthropics/claude-plugins-official` 以註冊市場 |272| `CLAUDE_CODE_DISABLE_NONSTREAMING_FALLBACK` | 設定為 `1` 可在串流請求於串流中途失敗時停用非串流備援。串流錯誤會改為傳遞至重試層。適用於代理伺服器或閘道導致備援產生重複工具執行的情況 |

273| `CLAUDE_CODE_DISABLE_PERMISSION_PROMPT_NOTIFY_HOOKS` | 設定為 `1` 以停止 Claude Code 在 Claude Code 將它們傳送到 Agent SDK 的 `canUseTool` 回呼的工作階段中執行 [未回答權限請求的 `Notification` hooks](/docs/zh-TW/hooks#notification),這是 Claude Desktop 和 VS Code 擴充功能主機 Claude Code 的方式。在終端工作階段中無效。需要 Claude Code v2.1.233 或更新版本 |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_POLICY_SKILLS` | 設定為 `1` 以跳過從系統範圍受管技能目錄載入技能。對於不應載入操作員佈建技能的容器或 CI 工作階段很有用 |274| `CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL` | 設定為 `1` 可停用官方外掛市集的自動註冊。Claude Code 會在即將註冊市集時讀取此變數,通常是在電腦第一次互動式啟動期間。如果當時已設定此變數,Claude Code 會永久略過註冊。之後取消設定此變數並不會撤銷略過。隨時執行 `claude plugin marketplace add anthropics/claude-plugins-official` 即可註冊市集 |

275| `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 或更新版本 |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 或更新版本 |

276| `CLAUDE_CODE_DISABLE_SUBSTITUTION_RM_PROMPT` | 設定為 `1` 以關閉 [關鍵路徑](/docs/zh-TW/permission-modes#critical-paths) 檢查,用於遞迴 `rm`,其目標完全是命令替換的輸出,例如 `rm -rf "$(pwd)"`。其他關鍵路徑檢查保持執行。在啟動 Claude Code 的環境中設定它,因為 Claude Code 會忽略透過設定 `env` 區塊傳遞的副本。需要 Claude Code v2.1.281 或更新版本 |276| `CLAUDE_CODE_DISABLE_POLICY_SKILLS` | 設定為 `1` 可略過從全系統受管 skill 目錄載入 skill。適用於不應載入由營運人員佈建之 skill 的容器或 CI 工作階段 |

277| `CLAUDE_CODE_DISABLE_TERMINAL_TITLE` | 設定為 `1` 以停用基於對話上下文的自動終端標題更新。這也會跳過 [產生工作階段標題](/docs/zh-TW/sessions#name-your-sessions) 的背景小型/快速模型請求 |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_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` 同樣省略參數,因此兩個變數在那裡的行為相同 |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 或更新版本 |

279| `CLAUDE_CODE_DISABLE_UNKNOWN_MODEL_WINDOW_ENFORCEMENT` | 設定為 `1` 以在 Claude Code 不識別模型 ID 時跳過主動 [自動壓縮](/docs/zh-TW/costs#reduce-token-usage),例如 [LLM 閘道](/docs/zh-TW/llm-gateway) 別名。沒有此變數,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 或更新版本 |279| `CLAUDE_CODE_DISABLE_TERMINAL_TITLE` | 設定為 `1` 可停用根據對話上下文自動更新終端機標題。這也會略過用來[產生工作階段標題](/docs/zh-TW/sessions#name-your-sessions)的背景小型/快速模型請求 |

280| `CLAUDE_CODE_DISABLE_VIRTUAL_SCROLL` | 設定為 `1` 以停用 [全螢幕呈現](/docs/zh-TW/fullscreen) 中的虛擬捲軸並呈現文字記錄中的每條訊息。如果全螢幕模式中的捲軸顯示應該出現訊息的空白區域,請使用此選項 |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` 同樣會省略此參數,因此這兩個變數在那裡的行為相同 |

281| `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 或更新版本 |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 或更新版本 |

282| `CLAUDE_CODE_DISABLE_WORKFLOWS` | 設定為 `1` 以停用 [工作流](/docs/zh-TW/workflows#turn-workflows-off)。等同於 [`disableWorkflows`](/docs/zh-TW/settings-reference#disableworkflows) 設定 |282| `CLAUDE_CODE_DISABLE_VIRTUAL_SCROLL` | 設定為 `1` 可在[全螢幕轉譯](/docs/zh-TW/fullscreen)中停用虛擬捲動,並轉譯逐字稿中的每則訊息。如果在全螢幕模式中捲動時,原本應顯示訊息之處出現空白區域,請使用此設定 |

283| `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) |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 或更新版本 |

284| `CLAUDE_CODE_ENABLE_AUTO_MODE` | 為了與較舊版本相容而接受,無效。自動模式在每個提供者上預設可用,包括 Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 和已登入的 [Claude 應用程式閘道](/docs/zh-TW/claude-apps-gateway) 工作階段。在 v2.1.158 到 v2.1.206 中,設定此項為 `1` 是在這些提供者上提供 [自動模式](/docs/zh-TW/permission-modes#eliminate-prompts-with-auto-mode) 所必需的 |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 或更新版本 |

285| `CLAUDE_CODE_ENABLE_AWAY_SUMMARY` | 覆蓋 [工作階段摘要](/docs/zh-TW/interactive-mode#session-recap) 可用性。設定為 `0` 以強制關閉摘要,無論 `/config` 切換如何。設定為 `1` 以在 [`awaySummaryEnabled`](/docs/zh-TW/settings-reference#awaysummaryenabled) 為 `false` 時強制開啟摘要。優先於設定和 `/config` 切換 |285| `CLAUDE_CODE_DISABLE_WORKFLOWS` | 設定為 `1` 可停用[工作流程](/docs/zh-TW/workflows#turn-workflows-off)。等同於 [`disableWorkflows`](/docs/zh-TW/settings-reference#disableworkflows) 設定 |

286| `CLAUDE_CODE_ENABLE_BACKGROUND_PLUGIN_REFRESH` | 設定為 `1` 以在背景安裝完成後在 [非互動模式](/docs/zh-TW/headless) 中的轉向邊界重新整理外掛程式狀態。預設關閉,因為重新整理會在工作階段中途變更系統提示,這會使該轉向的 [提示快取](/docs/zh-TW/prompt-caching) 失效 |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) |

287| `CLAUDE_CODE_ENABLE_FEEDBACK_SURVEY_FOR_OTEL` | 設定為 `1` 以在 Anthropic 繫結的非必要流量被阻止時將「Claude 表現如何?」工作階段品質調查路由到您自己的 [OpenTelemetry 收集器](/docs/zh-TW/monitoring-usage)。調查評分僅作為 OTEL 事件發出到您配置的收集器。在此模式中,沒有調查資料傳送到 Anthropic。當設定 `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`、`DISABLE_TELEMETRY` 或 `DO_NOT_TRACK` 時適用,否則無效。`CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY` 和組織產品回饋政策優先 |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) |

288| `CLAUDE_CODE_ENABLE_FINE_GRAINED_TOOL_STREAMING` | 控制工具呼叫輸入是否在 API 產生時從 API 串流。關閉此選項時,大型工具輸入(例如長檔案寫入)僅在 Claude 完成產生後到達,這可能看起來像它掛起。在 Anthropic API 上預設啟用。在 Amazon Bedrock 和 Google Cloud 的 Agent Platform 上,在部署的容器支援的每個模型上啟用。設定為 `0` 以選擇退出。設定為 `1` 以在透過 `ANTHROPIC_BASE_URL`、`ANTHROPIC_VERTEX_BASE_URL` 或 `ANTHROPIC_BEDROCK_BASE_URL` 透過代理路由時強制開啟。在 Microsoft Foundry 和 [閘道](/docs/zh-TW/llm-gateway) 連線上預設關閉 |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` 切換開關 |

289| `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) |289| `CLAUDE_CODE_ENABLE_BACKGROUND_PLUGIN_REFRESH` | 設定為 `1` 可在[非互動模式](/docs/zh-TW/headless)中,於背景安裝完成後在回合邊界重新整理外掛狀態。預設為關閉,因為重新整理會在工作階段中途變更系統提示詞,導致該回合的[提示快取](/docs/zh-TW/prompt-caching)失效 |

290| `CLAUDE_CODE_ENABLE_OPUS_4_7_FAST_MODE` | 在 v2.1.142 中移除,當 [快速模式](/docs/zh-TW/fast-mode) 預設從 Opus 4.6 移至 Opus 4.7 時 |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` 與組織的產品意見回饋政策優先於此變數 |

291| `CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION` | 設定為 `false` 以關閉提示建議,即出現在提示輸入中的灰色預測。優先於 [`promptSuggestionEnabled`](/docs/zh-TW/settings-reference#promptsuggestionenabled) 設定,這是 `/config` 中的**提示建議**切換寫入的。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) |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)連線上預設為關閉 |

292| `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) |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) |

293| `CLAUDE_CODE_ENABLE_TELEMETRY` | 設定為 `1` 以啟用指標和日誌記錄的 OpenTelemetry 資料收集。在設定 OTel 匯出器之前需要。在您的 shell、使用者設定或受管設定中設定。在 [專案和本機設定](/docs/zh-TW/settings-reference#variables-claude-code-ignores-in-env) 中忽略。請參閱 [監視](/docs/zh-TW/monitoring-usage) |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_TODO_TOOLS` | 設定為 `1` 以在每個模型上取得工作追蹤工具。沒有它,Claude Code 預設僅在 [工作工具可用性](/docs/zh-TW/tools-reference#task-tool-availability) 下列出的模型上提供它們。`CLAUDE_CODE_ENABLE_TASKS` 仍選擇 Task 工具或 `TodoWrite`。需要 Claude Code v2.1.233 或更新版本 |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_EXIT_AFTER_STOP_DELAY` | 查詢迴圈變為閒置後自動退出前等待的時間(毫秒)。對於使用 SDK 模式的自動化工作流和指令碼很有用 |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_EXPERIMENTAL_AGENT_TEAMS` | 設定為 `1` 以啟用 [代理團隊](/docs/zh-TW/agent-teams)。代理團隊是實驗性的,預設停用 |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_EXTRA_BODY` | JSON 物件以合併到每個 API 請求主體的頂層。對於傳遞 Claude Code 不直接公開的提供者特定參數很有用。在 shell 中匯出的值也適用於您使用 `claude agents` 或 `--bg` 分派的 [背景工作階段](/docs/zh-TW/agent-view)。在 v2.1.206 之前,背景工作階段忽略 shell 匯出的值,並使用背景主管程序繼承的任何副本 |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_FILE_READ_MAX_OUTPUT_TOKENS` | 覆蓋檔案讀取的預設權杖限制。當您需要完整讀取較大的檔案時很有用 |298| `CLAUDE_CODE_EXIT_AFTER_STOP_DELAY` | 查詢迴圈進入閒置後,自動結束前要等待的時間(毫秒)。適用於使用 SDK 模式的自動化工作流程與指令碼 |

299| `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 上無效,其中它覆蓋的嵌套工作階段偵測被移除 |299| `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS` | 設定為 `1` 以啟用 [agent teams](/docs/zh-TW/agent-teams)。Agent teams 為實驗性功能,預設為停用 |

300| `CLAUDE_CODE_FORCE_STRIKETHROUGH` | 設定為 `1` 以在您的終端支援但未自動偵測時強制 `~~text~~` 的刪除線呈現,例如透過 SSH 而不轉發 `TERM_PROGRAM`。沒有此項,未偵測的終端會顯示文字刪除線標記而不是呈現為刪除線。需要 Claude Code v2.1.186 或更新版本 |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_FORCE_SYNC_OUTPUT` | 設定為 `1` 以在您的終端支援但未自動偵測時強制啟用 DEC 私人模式 2026 [同步輸出](https://gist.github.com/christianparpart/d8a62cc1ab659194337d73e399004036)。對於實現 BSU/ESU 但不回覆功能探測的模擬器(例如 Emacs `eat`)很有用。在 tmux 下無效。與 [全螢幕呈現](/docs/zh-TW/fullscreen) 的 `CLAUDE_CODE_NO_FLICKER` 不同,這不會變更呈現器 |301| `CLAUDE_CODE_FILE_READ_MAX_OUTPUT_TOKENS` | 覆寫檔案讀取的預設 token 上限。適用於需要完整讀取較大檔案時 |

302| `CLAUDE_CODE_FORK_SUBAGENT` | 控制 [fork 模式](/docs/zh-TW/sub-agents#turn-fork-mode-on-or-off),它讓 Claude 產生 [forked 子代理](/docs/zh-TW/sub-agents#fork-the-current-conversation) 本身,在互動工作階段中預設開啟。設定為 `1` 以在 `claude -p` 和 Agent SDK 中也開啟它,或設定為 `0` 以在每種工作階段中關閉它。無論 fork 模式是否開啟,您都可以執行 `/subtask`。互動預設需要 Claude Code v2.1.232 或更新版本;在較早的版本上,設定變數為 `1` 以開啟 fork 模式 |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_FORWARD_SUBAGENT_TEXT` | 設定為 `1` 以在 `claude -p --output-format stream-json` 輸出中發出 [子代理](/docs/zh-TW/sub-agents) 文字和思考區塊,與 [`--forward-subagent-text`](/docs/zh-TW/cli-reference#cli-flags) 旗標相同的行為。當工具呼叫 `claude` 的工具無法自己傳遞旗標時使用變數。與旗標不同,旗標在非互動模式下使用 stream-json 輸出時以錯誤退出,變數在那裡被忽略,以便嵌套呼叫在全程設定時繼續工作。需要 Claude Code v2.1.211 或更新版本 |303| `CLAUDE_CODE_FORCE_STRIKETHROUGH` | 設定為 `1`,可在終端機支援但未被自動偵測到時(例如透過 SSH 且未轉送 `TERM_PROGRAM`),強制將 Claude 回應中的 `~~text~~` 以刪除線呈現。若未設定,未偵測到的終端機會顯示字面上的 `~~` 標記,而不是將文字呈現為刪除線。需要 Claude Code v2.1.186 或更新版本 |

304| `CLAUDE_CODE_GATEWAY_HINT_HEADERS` | 設定為 `1` 以在自訂代理或第三方提供者(例如 Amazon Bedrock 或 AWS 上的 Claude Platform)上傳送 [閘道提示標頭](/docs/zh-TW/llm-gateway-protocol#gateway-hint-headers)(例如 `x-claude-code-request-class` 和 `x-claude-code-compaction`)。設定為 `0` 以停止在每個連線上傳送它們,包括 Claude Code 預設傳送的直接 Anthropic API 連線。需要 Claude Code v2.1.273 或更新版本 |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_GATEWAY_MODEL_DISCOVERY_TIMEOUT_MS` | [閘道模型探索](/docs/zh-TW/llm-gateway-protocol#model-discovery) 請求的逾時(毫秒),`CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY` 開啟(預設:`3000`)。當您的閘道需要超過三秒來回答啟動時的 `/v1/models` 時提高此值。僅接受純數字;`0`、負值和其他拼寫保持預設。需要 Claude Code v2.1.269 或更新版本 |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_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) |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_GLOB_HIDDEN` | 設定為 `false` 以在 Claude 呼叫 [Glob 工具](/docs/zh-TW/tools-reference#glob-tool-behavior) 時從結果中排除隱藏檔案。預設包含。不影響 `@` 檔案自動完成、`ls`、Grep 或 Read |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_GLOB_NO_IGNORE` | 設定為 `false` 以使 [Glob 工具](/docs/zh-TW/tools-reference#glob-tool-behavior) 尊重 `.gitignore` 模式。預設情況下,Glob 傳回所有符合的檔案,包括 gitignored 的檔案。不影響 `@` 檔案自動完成,它有自己的 [`respectGitignore` 設定](/docs/zh-TW/settings-reference#respectgitignore) |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_GLOB_TIMEOUT_SECONDS` | Glob 工具檔案探索的逾時(秒)。在大多數平台上預設為 20 秒,在 WSL 上為 60 秒 |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_GOAL_CHECKIN_MINUTES` | 背景工作可以讓活躍目標等待多少分鐘,然後 Claude Code [要求 Claude 檢查它](/docs/zh-TW/goal#background-work-defers-evaluation)。預設 `30`。設定 `0` 以關閉檢查。以純數字給出整分鐘,最多 `10080`,即一週。Claude Code 將任何其他值視為未設定並使用預設值。需要 Claude Code v2.1.234 或更新版本 |310| `CLAUDE_CODE_GLOB_HIDDEN` | 設定為 `false`,可在 Claude 叫用 [Glob 工具](/docs/zh-TW/tools-reference#glob-tool-behavior)時將 dotfile 排除於結果之外。預設會包含。不影響 `@` 檔案自動完成、`ls`、Grep 或 Read |

311| `CLAUDE_CODE_HIDE_CWD` | 設定為 `1` 以在啟動標誌中隱藏工作目錄。對於螢幕共享或錄製很有用,其中路徑會公開您的 OS 使用者名稱 |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_IDE_HOST_OVERRIDE` | 覆蓋用於連線到 IDE 擴充功能的主機位址。預設情況下,Claude Code 自動偵測正確的位址,包括 WSL 到 Windows 路由 |312| `CLAUDE_CODE_GLOB_TIMEOUT_SECONDS` | Glob 工具檔案探索的逾時時間(秒)。在大多數平台上預設為 20 秒,在 WSL 上為 60 秒 |

313| `CLAUDE_CODE_IDE_SKIP_AUTO_INSTALL` | 設定為 `1` 以跳過 IDE 擴充功能的自動安裝。等同於將 [`autoInstallIdeExtension`](/docs/zh-TW/settings-reference#autoinstallideextension) 設定為 `false` |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_IDE_SKIP_VALID_CHECK` | 設定為 `1` 以跳過連線期間 IDE 鎖定檔案項目的驗證。當自動連線無法找到您的 IDE 儘管它執行時使用 |314| `CLAUDE_CODE_HIDE_CWD` | 設定為 `1` 可在啟動 logo 中隱藏工作目錄。適用於路徑會暴露您作業系統使用者名稱的螢幕分享或錄影情境 |

315| `CLAUDE_CODE_MAX_CONCURRENT_SUBAGENTS` | 在 Agent 工具拒絕產生另一個之前,一個工作階段中可以執行多少 [子代理](/docs/zh-TW/sub-agents#concurrent-subagent-limit)(預設:20)。接受純數字的正整數;任何其他值都被忽略,因此變數可以調整上限但無法停用它。需要 Claude Code v2.1.217 或更新版本 |315| `CLAUDE_CODE_IDE_HOST_OVERRIDE` | 覆寫用來連線至 IDE 擴充功能的主機位址。預設情況下,Claude Code 會自動偵測正確的位址,包括 WSL 至 Windows 的路由 |

316| `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` 路由到其上下文視窗與其名稱的內建大小不符的模型時使用此選項 |316| `CLAUDE_CODE_IDE_SKIP_AUTO_INSTALL` | 設定為 `1` 以略過 IDE 擴充功能的自動安裝。相當於將 [`autoInstallIdeExtension`](/docs/zh-TW/settings-reference#autoinstallideextension) 設定為 `false` |

317| `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 或更新版本 |317| `CLAUDE_CODE_IDE_SKIP_VALID_CHECK` | 設定為 `1` 以在連線時略過 IDE lockfile 項目的驗證。當 IDE 正在執行但自動連線仍找不到它時使用 |

318| `CLAUDE_CODE_MAX_OUTPUT_TOKENS` | 為大多數請求設定最大輸出權杖數。預設值和上限因模型而異;請參閱 [最大輸出權杖](https://platform.claude.com/docs/en/about-claude/models/overview#latest-models-comparison)。Claude Code 為不識別的模型 ID(例如閘道特定名稱)預設為 32000,並將高於模型上限的值降低到上限。增加此值會減少 [自動壓縮](/docs/zh-TW/costs#reduce-token-usage) 觸發前可用的有效上下文視窗 |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_RETRIES` | 覆蓋重試失敗 API 請求的次數(預設:10)。從 v2.1.186 開始上限為 15;從 v2.1.199 開始,`CLAUDE_CODE_RETRY_WATCHDOG` 提高預設值並移除上限。對於需要等待更長中斷的無人值守工作階段,請改設定 `CLAUDE_CODE_RETRY_WATCHDOG` |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_SUBAGENTS_PER_SESSION` | 在 v2.1.224 中移除,現在是無操作。先前上限了 Claude 可以在一個工作階段中使用 Agent 工具產生的 [子代理](/docs/zh-TW/sub-agents) 總數(預設:200);超過上限的產生失敗,並出現 `Subagent spawn limit reached`。[並行子代理限制](/docs/zh-TW/sub-agents#concurrent-subagent-limit) 和 [深度限制](/docs/zh-TW/sub-agents#let-subagents-spawn-their-own-subagents) 仍然適用 |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_SUBAGENT_SPAWN_DEPTH` | 主要對話下方允許的 [子代理層](/docs/zh-TW/sub-agents#let-subagents-spawn-their-own-subagents) 數(預設:3)。在預設值,子代理可以產生自己的子代理,第三層的子代理無法進一步產生;設定 `1` 以關閉嵌套。在 v2.1.217 到 v2.1.218 中,預設為 1,因此子代理無法產生自己的,除非您提高限制;v2.1.219 將預設提高到 3。接受純數字的正整數;任何其他值都被忽略,因此限制可以調整但無法移除。需要 Claude Code v2.1.217 或更新版本 |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_TOOL_USE_CONCURRENCY` | 可以並行執行的唯讀工具和子代理的最大數量(預設:10)。較高的值會增加並行性,但消耗更多資源 |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_TURNS` | 當未傳遞明確限制時,上限代理轉向數。等同於傳遞 [`--max-turns`](/docs/zh-TW/cli-reference#cli-flags),當兩者都設定時優先。不是正整數的值在啟動時被拒絕並出現錯誤,而不是視為無上限 |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_WEB_SEARCHES_PER_SESSION` | 一個工作階段可以進行的 [WebSearch](/docs/zh-TW/tools-reference#websearch-tool-behavior) 呼叫總數的上限(預設:200)。當 Claude 達到上限時,進一步的 WebSearch 呼叫傳回通知,告訴它繼續使用已收集的資訊。接受沒有上限的正整數。任何其他值都被忽略,預設適用,因此上限可以提高但無法關閉。需要 Claude Code v2.1.212 或更新版本 |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_MCP_ALLOWLIST_ENV` | 設定為 `1` 以使用僅安全基線環境加上伺服器配置的 `env` 產生 stdio MCP 伺服器,而不是繼承您的 shell 環境 |325| `CLAUDE_CODE_MAX_TOOL_USE_CONCURRENCY` | 可平行執行的唯讀工具與 subagent 的最大數量(預設:10)。較高的值會提高平行度,但會消耗更多資源 |

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

327| `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 或更新版本 |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_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` 中的每個伺服器 `timeout` 至少 1000 會將該伺服器的閒置視窗提高到至少 `timeout` 值。不適用於 IDE 伺服器或 SDK 進程內伺服器。需要 Claude Code v2.1.187 或更新版本。在 v2.1.203 之前,stdio 伺服器免除閒置逾時 |328| `CLAUDE_CODE_MCP_ALLOWLIST_ENV` | 設定為 `1`,以僅含安全基準環境加上伺服器所設定之 `env` 的方式產生 stdio MCP 伺服器,而不是繼承您的 shell 環境 |

329| `CLAUDE_CODE_MESSAGING_SOCKET` | 由 Claude Code 設定,不由您設定:在繫結 [收件匣通訊端](/docs/zh-TW/cross-session-messaging#the-sessions-inbox-socket) 的工作階段中,Claude Code 在繫結通訊端時將該通訊端的路徑匯出到 hooks 和 Bash 命令。在以啟用傳訊開始的工作階段中,Claude Code 在任何 hook 執行之前繫結通訊端。機器上的其他工作階段將訊息傳遞到此路徑。每個工作階段匯出自己的通訊端,而不是從父工作階段繼承的通訊端,到達它的訊息會透過工作階段的 [入站控制](/docs/zh-TW/cross-session-messaging#control-inbound-messages) 進行。設定 `env` 區塊無法設定它。需要 Claude Code v2.1.224 或更新版本 |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_MESSAGING_TOKEN` | 由 Claude Code 設定,不由您設定:在繫結 [收件匣通訊端](/docs/zh-TW/cross-session-messaging#the-sessions-inbox-socket) 的工作階段中,Claude Code 將此每個工作階段權杖匯出到 hooks 和 Bash 命令,與 `CLAUDE_CODE_MESSAGING_SOCKET` 一起。發佈到通訊端的指令碼可以傳送 `{"type":"auth","token":"<token>"}` 作為其第一行以證明它屬於工作階段。在原生 Windows 上,Claude Code 需要此行並關閉任何未使用有效行開啟的連線。[自有子規則](/docs/zh-TW/cross-session-messaging#the-sessions-inbox-socket) 說明 Claude Code 何時查詢權杖。每個工作階段匯出自己的權杖,絕不是從父工作階段繼承的。設定 `env` 區塊無法設定它。需要 Claude Code v2.1.228 或更新版本 |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_NATIVE_CURSOR` | 設定為 `1` 以在輸入插入符號處顯示終端自己的游標,而不是繪製的區塊。游標尊重終端的閃爍、形狀和焦點設定 |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_NEW_INIT` | 設定為 `1` 以使 `/init` 執行互動設定流程。流程會詢問要產生哪些檔案,包括 CLAUDE.md、技能和 hooks,然後再探索程式碼庫並寫入它們。沒有此變數,`/init` 會自動產生 CLAUDE.md,而不提示 |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_NONBLOCKING_STDOUT` | 設定為 `1` 以透過第二個非阻塞檔案描述符寫入終端輸出,因此停止讀取的終端(例如暫停的 tmux 控制模式窗格或停滯的 SSH 連線)無法在工作階段中途凍結 Claude Code。在 macOS、Linux 和 WSL 上當 stdout 是終端時適用。需要 Claude Code v2.1.261 或更新版本 |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_NO_FLICKER` | 設定為 `1` 以啟用 [全螢幕呈現](/docs/zh-TW/fullscreen),一項減少閃爍並在長對話中保持記憶體平坦的研究預覽。覆蓋 [`tui`](/docs/zh-TW/settings-reference#tui) 設定;您也可以使用 `/tui fullscreen` 切換 |334| `CLAUDE_CODE_NATIVE_CURSOR` | 設定為 `1`,在輸入插入點顯示終端機本身的游標,而非繪製的區塊。游標會遵循終端機的閃爍、形狀與焦點設定 |

335| `CLAUDE_CODE_OAUTH_REFRESH_TOKEN` | Claude.ai 驗證的 OAuth 重新整理權杖。設定時,`claude auth login` 直接交換此權杖,而不是開啟瀏覽器。需要 `CLAUDE_CODE_OAUTH_SCOPES`。對於在自動化環境中佈建驗證很有用 |335| `CLAUDE_CODE_NEW_INIT` | 設定為 `1` 可讓 `/init` 執行互動式設定流程。此流程會在探索程式碼庫並寫入檔案之前,詢問要產生哪些檔案,包括 CLAUDE.md、skill 與 hook。若未設定此變數,`/init` 會自動產生 CLAUDE.md,而不會提示詢問 |

336| `CLAUDE_CODE_OAUTH_SCOPES` | 重新整理權杖發出時使用的空格分隔 OAuth 範圍,例如 `"user:profile user:inference user:sessions:claude_code"`。設定 `CLAUDE_CODE_OAUTH_REFRESH_TOKEN` 時為必需 |336| `CLAUDE_CODE_NONBLOCKING_STDOUT` | 設定為 `1`,透過第二個非阻塞檔案描述元寫入終端機輸出,使停止讀取的終端機(例如暫停的 tmux control-mode 窗格或停滯的 SSH 連線)無法讓 Claude Code 在工作階段中途凍結。當 stdout 為終端機時,適用於 macOS、Linux 與 WSL。需要 Claude Code v2.1.261 或更新版本 |

337| `CLAUDE_CODE_OAUTH_TOKEN` | claude.ai 驗證的 OAuth 存取權杖。`/login` 對 SDK 和自動化環境的替代方案。優先於鑰匙圈儲存的認證。使用 [`claude setup-token`](/docs/zh-TW/authentication#generate-a-long-lived-token) 產生一個。除非您執行 [`/login`](/docs/zh-TW/authentication#authentication-precedence),Claude Code 會在整個工作階段中使用您設定的權杖。若要替換過期的權杖,產生新的並重新啟動 |337| `CLAUDE_CODE_NO_FLICKER` | 設定為 `1` 以啟用[全螢幕呈現](/docs/zh-TW/fullscreen),這是一項研究預覽功能,可減少閃爍並在長對話中維持穩定的記憶體用量。覆寫 [`tui`](/docs/zh-TW/settings-reference#tui) 設定;您也可以使用 `/tui fullscreen` 切換 |

338| `CLAUDE_CODE_OPUS_4_6_FAST_MODE_OVERRIDE` | 在 v2.1.160 中移除,現在是無操作。先前將 [快速模式](/docs/zh-TW/fast-mode) 釘選到 Claude Opus 4.6,而不是目前的預設。Opus 4.6 不再支援快速模式 |338| `CLAUDE_CODE_OAUTH_REFRESH_TOKEN` | 用於 Claude.ai 身分驗證的 OAuth refresh token。設定後,`claude auth login` 會直接交換此 token,而不開啟瀏覽器。需要 `CLAUDE_CODE_OAUTH_SCOPES`。適用於在自動化環境中佈建身分驗證 |

339| `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) |339| `CLAUDE_CODE_OAUTH_SCOPES` | 以空格分隔、發出 refresh token 時所使用的 OAuth 範圍,例如 `"user:profile user:inference user:sessions:claude_code"`。設定 `CLAUDE_CODE_OAUTH_REFRESH_TOKEN` 時為必要 |

340| `CLAUDE_CODE_OTEL_DIAG_STDERR` | 設定為 `1` 以將 OpenTelemetry 匯出器診斷錯誤寫入 stderr。預設情況下,這些錯誤僅與 `--debug` 一起出現,因此配置不當的匯出器(例如 Prometheus 埠衝突)會以其他方式無聲地失敗。需要 Claude Code v2.1.179 或更新版本。請參閱 [監視](/docs/zh-TW/monitoring-usage) |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_OTEL_FLUSH_TIMEOUT_MS` | 排清待處理 OpenTelemetry 跨度的逾時(毫秒)(預設:5000)。請參閱 [監視](/docs/zh-TW/monitoring-usage) |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_OTEL_HEADERS_HELPER_DEBOUNCE_MS` | 重新整理動態 OpenTelemetry 標頭的間隔(毫秒)(預設:1740000 / 29 分鐘)。請參閱 [動態標頭](/docs/zh-TW/monitoring-usage#dynamic-headers) |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_OTEL_SHUTDOWN_TIMEOUT_MS` | OpenTelemetry 匯出器在關閉時完成的逾時(毫秒)(預設:2000)。如果指標在退出時被丟棄,請增加。請參閱 [監視](/docs/zh-TW/monitoring-usage) |343| `CLAUDE_CODE_OTEL_DIAG_STDERR` | 設定為 `1` 以將 OpenTelemetry 匯出器的診斷錯誤寫入 stderr。預設情況下,這些錯誤只會在使用 `--debug` 時出現,因此設定錯誤的匯出器(例如 Prometheus 連接埠衝突)否則會無聲無息地失敗。需要 Claude Code v2.1.179 或更新版本。請參閱[監控](/docs/zh-TW/monitoring-usage) |

344| `CLAUDE_CODE_PACKAGE_MANAGER_AUTO_UPDATE` | 設定為 `1` 以讓 Claude Code 在新版本可用時在背景執行您的套件管理器升級命令。適用於 Homebrew 和 WinGet 安裝。其他套件管理器繼續顯示升級命令而不執行它。請參閱 [自動更新](/docs/zh-TW/setup#auto-updates) |344| `CLAUDE_CODE_OTEL_FLUSH_TIMEOUT_MS` | 排清擱置中 OpenTelemetry span 的逾時時間(毫秒)(預設:5000)。請參閱[監控](/docs/zh-TW/monitoring-usage) |

345| `CLAUDE_CODE_PERFORCE_MODE` | 設定為 `1` 以啟用 Perforce 感知寫入保護。設定時,如果目標檔案缺少擁有者寫入位元(Perforce 在同步檔案上清除,直到 `p4 edit` 開啟它們),Edit、Write 和 NotebookEdit 會失敗並出現 `p4 edit <file>` 提示。這可防止 Claude Code 繞過 Perforce 變更追蹤 |345| `CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS` | 重新整理動態 OpenTelemetry 標頭的間隔(毫秒)(預設:1740000 / 29 分鐘)。請參閱[動態標頭](/docs/zh-TW/monitoring-usage#dynamic-headers) |

346| `CLAUDE_CODE_PLUGIN_CACHE_DIR` | 覆蓋外掛程式根目錄。儘管名稱如此,這會設定父目錄,而不是快取本身:市場和外掛程式快取位於此路徑下的子目錄中。預設為 `~/.claude/plugins` |346| `CLAUDE_CODE_OTEL_SHUTDOWN_TIMEOUT_MS` | OpenTelemetry 匯出器在關閉時完成作業的逾時時間(毫秒)(預設:2000)。若指標在結束時遭到捨棄,請調高此值。請參閱[監控](/docs/zh-TW/monitoring-usage) |

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

348| `CLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MS` | 複製或重新整理外掛程式市場的逾時(毫秒)(預設:120000)。對於大型儲存庫或緩慢網路連線,增加此值。請參閱 [Git 複製逾時](/docs/zh-TW/plugins/troubleshooting#git-clone-timed-out-after-120s) |348| `CLAUDE_CODE_PERFORCE_MODE` | 設定為 `1` 以啟用感知 Perforce 的寫入保護。設定後,若目標檔案缺少擁有者寫入位元(Perforce 會在同步的檔案上清除此位元,直到 `p4 edit` 開啟它們為止),Edit、Write 與 NotebookEdit 會失敗並顯示 `p4 edit <file>` 提示。這可防止 Claude Code 繞過 Perforce 的變更追蹤 |

349| `CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE` | 設定為 `1` 以在市場重新整理無法到達或驗證遠端時跳過重新複製嘗試,並繼續使用現有市場簽出。在無法重新複製會以相同方式失敗的離線或隔離環境中很有用。請參閱 [市場更新在離線環境中持續失敗](/docs/zh-TW/plugins/troubleshooting#marketplace-updates-keep-failing-offline) |349| `CLAUDE_CODE_PLUGIN_CACHE_DIR` | 覆寫外掛根目錄。儘管名稱如此,此變數設定的是父目錄,而非快取本身:市集與外掛快取位於此路徑下的子目錄中。預設為 `~/.claude/plugins` |

350| `CLAUDE_CODE_PLUGIN_PREFER_HTTPS` | 設定為 `1` 以透過 HTTPS 而不是 SSH 複製 GitHub `owner/repo` 速記來源。適用於外掛程式安裝和更新,以及 `/plugin marketplace add` 和 `update`。在 CI 執行器、容器或任何沒有為 `github.com` 配置 SSH 金鑰的環境中很有用 |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) |

351| `CLAUDE_CODE_PLUGIN_SEED_DIR` | 一個或多個唯讀外掛程式種子目錄的路徑,在 Unix 上用 `:` 分隔,在 Windows 上用 `;`。使用此選項將預先填充的外掛程式目錄捆綁到容器映像中。Claude Code 在啟動時從這些目錄註冊市場,並使用預先快取的外掛程式而不重新複製。請參閱 [為容器預先填充外掛程式](/docs/zh-TW/plugins/org#seed-containers-and-ci) |351| `CLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MS` | clone 或重新整理外掛市集的逾時時間(毫秒)(預設:120000)。對於大型儲存庫或緩慢的網路連線,請調高此值。請參閱 [Git clone 逾時](/docs/zh-TW/plugins/troubleshooting#git-clone-timed-out-after-120s) |

352| `CLAUDE_CODE_POWERSHELL_RESPECT_EXECUTION_POLICY` | 設定為 `1` 以停止 Claude Code 在為工具呼叫、hooks 和狀態列命令產生 PowerShell 時傳遞 `-ExecutionPolicy Bypass`,並改為尊重機器的有效執行政策。預設情況下,Claude Code 在程序範圍內繞過執行政策,以便 `.ps1` 指令碼和模組匯入在預設限制的 Windows 安裝上工作。程序範圍繞過無論此設定如何都絕不會覆蓋 Group Policy `MachinePolicy` 或 `UserPolicy` |352| `CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE` | 設定為 `1`,當市集重新整理無法連線至遠端或無法向遠端進行身分驗證時,略過重新 clone 的嘗試,並繼續使用現有的市集 checkout。適用於離線或實體隔離環境,在這些環境中重新 clone 也會以相同方式失敗。請參閱[市集更新在離線環境中失敗](/docs/zh-TW/plugins/troubleshooting#marketplace-updates-keep-failing-offline) |

353| `CLAUDE_CODE_PRINT_BG_WAIT_CEILING_MS` | 在 [非互動模式](/docs/zh-TW/headless#background-tasks-at-exit) 中使用 `-p` 旗標在最終轉向後等待背景子代理和工作流的閒置等待上限(毫秒)。每次 Claude 採取轉向來處理背景結果時,閒置等待重新開始。預設:`600000` 或 10 分鐘。當閒置等待達到上限時,Claude Code 停止等待剩餘的背景工作並退出。設定為 `0` 以無限期等待。此上限與適用於純背景 shell 的五秒寬限期分開。需要 Claude Code v2.1.182 或更新版本 |353| `CLAUDE_CODE_PLUGIN_PREFER_HTTPS` | 設定為 `1` 以透過 HTTPS 而非 SSH clone GitHub `owner/repo` 簡寫來源。適用於外掛的安裝與更新,以及 `/plugin marketplace add` 與 `update`。適用於 CI runner、容器,或任何未針對 `github.com` 設定 SSH 金鑰的環境 |

354| `CLAUDE_CODE_PROCESS_WRAPPER` | 透過公司啟動器啟動 Claude Code 從其自己的二進位檔啟動的程序,例如主機 [代理檢視](/docs/zh-TW/agent-view) 工作階段的背景服務,給定為 argv 前綴,如 `/opt/corp/launcher`。在使用者或 [受管設定](/docs/zh-TW/managed-settings) 的 `env` 區塊中設定它,而不是作為 shell 匯出,以便分離的背景服務繼承它;專案和本機設定無法設定它。等同於 [`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 或更新版本 |354| `CLAUDE_CODE_PLUGIN_SEED_DIR` | 一或多個唯讀外掛種子目錄的路徑,在 Unix 上以 `:` 分隔,在 Windows 上以 `;` 分隔。使用此變數可將預先填入的外掛目錄打包進容器映像。Claude Code 會在啟動時從這些目錄註冊市集,並使用預先快取的外掛而無需重新 clone。請參閱[為容器預先填入外掛](/docs/zh-TW/plugins/org#seed-containers-and-ci) |

355| `CLAUDE_CODE_PROJECT_DIR_NAME` | 與 `CLAUDE_CONFIG_DIR` 一起設定以選擇 `projects/` 目錄名稱,Claude Code 在其下儲存該工作階段的文字記錄和自動記憶,代替從工作目錄路徑衍生的名稱。例如,使用 `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 或更新版本 |355| `CLAUDE_CODE_POWERSHELL_RESPECT_EXECUTION_POLICY` | 設定為 `1`,讓 Claude Code 在為工具呼叫、hook 與狀態列命令產生 PowerShell 時不再傳遞 `-ExecutionPolicy Bypass`,而是遵循機器的有效執行原則。預設情況下,Claude Code 會在程序範圍內略過執行原則,讓 `.ps1` 指令碼與模組匯入能在預設為 Restricted 的 Windows 安裝上運作。無論此設定為何,程序範圍的略過都絕不會覆寫群組原則 `MachinePolicy` 或 `UserPolicy` |

356| `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 或更新版本 |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 或更新版本 |

357| `CLAUDE_CODE_PROPAGATE_TRACEPARENT` | 設定為 `1` 以在 `ANTHROPIC_BASE_URL` 指向自訂代理時傳播 W3C 追蹤上下文。傳播涵蓋模型和 HTTP MCP 請求上的 `traceparent` 標頭以及 Bash、PowerShell 和 hook 子程序的 `TRACEPARENT` 環境變數。預設情況下,傳播僅在直接連線到 Anthropic API 時啟用。在 v2.1.152 中新增。請參閱 [追蹤(測試版)](/docs/zh-TW/monitoring-usage#traces-beta) |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 或更新版本 |

358| `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、AWS 上的 Claude Platform、Google Cloud 的 Agent Platform 和 Microsoft Foundry)上否則應用的自動遙測選擇退出,因此遙測遵循標準 `DISABLE_TELEMETRY` 選擇退出。請參閱 [按 API 提供者的預設行為](/docs/zh-TW/data-usage#default-behaviors-by-api-provider) |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 或更新版本 |

359| `CLAUDE_CODE_PROXY_RESOLVES_HOSTS` | 設定為 `1` 以允許代理執行 DNS 解析,而不是呼叫者。對於代理應該處理主機名稱解析的環境選擇加入 |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 或更新版本 |

360| `CLAUDE_CODE_REMOTE` | 當 Claude Code 作為 [雲工作階段](/docs/zh-TW/claude-code-on-the-web) 執行時自動設定為 `true`。從 hook 或設定指令碼讀取此項以偵測您是否在雲工作階段中 |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) |

361| `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) |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) |

362| `CLAUDE_CODE_RESTRICTED` | 設定為 `1` 以在限制模式中啟動工作階段,與傳遞 [`--restricted`](/docs/zh-TW/cli-reference#cli-flags) 相同。Claude Code 會忽略設定檔的 `env` 區塊中的此變數。需要 Claude Code v2.1.248 或更新版本 |362| `CLAUDE_CODE_PROXY_RESOLVES_HOSTS` | 設定為 `1` 以允許代理伺服器執行 DNS 解析,而非由呼叫端執行。適用於應由代理伺服器處理主機名稱解析之環境的選擇性功能 |

363| `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` | 設定為 `1` 以在上一個工作階段在轉向中途結束時自動繼續。在 SDK 模式中使用,以便模型繼續而不需要 SDK 重新傳送提示。若要關閉此項,取消設定變數或將其設定為 `0`。在 v2.1.221 之前,Claude Code 忽略 `0` 和其他虛假值,因此在非互動模式中設定 `0` 仍會觸發繼續,取消設定變數是關閉它的唯一方法 |363| `CLAUDE_CODE_REMOTE` | 當 Claude Code 以[雲端工作階段](/docs/zh-TW/claude-code-on-the-web)執行時,會自動設定為 `true`。可從 hook 或設定指令碼讀取此值,以偵測您是否位於雲端工作階段中 |

364| `CLAUDE_CODE_RESUME_INTERRUPTED_TURN_MAX_AGE_MS` | 最後文字記錄訊息的最大年齡(毫秒),以便在中途結束的工作階段在繼續時自動繼續。當最後訊息比此界限更舊時,Claude Code 會跳過 `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` 自動繼續及其 `CLAUDE_CODE_RESUME_PROMPT` 繼續訊息,工作階段啟動閒置,以便您明確繼續。未設定或 `0` 表示無界限,除了最後請求因 API 錯誤失敗的轉向僅在該錯誤少於六小時時繼續。正值界限每個轉向,包括那些;負值或非數值值應用一小時界限。長時間執行代理的產生指令碼可以設定此項,以便針對舊文字記錄的重新啟動不會重新執行過時的提示。Claude Code 在重新啟動從互動工作階段繼承其對話的崩潰 [代理檢視](/docs/zh-TW/agent-view) 工作階段時自己設定一小時界限。需要 Claude Code v2.1.211 或更新版本 |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) |

365| `CLAUDE_CODE_RESUME_PROMPT` | 覆蓋 Claude Code 在 `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` 繼續中途轉向而不是重新傳送其提示時傳送給 Claude 的繼續訊息,或當您使用 `-p` 繼續 [延遲工具呼叫](/docs/zh-TW/hooks#defer-a-tool-call-for-later) 時。預設為 `Continue from where you left off.`。空字串使用預設值 |365| `CLAUDE_CODE_RESTRICTED` | 設定為 `1` 以受限模式啟動工作階段,與傳遞 [`--restricted`](/docs/zh-TW/cli-reference#cli-flags) 相同。Claude Code 會忽略設定檔 `env` 區塊中的此變數。需要 Claude Code v2.1.248 或更新版本 |

366| `CLAUDE_CODE_RETRY_WATCHDOG` | 設定為 `1` 用於無人值守工作階段,例如評估工具、CI 工作或遠端工作者。無限期重試 `429` 和 `529` 容量錯誤,而不是在 `CLAUDE_CODE_MAX_RETRIES` 嘗試後失敗。當標準速度請求取得報告支出限制或耗盡使用額度的 `429`(即使來自重設時間表的 [閘道支出上限](/docs/zh-TW/errors#spend-limit-reached))時,Claude Code 立即失敗。在 v2.1.239 之前,監視狗無限期重試這些。對於快速模式請求,請參閱 [處理速率限制](/docs/zh-TW/fast-mode#handle-rate-limits)。監視狗在嘗試之間備份最多 5 分鐘,或直到限制重設(當回應攜帶速率限制重設時間時),因此達到使用限制的工作階段會等待剩餘視窗。在 v2.1.199 或更新版本上,它也為其他暫時性錯誤(例如伺服器錯誤、逾時和丟棄的連線)提高預設重試計數為 300,大約三小時的備份,如果您明確設定該變數,則移除 `CLAUDE_CODE_MAX_RETRIES` 的 15 上限。需要 Claude Code v2.1.186 或更新版本 |366| `CLAUDE_CODE_RESUME_INTERRUPTED_TURN` | 設為 `1` 可在前一個工作階段於回合中途結束時自動繼續。用於 SDK 模式,讓模型無需 SDK 重新傳送提示詞即可繼續。若要關閉,請取消設定此變數或將其設為 `0`。關於 VS Code 聊天面板,請參閱[重新載入後繼續對話](/docs/zh-TW/vs-code#continue-conversations-after-a-reload) |

367| `CLAUDE_CODE_SAFE_MODE` | 設定為 `1` 以在安全模式中啟動:CLAUDE.md、技能、外掛程式、hooks、MCP 伺服器、自訂命令和代理、輸出樣式、工作流、自訂主題、自訂快捷鍵、狀態列和檔案建議命令、LSP 伺服器和自動記憶不載入,用於疑難排解損壞的設定。受管設定政策仍然適用,包括政策配置的 hooks、狀態列和檔案建議命令;受管外掛程式、受管技能、受管 CLAUDE.md 和政策配置的 MCP 伺服器不適用。等同於傳遞 [`--safe-mode`](/docs/zh-TW/cli-reference#cli-flags)。直接產生的子程序繼承變數 |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 或更新版本 |

368| `CLAUDE_CODE_SCRIPT_CAPS` | JSON 物件,限制當設定 `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB` 時特定指令碼在每個工作階段中可能被呼叫的次數。金鑰是針對命令文字進行的子字串比對;值是整數呼叫限制。例如,`{"deploy.sh": 2}` 允許 `deploy.sh` 最多被呼叫兩次。比對是基於子字串的,因此 shell 擴充技巧(如 `./scripts/deploy.sh $(evil)`)仍然計入上限。透過 `xargs` 或 `find -exec` 的執行時間扇出未被偵測;這是深度防禦控制 |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.`。空字串會使用預設值 |

369| `CLAUDE_CODE_SCROLL_SPEED` | 在 [全螢幕呈現](/docs/zh-TW/fullscreen#mouse-wheel-scrolling) 中設定滑鼠滾輪捲軸乘數。接受最多 20 的任何正值,包括低於 1 的分數值(例如 `0.5`)以減慢已放大的軌跡板和滾輪捲軸在已放大滾輪事件的終端中。設定為 `3` 以符合 `vim`,如果您的終端在沒有放大的情況下每個凹槽傳送一個滾輪事件。在 JetBrains IDE 終端中忽略,Claude Code 在那裡使用自己的捲軸處理 |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 或更新版本 |

370| `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` 值)仍然適用 |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)。直接產生的子程序會繼承此變數 |

371| `CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS` | 覆蓋 [SessionEnd](/docs/zh-TW/hooks#sessionend) hooks 的時間預算(毫秒)。值也是未設定自己 `timeout` 的每個 hook 的逾時。適用於工作階段退出、`/clear` 和透過互動 `/resume` 切換工作階段。預設情況下,預算為 1.5 秒,自動提高到設定檔中配置的最高每個 hook `timeout`,最多 60 秒。外掛程式提供的 hooks 上的逾時不會提高預算 |371| `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_SESSION_ID` | 在 Bash 和 PowerShell 工具子程序、[hook 命令](/docs/zh-TW/hooks) 子程序和 stdio [MCP 伺服器](/docs/zh-TW/mcp) 子程序中自動設定為目前工作階段 ID。對於 Bash、PowerShell 和 hooks,這符合 hook JSON 輸入中的 `session_id` 欄位,並在 `/clear` 上更新。MCP 伺服器子程序保留它產生時的 ID。在 `--resume <session-id>` 上,它接收繼續的 ID,符合 hooks 和 Bash。在 `--continue` 或 `--resume` 沒有明確 ID 上,它可能改為接收初始啟動 ID。用於將指令碼和外部工具與啟動它們的 Claude Code 工作階段相關聯 |372| `CLAUDE_CODE_SCROLL_SPEED` | 設定[全螢幕呈現](/docs/zh-TW/fullscreen#mouse-wheel-scrolling)中的滑鼠滾輪捲動倍率。接受最高 20 的任何正值,包括低於 1 的小數值(例如 `0.5`),可在已放大滾輪事件的終端機中減緩加速的觸控板與滾輪捲動。如果您的終端機每一格只傳送一個滾輪事件且未放大,設定為 `3` 可與 `vim` 一致。在 JetBrains IDE 終端機中會被忽略,因為 Claude Code 在其中使用自己的捲動處理 |

373| `CLAUDE_CODE_SHELL` | 設定 Claude Code 用於執行 Bash 工具命令的 shell。接受 `bash` 或 `zsh` 二進位檔的路徑,例如 `/opt/homebrew/bin/bash`。不支援 `fish` 等其他 shell。如果值不是工作的 `bash` 或 `zsh` 路徑,Claude Code 會忽略它並回退到自動偵測。自動偵測在指向 `bash` 或 `zsh` 時使用您的 `$SHELL`,否則它選擇在您的 `PATH` 和標準安裝位置上找到的第一個工作 `zsh`,然後 `bash` |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` 值,仍然適用 |

374| `CLAUDE_CODE_SHELL_PREFIX` | 包裝 Claude Code 產生的 shell 命令的命令前綴:Bash 工具呼叫、[hook](/docs/zh-TW/hooks) 命令、[狀態列](/docs/zh-TW/statusline) 命令和 stdio [MCP 伺服器](/docs/zh-TW/mcp) 啟動命令。PowerShell hooks 和 exec 形式 hooks 執行時不帶前綴。對於日誌記錄或稽核很有用。設定裸可執行檔路徑(例如 `/path/to/logger.sh`)將每個命令執行為 `/path/to/logger.sh '<command>'`。包裝器在 `$1` 中接收命令列作為單一 shell 引用的引數,因此包裝器必須使用 shell 重新評估 `$1`,例如 `exec bash -c "$1"`。將 `$1` 視為裸可執行檔路徑會破壞傳遞引數的 stdio MCP 伺服器,例如 `npx -y <package>`。對於 Bash 工具呼叫,`$1` 包含 Claude Code 組合的完整 shell 呼叫,包括環境設定,而不僅僅是 Claude 執行的命令 |374| `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_SIMPLE` | 設定為 `1` 以使用最小系統提示和僅 Bash、檔案讀取和檔案編輯工具執行。來自 `--mcp-config` 的 MCP 工具仍然可用。停用 hooks、技能、自訂命令、子代理、已安裝外掛程式、MCP 伺服器、自動記憶和 CLAUDE.md 的自動探索。您使用 `--add-dir` 傳遞的目錄中的技能仍然載入。OAuth 權杖和鑰匙圈認證不被讀取,因此 Anthropic 驗證必須來自 `ANTHROPIC_API_KEY` 或 `--settings` 中的 `apiKeyHelper`。等同於傳遞 [`--bare`](/docs/zh-TW/headless#start-faster-with-bare-mode) |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 工作階段 |

376| `CLAUDE_CODE_SIMPLE_SYSTEM_PROMPT` | 設定為 `1` 以在任何模型上使用較短的系統提示和縮寫工具說明。設定為 `0`、`false`、`no` 或 `off` 以選擇退出,即使實驗或伺服器設定會否則啟用它。完整工具集、hooks、MCP 伺服器和 CLAUDE.md 探索保持啟用 |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` |

377| `CLAUDE_CODE_SKIP_ANTHROPIC_AWS_AUTH` | 跳過 [AWS 上的 Claude Platform](/docs/zh-TW/claude-platform-on-aws) 的用戶端驗證,用於自己簽署請求的閘道 |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 執行的命令 |

378| `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 或更新版本 |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) |

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

380| `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 仍然尊重「您的組織停用了快速模式」回應 |380| `CLAUDE_CODE_SKIP_ANTHROPIC_AWS_AUTH` | 略過 [Claude Platform on AWS](/docs/zh-TW/claude-platform-on-aws) 的用戶端身分驗證,適用於自行簽署請求的閘道 |

381| `CLAUDE_CODE_SKIP_FAST_MODE_ORG_CHECK` | 設定為 `1` 以跳過用戶端 [快速模式](/docs/zh-TW/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways) 可用性檢查,用於攔截檢查請求的代理。API 在您的組織停用快速模式時仍會拒絕快速模式請求 |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 或更新版本 |

382| `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 之前,此變數使 Microsoft Foundry 用戶端無法傳送請求,除非同時設定了 API 金鑰 |382| `CLAUDE_CODE_SKIP_BEDROCK_AUTH` | 略過 Amazon Bedrock 的 AWS 身分驗證(例如使用 LLM 閘道時) |

383| `CLAUDE_CODE_SKIP_MANTLE_AUTH` | 跳過 Amazon Bedrock Mantle 的 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」回應 |

384| `CLAUDE_CODE_SKIP_PROMPT_HISTORY` | 設定為 `1` 以跳過將提示歷史記錄和工作階段文字記錄寫入磁碟。使用此變數啟動的工作階段不會出現在 `--resume`、`--continue` 或向上箭頭歷史記錄中。對於暫時指令碼工作階段很有用 |384| `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_VERTEX_AUTH` | 跳過 Google Cloud 的 Agent Platform 的 Google 驗證(例如,使用 LLM 閘道時) |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 用戶端無法傳送請求 |

386| `CLAUDE_CODE_STARTUP_FAILURE_RESULTS` | 設定為 `1` 以讓以 `--output-format stream-json` 啟動的工作階段為啟動失敗寫入 [結果訊息,命名 Claude Code 拒絕啟動的原因](/docs/zh-TW/agent-sdk/typescript#startup_failure_reason),否則以 stderr 結尾。需要 Claude Code v2.1.274 或更新版本 |386| `CLAUDE_CODE_SKIP_MANTLE_AUTH` | 略過 Amazon Bedrock Mantle 的 AWS 身分驗證(例如使用 LLM 閘道時) |

387| `CLAUDE_CODE_STOP_HOOK_BLOCK_CAP` | [Stop](/docs/zh-TW/hooks#stop) 或 [SubagentStop](/docs/zh-TW/hooks#subagentstop) hook 可能在 Claude Code 覆蓋它並結束轉向之前連續阻止轉向結束的最大次數(預設:8)。設定為 `0` 以停用上限。如果您的 hook 合法需要更多迭代來解決,請提高此值 |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 或更新版本 |

388| `CLAUDE_CODE_SUBAGENT_MODEL` | [子代理](/docs/zh-TW/sub-agents#choose-a-model)、[代理團隊](/docs/zh-TW/agent-teams#specify-teammates-and-models) 隊友和 [工作流](/docs/zh-TW/workflows) 代理的預設模型,這些代理未以其他方式指派模型。接受別名(例如 `haiku`)或完整模型名稱。兩個來源優先於它:Claude 產生代理時傳遞的模型,以及代理定義中的 `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` 欄位 |388| `CLAUDE_CODE_SKIP_PROMPT_HISTORY` | 設定為 `1` 以略過將提示詞歷史記錄與工作階段逐字稿寫入磁碟。在設定此變數的情況下啟動的工作階段,不會出現在 `--resume`、`--continue` 或向上鍵歷史記錄中。適用於臨時的指令碼工作階段 |

389| `CLAUDE_CODE_SUBAGENT_MODEL_FORCE` | 設定為 `1` 以強制一個模型到子代理、隊友和工作流代理。[在一個模型上執行每個子代理](/docs/zh-TW/sub-agents#run-every-subagent-on-one-model) 說明那是哪個模型。需要 Claude Code v2.1.257 或更新版本 |389| `CLAUDE_CODE_SKIP_VERTEX_AUTH` | 略過 Google Cloud's Agent Platform 的 Google 身分驗證(例如使用 LLM 閘道時) |

390| `CLAUDE_CODE_SUBAGENT_PROMPT_CACHE_TTL` | 設定 `5m` 或 `1h`,Claude Code 接受的唯一值,以選擇主要對話外請求的 [提示快取 TTL](/docs/zh-TW/prompt-caching#cache-lifetime),例如 [子代理](/docs/zh-TW/sub-agents)、工作流和背景工作。優先於 `subagentPromptCacheTtl` 設定和 `ENABLE_PROMPT_CACHING_1H`,`FORCE_PROMPT_CACHING_5M` 覆蓋它。API 以更高的速率計費 1 小時快取寫入。需要 Claude Code v2.1.242 或更新版本 |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 或更新版本 |

391| `CLAUDE_CODE_SUBPROCESS_ENV_SCRUB` | 設定為 `1` 以從子程序環境中移除認證(Bash 工具、hooks、MCP stdio 伺服器):Anthropic 和雲提供者認證、Claude Code 識別為認證的任何其他變數,以及嵌入在套件登錄 URL 中的認證。父 Claude 程序保留這些認證用於 API 呼叫,但子程序無法讀取它們,減少試圖透過 shell 擴充洩露機密的提示注入攻擊的曝光。在 v2.1.251 或更新版本上,擦除也移除 Claude Code 自己的設定存放區指標變數(例如 `CLAUDE_CONFIG_DIR`),因此子程序無法找到重新定位的設定目錄。如果子程序需要這些變數,請保持擦除未設定。在 Linux 上,這也在隔離的 PID 命名空間中執行 Bash 子程序,以便它們無法透過 `/proc` 讀取主機程序環境;作為副作用,`ps`、`pgrep` 和 `kill` 無法看到或發信號給主機程序。`claude-code-action` 在設定 `allowed_non_write_users` 時自動設定此項 |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 確實需要更多次迭代才能解決,請調高此值 |

392| `CLAUDE_CODE_SYNC_PLUGIN_INSTALL` | 在非互動模式(`-p` 旗標)中設定為 `1` 以等待外掛程式安裝完成,然後才進行第一個查詢。沒有此項,外掛程式在背景安裝,可能在第一個轉向上不可用。與 `CLAUDE_CODE_SYNC_PLUGIN_INSTALL_TIMEOUT_MS` 結合以界限等待 |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` 欄位 |

393| `CLAUDE_CODE_SYNC_PLUGIN_INSTALL_TIMEOUT_MS` | 同步外掛程式安裝的逾時(毫秒)。超過時,Claude Code 繼續進行而不使用外掛程式並記錄錯誤。無預設值:沒有此變數,同步安裝會等待直到完成 |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 或更新版本 |

394| `CLAUDE_CODE_SYNC_SKILLS` | 在非互動模式中設定為 `1`,使用 `-p` 旗標,以使 Claude Code 下載為您的 claude.ai 帳戶啟用的技能在該執行中,並等待它們的清單,最多 `CLAUDE_CODE_SYNC_SKILLS_WAIT_TIMEOUT_MS`,然後才執行第一個查詢。下載本身在背景完成,Claude 在呼叫該技能時等待技能的下載。需要 claude.ai 驗證。您登入 claude.ai 帳戶的終端工作階段 [下載這些技能](/docs/zh-TW/skills#where-synced-skills-load) 到 `~/.claude/skills/synced/` 並大約每 10 分鐘重新同步,而不需要此變數,因此僅在 `-p` 執行需要您目前技能在其第一個查詢上時設定它。在 v2.1.273 之前,終端工作階段僅在帶有此變數集的 `-p` 執行中下載它們。`synced` 資料夾名稱 [保留用於此下載](/docs/zh-TW/skills#where-skills-live)。在 v2.1.227 之前,技能直接下載到 `~/.claude/skills/`。Claude Code 對下載的技能應用 [額外規則](/docs/zh-TW/skills#how-synced-skills-behave),例如不在您的機器上執行其 `!` 命令 |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 或更新版本 |

395| `CLAUDE_CODE_SYNC_SKILLS_INSTALL_TIMEOUT_MS` | 當在 [Agent SDK](/docs/zh-TW/agent-sdk/typescript#query-object) 上建立的應用程式重新載入技能時執行的技能重新同步的逾時(毫秒)(預設:30000)。超過時,重新載入繼續進行,無論已到達哪些技能,剩餘下載在背景完成 |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` 會自動設定此變數 |

396| `CLAUDE_CODE_SYNC_SKILLS_WAIT_TIMEOUT_MS` | 當設定 `CLAUDE_CODE_SYNC_SKILLS` 時,第一個查詢等待初始技能清單的逾時(毫秒)(預設:5000)。超過時,第一個查詢執行,無論已到達哪些技能。下載無論如何都在背景完成,Claude 在呼叫該技能時等待技能的下載 |396| `CLAUDE_CODE_SYNC_PLUGIN_INSTALL` | 在非互動模式(`-p` 旗標)中設定為 `1`,以在第一次查詢前等待外掛安裝完成。若未設定,外掛會在背景安裝,可能無法在第一個回合中使用。搭配 `CLAUDE_CODE_SYNC_PLUGIN_INSTALL_TIMEOUT_MS` 以限制等待時間 |

397| `CLAUDE_CODE_SYNTAX_HIGHLIGHT` | 設定為 `false` 以停用差異輸出中的語法醒目提示。當顏色干擾您的終端設定時很有用。若要也停用程式碼區塊和檔案預覽中的醒目提示,請使用 [`syntaxHighlightingDisabled`](/docs/zh-TW/settings-reference#syntaxhighlightingdisabled) 設定 |397| `CLAUDE_CODE_SYNC_PLUGIN_INSTALL_TIMEOUT_MS` | 同步外掛安裝的逾時時間(毫秒)。超過時,Claude Code 會在不載入外掛的情況下繼續,並記錄錯誤。沒有預設值:若未設定此變數,同步安裝會一直等到完成為止 |

398| `CLAUDE_CODE_TASK_LIST_ID` | 跨工作階段共享工作清單。在多個 Claude Code 執行個體中設定相同的 ID 以在 [具有 Task 工具的工作階段](/docs/zh-TW/tools-reference#task-tool-availability) 中協調共享工作清單。請參閱 [工作清單](/docs/zh-TW/interactive-mode#task-list) |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),例如不在您的機器上執行其 `!` 命令 |

399| `CLAUDE_CODE_TEAM_TEARDOWN_PARK_TIMEOUT_MS` | 覆蓋非互動工作階段在退出時等待其 [代理團隊](/docs/zh-TW/agent-teams) 完成拆卸的時間(毫秒)。接受 1000 到 60000;超出範圍的值被忽略,預設 10000 適用。需要 Claude Code v2.1.206 或更新版本 |399| `CLAUDE_CODE_SYNC_SKILLS_INSTALL_TIMEOUT_MS` | 當以 [Agent SDK](/docs/zh-TW/agent-sdk/typescript#query-object) 建置的應用程式重新載入 skill 時,於工作階段中途執行之 skill 重新同步的逾時時間(毫秒)(預設:30000)。超過時,重新載入會以已送達的 skill 繼續,剩餘的下載會在背景完成 |

400| `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`。Claude Code 自己的暫時檔案始終使用您的覆蓋。在您的 shell、使用者設定或受管設定中設定它。在 [專案和本機設定](/docs/zh-TW/settings-reference#variables-claude-code-ignores-in-env) 中忽略 |400| `CLAUDE_CODE_SYNC_SKILLS_WAIT_TIMEOUT_MS` | 設定 `CLAUDE_CODE_SYNC_SKILLS` 時,第一次查詢等待初始 skill 清單的逾時時間(毫秒)(預設:5000)。超過時,第一次查詢會以已送達的 skill 執行。無論哪種情況,下載都會在背景完成,而 Claude 在叫用某個 skill 時會等待該 skill 下載完成 |

401| `CLAUDE_CODE_TMUX_TRUECOLOR` | 設定為任何非空值(例如 `1`)以允許 tmux 內的 24 位真彩色輸出。**將其設定為 `0` 或 `false` 仍允許真彩色**,與大多數開啟/關閉變數不同;取消設定變數以恢復 256 色限制。預設情況下,當設定 `$TMUX` 時,Claude Code 限制為 256 色,因為 tmux 不會透過真彩色逃逸序列,除非設定。在將 `set -ga terminal-overrides ',*:Tc'` 新增到您的 `~/.tmux.conf` 後設定此項。請參閱 [終端設定](/docs/zh-TW/terminal-config) 以了解其他 tmux 設定 |401| `CLAUDE_CODE_SYNTAX_HIGHLIGHT` | 設定為 `false` 以停用差異輸出中的語法醒目提示。適用於色彩干擾您的終端機設定時。若也要在程式碼區塊與檔案預覽中停用醒目提示,請使用 [`syntaxHighlightingDisabled`](/docs/zh-TW/settings-reference#syntaxhighlightingdisabled) 設定 |

402| `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 或更新版本 |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) |

403| `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 或更新版本 |403| `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_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` 或負值停用期限 |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)中會被忽略 |

405| `CLAUDE_CODE_USE_ANTHROPIC_AWS` | 使用 [AWS 上的 Claude Platform](/docs/zh-TW/claude-platform-on-aws) |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) |

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 或更新版本 |

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 或更新版本 |

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` 或負值會停用期限 |

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

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

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

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

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

410| `CLAUDE_CODE_USE_POWERSHELL_TOOL` | 控制 PowerShell 工具。在沒有 Git Bash 的 Windows 上,工具自動啟用;設定為 `0` 以停用它。在安裝了 Git Bash 的 Windows 上,工具預設為 claude.ai 和 Console 帳戶開啟;設定為 `1` 以在 Amazon Bedrock、Google Cloud 的 Agent Platform 和 Microsoft Foundry 工作階段中啟用它,或設定為 `0` 以關閉它。在 Linux、macOS 和 WSL 上,設定為 `1` 以啟用它,這需要您的 `PATH` 上的 `pwsh`。在 Windows 上啟用時,Claude 可以原生執行 PowerShell 命令,而不是透過 Git Bash 路由。請參閱 [PowerShell 工具](/docs/zh-TW/tools-reference#powershell-tool) |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) |

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

412| `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 或更新版本 |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 或更新版本 |

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

414| `CLAUDE_CODE_WORKFLOW_MAX_CONCURRENT_AGENTS` | 單個 [工作流](/docs/zh-TW/workflows) 執行一次執行的代理數,從 `1` 到 `256`。預設情況下,執行一次執行最多 16 個代理,當 Claude Code 有更少 CPU 可用時更少;排隊的 `agent()` 呼叫等待空閒插槽。每個執行中代理的文字記錄保留在 Claude Code 的記憶體中,因此較高的值會提高記憶體使用。僅接受純數字;超出範圍的值和其他拼寫保持預設。需要 Claude Code v2.1.269 或更新版本 |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 或更新版本 |

415| `CLAUDE_CODE_WORKFLOW_PREFIX_STAGGER_MS` | [工作流](/docs/zh-TW/workflows) 代理等待相同前綴同級的第一個回應開始的上限(毫秒),然後才傳送自己的第一個請求。當扇出啟動共享 [提示快取前綴](/docs/zh-TW/workflows#prompt-caching-in-a-fan-out) 的多個代理時,Claude Code 將除第一個外的所有代理保持最多此長時間,以便其餘代理讀取快取的前綴,而不是每個未快取地處理它。預設 `5000`。設定為 `0` 以停用等待。當設定 `DISABLE_PROMPT_CACHING` 時,代理絕不會等待。需要 Claude Code v2.1.229 或更新版本 |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 或更新版本 |

416| `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) 中忽略 |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)中會被忽略 |

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

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

419| `CLAUDE_ENABLE_BYTE_WATCHDOG` | 設定為 `1` 以強制啟用位元組級串流閒置監視狗,或設定為 `0` 以強制停用它。`0` 也會在執行該期限的連線上關閉 [第一位元組期限](/docs/zh-TW/network-config#streaming-idle-watchdogs)。未設定時,監視狗預設在直接 Anthropic API 和 [AWS 上的 Claude Platform](/docs/zh-TW/claude-platform-on-aws) 連線上啟用,以及透過 `ANTHROPIC_BASE_URL` 或 `ANTHROPIC_AWS_BASE_URL` 到達的 [閘道](/docs/zh-TW/gateways) 連線上的串流回應;在 v2.1.222 之前,它不在這些閘道連線上執行,因此事件級監視狗可能在那裡報告停滯,即使保活 ping 正在到達。對於逾時以及計時器如何互動,請參閱 [串流閒置監視狗](/docs/zh-TW/network-config#streaming-idle-watchdogs) |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) |

420| `CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK` | 設定為 `1` 以在 Amazon Bedrock `vnd.amazon.eventstream` 回應上啟用位元組級串流閒置監視狗,這也啟用 [第一位元組期限](/docs/zh-TW/network-config#streaming-idle-watchdogs) 在 Bedrock 串流請求上。預設關閉。使用 `CLAUDE_STREAM_IDLE_TIMEOUT_MS` 設定逾時 |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` 設定逾時 |

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

422| `CLAUDE_ENV_FILE` | shell 指令碼的路徑,其內容 Claude Code 在同一 shell 程序中的每個 Bash 命令之前執行,因此檔案中的匯出對命令可見。用於在命令之間保持 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) hooks 動態填充 |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 動態填入 |

423| `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` 呼叫在那裡不提示權限,目錄在工作階段被刪除時移除 |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` 呼叫不會提示權限,且該目錄會在工作階段刪除時一併移除 |

424| `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 或更新版本 |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 或更新版本 |

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

426| `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 或更新版本 |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 或更新版本 |

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

428| `CLAUDE_SUBAGENT_BG_SHELL_MAX_MS` | 在 v2.1.260 中移除,現在是無操作。先前上限了 [背景 shell 命令](/docs/zh-TW/interactive-mode#background-bash-commands)([子代理](/docs/zh-TW/sub-agents) 啟動的)可以執行的時間(毫秒),預設 60 分鐘。請參閱 [背景命令生命週期規則](/docs/zh-TW/tools-reference#background-commands) |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) |

429| `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:*`)不會觸發它 |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:*`)不會觸發偵錯模式 |

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

445| `DISABLE_PROMPT_CACHING_FABLE` | 設定為 `1` 以為 Fable 模型停用提示快取 |449| `DISABLE_PROMPT_CACHING_FABLE` | 設定為 `1` 可為 Fable 模型停用提示快取 |

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

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

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

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

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

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

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

453| `ENABLE_BETA_TRACING_DETAILED` | 設定為 `1`,與 `BETA_TRACING_ENDPOINT` 一起,以開啟 [詳細測試版追蹤](/docs/zh-TW/monitoring-usage#traces-beta),這會新增內容承載跨度屬性和 `claude_code.hook` 跨度。互動 CLI 工作階段也需要您的組織被允許列出測試版。兩個變數在 [專案和本機設定](/docs/zh-TW/settings-reference#variables-claude-code-ignores-in-env) 中被忽略 |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)中都會被忽略 |

454| `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) |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) |

455| `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 的 Agent Platform](/docs/zh-TW/google-vertex-ai)、[Microsoft Foundry](/docs/zh-TW/microsoft-foundry) 和 [AWS 上的 Claude Platform](/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`,它們優先於此變數 |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`,它們優先於此變數 |

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

457| `ENABLE_TOOL_SEARCH` | 控制 [MCP 工具搜尋](/docs/zh-TW/mcp#scale-with-mcp-tool-search)。未設定時,Claude Code 預設延遲所有 MCP 工具。它仍在早於 Claude 4.5 代的 Google Cloud 的 Agent Platform 模型上預先載入它們,在 Azure 上託管的 Microsoft Foundry 部署上,以及當 `ANTHROPIC_BASE_URL` 指向非第一方主機時。`true` 始終延遲並傳送測試版標頭,除了在這些相同的 Agent Platform 模型和 Microsoft Foundry 部署上;請求在不支援 `tool_reference` 的代理上失敗。`auto` 在工具定義符合上下文的 10% 時預先載入。`auto:N` 設定自訂閾值,例如 5% 的 `auto:5`。`false` 預先載入所有工具。您自己設定的值在設定 `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS` 時被忽略。在 v2.1.221 之前,Claude Code 停用了 Google Cloud 的 Agent Platform 上所有模型的工具搜尋,除非您將此變數設定為 `true` |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 上為所有模型停用工具搜尋 |

458| `FALLBACK_FOR_ALL_PRIMARY_MODELS` | 設定為任何非空值(例如 `1`),以使 Claude Code 在未設定回退模型時停止在重複過載錯誤上重試每個模型。**將其設定為 `0` 或 `false` 仍會啟用此項**,與大多數開啟/關閉變數不同;取消設定變數以恢復預設重試行為。沒有它,Claude Code 在您使用 API 金鑰或 [第三方提供者](/docs/zh-TW/third-party-integrations) 而不是 Claude 訂閱進行驗證時,停止以此方式重試它識別為 Opus、Fable 或 Mythos 模型的重試。在 Claude Code v2.1.160 或更新版本上,Claude Code 在任何主要模型上重複過載錯誤時切換到您配置的 [回退模型鏈](/docs/zh-TW/model-config#fallback-model-chains),因此此變數不影響切換到回退模型 |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),因此此變數不會影響切換到備援模型 |

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

460| `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` 以將徽章呈現為純文字 |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` 可將徽章呈現為純文字 |

461| `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` 設定 |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` 設定 |

462| `HTTP_PROXY` | 為網路連線指定 HTTP 代理伺服器 |466| `HTTP_PROXY` | 為網路連線指定 HTTP 代理伺服器 |

463| `HTTPS_PROXY` | 為網路連線指定 HTTPS 代理伺服器 |467| `HTTPS_PROXY` | 為網路連線指定 HTTPS 代理伺服器 |

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

465| `MAX_MCP_OUTPUT_TOKENS` | MCP 工具回應中允許的最大權杖數。Claude Code 在輸出超過 10,000 權杖時顯示警告。宣告 [`anthropic/maxResultSizeChars`](/docs/zh-TW/mcp#raise-the-limit-for-a-specific-tool) 的工具改為使用該字元限制用於文字內容,但來自這些工具的影像內容仍受此變數限制(預設:25000) |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) |

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

467| `MAX_THINKING_TOKENS` | [擴充思考](https://platform.claude.com/docs/en/build-with-claude/extended-thinking) 的固定權杖預算。Claude Code 將其上限設為請求最大輸出權杖下方一個權杖,絕不低於 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 改為傳送 effort `high` 到它知道 [不接受該組合](/docs/zh-TW/errors#effort-isnt-available-with-thinking-turned-off) 的模型,例如 Opus 5。Claude Code 在自適應推理模型上忽略非零值,除了 `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` 關閉自適應推理的模型 |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` 會關閉自適應推理的模型除外 |

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

469| `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) 提供,因為它們的工具必須在建立第一個提示時存在。在非互動模式 (`-p`) 中沒有 `--input-format stream-json`,Claude Code 也會在第一個轉向前等待仍待處理的伺服器,無論此變數如何。當您明確傳遞 [`--mcp-config`](/docs/zh-TW/cli-reference#cli-flags) 時,等待有更長的期限;請參閱該旗標的項目以了解快取伺服器例外 |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) 時,等待會有較長的期限;關於已快取伺服器的例外情況,請參閱該旗標的項目 |

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

471| `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 或更新版本 |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 或更新版本 |

472| `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 未上限值 |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 不會限制此值 |

473| `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 或更新版本 |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 或更新版本 |

474| `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 未上限值 |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 不會限制此值 |

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

476| `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 或更新版本 |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 或更新版本 |

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

478| `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 或更新版本 |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 或更新版本 |

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

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

481| `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 或更新版本。對於 env 變數,低於 1000 的值下限為一秒;對於每個伺服器欄位,低於 1000 的值被忽略 |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 的值會被忽略 |

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

483| `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) |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) |

484| `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) |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) |

485| `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) |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) |

486| `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) |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) |

487| `OTEL_LOG_TOOL_CONTENT` | 設定為 `1` 以在 `tool.output` OpenTelemetry 跨度事件上包含工具內容。跨度屬性在 [自己的門](/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) |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) |

488| `OTEL_LOG_TOOL_DETAILS` | 設定為 `1` 以在 OpenTelemetry 指標、追蹤和日誌中包含工具輸入引數;MCP 伺服器名稱;使用者撰寫的工作流名稱;工具失敗上的原始錯誤字串;`api_refusal` 事件上的拒絕 `category`;[成本和權杖指標](/docs/zh-TW/monitoring-usage#cost-counter)上的代理、技能、外掛程式和 MCP 伺服器的真實名稱;以及其他工具詳細資訊。預設停用以保護 PII。在您的 shell、使用者設定或受管設定中設定。在 [專案和本機設定](/docs/zh-TW/settings-reference#variables-claude-code-ignores-in-env) 中忽略,除了該部分描述的關閉值。請參閱 [監視](/docs/zh-TW/monitoring-usage) |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) |

489| `OTEL_LOG_USER_PROMPTS` | 設定為 `1` 以在 OpenTelemetry 追蹤和日誌中包含使用者提示文字。預設停用(提示被編輯)。在您的 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) |

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

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

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

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

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

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

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

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

498| `USE_BUILTIN_RIPGREP` | 設定為 `0` 以使用系統安裝的 `rg` 而不是 `rg` 包含在 Claude Code 中 |502| `USE_BUILTIN_RIPGREP` | 設定為 `0` 可使用系統安裝的 `rg`,而非 Claude Code 隨附的 `rg` |

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

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

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

502| `VERTEX_REGION_CLAUDE_4_0_OPUS` | 使用 Google Cloud 的 Agent Platform 時覆蓋 Claude 4.0 Opus 的區域 |506| `VERTEX_REGION_CLAUDE_4_0_OPUS` | 使用 Google Cloud's Agent Platform 時覆寫 Claude 4.0 Opus 的區域 |

503| `VERTEX_REGION_CLAUDE_4_0_SONNET` | 使用 Google Cloud 的 Agent Platform 時覆蓋 Claude 4.0 Sonnet 的區域 |507| `VERTEX_REGION_CLAUDE_4_0_SONNET` | 使用 Google Cloud's Agent Platform 時覆寫 Claude 4.0 Sonnet 的區域 |

504| `VERTEX_REGION_CLAUDE_4_1_OPUS` | 使用 Google Cloud 的 Agent Platform 時覆蓋 Claude 4.1 Opus 的區域 |508| `VERTEX_REGION_CLAUDE_4_1_OPUS` | 使用 Google Cloud's Agent Platform 時覆寫 Claude 4.1 Opus 的區域 |

505| `VERTEX_REGION_CLAUDE_4_5_OPUS` | 使用 Google Cloud 的 Agent Platform 時覆蓋 Claude Opus 4.5 的區域 |509| `VERTEX_REGION_CLAUDE_4_5_OPUS` | 使用 Google Cloud's Agent Platform 時覆寫 Claude Opus 4.5 的區域 |

506| `VERTEX_REGION_CLAUDE_4_5_SONNET` | 使用 Google Cloud 的 Agent Platform 時覆蓋 Claude Sonnet 4.5 的區域 |510| `VERTEX_REGION_CLAUDE_4_5_SONNET` | 使用 Google Cloud's Agent Platform 時覆寫 Claude Sonnet 4.5 的區域 |

507| `VERTEX_REGION_CLAUDE_4_6_OPUS` | 使用 Google Cloud 的 Agent Platform 時覆蓋 Claude Opus 4.6 的區域 |511| `VERTEX_REGION_CLAUDE_4_6_OPUS` | 使用 Google Cloud's Agent Platform 時覆寫 Claude Opus 4.6 的區域 |

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

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

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

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

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

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

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

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

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

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

518 522 

519標準 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) 以了解設定詳細資訊。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)。

520 524 

521在您的 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`)仍從專案和本機設定適用。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`)在專案和本機設定中仍然適用。

522 526 

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

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


540* 同步為您的 claude.ai 帳戶啟用的[技能](/docs/zh-TW/skills#where-synced-skills-load)和[外掛程式](/docs/zh-TW/plugins/loading#synced-plugins)到您的終端工作階段544* 同步為您的 claude.ai 帳戶啟用的[技能](/docs/zh-TW/skills#where-synced-skills-load)和[外掛程式](/docs/zh-TW/plugins/loading#synced-plugins)到您的終端工作階段

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

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

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

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

544* 在安裝 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 上,工具保持開啟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 上,工具保持開啟

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

errors.md +1094 −1006

Details

8 8 

9本頁列出 Claude Code 顯示的執行時錯誤及如何從每個錯誤中復原,以及當回應似乎有問題但沒有錯誤時要檢查的內容。如需安裝錯誤(例如 `command not found` 或設定期間的 TLS 失敗),請參閱[疑難排解安裝和登入](/docs/zh-TW/troubleshoot-install)。9本頁列出 Claude Code 顯示的執行時錯誤及如何從每個錯誤中復原,以及當回應似乎有問題但沒有錯誤時要檢查的內容。如需安裝錯誤(例如 `command not found` 或設定期間的 TLS 失敗),請參閱[疑難排解安裝和登入](/docs/zh-TW/troubleshoot-install)。

10 10 

11除了[包裝程式和 IDE 錯誤](#wrapper-and-ide-errors)(由啟動程式列印而非 Claude Code 本身列印)外,這些錯誤和復原命令適用於 CLI、[桌面應用程式](/docs/zh-TW/desktop)和[雲端工作階段](/docs/zh-TW/claude-code-on-the-web),因為這三者都包裝相同的 Claude Code CLI。如需其他表面特定的問題,請參閱該表面頁面上的疑難排解部分。11除了[包裝程式和 IDE 錯誤](#wrapper-and-ide-errors)(由啟動程式列印而非 Claude Code 本身列印)外,這些錯誤和復原命令適用於 CLI、[桌面應用程式](/docs/zh-TW/desktop)和[雲端工作階段](/docs/zh-TW/claude-code-on-the-web),因為這三者都包裝相同的 Claude Code CLI。如需其他使用介面特定的問題,請參閱該使用介面頁面上的疑難排解部分。

12 12 

13<Note>13<Note>

14 Claude Code 呼叫 Claude API 以取得模型回應,因此大多數執行時錯誤對應到基礎 API 錯誤代碼。本頁涵蓋每個錯誤在 Claude Code 中的含義及如何復原。如需原始 HTTP 狀態代碼定義,請參閱 [Claude Platform 錯誤參考](https://platform.claude.com/docs/en/api/errors)。14 Claude Code 呼叫 Claude API 以取得模型回應,因此大多數執行時錯誤對應到基礎 API 錯誤代碼。本頁涵蓋每個錯誤在 Claude Code 中的含義及如何復原。如需原始 HTTP 狀態代碼定義,請參閱 [Claude Platform 錯誤參考](https://platform.claude.com/docs/en/api/errors)。


42| `The server-side auto mode classifier gave no verdict` | [伺服器錯誤](#the-server-returned-no-safety-verdict) |42| `The server-side auto mode classifier gave no verdict` | [伺服器錯誤](#the-server-returned-no-safety-verdict) |

43| `Auto mode is unavailable — the server returned no safety verdict for the last 10 responses` | [伺服器錯誤](#the-server-returned-no-safety-verdict) |43| `Auto mode is unavailable — the server returned no safety verdict for the last 10 responses` | [伺服器錯誤](#the-server-returned-no-safety-verdict) |

44| `Agent terminated early due to an API error` | [伺服器錯誤](#agent-terminated-early-due-to-an-api-error) |44| `Agent terminated early due to an API error` | [伺服器錯誤](#agent-terminated-early-due-to-an-api-error) |

45| `You've hit your session limit` / `You've hit your weekly limit` / `You've hit your Opus limit` / `You've hit your Sonnet limit` | [使用限制](#youve-hit-your-session-limit) |45| `You've hit your session limit` / `You've hit your weekly limit` / `You've hit your Opus limit` / `You've hit your Sonnet limit` | [用量上限](#youve-hit-your-session-limit) |

46| `Usage credits required for 1M context` | [使用限制](#usage-credits-required-for-1m-context) |46| `Usage credits required for 1M context` | [用量上限](#usage-credits-required-for-1m-context) |

47| `the prompt to confirm went unanswered — nothing was sent` | [使用限制](#the-prompt-to-confirm-went-unanswered) |47| `the prompt to confirm went unanswered — nothing was sent` | [用量上限](#the-prompt-to-confirm-went-unanswered) |

48| `Server is temporarily limiting requests` | [使用限制](#server-is-temporarily-limiting-requests) |48| `Server is temporarily limiting requests` | [用量上限](#server-is-temporarily-limiting-requests) |

49| `Request rejected (429)` | [使用限制](#request-rejected-429) |49| `Request rejected (429)` | [用量上限](#request-rejected-429) |

50| `Credit balance is too low` | [使用限制](#credit-balance-is-too-low) |50| `Credit balance is too low` | [用量上限](#credit-balance-is-too-low) |

51| `You've hit your monthly spend limit` / `You've hit your individual spend limit` / `You've hit your org's monthly spend limit` / `You've hit your channel's monthly spend limit` / `You've hit your team's shared budget` / `You've hit your individual usage limit` | [使用限制](#youve-hit-your-monthly-spend-limit) |51| `You've hit your monthly spend limit` / `You've hit your individual spend limit` / `You've hit your org's monthly spend limit` / `You've hit your channel's monthly spend limit` / `You've hit your team's shared budget` / `You've hit your individual usage limit` | [用量上限](#youve-hit-your-monthly-spend-limit) |

52| `Could not update your spend limit` | [使用限制](#could-not-update-your-spend-limit) |52| `Could not update your spend limit` | [用量上限](#could-not-update-your-spend-limit) |

53| `spend limit reached` / `spend limit unavailable` | [使用限制](#spend-limit-reached) |53| `spend limit reached` / `spend limit unavailable` | [用量上限](#spend-limit-reached) |

54| `Not logged in · Please run /login` | [驗證](#not-logged-in) |54| `Not logged in · Please run /login` | [驗證](#not-logged-in) |

55| `Couldn't save your login` | [驗證](#couldnt-save-your-login) |55| `Couldn't save your login` | [驗證](#couldnt-save-your-login) |

56| `Authentication required · Sign in again to continue` | [驗證](#not-logged-in) |56| `Authentication required · Sign in again to continue` | [驗證](#not-logged-in) |


75| `Remote Control stopped — the app running this session is now signed in to a different Claude account` | [驗證](#remote-control-stopped-because-the-app-running-the-session-signed-out-or-switched-accounts) |75| `Remote Control stopped — the app running this session is now signed in to a different Claude account` | [驗證](#remote-control-stopped-because-the-app-running-the-session-signed-out-or-switched-accounts) |

76| `Remote Control stopped — the app running this session is signed out of Claude` | [驗證](#remote-control-stopped-because-the-app-running-the-session-signed-out-or-switched-accounts) |76| `Remote Control stopped — the app running this session is signed out of Claude` | [驗證](#remote-control-stopped-because-the-app-running-the-session-signed-out-or-switched-accounts) |

77| `Couldn't verify your organization's policy for remote control` | [疑難排解 Remote Control](/docs/zh-TW/remote-control#couldnt-verify-your-organizations-policy-for-remote-control) |77| `Couldn't verify your organization's policy for remote control` | [疑難排解 Remote Control](/docs/zh-TW/remote-control#couldnt-verify-your-organizations-policy-for-remote-control) |

78| `Remote Control is disabled by your organization's policy` | [疑難排解 Remote Control](/docs/zh-TW/remote-control#remote-control-is-disabled-by-your-organizations-policy) |

79| `Remote Control was turned off by your organization's policy` | [疑難排解 Remote Control](/docs/zh-TW/remote-control#remote-control-was-turned-off-by-your-organizations-policy) |

78| `OAuth token revoked` / `OAuth token has expired` | [驗證](#oauth-token-revoked-or-expired) |80| `OAuth token revoked` / `OAuth token has expired` | [驗證](#oauth-token-revoked-or-expired) |

81| `Failed to authenticate: OAuth token revoked` | [驗證](#oauth-token-revoked-or-expired) |

82| `Your account does not have access to Claude. Please login again or contact your administrator.` | [驗證](#oauth-token-revoked-or-expired) |

79| `API Error: 401 Invalid authentication credentials` | [驗證](#api-error-401-invalid-authentication-credentials) |83| `API Error: 401 Invalid authentication credentials` | [驗證](#api-error-401-invalid-authentication-credentials) |

80| `Login expired · Please run /login` | [驗證](#login-expired) |84| `Login expired · Please run /login` | [驗證](#login-expired) |

81| `Failed to start OAuth callback server` | [驗證](#failed-to-start-oauth-callback-server) |85| `Failed to start OAuth callback server` | [驗證](#failed-to-start-oauth-callback-server) |


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

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

188| `--bg and --print conflict` | [命令列錯誤](#conflict-between-bg-and-print) |192| `--bg and --print conflict` | [命令列錯誤](#conflict-between-bg-and-print) |

193| `Error: Cannot use both --append-subagent-system-prompt and --append-subagent-system-prompt-file. Please use only one.` | [命令列錯誤](#conflict-between-a-system-prompt-flag-and-its-file-form) |

189| `Cloud sessions cannot be created from a --restricted session` | [命令列錯誤](#cloud-sessions-cannot-be-created-from-a-restricted-session) |194| `Cloud sessions cannot be created from a --restricted session` | [命令列錯誤](#cloud-sessions-cannot-be-created-from-a-restricted-session) |

190| `Cloud sessions are disabled by your organization's policy` | [命令列錯誤](#cloud-sessions-are-disabled-by-your-organizations-policy) |195| `Cloud sessions are disabled by your organization's policy` | [命令列錯誤](#cloud-sessions-are-disabled-by-your-organizations-policy) |

191| `Couldn't verify your organization's policy for cloud sessions` | [命令列錯誤](#cloud-sessions-are-disabled-by-your-organizations-policy) |196| `Couldn't verify your organization's policy for cloud sessions` | [命令列錯誤](#cloud-sessions-are-disabled-by-your-organizations-policy) |


203| `Could not read Claude Code config` | [命令列錯誤](#could-not-read-claude-code-config) |208| `Could not read Claude Code config` | [命令列錯誤](#could-not-read-claude-code-config) |

204| `Could not import <server>: <reason>` | [命令列錯誤](#could-not-import-a-server-from-claude-desktop) |209| `Could not import <server>: <reason>` | [命令列錯誤](#could-not-import-a-server-from-claude-desktop) |

205| `Cannot add MCP server to scope: managed` | [命令列錯誤](#cannot-add-mcp-server-to-the-managed-scope) |210| `Cannot add MCP server to scope: managed` | [命令列錯誤](#cannot-add-mcp-server-to-the-managed-scope) |

211| `Cannot add MCP server: your organization's managed settings allow only MCP servers that plugins provide` | [命令列錯誤](#cannot-add-mcp-server-when-managed-settings-allow-only-plugin-servers) |

206| `is Anthropic-hosted and doesn't support local OAuth` | [命令列錯誤](#anthropic-hosted-and-doesnt-support-local-oauth) |212| `is Anthropic-hosted and doesn't support local OAuth` | [命令列錯誤](#anthropic-hosted-and-doesnt-support-local-oauth) |

207| `Can't read .mcp.json: it isn't a regular file or is larger than 2097152 bytes` | [命令列錯誤](#cant-read-mcp-json) |213| `Can't read .mcp.json: it isn't a regular file or is larger than 2097152 bytes` | [命令列錯誤](#cant-read-mcp-json) |

208| `MCP server "<name>" was not saved to` / `was not removed from` | [命令列錯誤](#mcp-server-was-not-saved-or-removed) |214| `MCP server "<name>" was not saved to` / `was not removed from` | [命令列錯誤](#mcp-server-was-not-saved-or-removed) |


246| `Marketplace name impersonates an official Anthropic/Claude marketplace` | [Plugin 錯誤](#claude-code-refuses-the-marketplace-name) |252| `Marketplace name impersonates an official Anthropic/Claude marketplace` | [Plugin 錯誤](#claude-code-refuses-the-marketplace-name) |

247| `Marketplace "<name>" is already added from a different source` | [Plugin 錯誤](#marketplace-is-already-added-from-a-different-source) |253| `Marketplace "<name>" is already added from a different source` | [Plugin 錯誤](#marketplace-is-already-added-from-a-different-source) |

248| `"<name>" is another spelling of "<reserved>", a reserved marketplace name` | [Plugin 錯誤](#marketplace-name-is-another-spelling-of-a-reserved-name) |254| `"<name>" is another spelling of "<reserved>", a reserved marketplace name` | [Plugin 錯誤](#marketplace-name-is-another-spelling-of-a-reserved-name) |

255| `Marketplace "<name>" is added but ignored` | [Plugin 疑難排解](/docs/zh-TW/plugins/troubleshooting#marketplace-is-added-but-ignored) |

256| `Marketplace "<name>" is registered but was refused (see the debug log)` | [Plugin 疑難排解](/docs/zh-TW/plugins/troubleshooting#marketplace-is-added-but-ignored) |

249| `references ${user_config.*} in a shell-form command` | [Plugin 錯誤](#plugin-command-references-user-config) |257| `references ${user_config.*} in a shell-form command` | [Plugin 錯誤](#plugin-command-references-user-config) |

250| `Monitor "<name>" from plugin <plugin> references ${user_config.*} in its command` | [Plugin 錯誤](#plugin-command-references-user-config) |258| `Monitor "<name>" from plugin <plugin> references ${user_config.*} in its command` | [Plugin 錯誤](#plugin-command-references-user-config) |

251| `headersHelper for MCP server '<name>' references ${user_config.*}` | [Plugin 錯誤](#plugin-command-references-user-config) |259| `headersHelper for MCP server '<name>' references ${user_config.*}` | [Plugin 錯誤](#plugin-command-references-user-config) |

252| `Plugin archive integrity check failed` | [Plugin 錯誤](#plugin-archive-integrity-check-failed) |260| `Plugin archive integrity check failed` | [Plugin 錯誤](#plugin-archive-integrity-check-failed) |

261| `An npm plugin source must name a registry package` | [Plugin 疑難排解](/docs/zh-TW/plugins/troubleshooting#an-npm-plugin-source-must-name-a-registry-package) |

253| `path escapes plugin directory` | [Plugin 錯誤](#path-escapes-plugin-directory) |262| `path escapes plugin directory` | [Plugin 錯誤](#path-escapes-plugin-directory) |

254| `path could not be checked` | [Plugin 錯誤](#path-could-not-be-checked) |263| `path could not be checked` | [Plugin 錯誤](#path-could-not-be-checked) |

255| `its marketplace entry path does not stay inside the marketplace directory` | [Plugin 錯誤](#marketplace-entry-path-does-not-stay-inside-the-marketplace-directory) |264| `its marketplace entry path does not stay inside the marketplace directory` | [Plugin 錯誤](#marketplace-entry-path-does-not-stay-inside-the-marketplace-directory) |


290| `Reading a local file from outside this session's connected folders, or through a link, needs the approval card` | [工具錯誤](#reading-a-local-file-from-outside-the-connected-folders) |299| `Reading a local file from outside this session's connected folders, or through a link, needs the approval card` | [工具錯誤](#reading-a-local-file-from-outside-the-connected-folders) |

291| `cannot read file_path (...) — the file could not be examined, and no one can answer the approval card` | [工具錯誤](#reading-a-local-file-from-outside-the-connected-folders) |300| `cannot read file_path (...) — the file could not be examined, and no one can answer the approval card` | [工具錯誤](#reading-a-local-file-from-outside-the-connected-folders) |

292| `WebFetch cannot fetch localhost or other hostnames without a dot` | [工具錯誤](#webfetch-cannot-fetch-localhost) |301| `WebFetch cannot fetch localhost or other hostnames without a dot` | [工具錯誤](#webfetch-cannot-fetch-localhost) |

302| `The safety check for domain ... is rate-limited` | [工具錯誤](#webfetch-domain-safety-check-failed) |

303| `The safety check for domain ... is temporarily rate-limited` | [工具錯誤](#webfetch-domain-safety-check-failed) |

304| `Unable to verify if domain ... is safe to fetch` | [工具錯誤](#webfetch-domain-safety-check-failed) |

293| `Can't open MCP settings while no terminal is attached to this background session` | [背景工作階段錯誤](#commands-refused-in-a-background-session) |305| `Can't open MCP settings while no terminal is attached to this background session` | [背景工作階段錯誤](#commands-refused-in-a-background-session) |

294| `Can't open MCP settings in a background session` | [背景工作階段錯誤](#commands-refused-in-a-background-session) |306| `Can't open MCP settings in a background session` | [背景工作階段錯誤](#commands-refused-in-a-background-session) |

295| `blocked because the path is spelled in a form that cannot be safely resolved` | [背景工作階段錯誤](#write-or-command-blocked-because-the-path-cannot-be-safely-resolved) |307| `blocked because the path is spelled in a form that cannot be safely resolved` | [背景工作階段錯誤](#write-or-command-blocked-because-the-path-cannot-be-safely-resolved) |


357Claude Code 會重試這些故障:369Claude Code 會重試這些故障:

358 370 

359* 伺服器錯誤、過載回應,以及在 Claude 回應開始串流之前到達的請求逾時。371* 伺服器錯誤、過載回應,以及在 Claude 回應開始串流之前到達的請求逾時。

372* 在 Claude 完成思考之後、但在開始任何文字或工具呼叫之前到達的伺服器錯誤或過載回應。Claude Code 會在該點重試伺服器錯誤最多兩次。在 v2.1.284 之前,Claude Code 會在該點以錯誤結束回合。

360* 連線中斷。當連線在 Claude 完成其回應的任何部分(包括其思考)之前中途中斷時,Claude Code 會以相同的退避方式重新發出請求,並且回合會繼續,即使某些文字已經開始串流。當連線在 Claude 完成思考之後但在開始任何文字或工具呼叫之前中斷時,Claude Code 會改為快速連續重新發出請求最多兩次,如果連線在該點持續中斷,則以 `Connection lost before a response was produced` 結束回合。373* 連線中斷。當連線在 Claude 完成其回應的任何部分(包括其思考)之前中途中斷時,Claude Code 會以相同的退避方式重新發出請求,並且回合會繼續,即使某些文字已經開始串流。當連線在 Claude 完成思考之後但在開始任何文字或工具呼叫之前中斷時,Claude Code 會改為快速連續重新發出請求最多兩次,如果連線在該點持續中斷,則以 `Connection lost before a response was produced` 結束回合。

361* Claude Code 偵測到的連線在您的電腦進入睡眠狀態時在請求中途被中斷。Claude Code 將其計為上述規則下的連線中斷;一旦重試標籤命名了具體原因,它會讀作 `Connection lost while your computer was asleep`,如果回合在 Claude 完成思考但在任何文字或工具呼叫之前結束,訊息會讀作 `Your computer went to sleep before a response was produced`。374* Claude Code 偵測到的連線在您的電腦進入睡眠狀態時在請求中途被中斷。Claude Code 將其計為上述規則下的連線中斷;一旦重試標籤命名了具體原因,它會讀作 `Connection lost while your computer was asleep`,如果回合在 Claude 完成思考但在任何文字或工具呼叫之前結束,訊息會讀作 `Your computer went to sleep before a response was produced`。

362* 停滯的回應串流,當回應標頭已到達但 Claude 回應的任何部分都未到達,或當 Claude 完成思考但尚未開始任何文字或工具呼叫時:Claude Code 會中止停滯的連線,並最多重新發出一次請求,不在上述 10 次嘗試預算內。如果在 Claude 完成思考但在任何文字或工具呼叫之前回應停滯第二次,Claude Code 會以 `The response stalled before a response was produced` 結束回合。375* 停滯的回應串流,當回應標頭已到達但 Claude 回應的任何部分都未到達,或當 Claude 完成思考但尚未開始任何文字或工具呼叫時:Claude Code 會中止停滯的連線,並最多重新發出一次請求,不在上述 10 次嘗試預算內。如果在 Claude 完成思考但在任何文字或工具呼叫之前回應停滯第二次,Claude Code 會以 `The response stalled before a response was produced` 結束回合。

363* 串流請求 API 從未以回應標頭回答,在 [first-byte deadline 執行](/docs/zh-TW/network-config#streaming-idle-watchdogs) 的連線上:Claude Code 在截止時間中止它,並在重試預算內最多每個模型請求重新發送一次,然後如果該嘗試也未獲得回答,則以 [No response from API](#no-response-from-api) 結束回合。在其他連線上,請求會等待 `API_TIMEOUT_MS`。當您設定 `CLAUDE_CODE_RETRY_WATCHDOG` 時,一次重試上限不適用。376* 串流請求 API 從未以回應標頭回答,在 [first-byte deadline 執行](/docs/zh-TW/network-config#streaming-idle-watchdogs) 的連線上:Claude Code 在截止時間中止它,並在重試預算內最多每個模型請求重新發送一次,然後如果該嘗試也未獲得回答,則以 [No response from API](#no-response-from-api) 結束回合。在其他連線上,請求會等待 `API_TIMEOUT_MS`。當您設定 `CLAUDE_CODE_RETRY_WATCHDOG` 時,一次重試上限不適用。

364* 暫時性 429 節流,但不是閘道的支出限制 `429`,這不是節流;請參閱 [Spend limit reached](#spend-limit-reached)。377* 暫時性 429 節流,但不是閘道的支出限制 `429`,這不是節流;請參閱 [Spend limit reached](#spend-limit-reached)。

365 * 當您使用 claude.ai 訂閱登入時,這包括不帶有您計畫配額標頭的 429 節流。在 v2.1.199 之前,Claude Code 僅針對 API 金鑰和企業登入重試這些節流。378 * 當您使用 claude.ai 訂閱登入時,這包括不帶有您方案配額標頭的 429 節流。在 v2.1.199 之前,Claude Code 僅針對 API 金鑰和 Enterprise 登入重試這些節流。

366* 因為輸入加上 `max_tokens` 超過內容限制而被拒絕的請求。以相同方式重新發送它會以相同方式失敗,所以 Claude Code 會以縮減的 `max_tokens` 重試,並在兩種情況下停止重試並改為壓縮:379* 因為輸入加上 `max_tokens` 超過上下文限制而被拒絕的請求。以相同方式重新發送它會以相同方式失敗,所以 Claude Code 會以縮減的 `max_tokens` 重試,並在兩種情況下停止重試並改為壓縮:

367 * 當沒有縮減可以適應時,例如當對話本身幾乎填滿內容視窗時。380 * 當沒有縮減可以容納時,例如當對話本身幾乎填滿上下文視窗時。

368 * 當重試無法進一步縮減 `max_tokens` 時。在 v2.1.218 之前,Claude Code 可以重新發送仍然不適應的縮減請求,例如當擴展思考預算超過剩餘內容時,直到重試預算用盡。381 * 當重試無法進一步縮減 `max_tokens` 時。在 v2.1.218 之前,Claude Code 可能會重新發送仍然無法容納的縮減請求,例如當延伸思考預算超過剩餘上下文時,直到重試預算用盡。

369* 在 [Google Cloud 的 Agent Platform](/docs/zh-TW/google-vertex-ai) 上過期或遺失的 Google Cloud 認證,或在您的機器上無法載入的 AWS 認證。Claude Code 會捨棄其快取的認證並重試最多兩次,然後報告錯誤,以便您可以立即重新驗證,如 [Could not load AWS or Google Cloud credentials](#could-not-load-aws-or-google-cloud-credentials) 下所述。在 v2.1.228 之前,Claude Code 會透過完整重試預算重試失敗的 Google Cloud 認證,然後才顯示錯誤。382* 在 [Google Cloud 的 Agent Platform](/docs/zh-TW/google-vertex-ai) 上過期或遺失的 Google Cloud 憑證,或在您的機器上無法載入的 AWS 憑證。Claude Code 會捨棄其快取的憑證並重試最多兩次,然後報告錯誤,以便您可以立即重新驗證,如 [Could not load AWS or Google Cloud credentials](#could-not-load-aws-or-google-cloud-credentials) 下所述。在 v2.1.228 之前,Claude Code 會透過完整重試預算重試失敗的 Google Cloud 憑證,然後才顯示錯誤。

370* 來自 Anthropic API 的 `401` 或 `403`,直接或透過 [LLM gateway](/docs/zh-TW/llm-gateway),而 [`apiKeyHelper`](/docs/zh-TW/settings-reference#apikeyhelper) 指令碼提供認證。Claude Code 會重新執行指令碼並使用其新輸出重試,在完整重試預算內。當指令碼本身在重新執行時失敗時,Claude Code 會改為顯示 [Your apiKeyHelper script is failing](#your-apikeyhelper-script-is-failing)。383* 來自 Anthropic API 的 `401` 或 `403`,直接或透過 [LLM 閘道](/docs/zh-TW/llm-gateway),而 [`apiKeyHelper`](/docs/zh-TW/settings-reference#apikeyhelper) 指令碼提供憑證。Claude Code 會重新執行指令碼並使用其新輸出重試,在完整重試預算內。當指令碼本身在重新執行時失敗時,Claude Code 會改為顯示 [Your apiKeyHelper script is failing](#your-apikeyhelper-script-is-failing)。

371 384 

372在 v2.1.227 之前,`Connection lost before a response was produced` 讀作 `Connection closed while thinking, before producing a response`,`The response stalled before a response was produced` 讀作 `Response stalled while thinking, before producing a response`。385在 v2.1.227 之前,`Connection lost before a response was produced` 讀作 `Connection closed while thinking, before producing a response`,`The response stalled before a response was produced` 讀作 `Response stalled while thinking, before producing a response`。

373 386 

374Claude Code 不會重試這些故障:387Claude Code 不會重試這些故障:

375 388 

376* TLS 憑證驗證失敗,例如 TLS 檢查代理、遺失的 `NODE_EXTRA_CA_CERTS` 套件,或過期的憑證。Claude Code 在第一次嘗試時報告錯誤,以便您可以立即修正憑證設定;請參閱 [SSL certificate errors](#ssl-certificate-errors)。Claude Code 仍會重試暫時性 TLS 條件,例如握手逾時。在 v2.1.199 之前,Claude Code 會透過完整重試預算重試憑證失敗,然後才顯示錯誤。389* TLS 憑證驗證失敗,例如 TLS 檢查代理伺服器、遺失的 `NODE_EXTRA_CA_CERTS` 套件,或過期的憑證。Claude Code 在第一次嘗試時報告錯誤,以便您可以立即修正憑證設定;請參閱 [SSL certificate errors](#ssl-certificate-errors)。Claude Code 仍會重試暫時性 TLS 條件,例如握手逾時。在 v2.1.199 之前,Claude Code 會透過完整重試預算重試憑證失敗,然後才顯示錯誤。

377* 伺服器錯誤、連線中斷,或停滯的串流在 Claude 完成文字區塊或工具呼叫之後到達,或在完成思考後開始一個但在完成回應之前。Claude Code 不會重新執行請求,因為這可能會執行相同的工具呼叫兩次。它會保留 Claude 完成的內容,執行 Claude 完成的任何工具呼叫,並從其結果繼續回合。關於您在互動式工作階段和非互動式工作階段中看到的內容,請閱讀 [The response above may be incomplete](#the-response-above-may-be-incomplete)。在 v2.1.199 之前,當伺服器錯誤在串流中途到達時,Claude Code 會捨棄部分輸出並將整個回合報告為錯誤。390* 伺服器錯誤、連線中斷,或停滯的串流在 Claude 完成文字區塊或工具呼叫之後到達,或在完成思考後開始一個但在完成回應之前。Claude Code 不會重新執行請求,因為這可能會執行相同的工具呼叫兩次。它會保留 Claude 完成的內容,執行 Claude 完成的任何工具呼叫,並從其結果繼續回合。關於您在互動式工作階段和非互動式工作階段中看到的內容,請閱讀 [The response above may be incomplete](#the-response-above-may-be-incomplete)。在 v2.1.199 之前,當伺服器錯誤在串流中途到達時,Claude Code 會捨棄部分輸出並將整個回合報告為錯誤。

378* 在 Claude 完成回應之後到達的故障:不需要重試任何內容,所以 Claude Code 會保留完整回應並正常結束回合。391* 在 Claude 完成回應之後到達的故障:不需要重試任何內容,所以 Claude Code 會保留完整回應並正常結束回合。

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

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

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

382 395 

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

384 當 Claude Code 重試或等待時您看到的內容397 當 Claude Code 重試或等待時您看到的內容


388 401 

389從 v2.1.198 開始,在重試期間會隱藏通常的微調器提示。一旦錯誤原因被揭示,如果故障是 529 過載,倒數計時下方的行也會命名檢查服務狀態的位置:Anthropic API 上的 `status.claude.com`,或其他設定上的訊息中命名的提供者或閘道主機。402從 v2.1.198 開始,在重試期間會隱藏通常的微調器提示。一旦錯誤原因被揭示,如果故障是 529 過載,倒數計時下方的行也會命名檢查服務狀態的位置:Anthropic API 上的 `status.claude.com`,或其他設定上的訊息中命名的提供者或閘道主機。

390 403 

391如果在請求仍待處理時,回應串流上 20 秒內沒有資料到達,微調器會在任何重試開始之前顯示 `Waiting for API response · will retry in … · check your network`。請求尚未失敗:倒數計時執行到 Claude Code 中止停滯連線的點。中止後,您看到的內容取決於回應已進行的距離:404如果在請求仍待處理時,回應串流上 20 秒內沒有資料到達,微調器會在任何重試開始之前顯示 `Waiting for API response · will retry in … · check your network`。請求尚未失敗:倒數計時執行到 Claude Code 中止停滯連線的點。中止後,您看到的內容取決於回應已進行的程度:

392 405 

393* 在 Claude 完成文字區塊或工具呼叫之前,或在完成思考後開始一個,Claude Code 會重試請求或以錯誤結束回合。[Automatic retries](#automatic-retries) 說明它重試哪些停滯以及重試多少次。406* 在 Claude 完成文字區塊或工具呼叫之前,或在完成思考後開始一個之前,Claude Code 會重試請求或以錯誤結束回合。[Automatic retries](#automatic-retries) 說明它重試哪些停滯以及重試多少次。

394* 在 Claude 完成文字區塊或工具呼叫之後,或在完成思考後開始一個,但在 Claude 完成回應之前,Claude Code 會保留 Claude 完成的內容,從 Claude 完成的任何工具呼叫繼續回合,並顯示 [The response above may be incomplete](#the-response-above-may-be-incomplete)。在非互動式工作階段中,以及在任何工作階段中的子代理回應,Claude Code 可能會先提示 Claude 繼續回應;該項目說明何時執行以及何時您仍在那裡看到通知。407* 在 Claude 完成文字區塊或工具呼叫之後,或在完成思考後開始一個之後,但在 Claude 完成回應之前,Claude Code 會保留 Claude 完成的內容,從 Claude 完成的任何工具呼叫繼續回合,並顯示 [The response above may be incomplete](#the-response-above-may-be-incomplete)。在非互動式工作階段中,以及在任何工作階段中的 subagent 回應,Claude Code 可能會先提示 Claude 繼續回應;該項目說明何時執行以及何時您仍在那裡看到通知。

395* 在 Claude 完成回應之後,Claude Code 正常結束回合。408* 在 Claude 完成回應之後,Claude Code 正常結束回合。

396 409 

397一旦資料恢復或重試成功,橫幅會自動清除。如果它在每次嘗試時重新出現,請將其視為 [network issue](#unable-to-connect-to-api)。在 v2.1.185 之前,橫幅在 10 秒後出現,措辭不同。410一旦資料恢復或重試成功,橫幅會自動清除。如果它在每次嘗試時重新出現,請將其視為 [network issue](#unable-to-connect-to-api)。在 v2.1.185 之前,橫幅在 10 秒後出現,措辭不同。

398 411 

399當 Claude 正在諮詢 [advisor](/docs/zh-TW/advisor) 時,橫幅在 90 秒無資料後出現,而不是 20 秒,因為長時間的顧問審查可以發送超過 20 秒的任何內容。在 v2.1.214 之前,20 秒的閾值也適用於顧問呼叫,所以橫幅在顧問審查期間出現,即使沒有任何問題。412當 Claude 正在諮詢 [advisor](/docs/zh-TW/advisor) 時,橫幅在 90 秒無資料後出現,而不是 20 秒,因為長時間的 advisor 審查可能遠超過 20 秒都未發送任何內容。在 v2.1.214 之前,20 秒的閾值也適用於 advisor 呼叫,所以即使沒有任何問題,橫幅也會在 advisor 審查期間出現。

400 413 

401<h3 id="tune-retry-behavior">414<h3 id="tune-retry-behavior">

402 調整重試行為415 調整重試行為


407| 變數 | 預設 | 效果 |420| 變數 | 預設 | 效果 |

408| :- | :- | :- |421| :- | :- | :- |

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

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

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

412| [`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)。 |425| [`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)。 |

413 426 

414<h2 id="server-errors">427<h2 id="server-errors">

415 伺服器錯誤428 伺服器錯誤

416</h2>429</h2>

417 430 

418大多數這些錯誤來自推論提供者:Anthropic 在 Anthropic API 上的服務,以及該提供者在 Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 或自訂閘道上的端點後面的服務。[Auto mode 無法判斷動作的安全性](#auto-mode-cannot-determine-the-safety-of-an-action)和[Agent 因 API 錯誤而提前終止](#agent-terminated-early-due-to-an-api-error)也涵蓋您這一方的原因,例如無法叫用分類器模型的 Amazon Bedrock 帳戶或達到使用限制的子代理。431大多數這些錯誤來自推論提供者:Anthropic 在 Anthropic API 上的服務,以及該提供者在 Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 或自訂閘道上的端點後面的服務。[自動模式無法判斷動作的安全性](#auto-mode-cannot-determine-the-safety-of-an-action)和[Agent 因 API 錯誤而提前終止](#agent-terminated-early-due-to-an-api-error)也涵蓋您這一方的原因,例如無法叫用分類器模型的 Amazon Bedrock 帳戶或達到用量上限的 subagent。

419 432 

420<h3 id="api-error-500-internal-server-error">433<h3 id="api-error-500-internal-server-error">

421 API Error: 500 Internal server error434 API Error: 500 Internal server error


427API Error: 500 Internal server error. This is a server-side issue, usually temporary — try again in a moment. If it persists, check https://status.claude.com.440API Error: 500 Internal server error. This is a server-side issue, usually temporary — try again in a moment. If it persists, check https://status.claude.com.

428```441```

429 442 

430尾部句子名稱檢查服務健康狀況的位置,並因提供者而異。Amazon Bedrock、Google Cloud 的 Agent Platform 和 Microsoft Foundry 設定會名稱該提供者的服務狀態。自訂 `ANTHROPIC_BASE_URL` 會名稱閘道主機。443結尾的句子會指明檢查服務健康狀況的位置,並因提供者而異。Amazon Bedrock、Google Cloud 的 Agent Platform 和 Microsoft Foundry 設定會指明該提供者的服務狀態。自訂 `ANTHROPIC_BASE_URL` 會指明閘道主機。

431 444 

432來自 API 本身的 5xx 表示 API 內部發生意外故障。它不是由您的提示、設定或帳戶引起的。445來自 API 本身的 5xx 表示 API 內部發生意外故障。它不是由您的提示詞、設定或帳戶引起的。

433 446 

434當代理、負載平衡器或閘道以 HTML 錯誤頁面回應時,訊息會顯示狀態碼和頁面的標題,例如 `API Error: 502 Bad Gateway`。對於沒有標題的頁面,訊息會改為顯示狀態碼及其標準名稱。在 v2.1.281 之前,當頁面有標題時狀態碼被丟棄,當頁面沒有標題時列印頁面的原始標記。447當代理伺服器、負載平衡器或閘道以 HTML 錯誤頁面回應時,訊息會顯示狀態碼和頁面的標題,例如 `API Error: 502 Bad Gateway`。對於沒有標題的頁面,訊息會改為顯示狀態碼及其標準名稱。在 v2.1.281 之前,當頁面有標題時狀態碼被丟棄,當頁面沒有標題時列印頁面的原始標記。

435 448 

436**該怎麼做:**449**該怎麼做:**

437 450 

438* 檢查 [status.claude.com](https://status.claude.com) 或訊息中名稱的提供者狀態頁面,查看是否有活躍的事件451* 檢查 [status.claude.com](https://status.claude.com) 或訊息中指明的提供者狀態頁面,查看是否有活躍的事件

439* 等待一分鐘,然後再次傳送您的訊息。您的原始訊息仍在對話中,因此對於較長的提示,您可以輸入 `try again` 而不是貼上整個內容。452* 等待一分鐘,然後再次傳送您的訊息。您的原始訊息仍在對話中,因此對於較長的提示詞,您可以輸入 `try again` 而不是貼上整個內容。

440* 如果錯誤持續存在且沒有發佈的事件,請執行 `/feedback`,以便 Anthropic 可以使用您的請求詳細資訊進行調查。如果您的環境中無法使用 `/feedback`,請參閱[報告錯誤](#report-an-error)。453* 如果錯誤持續存在且沒有發佈的事件,請執行 `/feedback`,以便 Anthropic 可以使用您的請求詳細資訊進行調查。如果您的環境中無法使用 `/feedback`,請參閱[報告錯誤](#report-an-error)。

441 454 

442<h3 id="api-error-repeated-529-overloaded-errors">455<h3 id="api-error-repeated-529-overloaded-errors">


449API Error: Repeated 529 Overloaded errors. The API is at capacity — this is usually temporary. Try again in a moment. If it persists, check https://status.claude.com.462API Error: Repeated 529 Overloaded errors. The API is at capacity — this is usually temporary. Try again in a moment. If it persists, check https://status.claude.com.

450```463```

451 464 

452尾部句子因提供者而異,方式與上面的 500 錯誤相同。465結尾的句子因提供者而異,方式與上面的 500 錯誤相同。

453 466 

454529 不是您的使用限制,也不會計入您的配額。467529 不是您的用量上限,也不會計入您的配額。

455 468 

456**該怎麼做:**469**該怎麼做:**

457 470 

458* 檢查 [status.claude.com](https://status.claude.com) 或訊息中名稱的提供者狀態頁面,查看容量通知471* 檢查 [status.claude.com](https://status.claude.com) 或訊息中指明的提供者狀態頁面,查看容量通知

459* 在幾分鐘後重試472* 在幾分鐘後重試

460* 執行 `/model` 並切換到不同的模型以繼續工作,因為容量是按模型追蹤的。Claude Code 會在一個模型負載特別高時提示您執行此操作,例如 `Opus is experiencing high load, please use /model to switch to Sonnet`。在 Fable 模型上,訊息會名稱 Fable。473* 執行 `/model` 並切換到不同的模型以繼續工作,因為容量是按模型追蹤的。Claude Code 會在一個模型負載特別高時提示您執行此操作,例如 `Opus is experiencing high load, please use /model to switch to Sonnet`。在 Fable 模型上,訊息會指明 Fable。

461 474 

462 在 Claude Desktop 應用程式執行的工作階段中,例如 Code 標籤或 Cowork,訊息讀作 `Opus is experiencing high load. Switch to Sonnet.`,您可以使用應用程式的模型選擇器切換模型。475 在 Claude Desktop 應用程式執行的工作階段中,例如 Code 標籤或 Cowork,訊息讀作 `Opus is experiencing high load. Switch to Sonnet.`,您可以使用應用程式的模型選擇器切換模型。

463 476 


476**該怎麼做:**489**該怎麼做:**

477 490 

478* 重試請求491* 重試請求

479* 如果緩慢的網路或代理是原因,請按照[自動重試](#automatic-retries)中的說明提高 `API_TIMEOUT_MS`492* 如果緩慢的網路或代理伺服器是原因,請按照[自動重試](#automatic-retries)中的說明提高 `API_TIMEOUT_MS`

480* 如果逾時頻繁且您的網路在其他方面狀況良好,請參閱下面的[網路和連線錯誤](#network-and-connection-errors)493* 如果逾時頻繁且您的網路在其他方面狀況良好,請參閱下面的[網路和連線錯誤](#network-and-connection-errors)

481 494 

482<h3 id="no-response-from-api">495<h3 id="no-response-from-api">

483 No response from API496 No response from API

484</h3>497</h3>

485 498 

486Claude Code 傳送了串流請求,API 在第一個位元組的截止時間內沒有返回回應標頭,因此 Claude Code 中止了請求,而不是等待完整的 `API_TIMEOUT_MS` 請求逾時(預設為 10 分鐘)。Claude Code 最多再傳送一次請求,如果[重試預算](#tune-retry-behavior)允許的話。當重試也沒有得到回應時,該輪次以此訊息結束,該訊息顯示每次嘗試等待了多長時間。當您設定 [`CLAUDE_CODE_RETRY_WATCHDOG`](/docs/zh-TW/env-vars) 時,一次重試的上限不適用,Claude Code 會在[調整重試行為](#tune-retry-behavior)中描述的預算下重試。499Claude Code 傳送了串流請求,API 在第一個位元組的截止時間內沒有返回回應標頭,因此 Claude Code 中止了請求,而不是等待完整的 `API_TIMEOUT_MS` 請求逾時(預設為 10 分鐘)。Claude Code 最多再傳送一次請求,如果[重試預算](#tune-retry-behavior)允許的話。當重試也沒有得到回應時,該回合以此訊息結束,該訊息顯示每次嘗試等待了多長時間。當您設定 [`CLAUDE_CODE_RETRY_WATCHDOG`](/docs/zh-TW/env-vars) 時,一次重試的上限不適用,Claude Code 會在[調整重試行為](#tune-retry-behavior)中描述的預算下重試。

487 500 

488```text theme={null}501```text theme={null}

489API Error: No response from API (waited 3m, then 10m on the retry). If a proxy or gateway on your network holds responses until they complete, raise API_TIMEOUT_MS or CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS to wait longer.502API Error: No response from API (waited 3m, then 10m on the retry). If a proxy or gateway on your network holds responses until they complete, raise API_TIMEOUT_MS or CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS to wait longer.


492Claude Code 分別為第一次嘗試的等待回應標頭和重試的等待設定:505Claude Code 分別為第一次嘗試的等待回應標頭和重試的等待設定:

493 506 

494* **第一次嘗試**:當您將其設定為 1 或更多時,[`CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS`](/docs/zh-TW/env-vars),限制在 10 秒到 30 分鐘之間。否則 Claude Code 會使用[串流空閒監視程式](/docs/zh-TW/network-config#streaming-idle-watchdogs)中列出的位元組級監視程式逾時,因此改變該逾時的變數也會改變此等待。無論哪種方式,Claude Code 都會為請求正文的每 32KB 添加一秒。507* **第一次嘗試**:當您將其設定為 1 或更多時,[`CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS`](/docs/zh-TW/env-vars),限制在 10 秒到 30 分鐘之間。否則 Claude Code 會使用[串流空閒監視程式](/docs/zh-TW/network-config#streaming-idle-watchdogs)中列出的位元組級監視程式逾時,因此改變該逾時的變數也會改變此等待。無論哪種方式,Claude Code 都會為請求正文的每 32KB 添加一秒。

495* **重試**:比 `API_TIMEOUT_MS` 少一秒,預設略低於 10 分鐘,以便重試可以超過保持回應直到生成完成的代理或閘道。在 Amazon Bedrock 上,重試使用與第一次嘗試相同的截止時間,訊息顯示一個持續時間而不是兩個。508* **重試**:比 `API_TIMEOUT_MS` 少一秒,預設略低於 10 分鐘,以便重試可以超過保持回應直到生成完成的代理伺服器或閘道。在 Amazon Bedrock 上,重試使用與第一次嘗試相同的截止時間,訊息顯示一個持續時間而不是兩個。

496 509 

497兩個等待都不超過正 `API_TIMEOUT_MS` 少一秒,正 `API_TIMEOUT_MS` 在 11 秒以下會關閉截止時間。位元組級監視程式僅在回應標頭到達後才開始,因此在此之後停止傳送位元組的回應遵循[停滯串流規則](#automatic-retries)而不是此截止時間。510兩個等待都不超過正 `API_TIMEOUT_MS` 少一秒,正 `API_TIMEOUT_MS` 在 11 秒以下會關閉截止時間。位元組級監視程式僅在回應標頭到達後才開始,因此在此之後停止傳送位元組的回應遵循[停滯串流規則](#automatic-retries)而不是此截止時間。

498 511 

499**該怎麼做:**512**該怎麼做:**

500 513 

501* 再次傳送您的訊息。您的原始訊息仍在對話中,因此對於較長的提示,您可以輸入 `try again` 而不是貼上整個內容。514* 再次傳送您的訊息。您的原始訊息仍在對話中,因此對於較長的提示詞,您可以輸入 `try again` 而不是貼上整個內容。

502* 如果重複出現,將其視為[網路或代理問題](#unable-to-connect-to-api)。515* 如果重複出現,將其視為[網路或代理伺服器問題](#unable-to-connect-to-api)。

503* 如果您網路上的代理或閘道保持回應直到完成,請提高 `API_TIMEOUT_MS` 以便重試等待更長時間。在 Amazon Bedrock 上,也請提高 `CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS`。516* 如果您網路上的代理伺服器或閘道保持回應直到完成,請提高 `API_TIMEOUT_MS` 以便重試等待更長時間。在 Amazon Bedrock 上,也請提高 `CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS`。

504* 如果第一次嘗試持續逾時,然後重試成功,請提高 `CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS` 以便第一次嘗試也等待足夠長的時間。517* 如果第一次嘗試持續逾時,然後重試成功,請提高 `CLAUDE_STREAM_FIRST_BYTE_TIMEOUT_MS` 以便第一次嘗試也等待足夠長的時間。

505 518 

506在 v2.1.242 之前,Claude Code 在未回應的串流請求失敗之前等待完整的 `API_TIMEOUT_MS` 請求逾時(預設為 10 分鐘)。在 v2.1.261 之前,重試等待與第一次嘗試相同的截止時間,訊息沒有顯示持續時間。519在 v2.1.242 之前,Claude Code 在未回應的串流請求失敗之前等待完整的 `API_TIMEOUT_MS` 請求逾時(預設為 10 分鐘)。在 v2.1.261 之前,重試等待與第一次嘗試相同的截止時間,訊息沒有顯示持續時間。


509 The response above may be incomplete522 The response above may be incomplete

510</h3>523</h3>

511 524 

512串流請求在回應仍在進行中時失敗,在 Claude 完成一個文字區塊或工具呼叫之後,或在完成思考後開始一個。重新傳送請求可能會執行相同的工具呼叫兩次,因此 Claude Code 會保留 Claude 完成的輸出並附加此通知,而不是丟棄該輪次。您看到的變體名稱原因:525串流請求在回應仍在進行中時失敗,在 Claude 完成一個文字區塊或工具呼叫之後,或在完成思考後開始一個。重新傳送請求可能會執行相同的工具呼叫兩次,因此 Claude Code 會保留 Claude 完成的輸出並附加此通知,而不是丟棄該回合。您看到的變體會指明原因:

513 526 

514```text theme={null}527```text theme={null}

515API Error: Server error mid-response. The response above may be incomplete.528API Error: Server error mid-response. The response above may be incomplete.


520API Error: The response stream was malformed. The response above may be incomplete.533API Error: The response stream was malformed. The response above may be incomplete.

521```534```

522 535 

523* `Server error mid-response`:中流過載或 5xx 伺服器錯誤。此變體需要 Claude Code v2.1.199 或更高版本;在此之前,該情況會丟棄部分輸出並將整個輪次報告為錯誤。536* `Server error mid-response`:中流過載或 5xx 伺服器錯誤。此變體需要 Claude Code v2.1.199 或更高版本;在此之前,該情況會丟棄部分輸出並將整個回合報告為錯誤。

524* `Connection lost mid-response`:連線中斷。您也會在代理或閘道在回應完成之前乾淨地結束回應正文時看到此變體。537* `Connection lost mid-response`:連線中斷。您也會在代理伺服器或閘道在回應完成之前乾淨地結束回應正文時看到此變體。

525* `Your computer went to sleep mid-response`:Claude Code 偵測到您的電腦在回應串流時進入睡眠狀態。一旦您的電腦喚醒,Claude Code 會將連線視為中斷並停止從中讀取。538* `Your computer went to sleep mid-response`:Claude Code 偵測到您的電腦在回應串流時進入睡眠狀態。一旦您的電腦喚醒,Claude Code 會將連線視為中斷並停止從中讀取。

526* `Part of the response never arrived`:串流事件在 API 和 Claude Code 之間被丟棄,因此稍後的事件參考了從未到達的內容。在 v2.1.281 之前,此情況以 `API Error: Content block not found` 結束該輪次。539* `Part of the response never arrived`:串流事件在 API 和 Claude Code 之間被丟棄,因此稍後的事件參考了從未到達的內容。在 v2.1.281 之前,此情況以 `API Error: Content block not found` 結束該回合。

527* `The response stream was malformed`:已完成的內容區塊到達了事件,或事件到達時已損壞。損壞的事件是指其資料不是有效 JSON、其內容遺失或其內容與事件類型不符的事件。在 v2.1.284 之前,當具有無效 JSON 的事件在 Claude 完成其思考、文字區塊或工具呼叫後到達時,解析器的原始錯誤(例如以 `API Error: JSON Parse error` 開頭的錯誤)會出現。540* `The response stream was malformed`:已完成的內容區塊到達了事件,或事件到達時已損壞。損壞的事件是指其資料不是有效 JSON、其內容遺失或其內容與事件類型不符的事件。在 v2.1.284 之前,當具有無效 JSON 的事件在 Claude 完成其思考、文字區塊或工具呼叫後到達時,解析器的原始錯誤(例如以 `API Error: JSON Parse error` 開頭的錯誤)會出現。

528* `The response stopped arriving`:連線保持開啟但停止傳遞資料,因此串流空閒監視程式中止了它。在 v2.1.222 之前,Claude Code 也可能在通過 `ANTHROPIC_BASE_URL` 或 `ANTHROPIC_AWS_BASE_URL` 到達的[閘道](/docs/zh-TW/gateways)連線上報告此故障,同時伺服器的保活 ping 仍在到達,因為它只計算那裡解析的回應事件;升級會停止這些虛假逾時在這些路由上。通過提供者基礎 URL(例如 `ANTHROPIC_BEDROCK_BASE_URL`)到達的閘道不被位元組監視程式包裝;請參閱[串流空閒監視程式](/docs/zh-TW/network-config#streaming-idle-watchdogs)。541* `The response stopped arriving`:連線保持開啟但停止傳遞資料,因此串流空閒監視程式中止了它。在 v2.1.222 之前,Claude Code 也可能在通過 `ANTHROPIC_BASE_URL` 或 `ANTHROPIC_AWS_BASE_URL` 到達的[閘道](/docs/zh-TW/gateways)連線上報告此故障,同時伺服器的保活 ping 仍在到達,因為它只計算那裡解析的回應事件;升級會停止這些虛假逾時在這些路由上。通過提供者基礎 URL(例如 `ANTHROPIC_BEDROCK_BASE_URL`)到達的閘道不被位元組監視程式包裝;請參閱[串流空閒監視程式](/docs/zh-TW/network-config#streaming-idle-watchdogs)。

529 542 


531 544 

532當丟棄、重複或損壞的串流事件在 Claude 開始任何文字或工具呼叫之前到達時,您看不到此通知:545當丟棄、重複或損壞的串流事件在 Claude 開始任何文字或工具呼叫之前到達時,您看不到此通知:

533 546 

534* 如果 Claude 只完成了其思考,Claude Code 會重新發出請求。當重新發出的串流以相同方式中斷時,該輪次以 `Part of the response never arrived and no response was produced. Try again.` 或 `The response stream was malformed and no response was produced. Try again.` 結束。547* 如果 Claude 只完成了其思考,Claude Code 會重新發出請求。當重新發出的串流以相同方式中斷時,該回合以 `Part of the response never arrived and no response was produced. Try again.` 或 `The response stream was malformed and no response was produced. Try again.` 結束。

535* 如果沒有完成任何內容,Claude Code 會改為重新傳送請求而不進行串流。如果您使用 [`CLAUDE_CODE_DISABLE_NONSTREAMING_FALLBACK`](/docs/zh-TW/env-vars) 關閉了該回退,該輪次會以 `API Error: Content block not found` 結束丟棄的事件或 `API Error: Content block already closed` 結束重複的事件。對於損壞的事件且回退關閉,該輪次以 `API Error: Stream event unreadable` 或解析器的原始錯誤結束。548* 如果沒有完成任何內容,Claude Code 會改為重新傳送請求而不進行串流。如果您使用 [`CLAUDE_CODE_DISABLE_NONSTREAMING_FALLBACK`](/docs/zh-TW/env-vars) 關閉了該備援,該回合會以 `API Error: Content block not found` 結束丟棄的事件或 `API Error: Content block already closed` 結束重複的事件。對於損壞的事件且備援關閉,該回合以 `API Error: Stream event unreadable` 或解析器的原始錯誤結束。

536 549 

537在四種情況下,Claude Code 會在不立即顯示此通知的情況下處理故障:550在四種情況下,Claude Code 會在不立即顯示此通知的情況下處理故障:

538 551 

539* 在回應的早期,Claude Code 要麼重試故障,要麼以不同的錯誤結束輪次。請參閱[自動重試](#automatic-retries)。552* 在回應的早期,Claude Code 要麼重試故障,要麼以不同的錯誤結束回合。請參閱[自動重試](#automatic-retries)。

540* 當這些故障之一在 Claude 完成回應後到達時,Claude Code 會保留完整回應並正常結束輪次,沒有此通知。在 v2.1.222 之前,Claude Code 在連線中斷或在回應完成後停滯時顯示此通知,並將輪次報告為錯誤,儘管回應是完整的。553* 當這些故障之一在 Claude 完成回應後到達時,Claude Code 會保留完整回應並正常結束回合,沒有此通知。在 v2.1.222 之前,Claude Code 在連線中斷或在回應完成後停滯時顯示此通知,並將回合報告為錯誤,儘管回應是完整的。

541* 在[非互動式工作階段](/docs/zh-TW/headless)中,例如 `-p` 執行、[Agent SDK](/docs/zh-TW/agent-sdk/overview) 執行或[雲端工作階段](/docs/zh-TW/claude-code-on-the-web),當截斷回應在主對話中且包含文字但沒有工具呼叫時,您不必自己傳送 `continue`:Claude Code 會保留部分輸出並提示 Claude 從停止的地方繼續,最多連續三次。您只有在 Claude Code 用完這些繼續後才會看到此通知。在 v2.1.246 之前,Claude Code 在第一次截斷時以此通知結束非互動式輪次。554* 在[非互動式工作階段](/docs/zh-TW/headless)中,例如 `-p` 執行、[Agent SDK](/docs/zh-TW/agent-sdk/overview) 執行或[雲端工作階段](/docs/zh-TW/claude-code-on-the-web),當截斷回應在主對話中且包含文字但沒有工具呼叫時,您不必自己傳送 `continue`:Claude Code 會保留部分輸出並提示 Claude 從停止的地方繼續,最多連續三次。您只有在 Claude Code 用完這些繼續後才會看到此通知。在 v2.1.246 之前,Claude Code 在第一次截斷時以此通知結束非互動式回合。

542* 在[子代理](/docs/zh-TW/sub-agents#api-errors-in-subagents)中,無論工作階段是否互動:當其截斷回應包含文字但沒有工具呼叫時,Claude Code 會提示子代理繼續。通知僅在這些繼續用完後才成為子代理的最後一條訊息。在 v2.1.257 之前,子代理在第一次截斷時顯示此通知。555* 在 [subagent](/docs/zh-TW/sub-agents#api-errors-in-subagents) 中,無論工作階段是否互動:當其截斷回應包含文字但沒有工具呼叫時,Claude Code 會提示 subagent 繼續。通知僅在這些繼續用完後才成為 subagent 的最後一條訊息。在 v2.1.257 之前,subagent 在第一次截斷時顯示此通知。

543 556 

544**該怎麼做:**557**該怎麼做:**

545 558 

546* 在互動式工作階段中,閱讀螢幕上保留的回應:Claude Code 保留 Claude 在錯誤之前完成的每個區塊,但在輪次結束時丟棄中斷的最後區塊,因此最後的句子或工具呼叫可能會遺失。回覆 `continue` 以讓 Claude 從其最後完成的區塊繼續。559* 在互動式工作階段中,閱讀螢幕上保留的回應:Claude Code 保留 Claude 在錯誤之前完成的每個區塊,但在回合結束時丟棄中斷的最後區塊,因此最後的句子或工具呼叫可能會遺失。回覆 `continue` 以讓 Claude 從其最後完成的區塊繼續。

547* 在[非互動式模式](/docs/zh-TW/headless)(`-p`)中:560* 在[非互動模式](/docs/zh-TW/headless)(`-p`)中:

548 * 使用預設文字輸出,Claude Code 會列印它仍然從輪次早期保留的最後完成的文字區塊,然後是此訊息。當它沒有保留任何內容時,Claude Code 會單獨列印此訊息,例如因為 Claude Code 在輪次中間壓縮了對話並清除了該文字。在 v2.1.219 之前,Claude Code 在 `-p` 文字輸出中只列印此訊息並丟棄它已經產生的回應。561 * 使用預設文字輸出,Claude Code 會列印它仍然從回合早期保留的最後完成的文字區塊,然後是此訊息。當它沒有保留任何內容時,Claude Code 會單獨列印此訊息,例如因為 Claude Code 在回合中間壓縮了對話並清除了該文字。在 v2.1.219 之前,Claude Code 在 `-p` 文字輸出中只列印此訊息並丟棄它已經產生的回應。

549 * 使用 `--output-format json` 或 `stream-json`,Claude Code 會在 `result` 欄位中報告此訊息。562 * 使用 `--output-format json` 或 `stream-json`,Claude Code 會在 `result` 欄位中報告此訊息。

550 * 一旦連線穩定,要繼續該輪次,請恢復工作階段並按照[繼續對話](/docs/zh-TW/headless#continue-conversations)中的說明傳送 `continue`。563 * 一旦連線穩定,要繼續該回合,請恢復工作階段並按照[繼續對話](/docs/zh-TW/headless#continue-conversations)中的說明傳送 `continue`。

551 564 

552<h3 id="auto-mode-cannot-determine-the-safety-of-an-action">565<h3 id="auto-mode-cannot-determine-the-safety-of-an-action">

553 Auto mode cannot determine the safety of an action566 Auto mode cannot determine the safety of an action

554</h3>567</h3>

555 568 

556[auto mode](/docs/zh-TW/permission-modes#eliminate-prompts-with-auto-mode) 使用的模型無法產生決定來分類動作,因此 auto mode 沒有自動批准該動作。您看到的訊息取決於分類器如何失敗。569[自動模式](/docs/zh-TW/permission-modes#eliminate-prompts-with-auto-mode)用來分類動作的模型無法產生決定,因此自動模式沒有自動核准該動作。您看到的訊息取決於分類器如何失敗。

557 570 

558讀取、搜尋和編輯您的工作目錄內的內容會跳過分類器,因此它們在所有這些情況下都能繼續工作。571讀取、搜尋和編輯您的工作目錄內的內容會跳過分類器,因此它們在所有這些情況下都能繼續工作。

559 572 


563<model> is temporarily unavailable, so auto mode cannot determine the safety of <tool> right now. Wait a moment and then try this action again.576<model> is temporarily unavailable, so auto mode cannot determine the safety of <tool> right now. Wait a moment and then try this action again.

564```577```

565 578 

566當 Claude Code 可以判斷故障類別時,它會在 `temporarily unavailable` 後面的括號中名稱該類別,例如 `<model> is temporarily unavailable (rate-limited), so auto mode cannot determine the safety of <tool> right now`。類別為 `(rate-limited)`、`(overloaded)`、`(server error)`、`(timed out)` 和 `(connection failed)`。如果 `(timed out)` 或 `(connection failed)` 重複,請檢查您的連線;請參閱[無法連線到 API](#unable-to-connect-to-api)。在 v2.1.229 之前,訊息從不名稱類別,讀作 `Wait briefly and then try this action again`。579當 Claude Code 可以判斷故障類別時,它會在 `temporarily unavailable` 後面的括號中指明該類別,例如 `<model> is temporarily unavailable (rate-limited), so auto mode cannot determine the safety of <tool> right now`。類別為 `(rate-limited)`、`(overloaded)`、`(server error)`、`(timed out)` 和 `(connection failed)`。如果 `(timed out)` 或 `(connection failed)` 重複,請檢查您的連線;請參閱[無法連線到 API](#unable-to-connect-to-api)。在 v2.1.229 之前,訊息從不指明類別,讀作 `Wait briefly and then try this action again`。

567 580 

568當沒有類別符合時,訊息出現時括號中沒有類別;多個故障會產生該形式。在 [Amazon Bedrock](/docs/zh-TW/amazon-bedrock) 上,包括 [Mantle 端點](/docs/zh-TW/amazon-bedrock#use-the-mantle-endpoint),當您的 AWS 帳戶無法叫用訊息中名稱的模型時,它也會出現,該故障在每次重試時重複,直到您的帳戶被授予存取該模型的權限。581當沒有類別符合時,訊息出現時括號中沒有類別;多個故障會產生該形式。在 [Amazon Bedrock](/docs/zh-TW/amazon-bedrock) 上,包括 [Mantle 端點](/docs/zh-TW/amazon-bedrock#use-the-mantle-endpoint),當您的 AWS 帳戶無法叫用訊息中指明的模型時,它也會出現,該故障在每次重試時重複,直到您的帳戶被授予存取該模型的權限。

569 582 

570**該怎麼做:**583**該怎麼做:**

571 584 

572* 在幾秒後重試;Claude 會看到相同的訊息,通常會自動重試。暫時故障與 [auto mode 資格](/docs/zh-TW/permission-modes#eliminate-prompts-with-auto-mode)無關;您不需要變更設定585* 在幾秒後重試;Claude 會看到相同的訊息,通常會自動重試。暫時故障與[自動模式資格](/docs/zh-TW/permission-modes#eliminate-prompts-with-auto-mode)無關;您不需要變更設定

573* 如果重試持續失敗,請繼續進行唯讀任務,稍後再回到被阻止的動作586* 如果重試持續失敗,請繼續進行唯讀任務,稍後再回到被阻止的動作

574* 在 Amazon Bedrock 上,如果訊息在每次重試時返回,請檢查您的帳戶是否可以叫用它名稱的模型:對於標準 Amazon Bedrock 模型,確認您的 [IAM 政策](/docs/zh-TW/amazon-bedrock#iam-configuration)允許叫用它;對於 Mantle 模型 ID,[聯絡您的 AWS 帳戶團隊](/docs/zh-TW/amazon-bedrock#mantle-endpoint-errors)587* 在 Amazon Bedrock 上,如果訊息在每次重試時返回,請檢查您的帳戶是否可以叫用它指明的模型:對於標準 Amazon Bedrock 模型,確認您的 [IAM 政策](/docs/zh-TW/amazon-bedrock#iam-configuration)允許叫用它;對於 Mantle 模型 ID,[聯絡您的 AWS 帳戶團隊](/docs/zh-TW/amazon-bedrock#mantle-endpoint-errors)

575 588 

576當分類器請求失敗是因為您的 OAuth 令牌過期或被另一個工作階段輪換時,Claude Code 會重新整理令牌並重試請求一次,因此例行令牌過期不會作為此訊息出現。在 v2.1.216 之前,過期或輪換的令牌會導致每個分類器請求失敗,auto mode 會以此訊息拒絕每個檢查的動作,直到令牌被重新整理。589當分類器請求失敗是因為您的 OAuth token 過期或被另一個工作階段輪換時,Claude Code 會重新整理 token 並重試請求一次,因此例行的 token 過期不會作為此訊息出現。在 v2.1.216 之前,過期或輪換的 token 會導致每個分類器請求失敗,自動模式會以此訊息拒絕每個檢查的動作,直到 token 被重新整理。

577 590 

578當分類器返回無法解析的回應時:591當分類器返回無法解析的回應時:

579 592 


592Auto mode could not evaluate this action and is blocking it for safety — a safety check separate from auto mode blocked this request because of earlier conversation content — it isn't about the action itself — run with --debug for details605Auto mode could not evaluate this action and is blocking it for safety — a safety check separate from auto mode blocked this request because of earlier conversation content — it isn't about the action itself — run with --debug for details

593```606```

594 607 

595Claude Code 拒絕該動作,但告訴 Claude 這不是對該動作不安全的判斷,並繼續進行其他任務而不是重試。這些拒絕不計入 [auto mode 的暫停閾值](/docs/zh-TW/permission-modes#when-auto-mode-falls-back)。在[非互動式](/docs/zh-TW/headless) `-p` 執行中,Claude Code 不會停止執行。Claude 接收的內容取決於它在哪裡請求該動作:608Claude Code 拒絕該動作,但告訴 Claude 這不是對該動作不安全的判斷,並繼續進行其他任務而不是重試。這些拒絕不計入[自動模式的暫停閾值](/docs/zh-TW/permission-modes#when-auto-mode-falls-back)。在[非互動式](/docs/zh-TW/headless) `-p` 執行中,Claude Code 不會停止執行。Claude 接收的內容取決於它在哪裡請求該動作:

596 609 

597* 對於 `-p` 執行中沒有 `--input-format stream-json` 的[背景子代理](/docs/zh-TW/sub-agents#run-subagents-in-foreground-or-background),Claude Code 會返回包含 `Agent aborted: auto mode classifier request refused by the safety safeguard in headless mode` 的錯誤結果610* 對於 `-p` 執行中沒有 `--input-format stream-json` 的[背景 subagent](/docs/zh-TW/sub-agents#run-subagents-in-foreground-or-background),Claude Code 會返回包含 `Agent aborted: auto mode classifier request refused by the safety safeguard in headless mode` 的錯誤結果

598* 在其他地方,包括互動式工作階段和 `-p` 執行的主對話,Claude Code 會將該拒絕返回給 Claude611* 在其他地方,包括互動式工作階段和 `-p` 執行的主對話,Claude Code 會將該拒絕返回給 Claude

599 612 

600在 v2.1.225 之前,Claude Code 計算這些拒絕以達到暫停閾值,並返回與真正分類器區塊相同的拒絕訊息。613在 v2.1.225 之前,Claude Code 計算這些拒絕以達到暫停閾值,並返回與真正分類器區塊相同的拒絕訊息。

601 614 

602**該怎麼做:**615**該怎麼做:**

603 616 

604* 這不是對您的動作的決定。您對話中已有的內容在 auto mode 將對話傳送給分類器時觸發了 API 上的安全篩選器617* 這不是對您的動作的決定。您對話中已有的內容在自動模式將對話傳送給分類器時觸發了 API 上的安全篩選器

605* 重試無法幫助;相同的對話內容將再次觸發篩選器618* 重試無法幫助;相同的對話內容將再次觸發篩選器

606* 在互動式工作階段中,切換到不同的[權限模式](/docs/zh-TW/permission-modes),以便您可以在提示時批准該動作619* 在互動式工作階段中,切換到不同的[權限模式](/docs/zh-TW/permission-modes),以便您可以在提示時核准該動作

607* 開始一個新的對話,不包含觸發內容620* 開始一個新的對話,不包含觸發內容

608 621 

609當對話增長超過分類器的上下文視窗時:622當對話增長超過分類器的上下文視窗時:


614 627 

615動作發生的情況取決於 Claude 在哪裡請求它:628動作發生的情況取決於 Claude 在哪裡請求它:

616 629 

617* 在互動式工作階段中,auto mode 會回退到該動作的正常權限提示,以便您可以手動批准或拒絕它630* 在互動式工作階段中,自動模式會改用該動作的正常權限提示,以便您可以手動核准或拒絕它

618* 對於 [非互動式](/docs/zh-TW/headless) `-p` 執行中沒有 `--input-format stream-json` 的[背景子代理](/docs/zh-TW/sub-agents#run-subagents-in-foreground-or-background),Claude Code 會返回包含 `Agent aborted: auto mode classifier transcript exceeded context window in headless mode` 的錯誤結果,執行繼續631* 對於[非互動式](/docs/zh-TW/headless) `-p` 執行中沒有 `--input-format stream-json` 的[背景 subagent](/docs/zh-TW/sub-agents#run-subagents-in-foreground-or-background),Claude Code 會返回包含 `Agent aborted: auto mode classifier transcript exceeded context window in headless mode` 的錯誤結果,執行繼續

619* 在 `-p` 執行中的其他地方,沒有 [`--permission-prompt-tool`](/docs/zh-TW/cli-reference#cli-flags),沒有提示可以回退到,因此動作不執行,執行繼續632* 在 `-p` 執行中的其他地方,沒有 [`--permission-prompt-tool`](/docs/zh-TW/cli-reference#cli-flags),沒有提示可以改用,因此動作不執行,執行繼續

620 633 

621**該怎麼做:**634**該怎麼做:**

622 635 

623* 在互動式工作階段中,在出現的提示中批准或拒絕該動作636* 在互動式工作階段中,在出現的提示中核准或拒絕該動作

624* 在互動式工作階段中,執行 `/compact` 以減少對話大小,以便後續動作再次適應分類器視窗637* 在互動式工作階段中,執行 `/compact` 以減少對話大小,以便後續動作再次適應分類器視窗

625 638 

626<h3 id="the-server-returned-no-safety-verdict">639<h3 id="the-server-returned-no-safety-verdict">

627 The server returned no safety verdict640 The server returned no safety verdict

628</h3>641</h3>

629 642 

630在[伺服器端分類器審查](/docs/zh-TW/permission-modes#server-side-classifier-review)下,當伺服器沒有給出判決時,auto mode 會拒絕一個動作。拒絕會在 Claude Code 可以判斷一個類別時在括號中名稱該類別,例如 `(timed out)`:643在[伺服器端分類器審查](/docs/zh-TW/permission-modes#server-side-classifier-review)下,當伺服器沒有給出判決時,自動模式會拒絕一個動作。拒絕會在 Claude Code 可以判斷一個類別時在括號中指明該類別,例如 `(timed out)`:

631 644 

632```text theme={null}645```text theme={null}

633The server-side auto mode classifier gave no verdict (timed out), so auto mode cannot determine the safety of <tool>.646The server-side auto mode classifier gave no verdict (timed out), so auto mode cannot determine the safety of <tool>.

634```647```

635 648 

636訊息的其餘部分告訴 Claude 一次重試是否可以幫助。在某些這些拒絕之前,Claude Code 會等待,以便 Claude 的下一次嘗試不會立即跟隨。在互動式工作階段中等待期間,微調器顯示 `Auto mode check unavailable` 並帶有倒計時,按 `Esc` 會中斷該輪次。649訊息的其餘部分告訴 Claude 一次重試是否可以幫助。在某些這些拒絕之前,Claude Code 會等待,以便 Claude 的下一次嘗試不會立即跟隨。在互動式工作階段中等待期間,微調器顯示 `Auto mode check unavailable` 並帶有倒計時,按 `Esc` 會中斷該回合。

637 650 

638在連續十個回應都沒有判決後,auto mode 會停止該輪次:651在連續十個回應都沒有判決後,自動模式會停止該回合:

639 652 

640```text theme={null}653```text theme={null}

641Auto mode is unavailable — the server returned no safety verdict for the last 10 responses, so Claude stopped. Send a message to try again, or switch out of auto mode.654Auto mode is unavailable — the server returned no safety verdict for the last 10 responses, so Claude stopped. Send a message to try again, or switch out of auto mode.


643 656 

644停止訊息在每種工作階段中出現在不同的位置:657停止訊息在每種工作階段中出現在不同的位置:

645 658 

646* 在互動式工作階段中,訊息作為警告出現在記錄中,輪次結束659* 在互動式工作階段中,訊息作為警告出現在逐字稿中,回合結束

647* 在[非互動式](/docs/zh-TW/headless) `-p` 執行中,執行結束並報告執行錯誤。使用預設文字輸出,訊息在 stderr 上列印660* 在[非互動式](/docs/zh-TW/headless) `-p` 執行中,執行結束並報告執行錯誤。使用預設文字輸出,訊息在 stderr 上列印。

648* 當[子代理](/docs/zh-TW/sub-agents)達到限制時,子代理在完成之前停止,Claude 會收到它產生的任何內容,並附帶 auto mode 停止它的說明661* 當 [subagent](/docs/zh-TW/sub-agents) 達到限制時,subagent 在完成之前停止,Claude 會收到它產生的任何內容,並附帶自動模式停止它的說明

649 662 

650**該怎麼做:**663**該怎麼做:**

651 664 

652* 傳送另一條訊息以讓 Claude 再試一次。回應計數重新開始。665* 傳送另一條訊息以讓 Claude 再試一次。回應計數重新開始。

653* 如果停止重複且您的請求通過[LLM 閘道或代理](/docs/zh-TW/llm-gateway),檢查它是否縮短串流回應或重寫它們。[伺服器端分類器審查](/docs/zh-TW/permission-modes#server-side-classifier-review)說明哪個閘道行為會導致拒絕,[閘道相容性指南](/docs/zh-TW/llm-gateway-protocol#feature-pass-through)列出要保持不變的內容。666* 如果停止重複且您的請求通過 [LLM 閘道或代理伺服器](/docs/zh-TW/llm-gateway),檢查它是否縮短串流回應或重寫它們。[伺服器端分類器審查](/docs/zh-TW/permission-modes#server-side-classifier-review)說明哪個閘道行為會導致拒絕,[閘道相容性指南](/docs/zh-TW/llm-gateway-protocol#feature-pass-through)列出要保持不變的內容。

654* 在啟動 Claude Code 之前設定 `CLAUDE_CODE_AUTO_MODE_SERVER=0` 以改用其自己的分類器請求。在 v2.1.281 之前,Claude Code 在直接連線到 Anthropic API 時不讀取該變數。667* 在啟動 Claude Code 之前設定 `CLAUDE_CODE_AUTO_MODE_SERVER=0` 以改用其自己的分類器請求。在 v2.1.281 之前,Claude Code 在直接連線到 Anthropic API 時不讀取該變數。

655* 要自己批准動作,請改為[切換出 auto mode](/docs/zh-TW/permission-modes#switch-permission-modes)668* 要自己核准動作,請改為[切換出自動模式](/docs/zh-TW/permission-modes#switch-permission-modes)

656 669 

657在 v2.1.280 之前,Claude Code 立即拒絕來自沒有判決的回應的每個動作,從不停止該輪次。670在 v2.1.280 之前,Claude Code 立即拒絕來自沒有判決的回應的每個動作,從不停止該回合。

658 671 

659<h3 id="agent-terminated-early-due-to-an-api-error">672<h3 id="agent-terminated-early-due-to-an-api-error">

660 Agent terminated early due to an API error673 Agent terminated early due to an API error

661</h3>674</h3>

662 675 

663[子代理](/docs/zh-TW/sub-agents)的 API 請求終止失敗,例如因為達到使用限制或伺服器錯誤的重試用完,所以子代理在完成其任務之前停止。此訊息需要 Claude Code v2.1.199 或更高版本;在此之前,API 錯誤文字被返回給 Claude,就像它是子代理的結果一樣。676[subagent](/docs/zh-TW/sub-agents) 的 API 請求終止失敗,例如因為達到用量上限或伺服器錯誤的重試用完,所以 subagent 在完成其任務之前停止。此訊息需要 Claude Code v2.1.199 或更高版本;在此之前,API 錯誤文字被返回給 Claude,就像它是 subagent 的結果一樣。

664 677 

665```text theme={null}678```text theme={null}

666Agent terminated early due to an API error: <error detail>679Agent terminated early due to an API error: <error detail>


668 681 

669**該怎麼做:**682**該怎麼做:**

670 683 

671* 將冒號後的錯誤詳細資訊與此頁面上的其自己的部分相符,例如[使用限制](#usage-limits)或[伺服器錯誤](#server-errors),並遵循該部分的步驟684* 將冒號後的錯誤詳細資訊與此頁面上對應的部分相符,例如[用量上限](#usage-limits)或[伺服器錯誤](#server-errors),並遵循該部分的步驟

672* 一旦基礎錯誤清除,請要求 Claude 重試任務或[恢復子代理](/docs/zh-TW/sub-agents#resume-subagents)685* 一旦基礎錯誤清除,請要求 Claude 重試任務或[恢復 subagent](/docs/zh-TW/sub-agents#resume-subagents)

673 686 

674當速率限制、過載或伺服器錯誤中斷已經產生文字輸出的前景子代理時,Claude 會收到該部分輸出標記為不完整,而不是此錯誤。其唯一輸出是工具呼叫的子代理也會收到此錯誤;在 v2.1.199 中,該形狀返回了空部分結果。請參閱[子代理中的 API 錯誤](/docs/zh-TW/sub-agents#api-errors-in-subagents)。687當速率限制、過載或伺服器錯誤中斷已經產生文字輸出的前景 subagent 時,Claude 會收到該部分輸出標記為不完整,而不是此錯誤。其唯一輸出是工具呼叫的 subagent 也會收到此錯誤;在 v2.1.199 中,該形狀返回了空部分結果。請參閱 [subagent 中的 API 錯誤](/docs/zh-TW/sub-agents#api-errors-in-subagents)。

675 688 

676<h2 id="usage-limits">689<h2 id="usage-limits">

677 使用限制690 使用限制


694 707 

695Claude Code 會阻止進一步的請求,直到訊息中顯示的重設時間。工作階段和每週限制在所有模型中共享,因此切換模型不會恢復存取。Opus 和 Sonnet 限制各自僅適用於對該模型系列的請求,因此使用 `/model` 切換到該系列外的模型可讓您繼續工作。708Claude Code 會阻止進一步的請求,直到訊息中顯示的重設時間。工作階段和每週限制在所有模型中共享,因此切換模型不會恢復存取。Opus 和 Sonnet 限制各自僅適用於對該模型系列的請求,因此使用 `/model` 切換到該系列外的模型可讓您繼續工作。

696 709 

697在使用 claude.ai 訂閱登入的互動式工作階段中,Claude Code 也可以在開啟的工作階段中等待,並在重設後不久繼續中斷的任務。等待時,工作階段底部的一行會顯示 `Usage limit reached · continuing automatically at 3:45pm · esc to cancel`。在空提示處按 `Esc` 可取消等待。請參閱[等待使用限制重設](/docs/zh-TW/interactive-mode#wait-for-a-usage-limit-to-reset)以了解您看到的內容、如何開始或取消等待,以及如何關閉自動繼續。在 v2.1.234 之前,Claude Code 不提供此等待功能。710在使用 claude.ai 訂閱登入的互動式工作階段中,Claude Code 也可以在開啟的工作階段中等待,並在重設後不久繼續中斷的任務。請參閱[等待用量上限重設](/docs/zh-TW/interactive-mode#wait-for-a-usage-limit-to-reset)以了解您看到的內容、如何開始或取消等待,以及如何關閉自動繼續。在 v2.1.234 之前,Claude Code 不提供此等待功能。

698 711 

699使用量同時計入工作階段和每週額度。單次大量活動突發(例如大型工作流程扇出)可能會在工作階段視窗重設之前耗盡每週額度。712使用量同時計入工作階段和每週額度。單次大量活動突發(例如大型工作流程扇出)可能會在工作階段視窗重設之前耗盡每週額度。

700 713 


879* 如果變更持續失敗,請改為在瀏覽器中從您的 [claude.ai 計費設定](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans)進行變更892* 如果變更持續失敗,請改為在瀏覽器中從您的 [claude.ai 計費設定](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans)進行變更

880 893 

881<h2 id="authentication-errors">894<h2 id="authentication-errors">

882 驗證錯誤895 身分驗證錯誤

883</h2>896</h2>

884 897 

885這些錯誤表示 Claude Code 無法向 API 證明您的身份。隨時執行 `/status` 以查看目前哪個認證資格處於活動狀態。898這些錯誤表示 Claude Code 無法向 API 證明您的身分。隨時執行 `/status` 即可查看目前使用中的憑證。

886 899 

887<h3 id="not-logged-in">900<h3 id="not-logged-in">

888 未登入901 未登入

889</h3>902</h3>

890 903 

891此工作階段沒有有效的認證資格可用。904此工作階段沒有可用的有效憑證。

892 905 

893```text theme={null}906```text theme={null}

894Not logged in · Please run /login907Not logged in · Please run /login

895```908```

896 909 

897在 Claude Desktop 應用程式執行的工作階段中,例如 Code 標籤或 Cowork,訊息讀作 `Authentication required · Sign in again to continue`,您從應用程式再次登入。910在由 Claude Desktop 應用程式執行的工作階段中(例如 Code 分頁或 Cowork),訊息會顯示為 `Authentication required · Sign in again to continue`,您需要從應用程式重新登入。

898 911 

899**該怎麼做:**912如果您在另一個使用相同[設定目錄](/docs/zh-TW/claude-directory)的 Claude Code 視窗中以 claude.ai 帳戶登入,顯示此訊息的互動式工作階段會自動開始使用該登入,無需重新啟動。

913 

914在 macOS 上的 v2.1.286 之前,您從另一個視窗登入後,工作階段可能仍持續顯示此訊息。在這些版本上,請重新啟動顯示此訊息的工作階段。

900 915 

901* 執行 `/login` 以使用您的 Claude 訂閱或 Console 帳戶進行驗證916**處理方式:**

902* 如果您預期環境變數會驗證您,請確認 `ANTHROPIC_API_KEY` 已在啟動 `claude` 的 shell 中設定並匯出

903* 對於無法進行互動式登入的 CI 或自動化,請設定一個 [`apiKeyHelper`](/docs/zh-TW/settings-reference#apikeyhelper) 指令碼,在啟動時擷取金鑰

904* 請參閱[驗證優先順序](/docs/zh-TW/authentication#authentication-precedence)以瞭解當存在多個認證資格時 Claude Code 使用哪一個

905 917 

906如果系統反覆提示您登入,請參閱[未登入或權杖已過期](/docs/zh-TW/troubleshoot-install#not-logged-in-or-token-expired)以取得系統時鐘檢查和 macOS 認證儲存復原步驟。918* 執行 `/login`,以您的 Claude 訂閱或 Console 帳戶進行身分驗證

919* 如果您預期由環境變數進行身分驗證,請確認 `ANTHROPIC_API_KEY` 已在您啟動 `claude` 的 shell 中設定並匯出

920* 對於無法進行互動式登入的 CI 或自動化作業,請設定一個 [`apiKeyHelper`](/docs/zh-TW/settings-reference#apikeyhelper) 指令碼,在啟動時取得金鑰

921* 請參閱[身分驗證優先順序](/docs/zh-TW/authentication#authentication-precedence),了解存在多個憑證時 Claude Code 會使用哪一個

922 

923如果您反覆被要求登入,請參閱[未登入或 token 已過期](/docs/zh-TW/troubleshoot-install#not-logged-in-or-token-expired),了解系統時鐘檢查與 macOS 憑證儲存的復原步驟。

907 924 

908<h3 id="could-not-resolve-authentication-method">925<h3 id="could-not-resolve-authentication-method">

909 無法解析驗證方法926 無法解析身分驗證方式

910</h3>927</h3>

911 928 

912工作階段到達 API 用戶端時沒有任何認證資格。[背景工作階段](/docs/zh-TW/agent-view)和雲端工作階段在背景工作程序啟動時沒有認證資格時會顯示此訊息。互動式、`-p` 和 Agent SDK 執行會將相同條件報告為[未登入](#not-logged-in),並僅將此字串寫入其偵錯記錄,因此如果您在那裡找到它,請改為遵循該項目。929工作階段在沒有任何憑證的情況下抵達了 API 用戶端。當 worker 在沒有憑證的情況下啟動時,[背景工作階段](/docs/zh-TW/agent-view)與雲端工作階段會顯示此訊息。互動式、`-p` 與 Agent SDK 執行會將相同狀況回報為[未登入](#not-logged-in),並且只會將此字串寫入其偵錯日誌,因此若您是在日誌中看到它,請改為依照該項目處理。

913 930 

914```text theme={null}931```text theme={null}

915Could not resolve authentication method. Expected one of apiKey, authToken, credentials, config, or profile to be set. Or for one of the "X-Api-Key" or "Authorization" headers to be explicitly omitted932Could not resolve authentication method. Expected one of apiKey, authToken, credentials, config, or profile to be set. Or for one of the "X-Api-Key" or "Authorization" headers to be explicitly omitted

916```933```

917 934 

918在目前版本上,此錯誤表示背景工作程序沒有可用的認證資格。在 v2.1.174 之前,指派給閒置預初始化背景工作程序的背景工作階段即使在設定了有效認證資格時也可能以此方式失敗。在 v2.1.176 之前,在被聲稱之前處於閒置狀態的雲端工作階段也可能如此。請升級以復原。935在目前的版本中,此錯誤表示 worker 程序沒有可用的憑證。在 v2.1.174 之前,即使已設定有效的憑證,指派給閒置預先初始化 worker 的背景工作階段仍可能以此方式失敗。在 v2.1.176 之前,在被認領前閒置的雲端工作階段也可能如此。請升級以復原。

919 936 

920**該怎麼做:**937**處理方式:**

921 938 

922* 如果此訊息出現在背景或雲端工作階段中,且您的認證資格已設定,請升級至 v2.1.176 或更新版本939* 如果此訊息出現在背景或雲端工作階段中,而您的憑證已經設定好,請升級至 v2.1.176 或更新版本

923* 確認 `ANTHROPIC_API_KEY`、`CLAUDE_CODE_OAUTH_TOKEN` 或您的雲端提供者認證資格已在啟動背景工作程序的環境中設定,而不僅在您的互動式 shell 中設定940* 確認 `ANTHROPIC_API_KEY`、`CLAUDE_CODE_OAUTH_TOKEN` 或您的雲端供應商憑證已在啟動 worker 的環境中設定,而不只是在您的互動式 shell 中

924* 對於 Agent SDK,請參閱[快速入門中的驗證設定](/docs/zh-TW/agent-sdk/quickstart#setup)941* 若使用 Agent SDK,請參閱[快速入門中的身分驗證設定](/docs/zh-TW/agent-sdk/quickstart#setup)

925* 在相同環境中的互動式工作階段中執行 `/status` 以確認哪個認證資格來源會解析942* 在相同環境的互動式工作階段中執行 `/status`,確認實際解析到的是哪個憑證來源

926 943 

927<h3 id="invalid-api-key">944<h3 id="invalid-api-key">

928 無效的 API 金鑰945 無效的 API 金鑰

929</h3>946</h3>

930 947 

931`ANTHROPIC_API_KEY` 環境變數或 `apiKeyHelper` 指令碼傳回的金鑰被 API 拒絕,或 Claude Code 在傳送前阻止了來自 `ANTHROPIC_API_KEY` 的金鑰。948`ANTHROPIC_API_KEY` 環境變數或 `apiKeyHelper` 指令碼傳回了被 API 拒絕的金鑰,或是 Claude Code 在傳送前就封鎖了來自 `ANTHROPIC_API_KEY` 的金鑰。

932 949 

933```text theme={null}950```text theme={null}

934Invalid API key · Fix external API key951Invalid API key · Fix external API key

935```952```

936 953 

937當訊息在 `Fix external API key` 之後繼續,並帶有描述(例如 `Invalid X-Api-Key header value from ANTHROPIC_API_KEY: it contains a line break at character 41 (120 characters on 2 lines).`)時,API 從未看到該金鑰。Claude Code 發現了 HTTP 標頭無法攜帶的字元,並在傳送前停止了請求。請參閱[無效的請求標頭值](#invalid-request-header-value)以瞭解如何讀取描述並修正該值。954當訊息在 `Fix external API key` 之後還接著一段描述,例如 `Invalid X-Api-Key header value from ANTHROPIC_API_KEY: it contains a line break at character 41 (120 characters on 2 lines).`,表示 API 從未收到該金鑰。Claude Code 發現了 HTTP 標頭無法承載的字元,並在傳送前停止了請求。請參閱[無效的請求標頭值](#invalid-request-header-value),了解如何解讀該描述並修正值。

938 955 

939**該怎麼做:**956**處理方式:**

940 957 

941* 檢查拼寫錯誤,並確認金鑰未在 [Console](https://platform.claude.com/settings/keys) 中被撤銷958* 檢查是否有拼字錯誤,並在 [Console](https://platform.claude.com/settings/keys) 中確認金鑰未被撤銷

942* 在相同的 shell 中,執行 `env | grep ANTHROPIC`,或在 PowerShell 中執行 `Get-ChildItem Env:ANTHROPIC*`。direnv、dotenv shell 外掛程式和 IDE 終端機等工具可以從您專案中的 `.env` 檔案載入過時的金鑰,而無需您明確設定它959* 在同一個 shell 中執行 `env | grep ANTHROPIC`,或在 PowerShell 中執行 `Get-ChildItem Env:ANTHROPIC*`。direnv、dotenv shell 外掛以及 IDE 終端機等工具,可能會在您未明確設定的情況下,從專案中的 `.env` 檔案載入過時的金鑰。

943* 取消設定 `ANTHROPIC_API_KEY` 並執行 `/login` 以改用訂閱驗證960* 取消設定 `ANTHROPIC_API_KEY` 並執行 `/login`,改用訂閱進行身分驗證

944* 如果金鑰來自 [`apiKeyHelper`](/docs/zh-TW/settings-reference#apikeyhelper) 指令碼,請直接執行該指令碼以確認它在 stdout 上列印有效的金鑰961* 如果金鑰來自 [`apiKeyHelper`](/docs/zh-TW/settings-reference#apikeyhelper) 指令碼,請直接執行該指令碼,確認它會在 stdout 輸出有效的金鑰

945* 執行 `/status` 以確認 Claude Code 實際使用的認證資格來源962* 執行 `/status`,確認 Claude Code 實際使用的是哪個憑證來源

946 963 

947<h3 id="your-apikeyhelper-script-is-failing">964<h3 id="your-apikeyhelper-script-is-failing">

948 您的 apiKeyHelper 指令碼失敗965 您的 apiKeyHelper 指令碼執行失敗

949</h3>966</h3>

950 967 

951Claude Code 執行了您的 [`apiKeyHelper`](/docs/zh-TW/settings-reference#apikeyhelper) 設定中的命令,但沒有取回金鑰。沒有金鑰,請求會到達 API,並帶有預留位置認證資格,API 會以 `401` 拒絕它。終端機中的 `Authentication` 面板顯示發生了以下哪種情況:968Claude Code 執行了您 [`apiKeyHelper`](/docs/zh-TW/settings-reference#apikeyhelper) 設定中的命令,但沒有取得金鑰。沒有金鑰時,請求會帶著預留位置憑證抵達 API,API 會以 `401` 拒絕它。終端機中的 `Authentication` 面板會顯示發生的是下列哪一種情況:

952 969 

953* 命令以錯誤結束或逾時970* 命令以錯誤結束或逾時

954* 命令未向 stdout 列印任何內容971* 命令沒有在 stdout 輸出任何內容

955* 命令列印了除金鑰以外的內容,例如登入橫幅或記錄行。面板顯示 `returned output that cannot be used as an API key` 並說明出了什麼問題,而不重複輸出。在 v2.1.227 之前,Claude Code 會傳送命令列印的任何內容,在修剪周圍空白後。972* 命令輸出了金鑰以外的內容,例如登入橫幅或日誌行。面板會顯示 `returned output that cannot be used as an API key` 並說明問題所在,但不會重複該輸出。在 v2.1.227 之前,Claude Code 會在去除前後空白後,直接傳送命令輸出的任何內容。

956 973 

957```text theme={null}974```text theme={null}

958Your apiKeyHelper script is failing · This usually means you need to re-authenticate with your provider · Run /status to see the script's error output975Your apiKeyHelper script is failing · This usually means you need to re-authenticate with your provider · Run /status to see the script's error output

959```976```

960 977 

961在[非互動式模式](/docs/zh-TW/headless)中,stderr 也會帶有具體原因,前綴為 `apiKeyHelper failed:`。978在[非互動模式](/docs/zh-TW/headless)中,stderr 也會帶有具體原因,並以 `apiKeyHelper failed:` 為前綴。

962 979 

963Claude Code 會重新執行指令碼並在顯示此訊息之前最多重試請求兩次,因此失敗會在三次嘗試內出現。在 v2.1.208 之前,Claude Code 會花費完整的[重試預算](#automatic-retries)使用預留位置認證資格重新傳送請求,然後報告通用 `401` 驗證錯誤,而不是指令碼失敗。980在顯示此訊息之前,Claude Code 會重新執行指令碼並最多再重試請求兩次,因此失敗會在三次嘗試內浮現。在 v2.1.208 之前,Claude Code 會用完整個[重試額度](#automatic-retries),以預留位置憑證重新傳送請求,然後回報一般的 `401` 身分驗證錯誤,而不是指令碼失敗。

964 981 

965執行 `/login` 在這裡沒有幫助:只要設定存在,協助程式的輸出就會[優先於](/docs/zh-TW/authentication#authentication-precedence)已儲存的登入。982在此情況下執行 `/login` 沒有幫助:只要該設定存在,helper 的輸出就會[優先於](/docs/zh-TW/authentication#authentication-precedence)已儲存的登入。

966 983 

967**該怎麼做:**984**處理方式:**

968 985 

969* 直接在您的 shell 中執行在 `apiKeyHelper` 中設定的命令以重現失敗986* 直接在您的 shell 中執行 `apiKeyHelper` 中設定的命令,以重現失敗情況

970* 如果命令報告工作階段已過期,請使用您的認證資格提供者重新驗證,例如再次登入您的 SSO 或機密保管庫987* 如果命令回報工作階段已過期,請向您的憑證提供者重新進行身分驗證,例如重新登入您的 SSO 或密鑰保管庫

971* 修正命令,使其僅將金鑰列印到 stdout,作為單一可列印 ASCII 權杖,最多 16,384 個字元,並以代碼 0 結束。請參閱[使用 apiKeyHelper 輪換認證資格](/docs/zh-TW/llm-gateway-connect#rotate-credentials-with-apikeyhelper)以取得有效的設定。988* 修正命令,使其只將金鑰輸出至 stdout,格式為單一可列印 ASCII token、最多 16,384 個字元,並以退出碼 0 結束。請參閱[使用 apiKeyHelper 輪替憑證](/docs/zh-TW/llm-gateway-connect#rotate-credentials-with-apikeyhelper)以取得可用的設定範例。

972* 執行 `/status` 以確認 `apiKeyHelper` 是活動認證資格來源。`apiKeyHelper` 列顯示 `Failing` 及最後失敗的詳細資訊,例如結束代碼和命令的錯誤輸出,並在下次成功執行後消失。在 v2.1.274 之前,`/status` 僅顯示認證資格來源,不顯示失敗。989* 執行 `/status` 以查看失敗情況,並確認 `apiKeyHelper` 是使用中的憑證來源。`apiKeyHelper` 列會顯示 `Failing` 以及最近一次失敗的詳細資訊,例如退出碼與命令的錯誤輸出,並會在下一次成功執行後消失。在 v2.1.274 之前,`/status` 只會顯示憑證來源,不會顯示失敗情況。

973* 每次命令失敗時,其結束代碼和錯誤輸出也會出現在終端機中的 `Authentication` 面板中。在 v2.1.212 之前,該面板的標題為 `Cloud authentication`。990* 每次命令失敗時,其退出碼與錯誤輸出也會出現在終端機中的 `Authentication` 面板中。在 v2.1.212 之前,該面板的標題為 `Cloud authentication`。

974 991 

975<h3 id="invalid-request-header-value">992<h3 id="invalid-request-header-value">

976 無效的請求標頭值993 無效的請求標頭值

977</h3>994</h3>

978 995 

979Claude Code 即將作為請求標頭傳送的值包含 HTTP 標頭無法攜帶的字元:換行符、NUL 位元組或 `U+00FF` 以上的字元,例如彎引號或零寬空格。Claude Code 在傳送任何內容之前停止請求,並命名要修正的變數或設定。常見原因是從帶有隱藏字元或雜散換行符的文件或聊天中貼上的認證資格。996Claude Code 即將作為請求標頭傳送的值,包含 HTTP 標頭無法承載的字元:換行、NUL 位元組,或高於 `U+00FF` 的字元,例如彎引號或零寬度空格。Claude Code 會在傳送任何內容之前停止請求,並指出需要修正的變數或設定。常見原因是從文件或聊天中貼上的憑證帶有不可見字元或多餘的換行。

980 997 

981Claude Code 在直接向 Claude API 或透過 [LLM 閘道](/docs/zh-TW/llm-gateway)傳送請求時執行此檢查。在第三方雲端提供者(例如 [Amazon Bedrock](/docs/zh-TW/amazon-bedrock))上,Claude Code 在傳送前不執行此檢查。998當 Claude Code 直接或透過 [LLM 閘道](/docs/zh-TW/llm-gateway)向 Claude API 傳送請求時,會執行此檢查。在第三方雲端供應商(例如 [Amazon Bedrock](/docs/zh-TW/amazon-bedrock))上,Claude Code 不會在傳送前執行此檢查。

982 999 

983```text theme={null}1000```text theme={null}

984Invalid auth token · Fix external auth token1001Invalid auth token · Fix external auth token


986Invalid request header from the environment · Fix the environment variable1003Invalid request header from the environment · Fix the environment variable

987```1004```

988 1005 

989訊息的第一部分取決於不良值的來源:1006訊息的第一部分取決於錯誤值的來源:

990 1007 

991* `Invalid auth token`:來自 [`ANTHROPIC_AUTH_TOKEN`](/docs/zh-TW/env-vars) 或 [`CLAUDE_CODE_OAUTH_TOKEN`](/docs/zh-TW/env-vars) 的持有人權杖1008* `Invalid auth token`:來自 [`ANTHROPIC_AUTH_TOKEN`](/docs/zh-TW/env-vars) 或 [`CLAUDE_CODE_OAUTH_TOKEN`](/docs/zh-TW/env-vars) 的 bearer token

992* `Invalid ANTHROPIC_CUSTOM_HEADERS`:您在 [`ANTHROPIC_CUSTOM_HEADERS`](/docs/zh-TW/env-vars) 中設定的標頭名稱或值。描述計算哪個 `Name: Value` 對有問題,例如 `distinct header 2 of 3 parsed from ANTHROPIC_CUSTOM_HEADERS`,而不重複名稱或值,因為您選擇了兩者。1009* `Invalid ANTHROPIC_CUSTOM_HEADERS`:您在 [`ANTHROPIC_CUSTOM_HEADERS`](/docs/zh-TW/env-vars) 中設定的標頭名稱或值。描述會指出是第幾個 `Name: Value` 組合有問題,例如 `distinct header 2 of 3 parsed from ANTHROPIC_CUSTOM_HEADERS`,但不會重複名稱或值,因為兩者都是您自行選擇的。

993* `Invalid request header from the environment`:Claude Code 從另一個環境變數(例如 `CLAUDE_AGENT_SDK_CLIENT_APP`)複製到請求標頭中的值。描述命名要修正的變數。1010* `Invalid request header from the environment`:Claude Code 從另一個環境變數複製到請求標頭中的值,例如 `CLAUDE_AGENT_SDK_CLIENT_APP`。描述會指出需要修正的變數。

994 1011 

995Claude Code 將此檢查捕獲的不良 `ANTHROPIC_API_KEY` 報告為[無效的 API 金鑰](#invalid-api-key),具有相同的尾部描述。它將不良的已儲存 `/login` 認證資格報告為[未登入](#not-logged-in);執行 `/login` 以儲存新的認證資格。[`apiKeyHelper`](/docs/zh-TW/settings-reference#apikeyhelper) 指令碼的輸出永遠不會到達此檢查:Claude Code 在指令碼執行時驗證它,標頭無法攜帶的輸出會失敗,並顯示[您的 apiKeyHelper 指令碼失敗](#your-apikeyhelper-script-is-failing)。1012Claude Code 會將此檢查攔截到的錯誤 `ANTHROPIC_API_KEY` 回報為[無效的 API 金鑰](#invalid-api-key),並附上相同的結尾描述。對於已儲存的錯誤 `/login` 憑證,則會回報為[未登入](#not-logged-in);請執行 `/login` 儲存新的憑證。[`apiKeyHelper`](/docs/zh-TW/settings-reference#apikeyhelper) 指令碼的輸出永遠不會經過此檢查:Claude Code 會在指令碼執行時驗證它,HTTP 標頭無法承載的輸出會以[您的 apiKeyHelper 指令碼執行失敗](#your-apikeyhelper-script-is-failing)失敗。

996 1013 

997在第二個 `·` 之後,訊息描述問題,如此完整範例所示:1014在第二個 `·` 之後,訊息會描述問題,如以下完整範例所示:

998 1015 

999```text theme={null}1016```text theme={null}

1000Invalid auth token · Fix external auth token · Invalid Authorization header value from ANTHROPIC_AUTH_TOKEN: it contains a line break at character 41 (120 characters on 2 lines).1017Invalid auth token · Fix external auth token · Invalid Authorization header value from ANTHROPIC_AUTH_TOKEN: it contains a line break at character 41 (120 characters on 2 lines).

1001```1018```

1002 1019 

1003位置從 1 開始計算字元。描述是從固定短語和字元計數建立的,因此它永遠不包括值本身。它僅在字元是眾所週知的隱藏或排版字元(例如位元組順序標記、零寬空格或彎引號)時命名該字元,並將其他任何內容報告為 `a non-ASCII character`。1020位置從一開始計算字元。描述由固定片語與字元數組成,因此絕不會包含值本身。只有在問題字元是知名的不可見或排版字元時(例如位元組順序標記、零寬度空格或彎引號),描述才會指名該字元,其他字元一律回報為 `a non-ASCII character`。

1004 1021 

1005**該怎麼做:**1022**處理方式:**

1006 1023 

1007* 重新設定訊息命名的變數或設定,重新輸入報告位置周圍的字元,而不是從相同來源再次貼上1024* 重新設定訊息所指的變數或設定,重新輸入回報位置附近的字元,而不是再次從相同來源貼上

1008* 對於 `ANTHROPIC_CUSTOM_HEADERS`,每行保留一個 `Name: Value` 對,並重寫訊息計數的對1025* 對於 `ANTHROPIC_CUSTOM_HEADERS`,每行保留一組 `Name: Value`,並重新撰寫訊息所指出的那一組

1009* 執行 `/status` 以確認哪個認證資格來源處於活動狀態1026* 執行 `/status`,確認使用中的是哪個憑證來源

1010 1027 

1011<h3 id="this-organization-has-been-disabled">1028<h3 id="this-organization-has-been-disabled">

1012 此組織已被停用1029 此組織已被停用

1013</h3>1030</h3>

1014 1031 

1015Claude Code 正在使用來自已停用 Console 組織的過時 `ANTHROPIC_API_KEY`。當您有已儲存的訂閱登入時,金鑰會覆蓋它。1032Claude Code 正在使用來自已停用 Console 組織的過時 `ANTHROPIC_API_KEY`。當您有已儲存的訂閱登入時,該金鑰會覆寫它。

1016 1033 

1017```text theme={null}1034```text theme={null}

1018Your ANTHROPIC_API_KEY belongs to a disabled organization · Unset the environment variable to use your subscription instead1035Your ANTHROPIC_API_KEY belongs to a disabled organization · Unset the environment variable to use your subscription instead


1020API Error: 400 ... This organization has been disabled.1037API Error: 400 ... This organization has been disabled.

1021```1038```

1022 1039 

1023`·` 之後的提示取決於您的已儲存認證資格:當已儲存的 `/login` 可以在您取消設定金鑰後接管時出現第一種形式,當金鑰是您唯一的認證資格時出現第二種形式。1040`·` 之後的提示取決於您已儲存的憑證:當您取消設定金鑰後有已儲存的 `/login` 可接手時,會出現第一種形式;當金鑰是您唯一的憑證時,會出現第二種形式。

1024 1041 

1025環境變數優先於 `/login`,因此在您的 shell 設定檔中匯出或從 `.env` 檔案載入的金鑰即使在您有有效的 Pro 或 Max 訂閱時也會被使用。在非互動式模式 (`-p`) 中,當存在金鑰時總是使用該金鑰。1042環境變數優先於 `/login`,因此即使您有可用的 Pro 或 Max 訂閱,在 shell 設定檔中匯出或從 `.env` 檔案載入的金鑰仍會被使用。在非互動模式(`-p`)中,只要金鑰存在就一定會被使用。

1026 1043 

1027**該怎麼做:**1044**處理方式:**

1028 1045 

1029* 在目前的 shell 中取消設定 `ANTHROPIC_API_KEY` 並從您的 shell 設定檔中移除它,然後重新啟動 `claude`1046* 在目前的 shell 中取消設定 `ANTHROPIC_API_KEY`,並從您的 shell 設定檔中移除它,然後重新啟動 `claude`

1030* 如果訊息說 `Update or unset`,您沒有已儲存的登入可以回退到。取消設定金鑰並執行 `/login`,或將金鑰替換為來自活動 Console 組織的金鑰。1047* 如果訊息顯示 `Update or unset`,表示您沒有可退回使用的已儲存登入。請取消設定金鑰並執行 `/login`,或將金鑰替換為來自使用中 Console 組織的金鑰。

1031* 之後執行 `/status` 以確認活動認證資格是您的訂閱1048* 之後執行 `/status`,確認使用中的憑證是您的訂閱

1032* 如果未設定環境變數且錯誤仍然存在,請聯絡支援或使用不同帳戶登入。1049* 如果沒有設定任何環境變數而錯誤仍然存在,請聯絡支援團隊或以其他帳戶登入。

1033 1050 

1034<h3 id="your-organization-has-disabled-api-key-authentication">1051<h3 id="your-organization-has-disabled-api-key-authentication">

1035 您的組織已停用 API 金鑰驗證1052 您的組織已停用 API 金鑰身分驗證

1036</h3>1053</h3>

1037 1054 

1038此訊息需要 Claude Code v2.1.169 或更新版本。您的 Console 組織管理員已關閉 API 金鑰驗證,因此 API 拒絕 Claude Code 正在傳送的金鑰。恢復提示在 `·` 之後會根據金鑰的來源而異:1055此訊息需要 Claude Code v2.1.169 或更新版本。您 Console 組織的管理員已關閉 API 金鑰身分驗證,因此 API 會拒絕 Claude Code 傳送的金鑰。`·` 之後的復原提示會依金鑰來源而不同:

1039 1056 

1040```text theme={null}1057```text theme={null}

1041Your organization has disabled API key authentication · Run /login to sign in with your claude.ai account1058Your organization has disabled API key authentication · Run /login to sign in with your claude.ai account


1045Your organization has disabled API key authentication · Sign in again with your claude.ai account1062Your organization has disabled API key authentication · Sign in again with your claude.ai account

1046```1063```

1047 1064 

1048最後一種形式出現在 Claude Desktop 應用程式執行的工作階段中,例如 Code 標籤或 Cowork,您從應用程式再次登入。1065最後一種形式出現在由 Claude Desktop 應用程式執行的工作階段中(例如 Code 分頁或 Cowork),您需要從應用程式重新登入。

1049 1066 

1050環境變數和 `apiKeyHelper` 優先於 `/login`,因此在任一個仍在提供金鑰時單獨執行 `/login` 沒有幫助。請參閱[驗證優先順序](/docs/zh-TW/authentication#authentication-precedence)。1067環境變數與 `apiKeyHelper` 優先於 `/login`,因此只要其中任一項仍在提供金鑰,單獨執行 `/login` 並無幫助。請參閱[身分驗證優先順序](/docs/zh-TW/authentication#authentication-precedence)。

1051 1068 

1052**該怎麼做:**1069**處理方式:**

1053 1070 

1054* 如果訊息命名 `ANTHROPIC_API_KEY`,在目前的 shell 中取消設定它,並從您的 shell 設定檔或 `.env` 檔案中移除它,然後重新啟動 `claude`1071* 如果訊息指名 `ANTHROPIC_API_KEY`,請在目前的 shell 中取消設定它,並從您的 shell 設定檔或 `.env` 檔案中移除,然後重新啟動 `claude`

1055* 如果訊息命名 `apiKeyHelper`,從您的 `settings.json` 中移除 [`apiKeyHelper`](/docs/zh-TW/settings-reference#apikeyhelper) 設定1072* 如果訊息指名 `apiKeyHelper`,請從您的 `settings.json` 中移除 [`apiKeyHelper`](/docs/zh-TW/settings-reference#apikeyhelper) 設定

1056* 執行 `/login` 以使用您的 claude.ai 帳戶登入1073* 執行 `/login`,以您的 claude.ai 帳戶登入

1057* 之後執行 `/status` 以確認活動認證資格是您的訂閱,而不是 API 金鑰1074* 之後執行 `/status`,確認使用中的憑證是您的訂閱而非 API 金鑰

1058* 如果您需要 API 金鑰驗證來進行自動化,請要求您的組織管理員在 Console 中重新啟用它1075* 如果您的自動化作業需要 API 金鑰身分驗證,請要求組織管理員在 Console 中重新啟用

1059 1076 

1060<h3 id="your-organization-has-disabled-claude-subscription-access">1077<h3 id="your-organization-has-disabled-claude-subscription-access">

1061 您的組織已停用 Claude 訂閱存取1078 您的組織已停用 Claude 訂閱存取

1062</h3>1079</h3>

1063 1080 

1064您的 Claude 組織不允許使用訂閱登入登入 Claude Code。使用相同帳戶再次執行 `/login` 會傳回相同的錯誤。1081您的 Claude 組織不允許以訂閱登入方式登入 Claude Code。以相同帳戶再次執行 `/login` 會傳回相同的錯誤。

1065 1082 

1066```text theme={null}1083```text theme={null}

1067Your organization has disabled Claude subscription access for Claude Code · Use an Anthropic API key instead, or ask your admin to enable access1084Your organization has disabled Claude subscription access for Claude Code · Use an Anthropic API key instead, or ask your admin to enable access

1068```1085```

1069 1086 

1070這是伺服器端組織設定,因此無法從本機設定、環境變數或 CLI 旗標覆蓋。1087這是伺服器端的組織設定,因此無法透過本機設定、環境變數或 CLI 旗標覆寫。

1071 1088 

1072Agent SDK 和 `-p` 非互動式模式將此呈現為 `oauth_org_not_allowed` 錯誤代碼。1089Agent SDK 與 `-p` 非互動模式會將此回報為 `oauth_org_not_allowed` 錯誤代碼。

1073 1090 

1074**該怎麼做:**1091**處理方式:**

1075 1092 

1076* 要求您的管理員為您的組織啟用 Claude Code 存取1093* 請您的管理員為您的組織啟用 Claude Code 存取

1077* 使用 Console API 金鑰而不是您的訂閱進行驗證。請參閱 [Claude Console 驗證](/docs/zh-TW/authentication#claude-console-authentication)以取得設定。1094* 改用 Console API 金鑰而非訂閱進行身分驗證。設定方式請參閱 [Claude Console 身分驗證](/docs/zh-TW/authentication#claude-console-authentication)。

1078* 如果您是管理員且看不到啟用存取的選項,請聯絡 [Anthropic 支援](https://support.claude.com)1095* 如果您是管理員卻看不到啟用存取的選項,請聯絡 [Anthropic 支援](https://support.claude.com)

1079 1096 

1080<h3 id="routines-are-disabled-by-your-organizations-policy">1097<h3 id="routines-are-disabled-by-your-organizations-policy">

1081 您的組織政策已停用例行程序1098 您組織的政策已停用 routine

1082</h3>1099</h3>

1083 1100 

1084An Owner in your Team or Enterprise organization has turned off routines at the organization level. The error appears when you try to create or run a routine, for example from the [Routines](/docs/zh-TW/routines) UI on claude.ai/code. On Claude Code v2.1.227 or later, the same setting also [hides `/schedule`](/docs/zh-TW/routines#troubleshooting) in the CLI.1101您 Team 或 Enterprise 組織中的 Owner 已在組織層級關閉 routine。當您嘗試建立或執行 routine 時(例如從 claude.ai/code 上的 [Routines](/docs/zh-TW/routines) UI),就會出現此錯誤。在 Claude Code v2.1.227 或更新版本上,相同的設定也會在 CLI 中[隱藏 `/schedule`](/docs/zh-TW/routines#troubleshooting)。

1085 1102 

1086```text theme={null}1103```text theme={null}

1087Routines are disabled by your organization's policy.1104Routines are disabled by your organization's policy.

1088```1105```

1089 1106 

1090這是伺服器端設定,因此無法從本機設定、環境變數或 CLI 旗標覆蓋。1107這是伺服器端設定,因此無法透過本機設定、環境變數或 CLI 旗標覆寫。

1091 1108 

1092**該怎麼做:**1109**處理方式:**

1093 1110 

1094* 要求您的組織中的擁有者在 [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code) 啟用**例行程序**切換1111* 請您組織中的 Owner 在 [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code) 啟用 **Routines** 切換開關

1095* 對於不需要組織層級例行程序的一次性排程工作,請參閱[排程工作](/docs/zh-TW/scheduled-tasks)1112* 對於不需要組織層級 routine 的一次性排程工作,請參閱[排程任務](/docs/zh-TW/scheduled-tasks)

1096 1113 

1097<h3 id="remote-control-requires-the-anthropic-api">1114<h3 id="remote-control-requires-the-anthropic-api">

1098 Remote Control 需要 Anthropic API1115 Remote Control 需要 Anthropic API

1099</h3>1116</h3>

1100 1117 

1101工作階段未直接與 Anthropic API 通訊,因此沒有 claude.ai 後端供 [Remote Control](/docs/zh-TW/remote-control) 配對。1118此工作階段並未直接與 Anthropic API 通訊,而這是 [Remote Control](/docs/zh-TW/remote-control) 所必需的。

1102 1119 

1103```text theme={null}1120```text theme={null}

1104Remote Control is only available when using Claude via api.anthropic.com. CLAUDE_CODE_USE_BEDROCK is set, so this session is using Amazon Bedrock — unset it (or run in a shell without it) to use Remote Control.1121Remote Control is only available when using Claude via api.anthropic.com. CLAUDE_CODE_USE_BEDROCK is set, so this session is using Amazon Bedrock — unset it (or run in a shell without it) to use Remote Control.

1105```1122```

1106 1123 

1107第二句解釋了什麼將工作階段路由到遠離 Anthropic API;在 v2.1.219 之前,訊息僅為第一句。根據原因,訊息命名:1124第二句說明了是什麼讓工作階段繞離了 Anthropic API;在 v2.1.219 之前,訊息只有第一句。視原因而定,訊息會指出:

1108 1125 

1109* `CLAUDE_CODE_USE_*` 提供者變數,例如 [Amazon Bedrock](/docs/zh-TW/amazon-bedrock) 的 `CLAUDE_CODE_USE_BEDROCK` 或 [Google Cloud 的 Agent Platform](/docs/zh-TW/google-vertex-ai) 的 `CLAUDE_CODE_USE_VERTEX`1126* `CLAUDE_CODE_USE_*` 供應商變數,例如 [Amazon Bedrock](/docs/zh-TW/amazon-bedrock) 的 `CLAUDE_CODE_USE_BEDROCK` 或 [Google Cloud's Agent Platform](/docs/zh-TW/google-vertex-ai) 的 `CLAUDE_CODE_USE_VERTEX`

1110* [`ANTHROPIC_BASE_URL`](/docs/zh-TW/env-vars) 指向 `api.anthropic.com` 以外的主機,例如 [LLM 閘道](/docs/zh-TW/llm-gateway)或代理,即使您使用 claude.ai 登入;在 v2.1.196 之前,自訂基礎 URL 不會阻止 Remote Control1127* [`ANTHROPIC_BASE_URL`](/docs/zh-TW/env-vars) 指向 `api.anthropic.com` 以外的主機,例如 [LLM 閘道](/docs/zh-TW/llm-gateway)或代理伺服器,即使您以 claude.ai 登入亦然;在 v2.1.196 之前,自訂的 base URL 不會封鎖 Remote Control

1111* `ANTHROPIC_UNIX_SOCKET` 已設定,因此工作階段透過本機 socket 而不是向 `api.anthropic.com` 傳送其請求1128* 已設定 `ANTHROPIC_UNIX_SOCKET`,因此工作階段會透過本機 socket 傳送請求,而不是傳送至 `api.anthropic.com`

1112* 企業[雲端閘道](/docs/zh-TW/claude-apps-gateway)透過 `/login` 進行的登入,不支援 Remote Control,且沒有變數可取消設定1129* 透過 `/login` 進行的企業[雲端閘道](/docs/zh-TW/claude-apps-gateway)登入,此方式不支援 Remote Control,且沒有可取消設定的變數

1113 1130 

1114**該怎麼做:**1131**處理方式:**

1115 1132 

1116* 取消設定訊息命名的變數,例如 `CLAUDE_CODE_USE_BEDROCK` 或 `ANTHROPIC_BASE_URL`,並重新啟動工作階段,或從直接與 Anthropic API 通訊的工作階段啟動 Remote Control1133* 取消設定訊息所指的變數(例如 `CLAUDE_CODE_USE_BEDROCK` 或 `ANTHROPIC_BASE_URL`)並重新啟動工作階段,或從直接與 Anthropic API 通訊的工作階段啟動 Remote Control

1117* 如果變數未在您的 shell 中設定,請檢查您的[設定檔](/docs/zh-TW/settings#where-settings-live)中的 `env` 金鑰,該金鑰將環境變數套用到每個工作階段1134* 如果該變數未在您的 shell 中設定,請檢查[設定檔](/docs/zh-TW/settings#where-settings-live)中的 `env` 鍵,它會將環境變數套用至每個工作階段

1118* 對於此和其他 Remote Control 啟動訊息,請參閱[疑難排解 Remote Control](/docs/zh-TW/remote-control#troubleshooting)1135* 關於此訊息及其他 Remote Control 啟動訊息,請參閱 [Remote Control 疑難排解](/docs/zh-TW/remote-control#troubleshooting)

1119 1136 

1120<h3 id="remote-control-couldnt-refresh-your-login">1137<h3 id="remote-control-couldnt-refresh-your-login">

1121 Remote Control 無法重新整理您的登入1138 Remote Control 無法重新整理您的登入

1122</h3>1139</h3>

1123 1140 

1124Claude Code 在短期認證資格上執行即時 [Remote Control](/docs/zh-TW/remote-control) 連線,該認證資格是使用您已儲存的 claude.ai 登入取得和更新的。當 claude.ai 停止接受該登入,或 Claude Code 沒有剩餘的已儲存登入時,Claude Code 會停止 Remote Control 並需要您再次登入。任一失敗都可能在 Claude Code 仍在連線時或稍後在更新認證資格時發生。1141Claude Code 以短期憑證執行即時的 [Remote Control](/docs/zh-TW/remote-control) 連線,這些憑證是使用您已儲存的 claude.ai 登入取得並更新的。當 claude.ai 不再接受該登入,或 Claude Code 已沒有已儲存的登入時,Claude Code 會停止 Remote Control,並需要您重新登入。這兩種失敗都可能發生在 Claude Code 仍在連線時,或之後更新憑證時。

1125 1142 

1126當 Claude Code 要求登入服務重新整理您的已儲存登入並且沒有收到答案時,它會保持 Remote Control 執行並在連線的目前認證資格仍然有效時再次嘗試重新整理。當 Claude Code 無法到達登入服務、請求逾時或服務在不拒絕您的登入的情況下失敗時,重新整理會沒有答案。如果登入服務在該認證資格過期時仍未回答,Claude Code 會停止 Remote Control 並報告 `OAuth token refresh failed`。1143當 Claude Code 要求登入服務重新整理您已儲存的登入卻沒有得到回應時,它會讓 Remote Control 繼續執行,並在連線目前的憑證仍有效期間再次嘗試重新整理。當 Claude Code 無法連上登入服務、請求逾時,或服務失敗但未拒絕您的登入時,重新整理就會得不到回應。如果在該憑證到期時登入服務仍未回應,Claude Code 會停止 Remote Control 並回報 `OAuth token refresh failed`。

1127 1144 

1128當 Claude Code 停止 Remote Control 時,它會在警告和以 `Remote Control disconnected` 開頭的文字記錄行中顯示原因。您的本機工作階段會繼續執行,但沒有 Remote Control。本節涵蓋這些行:1145當 Claude Code 停止 Remote Control 時,會在警告以及以 `Remote Control disconnected` 開頭的逐字稿行中顯示原因。您的本機工作階段會在沒有 Remote Control 的情況下繼續執行。本節涵蓋以下幾行:

1129 1146 

1130```text theme={null}1147```text theme={null}

1131Remote Control disconnected — Claude.ai login expired — run /login to restore Remote Control1148Remote Control disconnected — Claude.ai login expired — run /login to restore Remote Control


1137Remote Control disconnected — Signed out of Claude — run /login, then /remote-control1154Remote Control disconnected — Signed out of Claude — run /login, then /remote-control

1138```1155```

1139 1156 

1140Claude Code 在訊息中間命名原因:1157Claude Code 會在訊息中間指出原因:

1141 1158 

1142* ` Claude.ai login expired` 和 `Claude.ai login was rejected`:claude.ai 不再接受您的已儲存登入權杖,因為它已過期或被撤銷1159* `Claude.ai login expired` 與 `Claude.ai login was rejected`:claude.ai 不再接受您已儲存的登入 token,因為它已過期或被撤銷

1143* ` OAuth token unavailable`:當連線的認證資格到期進行更新時,Claude Code 沒有已儲存的登入權杖1160* `OAuth token unavailable`:當連線的憑證到期需要更新時,Claude Code 沒有已儲存的登入 token

1144* `OAuth token refresh failed`:claude.ai 在 Claude Code 重新連線時拒絕了您的已儲存登入權杖,重新整理權杖未產生新的權杖1161* `OAuth token refresh failed`:Claude Code 重新連線時,claude.ai 拒絕了您已儲存的登入 token,且重新整理 token 未產生新的 token

1145* `JWT refresh failed: no OAuth token`:Claude Code 找不到已儲存的登入權杖來更新1162* `JWT refresh failed: no OAuth token`:Claude Code 找不到可用於更新的已儲存登入 token

1146* ` Signed out of Claude`:您在此機器上登出,例如在另一個終端機中執行 `/logout`,因此 Claude Code 沒有剩餘的已儲存登入來更新連線1163* `Signed out of Claude`:您在這台機器上登出了,例如在另一個終端機中執行 `/logout`,因此 Claude Code 沒有剩餘的已儲存登入可用來更新連線

1147 1164 

1148**該怎麼做:**1165**處理方式:**

1149 1166 

1150* 執行 `/login` 以再次登入1167* 執行 `/login` 重新登入

1151* 執行 `/remote-control` 以重新連線工作階段。以 `run /login to restore Remote Control` 結尾的訊息不需要此步驟:Claude Code 在您登入後會自動重新連線。1168* 執行 `/remote-control` 重新連線工作階段。以 `run /login to restore Remote Control` 結尾的訊息不需要此步驟:您登入後 Claude Code 會自動重新連線。

1152 1169 

1153在 v2.1.224 之前,`OAuth token refresh failed — run /login to re-authenticate` 讀作 `OAuth token refresh failed — re-authenticate, then re-enable Remote Control`,`JWT refresh failed: no OAuth token — run /login` 讀作 `no OAuth token available for recovery (code <N>)`。` Claude.ai login expired`、`Claude.ai login was rejected` 和 `OAuth token unavailable` 訊息已在 v2.1.225 中新增。1170在 v2.1.224 之前,`OAuth token refresh failed — run /login to re-authenticate` 顯示為 `OAuth token refresh failed — re-authenticate, then re-enable Remote Control`,而 `JWT refresh failed: no OAuth token — run /login` 顯示為 `no OAuth token available for recovery (code <N>)`。`Claude.ai login expired`、`Claude.ai login was rejected` 與 `OAuth token unavailable` 訊息是在 v2.1.225 新增的。

1154 1171 

1155在 v2.1.238 之前,Claude Code 將現在說 `Signed out of Claude` 的情況報告為 `JWT refresh failed: no OAuth token — run /login`,並在一次登入重新整理沒有收到答案時立即停止 Remote Control,並顯示 `Claude.ai login expired — run /login to restore Remote Control`。1172在 v2.1.238 之前,Claude Code 會將現在顯示為 `Signed out of Claude` 的情況回報為 `JWT refresh failed: no OAuth token — run /login`,並且只要有一次登入重新整理沒有得到回應,就會以 `Claude.ai login expired — run /login to restore Remote Control` 停止 Remote Control。

1156 1173 

1157<h3 id="remote-control-stopped-because-the-signed-in-account-changed">1174<h3 id="remote-control-stopped-because-the-signed-in-account-changed">

1158 Remote Control 因為已登入帳戶已變更而停止1175 由於登入的帳戶已變更,Remote Control 已停止

1159</h3>1176</h3>

1160 1177 

1161Claude Code 在 [Remote Control](/docs/zh-TW/remote-control) 工作階段期間顯示此行,當您在此機器上登入不同的 claude.ai 帳戶或組織時。您在 Claude Code 工作階段外進行了切換,例如在另一個終端機中執行 `/login`。1178在 [Remote Control](/docs/zh-TW/remote-control) 工作階段期間,當您在這台機器上登入不同的 claude.ai 帳戶或組織時,Claude Code 會顯示此行。您是在 Claude Code 工作階段之外進行切換的,例如在另一個終端機中執行 `/login`。

1162 1179 

1163您在透過 `/login` 登入時啟動的 Remote Control 工作階段屬於當時登入的 claude.ai 帳戶和組織。1180您透過 `/login` 登入時啟動的 Remote Control 工作階段,屬於當時已登入的 claude.ai 帳戶與組織。

1164 1181 

1165```text theme={null}1182```text theme={null}

1166Remote Control disconnected — signed-in claude.ai account or organization changed on this machine — run /remote-control to start a session for the current account, or /login to switch back, then /remote-control1183Remote Control disconnected — signed-in claude.ai account or organization changed on this machine — run /remote-control to start a session for the current account, or /login to switch back, then /remote-control

1167```1184```

1168 1185 

1169Claude Code 在 claude.ai 確認帳戶或組織已變更後立即停止 Remote Control 工作階段。您的本機工作階段會繼續執行,但沒有 Remote Control。1186一旦 claude.ai 確認帳戶或組織已變更,Claude Code 就會停止 Remote Control 工作階段。您的本機工作階段會在沒有 Remote Control 的情況下繼續執行。

1170 1187 

1171**該怎麼做:**1188**處理方式:**

1172 1189 

1173* 執行 `/remote-control` 以在目前帳戶或組織下啟動新的 Remote Control 工作階段1190* 執行 `/remote-control`,在目前的帳戶或組織下啟動新的 Remote Control 工作階段

1174* 若要切換回去,請執行 `/login` 並再次登入先前的帳戶或組織。然後執行 `/remote-control`。1191* 若要切換回去,請執行 `/login` 並重新登入先前的帳戶或組織,然後執行 `/remote-control`。

1175 1192 

1176在 v2.1.234 之前,當您在 Claude Code 工作階段外切換到不同帳戶或組織時,Claude Code 沒有注意到。Claude Code 保持 Remote Control 工作階段連線,直到稍後對 Remote Control 伺服器的請求失敗,並顯示 `Remote Control server rejected the request (HTTP 404)`。該失敗可能在切換後數小時才出現。1193在 v2.1.234 之前,當您在 Claude Code 工作階段之外切換到不同的帳戶或組織時,Claude Code 不會察覺。Claude Code 會讓 Remote Control 工作階段保持連線,直到之後對 Remote Control 伺服器的請求以 `Remote Control server rejected the request (HTTP 404)` 失敗為止。該失敗可能在切換後數小時才出現。

1177 1194 

1178<h3 id="remote-control-stopped-because-the-app-running-the-session-signed-out-or-switched-accounts">1195<h3 id="remote-control-stopped-because-the-app-running-the-session-signed-out-or-switched-accounts">

1179 Remote Control 因為執行工作階段的應用程式登出或切換帳戶而停止1196 由於執行工作階段的應用程式已登出或切換帳戶,Remote Control 已停止

1180</h3>1197</h3>

1181 1198 

1182當 Claude 桌面應用程式或 IDE 主持您的工作階段時,Claude Code 從該應用程式而不是從 `/login` 取得其登入權杖。當 claude.ai 拒絕該權杖時,Claude Code 要求應用程式提供新的權杖。如果應用程式回答它已登出,或它現在已登入不同的 Claude 帳戶,Claude Code 會結束 [Remote Control](/docs/zh-TW/remote-control) 工作階段並向應用程式傳送以下其中一行:1199當 Claude 桌面應用程式或 IDE 託管您的工作階段時,Claude Code 會從該應用程式取得登入 token,而不是從 `/login`。當 claude.ai 拒絕該 token 時,Claude Code 會向應用程式要求新的 token。如果應用程式回應它已登出,或現在已登入不同的 Claude 帳戶,Claude Code 會結束 [Remote Control](/docs/zh-TW/remote-control) 工作階段,並向應用程式傳送下列其中一行:

1183 1200 

1184```text theme={null}1201```text theme={null}

1185Remote Control stopped — the app running this session is now signed in to a different Claude account1202Remote Control stopped — the app running this session is now signed in to a different Claude account

1186Remote Control stopped — the app running this session is signed out of Claude. Sign in there, then turn Remote Control back on1203Remote Control stopped — the app running this session is signed out of Claude. Sign in there, then turn Remote Control back on

1187```1204```

1188 1205 

1189您的本機工作階段會繼續執行,但沒有 Remote Control。1206您的本機工作階段會在沒有 Remote Control 的情況下繼續執行。

1190 1207 

1191**該怎麼做:**1208**處理方式:**

1192 1209 

1193* 如果應用程式已登出,請再次登入,然後在應用程式中重新開啟 Remote Control1210* 如果應用程式已登出,請重新登入,然後在應用程式中重新開啟 Remote Control

1194* 如果應用程式切換了帳戶,Claude Code 無法在新帳戶下繼續已結束的工作階段。在該帳戶下啟動新的 Remote Control 工作階段。1211* 如果應用程式切換了帳戶,Claude Code 無法在新帳戶下繼續已結束的工作階段。請在該帳戶下啟動新的 Remote Control 工作階段。

1195 1212 

1196在 v2.1.238 之前,Claude Code 在兩種情況下都向應用程式傳送了[Remote Control 無法重新整理您的登入](#remote-control-couldnt-refresh-your-login)下列出的 `run /login` 訊息。1213在 v2.1.238 之前,這兩種情況下 Claude Code 都會向應用程式傳送列於 [Remote Control 無法重新整理您的登入](#remote-control-couldnt-refresh-your-login)中的 `run /login` 訊息。

1197 1214 

1198<h3 id="oauth-token-revoked-or-expired">1215<h3 id="oauth-token-revoked-or-expired">

1199 OAuth 權杖已撤銷或已過期1216 OAuth token 已撤銷或已過期

1200</h3>1217</h3>

1201 1218 

1202您的已儲存登入不再有效。撤銷的權杖表示您在任何地方登出或管理員移除了存取;已過期的權杖表示自動重新整理在工作階段中失敗。1219您已儲存的登入不再有效。token 被撤銷表示您已在所有地方登出,或管理員移除了存取權;token 過期則表示自動重新整理在工作階段中途失敗。

1203 1220 

1204兩個訊息都報告 API 為 Claude Code 傳送的請求傳回的拒絕。當已儲存的登入在失敗的重新整理後已被清除時,您會看到[登入已過期](#login-expired)。如果您在 [`CLAUDE_CODE_OAUTH_TOKEN`](/docs/zh-TW/env-vars) 中使用長期權杖進行驗證,當該權杖過期或被撤銷時,您會看到相同的訊息。1221這兩種訊息都是回報 API 針對 Claude Code 所傳送請求的拒絕。當已儲存的登入在重新整理失敗後已被清除時,您會改為看到[登入已過期](#login-expired)。如果您以 [`CLAUDE_CODE_OAUTH_TOKEN`](/docs/zh-TW/env-vars) 中的長期 token 進行身分驗證,當該 token 過期或被撤銷時,您會看到相同的訊息。

1205 1222 

1206```text theme={null}1223```text theme={null}

1207OAuth token revoked · Please run /login1224OAuth token revoked · Please run /login

1208Please run /login · API Error: 401 OAuth token has expired ...1225Please run /login · API Error: 401 OAuth token has expired ...

1209```1226```

1210 1227 

1211**該怎麼做:**1228在[非互動模式](/docs/zh-TW/headless)(`-p`)與 [Agent SDK](/docs/zh-TW/agent-sdk/overview) 中,訊息如下,結構化錯誤代碼為 `authentication_failed`:

1212 1229 

1213* 執行 `/login` 以再次登入1230```text theme={null}

1214* 如果您使用 `CLAUDE_CODE_OAUTH_TOKEN` 環境變數進行驗證,Claude Code 會在請求失敗並顯示 401 後繼續傳送您設定的值,而不是切換到已儲存登入的權杖。[`/status`](/docs/zh-TW/commands) 將此認證資格顯示為讀取 `CLAUDE_CODE_OAUTH_TOKEN` 的 `Auth token` 列。使用 [`claude setup-token`](/docs/zh-TW/authentication#generate-a-long-lived-token) 產生新的權杖並使用它重新啟動,或取消設定變數並執行 `/login`。在 v2.1.225 之前,Claude Code 可以在工作階段中期用已儲存登入的短期存取權杖替換變數的值,一旦該權杖過期,工作階段就會再次失敗,並顯示 401 錯誤。1231Failed to authenticate: OAuth token revoked. Please log in again or contact your administrator.

1215* 對於跨啟動的重複登入提示,請參閱[疑難排解](/docs/zh-TW/troubleshoot-install#not-logged-in-or-token-expired)中的系統時鐘檢查和 macOS 認證儲存復原步驟1232Failed to authenticate. API Error: 401 OAuth token has expired ...

1216* 對於其他失敗,包括 `403 Forbidden` 和 OAuth 瀏覽器問題,請參閱[登入和驗證](/docs/zh-TW/troubleshoot-install#login-and-authentication)1233```

1234 

1235在 v2.1.287 之前,在非互動模式與 Agent SDK 中,撤銷訊息顯示為 `Your account does not have access to Claude. Please login again or contact your administrator.`

1236 

1237**處理方式:**

1238 

1239* 在 Claude Code 提示字元執行 `/login` 重新登入

1240* 如果您的 `-p` 命令或 Agent SDK 程式使用已儲存的登入,請在相同環境中執行 `claude`,完成 `/login`,然後重新執行命令或程式。對於無法互動式登入的自動化作業,請以 [`ANTHROPIC_API_KEY`](/docs/zh-TW/env-vars) 進行身分驗證,或[使用 `claude setup-token` 產生長期 token](/docs/zh-TW/authentication#generate-a-long-lived-token)。

1241* 如果您以 `CLAUDE_CODE_OAUTH_TOKEN` 環境變數進行身分驗證,在請求以 401 失敗後,Claude Code 會持續傳送您設定的值,而不會切換為已儲存登入的 token。[`/status`](/docs/zh-TW/commands) 會將此憑證顯示為一列內容為 `CLAUDE_CODE_OAUTH_TOKEN` 的 `Auth token`。請使用 [`claude setup-token`](/docs/zh-TW/authentication#generate-a-long-lived-token) 產生新的 token 並以其重新啟動,或取消設定該變數並執行 `/login`。在 v2.1.225 之前,Claude Code 可能會在工作階段中途以已儲存登入的短期存取 token 取代該變數的值,而當該 token 過期後,工作階段會再次以 401 錯誤失敗。

1242* 若每次啟動都反覆要求登入,請參閱[疑難排解](/docs/zh-TW/troubleshoot-install#not-logged-in-or-token-expired)中的系統時鐘檢查與 macOS 憑證儲存復原步驟

1243* 其他失敗(包括 `403 Forbidden` 與 OAuth 瀏覽器問題),請參閱[登入與身分驗證](/docs/zh-TW/troubleshoot-install#login-and-authentication)

1217 1244 

1218<h3 id="api-error-401-invalid-authentication-credentials">1245<h3 id="api-error-401-invalid-authentication-credentials">

1219 API 錯誤:401 無效的驗證認證資格1246 API Error: 401 Invalid authentication credentials

1220</h3>1247</h3>

1221 1248 

1222API 識別了您的認證資格格式,但拒絕了其背後的帳戶或組織。當認證資格最近被撤銷、組織被停用或移除了您的存取,或帳戶本身被停用時,Anthropic 會傳回此訊息,因此過期的權杖不是原因。認證資格可以是您的已儲存登入或已核准的 `ANTHROPIC_API_KEY`,修正方式不同,因此首先執行 `/status` 以查看哪一個處於活動狀態。1249API 辨識了您憑證的格式,但拒絕了其背後的帳戶或組織。當憑證最近被撤銷、組織已被停用或移除了您的存取權,或帳戶本身已被停用時,Anthropic 會傳回此訊息,因此原因並非 token 過期。該憑證可能是您已儲存的登入,也可能是已核准的 `ANTHROPIC_API_KEY`,而修正方式有所不同,因此請先執行 `/status` 查看使用中的是哪一個。

1223 1250 

1224```text theme={null}1251```text theme={null}

1225Please run /login · API Error: 401 Invalid authentication credentials1252Please run /login · API Error: 401 Invalid authentication credentials

1226```1253```

1227 1254 

1228**該怎麼做:**1255**處理方式:**

1229 1256 

1230* 如果 `/status` 顯示未標記為未使用的 `API key` 列,則已核准的 [`ANTHROPIC_API_KEY`](/docs/zh-TW/authentication#authentication-precedence) 是活動認證資格,優先於您的登入,因此 `/login` 不會替換它。在 Claude Console 中輪換金鑰,或執行 `unset ANTHROPIC_API_KEY` 回退到您的訂閱,或在 PowerShell 中執行 `Remove-Item Env:ANTHROPIC_API_KEY`。1257* 如果 `/status` 顯示一列未標記為未使用的 `API key`,則已核准的 [`ANTHROPIC_API_KEY`](/docs/zh-TW/authentication#authentication-precedence) 是使用中的憑證且優先於您的登入,因此 `/login` 不會取代它。請在 Claude Console 中輪替金鑰,或執行 `unset ANTHROPIC_API_KEY`(在 PowerShell 中為 `Remove-Item Env:ANTHROPIC_API_KEY`)退回使用您的訂閱。

1231* 如果 `/status` 僅顯示您的登入,請執行 `/login` 一次。如果認證資格被撤銷,新的登入會替換它。1258* 如果 `/status` 只顯示您的登入,請執行一次 `/login`。如果憑證已被撤銷,新的登入會取代它。

1232* 如果相同的訊息對相同的登入帳戶返回,則帳戶或組織不再活動。檢查 `/status` 報告的帳戶和組織,並要求您的組織管理員恢復存取。1259* 如果相同的登入帳戶再次出現相同訊息,表示該帳戶或組織已不再有效。請檢查 `/status` 所回報的帳戶與組織,並請您的組織管理員恢復存取權。

1233* 如果 [`ANTHROPIC_BASE_URL`](/docs/zh-TW/env-vars) 指向 [LLM 閘道](/docs/zh-TW/llm-gateway),`401` 之後的文字是您的閘道訊息,而不是 Anthropic 的訊息,`/login` 不會改變它。改為修正您的閘道期望的認證資格。1260* 如果 [`ANTHROPIC_BASE_URL`](/docs/zh-TW/env-vars) 指向 [LLM 閘道](/docs/zh-TW/llm-gateway),`401` 之後的文字是您閘道的訊息而非 Anthropic 的訊息,`/login` 無法改變它。請改為修正您閘道所預期的憑證。

1234 1261 

1235<h3 id="login-expired">1262<h3 id="login-expired">

1236 登入已過期1263 登入已過期

1237</h3>1264</h3>

1238 1265 

1239Claude Code 嘗試更新您已儲存的 claude.ai 或 Claude Console 登入,OAuth 服務拒絕了已儲存的重新整理權杖,因此 Claude Code 清除了已儲存的認證資格。之後,每個模型請求在到達 API 之前都會在本機停止,並顯示此訊息,因為只有 `/login` 可以建立新的認證資格。1266Claude Code 嘗試更新您已儲存的 claude.ai 登入,但 OAuth 服務拒絕了已儲存的重新整理 token,因此 Claude Code 清除了已儲存的憑證。之後,每個模型請求都會在抵達 API 之前於本機以此訊息停止,因為只有 `/login` 能建立新的憑證。

1240 1267 

1241在 v2.1.206 之前,Claude Code 無論如何都會傳送模型請求,並使用環境中剩餘的任何認證資格,每個模型都會失敗,並顯示[所選模型有問題](#theres-an-issue-with-the-selected-model)或 401,而不是登入提示。1268在 v2.1.206 之前,Claude Code 仍會使用環境中剩餘的任何憑證傳送模型請求,結果每個模型都以[所選模型有問題](#theres-an-issue-with-the-selected-model)或 401 失敗,而不是提示您登入。

1242 1269 

1243```text theme={null}1270```text theme={null}

1244Login expired · Please run /login1271Login expired · Please run /login

1245```1272```

1246 1273 

1247在[非互動式模式](/docs/zh-TW/headless)(`-p`) 和 [Agent SDK](/docs/zh-TW/agent-sdk/overview) 中,訊息讀作如下,結構化錯誤代碼為 `authentication_failed`:1274在[非互動模式](/docs/zh-TW/headless)(`-p`)與 [Agent SDK](/docs/zh-TW/agent-sdk/overview) 中,訊息如下,結構化錯誤代碼為 `authentication_failed`:

1248 1275 

1249```text theme={null}1276```text theme={null}

1250Failed to authenticate: OAuth session expired and could not be refreshed1277Failed to authenticate: OAuth session expired and could not be refreshed

1251```1278```

1252 1279 

1253這與[OAuth 權杖已撤銷或已過期](#oauth-token-revoked-or-expired)的狀態不同。這些訊息報告 API 傳回的拒絕。Claude Code 本身為已失敗更新的登入產生 `Login expired`,因此它不傳送請求。當更新失敗是因為帳戶本身被暫停而不是登入過時時,Claude Code 會改為顯示[您的帳戶已被暫停](#your-account-is-on-hold)。1280這與 [OAuth token 已撤銷或已過期](#oauth-token-revoked-or-expired)並非相同狀態。那些訊息回報的是 API 傳回的拒絕。`Login expired` 是 Claude Code 本身針對已無法更新的登入所產生的訊息,因此不會傳送任何請求。當更新失敗是因為帳戶本身遭到停權而非登入過時,Claude Code 會改為顯示[您的帳戶已遭暫停](#your-account-is-on-hold)。

1254 1281 

1255使用 API 金鑰、[`CLAUDE_CODE_OAUTH_TOKEN`](/docs/zh-TW/env-vars) 或第三方提供者進行驗證的工作階段不使用已儲存的登入,永遠不會看到此訊息。1282以 API 金鑰、[`CLAUDE_CODE_OAUTH_TOKEN`](/docs/zh-TW/env-vars) 或第三方供應商進行身分驗證的工作階段不使用已儲存的登入,永遠不會看到此訊息。

1256 1283 

1257您可以在請求失敗之前檢查此狀態:[`/status`](/docs/zh-TW/commands) 顯示讀作 `Expired — log in again` 的 `Login` 列,加上它為過期登入儲存的組織和電子郵件。該列僅在已儲存的登入是您的活動認證資格且無法再更新時出現。以其他方式進行驗證的工作階段不會顯示該列,即使已儲存的過期登入仍然存在。在 v2.1.210 之前,`/status` 在此狀態下沒有指示登入曾經存在過,因為已清除的認證資格沒有留下任何內容供其報告。1284您可以在請求失敗之前檢查此狀態:[`/status`](/docs/zh-TW/commands) 會顯示一列內容為 `Expired — log in again` 的 `Login`,以及它為過期登入所儲存的組織與電子郵件。只有當已儲存的登入是您使用中的憑證且已無法重新整理時,才會出現該列。以其他方式進行身分驗證的工作階段不會顯示該列,即使仍有已過期的登入被儲存。在 v2.1.210 之前,`/status` 在此狀態下不會顯示任何曾經存在登入的跡象,因為被清除的憑證讓它沒有可回報的內容。

1258 1285 

1259**該怎麼做:**1286**處理方式:**

1260 1287 

1261* 執行 `/login` 以再次登入。在不登入的情況下重試會在每個請求上顯示相同的訊息。1288* 執行 `/login` 重新登入。未登入就重試,每次請求都會顯示相同的訊息。

1262* 在非互動式模式中,在相同環境中執行 `claude`,完成 `/login`,然後重新執行您的命令。對於無法以互動方式登入的自動化,使用 `ANTHROPIC_API_KEY` 或[使用 `claude setup-token` 產生長期權杖](/docs/zh-TW/authentication#generate-a-long-lived-token)進行驗證。1289* 如果您在另一個 Claude Code 視窗中以 claude.ai 帳戶登入,請參閱[未登入](#not-logged-in),了解此工作階段何時會自動開始使用該登入。

1263* 如果登入持續失敗,請參閱[登入和驗證](/docs/zh-TW/troubleshoot-install#login-and-authentication)1290* 在非互動模式中,請在相同環境中執行 `claude`,完成 `/login`,然後重新執行您的命令。對於無法互動式登入的自動化作業,請以 `ANTHROPIC_API_KEY` 進行身分驗證,或[使用 `claude setup-token` 產生長期 token](/docs/zh-TW/authentication#generate-a-long-lived-token)。

1291* 如果登入持續失敗,請參閱[登入與身分驗證](/docs/zh-TW/troubleshoot-install#login-and-authentication)

1264 1292 

1265<h3 id="could-not-refresh-your-login">1293<h3 id="could-not-refresh-your-login">

1266 無法重新整理您的登入,因為另一個 Claude Code 程序正在重新整理它1294 由於另一個 Claude Code 程序正在重新整理,無法重新整理您的登入

1267</h3>1295</h3>

1268 1296 

1269此訊息不表示您的登入被拒絕。您的已儲存 claude.ai 登入已過期,需要更新。此機器上的另一個 Claude Code 程序持有共用重新整理鎖定,或退出並將其留下,重新整理在此工作階段等待時沒有進展。Claude Code 在傳送前停止請求:1297此訊息並不表示您的登入被拒絕。您已儲存的 claude.ai 登入已過期且需要更新。同一台機器上的另一個 Claude Code 程序持有共用的重新整理鎖,或是已結束並遺留該鎖,而在此工作階段等待期間重新整理沒有任何進展。Claude Code 會在傳送前停止請求:

1270 1298 

1271```text theme={null}1299```text theme={null}

1272Could not refresh your login because another Claude Code process is refreshing it (or exited mid-refresh) · Try again in a minute; if it keeps happening, close other Claude Code windows or sign in again with /login1300Could not refresh your login because another Claude Code process is refreshing it (or exited mid-refresh) · Try again in a minute; if it keeps happening, close other Claude Code windows or sign in again with /login

1273```1301```

1274 1302 

1275在[非互動式模式](/docs/zh-TW/headless)(`-p`) 和 [Agent SDK](/docs/zh-TW/agent-sdk/overview) 中,訊息讀作如下,結構化錯誤代碼為 `server_error`:1303在[非互動模式](/docs/zh-TW/headless)(`-p`)與 [Agent SDK](/docs/zh-TW/agent-sdk/overview) 中,訊息如下,結構化錯誤代碼為 `server_error`:

1276 1304 

1277```text theme={null}1305```text theme={null}

1278Failed to refresh OAuth token: another Claude Code process is refreshing it or exited mid-refresh. This is usually transient; retry in a minute, and if it persists close other Claude Code processes or sign in again1306Failed to refresh OAuth token: another Claude Code process is refreshing it or exited mid-refresh. This is usually transient; retry in a minute, and if it persists close other Claude Code processes or sign in again

1279```1307```

1280 1308 

1281使用 API 金鑰、[`CLAUDE_CODE_OAUTH_TOKEN`](/docs/zh-TW/env-vars) 或第三方提供者進行驗證的工作階段不使用已儲存的登入,永遠不會看到此訊息。1309以 API 金鑰、[`CLAUDE_CODE_OAUTH_TOKEN`](/docs/zh-TW/env-vars) 或第三方供應商進行身分驗證的工作階段不使用已儲存的登入,永遠不會看到此訊息。

1282 1310 

1283**該怎麼做:**1311**處理方式:**

1284 1312 

1285* 一分鐘後重試。如果另一個程序首先完成重新整理,此工作階段會使用更新的登入。1313* 一分鐘後再試一次。如果另一個程序先完成了重新整理,此工作階段就會使用更新後的登入。

1286* 如果訊息持續返回,請關閉其他 Claude Code 視窗和程序,然後重試。1314* 如果訊息持續出現,請關閉其他 Claude Code 視窗與程序,然後重試。

1287* 如果在沒有其他 Claude Code 程序執行的情況下返回,請執行 `/login`。再次登入不會等待重新整理鎖定。1315* 如果在沒有其他 Claude Code 程序執行的情況下仍出現此訊息,請執行 `/login`。重新登入不需要等待重新整理鎖。

1288 1316 

1289<h3 id="couldnt-save-your-login">1317<h3 id="couldnt-save-your-login">

1290 無法儲存您的登入1318 無法儲存您的登入

1291</h3>1319</h3>

1292 1320 

1293您使用 claude.ai 登入,但 Claude Code 無法將登入儲存到其認證資格存放區,因此登入未完成。在 macOS 上,當登入鑰匙圈鎖定時(例如在睡眠或閒置時),在 Claude Code 已在同一工作階段中讀取或儲存認證資格之後,可能會發生這種情況。1321您已使用 claude.ai 登入,但 Claude Code 無法將登入儲存至其憑證儲存區,因此登入未完成。在 macOS 上,如果 Claude Code 在同一個工作階段中已經讀取或儲存過登入鑰匙圈中的憑證,之後鑰匙圈被鎖定(例如在睡眠或閒置時),就可能發生這種情況。

1294 1322 

1295```text theme={null}1323```text theme={null}

1296Couldn't save your login. If your Mac's keychain is locked, unlock it and log in again.1324Couldn't save your login. If your Mac's keychain is locked, unlock it and log in again.

1297Couldn't save your login. Try logging in again.1325Couldn't save your login. Try logging in again.

1298```1326```

1299 1327 

1300第一種形式出現在 macOS 上,第二種形式出現在其他地方。暫時性認證資格存放區失敗(例如逾時或無法讀取的存放區)會產生相同的訊息。1328第一種形式出現在 macOS 上,第二種則出現在其他所有平台上。暫時性的憑證儲存區失敗(例如逾時或儲存區無法讀取)也會產生相同的訊息。

1301 1329 

1302**該怎麼做:**1330**處理方式:**

1303 1331 

1304* 在 macOS 上,解鎖登入鑰匙圈,然後再次執行 `/login`1332* 在 macOS 上,解鎖登入鑰匙圈,然後再次執行 `/login`

1305* 在其他平台上,再次執行 `/login`1333* 在其他平台上,再次執行 `/login`

1306* 如果登入仍未儲存,請參閱[未登入或權杖已過期](/docs/zh-TW/troubleshoot-install#not-logged-in-or-token-expired)以取得鑰匙圈解鎖命令和其他認證資格儲存復原步驟1334* 如果登入仍無法儲存,請參閱[未登入或 token 已過期](/docs/zh-TW/troubleshoot-install#not-logged-in-or-token-expired),了解鑰匙圈解鎖命令及其他憑證儲存復原步驟

1307 1335 

1308<h3 id="failed-to-start-oauth-callback-server">1336<h3 id="failed-to-start-oauth-callback-server">

1309 無法啟動 OAuth 回呼伺服器1337 無法啟動 OAuth 回呼伺服器

1310</h3>1338</h3>

1311 1339 

1312當 `/login`、`claude auth login` 或 `claude setup-token` 透過瀏覽器簽署您時,Claude Code 在 `127.0.0.1` 上開啟一個監聽連接埠,以便您的瀏覽器可以將登入結果傳回給它。此訊息表示 Claude Code 無法開啟該連接埠,登入在瀏覽器視窗或登入 URL 出現之前停止:1340當 `/login`、`claude auth login` 或 `claude setup-token` 透過瀏覽器為您登入時,Claude Code 會在 `127.0.0.1` 上開啟一個監聽埠,讓您的瀏覽器能將登入結果傳回給它。此訊息表示 Claude Code 無法開啟該埠,登入會在瀏覽器視窗或登入 URL 出現之前停止:

1313 1341 

1314```text theme={null}1342```text theme={null}

1315Failed to start OAuth callback server: Failed to start server. Is port 0 in use?1343Failed to start OAuth callback server: Failed to start server. Is port 0 in use?

1316```1344```

1317 1345 

1318如果您的訊息以 `Is port 0 in use?` 結尾,嘗試在 IPv4 loopback 位址 `127.0.0.1` 上監聽的嘗試完全失敗。因為失敗發生在登入 URL 存在之前,`Paste code here if prompted` 流程不可用作為解決方法。1346如果您的訊息以 `Is port 0 in use?` 結尾,表示在 IPv4 回送位址 `127.0.0.1` 上監聽的嘗試直接失敗了。由於失敗發生在登入 URL 產生之前,`Paste code here if prompted` 流程無法作為替代方案。

1319 1347 

1320**該怎麼做:**1348**處理方式:**

1321 1349 

1322* 若要立即登入而無需本機監聽器:如果您使用 claude.ai 訂閱,請在登入有效的機器上執行 [`claude setup-token`](/docs/zh-TW/authentication#generate-a-long-lived-token),並將其列印的權杖設定為此機器上的 `CLAUDE_CODE_OAUTH_TOKEN`。否則將 `ANTHROPIC_API_KEY` 設定為 [Claude Console](https://platform.claude.com/settings/keys) 中的金鑰。[驗證優先順序](/docs/zh-TW/authentication#authentication-precedence)解釋 Claude Code 如何在認證資格之間進行選擇。1350* 若要在不使用本機監聽器的情況下立即登入:如果您使用 claude.ai 訂閱,請在可以正常登入的機器上執行 [`claude setup-token`](/docs/zh-TW/authentication#generate-a-long-lived-token),並在這台機器上將其輸出的 token 設定為 `CLAUDE_CODE_OAUTH_TOKEN`。否則,請將 `ANTHROPIC_API_KEY` 設定為來自 [Claude Console](https://platform.claude.com/settings/keys) 的金鑰。[身分驗證優先順序](/docs/zh-TW/authentication#authentication-precedence)說明了 Claude Code 如何在多個憑證之間做選擇。

1323* 若要在此機器上改用瀏覽器登入,Claude Code 必須能夠在 `127.0.0.1` 上監聽。如果它在沙箱內執行,請檢查沙箱的政策是否允許在本機連接埠上監聽,然後再次執行 `/login`。如果它應該能夠並且仍然失敗,請執行 `/feedback`,以便報告包含您的環境詳細資訊。1351* 若要改為在這台機器上使用瀏覽器登入,Claude Code 必須能夠在 `127.0.0.1` 上監聽。如果它在沙箱中執行,請確認沙箱的政策允許在本機埠上監聽,然後再次執行 `/login`。如果它理應可以監聽卻仍然失敗,請執行 `/feedback`,讓回報中包含您的環境詳細資訊。

1324 1352 

1325<h3 id="claude-login-not-accepted">1353<h3 id="claude-login-not-accepted">

1326 Claude 登入未被接受1354 不接受 Claude 登入

1327</h3>1355</h3>

1328 1356 

1329您嘗試啟動[雲端工作階段](/docs/zh-TW/claude-code-on-the-web),伺服器以 401 拒絕建立它:它未接受此機器傳送的 Claude 登入,通常是因為登入已過期或被撤銷。1357您嘗試啟動[雲端工作階段](/docs/zh-TW/claude-code-on-the-web),但伺服器以 401 拒絕建立它:伺服器不接受這台機器所傳送的 Claude 登入,通常是因為登入已過期或被撤銷。

1330 1358 

1331該行的第一部分是伺服器自己的原因(如果它給出的話)。否則該行讀作:1359如果伺服器有提供原因,該行的第一部分會是伺服器本身的原因。否則該行顯示為:

1332 1360 

1333```text theme={null}1361```text theme={null}

1334Claude login not accepted · Run /login, then try again1362Claude login not accepted · Run /login, then try again

1335```1363```

1336 1364 

1337**該怎麼做:**1365**處理方式:**

1338 1366 

1339* 執行 `/login`,完成登入,然後再次啟動工作階段1367* 執行 `/login`,完成登入後再次啟動工作階段

1340 1368 

1341<h3 id="artifacts-need-a-claude-ai-login">1369<h3 id="artifacts-need-a-claude-ai-login">

1342 工件需要 claude.ai 登入1370 Artifact 需要 claude.ai 登入

1343</h3>1371</h3>

1344 1372 

1345Claude Code 拒絕了[工件](/docs/zh-TW/artifacts)發佈或讀取,因為工作階段沒有可用於工件的 claude.ai 登入。1373Claude Code 拒絕了 [artifact](/docs/zh-TW/artifacts) 的發布或讀取,因為此工作階段沒有可用於 artifact 的 claude.ai 登入。

1346 1374 

1347訊息的每種形式都以相同的詞開頭,後面跟著取決於您的工作階段如何進行驗證的補救措施。沒有競爭認證資格時,它讀作:1375每種形式的訊息都以相同的文字開頭,後面接著依您工作階段的身分驗證方式而定的補救方法。在沒有競爭憑證的情況下,訊息顯示為:

1348 1376 

1349```text theme={null}1377```text theme={null}

1350Artifacts need a claude.ai login. Run /login and select "Claude account with subscription", then retry — the "Anthropic Console account" option does not provide claude.ai credentials.1378Artifacts need a claude.ai login. Run /login and select "Claude account with subscription", then retry — the "Anthropic Console account" option does not provide claude.ai credentials.

1351```1379```

1352 1380 

1353**該怎麼做:**1381**處理方式:**

1354 1382 

1355* 執行 `/login` 並選擇**具有訂閱的 Claude 帳戶**。**Anthropic Console 帳戶**選項不提供 claude.ai 認證資格。1383* 執行 `/login` 並選擇 **Claude account with subscription**。**Anthropic Console account** 選項不提供 claude.ai 憑證。

1356* 當訊息命名優先的認證資格(例如 `ANTHROPIC_API_KEY`、`apiKeyHelper` 設定或先前 `/login` 儲存的 Console 金鑰)時,按訊息所說的方式移除它,然後執行 `/login`1384* 當訊息指名某個具有優先權的憑證(例如 `ANTHROPIC_API_KEY`、`apiKeyHelper` 設定,或先前 `/login` 所儲存的 Console 金鑰)時,請依訊息所述的方式移除它,然後執行 `/login`

1357* 當訊息說此遠端工作階段透過啟動它的機器進行驗證時,在該機器上登入 claude.ai,然後重新連線工作階段1385* 當訊息表示此遠端工作階段是透過啟動它的機器進行身分驗證時,請在該機器上登入 claude.ai,然後重新連線工作階段

1358* 當訊息說認證資格由工作階段的主機環境注入時,您無法在該工作階段中變更它;啟動已登入 claude.ai 的工作階段1386* 當訊息表示憑證是由工作階段的主機環境注入時,您無法在該工作階段中變更它;請啟動一個已登入 claude.ai 的工作階段

1359* 請參閱[可用性](/docs/zh-TW/artifacts#availability)以瞭解工件具有的其他要求,例如計畫、模型提供者和組織政策1387* 請參閱[可用性](/docs/zh-TW/artifacts#availability),了解 artifact 的其他需求,例如方案、模型供應商與組織政策

1360 1388 

1361<h3 id="administrator-policy-requires-a-cloud-gateway-sign-in">1389<h3 id="administrator-policy-requires-a-cloud-gateway-sign-in">

1362 管理員政策需要雲端閘道登入1390 管理員政策要求使用 Cloud 閘道登入

1363</h3>1391</h3>

1364 1392 

1365此機器上的管理員[受管設定](/docs/zh-TW/managed-settings)將 [`forceLoginMethod`](/docs/zh-TW/settings-reference#forceloginmethod) 設定為 `"gateway"` 或設定 [`forceLoginGatewayUrl`](/docs/zh-TW/settings-reference#forcelogingatewayurl)。除非您透過 `CLAUDE_CODE_USE_BEDROCK` 等變數選擇雲端提供者,Claude Code 只接受 [Claude 應用程式閘道](/docs/zh-TW/claude-apps-gateway)登入。您會看到以下兩個訊息之一:1393管理員在這台機器上的[受管設定](/docs/zh-TW/managed-settings)將 [`forceLoginMethod`](/docs/zh-TW/settings-reference#forceloginmethod) 設定為 `"gateway"`,或設定了 [`forceLoginGatewayUrl`](/docs/zh-TW/settings-reference#forcelogingatewayurl)。除非您透過 `CLAUDE_CODE_USE_BEDROCK` 等變數選擇雲端供應商,否則 Claude Code 只會接受 [Claude apps 閘道](/docs/zh-TW/claude-apps-gateway)登入。您會看到下列兩種訊息之一:

1366 1394 

1367```text theme={null}1395```text theme={null}

1368Not signed in to the Cloud gateway — run /login.1396Not signed in to the Cloud gateway — run /login.

1369```1397```

1370 1398 

1371當工作階段沒有閘道登入時,模型請求會失敗,並顯示此訊息,例如因為您自政策到達機器後未執行 `/login`。1399當工作階段沒有閘道登入時,模型請求會以此訊息失敗,例如因為在政策套用到這台機器之後您尚未執行 `/login`。

1372 1400 

1373如果您也有 `ANTHROPIC_API_KEY`、`ANTHROPIC_AUTH_TOKEN` 或 `apiKeyHelper` 認證資格已設定,且受管設定設定了 `forceLoginMethod`,Claude Code 會在啟動時改為結束,並顯示以下開頭的訊息:1401如果這台機器還持有 Anthropic 核發的憑證,且受管設定設定了 `forceLoginMethod` 或 `forceLoginOrgUUID`,Claude Code 會改為在啟動時結束。該憑證可能是 `ANTHROPIC_API_KEY` 或 `ANTHROPIC_AUTH_TOKEN` 變數、`apiKeyHelper` 設定,或先前 Claude Console 登入所儲存的 API 金鑰。

1402 

1403啟動訊息會指出工作階段所設定的憑證、其設定位置,以及移除它的步驟。例如,若您在 shell 中設定了 `ANTHROPIC_API_KEY` 變數,訊息會顯示為:

1374 1404 

1375```text theme={null}1405```text theme={null}

1376Administrator policy requires a Cloud gateway sign-in on this machine; the1406Administrator policy requires a Cloud gateway sign-in on this machine, but this session is configured with an API key from ANTHROPIC_API_KEY, which a gateway machine does not accept.

1377Anthropic-issued credential configured here (ANTHROPIC_API_KEY,1407 

1378ANTHROPIC_AUTH_TOKEN, or apiKeyHelper) is not used.1408To continue: unset ANTHROPIC_API_KEY (or run in a shell without it), then run claude and sign in with /login.

1379```1409```

1380 1410 

1381**該怎麼做:**1411**處理方式:**

1412 

1413* 對於 `Not signed in to the Cloud gateway`,請執行 `/login` 並在 **Cloud gateway** 畫面上完成登入

1414* 對於啟動訊息,請依照訊息結尾的步驟移除該憑證

1415* 如果您認為這台機器不應要求使用閘道,請要求管理該機器的管理員從其受管設定中移除 `forceLoginMethod` 與 `forceLoginGatewayUrl`

1382 1416 

1383* 執行 `/login` 並在**雲端閘道**畫面上完成登入1417在 v2.1.284 之前,啟動訊息會列出可能的憑證,而不是指出所設定的那一個。訊息開頭為 `Administrator policy requires a Cloud gateway sign-in on this machine; the Anthropic-issued credential configured here (ANTHROPIC_API_KEY, ANTHROPIC_AUTH_TOKEN, or apiKeyHelper) is not used.`。如果您看到這段文字且無法判斷要移除哪個憑證,請更新至 v2.1.284 或更新版本,然後再次啟動 `claude`。

1384* 對於啟動訊息,移除您設定的 `ANTHROPIC_API_KEY`、`ANTHROPIC_AUTH_TOKEN` 或 `apiKeyHelper` 設定,然後啟動 `claude` 並執行 `/login`

1385* 如果您認為機器不應該需要閘道,請要求管理該機器的管理員從其受管設定中移除 `forceLoginMethod` 和 `forceLoginGatewayUrl`

1386 1418 

1387在 v2.1.265 上,迴歸也在某些使用 API 金鑰、`apiKeyHelper` 或自訂標頭進行驗證的 LLM 閘道和代理設定中顯示第一個訊息,即使機器上沒有管理員要求。更新至 v2.1.266 或更新版本。您不需要變更您的設定。1419在 v2.1.265 上,一個迴歸問題也會在某些以 API 金鑰、`apiKeyHelper` 或自訂標頭進行身分驗證的 LLM 閘道與代理伺服器設定中顯示第一則訊息,即使這台機器上沒有任何管理員要求亦然。請更新至 v2.1.266 或更新版本。您不需要變更設定。

1388 1420 

1389在 v2.1.261 之前,在將 `forceLoginMethod` 設定為 `"gateway"` 的機器上,Claude Code 使用剩餘的已儲存登入,而不是失敗模型請求,並報告已設定的環境認證資格,並顯示 `This machine's managed settings require a first-party login` 而不是啟動訊息。在 v2.1.265 之前,其受管設定僅設定 `forceLoginGatewayUrl` 的機器不需要閘道登入,Claude Code 在那裡使用剩餘的認證資格。1421在 v2.1.261 之前,在將 `forceLoginMethod` 設定為 `"gateway"` 的機器上,Claude Code 會使用遺留的已儲存登入,而不是讓模型請求失敗,並以 `This machine's managed settings require a first-party login` 回報已設定的環境憑證,而不是顯示啟動訊息。

1390 1422 

1391<h3 id="your-account-is-on-hold">1423<h3 id="your-account-is-on-hold">

1392 您的帳戶已被暫停1424 您的帳戶已遭暫停

1393</h3>1425</h3>

1394 1426 

1395Claude 帳戶背後的登入已被暫停。Claude Code 在嘗試更新您的已儲存登入並瞭解暫停時顯示第一個訊息,在您在瀏覽器中完成的登入報告時顯示第二個訊息:1427您登入所使用的 Claude 帳戶已被停權。當 Claude Code 嘗試更新您已儲存的登入並得知暫停狀態時,會顯示第一則訊息;當您在瀏覽器中完成的登入回報此狀態時,會顯示第二則訊息:

1396 1428 

1397```text theme={null}1429```text theme={null}

1398Your account is on hold and can't use Claude Code. View details or appeal: https://claude.ai/restricted1430Your account is on hold and can't use Claude Code. View details or appeal: https://claude.ai/restricted

1399Your account is on hold and can't sign in to Claude Code. View details or appeal: https://claude.ai/restricted1431Your account is on hold and can't sign in to Claude Code. View details or appeal: https://claude.ai/restricted

1400```1432```

1401 1433 

1402使用相同帳戶再次登入不會清除訊息,因為暫停是在帳戶上,而不是登入上。在[非互動式模式](/docs/zh-TW/headless)(`-p`) 和 [Agent SDK](/docs/zh-TW/agent-sdk/overview) 中,結構化錯誤代碼為 `account_on_hold`。在 v2.1.235 之前,Claude Code 將被暫停的帳戶報告為[登入已過期 · 請執行 /login](#login-expired),其復原步驟無法清除暫停。1434以相同帳戶重新登入不會清除此訊息,因為暫停是針對帳戶而非登入。在[非互動模式](/docs/zh-TW/headless)(`-p`)與 [Agent SDK](/docs/zh-TW/agent-sdk/overview) 中,結構化錯誤代碼為 `account_on_hold`。在 v2.1.235 之前,Claude Code 會將遭暫停的帳戶回報為 [Login expired · Please run /login](#login-expired),而其復原步驟無法解除暫停。

1403 1435 

1404**該怎麼做:**1436**處理方式:**

1405 1437 

1406* 開啟訊息中的連結以檢視暫停的詳細資訊或對其提出異議1438* 開啟訊息中的連結,查看暫停的詳細資訊或提出申訴

1407* 如果您有另一個 Claude 帳戶或不受暫停影響的 API 金鑰,您可以在暫停解決期間繼續工作:執行 `/login` 使用該帳戶,或使用 `ANTHROPIC_API_KEY` 設定金鑰1439* 如果您有另一個不受暫停影響的 Claude 帳戶或 API 金鑰,可以在暫停解決期間繼續工作:以該帳戶執行 `/login`,或以 `ANTHROPIC_API_KEY` 設定金鑰

1408 1440 

1409<h3 id="anthropic-profile-login-expired">1441<h3 id="anthropic-profile-login-expired">

1410 Anthropic 設定檔登入已過期1442 Anthropic 設定檔登入已過期

1411</h3>1443</h3>

1412 1444 

1413Claude Code 透過 Anthropic 認證資格設定檔進行驗證,其已儲存的登入認證資格已過期,且設定檔沒有 Claude Code 可用來更新它的重新整理認證資格。Claude Code 在本機停止每個請求,不重試,因為重試會讀取相同的過期認證資格。1445Claude Code 正透過一個 Anthropic 憑證設定檔進行身分驗證,該設定檔中已儲存的登入憑證已過期,且設定檔中沒有 Claude Code 可用來更新它的重新整理憑證。Claude Code 會在本機停止每個請求而不重試,因為重試只會讀取相同的過期憑證。

1414 1446 

1415```text theme={null}1447```text theme={null}

1416Anthropic profile login expired · Re-authenticate your Anthropic profile1448Anthropic profile login expired · Re-authenticate your Anthropic profile

1417Anthropic profile login expired · Run /login to use your claude.ai account instead, or re-authenticate the profile1449Anthropic profile login expired · Run /login to use your claude.ai account instead, or re-authenticate the profile

1418```1450```

1419 1451 

1420這僅在活動認證資格來自 Anthropic 認證資格設定檔時出現,您可以使用 `ANTHROPIC_PROFILE` 環境變數選擇該設定檔,Claude Code 在您的 Anthropic 設定目錄中發現為活動設定檔,或 Claude Code 在您[登入時沒有 API 金鑰](/docs/zh-TW/authentication#sign-in-without-an-api-key)時寫入。使用 `/login` 的 claude.ai 選項、API 金鑰、持有人權杖(例如 `ANTHROPIC_AUTH_TOKEN`)或第三方提供者進行驗證的工作階段永遠不會看到此訊息。1452只有當使用中的憑證來自 Anthropic 憑證設定檔時才會出現此訊息,該設定檔可能是您以 `ANTHROPIC_PROFILE` 環境變數選擇的、Claude Code 在您的 Anthropic 設定目錄中探索到的使用中設定檔,或是 Claude Code 在您[無 API 金鑰登入](/docs/zh-TW/authentication#sign-in-without-an-api-key)時寫入的設定檔。以 API 金鑰、bearer token(例如 `ANTHROPIC_AUTH_TOKEN`)或第三方供應商進行身分驗證的工作階段永遠不會看到此訊息。

1421 1453 

1422在[提供無金鑰登入](/docs/zh-TW/authentication#sign-in-without-an-api-key)的機器上,執行 `/login`,選擇 Anthropic Console 帳戶,然後再次登入以更新無金鑰 Console 登入或 Claude Platform CLI 的 `ant auth login` 寫入的設定檔。Claude Code 替換該設定檔中的過期認證資格。對於聯盟設定檔或另一個工具建立的設定檔,`/login` 不會更新認證資格。您看到的形式取決於您是否明確選擇了設定檔或 Claude Code 發現了它:1454在[提供無金鑰登入](/docs/zh-TW/authentication#sign-in-without-an-api-key)的機器上,若要更新由無金鑰 Console 登入或 Claude Platform CLI 的 `ant auth login` 所寫入的設定檔,請執行 `/login`,選擇 Anthropic Console 帳戶並重新登入。Claude Code 會取代該設定檔中的過期憑證。對於聯合設定檔或由其他工具建立的設定檔,`/login` 不會更新憑證。您看到哪一種形式,取決於設定檔是您選擇的還是 Claude Code 探索到的:

1423 1455 

1424* 當您明確設定 `ANTHROPIC_PROFILE` 時,訊息以 `Re-authenticate your Anthropic profile` 結尾。1456* 當您明確設定 `ANTHROPIC_PROFILE` 時,訊息會以 `Re-authenticate your Anthropic profile` 結尾。

1425* 當 Claude Code 從您的設定目錄發現設定檔時,訊息提供 `/login`,因為 Claude Code 優先使用有效的 `/login` 而不是發現的設定檔,然後改為使用您的 claude.ai 或 Console 帳戶進行驗證。在 v2.1.234 之前,Claude Code 在此情況下也顯示 `Re-authenticate your Anthropic profile` 形式。1457* 當 Claude Code 從您的設定目錄探索到設定檔時,訊息會提供 `/login`,因為 Claude Code 會讓可用的 `/login` 優先於探索到的設定檔,並改以您的 claude.ai 或 Console 帳戶進行身分驗證。在 v2.1.234 之前,Claude Code 在這種情況下也會顯示 `Re-authenticate your Anthropic profile` 形式。

1426 1458 

1427**該怎麼做:**1459**處理方式:**

1428 1460 

1429* 再次登入設定檔,然後重試:在[提供無金鑰登入](/docs/zh-TW/authentication#sign-in-without-an-api-key)的機器上,執行 `/login` 並為無金鑰 Console 登入或 Claude Platform CLI 的 `ant auth login` 寫入的設定檔選擇 Anthropic Console 帳戶;對於其他設定檔,使用建立它們的工具1461* 重新登入設定檔,然後重試:在[提供無金鑰登入](/docs/zh-TW/authentication#sign-in-without-an-api-key)的機器上,對於由無金鑰 Console 登入或 Claude Platform CLI 的 `ant auth login` 所寫入的設定檔,請執行 `/login` 並選擇 Anthropic Console 帳戶;對於其他設定檔,請使用建立它們的工具

1430* 如果管理員佈建了設定檔的認證資格,請要求他們簽發新的認證資格1462* 如果設定檔的憑證是由管理員佈建的,請要求他們核發新的憑證

1431* 執行 `/status` 以確認活動認證資格來源和設定檔名稱1463* 執行 `/status`,確認使用中的憑證來源與設定檔名稱

1432* 若要停止使用設定檔,如果您設定了 `ANTHROPIC_PROFILE`,請取消設定它,然後以其他方式進行驗證,例如 `/login` 或 `ANTHROPIC_API_KEY`1464* 若要停止使用該設定檔,請在您有設定的情況下取消設定 `ANTHROPIC_PROFILE`,然後以其他方式進行身分驗證,例如 `/login` 或 `ANTHROPIC_API_KEY`

1433 1465 

1434<h3 id="oauth-scope-requirement">1466<h3 id="oauth-scope-requirement">

1435 OAuth 範圍要求1467 OAuth 範圍需求

1436</h3>1468</h3>

1437 1469 

1438已儲存的權杖早於較新功能需要的權限範圍:1470已儲存的 token 早於某個較新功能所需的權限範圍:

1439 1471 

1440```text theme={null}1472```text theme={null}

1441OAuth token does not meet scope requirement: user:profile1473OAuth token does not meet scope requirement: user:profile

1442```1474```

1443 1475 

1444**該怎麼做:**1476**處理方式:**

1445 1477 

1446* 執行 `/login` 以取得具有目前範圍的新權杖。您不需要先登出。1478* 執行 `/login` 以取得具有目前範圍的新 token。您不需要先登出。

1447 1479 

1448<h3 id="claude-ai-rejected-the-session-token">1480<h3 id="claude-ai-rejected-the-session-token">

1449 claude.ai 拒絕了工作階段權杖1481 claude.ai 拒絕了工作階段 token

1450</h3>1482</h3>

1451 1483 

1452[claude.ai 連接器](/docs/zh-TW/mcp#use-mcp-servers-from-claude-ai)請求失敗,因為 claude.ai 拒絕了來自您的 Claude Code 登入的權杖。被拒絕的權杖是您的登入,而不是連接器在 claude.ai 中的自身授權,因此再次授權連接器不會解決它。在 `/mcp` 中,連接器顯示為 `connected · session token rejected`,其詳細資訊檢視讀作:1484[claude.ai 連接器](/docs/zh-TW/mcp#use-mcp-servers-from-claude-ai)請求失敗,因為 claude.ai 拒絕了來自您 Claude Code 登入的 token。被拒絕的 token 是您的登入,而不是連接器本身在 claude.ai 中的授權,因此重新授權連接器無法解決此問題。在 `/mcp` 中,該連接器會顯示為 `session token rejected`,其詳細資訊檢視顯示:

1453 1485 

1454```text theme={null}1486```text theme={null}

1455claude.ai rejected the session token. Run /login, then reconnect.1487claude.ai rejected the session token. Run /login, then reconnect.

1456```1488```

1457 1489 

1458**該怎麼做:**1490**處理方式:**

1459 1491 

1460* 執行 `/login` 以再次登入1492* 執行 `/login` 重新登入

1461* 從 `/mcp` 重新連線連接器,或執行 `/mcp reconnect <server>`。在您再次登入之前重新連線會使連接器處於相同狀態。`/mcp` 面板的**重新連線**選項報告 `your claude.ai session token was rejected`;輸入的 `/mcp reconnect <server>` 形式報告成功重新連線,即使權杖仍被拒絕。1493* 從 `/mcp` 重新連線連接器,或執行 `/mcp reconnect <server>`。在重新登入之前重新連線,連接器會維持相同狀態。`/mcp` 面板的 **Reconnect** 選項會回報 `your claude.ai session token was rejected`;而輸入的 `/mcp reconnect <server>` 形式即使 token 仍被拒絕,也會回報重新連線成功。

1462 1494 

1463在 v2.1.222 之前,Claude Code 改為將連接器標記為需要驗證,這指向您進行連接器的授權流程,即使完成它也不會解決狀態。1495在 v2.1.222 之前,Claude Code 會改將連接器標記為需要身分驗證,引導您前往連接器的授權流程,即使完成該流程也無法解決此狀態。

1464 1496 

1465<h3 id="mcp-server-needs-you-to-sign-in-again">1497<h3 id="mcp-server-needs-you-to-sign-in-again">

1466 MCP 伺服器需要您再次登入1498 MCP 伺服器需要您重新登入

1467</h3>1499</h3>

1468 1500 

1469遠端 [MCP 伺服器](/docs/zh-TW/mcp)在工作階段中期拒絕了工具呼叫上的認證資格,通常是因為登入或權杖已過期或因為權杖缺少工具需要的權限。工具呼叫失敗,`/mcp` 將伺服器標記為[需要驗證](/docs/zh-TW/mcp#authenticate-with-remote-mcp-servers)。1501遠端 [MCP 伺服器](/docs/zh-TW/mcp)在工作階段中途的工具呼叫時拒絕了憑證,通常是因為登入或 token 已過期,或是 token 缺少工具所需的權限。工具呼叫會失敗,且 `/mcp` 會將該伺服器標記為[需要身分驗證](/docs/zh-TW/mcp#authenticate-with-remote-mcp-servers)。

1470 1502 

1471對於您從 Claude Code 登入的伺服器,包括 claude.ai 連接器,登入已過期或被撤銷:1503對於您從 Claude Code 登入的伺服器(包括 claude.ai 連接器),表示登入已過期或被撤銷:

1472 1504 

1473```text theme={null}1505```text theme={null}

1474MCP server "<name>" needs you to sign in again (run /mcp to re-authenticate)1506MCP server "<name>" needs you to sign in again (run /mcp to re-authenticate)

1475```1507```

1476 1508 

1477執行 `/mcp`,選擇伺服器,然後從其功能表再次登入。1509執行 `/mcp`,選擇該伺服器,並從其選單重新登入。

1478 1510 

1479對於使用 [`headersHelper`](/docs/zh-TW/mcp#use-dynamic-headers-for-custom-authentication) 指令碼設定的伺服器,Claude Code 已重新執行協助程式並在顯示此訊息之前重試呼叫一次:1511對於以 [`headersHelper`](/docs/zh-TW/mcp#use-dynamic-headers-for-custom-authentication) 指令碼設定的伺服器,Claude Code 在顯示此訊息之前已經重新執行過 helper 並重試過一次呼叫:

1480 1512 

1481```text theme={null}1513```text theme={null}

1482MCP server "<name>" rejected the credential from its headersHelper (check the helper and run /mcp to reconnect, or to authenticate if the server also uses OAuth)1514MCP server "<name>" rejected the credential from its headersHelper (check the helper and run /mcp to reconnect, or to authenticate if the server also uses OAuth)

1483```1515```

1484 1516 

1485檢查協助程式傳回伺服器接受的認證資格,然後從 `/mcp` 重新連線,這會再次執行協助程式。1517請確認 helper 傳回的憑證是伺服器所接受的,然後從 `/mcp` 重新連線,這會再次執行 helper。

1486 1518 

1487對於在其設定中具有靜態 `Authorization` 標頭的伺服器:1519對於設定中帶有靜態 `Authorization` 標頭的伺服器:

1488 1520 

1489```text theme={null}1521```text theme={null}

1490MCP server "<name>" rejected the Authorization header in its config (update it, then run /mcp to reconnect)1522MCP server "<name>" rejected the Authorization header in its config (update it, then run /mcp to reconnect)

1491```1523```

1492 1524 

1493在伺服器設定的位置更新標頭值,然後從 `/mcp` 重新連線。1525在設定該伺服器的位置更新標頭值,然後從 `/mcp` 重新連線。

1494 1526 

1495在 v2.1.273 之前,已過期登入、`headersHelper` 和 `Authorization` 標頭情況都顯示 `MCP server "<name>" requires re-authorization (token expired)`。1527在 v2.1.273 之前,登入過期、`headersHelper` 與 `Authorization` 標頭這幾種情況都會顯示 `MCP server "<name>" requires re-authorization (token expired)`。

1496 1528 

1497伺服器也可以拒絕帶有 HTTP 403 `insufficient_scope` 的工具呼叫,以要求您授權範圍,有時是您的權杖已列出的範圍。訊息命名該範圍:1529伺服器也可能以 HTTP 403 `insufficient_scope` 拒絕工具呼叫,要求您授權某個範圍,有時是您的 token 已列出的範圍。訊息會指出該範圍:

1498 1530 

1499```text theme={null}1531```text theme={null}

1500MCP server "<name>" needs additional permissions (scope: "<scope>") — run /mcp to re-authenticate1532MCP server "<name>" needs additional permissions (scope: "<scope>") — run /mcp to re-authenticate

1501```1533```

1502 1534 

1503執行 `/mcp`,選擇伺服器,然後從其功能表再次驗證。1535執行 `/mcp`,選擇該伺服器,並從其選單重新進行身分驗證。

1504 1536 

1505當伺服器的設定既未設定 [`oauth.scopes`](/docs/zh-TW/mcp#restrict-oauth-scopes) 也未設定 [`authServerMetadataUrl`](/docs/zh-TW/mcp#override-oauth-metadata-discovery) 時,Claude Code 要求伺服器命名的範圍。使用任一設定,Claude Code 改為要求該設定的範圍。如果您釘選了 `oauth.scopes`,在再次驗證之前將遺漏的範圍新增到該列表。1537當伺服器的設定既未設定 [`oauth.scopes`](/docs/zh-TW/mcp#restrict-oauth-scopes) 也未設定 [`authServerMetadataUrl`](/docs/zh-TW/mcp#override-oauth-metadata-discovery) 時,Claude Code 會請求伺服器所指出的範圍。若有設定其中任一項,Claude Code 會改為請求該設定的範圍。如果您固定了 `oauth.scopes`,請在重新進行身分驗證之前,將缺少的範圍加入該清單。

1506 1538 

1507在 v2.1.274 之前,此情況顯示 `needs you to sign in again` 訊息,在 v2.1.273 之前它顯示 `requires re-authorization (token expired)` 如其他情況。1539在 v2.1.274 之前,此情況會顯示 `needs you to sign in again` 訊息,而在 v2.1.273 之前,它會像其他情況一樣顯示 `requires re-authorization (token expired)`。

1508 1540 

1509<h3 id="mcp-server-url-is-missing-or-not-a-valid-url">1541<h3 id="mcp-server-url-is-missing-or-not-a-valid-url">

1510 MCP 伺服器 URL 遺漏或不是有效的 URL1542 MCP 伺服器 URL 遺失或不是有效的 URL

1511</h3>1543</h3>

1512 1544 

1513Claude Code 拒絕為遠端 MCP 伺服器啟動 OAuth 登入,因為伺服器的已設定 `url` 不會解析為 URL。除非 Claude Code 有更具體的設定問題要為伺服器報告,否則執行 [`claude mcp login <name>`](/docs/zh-TW/mcp#authenticate-from-the-command-line) 在您的 shell 中列印拒絕為:1545Claude Code 拒絕為遠端 MCP 伺服器啟動 OAuth 登入,因為該伺服器所設定的 `url` 無法解析為 URL。除非 Claude Code 有更具體的伺服器設定問題要回報,否則在您的 shell 中執行 [`claude mcp login <name>`](/docs/zh-TW/mcp#authenticate-from-the-command-line) 會將此拒絕顯示為:

1514 1546 

1515```text theme={null}1547```text theme={null}

1516Couldn't complete authentication for "<name>": This server's URL is missing or not a valid URL, so sign-in can't start. Fix the URL in its MCP config (or set the environment variable it uses) and try again.1548Couldn't complete authentication for "<name>": This server's URL is missing or not a valid URL, so sign-in can't start. Fix the URL in its MCP config (or set the environment variable it uses) and try again.

1517```1549```

1518 1550 

1519**該怎麼做:**1551**處理方式:**

1520 1552 

1521* 將項目的 `url` 設定為伺服器設定的伺服器的真實端點,或設定其 [`${VAR}` 參考](/docs/zh-TW/mcp#environment-variable-expansion-in-mcp-json)命名的環境變數,然後再次執行登入。1553* 在設定該伺服器的位置將該項目的 `url` 設定為伺服器的實際端點,或設定其 [`${VAR}` 參照](/docs/zh-TW/mcp#environment-variable-expansion-in-mcp-json)所指名的環境變數,然後再次執行登入。

1522 1554 

1523<h3 id="issuer-mismatch-in-authorization-response">1555<h3 id="issuer-mismatch-in-authorization-response">

1524 授權回應中的簽發者不匹配1556 授權回應中的 issuer 不符

1525</h3>1557</h3>

1526 1558 

1527在 [MCP OAuth 登入](/docs/zh-TW/mcp#authenticate-with-remote-mcp-servers)期間,授權伺服器重新導向回 Claude Code,並帶有 `iss` 參數,該參數不命名 Claude Code 從伺服器的 OAuth 中繼資料預期的簽發者。此步驟中的簽發者錯誤是授權伺服器混合攻擊的樣子,因此 Claude Code 失敗登入,而不是交換授權代碼。Claude Code 在瀏覽器登入後在 `/mcp` 伺服器功能表中顯示錯誤:1559在 [MCP OAuth 登入](/docs/zh-TW/mcp#authenticate-with-remote-mcp-servers)期間,授權伺服器重新導向回 Claude Code 時所帶的 `iss` 參數,並非 Claude Code 根據伺服器 OAuth 中繼資料所預期的 issuer。此步驟出現錯誤的 issuer 正是授權伺服器混淆攻擊的樣貌,因此 Claude Code 會讓登入失敗,而不是交換授權碼。Claude Code 會在瀏覽器登入後於 `/mcp` 伺服器選單中顯示此錯誤:

1528 1560 

1529```text theme={null}1561```text theme={null}

1530Issuer mismatch in authorization response (RFC 9207): expected "https://auth.example.com", received "https://other.example.com"1562Issuer mismatch in authorization response (RFC 9207): expected "https://auth.example.com", received "https://other.example.com"

1531```1563```

1532 1564 

1533`expected` 是來自伺服器的 OAuth 中繼資料的簽發者,`received` 是重新導向攜帶的 `iss` 值。其重新導向不攜帶 `iss` 參數的登入通過檢查,除非伺服器的中繼資料設定 `authorization_response_iss_parameter_supported`,在這種情況下 Claude Code 失敗登入。1565`expected` 是伺服器 OAuth 中繼資料中的 issuer,`received` 是重新導向所帶的 `iss` 值。重新導向未帶 `iss` 參數的登入會通過檢查,除非伺服器的中繼資料設定了 `authorization_response_iss_parameter_supported`,此時 Claude Code 會讓登入失敗。

1534 1566 

1535**該怎麼做:**1567**處理方式:**

1536 1568 

1537* 嘗試從 `/mcp` 再次登入1569* 從 `/mcp` 再次嘗試登入

1538* 如果錯誤重複,請向伺服器操作員報告。修正是伺服器端的:授權伺服器必須在 `iss` 參數中傳回與在其中繼資料中宣傳的相同簽發者1570* 如果錯誤重複出現,請回報給伺服器營運者。修正需在伺服器端進行:授權伺服器必須在 `iss` 參數中傳回與其中繼資料所公告相同的 issuer

1539* 若要在伺服器被修正時進行連線,請使用 [`MCP_SDK_GENERATION=v1`](/docs/zh-TW/env-vars) 啟動 Claude Code,其[執行時](/docs/zh-TW/mcp#mcp-client-runtimes)不執行此檢查。這會移除對混合攻擊的保護,因此偏好伺服器端修正1571* 若要在伺服器修正期間連線,請以 [`MCP_SDK_GENERATION=v1`](/docs/zh-TW/env-vars) 啟動 Claude Code,其[執行階段](/docs/zh-TW/mcp#mcp-client-runtimes)不會執行此檢查。這會移除對混淆攻擊的防護,因此建議優先採用伺服器端修正

1540 1572 

1541在 v2.1.232 之前,Claude Code 僅在逐步推出中或當您設定 `MCP_SDK_GENERATION=v2` 時使用 v2 執行時。1573在 v2.1.232 之前,Claude Code 只在逐步推出時或您設定 `MCP_SDK_GENERATION=v2` 時才使用 v2 執行階段。

1542 1574 

1543<h3 id="refusing-to-send-credentials-to-non-https-token-endpoint">1575<h3 id="refusing-to-send-credentials-to-non-https-token-endpoint">

1544 拒絕向非 https 權杖端點傳送認證資格1576 拒絕將憑證傳送至非 https 的 token 端點

1545</h3>1577</h3>

1546 1578 

1547在 [v2 執行時](/docs/zh-TW/mcp#mcp-client-runtimes)上,Claude Code 僅將 [MCP OAuth](/docs/zh-TW/mcp#authenticate-with-remote-mcp-servers) 權杖請求傳送到透過 HTTPS 或在 `localhost`、`127.0.0.1` 或 `::1` 上提供的權杖端點。此訊息表示伺服器的權杖端點都不是,因此 Claude Code 在傳送前停止了請求。這發生在瀏覽器登入之後,因此瀏覽器步驟首先成功,並在 Claude Code 重新整理伺服器的權杖時再次發生。1579在 [v2 執行階段](/docs/zh-TW/mcp#mcp-client-runtimes)上,Claude Code 只會將 [MCP OAuth](/docs/zh-TW/mcp#authenticate-with-remote-mcp-servers) token 請求傳送至透過 HTTPS 提供,或位於 `localhost`、`127.0.0.1` 或 `::1` 的 token 端點。此訊息表示伺服器的 token 端點兩者皆非,因此 Claude Code 在傳送請求之前停止了。這發生在瀏覽器登入之後,因此瀏覽器步驟會先成功,之後每當 Claude Code 重新整理該伺服器的 token 時也會再次發生。

1548 1580 

1549在其完整形式中,訊息來自 MCP SDK 並引用它拒絕的權杖端點。在偵錯記錄中,它遵循 `Error during auth completion:` 用於登入或 `Token refresh failed:` 用於重新整理。在您的 shell 中,`claude mcp login <name>` 在 `Couldn't complete authentication for "<name>":` 之後列印它,在工作階段中,`/mcp` 在伺服器的功能表下顯示它:1581完整形式的訊息來自 MCP SDK,並會引用它所拒絕的 token 端點。在偵錯日誌中,它會接在登入的 `Error during auth completion:` 或重新整理的 `Token refresh failed:` 之後。在您的 shell 中,`claude mcp login <name>` 會在 `Couldn't complete authentication for "<name>":` 之後輸出它;在工作階段中,`/mcp` 會在伺服器的選單下顯示它:

1550 1582 

1551```text theme={null}1583```text theme={null}

1552Refusing to send credentials to non-https token endpoint 'http://192.168.1.50:8123/oauth/token'. OAuth token requests MUST use TLS (localhost / 127.0.0.1 / ::1 are exempt).1584Refusing to send credentials to non-https token endpoint 'http://192.168.1.50:8123/oauth/token'. OAuth token requests MUST use TLS (localhost / 127.0.0.1 / ::1 are exempt).

1553```1585```

1554 1586 

1555Claude Code 將具有查詢字串或長隨機外觀路徑段的伺服器 URL 視為可能的機密。對於此類伺服器,它在顯示或記錄 MCP SDK 引發的登入錯誤之前會進行編輯。此錯誤然後讀作可能在版本之間變更的短名稱,例如 `io`,後跟 `from the MCP SDK for` 和編輯的伺服器 URL。MCP SDK 的其他錯誤在那裡採用相同的形式。編輯的訊息只能是此錯誤,當伺服器的權杖端點是純 `http://` 在 `localhost`、`127.0.0.1` 或 `::1` 以外的位址時。1587Claude Code 會將帶有查詢字串或冗長隨機路徑區段的伺服器 URL 視為可能是機密。對於此類伺服器,它會在顯示或記錄 MCP SDK 引發的登入錯誤之前將其遮蔽。此時這個錯誤會顯示為一個可能隨版本變動的簡短名稱(例如 `io`),後面接著 `from the MCP SDK for` 以及遮蔽後的伺服器 URL。其他來自 MCP SDK 的錯誤在該處也採用相同形式。只有當伺服器的 token 端點是位於 `localhost`、`127.0.0.1` 或 `::1` 以外位址的純 `http://` 時,遮蔽後的訊息才可能是此錯誤。

1556 1588 

1557**該怎麼做:**1589**處理方式:**

1558 1590 

1559* 透過 HTTPS 提供該權杖端點,例如透過將伺服器放在終止 TLS 的反向代理或隧道後面,並設定伺服器以宣傳 `https://` 位址1591* 透過 HTTPS 提供該 token 端點,例如將伺服器放在終止 TLS 的反向代理伺服器或通道後方,並設定伺服器公告 `https://` 位址

1560* 若要在不變更伺服器的情況下進行連線,請使用 [`MCP_SDK_GENERATION=v1`](/docs/zh-TW/env-vars) 啟動 Claude Code,其[執行時](/docs/zh-TW/mcp#mcp-client-runtimes)不應用此規則,並透過純 HTTP 傳送權杖請求。該選擇持續到您退出並套用到每個伺服器。v1 執行時也會跳過[簽發者檢查](#issuer-mismatch-in-authorization-response),因此偏好透過 HTTPS 提供端點1592* 若要在不變更伺服器的情況下連線,請以 [`MCP_SDK_GENERATION=v1`](/docs/zh-TW/env-vars) 啟動 Claude Code,其[執行階段](/docs/zh-TW/mcp#mcp-client-runtimes)不套用此規則,並會透過純 HTTP 傳送 token 請求。此選擇會持續到您結束為止,並套用至每個伺服器。v1 執行階段也會略過 [issuer 檢查](#issuer-mismatch-in-authorization-response),因此建議優先透過 HTTPS 提供端點

1561 1593 

1562<h3 id="aws-credentials-expired-or-invalid">1594<h3 id="aws-credentials-expired-or-invalid">

1563 AWS 認證資格已過期或無效1595 AWS 憑證已過期或無效

1564</h3>1596</h3>

1565 1597 

1566您的 AWS 工作階段權杖已過期或被拒絕。此訊息出現在來自 [Claude Platform on AWS](/docs/zh-TW/claude-platform-on-aws) 或 [Mantle 端點](/docs/zh-TW/amazon-bedrock#use-the-mantle-endpoint) 的 401 上,這是這些提供者報告過期安全權杖的方式。1598您的 AWS 工作階段 token 已過期或被拒絕。當 [Claude Platform on AWS](/docs/zh-TW/claude-platform-on-aws) 或 [Mantle 端點](/docs/zh-TW/amazon-bedrock#use-the-mantle-endpoint)傳回 401 時會出現此訊息,這是這些供應商回報安全 token 過期的方式。

1567 1599 

1568中間的動作提示會根據您的設定而異。穩定的部分是前導 `AWS credentials expired or invalid`:1600中間的動作提示會依您的設定而不同。固定不變的部分是開頭的 `AWS credentials expired or invalid`:

1569 1601 

1570```text theme={null}1602```text theme={null}

1571AWS credentials expired or invalid · run /login and select "Claude Platform on AWS · refresh credentials", or run `aws sso login --profile myprofile` in another terminal · API Error: 401 ...1603AWS credentials expired or invalid · run /login and select "Claude Platform on AWS · refresh credentials", or run `aws sso login --profile myprofile` in another terminal · API Error: 401 ...

1572```1604```

1573 1605 

1574在 v2.1.273 之前,此訊息僅在您的設定檔中設定 [`awsAuthRefresh`](/docs/zh-TW/amazon-bedrock#advanced-credential-configuration) 時出現。1606在 v2.1.273 之前,只有在設定了 `awsAuthRefresh` 時才會出現此訊息。

1575 1607 

1576**該怎麼做:**1608**處理方式:**

1577 1609 

1578* 如果提示說認證資格由此環境管理,啟動 Claude Code 的應用程式擁有認證資格,此處的其他步驟不適用:重試,或聯絡您的管理員1610* 如果提示表示憑證由此環境管理,則啟動 Claude Code 的應用程式擁有該憑證,此處的其他步驟並不適用:請重試,或聯絡您的管理員

1579* 在另一個終端機中執行訊息中命名的命令,例如 `aws sso login --profile myprofile`,並完成瀏覽器登入,然後重試。否則自己重新整理您使用的 AWS 認證資格:您的 SSO 登入、存取金鑰、API 金鑰或代理權杖1611* 如果設定了 [`awsAuthRefresh`](/docs/zh-TW/amazon-bedrock#advanced-credential-configuration),請在另一個終端機中執行訊息所指的命令(例如 `aws sso login --profile myprofile`)並完成瀏覽器登入,然後重試。否則,請自行重新整理您所使用的 AWS 憑證:您的 SSO 登入、存取金鑰、API 金鑰或代理伺服器 token

1580* 在互動式工作階段中,您可以改為執行 `/login`,選擇**第三方平台**,然後在**使用第三方平台**下選擇 **Claude Platform on AWS · refresh credentials** 以執行相同命令,而無需重新啟動 Claude Code。請參閱[設定 AWS 認證資格](/docs/zh-TW/claude-platform-on-aws#1-configure-aws-credentials)1612* 在設定了 `awsAuthRefresh` 的互動式工作階段中,您也可以改為執行 `/login`,選擇 **3rd-party platform**,然後在 **Using 3rd-party platforms** 下選擇 **Claude Platform on AWS · refresh credentials**,即可在不重新啟動 Claude Code 的情況下執行相同的命令。請參閱[設定 AWS 憑證](/docs/zh-TW/claude-platform-on-aws#1-configure-aws-credentials)

1581* 如果重新整理命令成功後錯誤重複,請在相同 shell 和設定檔中使用 `aws sts get-caller-identity` 確認身份在 Claude Code 外有效1613* 如果重新整理命令成功後錯誤仍重複出現,請在相同的 shell 與設定檔中執行 `aws sts get-caller-identity`,確認該身分在 Claude Code 之外是有效的

1582 1614 

1583<h3 id="aws-authentication-failed">1615<h3 id="aws-authentication-failed">

1584 AWS 驗證失敗1616 AWS 身分驗證失敗

1585</h3>1617</h3>

1586 1618 

1587您的 AWS 提供者傳回 403,或 [Amazon Bedrock](/docs/zh-TW/amazon-bedrock) 傳回 401。1619您的 AWS 供應商傳回了 403,或 [Amazon Bedrock](/docs/zh-TW/amazon-bedrock) 傳回了 401。

1588 1620 

1589Amazon Bedrock 將過期的安全權杖報告為 403,但 403 也是它報告授權拒絕的方式,例如來自遺漏 IAM 權限或未為您的帳戶啟用的模型的 `AccessDeniedException`。Claude Code 無法判斷您遇到了哪個原因。1621Amazon Bedrock 會將安全 token 過期回報為 403,但 403 也是它回報授權遭拒的方式,例如因缺少 IAM 權限而產生的 `AccessDeniedException`。Claude Code 無法區分這兩種原因。

1590 1622 

1591來自 Amazon Bedrock 的 401 也會落在這裡,而不是在[AWS 認證資格已過期或無效](#aws-credentials-expired-or-invalid)下,因為 Amazon Bedrock 不將過期的權杖報告為 401。來自該端點的 401 通常來自請求路徑中的其他內容,例如公司代理。1623來自 Amazon Bedrock 的 401 也會歸到此處,而不是 [AWS 憑證已過期或無效](#aws-credentials-expired-or-invalid),因為 Amazon Bedrock 不會將 token 過期回報為 401。來自該端點的 401 通常源自請求路徑中的其他元件,例如公司的代理伺服器。

1592 1624 

1593認證資格重新整理可以修正過期的權杖,無法修正其他原因,因此訊息提供兩者:1625重新整理憑證可以修正過期的 token,但無法修正其他原因,因此訊息會同時提供兩者:

1594 1626 

1595```text theme={null}1627```text theme={null}

1596AWS authentication failed · run /login and select "Claude Platform on AWS · refresh credentials", or run `aws sso login --profile myprofile` in another terminal · if credentials are current, check AWS permissions and model access · API Error: 403 ...1628AWS authentication failed · run /login and select "Claude Platform on AWS · refresh credentials", or run `aws sso login --profile myprofile` in another terminal · if credentials are current, check AWS permissions and model access · API Error: 403 ...

1597```1629```

1598 1630 

1599中間的動作提示會根據您的設定而異。穩定的部分是前導 `AWS authentication failed`。1631中間的動作提示會依您的設定而不同。固定不變的部分是開頭的 `AWS authentication failed`。

1600 1632 

1601當 403 是 Amazon Bedrock 的答案,表示您沒有使用指定的模型 ID 存取該模型時,提示改為告訴您在 Amazon Bedrock 主控台中為您的帳戶和區域啟用該模型。1633當 403 是 Amazon Bedrock 表示您無權存取指定模型 ID 之模型的回應時,提示會改為要求您在 Amazon Bedrock 主控台中為您的帳戶與區域啟用該模型。

1602 1634 

1603在 v2.1.273 之前,此訊息僅在您的設定檔中設定 [`awsAuthRefresh`](/docs/zh-TW/amazon-bedrock#advanced-credential-configuration) 時出現。1635在 v2.1.273 之前,只有在設定了 `awsAuthRefresh` 時才會出現此訊息。

1604 1636 

1605**該怎麼做:**1637**處理方式:**

1606 1638 

1607* 如果提示說認證資格由此環境管理,啟動 Claude Code 的應用程式擁有認證資格,此處的其他步驟不適用:重試,或聯絡您的管理員1639* 如果提示表示憑證由此環境管理,則啟動 Claude Code 的應用程式擁有該憑證,此處的其他步驟並不適用:請重試,或聯絡您的管理員

1608* 重新整理您的 AWS 認證資格,以防過期的認證資格是原因:執行訊息中命名的命令(如果設定了一個),或自己重新整理您的 SSO 登入、存取金鑰、API 金鑰或代理權杖1640* 重新整理您的 AWS 憑證,以防原因是憑證過期:若有設定,請執行訊息所指的 [`awsAuthRefresh`](/docs/zh-TW/amazon-bedrock#advanced-credential-configuration) 命令,或自行重新整理您的 SSO 登入、存取金鑰、API 金鑰或代理伺服器 token

1609* 如果您的認證資格是最新的,請確認 [IAM 設定](/docs/zh-TW/amazon-bedrock#iam-configuration)中的 IAM 權限已附加到您使用的身份,且所選模型已為您的帳戶和區域啟用1641* 如果您的憑證是最新的,請確認 [IAM 設定](/docs/zh-TW/amazon-bedrock#iam-configuration)中的 IAM 權限已附加至您所使用的身分,且所選模型已為您的帳戶與區域啟用

1610* 執行 `aws sts get-caller-identity` 以確認您的請求使用哪個身份1642* 執行 `aws sts get-caller-identity`,確認您的請求使用的是哪個身分

1611 1643 

1612<h3 id="google-cloud-credentials-expired-or-invalid">1644<h3 id="google-cloud-credentials-expired-or-invalid">

1613 Google Cloud 認證資格已過期或無效1645 Google Cloud 憑證已過期或無效

1614</h3>1646</h3>

1615 1647 

1616您的 [Google Cloud 的 Agent Platform](/docs/zh-TW/google-vertex-ai) Google Cloud 認證資格已過期或被拒絕:請求傳回 401,這是 Agent Platform 報告認證資格過期的方式。1648您用於 [Google Cloud's Agent Platform](/docs/zh-TW/google-vertex-ai) 的 Google Cloud 憑證已過期或被拒絕:請求傳回了 401,這是 Agent Platform 回報憑證過期的方式。

1617 1649 

1618中間的動作提示會根據您的設定而異。穩定的部分是前導 `Google Cloud credentials expired or invalid`:1650中間的動作提示會依您的設定而不同。固定不變的部分是開頭的 `Google Cloud credentials expired or invalid`:

1619 1651 

1620```text theme={null}1652```text theme={null}

1621Google Cloud credentials expired or invalid · refresh your Google Cloud credentials (application default sign-in, or the key file in GOOGLE_APPLICATION_CREDENTIALS) and retry · API Error: 401 ...1653Google Cloud credentials expired or invalid · refresh your Google Cloud credentials (application default sign-in, or the key file in GOOGLE_APPLICATION_CREDENTIALS) and retry · API Error: 401 ...

1622```1654```

1623 1655 

1624**該怎麼做:**1656**處理方式:**

1625 1657 

1626* 如果提示說認證資格由此環境管理,啟動 Claude Code 的應用程式擁有認證資格,此處的其他步驟不適用:重試,或聯絡您的管理員1658* 如果提示表示憑證由此環境管理,則啟動 Claude Code 的應用程式擁有該憑證,此處的其他步驟並不適用:請重試,或聯絡您的管理員

1627* 如果您使用應用程式預設認證資格進行驗證,請執行訊息中命名的 [`gcpAuthRefresh`](/docs/zh-TW/google-vertex-ai#advanced-credential-configuration) 命令或 `gcloud auth application-default login`,並完成登入,然後重試1659* 如果您以應用程式預設憑證進行身分驗證,請執行訊息所指的 [`gcpAuthRefresh`](/docs/zh-TW/google-vertex-ai#advanced-credential-configuration) 命令,或 `gcloud auth application-default login`,完成登入後重試

1628* 如果您透過設定 `CLAUDE_CODE_SKIP_VERTEX_AUTH` 的 [LLM 閘道](/docs/zh-TW/llm-gateway)路由,請重新整理 `ANTHROPIC_AUTH_TOKEN` 或 `ANTHROPIC_CUSTOM_HEADERS` 中的閘道權杖,然後重試1660* 如果您在設定了 `CLAUDE_CODE_SKIP_VERTEX_AUTH` 的情況下透過 [LLM 閘道](/docs/zh-TW/llm-gateway)進行路由,請重新整理 `ANTHROPIC_AUTH_TOKEN` 或 `ANTHROPIC_CUSTOM_HEADERS` 中的閘道 token,然後重試

1629* 如果您使用服務帳戶金鑰檔案進行驗證,請確認 `GOOGLE_APPLICATION_CREDENTIALS` 指向有效的金鑰。請參閱[設定 GCP 認證資格](/docs/zh-TW/google-vertex-ai#3-configure-gcp-credentials)1661* 如果您以服務帳戶金鑰檔案進行身分驗證,請確認 `GOOGLE_APPLICATION_CREDENTIALS` 指向有效的金鑰。請參閱[設定 GCP 憑證](/docs/zh-TW/google-vertex-ai#3-configure-gcp-credentials)

1630* 如果重新整理後錯誤重複,請在相同 shell 中使用 `gcloud auth application-default print-access-token` 確認身份在 Claude Code 外有效1662* 如果重新整理後錯誤仍重複出現,請在相同的 shell 中執行 `gcloud auth application-default print-access-token`,確認該身分在 Claude Code 之外可正常運作

1631 1663 

1632在 v2.1.273 之前,來自 Agent Platform 的 401 顯示通用 `Please run /login` 或 `Failed to authenticate` 訊息,無法重新整理 Google Cloud 認證資格。1664在 v2.1.273 之前,來自 Agent Platform 的 401 會改為顯示一般的 `Please run /login` 或 `Failed to authenticate` 訊息,而這些訊息無法重新整理 Google Cloud 憑證。

1633 1665 

1634<h3 id="google-cloud-authentication-failed">1666<h3 id="google-cloud-authentication-failed">

1635 Google Cloud 驗證失敗1667 Google Cloud 身分驗證失敗

1636</h3>1668</h3>

1637 1669 

1638[Google Cloud 的 Agent Platform](/docs/zh-TW/google-vertex-ai) 傳回 403,它用於授權拒絕而不是過期的認證資格。通常您驗證的身份缺少 IAM 權限,或該模型未為您的專案啟用。1670[Google Cloud 的 Agent Platform](/docs/zh-TW/google-vertex-ai) 傳回了 403,它使用此狀態碼表示授權遭拒,而非憑證過期。通常是您用來進行身分驗證的身分缺少 IAM 權限,或模型尚未在您的專案中啟用。

1639 1671 

1640中間的動作提示會根據您的設定而異。穩定的部分是前導 `Google Cloud authentication failed`:1672中間的操作提示會依您的設定而有所不同。固定不變的部分是開頭的 `Google Cloud authentication failed`:

1641 1673 

1642```text theme={null}1674```text theme={null}

1643Google Cloud authentication failed · refresh your Google Cloud credentials (application default sign-in, or the key file in GOOGLE_APPLICATION_CREDENTIALS) and retry · if credentials are current, check GCP IAM permissions and Vertex AI model access · API Error: 403 ...1675Google Cloud authentication failed · refresh your Google Cloud credentials (application default sign-in, or the key file in GOOGLE_APPLICATION_CREDENTIALS) and retry · if credentials are current, check GCP IAM permissions and Vertex AI model access · API Error: 403 ...

1644```1676```

1645 1677 

1646**該怎麼做:**1678**處理方式:**

1647 1679 

1648* 如果提示說認證資格由此環境管理,啟動 Claude Code 的應用程式擁有認證資格,此處的其他步驟不適用:重試,或聯絡您的管理員1680* 如果提示指出憑證由此環境管理,表示啟動 Claude Code 的應用程式擁有該憑證,此處的其他步驟不適用:請重試,或聯絡您的管理員

1649* 確認 [IAM 設定](/docs/zh-TW/google-vertex-ai#iam-configuration)中的角色已授予您驗證的身份1681* 確認 [IAM 設定](/docs/zh-TW/google-vertex-ai#iam-configuration)中的角色已授予您用來進行身分驗證的身分

1650* 確認該模型已為您的專案啟用。請參閱[要求模型存取](/docs/zh-TW/google-vertex-ai#2-request-model-access)1682* 確認模型已在您的專案中啟用。請參閱[請求模型存取權](/docs/zh-TW/google-vertex-ai#2-request-model-access)

1651 1683 

1652在 v2.1.273 之前,來自 Agent Platform 的 403 顯示通用 `Please run /login` 或 `Failed to authenticate` 訊息,無法重新整理 Google Cloud 認證資格。1684在 v2.1.273 之前,來自 Agent Platform 的 403 會改為顯示通用的 `Please run /login` 或 `Failed to authenticate` 訊息,而這無法重新整理 Google Cloud 憑證。

1653 1685 

1654<h3 id="microsoft-foundry-authentication-failed">1686<h3 id="microsoft-foundry-authentication-failed">

1655 Microsoft Foundry 驗證失敗1687 Microsoft Foundry 身分驗證失敗

1656</h3>1688</h3>

1657 1689 

1658[Microsoft Foundry](/docs/zh-TW/microsoft-foundry) 傳回 401 或 403:請求上的 Azure 認證資格被拒絕,或其背後的身份沒有存取 Foundry 資源的權限。`/login` 無法鑄造 Azure 認證資格。中間的動作提示會根據您的設定而異。穩定的部分是前導 `Microsoft Foundry authentication failed`:1690[Microsoft Foundry](/docs/zh-TW/microsoft-foundry) 傳回了 401 或 403:請求上的 Azure 憑證遭到拒絕,或其背後的身分沒有 Foundry 資源的存取權。`/login` 無法產生 Azure 憑證。中間的操作提示會依您的設定而有所不同。固定不變的部分是開頭的 `Microsoft Foundry authentication failed`:

1659 1691 

1660```text theme={null}1692```text theme={null}

1661Microsoft Foundry authentication failed · refresh your Foundry credential (ANTHROPIC_FOUNDRY_AUTH_TOKEN, ANTHROPIC_FOUNDRY_API_KEY, Azure sign-in for Entra, or your proxy token) and retry · if credentials are current, check access to the Foundry resource · API Error: 401 ...1693Microsoft Foundry authentication failed · refresh your Foundry credential (ANTHROPIC_FOUNDRY_AUTH_TOKEN, ANTHROPIC_FOUNDRY_API_KEY, Azure sign-in for Entra, or your proxy token) and retry · if credentials are current, check access to the Foundry resource · API Error: 401 ...

1662```1694```

1663 1695 

1664**該怎麼做:**1696**處理方式:**

1665 1697 

1666* 如果提示說認證資格由此環境管理,啟動 Claude Code 的應用程式擁有認證資格,此處的其他步驟不適用:重試,或聯絡您的管理員1698* 如果提示指出憑證由此環境管理,表示啟動 Claude Code 的應用程式擁有該憑證,此處的其他步驟不適用:請重試,或聯絡您的管理員

1667* 重新整理您在[設定 Azure 認證資格](/docs/zh-TW/microsoft-foundry#2-configure-azure-credentials)中設定的認證資格:輪換 `ANTHROPIC_FOUNDRY_API_KEY`、鑄造新的 `ANTHROPIC_FOUNDRY_AUTH_TOKEN`,或執行 `az login` 以便預設 Microsoft Entra 認證資格鏈可以再次登入1699* 重新整理您在[設定 Azure 憑證](/docs/zh-TW/microsoft-foundry#2-configure-azure-credentials)中設定的憑證:輪替 `ANTHROPIC_FOUNDRY_API_KEY`、產生新的 `ANTHROPIC_FOUNDRY_AUTH_TOKEN`,或執行 `az login`,讓預設的 Microsoft Entra 憑證鏈能再次登入

1668* 如果認證資格是最新的,請確認身份有權存取 Foundry 資源。請參閱 [Azure RBAC 設定](/docs/zh-TW/microsoft-foundry#azure-rbac-configuration)1700* 如果憑證仍有效,請確認該身分具有 Foundry 資源的存取權。請參閱 [Azure RBAC 設定](/docs/zh-TW/microsoft-foundry#azure-rbac-configuration)

1669 1701 

1670在 v2.1.273 之前,來自 Microsoft Foundry 的 401 或 403 顯示通用 `Please run /login` 或 `Failed to authenticate` 訊息,無法重新整理 Azure 認證資格。1702在 v2.1.273 之前,來自 Microsoft Foundry 的 401 或 403 會改為顯示通用的 `Please run /login` 或 `Failed to authenticate` 訊息,而這無法重新整理 Azure 憑證。

1671 1703 

1672<h3 id="could-not-load-aws-or-google-cloud-credentials">1704<h3 id="could-not-load-aws-or-google-cloud-credentials">

1673 無法載入 AWS 或 Google Cloud 認證資格1705 無法載入 AWS 或 Google Cloud 憑證

1674</h3>1706</h3>

1675 1707 

1676Claude Code 無法從 AWS 認證資格提供者鏈或從它執行的機器上的 Google 應用程式預設認證資格取得可用的認證資格,因此沒有請求到達您的雲端提供者。Claude Code 清除其快取的認證資格並在顯示此訊息之前重試兩次。`·` 之後的詳細資訊命名具體原因,例如過期的 SSO 工作階段、遺漏的應用程式預設認證資格報告為 `Could not load the default credentials`,或被拒絕的登入報告為 `invalid_grant`:1708Claude Code 無法在其執行的機器上,從 AWS 憑證提供者鏈或您的 Google 應用程式預設憑證取得可用的憑證,因此沒有任何請求送達您的雲端供應商。Claude Code 會清除其快取的憑證並重試兩次,之後才顯示此訊息。`·` 之後的詳細資訊會指出具體原因,例如 SSO 工作階段過期、缺少應用程式預設憑證(回報為 `Could not load the default credentials`),或登入遭撤銷(回報為 `invalid_grant`):

1677 1709 

1678```text theme={null}1710```text theme={null}

1679API Error: Could not load AWS credentials · Could not load credentials from any providers. Check or refresh your AWS credentials and try again.1711API Error: Could not load AWS credentials · Could not load credentials from any providers. Check or refresh your AWS credentials and try again.

1680API Error: Could not load Google Cloud credentials · invalid_grant. Check or refresh your Google Cloud credentials and try again.1712API Error: Could not load Google Cloud credentials · invalid_grant. Check or refresh your Google Cloud credentials and try again.

1681```1713```

1682 1714 

1683在[非互動式模式](/docs/zh-TW/headless)中使用 `-p` 和在 [Agent SDK](/docs/zh-TW/agent-sdk/overview) 中,結構化錯誤代碼為 `cloud_credential_error`。在 v2.1.267 之前,訊息僅顯示 `API Error:` 之後的詳細資訊文字,結構化代碼為 `server_error` 或 `unknown`。1715在使用 `-p` 的[非互動模式](/docs/zh-TW/headless)以及 [Agent SDK](/docs/zh-TW/agent-sdk/overview) 中,結構化錯誤代碼為 `cloud_credential_error`。在 v2.1.267 之前,訊息只會顯示 `API Error:` 之後的詳細文字,且結構化代碼為 `server_error` 或 `unknown`。

1684 1716 

1685**該怎麼做:**1717**處理方式:**

1686 1718 

1687* 執行您的提供者的登入命令,例如 `aws sso login --profile myprofile` 或 `gcloud auth application-default login`,然後重試。[Bedrock、Agent Platform 或 Foundry 認證資格未載入](/docs/zh-TW/troubleshoot-install#bedrock-agent-platform-or-foundry-credentials-not-loading)顯示如何在 Claude Code 外確認認證資格1719* 執行您供應商的登入命令,例如 `aws sso login --profile myprofile` 或 `gcloud auth application-default login`,然後重試。[Bedrock、Agent Platform 或 Foundry 憑證無法載入](/docs/zh-TW/troubleshoot-install#bedrock-agent-platform-or-foundry-credentials-not-loading)說明如何在 Claude Code 之外確認憑證

1688* 如果詳細資訊讀作 `AWS default-chain credential resolve timed out`,鏈掛起而不是失敗,因此改為遵循 [AWS default-chain credential resolve timed out](#aws-default-chain-credential-resolve-timed-out)1720* 如果詳細資訊顯示 `AWS default-chain credential resolve timed out`,表示憑證鏈是停滯而非失敗,請改為依照 [AWS 預設憑證鏈解析逾時](#aws-default-chain-credential-resolve-timed-out)處理

1689 1721 

1690<h3 id="aws-default-chain-credential-resolve-timed-out">1722<h3 id="aws-default-chain-credential-resolve-timed-out">

1691 AWS default-chain credential resolve 逾時1723 AWS 預設憑證鏈解析逾時

1692</h3>1724</h3>

1693 1725 

1694AWS 預設認證資格提供者鏈未在 60 秒內產生認證資格,因此 Claude Code 停止了解析並失敗了請求。此逾時是[無法載入 AWS 或 Google Cloud 認證資格](#could-not-load-aws-or-google-cloud-credentials)的一個原因。失敗是本機認證資格解析:請求永遠不會到達 [Amazon Bedrock](/docs/zh-TW/amazon-bedrock)、[Claude Platform on AWS](/docs/zh-TW/claude-platform-on-aws) 或 [Mantle 端點](/docs/zh-TW/amazon-bedrock#use-the-mantle-endpoint)。Claude Code 在此錯誤出現之前清除其[認證資格快取](/docs/zh-TW/amazon-bedrock#credential-caching-and-resolution-timeout)並重試,因此到您看到它時,鏈已在重複嘗試中停滯。1726AWS 預設憑證提供者鏈未在 60 秒內產生憑證,因此 Claude Code 停止解析並使請求失敗。此逾時是[無法載入 AWS 或 Google Cloud 憑證](#could-not-load-aws-or-google-cloud-credentials)的原因之一。失敗發生在本機憑證解析階段:請求從未送達 [Amazon Bedrock](/docs/zh-TW/amazon-bedrock)、[Claude Platform on AWS](/docs/zh-TW/claude-platform-on-aws) 或 [Mantle 端點](/docs/zh-TW/amazon-bedrock#use-the-mantle-endpoint)。Claude Code 會在此錯誤出現之前清除其[憑證快取](/docs/zh-TW/amazon-bedrock#credential-caching-and-resolution-timeout)並重試,因此當您看到此錯誤時,憑證鏈已在多次嘗試中停滯。

1695 1727 

1696```text theme={null}1728```text theme={null}

1697API Error: Could not load AWS credentials · AWS default-chain credential resolve timed out. Check or refresh your AWS credentials and try again.1729API Error: Could not load AWS credentials · AWS default-chain credential resolve timed out. Check or refresh your AWS credentials and try again.

1698```1730```

1699 1731 

1700常見原因是停滯對 AWS 的請求的網路或代理,包括 SSO 權杖重新整理,以及其執行個體中繼資料服務 (IMDS) 永遠不會回答鏈探測的容器或 VM。1732常見原因包括:AWS 設定檔中的 `credential_process` 命令正在等待它無法接收的輸入,以及容器或虛擬機器的執行個體中繼資料服務(IMDS)始終未回應憑證鏈的探測。

1701 1733 

1702在 v2.1.267 之前,訊息讀作 `API Error: AWS default-chain credential resolve timed out`。1734在 v2.1.267 之前,訊息為 `API Error: AWS default-chain credential resolve timed out`。

1703在 v2.1.207 之前,停滯的鏈使請求無限期等待,而不是失敗。1735在 v2.1.207 之前,停滯的憑證鏈會讓請求無限期等待,而不會失敗。

1704 1736 

1705**該怎麼做:**1737**處理方式:**

1706 1738 

1707* 在相同 shell 中使用相同 `AWS_PROFILE` 執行 `aws sts get-caller-identity`。如果它也掛起,請修正設定檔;以互動方式提示的 `credential_process` 命令是常見原因。1739* 在同一個 shell 中使用相同的 `AWS_PROFILE` 執行 `aws sts get-caller-identity`。如果它也停滯,請修正設定檔;以互動方式提示輸入的 `credential_process` 命令是常見原因。

1708* 在啟動 Claude Code 之前完成登入步驟,例如 `aws sso login --profile myprofile`,以便鏈從本機 SSO 快取解析,而不是等待瀏覽器流程1740* 在啟動 Claude Code 之前完成登入步驟,例如 `aws sso login --profile myprofile`

1709* 如果您的鏈執行合法需要超過 60 秒的互動式登入,例如透過 `aws-vault` 等包裝程式的 SSO 與 MFA,請使用 [`CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS`](/docs/zh-TW/env-vars) 以毫秒為單位提高限制1741* 如果您的憑證鏈執行的互動式登入確實需要超過 60 秒,例如透過 `aws-vault` 等包裝工具進行的 SSO 加 MFA,請使用 [`CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS`](/docs/zh-TW/env-vars) 以毫秒為單位提高上限

1710 1742 

1711<h3 id="bedrock-setup-verification-timed-out-waiting-for-aws">1743<h3 id="bedrock-setup-verification-timed-out-waiting-for-aws">

1712 Bedrock 設定驗證逾時等待 AWS1744 Bedrock 設定驗證在等待 AWS 時逾時

1713</h3>1745</h3>

1714 1746 

1715在 [Bedrock 設定精靈](/docs/zh-TW/amazon-bedrock#sign-in-with-bedrock)的認證資格驗證期間對 AWS 的呼叫(例如認證資格查詢或身份檢查)未在 60 秒限制內完成。精靈停止等待並失敗驗證步驟:1747在 [Bedrock 設定精靈](/docs/zh-TW/amazon-bedrock#sign-in-with-bedrock)的憑證驗證期間,對 AWS 的某個呼叫(例如憑證查詢或身分檢查)未在 60 秒上限內完成。精靈會停止等待,並使驗證步驟失敗:

1716 1748 

1717```text theme={null}1749```text theme={null}

1718Timed out after 60s waiting for AWS. Check your network and proxy settings; if a credential helper needs longer to prompt you, raise CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS.1750Timed out after 60s waiting for AWS. Check your network and proxy settings; if a credential helper needs longer to prompt you, raise CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS.

1719```1751```

1720 1752 

1721該數字反映您的限制:預設 60 秒,或您在 [`CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS`](/docs/zh-TW/env-vars) 中設定的值。1753數字反映的是您的上限:預設為 60 秒,或是您在 [`CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS`](/docs/zh-TW/env-vars) 中設定的值。

1722 1754 

1723常見原因是停滯對 AWS 的請求的網路或代理,包括 SSO 權杖重新整理,以及仍在等待您看不到的輸入的認證資格協助程式。僅在協助程式合法需要更多時間時提高限制。1755常見原因包括:網路或代理伺服器使對 AWS 的請求(包括 SSO token 重新整理)停滯,以及憑證輔助程式仍在等待您看不到的輸入。只有在輔助程式確實需要更多時間時才提高上限。

1724 1756 

1725對 AWS 的單一停滯請求也可能在其自身的每個請求逾時上失敗,這在相同步驟上顯示較短的訊息:1757單一對 AWS 的停滯請求也可能因其自身的單次請求逾時而失敗,這會在同一步驟顯示較短的訊息:

1726 1758 

1727```text theme={null}1759```text theme={null}

1728A request to AWS timed out. Check your network and proxy settings, then try again.1760A request to AWS timed out. Check your network and proxy settings, then try again.

1729```1761```

1730 1762 

1731當相同的逾時發生在模型釘選步驟上時,精靈會將模型標記為 `unreachable`,而不是顯示任一訊息。1763當相同的逾時發生在模型固定步驟時,精靈會將模型標記為 `unreachable`,而不會顯示上述任一訊息。

1732 1764 

1733**該怎麼做:**1765**處理方式:**

1734 1766 

1735* 在相同 shell 中執行 `aws sts get-caller-identity`。如果它也掛起,停滯在 Claude Code 外,在您的網路、您的代理或您的 AWS 設定檔中的認證資格協助程式中;首先修正那個。1767* 在同一個 shell 中執行 `aws sts get-caller-identity`。如果它也停滯,表示停滯發生在 Claude Code 之外,位於您的網路、代理伺服器或 AWS 設定檔中的憑證輔助程式;請先修正該問題。

1736* 在開啟精靈之前完成任何互動式登入,例如 `aws sso login --profile myprofile`1768* 在開啟精靈之前完成任何互動式登入,例如 `aws sso login --profile myprofile`

1737* 如果您的 AWS 設定檔中的認證資格協助程式合法需要超過 60 秒來提示您,請使用 [`CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS`](/docs/zh-TW/env-vars) 以毫秒為單位提高限制1769* 如果 AWS 設定檔中的憑證輔助程式確實需要超過 60 秒來提示您,請使用 [`CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS`](/docs/zh-TW/env-vars) 以毫秒為單位提高上限

1738 1770 

1739<h3 id="cloud-gateway-session-expired">1771<h3 id="cloud-gateway-session-expired">

1740 雲端閘道工作階段已過期1772 雲端閘道工作階段已過期

1741</h3>1773</h3>

1742 1774 

1743您透過 [Claude 應用程式閘道](/docs/zh-TW/claude-apps-gateway)登入,此機器上儲存的閘道工作階段已過期且無法更新,或閘道不再接受它,例如在閘道的 [JWT 機密被替換](/docs/zh-TW/claude-apps-gateway-deploy#jwt-secret-rotation)後。如果您在以互動方式啟動 `claude` 時看到此行,工作階段已開啟,未登入閘道:1775您是透過 [Claude apps 閘道](/docs/zh-TW/claude-apps-gateway)登入的,而儲存在此機器上的閘道工作階段已過期且無法續期,或閘道已不再接受它,例如在閘道的 [JWT 密鑰被替換](/docs/zh-TW/claude-apps-gateway-deploy#jwt-secret-rotation)之後。如果您在以互動方式啟動 `claude` 時看到這一行,表示工作階段已在未登入閘道的狀態下開啟:

1744 1776 

1745```text theme={null}1777```text theme={null}

1746Cloud gateway session expired — run /login to reconnect.1778Cloud gateway session expired — run /login to reconnect.

1747```1779```

1748 1780 

1749相同的行可以在工作階段中期出現,當閘道認證資格過期且 Claude Code 無法更新它時。1781當閘道憑證過期且 Claude Code 無法續期時,同一行也可能在工作階段進行中出現。

1750 1782 

1751在[非互動式](/docs/zh-TW/headless)執行、背景或其他無人值守工作階段或 `claude` 子命令(除了 `claude auth`)中,Claude Code 會在閘道不再接受工作階段時改為結束,並顯示此訊息:1783在[非互動](/docs/zh-TW/headless)執行、背景或其他無人值守的工作階段,或 `claude auth` 以外的 `claude` 子命令中,當閘道不再接受該工作階段時,Claude Code 會改為以此訊息結束:

1752 1784 

1753```text theme={null}1785```text theme={null}

1754Cloud gateway <url> no longer accepts this session. Start `claude` and sign in again with /login.1786Cloud gateway <url> no longer accepts this session. Start `claude` and sign in again with /login.

1755```1787```

1756 1788 

1757**該怎麼做:**1789**處理方式:**

1758 1790 

1759* 在工作階段中執行 `/login` 並完成瀏覽器登入1791* 在工作階段中執行 `/login` 並完成瀏覽器登入

1760* 對於非互動式啟動,在相同環境中啟動 `claude`,執行 `/login`,然後重新執行您的命令1792* 若為非互動式啟動,請在相同環境中啟動 `claude`,執行 `/login`,然後重新執行您的命令

1761 1793 

1762<h3 id="sign-in-timed-out-while-waiting-for-you-to-continue">1794<h3 id="sign-in-timed-out-while-waiting-for-you-to-continue">

1763 登入逾時,等待您繼續1795 等待您繼續時登入逾時

1764</h3>1796</h3>

1765 1797 

1766在 [Claude 應用程式閘道](/docs/zh-TW/claude-apps-gateway)登入期間,閘道命名了登入的帳戶,Claude Code 要求您在儲存認證資格之前確認它。您將確認保持開啟超過登入本身的過期,閘道未簽發重新整理權杖,因此當您繼續時 Claude Code 未儲存任何內容:1798在 [Claude apps 閘道](/docs/zh-TW/claude-apps-gateway)登入期間,閘道指出了登入的帳戶,而 Claude Code 要求您在儲存憑證之前確認該帳戶。您讓確認畫面停留超過了登入本身的有效期限,且閘道未核發可用來續期的 refresh token,因此當您繼續時,Claude Code 沒有儲存任何內容:

1767 1799 

1768```text theme={null}1800```text theme={null}

1769Sign-in timed out while waiting for you to continue. Try again.1801Sign-in timed out while waiting for you to continue. Try again.

1770```1802```

1771 1803 

1772**該怎麼做:**1804**處理方式:**

1773 1805 

1774* 執行 `/login` 並在登入過期之前確認帳戶1806* 再次執行 `/login`,並在登入過期之前確認帳戶

1775 1807 

1776<h3 id="gateway-refused-the-request">1808<h3 id="gateway-refused-the-request">

1777 閘道拒絕了請求1809 閘道拒絕了請求

1778</h3>1810</h3>

1779 1811 

1780您透過 [Claude 應用程式閘道](/docs/zh-TW/claude-apps-gateway)登入,請求傳回 403:閘道或其背後的上游拒絕了它。再次登入不會改變拒絕,因此訊息指向您的閘道管理員:1812您是透過 [Claude apps 閘道](/docs/zh-TW/claude-apps-gateway)登入的,而某個請求傳回了 403:閘道或其背後的上游拒絕了該請求。重新登入無法改變拒絕結果,因此訊息會指向您的閘道管理員:

1781 1813 

1782```text theme={null}1814```text theme={null}

1783Gateway refused the request · signing in again won't change this — check with your gateway administrator · API Error: 403 ...1815Gateway refused the request · signing in again won't change this — check with your gateway administrator · API Error: 403 ...

1784```1816```

1785 1817 

1786**該怎麼做:**1818**處理方式:**

1787 1819 

1788* 要求您的閘道管理員查詢請求。`API Error:` 尾部攜帶閘道傳回的拒絕1820* 請您的閘道管理員查詢該請求。`API Error:` 後面的內容包含閘道傳回的拒絕資訊

1789* 對於管理員:閘道上的[存取控制規則](/docs/zh-TW/claude-apps-gateway-config#http-tuning)傳回 403,[稽核記錄](/docs/zh-TW/claude-apps-gateway-deploy#logs)會記錄其原因,上游的授權拒絕會根據[上游錯誤訊息](/docs/zh-TW/claude-apps-gateway-config#upstream-error-messages)傳遞1821* 對管理員而言:閘道上的[存取控制規則](/docs/zh-TW/claude-apps-gateway-config#http-tuning)會傳回 403,並由[稽核日誌](/docs/zh-TW/claude-apps-gateway-deploy#logs)記錄其原因;上游的授權拒絕則會依照[上游錯誤訊息](/docs/zh-TW/claude-apps-gateway-config#upstream-error-messages)的方式傳遞

1790 1822 

1791在 v2.1.273 之前,閘道工作階段上的 403 顯示通用 `Please run /login` 或 `Failed to authenticate` 訊息,再次登入不會清除拒絕。1823在 v2.1.273 之前,閘道工作階段上的 403 會改為顯示通用的 `Please run /login` 或 `Failed to authenticate` 訊息,且重新登入也無法解除該拒絕。

1792 1824 

1793<h2 id="network-and-connection-errors">1825<h2 id="network-and-connection-errors">

1794 網路和連線錯誤1826 網路和連線錯誤


1979 2011 

1980這些步驟會變更您自己的環境之一。[組織共享環境](/docs/zh-TW/cloud-environments#organization-shared-environments)在選擇器中以唯讀方式開啟,因此請要求擁有者從[管理設定](https://claude.ai/admin-settings)中的**雲端環境**頁面變更其網路存取。2012這些步驟會變更您自己的環境之一。[組織共享環境](/docs/zh-TW/cloud-environments#organization-shared-environments)在選擇器中以唯讀方式開啟,因此請要求擁有者從[管理設定](https://claude.ai/admin-settings)中的**雲端環境**頁面變更其網路存取。

1981 2013 

1982* 開啟例行程式進行編輯,或啟動雲端工作階段。選擇顯示您環境名稱的雲端圖示(例如**預設**)以開啟選擇器。將滑鼠懸停在您的環境上,然後按一下設定圖示。2014* 開啟您的環境進行編輯,可從 [routine 的表單](/docs/zh-TW/routines#environments-and-network-access),或從您啟動雲端工作階段的[環境選擇器](/docs/zh-TW/cloud-environments#configure-your-environment)開啟。

1983* 在**更新雲端環境**對話方塊中,將**網路存取**從**信任**變更為**自訂**,然後將被阻止的網域新增到**允許的網域**。每行輸入一個網域。檢查**也包括常見套件管理員的預設清單**以在您的自訂網域旁邊保留[預設允許清單](/docs/zh-TW/cloud-environments#default-allowed-domains)。如果您想要不受限制的存取,請改為選擇**完整**。2015* 在**編輯雲端環境**對話方塊中,將**網路存取**從**信任**變更為**自訂**,然後將被阻止的網域新增到**允許的網域**。每行輸入一個網域。勾選**也包括常見套件管理員的預設清單**以在您的自訂網域旁邊保留[預設允許清單](/docs/zh-TW/cloud-environments#default-allowed-domains)。如果您想要不受限制的存取,請改為選擇**完整**。

1984* 按一下**儲存變更**。下一次執行使用更新的允許清單。對於已開啟的雲端工作階段,請參閱[網路存取變更何時到達現有工作階段](/docs/zh-TW/cloud-environments#network-access)。2016* 按一下**儲存變更**。下一次執行使用更新的允許清單。對於已開啟的雲端工作階段,請參閱[網路存取變更何時到達現有工作階段](/docs/zh-TW/cloud-environments#network-access)。

1985 2017 

1986請參閱[網路存取](/docs/zh-TW/cloud-environments#network-access)以了解存取層級和預設允許清單。本機 CLI 工作階段不受此原則影響。2018請參閱[網路存取](/docs/zh-TW/cloud-environments#network-access)以了解存取層級和預設允許清單。本機 CLI 工作階段不受此原則影響。


2314API Error: 400 ... Extra inputs are not permitted ... context_management2346API Error: 400 ... Extra inputs are not permitted ... context_management

2315```2347```

2316 2348 

2317Claude Code 發送測試版專用欄位(例如 `context_management` 和 `effort`)以及啟用它們的 `anthropic-beta` 標頭。當閘道轉發正文但刪除標頭時,API 會看到它不識別的欄位。2349Claude Code 會發送測試版專用欄位(例如 `context_management`),並附上啟用它們的 `anthropic-beta` 標頭。當閘道轉發本文但刪除標頭時,API 會看到它無法識別的欄位。

2318 2350 

2319**該怎麼辦:**2351**該怎麼辦:**

2320 2352 


2849 命令列錯誤2881 命令列錯誤

2850</h2>2882</h2>

2851 2883 

2852這些錯誤來自 `claude` 命令列及其子命令、您在提示符提交的命令名稱,以及執行 shell 命令以收集內容的命令(例如 `/security-review`),然後才執行其提示。它們也來自 `/tui`,它會重新啟動 CLI。2884這些錯誤來自 `claude` 命令列及其子命令、來自您在提示字元中送出的命令名稱,以及來自 `/security-review` 等在提示詞執行前透過執行 shell 命令收集脈絡的命令。它們也來自會重新啟動 CLI 的 `/tui`。

2853 2885 

2854<h3 id="conflict-between-bg-and-print">2886<h3 id="conflict-between-bg-and-print">

2855 \--bg 和 --print 之間的衝突2887 `--bg` 與 `--print` 衝突

2856</h3>2888</h3>

2857 2889 

2858此訊息需要 Claude Code v2.1.198 或更新版本。您在同一個 `claude` 呼叫中結合了 `--bg` 與 `-p` 或 `--print`。`--bg` 啟動一個[背景工作階段](/docs/zh-TW/agent-view#from-your-shell),您稍後可以使用 `claude agents` 附加到該工作階段,而 `--print` 以[非互動模式](/docs/zh-TW/headless)執行,永遠不會啟動 `claude agents` 附加到的互動工作階段。在 v2.1.198 之前,此組合會無聲地建立一個永遠無法附加的背景工作。2890此訊息需要 Claude Code v2.1.198 或更新版本。您在同一次 `claude` 呼叫中將 `--bg` 與 `-p` 或 `--print` 合併使用。`--bg` 會啟動一個[背景工作階段](/docs/zh-TW/agent-view#from-your-shell),供您之後以 `claude agents` 附加;而 `--print` 以[非互動方式](/docs/zh-TW/headless)執行,永遠不會啟動 `claude agents` 所附加的互動式工作階段。在 v2.1.198 之前,這種組合會默默建立一個永遠無法附加的背景工作。

2859 2891 

2860```text theme={null}2892```text theme={null}

2893--bg and --print conflict: --print never starts the interactive session that `claude agents` attaches to, so the job would be unattachable. The prompt is the positional — drop --print: `claude --bg '<task>'`.

2861```2894```

2862 2895 

2863**該怎麼做:**2896**處理方式:**

2897 

2898* 移除 `-p` 或 `--print`。`--bg` 以位置引數接收提示詞,因此 `claude --bg "<task>"` 就是完整的命令。請參閱[從您的 shell 分派新的 agent](/docs/zh-TW/agent-view#from-your-shell)。

2899* 若要以非互動方式執行提示詞並印出結果,而不是建立背景工作階段,請移除 `--bg` 並執行 `claude -p "<task>"`

2864 2900 

2865* 移除 `-p` 或 `--print`。`--bg` 將提示作為其位置引數,所以 `claude --bg "<task>"` 是完整命令。請參閱[從您的 shell 分派新代理](/docs/zh-TW/agent-view#from-your-shell)。2901<h3 id="conflict-between-a-system-prompt-flag-and-its-file-form">

2866* 若要以非互動模式執行提示並列印結果而不是建立背景工作階段,請移除 `--bg` 並執行 `claude -p "<task>"`2902 系統提示詞旗標與其檔案形式衝突

2903</h3>

2904 

2905您在一次 `claude` 呼叫中同時傳入了 [`--append-subagent-system-prompt`](/docs/zh-TW/cli-reference#cli-flags) 與 `--append-subagent-system-prompt-file`,因此 `claude` 會以退出碼 1 結束,而不會啟動工作階段:

2906 

2907```text theme={null}

2908Error: Cannot use both --append-subagent-system-prompt and --append-subagent-system-prompt-file. Please use only one.

2909```

2910 

2911在 v2.1.283 之前,當您將 `--system-prompt` 與 `--system-prompt-file` 一起傳入,或將 `--append-system-prompt` 與 `--append-system-prompt-file` 一起傳入時,`claude` 也會以相同方式結束,因為這些組合會互相衝突,而不是[合併](/docs/zh-TW/cli-reference#system-prompt-flags)。在這些版本中,訊息會指出您合併使用的那一組旗標。

2912 

2913**處理方式:**

2914 

2915* 保留旗標的其中一種形式並移除另一種。若要將固定的提示詞檔案與每次執行的文字合併,請在啟動前將文字併入檔案,而不是同時傳入兩個旗標

2867 2916 

2868<h3 id="invalid-agents-configuration">2917<h3 id="invalid-agents-configuration">

2869 無效的 --agents 設定2918 無效的 `--agents` 設定

2870</h3>2919</h3>

2871 2920 

2872您傳遞給 `--agents` 的值無效,所以 `claude` 以代碼 1 結束而不是啟動工作階段。當您傳遞 `--safe-mode` 或設定 [`CLAUDE_CODE_SAFE_MODE`](/docs/zh-TW/env-vars#variables) 時,Claude Code 會完全忽略 `--agents`。使用 `--resume` 或 `--continue` 時,內嵌 JSON 值不會被檢查且工作階段會啟動;從檔案讀取的值在每次啟動時都會被檢查。在 v2.1.242 之前,Claude Code 無論如何都會啟動工作階段。2921您傳給 `--agents` 的值無效,因此 `claude` 會以退出碼 1 結束,而不會啟動工作階段。當您傳入 `--safe-mode` 或設定 [`CLAUDE_CODE_SAFE_MODE`](/docs/zh-TW/env-vars#variables) 時,Claude Code 會完全忽略 `--agents`。搭配 `--resume` 或 `--continue` 時,內嵌的 JSON 值不會受到檢查,工作階段會照常啟動;從檔案讀取的值則會在每次啟動時檢查。在 v2.1.242 之前,Claude Code 無論如何都會啟動工作階段。

2873 2922 

2874```text theme={null}2923```text theme={null}

2875Error: Invalid --agents configuration:2924Error: Invalid --agents configuration:

2876<what failed>2925<what failed>

2877```2926```

2878 2927 

2879第一行之後的內容取決於值如何失敗。Claude Code 按順序執行這些檢查,並在第一個失敗的檢查處停止。如果您的值有兩種問題,您只有在修復第一個問題後才會看到第二個:2928第一行之後的內容取決於該值失敗的方式。Claude Code 會依序執行以下檢查,並在第一個失敗的檢查處停止。如果您的值有兩種問題,您必須先修正第一種,才會看到第二種:

2880 2929 

28811. 當值以 `{` 開頭但不能解析為 JSON,或 `--agents` 檔案的內容無法解析時,Claude Code 會列印一行 `invalid JSON:` 行,其中包含 JSON 解析器自己的訊息29301. 當值以 `{` 開頭但無法解析為 JSON,或 `--agents` 檔案的內容無法解析時,Claude Code 會印出一行 `invalid JSON:`,其中附上 JSON 剖析器本身的訊息

28822. 當它解析但代理定義與 [CLI 定義的子代理](/docs/zh-TW/sub-agents#choose-the-subagent-scope)的架構不符時,Claude Code 會為每個問題列印一行29312. 當值可以解析,但某個 agent 定義不符合 [CLI 定義之 subagent](/docs/zh-TW/sub-agents#choose-the-subagent-scope) 的 schema 時,Claude Code 會針對每個問題印出一行

28833. 當代理名稱以 `-` 開頭時,Claude Code 會列印 `<name>: agent names must not start with '-'`29323. 當 agent 名稱以 `-` 開頭時,Claude Code 會印出 `<name>: agent names must not start with '-'`

2884 2933 

2885當有超過 20 行問題時,Claude Code 會列印前 20 行,並用 `…and N more` 取代其餘部分。2934當問題行超過 20 行時,Claude Code 會印出前 20 行,並以 `…and N more` 取代其餘部分。

2886 2935 

2887使用 `--print` 時,`--agents` 也接受 [JSON 檔案的路徑](/docs/zh-TW/sub-agents#choose-the-subagent-scope)代替內嵌物件。在 v2.1.281 之前,`--agents` 只接受內嵌 JSON,並將檔案路徑視為無效 JSON。檔案形式有其自己的拒絕,列印在此訊息的位置,包括這些:2936搭配 `--print` 時,`--agents` 也接受以 [JSON 檔案的路徑](/docs/zh-TW/sub-agents#choose-the-subagent-scope)取代內嵌物件。在 v2.1.281 之前,`--agents` 只接受內嵌 JSON,並將檔案路徑視為無效的 JSON。檔案形式有其自身的拒絕情況,會以取代此訊息的方式印出,包括以下幾種:

2888 2937 

2889* **`Error: --agents takes a JSON object, or a file path only with --print (-p)`**:Claude Code 在互動工作階段中將值讀取為檔案路徑。將定義作為內嵌 JSON 傳遞,或新增 `-p` 以從檔案讀取它們。2938* **`Error: --agents takes a JSON object, or a file path only with --print (-p)`**:Claude Code 在互動式工作階段中將該值讀取為檔案路徑。請以內嵌 JSON 傳入定義,或加上 `-p` 以從檔案讀取。

2890* **`Error: --agents file not found: <path>`**:該路徑不存在任何檔案。不以 `{` 開頭且不是有效 JSON 的值會被讀取為路徑,所以您的 shell 損壞的內嵌 JSON 也可能以這種方式失敗。檢查路徑或引號,然後再次執行命令。2939* **`Error: --agents file not found: <path>`**:該路徑上不存在檔案。不以 `{` 開頭且不是有效 JSON 的值會被當成路徑讀取,因此被您的 shell 破壞的內嵌 JSON 也可能以這種方式失敗。請檢查路徑或引號,然後再次執行命令。

2891 2940 

2892**該怎麼做:**2941**處理方式:**

2893 2942 

2894* 修復訊息列出的每個問題,然後再次執行命令。請參閱 [CLI 定義的子代理採用的欄位](/docs/zh-TW/sub-agents#choose-the-subagent-scope)。2943* 修正訊息列出的每個問題,然後再次執行命令。請參閱 [CLI 定義之 subagent 可接受的欄位](/docs/zh-TW/sub-agents#choose-the-subagent-scope)。

2895 2944 

2896<h3 id="cloud-sessions-cannot-be-created-from-a-restricted-session">2945<h3 id="cloud-sessions-cannot-be-created-from-a-restricted-session">

2897 無法從 --restricted 工作階段建立雲端工作階段2946 無法從 `--restricted` 工作階段建立雲端工作階段

2898</h3>2947</h3>

2899 2948 

2900當您使用 [`--restricted`](/docs/zh-TW/cli-reference#cli-flags) 啟動工作階段時,Claude Code 拒絕從它建立[雲端工作階段](/docs/zh-TW/claude-code-on-the-web#from-terminal-to-cloud),因為新工作階段會在受限程序外執行,不會強制執行受限模式。Claude Code 在用戶端拒絕,在聯絡伺服器之前,所以不會建立任何雲端工作階段:2949當您以 [`--restricted`](/docs/zh-TW/cli-reference#cli-flags) 啟動工作階段時,Claude Code 會拒絕從該工作階段建立[雲端工作階段](/docs/zh-TW/claude-code-on-the-web#from-terminal-to-cloud),因為新的工作階段會在受限程序之外執行,而不會強制執行受限模式。Claude Code 會在用戶端、聯絡伺服器之前就拒絕,因此不會建立任何雲端工作階段:

2901 2950 

2902```text theme={null}2951```text theme={null}

2903Cloud sessions cannot be created from a --restricted session: they would not enforce it.2952Cloud sessions cannot be created from a --restricted session: they would not enforce it.

2904```2953```

2905 2954 

2906**該怎麼做:**2955**處理方式:**

2907 2956 

2908* 在受限工作階段中本地執行工作2957* 在受限工作階段中於本機執行該任務

2909* 如果您控制工作階段的啟動方式,請啟動新的 `claude` 工作階段而不使用 `--restricted`,並從那裡建立雲端工作階段2958* 如果您能控制工作階段的啟動方式,請在不使用 `--restricted` 的情況下啟動新的 `claude` 工作階段,並從那裡建立雲端工作階段

2910 2959 

2911在 v2.1.248 之前,Claude Code 沒有 `--restricted` 旗標;較早的版本會以未知選項錯誤拒絕該旗標。2960在 v2.1.248 之前,Claude Code 沒有 `--restricted` 旗標;較早的版本會以未知選項錯誤拒絕該旗標本身。

2912 2961 

2913<h3 id="cloud-sessions-are-disabled-by-your-organizations-policy">2962<h3 id="cloud-sessions-are-disabled-by-your-organizations-policy">

2914 您的組織政策已停用雲端工作階段2963 雲端工作階段已被您組織的政策停用

2915</h3>2964</h3>

2916 2965 

2917您的組織的 `allow_remote_sessions` 政策已關閉,所以[雲端工作階段](/docs/zh-TW/claude-code-on-the-web)和使用它們的命令不可用:2966您組織的 `allow_remote_sessions` 政策已關閉,因此無法使用[雲端工作階段](/docs/zh-TW/claude-code-on-the-web)及使用它們的命令:

2918 2967 

2919```text theme={null}2968```text theme={null}

2920Cloud sessions are disabled by your organization's policy. Contact your organization admin to enable them.2969Cloud sessions are disabled by your organization's policy. Contact your organization admin to enable them.

2921```2970```

2922 2971 

2923當您[從終端建立雲端工作階段](/docs/zh-TW/claude-code-on-the-web#from-terminal-to-cloud)時會出現此訊息,當您提交需要雲端工作階段的命令時,例如 `/teleport`、`/remote-env` 或 `/web-setup`。在 v2.1.268 之前,提交其中一個命令會傳回[`Unknown command`](#unknown-command)。2972當您[從終端機建立雲端工作階段](/docs/zh-TW/claude-code-on-the-web#from-terminal-to-cloud)時,以及當您送出需要雲端工作階段的命令(例如 `/teleport`、`/remote-env` 或 `/web-setup`)時,就會出現此訊息。在 v2.1.268 之前,送出這些命令之一會改為回傳 [`Unknown command`](#unknown-command)。

2924 2973 

2925這是伺服器端組織政策,所以無法從本地設定、環境變數或 CLI 旗標覆蓋。2974這是伺服器端的組織政策,因此無法透過本機設定、環境變數或 CLI 旗標覆寫。

2926 2975 

2927如果 Claude Code 尚未載入您的組織政策或無法擷取它,這些命令會改為回答 `Couldn't verify your organization's policy for cloud sessions. Check your network connection, then restart Claude Code and try again.`。2976如果 Claude Code 尚未載入您組織的政策或無法擷取政策,這些命令會改為回應 `Couldn't verify your organization's policy for cloud sessions. Check your network connection, then restart Claude Code and try again.`。

2928 2977 

2929**該怎麼做:**2978**處理方式:**

2930 2979 

2931* 要求您的組織中的[擁有者](/docs/zh-TW/server-managed-settings#access-control)在 [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code) 的 Claude Code 管理設定中啟用雲端工作階段2980* 請您組織中的 [Owner](/docs/zh-TW/server-managed-settings#access-control) 在 [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code) 的 Claude Code 管理設定中啟用雲端工作階段

2932* 如果訊息說它無法驗證政策,請檢查您的網路連線,然後重新啟動 Claude Code 並再試一次2981* 如果訊息表示無法驗證政策,請檢查您的網路連線,然後重新啟動 Claude Code 並再試一次

2933 2982 

2934<h3 id="the-json-schema-value-is-not-a-valid-json-schema">2983<h3 id="the-json-schema-value-is-not-a-valid-json-schema">

2935 \--json-schema 值不是有效的 JSON Schema2984 `--json-schema` 的值不是有效的 JSON Schema

2936</h3>2985</h3>

2937 2986 

2938您傳遞給 [`--json-schema`](/docs/zh-TW/cli-reference#cli-flags) 的架構在[非互動模式](/docs/zh-TW/headless#get-structured-output)中無法通過 JSON Schema 編譯,所以 `claude` 以代碼 1 結束而不是執行提示。在 v2.1.205 之前,無效的架構會產生無結構的輸出而沒有錯誤,任何使用 `format` 關鍵字的架構都被視為無效。2987您在[非互動模式](/docs/zh-TW/headless#get-structured-output)中傳給 [`--json-schema`](/docs/zh-TW/cli-reference#cli-flags) 的 schema 未能通過 JSON Schema 編譯,因此 `claude` 會以退出碼 1 結束,而不會執行提示詞。在 v2.1.205 之前,無效的 schema 會產生非結構化輸出而不報錯,且任何使用 `format` 關鍵字的 schema 都會被視為無效。

2939 2988 

2940```text theme={null}2989```text theme={null}

2941Error: --json-schema is not a valid JSON Schema: data/type must be equal to one of the allowed values2990Error: --json-schema is not a valid JSON Schema: data/type must be equal to one of the allowed values

2942```2991```

2943 2992 

2944第二個冒號後的文字是驗證器的診斷,並命名失敗的關鍵字或位置。使用 `format` 關鍵字的架構,例如 `"format": "email"`,是有效的:Claude Code 接受 `format` 作為註釋,不強制執行它。2993第二個冒號之後的文字是驗證器的診斷訊息,會指出失敗的關鍵字或位置。使用 `format` 關鍵字的 schema(例如 `"format": "email"`)是有效的:Claude Code 將 `format` 視為註解接受,且不會強制執行它。

2945 2994 

2946Claude Code 在架構編譯之前執行兩項檢查:它拒絕不可解析的 JSON 值,並顯示 `Error: --json-schema is not valid JSON`,以及有效但不是物件的 JSON,並顯示 `Error: --json-schema must be a JSON object`。2995Claude Code 會在 schema 編譯前執行兩項檢查:對於無法解析為 JSON 的值,它會以 `Error: --json-schema is not valid JSON` 拒絕;對於有效但不是物件的 JSON,則以 `Error: --json-schema must be a JSON object` 拒絕。

2947 2996 

2948**該怎麼做:**2997**處理方式:**

2949 2998 

2950* 修復診斷命名的架構部分,然後重新執行命令2999* 修正診斷訊息所指出的 schema 部分,然後重新執行命令

2951* 請參閱[取得結構化輸出](/docs/zh-TW/headless#get-structured-output)以取得有效的架構和命令3000* 請參閱[取得結構化輸出](/docs/zh-TW/headless#get-structured-output),了解可運作的 schema 與命令

2952 3001 

2953<h3 id="settings-file-exceeds-the-2mib-limit">3002<h3 id="settings-file-exceeds-the-2mib-limit">

2954 設定檔超過 2MiB 限制3003 設定檔超過 2MiB 限制

2955</h3>3004</h3>

2956 3005 

2957您傳遞給 [`--settings`](/docs/zh-TW/cli-reference#cli-flags) 的檔案大於 2 MiB,所以 `claude` 在啟動時以代碼 1 結束而不是載入它。在 v2.1.214 之前,Claude Code 讀取檔案時沒有大小檢查,多 GB 檔案或 `/dev/zero` 等裝置檔案會無限制地增加記憶體。3006您傳給 [`--settings`](/docs/zh-TW/cli-reference#cli-flags) 的檔案大於 2 MiB,因此 `claude` 會在啟動時以退出碼 1 結束,而不會載入它。在 v2.1.214 之前,Claude Code 讀取檔案時不會檢查大小,數 GB 的檔案或 `/dev/zero` 之類的裝置檔案會讓記憶體無限制地增長。

2958 3007 

2959```text theme={null}3008```text theme={null}

2960Error: Settings file exceeds the 2MiB limit: /path/to/settings.json3009Error: Settings file exceeds the 2MiB limit: /path/to/settings.json

2961```3010```

2962 3011 

2963Claude Code 以相同方式拒絕不是常規檔案的 `--settings` 路徑:裝置、FIFO 或通訊端會報告 `Error: Cannot use settings file (Not a regular file (device, FIFO, or socket))`,後面跟著路徑,目錄會報告 `EISDIR` 原因。3012Claude Code 會以相同方式拒絕不是一般檔案的 `--settings` 路徑:裝置、FIFO 或 socket 會回報 `Error: Cannot use settings file (Not a regular file (device, FIFO, or socket))`,後接路徑;目錄則會回報 `EISDIR` 原因。

2964 3013 

2965**該怎麼做:**3014**處理方式:**

2966 3015 

2967* 將 `--settings` 指向 2 MiB 以下的常規 JSON 設定檔。請參閱[設定](/docs/zh-TW/settings)以了解格式。3016* 將 `--settings` 指向小於 2 MiB 的一般 JSON 設定檔。格式請參閱[設定](/docs/zh-TW/settings)。

2968 3017 

2969<h3 id="the-current-directory-no-longer-exists">3018<h3 id="the-current-directory-no-longer-exists">

2970 目前目錄不再存在3019 目前目錄已不存在

2971</h3>3020</h3>

2972 3021 

2973您從一個在您的 shell 進入後被刪除或移動的目錄啟動 `claude`,例如另一個 shell 移除的 worktree 或臨時目錄。Claude Code 無法讀取其工作目錄,所以它在啟動工作階段之前以代碼 1 結束,在互動和[非互動](/docs/zh-TW/headless)模式中都是如此。在 v2.1.239 之前,Claude Code 會因縮小的套件來源和原始 `ENOENT ... uv_cwd` 堆疊在 stderr 上而崩潰,而不是顯示此訊息。3022您從一個在您的 shell 進入後已被刪除或移動的目錄啟動了 `claude`,例如另一個 shell 移除的 worktree 或暫存目錄。Claude Code 無法讀取其工作目錄,因此會在啟動工作階段前以退出碼 1 結束,互動模式與[非互動](/docs/zh-TW/headless)模式皆然。在 v2.1.239 之前,Claude Code 會當機,並在 stderr 上輸出壓縮過的套件原始碼與原始的 `ENOENT ... uv_cwd` 堆疊,而不是此訊息。

2974 3023 

2975```text theme={null}3024```text theme={null}

2976The current directory no longer exists (it was deleted or moved). Start Claude Code from an existing directory.3025The current directory no longer exists (it was deleted or moved). Start Claude Code from an existing directory.

2977error: The current working directory was deleted, so that command didn't work. Please cd into a different directory and try again.3026error: The current working directory was deleted, so that command didn't work. Please cd into a different directory and try again.

2978```3027```

2979 3028 

2980原因和修復對兩種形式都是相同的。3029兩種形式的原因與修正方法相同。

2981 3030 

2982當 Claude Code 因不同的原因(例如權限變更)無法讀取工作目錄時,訊息會命名錯誤代碼:`Can't read the current directory (EACCES). Start Claude Code from a different directory.`3031當 Claude Code 因其他原因(例如權限變更)無法讀取工作目錄時,訊息會改為指出錯誤碼:`Can't read the current directory (EACCES). Start Claude Code from a different directory.`

2983 3032 

2984在 macOS 上,`~/Desktop`、`~/Documents`、`~/Downloads` 或 iCloud Drive 中目錄的 `EPERM` 通常表示 macOS 阻止您的終端應用程式存取該資料夾。讀取該資料夾的其他命令也會以相同方式失敗:即使使用 `sudo`,`ls` 也會報告 `Operation not permitted`。3033在 macOS 上,若 `~/Desktop`、`~/Documents`、`~/Downloads` 或 iCloud Drive 中的目錄出現 `EPERM`,通常表示 macOS 正在阻擋您的終端機應用程式存取該資料夾。其他讀取該資料夾的命令也會以相同方式失敗:在該處執行 `ls` 會回報 `Operation not permitted`,即使使用 `sudo` 也一樣。

2985 3034 

2986**該怎麼做:**3035**處理方式:**

2987 3036 

2988* 變更為存在的目錄,例如您的主目錄或專案目錄,然後再次執行 `claude`3037* 切換到存在的目錄,例如您的家目錄或專案目錄,然後再次執行 `claude`

2989* 如果目錄在相同路徑被重新建立,您的 shell 仍然持有已刪除的目錄。執行 `cd "$PWD"` 或離開並重新進入目錄,然後執行 `claude`3038* 如果該目錄已在相同路徑重新建立,您的 shell 仍持有已刪除的那個目錄。請執行 `cd "$PWD"`,或離開後重新進入該目錄,然後再次執行 `claude`

2990* 對於 macOS 上的 `EPERM`,使用 Cmd+Q 結束您的終端應用程式,重新開啟它,返回該資料夾,然後執行 `claude`。如果該資料夾中的 `ls` 仍然失敗,請開啟**系統設定 > 隱私與安全 > 檔案和資料夾**,為您的終端應用程式開啟該資料夾,然後重新開啟終端3039* 對於 macOS 上的 `EPERM`,請以 Cmd+Q 結束您的終端機應用程式,重新開啟它,回到該資料夾並執行 `claude`。如果在該資料夾中執行 `ls` 仍然失敗,請開啟 **系統設定 > 隱私權與安全性 > 檔案與資料夾**,為您的終端機應用程式開啟該資料夾,然後重新開啟終端機

2991 3040 

2992<h3 id="temp-directory-refused-or-cannot-be-created">3041<h3 id="temp-directory-refused-or-cannot-be-created">

2993 臨時目錄被拒絕或無法建立3042 暫存目錄遭拒絕或無法建立

2994</h3>3043</h3>

2995 3044 

2996在 macOS 和 Linux 上,Claude Code 在啟動時建立一個私有臨時目錄 `claude-<uid>`,位於系統臨時目錄或 [`CLAUDE_CODE_TMPDIR`](/docs/zh-TW/env-vars) 覆蓋下。當無法建立目錄,或該路徑上的現有項目無法通過安全檢查時,Claude Code 會將失敗列印到 stderr 並以代碼 1 結束而不是啟動工作階段:3045在 macOS 與 Linux 上,Claude Code 會在啟動時建立一個私有暫存目錄 `claude-<uid>`,位於系統暫存目錄或 [`CLAUDE_CODE_TMPDIR`](/docs/zh-TW/env-vars) 覆寫值之下。當該目錄無法建立,或該路徑上已存在的項目未通過安全檢查時,Claude Code 會將失敗原因印到 stderr 並以退出碼 1 結束,而不會啟動工作階段:

2997 3046 

2998```text wrap theme={null}3047```text wrap theme={null}

2999ENOSPC: no space left on device, mkdir '/tmp/claude-501'3048ENOSPC: no space left on device, mkdir '/tmp/claude-501'


3006Temp directory /tmp/claude-501 is not readable (its mode may have been altered, or a path component denies search). Refusing to use it — restore its permissions (chmod 0700) or remove it. Set CLAUDE_CODE_TMPDIR to a directory you control, or ask an administrator to remove it.3054Temp directory /tmp/claude-501 is not readable (its mode may have been altered, or a path component denies search). Refusing to use it — restore its permissions (chmod 0700) or remove it. Set CLAUDE_CODE_TMPDIR to a directory you control, or ask an administrator to remove it.

3007```3055```

3008 3056 

3009**該怎麼做:**3057**處理方式:**

3010 3058 

3011* 對於 `ENOSPC`,釋放保存臨時目錄的磁碟區上的磁碟空間3059* 對於 `ENOSPC`,請釋放存放暫存目錄之磁碟區的磁碟空間

3012* 對於 `Refusing to use it` 形式,移除命名的項目本身,而不是連結指向的內容,然後啟動 Claude Code;對於 `owned by uid` 形式,只有管理員或該使用者可以移除它3060* 對於 `Refusing to use it` 形式,請移除所指出的項目本身,而不是連結所指向的目標,然後再次啟動 Claude Code;對於 `owned by uid` 形式,只有管理員或該使用者可以移除它

3013* 對於 `is not readable`,在命名的目錄上執行 `chmod 0700`,或移除它並重新啟動3061* 對於 `is not readable`,請對所指出的目錄執行 `chmod 0700`,或將其移除後重新啟動

3014* 在任何這些情況下,將 [`CLAUDE_CODE_TMPDIR`](/docs/zh-TW/env-vars) 設定為您控制的目錄並啟動 Claude Code,保留被拒絕的路徑不變3062* 在上述任何情況下,您都可以將 [`CLAUDE_CODE_TMPDIR`](/docs/zh-TW/env-vars) 設為您可控制的目錄並再次啟動 Claude Code,不需理會遭拒絕的路徑

3015 3063 

3016<h3 id="directory-couldnt-be-resolved-to-a-real-location">3064<h3 id="directory-couldnt-be-resolved-to-a-real-location">

3017 目錄無法解析為真實位置3065 目錄無法解析為實際位置

3018</h3>3066</h3>

3019 3067 

3020您為工作目錄的子目錄執行了 `/add-dir`,Claude Code 無法將目錄解析為其真實位置。3068您對工作目錄的子目錄執行了 `/add-dir`,而 Claude Code 無法將該目錄解析為其實際位置。

3021 3069 

3022您已經可以存取工作目錄的子目錄,所以 `/add-dir` 只會載入其技能、命令和代理。在載入它們之前,Claude Code 會檢查目錄的真實位置(解析任何符號連結)是否在工作目錄內。當 Claude Code 無法解析該位置時,它不會載入任何內容並顯示此訊息:3070您對工作目錄的子目錄本來就有檔案存取權,因此 `/add-dir` 只會載入其 skill、命令與 agent。在載入之前,Claude Code 會檢查該目錄解析所有符號連結後的實際位置是否位於工作目錄內。當 Claude Code 無法解析該位置時,它不會載入任何內容,並顯示此訊息:

3023 3071 

3024```text theme={null}3072```text theme={null}

3025packages/app couldn't be resolved to a real location, so its skills, commands, and agents weren't loaded. Check that it is a directory inside the working directory and try again.3073packages/app couldn't be resolved to a real location, so its skills, commands, and agents weren't loaded. Check that it is a directory inside the working directory and try again.

3026```3074```

3027 3075 

3028**該怎麼做:**3076**處理方式:**

3029 3077 

3030* 檢查路徑是否命名工作目錄內的真實目錄,然後再次執行 `/add-dir`3078* 確認該路徑指向工作目錄內的實際目錄,然後再次執行 `/add-dir`

3031* 訊息不會改變您的檔案存取;它只報告目錄的 `.claude/` 內容未被載入3079* 此訊息不會改變您的檔案存取權;它只是回報該目錄的 `.claude/` 內容未被載入

3032 3080 

3033在 v2.1.261 之前,當工作目錄在 `/net/<host>` 自動掛載上時,此訊息也會為每個 `/add-dir <subdirectory>` 出現,Claude Code 根據設計拒絕解析路徑;目錄很好,重試無法幫助。3081在 v2.1.261 之前,當工作目錄位於 `/net/<host>` 自動掛載點上時,每次執行 `/add-dir <subdirectory>` 也都會出現此訊息,因為 Claude Code 在設計上會拒絕解析這類路徑;該目錄本身沒有問題,重試也無濟於事。

3034 3082 

3035<h3 id="workspace-not-trusted-when-starting-remote-control">3083<h3 id="workspace-not-trusted-when-starting-remote-control">

3036 啟動遠端控制時工作區未受信任3084 啟動 Remote Control 時工作區未受信任

3037</h3>3085</h3>

3038 3086 

3039您在未信任的目錄中使用 `claude remote-control` 或其 `claude rc` 別名啟動[遠端控制](/docs/zh-TW/remote-control)伺服器模式,命令無法詢問您是否信任它。例如,命令的標準輸入或標準輸出不是終端,因為其中一個被重新導向或管道化。命令以代碼 1 結束:3087您在尚未信任的目錄中以 `claude remote-control` 或其別名 `claude rc` 啟動了 [Remote Control](/docs/zh-TW/remote-control) 伺服器模式,而該命令無法詢問您是否信任此目錄。例如,由於標準輸入或標準輸出之一被重新導向或透過管線傳送,命令的標準輸入或標準輸出不是終端機。該命令會以退出碼 1 結束:

3040 3088 

3041```text theme={null}3089```text theme={null}

3042Error: Workspace not trusted. Please run `claude` in /Users/you/project first to review and accept the workspace trust dialog.3090Error: Workspace not trusted. Please run `claude` in /Users/you/project first to review and accept the workspace trust dialog.

3043```3091```

3044 3092 

3045兩個也以 `Error: Workspace not trusted.` 開頭的變體也會在終端中出現,終端太小而無法顯示信任目錄會開啟什麼,或沒有報告其大小的終端。放大視窗或切換到正常終端視窗,然後再次執行 `claude rc`。3093另外兩種同樣以 `Error: Workspace not trusted.` 開頭的變體,會出現在太小而無法顯示信任該目錄會啟用哪些功能的終端機中,或未回報其大小的終端機中。請放大視窗或切換到一般終端機視窗,然後再次執行 `claude rc`。

3046 3094 

3047在您的主目錄中,訊息是不同的,因為工作區信任對話框永遠不會為主目錄保存信任,所以在那裡接受它無法滿足此檢查。在 v2.1.214 之前,主目錄顯示上面的訊息,其建議無法在那裡成功。3095在您的家目錄中,訊息會不同,因為工作區信任對話框永遠不會為家目錄儲存信任,因此在那裡接受它無法滿足此檢查。在 v2.1.214 之前,家目錄會顯示上述訊息,而其建議在那裡無法成功。

3048 3096 

3049```text theme={null}3097```text theme={null}

3050Error: Workspace not trusted. /Users/you is your home directory, and for security home-directory trust is never saved, so running `claude` here first won't help. Run `claude rc` from a project directory instead (run `claude` there once to accept the trust dialog).3098Error: Workspace not trusted. /Users/you is your home directory, and for security home-directory trust is never saved, so running `claude` here first won't help. Run `claude rc` from a project directory instead (run `claude` there once to accept the trust dialog).

3051```3099```

3052 3100 

3053如果您在 [`Trust <directory>?` 問題](/docs/zh-TW/remote-control#requirements)回答 `n` 或按 Enter,命令會列印一條 `Remote Control did not start` 訊息,命名目錄並以代碼 1 結束。再次執行 `claude rc` 以回答 `y`。3101如果您在 [`Trust <directory>?` 問題](/docs/zh-TW/remote-control#requirements)中回答 `n` 或按下 Enter,該命令會印出一則指出該目錄的 `Remote Control did not start` 訊息,並以退出碼 1 結束。請再次執行 `claude rc` 並回答 `y`。

3054 3102 

3055**該怎麼做:**3103**處理方式:**

3056 3104 

3057* 首先從終端信任目錄:在那裡執行 `claude rc` 並回答 `y`,或執行 `claude` 並接受[工作區信任對話框](/docs/zh-TW/permissions#project-allow-rules-and-workspace-trust),然後再次執行您的原始命令3105* 先從終端機信任該目錄:在該處執行 `claude rc` 並回答 `y`,或在該處執行 `claude` 並接受[工作區信任對話框](/docs/zh-TW/permissions#project-allow-rules-and-workspace-trust),然後再次執行您原本的命令

3058* 在您的主目錄中,變更為專案目錄並在那裡啟動遠端控制3106* 在您的家目錄中,請切換到專案目錄並在那裡啟動 Remote Control

3059 3107 

3060在 v2.1.284 之前,命令永遠不會詢問,即使在終端中也是如此。3108在 v2.1.284 之前,即使在終端機中,該命令也從不詢問。

3061 3109 

3062<h3 id="not-carried-over-to-the-sessions-remote-control-starts">3110<h3 id="not-carried-over-to-the-sessions-remote-control-starts">

3063 未被遠端控制啟動的工作階段帶過去3111 不會傳遞到 Remote Control 啟動的工作階段

3064</h3>3112</h3>

3065 3113 

3066您使用全域 `claude` 旗標在 `remote-control` 動詞之前啟動[遠端控制](/docs/zh-TW/remote-control),該旗標會限制或設定遠端控制啟動的工作階段,例如 `--settings`、`--setting-sources`、`--permission-mode`、`--disallowed-tools` 或 `--mcp-config`。放在動詞之前的旗標永遠不會到達這些工作階段。Claude Code 拒絕啟動,命名旗標:3114您在 `remote-control` 動詞之前加上了一個全域 `claude` 旗標來啟動 [Remote Control](/docs/zh-TW/remote-control),且該旗標會限制或設定 Remote Control 所啟動的工作階段,例如 `--settings`、`--setting-sources`、`--permission-mode`、`--disallowed-tools` 或 `--mcp-config`。放在動詞之前的旗標永遠不會傳遞到這些工作階段。Claude Code 會改為拒絕啟動,並指出該旗標:

3067 3115 

3068```text theme={null}3116```text theme={null}

3069Error: `--settings` before `remote-control` is not carried over to the sessions Remote Control starts, so Remote Control refuses to start rather than drop it — remove it, and give Remote Control's own options after the verb (see `claude remote-control --help`).3117Error: `--settings` before `remote-control` is not carried over to the sessions Remote Control starts, so Remote Control refuses to start rather than drop it — remove it, and give Remote Control's own options after the verb (see `claude remote-control --help`).

3070```3118```

3071 3119 

3072Claude Code 不拒絕無害的全域旗標,例如 `--verbose`、`--model` 或包裝器注入的 `--session-id` 或 `--plugin-dir`:它忽略它們,遠端控制啟動。3120Claude Code 不會拒絕那些捨棄後無害的全域旗標,例如 `--verbose`、`--model`,或由包裝程式注入的 `--session-id` 或 `--plugin-dir`:它會忽略這些旗標,Remote Control 照常啟動。

3073 3121 

3074Claude Code 也拒絕為它尚未識別為無害的全域旗標啟動,所以在較新版本中新增的旗標可能會在此訊息中出現,直到稍後的版本將其標記為無害。3122對於尚未被 Claude Code 認定為無害的全域旗標,Claude Code 也會拒絕啟動,因此較新版本中新增的旗標可能會出現在此訊息中,直到後續版本將其標記為無害為止。

3075 3123 

3076**該怎麼做:**3124**處理方式:**

3077 3125 

3078* 從動詞之前移除旗標,並在其後傳遞[遠端控制自己的選項](/docs/zh-TW/remote-control#start-a-remote-control-session);`claude remote-control --help` 列出它們3126* 從動詞之前移除該旗標,並在動詞之後傳入 [Remote Control 自身的選項](/docs/zh-TW/remote-control#start-a-remote-control-session);`claude remote-control --help` 會列出這些選項

3079* 當被拒絕的旗標是 `--permission-mode` 時,執行 `claude remote-control --permission-mode <mode>` 以設定遠端控制啟動的工作階段的權限模式3127* 當被拒絕的旗標是 `--permission-mode` 時,請執行 `claude remote-control --permission-mode <mode>`,為 Remote Control 所啟動的工作階段設定權限模式

3080 3128 

3081在 v2.1.248 之前,當全域旗標首先出現時,`claude remote-control` 不接受其自己的旗標,命令失敗並出現未知選項錯誤。3129在 v2.1.248 之前,當全域旗標放在前面時,`claude remote-control` 不接受其自身的旗標,且命令會以 `unknown option` 錯誤失敗。

3082 3130 

3083<h3 id="claude-import-is-not-yet-available-in-this-build">3131<h3 id="claude-import-is-not-yet-available-in-this-build">

3084 claude import 在此組建中尚不可用3132 此建置尚無法使用 claude import

3085</h3>3133</h3>

3086 3134 

3087您執行了 [`claude import`](/docs/zh-TW/cli-reference#cli-commands),Claude Code 發現匯入流程已關閉,所以命令以代碼 1 結束而不是啟動匯入。在 v2.1.222 之前,關閉匯入流程的組建會將 `import` 視為提示並啟動互動工作階段,而不是列印此訊息。3135您執行了 [`claude import`](/docs/zh-TW/cli-reference#cli-commands),而 Claude Code 發現匯入流程已關閉,因此該命令會以退出碼 1 結束,而不會開始匯入。在 v2.1.222 之前,匯入流程關閉的建置會將 `import` 當成提示詞,並啟動互動式工作階段,而不是印出此訊息。

3088 3136 

3089```text theme={null}3137```text theme={null}

3090`claude import` is not yet available in this build. Run `claude` and use /mcp or edit ~/.claude/settings.json directly.3138`claude import` is not yet available in this build. Run `claude` and use /mcp or edit ~/.claude/settings.json directly.

3091```3139```

3092 3140 

3093Claude Code 通過它從 Anthropic 擷取並在磁碟上快取的功能旗標開啟 `claude import`。此訊息表示快取的值已關閉。原因通常是以下之一:3141Claude Code 透過從 Anthropic 擷取並快取在磁碟上的功能旗標來開啟 `claude import`。此訊息表示快取的值為關閉。原因通常是下列之一:

3094 3142 

3095* 您自安裝以來尚未啟動工作階段,所以 Claude Code 尚未擷取旗標。第一個 `claude import` 即使該功能對您可用,也可能列印此訊息。3143* 您在安裝後尚未啟動過工作階段,因此 Claude Code 尚未擷取該旗標。即使您可以使用此功能,第一次執行 `claude import` 也可能印出此訊息。

3096* 您通過 Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 或 AWS 上的 Claude Platform,或通過[Claude 應用程式閘道](/docs/zh-TW/claude-apps-gateway#availability-and-limitations)使用 Claude Code。Claude Code 在這些工作階段中不擷取功能旗標,所以 `claude import` 保持不可用。3144* 您透過 Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 或 Claude Platform on AWS,或透過 [Claude apps 閘道](/docs/zh-TW/claude-apps-gateway#availability-and-limitations)使用 Claude Code。Claude Code 在這些工作階段中不會擷取功能旗標,因此 `claude import` 會一直無法使用。

3097* 您設定了 `DISABLE_TELEMETRY`、`DO_NOT_TRACK`、`DISABLE_GROWTHBOOK` 或 [`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](/docs/zh-TW/env-vars),它們關閉功能旗標擷取,所以 `claude import` 保持不可用。3145* 您設定了 `DISABLE_TELEMETRY`、`DO_NOT_TRACK`、`DISABLE_GROWTHBOOK` 或 [`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC`](/docs/zh-TW/env-vars),這些會關閉功能旗標擷取,因此 `claude import` 會一直無法使用。

3098 3146 

3099**該怎麼做:**3147**處理方式:**

3100 3148 

3101* 在新安裝上,啟動 `claude`,等待工作階段載入,結束,然後再次執行 `claude import`3149* 在全新安裝上,請啟動 `claude`,等待工作階段載入後結束,然後再次執行 `claude import`

3102* 在功能旗標擷取保持關閉的地方,自己設定設定:使用 [`claude mcp add`](/docs/zh-TW/mcp#installing-mcp-servers) 新增 MCP 伺服器,並建立您想要帶過去的 [`CLAUDE.md` 檔案](/docs/zh-TW/memory#how-claude-md-files-load)、[技能和命令](/docs/zh-TW/skills#where-skills-live)以及[子代理](/docs/zh-TW/sub-agents#choose-the-subagent-scope)。訊息也命名 `~/.claude/settings.json`。在 `claude import` 帶過去的設定中,該檔案只保存[權限模式](/docs/zh-TW/settings-reference#permission-settings);Claude Code 不從它讀取 MCP 伺服器。3150* 在功能旗標擷取保持關閉的情況下,請自行建立設定:以 [`claude mcp add`](/docs/zh-TW/mcp#installing-mcp-servers) 新增 MCP 伺服器,並建立您想要轉移的 [`CLAUDE.md` 檔案](/docs/zh-TW/memory#how-claude-md-files-load)、[skill 與命令](/docs/zh-TW/skills#where-skills-live),以及 [subagent](/docs/zh-TW/sub-agents#choose-the-subagent-scope)。訊息中也提到了 `~/.claude/settings.json`。在 `claude import` 所轉移的設定中,該檔案只包含[權限模式](/docs/zh-TW/settings-reference#permission-settings);Claude Code 不會從中讀取 MCP 伺服器。

3103 3151 

3104<h3 id="could-not-read-claude-code-config">3152<h3 id="could-not-read-claude-code-config">

3105 無法讀取 Claude Code 設定3153 無法讀取 Claude Code 設定

3106</h3>3154</h3>

3107 3155 

3108您在 Claude Code 無法解析 `~/.claude.json` 時執行了 [`claude import`](/docs/zh-TW/cli-reference#cli-commands),該檔案是它儲存您的登入和每個專案狀態的地方。子命令讀取該檔案以檢查可用性,但不顯示互動工作階段顯示的復原對話框,所以它以代碼 1 結束。在 v2.1.222 之前,具有不可讀設定檔的 `claude import` 啟動了互動工作階段,其復原對話框處理了該檔案。3156您在 Claude Code 無法剖析 `~/.claude.json` 時執行了 [`claude import`](/docs/zh-TW/cli-reference#cli-commands),該檔案儲存您的登入與各專案狀態。此子命令會讀取該檔案以檢查可用性,但不會顯示互動式工作階段所顯示的復原對話框,因此會以退出碼 1 結束。在 v2.1.222 之前,在設定檔無法讀取時執行 `claude import` 會啟動互動式工作階段,由其復原對話框處理該檔案。

3109 3157 

3110```text theme={null}3158```text theme={null}

3111Could not read Claude Code config — run `claude` with no arguments to recover it.3159Could not read Claude Code config — run `claude` with no arguments to recover it.

3112```3160```

3113 3161 

3114**該怎麼做:**3162**處理方式:**

3115 3163 

3116* 執行不帶引數的 `claude`。Claude Code 偵測無效檔案並提供重設它。然後再次執行 `claude import`。3164* 不帶任何引數執行 `claude`。Claude Code 會偵測到無效的檔案並提供重設選項。然後再次執行 `claude import`。

3117* 若要保留您所做的手動編輯,請在編輯器中修復 `~/.claude.json` 中的 JSON 語法,然後重新執行 `claude import`3165* 若要保留您手動進行的編輯,請改為在編輯器中修正 `~/.claude.json` 的 JSON 語法,然後重新執行 `claude import`

3118 3166 

3119<h3 id="could-not-import-a-server-from-claude-desktop">3167<h3 id="could-not-import-a-server-from-claude-desktop">

3120 無法從 Claude Desktop 匯入伺服器3168 無法從 Claude Desktop 匯入伺服器

3121</h3>3169</h3>

3122 3170 

3123Claude Code 無法新增您在 `claude mcp add-from-claude-desktop` 中選擇的其中一個伺服器。命令仍會匯入其他選定的伺服器,並為每個無法新增的伺服器列印一行。在 v2.1.205 之前,第一個失敗的伺服器停止了匯入。3171Claude Code 無法新增您在 `claude mcp add-from-claude-desktop` 中選取的其中一個伺服器。該命令仍會匯入其他選取的伺服器,並為每個無法新增的伺服器印出一行訊息。在 v2.1.205 之前,第一個失敗的伺服器會中止匯入。

3124 3172 

3125```text theme={null}3173```text theme={null}

3126Could not import my server: Invalid name my server. Names can only contain letters, numbers, hyphens, and underscores.3174Could not import my server: Invalid name my server. Names can only contain letters, numbers, hyphens, and underscores.

3127```3175```

3128 3176 

3129伺服器名稱後的文字是原因。最常見的是名稱檢查:Claude Desktop 允許伺服器名稱中的字元,例如空格和句號,而 `claude mcp` 限制為字母、數字、連字號和底線。其他原因包括無法通過驗證的伺服器設定和被您的組織[MCP 政策](/docs/zh-TW/managed-mcp)阻止的伺服器。3177伺服器名稱之後的文字就是原因。最常見的是名稱檢查:Claude Desktop 允許伺服器名稱中包含空格與句點等字元,而 `claude mcp` 將其限制為字母、數字、連字號與底線。其他原因包括伺服器設定未通過驗證,以及伺服器遭您組織的 [MCP 政策](/docs/zh-TW/managed-mcp)封鎖。

3130 3178 

3131**該怎麼做:**3179**處理方式:**

3132 3180 

3133* 在 `claude_desktop_config.json` 中重新命名伺服器以僅使用字母、數字、連字號和底線,然後再次執行 `claude mcp add-from-claude-desktop`3181* 將 `claude_desktop_config.json` 中的伺服器重新命名為僅使用字母、數字、連字號與底線,然後再次執行 `claude mcp add-from-claude-desktop`

3134* 使用有效名稱直接使用 `claude mcp add` 或 `claude mcp add-json` 新增該伺服器。請參閱[從 Claude Desktop 匯入 MCP 伺服器](/docs/zh-TW/mcp#import-mcp-servers-from-claude-desktop)。3182* 以有效的名稱透過 `claude mcp add` 或 `claude mcp add-json` 直接新增該伺服器。請參閱[從 Claude Desktop 匯入 MCP 伺服器](/docs/zh-TW/mcp#import-mcp-servers-from-claude-desktop)。

3135 3183 

3136<h3 id="cannot-add-mcp-server-to-the-managed-scope">3184<h3 id="cannot-add-mcp-server-to-the-managed-scope">

3137 無法將 MCP 伺服器新增到受管範圍3185 無法將 MCP 伺服器新增到 managed 範圍

3138</h3>3186</h3>

3139 3187 

3140您使用 `--scope managed` 執行了 `claude mcp add` 或 `claude mcp add-json`。該範圍保存您的組織通過 [`managedMcpServers`](/docs/zh-TW/settings-reference#managedmcpservers) 受管設定提供的伺服器。Claude Code 只從受管設定讀取它們,所以命令無法將伺服器寫入該範圍。3188您以 `--scope managed` 執行了 `claude mcp add` 或 `claude mcp add-json`。該範圍存放您組織透過 [`managedMcpServers`](/docs/zh-TW/settings-reference#managedmcpservers) 受管設定所提供的伺服器。Claude Code 只會從受管設定讀取這些伺服器,因此該命令無法將伺服器寫入該範圍。

3141 3189 

3142```text theme={null}3190```text theme={null}

3143Cannot add MCP server to scope: managed3191Cannot add MCP server to scope: managed

3144```3192```

3145 3193 

3146**該怎麼做:**3194**處理方式:**

3195 

3196* 將伺服器新增到您可寫入的範圍:`local`、`user` 或 `project`。未指定 `--scope` 時,該命令使用 `local`。請參閱 [MCP 安裝範圍](/docs/zh-TW/mcp#mcp-installation-scopes)

3197* 若要將伺服器提供給您組織中的每位使用者,請將其新增到您所部署之受管設定中的 [`managedMcpServers`](/docs/zh-TW/settings-reference#managedmcpservers)

3147 3198 

3148* 將伺服器新增到您可以寫入的範圍:`local`、`user` 或 `project`。不使用 `--scope` 時,命令使用 `local`。請參閱 [MCP 安裝範圍](/docs/zh-TW/mcp#mcp-installation-scopes)3199<h3 id="cannot-add-mcp-server-when-managed-settings-allow-only-plugin-servers">

3149* 若要為您的組織中的每個使用者提供伺服器,請將其新增到您部署的受管設定中的 [`managedMcpServers`](/docs/zh-TW/settings-reference#managedmcpservers)3200 受管設定僅允許外掛伺服器時無法新增 MCP 伺服器

3201</h3>

3202 

3203您在組織的受管設定將 [`strictPluginOnlyCustomization`](/docs/zh-TW/settings-reference#strictpluginonlycustomization) 設為 `true` 或設為包含 `mcp` 的清單時,執行了 `claude mcp add` 或 `claude mcp add-json`。在此設定下,Claude Code 不會從 `~/.claude.json` 或 `.mcp.json` 載入 MCP 伺服器,因此該命令會以退出碼 1 結束,而不會儲存一個永遠不會載入的伺服器:

3204 

3205```text theme={null}

3206Cannot add MCP server: your organization's managed settings allow only MCP servers that plugins provide. Install a plugin that provides this server, or ask your administrator to make it available.

3207```

3208 

3209`claude mcp add-from-claude-desktop` 會將您選取的每個伺服器回報為未匯入,並以此訊息作為原因。[`/import`](/docs/zh-TW/commands#all-commands) 會針對它嘗試新增的每個 MCP 伺服器回報此訊息,並仍會匯入它找到的其他項目。

3210 

3211在 v2.1.284 之前,這些命令會儲存伺服器並回報成功,但該伺服器從未載入。

3212 

3213**處理方式:**

3214 

3215* 安裝提供該伺服器的[外掛](/docs/zh-TW/plugins/install)

3216* 請您的管理員以[外掛](/docs/zh-TW/plugins/org)發佈該伺服器,或者若它是遠端 HTTP 或 SSE 伺服器,則透過 [`managedMcpServers`](/docs/zh-TW/settings-reference#managedmcpservers) 提供

3150 3217 

3151<h3 id="cant-read-mcp-json">3218<h3 id="cant-read-mcp-json">

3152 無法讀取 .mcp.json3219 無法讀取 .mcp.json

3153</h3>3220</h3>

3154 3221 

3155讀取專案 [`.mcp.json`](/docs/zh-TW/mcp#project-scope) 的命令,例如 `claude mcp add` 或 `claude mcp add-json` 搭配 `--scope project`,或 `claude mcp remove`,發現您目前目錄中的檔案不是常規檔案或大於 2 MiB,所以它以此錯誤結束而不是讀取檔案。3222讀取專案 [`.mcp.json`](/docs/zh-TW/mcp#project-scope) 的命令(例如搭配 `--scope project` 的 `claude mcp add` 或 `claude mcp add-json`,或 `claude mcp remove`)發現您目前目錄中的該檔案不是一般檔案,或大於 2 MiB,因此會以此錯誤結束,而不會讀取該檔案。

3156 3223 

3157```text theme={null}3224```text theme={null}

3158Can't read .mcp.json: it isn't a regular file or is larger than 2097152 bytes. Fix or remove it, then run the command again.3225Can't read .mcp.json: it isn't a regular file or is larger than 2097152 bytes. Fix or remove it, then run the command again.

3159```3226```

3160 3227 

3161在 v2.1.257 之前,`.mcp.json` 上的 FIFO 會讓命令無限期等待而沒有輸出,到 `/dev/zero` 等裝置檔案的符號連結會增加記憶體直到程序被殺死。3228在 v2.1.257 之前,位於 `.mcp.json` 的 FIFO 會讓命令永遠等待而沒有任何輸出,而指向 `/dev/zero` 等裝置檔案的符號連結會讓記憶體持續增長,直到程序被終止。

3162 3229 

3163**該怎麼做:**3230**處理方式:**

3164 3231 

3165* 檢查您目前目錄中 `.mcp.json` 上的內容。將其替換為 [project-scope 格式](/docs/zh-TW/mcp#project-scope)中的普通 JSON 檔案,或刪除它,然後再次執行命令。3232* 檢查您目前目錄中 `.mcp.json` 所在的內容。將其替換為採用[專案範圍格式](/docs/zh-TW/mcp#project-scope)的一般 JSON 檔案,或將其刪除,然後再次執行命令。

3166 3233 

3167<h3 id="mcp-server-was-not-saved-or-removed">3234<h3 id="mcp-server-was-not-saved-or-removed">

3168 MCP 伺服器未被保存或移除3235 MCP 伺服器未儲存或未移除

3169</h3>3236</h3>

3170 3237 

3171您為 `user` 或 `local` [範圍](/docs/zh-TW/mcp#mcp-installation-scopes)中的伺服器執行了 `claude mcp add`、`claude mcp add-json` 或 `claude mcp remove`。兩個範圍都儲存在 `~/.claude.json` 中,寫入後 Claude Code 讀取該檔案時變更不在其中。命令以此錯誤結束而不是其成功行。3238您針對 `user` 或 `local` [範圍](/docs/zh-TW/mcp#mcp-installation-scopes)中的伺服器執行了 `claude mcp add`、`claude mcp add-json` 或 `claude mcp remove`。這兩個範圍都儲存在 `~/.claude.json` 中,而 Claude Code 在寫入後讀回該檔案時,變更並不在檔案中。該命令會以此錯誤結束,而不是顯示其成功訊息。

3172 3239 

3173```text theme={null}3240```text theme={null}

3174MCP server "example" was not saved to /home/user/.claude.json. If that file is read-only or protected by a sandbox, make it writable or run the command outside the sandbox, then add the server again.3241MCP server "example" was not saved to /home/user/.claude.json. If that file is read-only or protected by a sandbox, make it writable or run the command outside the sandbox, then add the server again.

3175```3242```

3176 3243 

3177移除後,訊息讀取 `was not removed from` 並以 `then remove the server again` 結尾。對於 `local` 範圍伺服器,路徑後面跟著項目所屬的專案目錄,如 `(local scope for /path/to/project)`。3244移除後,訊息會顯示 `was not removed from`,並以 `then remove the server again` 結尾。對於 `local` 範圍的伺服器,路徑後面會接著該項目所屬的專案目錄,形式為 `(local scope for /path/to/project)`。

3178 3245 

3179在 v2.1.283 之前,`claude mcp add`、`claude mcp add-json` 和 `claude mcp remove` 即使變更未到達檔案也報告成功。3246在 v2.1.283 之前,即使變更未寫入檔案,`claude mcp add`、`claude mcp add-json` 與 `claude mcp remove` 也會回報成功。

3180 3247 

3181**該怎麼做:**3248**處理方式:**

3182 3249 

3183* 使訊息命名的檔案可寫,或在沙箱外執行命令,然後再次執行相同的新增或移除命令。3250* 讓訊息所指出的檔案變為可寫入,或在沙箱之外執行命令,然後再次執行相同的新增或移除命令。

3184 3251 

3185<h3 id="mcp-server-may-not-have-been-saved-or-removed">3252<h3 id="mcp-server-may-not-have-been-saved-or-removed">

3186 MCP 伺服器可能未被保存或移除3253 MCP 伺服器可能未儲存或未移除

3187</h3>3254</h3>

3188 3255 

3189您為 `user` 或 `local` [範圍](/docs/zh-TW/mcp#mcp-installation-scopes)中的伺服器執行了 `claude mcp add`、`claude mcp add-json` 或 `claude mcp remove`,Claude Code 無法讀取 `~/.claude.json` 回來確認變更。變更可能也可能不在磁碟上。括號中的文字是該讀取的錯誤。3256您針對 `user` 或 `local` [範圍](/docs/zh-TW/mcp#mcp-installation-scopes)中的伺服器執行了 `claude mcp add`、`claude mcp add-json` 或 `claude mcp remove`,而 Claude Code 無法讀回 `~/.claude.json` 以確認變更。該變更可能已寫入磁碟,也可能沒有。括號中的文字是該次讀取的錯誤。

3190 3257 

3191```text theme={null}3258```text theme={null}

3192MCP server "example" may not have been saved: /home/user/.claude.json could not be read to confirm the change (EACCES: permission denied, open '/home/user/.claude.json'). Run `claude mcp get example` to check, then add the server again if it is missing.3259MCP server "example" may not have been saved: /home/user/.claude.json could not be read to confirm the change (EACCES: permission denied, open '/home/user/.claude.json'). Run `claude mcp get example` to check, then add the server again if it is missing.

3193```3260```

3194 3261 

3195移除後,訊息讀取 `may not have been removed` 並以 `then remove the server again if it is still listed` 結尾。3262移除後,訊息會顯示 `may not have been removed`,並以 `then remove the server again if it is still listed` 結尾。

3196 3263 

3197在 v2.1.283 之前,命令即使無法確認變更也報告成功。3264在 v2.1.283 之前,即使無法確認變更,這些命令也會回報成功。

3198 3265 

3199**該怎麼做:**3266**處理方式:**

3200 3267 

3201* 執行 `claude mcp get <name>` 以檢查變更是否在磁碟上。對於 `local` 範圍伺服器,從伺服器所屬的專案目錄執行它,因為本地範圍是每個專案。3268* 執行 `claude mcp get <name>` 以檢查變更是否已寫入磁碟。對於 `local` 範圍的伺服器,請從該伺服器所屬的專案目錄執行,因為 local 範圍是以專案為單位。

3202* 如果伺服器在新增後遺失,或在移除後仍然列出,執行相同的新增或移除命令。3269* 如果新增後伺服器不存在,或移除後仍被列出,請再次執行相同的新增或移除命令。

3203 3270 

3204<h3 id="anthropic-hosted-and-doesnt-support-local-oauth">3271<h3 id="anthropic-hosted-and-doesnt-support-local-oauth">

3205 伺服器是 Anthropic 託管的,不支援本地 OAuth3272 伺服器由 Anthropic 託管,不支援本機 OAuth

3206</h3>3273</h3>

3207 3274 

3208您為 MCP 伺服器啟動了登入,其 URL 指向通過第三方身份提供者進行身份驗證的 Anthropic 託管連接器主機。這些主機包括 `microsoft365.mcp.claude.com`、`gmail.mcp.claude.com` 和 `gcal.mcp.claude.com`。Claude Code 拒絕為這些主機從 `/mcp` 面板和 `claude mcp login` 啟動其本地 OAuth 流程,因為[它們的登入僅通過 claude.ai 工作](/docs/zh-TW/mcp#use-mcp-servers-from-claude-ai)。3275您為一個 MCP 伺服器啟動了登入,而其 URL 指向透過第三方身分提供者進行身分驗證的 Anthropic 託管連接器主機。這些主機包括 `microsoft365.mcp.claude.com`、`gmail.mcp.claude.com` 與 `gcal.mcp.claude.com`。Claude Code 會拒絕從 `/mcp` 面板和 `claude mcp login` 為這些主機啟動其本機 OAuth 流程,因為[它們的登入只能透過 claude.ai 進行](/docs/zh-TW/mcp#use-mcp-servers-from-claude-ai)。

3209 3276 

3210```text theme={null}3277```text theme={null}

3211"gmail" is Anthropic-hosted and doesn't support local OAuth. Connect it via Settings → Connectors on claude.ai (requires `claude login`), then it'll be available here automatically.3278"gmail" is Anthropic-hosted and doesn't support local OAuth. Connect it via Settings → Connectors on claude.ai (requires `claude login`), then it'll be available here automatically.

3212```3279```

3213 3280 

3214**該怎麼做:**3281**處理方式:**

3215 3282 

3216* 使用 `claude mcp remove <name>` 移除您的項目,以便它無法隱藏相同 URL 上的 claude.ai 連接器3283* 以 `claude mcp remove <name>` 移除您的項目,使其不會遮蔽相同 URL 上的 claude.ai 連接器

3217* 移除後,在 [claude.ai/customize/connectors](https://claude.ai/customize/connectors) 連接服務,同時登入您在 Claude Code 中使用的帳戶。連接後,如果您的活躍身份驗證方法是 claude.ai 訂閱登入,[連接器會自動出現在 Claude Code 中](/docs/zh-TW/mcp#use-mcp-servers-from-claude-ai)3284* 移除之後,在登入您於 Claude Code 中使用的帳戶時,於 [claude.ai/customize/connectors](https://claude.ai/customize/connectors) 連接該服務。連接後,如果您目前的身分驗證方式是 claude.ai 訂閱登入,[該連接器會自動出現在 Claude Code 中](/docs/zh-TW/mcp#use-mcp-servers-from-claude-ai)

3218 3285 

3219<h3 id="server-rejected-the-authorization-header-minted-by-the-configured-headershelper">3286<h3 id="server-rejected-the-authorization-header-minted-by-the-configured-headershelper">

3220 伺服器拒絕了由設定的 headersHelper 鑄造的授權標頭3287 伺服器拒絕了所設定之 headersHelper 產生的 Authorization 標頭

3221</h3>3288</h3>

3222 3289 

3223其 [`headersHelper`](/docs/zh-TW/mcp#use-dynamic-headers-for-custom-authentication) 提供 `Authorization` 標頭的 MCP 伺服器以 HTTP 401 或 403 回答連線,所以 Claude Code 將連線報告為失敗。因為幫助程式提供 `Authorization` 標頭,Claude Code [不會回退到 OAuth](/docs/zh-TW/mcp#authenticate-with-remote-mcp-servers) 用於伺服器:3290一個由 [`headersHelper`](/docs/zh-TW/mcp#use-dynamic-headers-for-custom-authentication) 提供 `Authorization` 標頭的 MCP 伺服器以 HTTP 401 或 403 回應連線,因此 Claude Code 將連線回報為失敗。由於該輔助程式提供了 `Authorization` 標頭,Claude Code [不會改用 OAuth](/docs/zh-TW/mcp#authenticate-with-remote-mcp-servers) 連接該伺服器:

3224 3291 

3225```text theme={null}3292```text theme={null}

3226Server rejected the Authorization header minted by the configured headersHelper (HTTP 401). Check that the helper command returns a valid credential for this MCP endpoint — OAuth fallback is disabled when the helper supplies Authorization.3293Server rejected the Authorization header minted by the configured headersHelper (HTTP 401). Check that the helper command returns a valid credential for this MCP endpoint — OAuth fallback is disabled when the helper supplies Authorization.

3227```3294```

3228 3295 

3229Claude Code 在每次連線嘗試時重新執行幫助程式,所以在暫時拒絕(例如權杖輪換競賽)後重試可以使用新認證成功。3296Claude Code 會在每次嘗試連線時重新執行該輔助程式,因此在暫時性拒絕(例如 token 輪替競爭)之後重試,可能會以新的憑證成功。

3230 3297 

3231**該怎麼做:**3298**處理方式:**

3232 3299 

3233* 按照 Claude Code 執行它的方式自己執行 `headersHelper` 命令:從 [Claude Code 執行它的目錄](/docs/zh-TW/mcp#where-the-helper-runs),使用 [Claude Code 為它設定的環境變數](/docs/zh-TW/mcp#use-dynamic-headers-for-custom-authentication),以及沒有 [Claude Code 為來自專案 `.mcp.json`、外掛程式或專案代理檔案的伺服器移除的認證變數](/docs/zh-TW/mcp#which-variables-a-helper-can-read)。檢查它列印的 `Authorization` 值伺服器的端點接受3300* 以 Claude Code 執行它的方式自行執行 `headersHelper` 命令:從 [Claude Code 執行它的目錄](/docs/zh-TW/mcp#where-the-helper-runs)執行,帶有 [Claude Code 為其設定的環境變數](/docs/zh-TW/mcp#use-dynamic-headers-for-custom-authentication),並且對於來自專案 `.mcp.json`、外掛或專案 agent 檔案的伺服器,不包含 [Claude Code 會移除的憑證變數](/docs/zh-TW/mcp#which-variables-a-helper-can-read)。確認它印出的 `Authorization` 值能被伺服器的端點接受

3234* 修復幫助程式或其認證來源後,在 `/mcp` 中選擇伺服器並選擇**重新連線**3301* 修正輔助程式或其憑證來源之後,在 `/mcp` 中選取該伺服器並選擇 **Reconnect**

3235 3302 

3236在 v2.1.248 之前,Claude Code 為其幫助程式提供 `Authorization` 標頭的伺服器執行 OAuth 發現。該發現可能失敗並顯示 `Incompatible auth server: does not support dynamic client registration` 而不是報告被拒絕的認證。3303在 v2.1.248 之前,Claude Code 會對由輔助程式提供 `Authorization` 標頭的伺服器執行 OAuth 探索。該探索可能會以 `Incompatible auth server: does not support dynamic client registration` 失敗,而不是回報遭拒絕的憑證。

3237 3304 

3238<h3 id="mcp-permission-prompt-tool-not-found">3305<h3 id="mcp-permission-prompt-tool-not-found">

3239 找不到 MCP 權限提示工具3306 找不到 MCP 權限提示工具

3240</h3>3307</h3>

3241 3308 

3242您傳遞給 [`--permission-prompt-tool`](/docs/zh-TW/cli-reference#cli-flags) 的工具在執行首次需要權限決定時不在連接的 MCP 工具中,要麼因為其伺服器永遠沒有連接,要麼因為沒有連接的伺服器公開該名稱的工具。Claude Code 仍會傳送您的提示:[非互動](/docs/zh-TW/headless)執行在第一個工具呼叫時以此錯誤和結束代碼 1 結束,所以即使提出了請求,它也不會產生答案。在第一個提示之前,Claude Code 等待最多由 [`MCP_TIMEOUT`](/docs/zh-TW/env-vars) 設定的每個伺服器連線逾時 30 秒,以便該伺服器連接。在 v2.1.206 之前,啟動不會等待伺服器完成連接,所以啟動緩慢但健康的伺服器也會產生此錯誤。3309您傳給 [`--permission-prompt-tool`](/docs/zh-TW/cli-reference#cli-flags) 的工具,在執行首次需要權限決策時並不在已連線的 MCP 工具之中,原因可能是其伺服器從未連線,或沒有任何已連線的伺服器公開該名稱的工具。Claude Code 仍會送出您的提示詞:[非互動](/docs/zh-TW/headless)執行會在第一次工具呼叫時以此錯誤及退出碼 1 結束,因此即使請求已送出,也不會產生任何回答。在第一個提示詞之前,Claude Code 會等待該伺服器連線,最長等到由 [`MCP_TIMEOUT`](/docs/zh-TW/env-vars) 設定、每個伺服器 30 秒的連線逾時。在 v2.1.206 之前,啟動時不會等待伺服器完成連線,因此啟動緩慢但正常的伺服器也會產生此錯誤。

3243 3310 

3244```text theme={null}3311```text theme={null}

3245Error: MCP tool mcp__permissions__approve (passed via --permission-prompt-tool) not found. Available MCP tools: none3312Error: MCP tool mcp__permissions__approve (passed via --permission-prompt-tool) not found. Available MCP tools: none

3246```3313```

3247 3314 

3248`Available MCP tools:` 後的列表命名已連接的 MCP 工具。3315`Available MCP tools:` 之後的清單會列出已連線的 MCP 工具。

3249 3316 

3250**該怎麼做:**3317**處理方式:**

3251 3318 

3252* 檢查伺服器啟動並保持連接:在同一目錄中執行 `claude mcp list` 並確認伺服器列為已連接3319* 確認伺服器能啟動並保持連線:在相同目錄中執行 `claude mcp list`,並確認該伺服器被列為已連線

3253* 確認工具名稱與伺服器公開的 `mcp__<server>__<tool>` 名稱相符3320* 確認工具名稱與伺服器所公開的 `mcp__<server>__<tool>` 名稱相符

3254* 如果伺服器需要超過 30 秒才能啟動,請提高 [`MCP_TIMEOUT`](/docs/zh-TW/env-vars)3321* 如果伺服器需要超過 30 秒才能啟動,請調高 [`MCP_TIMEOUT`](/docs/zh-TW/env-vars)

3255 3322 

3256<h3 id="oauth-callback-port-is-already-in-use">3323<h3 id="oauth-callback-port-is-already-in-use">

3257 OAuth 回呼連接埠已在使用中3324 OAuth 回呼連接埠已被使用

3258</h3>3325</h3>

3259 3326 

3260當您使用 OAuth 登入遠端 MCP 伺服器時,Claude Code 啟動本地監聽器以接收登入回呼。如果該監聽器需要的連接埠被另一個程序持有,登入會失敗並顯示此訊息。這主要發生在通過 [`MCP_OAUTH_CALLBACK_PORT`](/docs/zh-TW/env-vars) 變數或 `--callback-port` 設定的[固定回呼連接埠](/docs/zh-TW/mcp#use-a-fixed-oauth-callback-port)上,因為沒有一個 Claude Code 會選擇可用的連接埠。3327當您以 OAuth 登入遠端 MCP 伺服器時,Claude Code 會啟動一個本機監聽器來接收登入回呼。如果該監聽器所需的連接埠被其他程序佔用,登入就會以此訊息失敗。這主要發生在透過 [`MCP_OAUTH_CALLBACK_PORT`](/docs/zh-TW/env-vars) 變數或 `--callback-port` 設定了[固定回呼連接埠](/docs/zh-TW/mcp#use-a-fixed-oauth-callback-port)的情況,因為若未設定,Claude Code 會挑選一個可用的連接埠。

3261 3328 

3262```text theme={null}3329```text theme={null}

3263OAuth callback port <port> is already in use — another process may be holding it. Run `lsof -ti:<port> -sTCP:LISTEN` to find it.3330OAuth callback port <port> is already in use — another process may be holding it. Run `lsof -ti:<port> -sTCP:LISTEN` to find it.

3264```3331```

3265 3332 

3266在 Windows 上,建議的命令是 `netstat -ano | findstr :<port>`。3333在 Windows 上,建議的命令則是 `netstat -ano | findstr :<port>`。

3267 3334 

3268**該怎麼做:**3335**處理方式:**

3269 3336 

3270* 執行訊息中的命令以找到持有連接埠的程序,並停止它或等待它完成3337* 執行訊息中的命令以找出佔用該連接埠的程序,並停止它或等待它結束

3271* 如果另一個程式永久需要該連接埠,請向伺服器註冊不同的重新導向 URI,並使用 `MCP_OAUTH_CALLBACK_PORT` 或 `--callback-port` 設定其連接埠,以您使用的為準3338* 如果其他程式需要永久使用該連接埠,請向伺服器註冊不同的重新導向 URI,並以 `MCP_OAUTH_CALLBACK_PORT` 或 `--callback-port`(視您使用哪一個)設定其連接埠

3272* 然後再次啟動登入,例如在 `/mcp` 中選擇伺服器3339* 然後再次啟動登入,例如在 `/mcp` 中選取該伺服器

3273 3340 

3274<h3 id="no-available-ports-for-oauth-redirect">3341<h3 id="no-available-ports-for-oauth-redirect">

3275 沒有可用的 OAuth 重新導向連接埠3342 沒有可用於 OAuth 重新導向的連接埠

3276</h3>3343</h3>

3277 3344 

3278當您使用 [OAuth](/docs/zh-TW/mcp#authenticate-with-remote-mcp-servers) 登入遠端 MCP 伺服器時,Claude Code 啟動本地監聽器以接收登入回呼。當 Claude Code 無法為其繫結本地連接埠時,登入失敗並顯示此訊息。機器上的某些內容阻止它在 `127.0.0.1` 上監聽,例如安全軟體或拒絕本地監聽器的沙箱政策。3345當您以 [OAuth](/docs/zh-TW/mcp#authenticate-with-remote-mcp-servers) 登入遠端 MCP 伺服器時,Claude Code 會啟動一個本機監聽器來接收登入回呼。當 Claude Code 無法為其綁定本機連接埠時,登入就會以此訊息失敗。機器上有某些東西阻止它在 `127.0.0.1` 上監聽,例如安全軟體或拒絕本機監聽器的沙箱政策。

3279 3346 

3280```text theme={null}3347```text theme={null}

3281No available ports for OAuth redirect3348No available ports for OAuth redirect

3282```3349```

3283 3350 

3284在 v2.1.268 之前,Claude Code 不會回退到作業系統指派的連接埠,所以訊息也會在只有其自我選擇的連接埠無法繫結時出現。這可能發生在 Hyper-V 保留涵蓋 Claude Code 選擇的連接埠的連接埠範圍的 Windows 主機上。3351在 v2.1.268 之前,Claude Code 不會改用作業系統指派的連接埠,因此當只有它自行挑選的連接埠無法綁定時,也會出現此訊息。這可能發生在 Windows 主機上,因為 Hyper-V 會保留涵蓋 Claude Code 挑選範圍的連接埠區段。

3285 3352 

3286**該怎麼做:**3353**處理方式:**

3287 3354 

3288* 檢查安全軟體或沙箱政策是否阻止程序在 `127.0.0.1` 上監聽,並允許 Claude Code 繫結本地連接埠3355* 檢查是否有安全軟體或沙箱政策阻擋程序在 `127.0.0.1` 上監聽,並允許 Claude Code 綁定本機連接埠

3289* 然後再次啟動登入,例如在 `/mcp` 中選擇伺服器3356* 然後再次啟動登入,例如在 `/mcp` 中選取該伺服器

3290 3357 

3291<h3 id="security-review-fails-without-origin-head">3358<h3 id="security-review-fails-without-origin-head">

3292 /security-review 在沒有 origin/HEAD 的情況下失敗3359 /security-review 因缺少 origin/HEAD 而失敗

3293</h3>3360</h3>

3294 3361 

3295[`/security-review`](/docs/zh-TW/commands#all-commands) 通過針對 `origin/HEAD` 進行差異來建立其審查內容,該本地參考記錄您的 `origin` 遠端上哪個分支是預設的。當該參考不存在時,收集差異的 git 命令失敗,審查在啟動前停止。3362[`/security-review`](/docs/zh-TW/commands#all-commands) 會將您的分支與 `origin/HEAD` 比較差異來建立其審查脈絡,`origin/HEAD` 是記錄您 `origin` 遠端預設分支為何的本機 ref。當該 ref 不存在時,用來收集差異的 git 命令會失敗,審查在開始之前就會停止。

3296 3363 

3297```text theme={null}3364```text theme={null}

3298Error: Shell command failed for pattern "!`git diff --name-only origin/HEAD...`": [stderr]3365Error: Shell command failed for pattern "!`git diff --name-only origin/HEAD...`": [stderr]


3301'git <command> [<revision>...] -- [<file>...]'3368'git <command> [<revision>...] -- [<file>...]'

3302```3369```

3303 3370 

3304訊息可能引用 `git log` 或不同的 `git diff`。Git 只在遠端公告預設分支且您的擷取 refspec 涵蓋它時建立 `origin/HEAD`,完整的遠端 `git clone` 帶有提交會執行此操作。該參考在這些設定中遺失:3371訊息中引用的也可能是 `git log` 或其他 `git diff`。只有在遠端公告了預設分支,且您的 fetch refspec 涵蓋該分支時,Git 才會建立 `origin/HEAD`;對有提交的遠端執行完整的 `git clone` 就會如此。在下列設定中,該 ref 會缺失:

3305 3372 

3306* 單分支或 CI 檢出,擷取太窄的 refspec3373* 單一分支或 CI 檢出,其擷取的 refspec 範圍太窄

3307* 伺服器端 HEAD 指向沒有人推送的分支的遠端3374* 伺服器端 HEAD 指向一個沒人推送過之分支的遠端

3308* 沒有 `origin` 遠端的儲存庫,或您從未擷取的儲存庫3375* 沒有 `origin` 遠端的儲存庫,或您從未擷取過的遠端

3309 3376 

3310Claude Code 為任何[注入動態內容](/docs/zh-TW/skills#when-an-injected-command-fails)的技能顯示相同的錯誤,失敗的注入命令會中止該技能的呼叫。兩個同級字串在命令執行之前就會觸發:3377對於任何[注入動態脈絡](/docs/zh-TW/skills#when-an-injected-command-fails)的 skill,Claude Code 都會顯示相同的錯誤,而注入的命令失敗會中止該 skill 的呼叫。另有兩個相關字串會在命令執行之前就出現:

3311 3378 

3312* `Shell command permission check failed for pattern "..."`:命令的權限檢查不允許它。[注入命令的權限檢查](/docs/zh-TW/skills#permission-checks-on-injected-commands)涵蓋每個權限模式中哪些結果中止以及如何使用 `allowed-tools` 預先核准命令3379* `Shell command permission check failed for pattern "..."`:該命令的權限檢查不允許它。[注入命令的權限檢查](/docs/zh-TW/skills#permission-checks-on-injected-commands)說明了在各權限模式下哪些結果會中止,以及如何以 `allowed-tools` 預先核准命令

3313* ``Skill <name> requires bash (`shell: bash` in frontmatter) but Git Bash was not found``:技能的 frontmatter 在沒有它的機器上要求 bash。安裝 Git for Windows 或將 frontmatter 變更為 `shell: powershell`。請參閱[注入命令如何執行](/docs/zh-TW/skills#how-injected-commands-run)3380* ``Skill <name> requires bash (`shell: bash` in frontmatter) but Git Bash was not found``:該 skill 的 frontmatter 要求在沒有 bash 的機器上使用 bash。請安裝 Git for Windows,或將 frontmatter 改為 `shell: powershell`。請參閱[注入命令的執行方式](/docs/zh-TW/skills#how-injected-commands-run)

3314 3381 

3315**該怎麼做:**3382**處理方式:**

3316 3383 

3317* 通過命名您的遠端預設分支建立參考:`git remote set-head origin <default-branch>`。只要本地追蹤參考 `origin/<default-branch>` 存在,這就有效。如果不存在,如在單分支複製中,首先擷取分支:執行 `git remote set-branches --add origin <branch>`,然後 `git fetch origin`,然後重新執行 set-head 命令。重新執行 `/security-review`。3384* 指定您遠端的預設分支來建立該 ref:`git remote set-head origin <default-branch>`。只要本機追蹤 ref `origin/<default-branch>` 存在,此方法就有效。如果它不存在(例如在單一分支複製中),請先擷取該分支:執行 `git remote set-branches --add origin <branch>`,接著執行 `git fetch origin`,然後重新執行 set-head 命令。再重新執行 `/security-review`。

3318* 如果您寧願不命名分支,執行 `git fetch origin`,然後 `git remote set-head origin --auto`,它詢問遠端其預設分支是什麼。當遠端不公告預設分支時它失敗並顯示 `error: Cannot determine remote HEAD`,因為它是空的或其 HEAD 指向沒有人推送的分支;改為明確命名分支。當您的複製不擷取該分支時它失敗並顯示 `error: Not a valid ref`;首先如上所述擴大 refspec。3385* 如果您不想指定分支名稱,請執行 `git fetch origin`,然後執行 `git remote set-head origin --auto`,它會詢問遠端其預設分支為何。當遠端未公告預設分支(因為它是空的,或其 HEAD 指向一個沒人推送過的分支)時,它會以 `error: Cannot determine remote HEAD` 失敗;此時請明確指定分支。當您的複製不會擷取該分支時,它會以 `error: Not a valid ref` 失敗;請先依上述方式擴大 refspec。

3319* 如果儲存庫沒有遠端,使用 `git remote add origin <url>` 新增一個並在建立參考之前擷取。如果遠端是空的,首先使用 `git push -u origin HEAD` 推送您的分支,並在 set-head 命令中命名該分支;`origin/HEAD` 然後指向您剛推送的分支,所以 `/security-review` 看到空差異直到分支與它分歧。3386* 如果儲存庫沒有遠端,請以 `git remote add origin <url>` 新增一個,並在建立 ref 之前先擷取。如果遠端是空的,請先以 `git push -u origin HEAD` 推送您的分支,並在 set-head 命令中指定該分支;`origin/HEAD` 隨後會指向您剛推送的分支,因此在分支與其分歧之前,`/security-review` 看到的會是空的差異。

3320 3387 

3321<h3 id="input-must-be-provided-when-using-print">3388<h3 id="input-must-be-provided-when-using-print">

3322 使用 --print 時必須提供輸入3389 使用 `--print` 時必須提供輸入

3323</h3>3390</h3>

3324 3391 

3325裸 `claude` 需要 stdout 是終端才能啟動互動 UI。當 stdout 被重新導向,或控制台不是真實終端時,例如 PowerShell ISE 和某些 IDE 輸出窗格,`claude` 改為以[非互動](/docs/zh-TW/headless)模式執行。這與 `claude -p` 相同,它需要提示,所以訊息命名 `--print` 即使您沒有傳遞旗標。在任何地方傳遞 `-p`/`--print` 而沒有提示且 stdin 上沒有任何管道會產生相同的錯誤。3392單純執行 `claude` 時,stdout 必須是終端機才能啟動互動式 UI。當 stdout 被重新導向,或主控台不是真正的終端機(例如 PowerShell ISE 和某些 IDE 輸出窗格)時,`claude` 會改以[非互動方式](/docs/zh-TW/headless)執行。這與 `claude -p` 是相同的模式,而該模式需要提示詞,因此即使您沒有傳入該旗標,訊息也會提到 `--print`。在任何地方傳入 `-p`/`--print` 卻未提供提示詞,且 stdin 也沒有透過管線傳入任何內容,都會產生相同的錯誤。

3326 3393 

3327```text theme={null}3394```text theme={null}

3328Error: Input must be provided either through stdin or as a prompt argument when using --print3395Error: Input must be provided either through stdin or as a prompt argument when using --print

3329```3396```

3330 3397 

3331**該怎麼做:**3398**處理方式:**

3332 3399 

3333* 對於互動使用,在真實終端中執行 `claude`:Windows Terminal 或 PowerShell 控制台而不是 ISE,以及您的 IDE 整合終端而不是輸出窗格3400* 若要互動使用,請在真正的終端機中執行 `claude`:使用 Windows Terminal 或 PowerShell 主控台而非 ISE,並使用 IDE 的整合式終端機而非輸出窗格

3334* 對於一次性使用,傳遞提示:`claude -p "your question"`,或使用 `echo "your question" | claude -p` 管道它3401* 若要單次使用,請傳入提示詞:`claude -p "your question"`,或以 `echo "your question" | claude -p` 透過管線傳入

3335 3402 

3336<h3 id="input-contained-only-whitespace">3403<h3 id="input-contained-only-whitespace">

3337 輸入僅包含空白3404 輸入僅包含空白字元

3338</h3>3405</h3>

3339 3406 

3340在[非互動模式](/docs/zh-TW/headless)中,Claude Code 拒絕完全由空格、製表符或換行符組成的提示,而不是傳送它,因為 API 拒絕沒有可見文字的訊息。您看到的訊息取決於空白提示來自何處:3407在[非互動模式](/docs/zh-TW/headless)中,Claude Code 會拒絕完全由空格、Tab 或換行組成的提示詞,而不會送出它,因為 API 會拒絕沒有可見文字的訊息。您看到的訊息取決於空白提示詞的來源:

3341 3408 

3342* **`claude -p` 的提示引數或管道 stdin**:`claude` 以 `Error: Input contained only whitespace. Provide a prompt with text through stdin or as a prompt argument when using --print` 結束3409* **`claude -p` 的提示詞引數或透過管線傳入的 stdin**:`claude` 會以 `Error: Input contained only whitespace. Provide a prompt with text through stdin or as a prompt argument when using --print` 結束

3343* **提交給執行中的 `--input-format stream-json` 或 [Agent SDK](/docs/zh-TW/agent-sdk/overview) 工作階段的訊息**:Claude Code 在不呼叫模型的情況下結束轉向,工作階段保持可用。拒絕作為資訊訊息和轉向的結果文字到達:`Blank prompt — the message was only whitespace, so nothing was sent to the model.`3410* **送到執行中之 `--input-format stream-json` 或 [Agent SDK](/docs/zh-TW/agent-sdk/overview) 工作階段的訊息**:Claude Code 會在不呼叫模型的情況下結束該回合,工作階段仍可繼續使用。拒絕會以資訊訊息的形式送達,同時也作為該回合的結果文字:`Blank prompt — the message was only whitespace, so nothing was sent to the model.`

3344 3411 

3345在 v2.1.229 之前,Claude Code 將僅空白訊息傳送到 API,API 以 400 錯誤拒絕了請求。3412在 v2.1.229 之前,Claude Code 會將僅含空白字元的訊息送到 API,而 API 會以 400 錯誤拒絕該請求。

3346 3413 

3347**該怎麼做:**3414**處理方式:**

3348 3415 

3349* 在提示中包含可見文字。如果指令碼從變數或檔案建立提示,請在呼叫 Claude Code 之前檢查來源是否不為空。3416* 在提示詞中包含可見文字。如果腳本是從變數或檔案建立提示詞,請在呼叫 Claude Code 之前確認來源不是空的。

3350 3417 

3351<h3 id="stream-json-input-carried-over-256m-characters-with-no-newline">3418<h3 id="stream-json-input-carried-over-256m-characters-with-no-newline">

3352 stream-json 輸入在沒有換行符的情況下超過 256M 個字元3419 stream-json 輸入傳送了超過 256M 個字元且沒有換行

3353</h3>3420</h3>

3354 3421 

3355您的程式在沒有換行符的情況下在 stdin 上傳送了超過 268,435,456 個字元到 `claude -p --input-format stream-json` 執行,所以 Claude Code 將此錯誤列印到 stderr 並以代碼 1 結束而不是緩衝更多輸入。訊息將該預算陳述為 `256M`。在 v2.1.257 之前,Claude Code 無限制地緩衝此類輸入,增加記憶體直到程序崩潰或被殺死。3422您的程式向 `claude -p --input-format stream-json` 執行的 stdin 傳送了超過 268,435,456 個字元而沒有換行,因此 Claude Code 會將此錯誤印到 stderr 並以退出碼 1 結束,而不會緩衝更多輸入。訊息中將該上限表示為 `256M`。在 v2.1.257 之前,Claude Code 會無限制地緩衝這類輸入,使記憶體持續增長,直到程序當機或被終止。

3356 3423 

3357```text theme={null}3424```text theme={null}

3358Error: stream-json input carried over 256M characters with no newline. Each stream-json message must be a single newline-terminated JSON line: either the producer is not newline-terminating its messages, or one message exceeded this budget.3425Error: stream-json input carried over 256M characters with no newline. Each stream-json message must be a single newline-terminated JSON line: either the producer is not newline-terminating its messages, or one message exceeded this budget.

3359```3426```

3360 3427 

3361沒有換行符的此長度輸入通常表示生產者根本不是 stream-json 生產者,例如二進位檔案或意外管道的純日誌輸出。超過預算的單個訊息失敗相同的檢查。3428這麼長而沒有換行的輸入,通常表示產生者根本不是 stream-json 產生者,例如不小心透過管線傳入的二進位檔案或純文字日誌輸出。單一訊息超過上限也會無法通過相同的檢查。

3362 3429 

3363**該怎麼做:**3430**處理方式:**

3364 3431 

3365* 檢查什麼被管道到 stdin。使用 [`--input-format stream-json`](/docs/zh-TW/cli-reference#cli-flags),每個訊息必須是一個換行符終止的 JSON 行3432* 檢查透過管線傳入 stdin 的內容。使用 [`--input-format stream-json`](/docs/zh-TW/cli-reference#cli-flags) 時,每則訊息都必須是一行以換行結尾的 JSON

3366* 若要改為傳送純文字,請移除 `--input-format stream-json`;`claude -p` 預設從 stdin 讀取純文字提示3433* 若要改為傳送純文字,請移除 `--input-format stream-json`;`claude -p` 預設會從 stdin 讀取純文字提示詞

3367 3434 

3368<h3 id="unknown-command">3435<h3 id="unknown-command">

3369 未知命令3436 Unknown command

3370</h3>3437</h3>

3371 3438 

3372在互動終端工作階段中,您提交了一個 `/` 名稱,該名稱與此工作階段中的任何命令都不符,所以 Claude Code 報告該名稱而不是執行任何操作:3439在互動式終端機工作階段中,您送出了一個不符合此工作階段中任何命令的 `/` 名稱,因此 Claude Code 會回報該名稱,而不會執行任何動作:

3373 3440 

3374```text theme={null}3441```text theme={null}

3375Unknown command: /hepl. Did you mean /help?3442Unknown command: /hepl. Did you mean /help?

3376```3443```

3377 3444 

3378Claude Code 建議此工作階段中菜單列出的最接近的命令名稱或別名。當沒有接近的時,訊息在名稱後結束。原因通常是以下之一:3445Claude Code 會建議選單在此工作階段中列出的最接近的命令名稱或別名。當沒有相近的名稱時,訊息會在名稱之後結束。原因通常是下列之一:

3379 3446 

3380* 打字錯誤,例如 `/hepl` 代替 `/help`。[命令菜單如何匹配您輸入的內容](/docs/zh-TW/commands#how-the-command-menu-matches-what-you-type)涵蓋在提交前選擇接近的匹配3447* 打字錯誤,例如將 `/help` 打成 `/hepl`。[命令選單如何比對您輸入的內容](/docs/zh-TW/commands#how-the-command-menu-matches-what-you-type)說明了如何在送出前挑選相近的比對結果

3381* 存在但在此工作階段中不可用的命令,因為不符合要求,例如您的平台、計畫或身份驗證方法。[`/web-setup`](/docs/zh-TW/web-quickstart#web-setup-shows-no-commands-match-or-unknown-command) 和 [`/schedule`](/docs/zh-TW/routines#schedule-returns-unknown-command) 的故障排除項目演練兩個常見情況。某些命令在您的組織政策停用它們時會回答自己的訊息,例如 [`Cloud sessions are disabled by your organization's policy`](#cloud-sessions-are-disabled-by-your-organizations-policy)3448* 命令存在,但因為未滿足某項需求(例如您的平台、方案或身分驗證方式)而在此工作階段中無法使用。[`/web-setup`](/docs/zh-TW/web-quickstart#web-setup-shows-no-commands-match-or-unknown-command) 與 [`/schedule`](/docs/zh-TW/routines#schedule-returns-unknown-command) 的疑難排解項目逐步說明了兩種常見情況。某些命令在您組織的政策停用它們時,會以自己的訊息回應,例如 [`Cloud sessions are disabled by your organization's policy`](#cloud-sessions-are-disabled-by-your-organizations-policy)

3382* 來自此工作階段中未安裝或未連接的[外掛程式](/docs/zh-TW/plugins/overview)或 [MCP 伺服器](/docs/zh-TW/mcp#use-mcp-prompts-as-commands)的命令3449* 來自未在此工作階段中安裝或連線之[外掛](/docs/zh-TW/plugins/overview)或 [MCP 伺服器](/docs/zh-TW/mcp#use-mcp-prompts-as-commands)的命令

3383 3450 

3384Claude Code 只在互動終端工作階段中以這種方式回答不符合的 `/` 名稱。在每個其他工作階段中,它改為將提示作為普通訊息傳送給 Claude,並附註命令未執行以及 Claude 可以在工作階段中執行的命令列表。這些工作階段包括:3451Claude Code 只在互動式終端機工作階段中以這種方式回應不相符的 `/` 名稱。在其他所有工作階段中,它會改將提示詞當成一般訊息送給 Claude,並附上命令未執行的說明,以及 Claude 在該工作階段中可執行的命令清單。這些工作階段包括:

3385 3452 

3386* `-p` 執行3453* `-p` 執行

3387* [Agent SDK](/docs/zh-TW/agent-sdk/overview) 應用程式3454* [Agent SDK](/docs/zh-TW/agent-sdk/overview) 應用程式

3388* [Desktop 應用程式](/docs/zh-TW/desktop)的代碼標籤3455* [Desktop 應用程式](/docs/zh-TW/desktop)的 Code 分頁

3389* [VS Code 擴充功能](/docs/zh-TW/vs-code)的聊天面板3456* [VS Code 擴充功能](/docs/zh-TW/vs-code)的聊天面板

3390* [雲端工作階段](/docs/zh-TW/claude-code-on-the-web)和[例行程序](/docs/zh-TW/routines)3457* [雲端工作階段](/docs/zh-TW/claude-code-on-the-web)與 [routine](/docs/zh-TW/routines)

3391 3458 

3392對於無法在其中一個工作階段中執行的內建命令,Claude Code 仍會回答該命令不可用,而不是將其傳送給 Claude。在 v2.1.274 之前,只有雲端工作階段和例行程序將不符合的名稱傳送給 Claude。在 v2.1.273 之前,它們也回答 `Unknown command`。3459對於無法在上述工作階段之一中執行的內建命令,Claude Code 仍會回應該命令無法使用,而不會將其送給 Claude。在 v2.1.274 之前,只有雲端工作階段與 routine 會將不相符的名稱送給 Claude。在 v2.1.273 之前,它們也會回應 `Unknown command`。

3393 3460 

3394Claude Code 不會將每個以 `/` 開頭的提示視為命令。當 `/` 後的第一個單詞以標點符號開頭時,它會將提示作為普通訊息傳送給 Claude,例如開啟 Lean 文件註釋的 `/--`,或是路徑,例如 `/var/log/syslog`。3461Claude Code 不會將每個以 `/` 開頭的提示詞都視為命令。當 `/` 之後的第一個單字以標點符號開頭(例如開啟 Lean 文件註解的 `/--`),或是 `/var/log/syslog` 之類的路徑時,它會將提示詞當成一般訊息送給 Claude。

3395 3462 

3396在 v2.1.236 之前,如果您在命令菜單列出您輸入的名稱的接近匹配時按 Enter,Claude Code 會執行該匹配,所以 `/hepl` 之類的打字錯誤會執行 `/help` 而不是產生此訊息。3463在 v2.1.236 之前,如果您在命令選單列出與您輸入名稱相近的比對結果時按下 `Enter`,Claude Code 會執行該比對結果,因此像 `/hepl` 這樣的打字錯誤會執行 `/help`,而不是產生此訊息。

3397 3464 

3398**該怎麼做:**3465**處理方式:**

3399 3466 

3400* 執行建議的名稱,或輸入 `/` 後跟名稱的一部分以查看此工作階段中可用的內容3467* 執行建議的名稱,或輸入 `/` 加上名稱的一部分,以查看此工作階段中可用的命令

3401* 如果 Claude Code 將記錄的命令報告為未知,請檢查[命令參考](/docs/zh-TW/commands)中的其行以了解它命名的要求3468* 如果 Claude Code 將文件中記載的命令回報為未知,請查看[命令參考](/docs/zh-TW/commands)中該命令的列,了解它所列出的需求

3402 3469 

3403<h3 id="diff-is-too-large-for-ultrareview">3470<h3 id="diff-is-too-large-for-ultrareview">

3404 差異對於 ultrareview 來說太大3471 差異過大,無法進行 ultrareview

3405</h3>3472</h3>

3406 3473 

3407您的分支與基礎分支之間的差異,包括未提交和暫存的變更,超過了 [ultrareview](/docs/zh-TW/ultrareview) 的大小限制,所以 `/code-review ultra` 和 `claude ultrareview` 子命令在雲端工作階段啟動之前拒絕審查。被拒絕的審查不使用免費執行,也不計費使用額度。訊息命名有效的限制、您的差異大小以及貢獻最多變更行的檔案。在 v2.1.216 之前,訊息只顯示原始差異統計。3474您的分支與基底分支之間的差異(包括未提交與已暫存的變更)超過了 [ultrareview](/docs/zh-TW/ultrareview) 的大小限制,因此 `/code-review ultra` 與 `claude ultrareview` 子命令會在雲端工作階段啟動前拒絕審查。被拒絕的審查不會使用免費執行次數,也不會計費用量點數。訊息會列出生效中的限制、您差異的大小,以及貢獻最多變更行數的檔案。在 v2.1.216 之前,訊息只會顯示原始的差異統計。

3408 3475 

3409```text theme={null}3476```text theme={null}

3410Diff is too large for ultrareview: 812 files, 96,410 lines changed (limits: 500 files, 8,000 lines). Largest files: package-lock.json (41,904 lines), dist/bundle.js (18,210 lines), src/generated/api.ts (9,876 lines). Pass a closer base branch (`/code-review ultra <branch>`) to narrow the scope, or split the change.3477Diff is too large for ultrareview: 812 files, 96,410 lines changed (limits: 500 files, 8,000 lines). Largest files: package-lock.json (41,904 lines), dist/bundle.js (18,210 lines), src/generated/api.ts (9,876 lines). Pass a closer base branch (`/code-review ultra <branch>`) to narrow the scope, or split the change.

3411```3478```

3412 3479 

3413審查拉取請求應用相同的限制;該形式的訊息以 `PR #<N> is too large for ultrareview` 開頭,並命名 PR 的檔案和行計數。3480審查 pull request 時也適用相同的限制;該形式的訊息以 `PR #<N> is too large for ultrareview` 開頭,並列出該 PR 的檔案數與行數。

3414 3481 

3415**該怎麼做:**3482**處理方式:**

3416 3483 

3417* 傳遞更接近您工作的基礎分支,例如 `/code-review ultra develop`,以便審查僅涵蓋針對該分支的差異3484* 傳入更接近您工作內容的基底分支,例如 `/code-review ultra develop`,讓審查只涵蓋與該分支之間的差異

3418* 將變更分成較小的分支並審查每一個。訊息命名的檔案貢獻最多變更行,所以首先開始將這些移到它們自己的分支。3485* 將變更拆分為較小的分支並分別審查。訊息列出的檔案貢獻了最多的變更行數,因此請先將這些檔案移到獨立的分支。

3419 3486 

3420<h3 id="could-not-find-merge-base-with-the-base-branch">3487<h3 id="could-not-find-merge-base-with-the-base-branch">

3421 無法找到與基礎分支的合併基礎3488 找不到與基底分支的 merge-base

3422</h3>3489</h3>

3423 3490 

3424`/code-review ultra` 和 `claude ultrareview` 子命令審查您的分支與基礎分支之間的差異,這需要兩者共享的提交。當 `git merge-base` 找不到時,Claude Code 在雲端工作階段啟動之前拒絕審查。在 Claude Code 可以驗證完整的複製上,至少有一個分支,它改為[審查每個追蹤的檔案](/docs/zh-TW/ultrareview#diff-limits-and-fallbacks)而不是拒絕。當基礎分支根本找不到時,當 Claude Code 無法驗證您的複製是否完整時,或在罕見的儲存庫中(其中整個樹差異不可能),例如 SHA-256 物件格式,您會看到此拒絕。3491`/code-review ultra` 與 `claude ultrareview` 子命令會審查您的分支與基底分支之間的差異,這需要兩者共有的一個提交。當 `git merge-base` 找不到任何共同提交時,Claude Code 會在雲端工作階段啟動前拒絕審查。在 Claude Code 能驗證為完整、且至少有一個分支的複製上,它會改為[審查每個受追蹤的檔案](/docs/zh-TW/ultrareview#diff-limits-and-fallbacks),而不是拒絕。當完全找不到基底分支、Claude Code 無法驗證您的複製是否完整,或在少數無法進行整棵樹差異的儲存庫中(例如 SHA-256 物件格式),您會看到此拒絕訊息。

3425 3492 

3426```text theme={null}3493```text theme={null}

3427Could not find merge-base with main. Pass the base branch explicitly (e.g. `/code-review ultra develop`) or make sure you're in a git repo with a main branch.3494Could not find merge-base with main. Pass the base branch explicitly (e.g. `/code-review ultra develop`) or make sure you're in a git repo with a main branch.

3428```3495```

3429 3496 

3430第一句後的提示取決於 Claude Code 觀察到的內容:3497第一句之後的提示取決於 Claude Code 觀察到的情況:

3431 3498 

3432* **您沒有傳遞基礎分支**:Claude Code 與儲存庫的預設分支進行了比較,並建議明確傳遞您的基礎,如上例所示3499* **您沒有傳入基底分支**:Claude Code 與儲存庫的預設分支比較,並建議您明確傳入基底分支,如上例所示

3433* **您傳遞的基礎分支已在您的複製中**:提示讀取 ``Make sure <branch> exists locally or on origin (try `git fetch origin <branch>`)``3500* **您傳入的基底分支原本就在您的複製中**:提示為 ``Make sure <branch> exists locally or on origin (try `git fetch origin <branch>`)``

3434* **您傳遞的基礎分支不在您的複製中**:Claude Code 在比較前從 origin 擷取了它。提示讀取 ``<branch> was fetched from origin but shares no history with HEAD. If another branch is your real base, pass it explicitly (`/code-review ultra <branch>`)``;當 Claude Code 無法判斷您的複製是否淺時,它改為建議 `git fetch --unshallow origin`。在 v2.1.221 之前,提示為每個擷取的基礎分支建議 `git fetch --unshallow origin`,在完整複製上該命令失敗並顯示 `fatal: --unshallow on a complete repository does not make sense`。3501* **您傳入的基底分支不在您的複製中**:Claude Code 在比較前從 origin 擷取了它。提示為 ``<branch> was fetched from origin but shares no history with HEAD. If another branch is your real base, pass it explicitly (`/code-review ultra <branch>`)``;當 Claude Code 無法判斷您的複製是否為淺層複製時,則會改為建議 `git fetch --unshallow origin`。在 v2.1.221 之前,提示會對每個擷取的基底分支建議 `git fetch --unshallow origin`,而在完整的複製上,該命令會以 `fatal: --unshallow on a complete repository does not make sense` 失敗。

3435 3502 

3436**該怎麼做:**3503**處理方式:**

3437 3504 

3438* 如果另一個分支是您的真實基礎,明確傳遞它:`/code-review ultra <branch>`3505* 如果另一個分支才是您真正的基底,請明確傳入它:`/code-review ultra <branch>`

3439* 如果您的複製可能沒有完整歷史,執行 `git fetch --unshallow origin` 並重新執行審查3506* 如果您的複製可能沒有完整的歷史記錄,請執行 `git fetch --unshallow origin` 並重新執行審查

3440 3507 

3441<h3 id="your-checkout-has-no-branches">3508<h3 id="your-checkout-has-no-branches">

3442 您的檢出沒有分支3509 您的檢出沒有任何分支

3443</h3>3510</h3>

3444 3511 

3445檢出可以有提交但沒有分支:如果您執行 `git init` 後跟 `git fetch <url>` 和 `git checkout FETCH_HEAD`,您會得到一個分離的 HEAD 而沒有參考。Claude Code 將您的儲存庫打包為 git 套件以上傳它進行 [ultrareview](/docs/zh-TW/ultrareview),它無法打包沒有分支或其他參考的儲存庫,所以 `/code-review ultra` 和 `claude ultrareview` 子命令在雲端工作階段啟動之前拒絕審查。3512檢出可能有提交但沒有分支:如果您執行 `git init`,接著執行 `git fetch <url>` 與 `git checkout FETCH_HEAD`,就會得到一個沒有任何 ref 的分離 HEAD。Claude Code 會將您的儲存庫打包成 git bundle 以上傳進行 [ultrareview](/docs/zh-TW/ultrareview),而它無法打包沒有分支或其他 ref 的儲存庫,因此 `/code-review ultra` 與 `claude ultrareview` 子命令會在雲端工作階段啟動前拒絕審查。

3446 3513 

3447```text theme={null}3514```text theme={null}

3448Your checkout has no branches (detached HEAD only), which cloud review can't bundle. Create one first — `git checkout -b <name>` — then rerun /code-review ultra.3515Your checkout has no branches (detached HEAD only), which cloud review can't bundle. Create one first — `git checkout -b <name>` — then rerun /code-review ultra.

3449```3516```

3450 3517 

3451在 v2.1.221 之前,Claude Code 嘗試審查此檢出中的每個追蹤檔案,上傳失敗。3518在 v2.1.221 之前,Claude Code 會嘗試審查此檢出中每個受追蹤的檔案,而上傳會失敗。

3452 3519 

3453**該怎麼做:**3520**處理方式:**

3454 3521 

3455* 使用 `git checkout -b <name>` 在您目前的提交上建立分支,然後重新執行審查3522* 以 `git checkout -b <name>` 在您目前的提交上建立分支,然後重新執行審查

3456 3523 

3457<h3 id="no-github-account-is-connected-to-your-claude-account">3524<h3 id="no-github-account-is-connected-to-your-claude-account">

3458 沒有 GitHub 帳戶連接到您的 Claude 帳戶3525 沒有 GitHub 帳戶連接到您的 Claude 帳戶

3459</h3>3526</h3>

3460 3527 

3461您執行了 `/code-review ultra <PR#>` 或 `claude ultrareview <PR#>`,在建立雲端工作階段之前 Claude Code 詢問伺服器[連接到您的 Claude 帳戶的 GitHub 帳戶](/docs/zh-TW/ultrareview#review-a-pull-request)是否可以到達 PR 的儲存庫。沒有帳戶連接,或連接已過期,所以雲端複製會失敗,Claude Code 拒絕啟動。Claude Code 不會為被拒絕的啟動花費免費執行或計費使用額度。3528您執行了 `/code-review ultra <PR#>` 或 `claude ultrareview <PR#>`,而在建立雲端工作階段之前,Claude Code 會詢問伺服器[連接到您 Claude 帳戶的 GitHub 帳戶](/docs/zh-TW/ultrareview#review-a-pull-request)是否能存取該 PR 的儲存庫。由於沒有連接任何帳戶,或連接已過期,雲端複製將會失敗,因此 Claude Code 拒絕啟動。對於被拒絕的啟動,Claude Code 不會消耗免費執行次數,也不會計費用量點數。

3462 3529 

3463```text theme={null}3530```text theme={null}

3464Ultrareview clones <owner>/<repo> in the cloud with the GitHub account connected to your Claude account, and none is connected (or the connection expired). To fix: run /web-setup to reuse your GitHub CLI login, or connect an account at https://claude.ai/connect-github — then re-run /code-review ultra 1234 (allow a minute after connecting).3531Ultrareview clones <owner>/<repo> in the cloud with the GitHub account connected to your Claude account, and none is connected (or the connection expired). To fix: run /web-setup to reuse your GitHub CLI login, or connect an account at https://claude.ai/connect-github — then re-run /code-review ultra 1234 (allow a minute after connecting).

3465```3532```

3466 3533 

3467當 [`/web-setup`](/docs/zh-TW/web-quickstart#connect-from-your-terminal) 在您的工作階段中不可用時,訊息只命名 claude.ai 連結。3534當您的工作階段中無法使用 [`/web-setup`](/docs/zh-TW/web-quickstart#connect-from-your-terminal) 時,訊息只會提到 claude.ai 連結。

3468 3535 

3469**該怎麼做:**3536**處理方式:**

3470 3537 

3471* 執行 `/web-setup` 以將您的 GitHub CLI 登入連接到您的 Claude 帳戶,或在 [claude.ai/connect-github](https://claude.ai/connect-github) 連接帳戶3538* 執行 `/web-setup` 將您的 GitHub CLI 登入連接到您的 Claude 帳戶,或在 [claude.ai/connect-github](https://claude.ai/connect-github) 連接帳戶

3472* 連接後一分鐘重新執行審查3539* 連接後等待一分鐘再重新執行審查

3473 3540 

3474在 v2.1.248 之前,Claude Code 在啟動前不檢查此項。3541在 v2.1.248 之前,Claude Code 不會在啟動前檢查此項目。

3475 3542 

3476<h3 id="your-connected-github-account-cant-see-the-repository">3543<h3 id="your-connected-github-account-cant-see-the-repository">

3477 您連接的 GitHub 帳戶無法看到儲存庫3544 您連接的 GitHub 帳戶無法看到該儲存庫

3478</h3>3545</h3>

3479 3546 

3480您執行了 `/code-review ultra <PR#>` 或 `claude ultrareview <PR#>`,[連接到您的 Claude 帳戶的 GitHub 帳戶](/docs/zh-TW/ultrareview#review-a-pull-request)無法讀取 PR 的儲存庫,所以雲端複製會失敗,Claude Code 拒絕啟動。Claude Code 不會為被拒絕的啟動花費免費執行或計費使用額度。3547您執行了 `/code-review ultra <PR#>` 或 `claude ultrareview <PR#>`,而[連接到您 Claude 帳戶的 GitHub 帳戶](/docs/zh-TW/ultrareview#review-a-pull-request)無法讀取該 PR 的儲存庫,因此雲端複製將會失敗,Claude Code 拒絕啟動。對於被拒絕的啟動,Claude Code 不會消耗免費執行次數,也不會計費用量點數。

3481 3548 

3482```text theme={null}3549```text theme={null}

3483Your connected GitHub account can't see <owner>/<repo> — usually the Claude GitHub app isn't installed on <owner> or wasn't granted this repo (web-connected accounts need it for private repos), or a different GitHub account is connected. To fix: run /web-setup to reuse your GitHub CLI login, or install the app at https://github.com/apps/claude/installations/new — then re-run /code-review ultra 1234.3550Your connected GitHub account can't see <owner>/<repo> — usually the Claude GitHub app isn't installed on <owner> or wasn't granted this repo (web-connected accounts need it for private repos), or a different GitHub account is connected. To fix: run /web-setup to reuse your GitHub CLI login, or install the app at https://github.com/apps/claude/installations/new — then re-run /code-review ultra 1234.

3484```3551```

3485 3552 

3486當 [`/web-setup`](/docs/zh-TW/web-quickstart#connect-from-your-terminal) 在您的工作階段中不可用時,訊息只命名應用程式安裝。3553當您的工作階段中無法使用 [`/web-setup`](/docs/zh-TW/web-quickstart#connect-from-your-terminal) 時,訊息只會提到應用程式的安裝。

3487 3554 

3488**該怎麼做:**3555**處理方式:**

3489 3556 

3490* 如果您的本地 `gh` CLI 可以讀取儲存庫,執行 `/web-setup` 以將該登入連接到您的 Claude 帳戶3557* 如果您本機的 `gh` CLI 可以讀取該儲存庫,請執行 `/web-setup` 將該登入連接到您的 Claude 帳戶

3491* 變更後重新執行審查3558* 變更後重新執行審查

3492 3559 

3493在 v2.1.248 之前,Claude Code 在啟動前不檢查此項。3560在 v2.1.248 之前,Claude Code 不會在啟動前檢查此項目。

3494 3561 

3495<h3 id="the-github-app-preflight-failed-transiently">3562<h3 id="the-github-app-preflight-failed-transiently">

3496 GitHub 應用程式預檢暫時失敗3563 GitHub App 預檢發生暫時性失敗

3497</h3>3564</h3>

3498 3565 

3499您從本地儲存庫啟動了[雲端工作階段](/docs/zh-TW/claude-code-on-the-web),兩個步驟一起失敗。Claude Code 無法建立或上傳您的儲存庫套件。在上傳之前,它檢查了雲端服務是否可以從 GitHub 複製儲存庫,而不是明確的答案,該檢查以重試可能清除的錯誤結束,例如網路錯誤、逾時或暫時伺服器錯誤。完整訊息以停止套件的內容開頭,例如 `Could not upload repo bundle (<error>)`,並以預檢句子結尾:3566您從本機儲存庫啟動了[雲端工作階段](/docs/zh-TW/claude-code-on-the-web),而有兩個步驟同時失敗。Claude Code 無法建置或上傳您儲存庫的 bundle。在上傳之前,它會檢查雲端服務是否能從 GitHub 複製該儲存庫,而該檢查沒有得到明確的答案,而是以重試可能排除的錯誤結束,例如網路錯誤、逾時或暫時性的伺服器錯誤。完整的訊息會以阻止 bundle 的原因開頭,例如 `Could not upload repo bundle (<error>)`,並以預檢句子結尾:

3500 3567 

3501```text theme={null}3568```text theme={null}

3502Could not upload repo bundle (<error>). The GitHub App preflight failed transiently (network or service hiccup) — retry in a moment to start from GitHub instead3569Could not upload repo bundle (<error>). The GitHub App preflight failed transiently (network or service hiccup) — retry in a moment to start from GitHub instead

3503```3570```

3504 3571 

3505**該怎麼做:**3572**處理方式:**

3506 3573 

3507* 片刻後重新執行命令。當 GitHub 檢查通過時,Claude Code 可以從 GitHub 複製啟動工作階段,所以失敗的上傳不再阻止啟動3574* 稍待片刻後重新執行命令。當 GitHub 檢查通過時,Claude Code 可以從 GitHub 複製啟動工作階段,因此失敗的上傳不再阻擋啟動

3508* 如果重試持續失敗,訊息的開頭命名停止上傳的內容。當該原因是您可以修復的內容時,修復它以便工作階段可以改為從您的本地儲存庫啟動3575* 如果重試持續失敗,訊息開頭會指出阻止上傳的原因。當該原因是您可以修正的問題時,請加以修正,讓工作階段改為能從您的本機儲存庫啟動

3509 3576 

3510在 v2.1.251 之前,Claude Code 以 `Please set up GitHub on https://claude.ai/code` 結束訊息,即使 GitHub 檢查只暫時失敗,設定建議無法清除暫時失敗。3577在 v2.1.251 之前,即使 GitHub 檢查只是暫時性失敗,Claude Code 也會以 `Please set up GitHub on https://claude.ai/code` 結束訊息,而設定建議無法排除暫時性失敗。

3511 3578 

3512<h3 id="the-repository-upload-cant-follow-a-git-setting">3579<h3 id="the-repository-upload-cant-follow-a-git-setting">

3513 儲存庫上傳無法遵循 git 設定3580 儲存庫上傳無法遵循某項 git 設定

3514</h3>3581</h3>

3515 3582 

3516您啟動了[上傳您的本地儲存庫的雲端工作階段](/docs/zh-TW/claude-code-on-the-web#send-local-repositories-without-github),或[分支的 ultrareview](/docs/zh-TW/ultrareview),上傳無法遵循決定哪些屬性規則適用於您的檔案的 git 設定之一。如果上傳進行並錯過了規則,git 在儲存前轉換的檔案(例如清潔篩選器加密的檔案)可能會到達雲端,因為它在磁碟上。Claude Code 拒絕上傳,沒有任何內容被上傳:3583您啟動了[上傳您本機儲存庫的雲端工作階段](/docs/zh-TW/claude-code-on-the-web#send-local-repositories-without-github),或對某個分支進行 [ultrareview](/docs/zh-TW/ultrareview),而上傳無法遵循決定哪些屬性規則套用到您檔案的其中一項 git 設定。如果上傳照常進行而遺漏了某條規則,git 會在儲存前轉換的檔案(例如由 clean 篩選器加密的檔案)可能會以其在磁碟上的原樣送到雲端。Claude Code 會改為拒絕上傳,且不會上傳任何內容:

3517 3584 

3518```text theme={null}3585```text theme={null}

3519Not uploading this working tree: core.ignoreCase (which decides whether .gitattributes patterns match file names regardless of letter case) is set in <file>, and the upload cannot follow that setting, so a file git would change before storing it (to encrypt it, for example) could be uploaded as it is on disk. Move the core.ignoreCase line into this repository's .git/config or directly into your ~/.gitconfig, then retry.3586Not uploading this working tree: core.ignoreCase (which decides whether .gitattributes patterns match file names regardless of letter case) is set in <file>, and the upload cannot follow that setting, so a file git would change before storing it (to encrypt it, for example) could be uploaded as it is on disk. Move the core.ignoreCase line into this repository’s .git/config or directly into your ~/.gitconfig, then retry.

3520```3587```

3521 3588 

3522訊息命名設定和它的設定位置,並以該情況的修復結尾。相同的拒絕出現在 `core.attributesFile` 和 `attr.tree` 中,每個都有自己的修復。3589訊息會指出該設定及其設定位置,並以適用於您所遇情況的修正方法作結。對於 `core.attributesFile` 與 `attr.tree` 也會出現相同的拒絕訊息,各自附有其修正方法。

3523 3590 

3524訊息可以命名您的 git 設定通過 `include` 或 `includeIf` 指令拉入的設定檔,即使該指令的條件不適用於此儲存庫。3591訊息可能會指出一個由您的 git 設定透過 `include` 或 `includeIf` 指示詞引入的設定檔,即使該指示詞的條件不適用於此儲存庫。

3525 3592 

3526**該怎麼做:**3593**處理方式:**

3527 3594 

3528* 應用訊息最後句子中的修復3595* 套用訊息最後一句中的修正方法

3529 3596 

3530<h3 id="github-isnt-connected-to-your-claude-account">3597<h3 id="github-isnt-connected-to-your-claude-account">

3531 GitHub 未連接到您的 Claude 帳戶3598 GitHub 未連接到您的 Claude 帳戶

3532</h3>3599</h3>

3533 3600 

3534您從本地儲存庫啟動了[雲端工作階段](/docs/zh-TW/claude-code-on-the-web),例如使用 `/autofix-pr`。沒有 GitHub 帳戶連接到您的 Claude 帳戶,或連接已過期,所以 Claude Code 拒絕啟動:3601您從本機儲存庫啟動了[雲端工作階段](/docs/zh-TW/claude-code-on-the-web),例如使用 `/autofix-pr`。沒有 GitHub 帳戶連接到您的 Claude 帳戶,或連接已過期,因此 Claude Code 拒絕啟動:

3535 3602 

3536```text theme={null}3603```text theme={null}

3537GitHub isn't connected to your Claude account, so this repository can't be cloned in the cloud. Run /web-setup to connect with your GitHub CLI login, or connect on the web at https://claude.ai/connect-github3604GitHub isn't connected to your Claude account, so this repository can't be cloned in the cloud. Run /web-setup to connect with your GitHub CLI login, or connect on the web at https://claude.ai/connect-github

3538```3605```

3539 3606 

3540當您使用 [`/schedule`](/docs/zh-TW/routines) 建立例行程序時,相同的訊息作為設定注意事項出現,命名儲存庫;注意事項不會阻止建立例行程序。3607當您以 [`/schedule`](/docs/zh-TW/routines) 建立 routine 時,相同的訊息會以指出該儲存庫的設定提醒形式出現;該提醒不會阻擋建立 routine。

3541 3608 

3542**該怎麼做:**3609**處理方式:**

3543 3610 

3544* 執行 `/web-setup` 以將您的 GitHub CLI 登入連接到您的 Claude 帳戶,或在 [claude.ai/connect-github](https://claude.ai/connect-github) 連接帳戶。請參閱 [GitHub 身份驗證選項](/docs/zh-TW/claude-code-on-the-web#github-authentication-options)以了解兩者的差異。3611* 執行 `/web-setup` 將您的 GitHub CLI 登入連接到您的 Claude 帳戶,或在 [claude.ai/connect-github](https://claude.ai/connect-github) 連接帳戶。兩者的差異請參閱 [GitHub 身分驗證選項](/docs/zh-TW/claude-code-on-the-web#github-authentication-options)。

3545* 連接後一分鐘重新執行命令3612* 連接後等待一分鐘再重新執行命令

3546 3613 

3547在 v2.1.268 之前,Claude Code 將此報告為 Claude GitHub 應用程式檢查的暫時失敗,並建議重試或安裝應用程式;兩者都不連接 GitHub 帳戶。3614在 v2.1.268 之前,Claude Code 會將此情況回報為 Claude GitHub App 檢查的暫時性失敗,並建議重試或安裝該應用程式;但兩者都無法連接 GitHub 帳戶。

3548 3615 

3549<h3 id="single-sign-on-authorization-needed">3616<h3 id="single-sign-on-authorization-needed">

3550 需要單一登入授權3617 需要單一登入授權

3551</h3>3618</h3>

3552 3619 

3553您執行了 [`/install-github-app`](/docs/zh-TW/github-actions#quick-setup) 並選擇了其組織強制執行 SAML 單一登入的儲存庫。在設定之前,Claude Code 使用 GitHub CLI 檢查您對儲存庫的存取,GitHub 拒絕了該檢查,因為您的 `gh` 權杖尚未針對組織授權。精靈顯示帶有授權步驟的警告:3620您執行了 [`/install-github-app`](/docs/zh-TW/github-actions#quick-setup),並選擇了一個其組織強制使用 SAML 單一登入的儲存庫。在設定之前,Claude Code 會以 GitHub CLI 檢查您對該儲存庫的存取權,而 GitHub 拒絕了該檢查,因為您的 `gh` token 尚未獲得該組織的授權。精靈會顯示警告以及授權步驟:

3554 3621 

3555```text theme={null}3622```text theme={null}

3556Single sign-on authorization needed3623Single sign-on authorization needed

3557<owner>/<repo> belongs to an organization that enforces SAML single sign-on, and your GitHub CLI token isn't authorized for it yet.3624<owner>/<repo> belongs to an organization that enforces SAML single sign-on, and your GitHub CLI token isn't authorized for it yet.

3558```3625```

3559 3626 

3560**該怎麼做:**3627**處理方式:**

3561 3628 

3562* 通過執行 `gh auth refresh -h github.com -s repo,workflow` 使用 `repo` 和 `workflow` 範圍重新授權您的 GitHub CLI 登入,並在 GitHub 提示單一登入時授權組織3629* 執行 `gh auth refresh -h github.com -s repo,workflow`,以 `repo` 與 `workflow` 範圍重新授權您的 GitHub CLI 登入,並在 GitHub 提示單一登入時授權該組織

3563* 如果您使用 `GH_TOKEN` 中的個人存取權杖進行身份驗證,請開啟 [github.com/settings/tokens](https://github.com/settings/tokens),在權杖上選擇**設定 SSO**,並授權組織3630* 如果您使用 `GH_TOKEN` 中的個人存取 token 進行身分驗證,請開啟 [github.com/settings/tokens](https://github.com/settings/tokens),在該 token 上選取 **Configure SSO**,並授權該組織

3564* 再次執行 `/install-github-app`3631* 再次執行 `/install-github-app`

3565 3632 

3566在 v2.1.273 之前,Claude Code 為此條件顯示 `Admin permissions required` 警告。3633在 v2.1.273 之前,Claude Code 對此情況顯示的是 `Admin permissions required` 警告。

3567 3634 

3568<h3 id="failed-to-resume-the-conversation">3635<h3 id="failed-to-resume-the-conversation">

3569 無法恢復對話3636 無法繼續對話

3570</h3>3637</h3>

3571 3638 

3572Claude Code 無法讀取或處理您從 [`claude --resume` 選擇器](/docs/zh-TW/sessions#use-the-session-picker)選擇的工作階段的已保存文字記錄,所以它結束程序而不是在部分載入狀態下繼續。訊息包括重試的命令:3639Claude Code 無法讀取或處理您從 [`claude --resume` 選擇器](/docs/zh-TW/sessions#use-the-session-picker)中所選工作階段的已儲存逐字稿,因此它會結束程序,而不是在部分載入的狀態下繼續。訊息中包含重試用的命令:

3573 3640 

3574```text theme={null}3641```text theme={null}

3575Failed to resume the conversation.3642Failed to resume the conversation.

3576Run claude --resume <session-id> to retry, or claude to start a new session.3643Run claude --resume <session-id> to retry, or claude to start a new session.

3577```3644```

3578 3645 

3579Claude Code 在顯示訊息後以代碼 1 結束。在執行中的工作階段內的 `/resume` 選擇器報告對話中的 `Failed to resume conversation`,您目前的工作階段保持執行。在 v2.1.216 之前,來自 `claude --resume` 選擇器的失敗恢復在 `Resuming conversation…` 微調器上無限期停留,而不是顯示此訊息。3646Claude Code 在顯示訊息後會以退出碼 1 結束。執行中工作階段內的 `/resume` 選擇器則會改為在對話中回報 `Failed to resume conversation`,而您目前的工作階段會繼續執行。在 v2.1.216 之前,從 `claude --resume` 選擇器繼續失敗時,會無限期停留在 `Resuming conversation…` 載入動畫,而不是顯示此訊息。

3580 3647 

3581**該怎麼做:**3648**處理方式:**

3582 3649 

3583* 執行 `claude --resume <session-id>` 搭配訊息中的工作階段 ID 以重試3650* 以訊息中的工作階段 ID 執行 `claude --resume <session-id>` 來重試

3584* 如果每次重試都以相同方式失敗,執行 `claude update` 並再次恢復。v2.1.275 之前的版本在已保存的文字記錄包含它們無法讀取的項目時恢復失敗。3651* 在 v2.1.285 之前的版本上,如果重試以相同方式失敗,請執行 `claude update` 並再次繼續。當已儲存的逐字稿包含這些版本無法讀取的項目時,這些版本會無法繼續。

3585* 如果重試再次失敗,執行 `claude` 以啟動新工作階段3652* 如果重試再次失敗,請執行 `claude` 以啟動新的工作階段

3586 3653 

3587<h3 id="no-conversation-found-with-the-session-id">3654<h3 id="no-conversation-found-with-the-session-id">

3588 找不到具有工作階段 ID 的對話3655 No conversation found with the session ID

3589</h3>3656</h3>

3590 3657 

3591您傳遞了工作階段 ID 給 `claude --resume <session-id>`,沒有已保存的文字記錄與其相符:3658您將工作階段 ID 傳給了 `claude --resume <session-id>`,但沒有任何已儲存的逐字稿與之相符:

3592 3659 

3593```text theme={null}3660```text theme={null}

3594No conversation found with session ID: <session-id>3661No conversation found with session ID: <session-id>

3595```3662```

3596 3663 

3597Claude Code 在顯示訊息後以代碼 1 結束。Claude Code [首先搜尋目前專案,然後搜尋此機器上的每個其他專案](/docs/zh-TW/sessions#resume-a-session)以找到 ID。在 v2.1.223 之前,查詢停止在目前專案目錄及其 git worktrees,所以從工作階段最後工作的目錄恢復。3664Claude Code 在顯示此訊息後會以代碼 1 結束。Claude Code 會[先搜尋目前的專案,再搜尋此機器上的所有其他專案](/docs/zh-TW/sessions#resume-a-session)來尋找該 ID。在 v2.1.223 之前,查找僅限於目前的專案目錄及其 git worktree,因此請從該工作階段最後運作的目錄繼續工作階段。

3598 3665 

3599常見原因:3666常見原因:

3600 3667 

3601* **打字錯誤的 ID**:對於非互動執行,ID 是 [`--output-format json` 輸出](/docs/zh-TW/headless#get-structured-output)的 `session_id` 欄位3668* **ID 輸入錯誤**:對於非互動式執行,ID 是 [`--output-format json` 輸出](/docs/zh-TW/headless#get-structured-output)中的 `session_id` 欄位

3602* **已刪除的文字記錄**:Claude Code 在[保留期](/docs/zh-TW/sessions#where-transcripts-are-stored)後移除文字記錄,預設為 30 天,遵循[保留掃描規則](/docs/zh-TW/claude-directory#cleaned-up-automatically)3669* **逐字稿已刪除**:Claude Code 會在[保留期限](/docs/zh-TW/sessions#where-transcripts-are-stored)(預設為 30 天)過後,依照[保留清理規則](/docs/zh-TW/claude-directory#cleaned-up-automatically)移除逐字稿

3603* **不同的機器**:Claude Code 在本地儲存文字記錄,所以在執行工作階段的機器上恢復它3670* **不同的機器**:Claude Code 將逐字稿儲存在本機,因此請在執行該工作階段的機器上繼續工作階段

3604* **重複副本**:如果您在 `~/.claude/projects` 下複製了專案目錄,使兩個文字記錄帶有相同 ID,Claude Code 報告此訊息而不是任意恢復一個副本3671* **重複的副本**:如果您複製了 `~/.claude/projects` 下的專案目錄,導致兩份逐字稿帶有相同的 ID,Claude Code 會回報此訊息,而不是任意繼續其中一份副本

3605 3672 

3606**該怎麼做:**3673**處理方式:**

3607 3674 

3608* 對於互動工作階段,使用 `claude --resume` 開啟[工作階段選擇器](/docs/zh-TW/sessions#use-the-session-picker),按 `Ctrl+A` 將其擴大到此機器上的每個專案,然後選擇工作階段3675* 對於互動式工作階段,使用 `claude --resume` 開啟[工作階段選擇器](/docs/zh-TW/sessions#use-the-session-picker),並按下 `Ctrl+A` 將範圍擴大至此機器上的所有專案,然後選擇該工作階段

3609* 使用 `claude -p` 或 [Agent SDK](/docs/zh-TW/agent-sdk/overview) 建立的工作階段不會出現在選擇器中,所以根據您的原始執行列印的 `session_id` 重新檢查 ID3676* 使用 `claude -p` 或 [Agent SDK](/docs/zh-TW/agent-sdk/overview) 建立的工作階段不會出現在選擇器中,因此請將 ID 與原始執行時印出的 `session_id` 再次核對

3610 3677 

3611<h3 id="windows-reported-an-error-ebadf">3678<h3 id="windows-reported-an-error-ebadf">

3612 Windows 在 Claude Code 讀取此工作階段的文字記錄檔案時報告了錯誤 (EBADF)3679 Windows reported an error (EBADF) when Claude Code read this session's transcript file

3613</h3>3680</h3>

3614 3681 

3615您在 Windows 上恢復了工作階段,其已保存的[文字記錄檔案](/docs/zh-TW/sessions#where-transcripts-are-stored)正常開啟,讀取它然後失敗並顯示系統錯誤 EBADF。系統錯誤沒有說明讀取失敗的原因,所以訊息建議可能的原因和要嘗試的內容:3682您在 Windows 上繼續了一個工作階段,其已儲存的[逐字稿檔案](/docs/zh-TW/sessions#where-transcripts-are-stored)正常開啟,但隨後讀取時因系統錯誤 EBADF 而失敗。系統錯誤並未說明讀取失敗的原因,因此此訊息會提示可能的原因及可嘗試的做法:

3616 3683 

3617```text theme={null}3684```text theme={null}

3618Windows reported an error (EBADF) when Claude Code read this session's transcript file, although the file had opened normally. This can happen when other software intercepts file reads — security, encryption or endpoint-management tools, for example. If it keeps happening for this conversation, try excluding the folder that holds Claude Code's session transcripts from such software (the .claude folder in your user profile, unless the app or CLAUDE_CONFIG_DIR points Claude Code elsewhere), or adding Claude Code to its allowed applications, then resume again.3685Windows reported an error (EBADF) when Claude Code read this session's transcript file, although the file had opened normally. This can happen when other software intercepts file reads — security, encryption or endpoint-management tools, for example. If it keeps happening for this conversation, try excluding the folder that holds Claude Code's session transcripts from such software (the .claude folder in your user profile, unless the app or CLAUDE_CONFIG_DIR points Claude Code elsewhere), or adding Claude Code to its allowed applications, then resume again.

3619```3686```

3620 3687 

3621訊息遵循命令自己的失敗行,例如 `Failed to resume session <session-id>`。`claude --resume` 或 [`claude -p`](/docs/zh-TW/headless) 命令在顯示它後以代碼 1 結束。在工作階段內的 `/resume` 後,您目前的工作階段保持執行。3688此訊息會接在命令本身的失敗行之後,例如 `Failed to resume session <session-id>`。`claude --resume` 或 [`claude -p`](/docs/zh-TW/headless) 命令在顯示此訊息後會以代碼 1 結束。若是在工作階段內執行 `/resume`,您目前的工作階段會繼續運作。

3622 3689 

3623**該怎麼做:**3690**處理方式:**

3624 3691 

3625* 從掃描或攔截檔案讀取的軟體(例如安全、加密或端點管理工具)中排除保存工作階段文字記錄的資料夾。文字記錄預設位於 `%USERPROFILE%\.claude\projects` 下,或位於 [`CLAUDE_CONFIG_DIR`](/docs/zh-TW/env-vars) 命名的目錄下3692* 將存放工作階段逐字稿的資料夾從會掃描或攔截檔案讀取的軟體中排除,例如安全性、加密或端點管理工具。逐字稿預設位於 `%USERPROFILE%\.claude\projects` 下,或位於 [`CLAUDE_CONFIG_DIR`](/docs/zh-TW/env-vars) 所指定的目錄下

3626* 如果您無法新增排除項,請改為將 Claude Code 新增到該軟體的允許應用程式3693* 如果無法新增排除項目,請改為將 Claude Code 加入該軟體的允許應用程式中

3627* 再次恢復工作階段3694* 再次繼續該工作階段

3628 3695 

3629在 v2.1.282 之前,失敗沒有解釋:`claude --resume <session-id>` 在 `Failed to resume session <session-id>` 結束,`-p` 執行只列印系統錯誤文字,例如 `Failed to resume session: EBADF: bad file descriptor, read`。3696在 v2.1.282 之前,此失敗不會附帶任何說明:`claude --resume <session-id>` 會以 `Failed to resume session <session-id>` 結束,而 `-p` 執行則只會印出系統錯誤文字,例如 `Failed to resume session: EBADF: bad file descriptor, read`。

3630 3697 

3631<h3 id="cannot-switch-renderers-in-this-session">3698<h3 id="cannot-switch-renderers-in-this-session">

3632 無法在此工作階段中切換轉譯器3699 Cannot switch renderers in this session

3633</h3>3700</h3>

3634 3701 

3635當您切換轉譯器時,Claude Code 重新啟動其程序。您在 Claude Code 拒絕重新啟動的工作階段中執行了 [`/tui`](/docs/zh-TW/fullscreen#enable-fullscreen-rendering),所以它不會切換並保存任何內容。您看到的訊息告訴您原因:3702切換渲染器時,Claude Code 會重新啟動其程序。您在 Claude Code 拒絕重新啟動的工作階段中執行了 [`/tui`](/docs/zh-TW/fullscreen#enable-fullscreen-rendering),因此它不會切換,也不會儲存任何內容。您看到的訊息會告訴您原因:

3636 3703 

3637* `Cannot switch renderers while work is running in the background`:您有在背景執行的工作,重新啟動會放棄,例如背景 shell 或子代理。等待工作完成或使用 [`/tasks`](/docs/zh-TW/commands) 停止它,然後再次執行 `/tui fullscreen` 或 `/tui default`3704* `Cannot switch renderers while work is running in the background`:您有正在背景執行的工作,重新啟動會使其中斷,例如背景 shell 或 subagent。請等待工作完成,或使用 [`/tasks`](/docs/zh-TW/commands) 將其停止,然後再次執行 `/tui fullscreen` 或 `/tui default`

3638* `Cannot switch renderers in this session`:工作階段有 Claude Code 無法傳遞給重新啟動的程序的限制。在 v2.1.234 之前,Claude Code 無論如何都會重新啟動,重新啟動的工作階段在沒有它們的情況下執行3705* `Cannot switch renderers in this session`:該工作階段具有 Claude Code 無法傳遞給重新啟動後程序的限制。在 v2.1.234 之前,Claude Code 仍會重新啟動,而重新啟動後的工作階段會在沒有這些限制的情況下執行

3639 3706 

3640在限制訊息中,括號中的部分命名 Claude Code 發現的限制:3707在限制訊息中,括號內的部分列出了 Claude Code 找到的限制:

3641 3708 

3642```text theme={null}3709```text theme={null}

3643Cannot switch renderers in this session — it has restrictions a restart can't carry over (permission rules set for this session only). Nothing was changed. Running /tui fullscreen in a session started without them switches every later session too.3710Cannot switch renderers in this session — it has restrictions a restart can't carry over (permission rules set for this session only). Nothing was changed. Running /tui fullscreen in a session started without them switches every later session too.

3644```3711```

3645 3712 

3646訊息可以在括號中顯示的每個原因:3713訊息括號中可能顯示的各項原因:

3647 3714 

3648* `launch flags: a custom system prompt, a tool allowlist, or restricted settings`:您使用 Claude Code 不傳遞回重新啟動程序的旗標啟動了工作階段。這些旗標包括 [`--system-prompt`](/docs/zh-TW/cli-reference#cli-flags)、`--system-prompt-file`、`--append-system-prompt-file`、[`--tools`](/docs/zh-TW/cli-reference#cli-flags) 允許清單、[`--setting-sources`](/docs/zh-TW/cli-reference#cli-flags) 和 [`--permission-prompt-tool`](/docs/zh-TW/cli-reference#cli-flags)3715* `launch flags: a custom system prompt, a tool allowlist, or restricted settings`:您使用了 Claude Code 不會傳回給重新啟動後程序的旗標來啟動工作階段。這些旗標包括 [`--system-prompt`](/docs/zh-TW/cli-reference#cli-flags)、`--system-prompt-file`、`--append-system-prompt-file`、[`--tools`](/docs/zh-TW/cli-reference#cli-flags) 允許清單、[`--setting-sources`](/docs/zh-TW/cli-reference#cli-flags) 以及 [`--permission-prompt-tool`](/docs/zh-TW/cli-reference#cli-flags)

3649* `permission rules set for this session only`:來自鉤子或 SDK 呼叫者的[權限更新](/docs/zh-TW/hooks#permission-update-entries)新增了具有 `session` 目的地的拒絕或詢問規則。工作階段範圍的允許規則不會觸發拒絕。重新啟動會丟棄它們,Claude Code 改為提示3716* `permission rules set for this session only`:來自 hook 或 SDK 呼叫端的[權限更新](/docs/zh-TW/hooks#permission-update-entries)新增了目的地為 `session` 的拒絕或詢問規則。僅限工作階段範圍的允許規則不會觸發拒絕。重新啟動會捨棄這些規則,Claude Code 會改為再次提示

3650* `ask-before-running rules with no command-line form`:來自鉤子或 SDK 呼叫者的權限更新新增了詢問規則以及 Claude Code 作為 `--allowed-tools` 和 `--disallowed-tools` 傳遞回的規則。詢問規則不存在旗標3717* `ask-before-running rules with no command-line form`:來自 hook 或 SDK 呼叫端的權限更新,在 Claude Code 以 `--allowed-tools` 和 `--disallowed-tools` 傳回的規則之外,另外新增了詢問規則。詢問規則沒有對應的旗標

3651* `permission rules a command line cannot carry intact` 和 `added directories a command line cannot carry intact`:權限更新在工作階段中期新增了規則或目錄路徑。重新啟動的程序的命令列無法將其文字作為相同值帶過去3718* `permission rules a command line cannot carry intact` 與 `added directories a command line cannot carry intact`:權限更新在工作階段中途新增了規則或目錄路徑。重新啟動後程序的命令列無法以相同的值承載其文字

3652 3719 

3653**該怎麼做:**3720**處理方式:**

3654 3721 

3655* 在沒有這些限制的工作階段中,執行 `/tui fullscreen`,或 `/tui default` 以切換回。Claude Code 在那裡保存 [`tui` 設定](/docs/zh-TW/settings-reference#tui)3722* 在未附帶這些限制而啟動的工作階段中,執行 `/tui fullscreen`,或執行 `/tui default` 切換回來。Claude Code 會在該處儲存 [`tui` 設定](/docs/zh-TW/settings-reference#tui)

3656 3723 

3657<h3 id="couldnt-open-claude-desktop">3724<h3 id="couldnt-open-claude-desktop">

3658 無法開啟 Claude Desktop3725 Couldn't open Claude Desktop

3659</h3>3726</h3>

3660 3727 

3661您執行了 [`/desktop`](/docs/zh-TW/desktop#coming-from-the-cli) 或其別名 `/app` 在工作階段中,或在您的 shell 中執行了 [`claude --desktop`](/docs/zh-TW/cli-reference#cli-flags),Claude Code 用來開啟 Claude Desktop 的系統命令失敗。在 `/desktop` 後,工作階段保持在終端中;`claude --desktop` 列印訊息而沒有 `Error:` 前綴並以狀態 1 結束。3728您在工作階段中執行了 [`/desktop`](/docs/zh-TW/desktop#coming-from-the-cli) 或其別名 `/app`,或在 shell 中執行了 [`claude --desktop`](/docs/zh-TW/cli-reference#cli-flags),而 Claude Code 用來開啟 Claude Desktop 的系統命令失敗了。執行 `/desktop` 後,工作階段會留在終端機中;`claude --desktop` 則會印出不含 `Error:` 前綴的訊息,並以狀態 1 結束。

3662 3729 

3663括號中的文字命名失敗的命令,帶有其結束狀態和其錯誤輸出的第一行(如果它產生了)。在 macOS 上該命令是 `open`,如此範例;在 Windows 上它是 `rundll32`:3730括號中的文字指出失敗的命令,若該命令有產生結束狀態及錯誤輸出,也會附上其結束狀態與錯誤輸出的第一行。在 macOS 上,該命令為 `open`,如下例所示;在 Windows 上則為 `rundll32`:

3664 3731 

3665```text theme={null}3732```text theme={null}

3666Error: Couldn't open Claude Desktop (`open` exited 1: LSOpenURLsWithRole() failed for the URL claude://resume?session=<session-id> with error -10814). Open Claude Desktop and try again.3733Error: Couldn't open Claude Desktop (`open` exited 1: LSOpenURLsWithRole() failed for the URL claude://resume?session=<session-id> with error -10814). Open Claude Desktop and try again.

3667```3734```

3668 3735 

3669**該怎麼做:**3736**處理方式:**

3670 3737 

3671* 自己開啟 Claude Desktop,然後再次執行 `/desktop` 或 `claude --desktop`3738* 自行開啟 Claude Desktop,然後再次執行 `/desktop` 或 `claude --desktop`

3672* 若要讀取該命令的完整錯誤輸出,使用 `/debug` 開啟偵錯日誌,再次執行 `/desktop`,或執行 `claude --desktop --debug-file <path>`,然後檢查偵錯日誌3739* 若要查看失敗命令的完整錯誤輸出,請使用 `/debug` 開啟偵錯日誌並再次執行 `/desktop`,或執行 `claude --desktop --debug-file <path>`,然後檢查偵錯日誌

3673 3740 

3674在 v2.1.285 之前,訊息以 `Open Claude Desktop and run /desktop again.` 結尾。在 v2.1.275 之前,它是 `Failed to open Claude Desktop. Please try opening it manually.`,沒有說明什麼失敗。3741在 v2.1.285 之前,此訊息的結尾為 `Open Claude Desktop and run /desktop again.`。在 v2.1.275 之前,訊息為 `Failed to open Claude Desktop. Please try opening it manually.`,且未說明失敗的內容。

3675 3742 

3676<h3 id="terminal-setup-left-your-zed-keymap-unchanged">3743<h3 id="terminal-setup-left-your-zed-keymap-unchanged">

3677 /terminal-setup 保持您的 Zed 快捷鍵不變3744 /terminal-setup left your Zed keymap unchanged

3678</h3>3745</h3>

3679 3746 

3680您在 Zed 中執行了 [`/terminal-setup`](/docs/zh-TW/terminal-config#enter-multiline-prompts),Claude Code 無法完成對您的 Zed `keymap.json` 的更新,所以它保持檔案不變。3747您在 Zed 中執行了 [`/terminal-setup`](/docs/zh-TW/terminal-config#enter-multiline-prompts),而 Claude Code 無法完成對您 Zed `keymap.json` 的更新,因此保留了該檔案的原樣。

3681 3748 

3682每個訊息命名您的快捷鍵的路徑,並以您自己新增的快捷鍵區塊結尾:3749每則訊息都會指出您 keymap 的路徑,並在結尾附上需自行新增的快捷鍵區塊:

3683 3750 

3684```text theme={null}3751```text theme={null}

3685Couldn't update your Zed keymap, so it was left unchanged.3752Couldn't update your Zed keymap, so it was left unchanged.


3687{ "context": "Terminal", "bindings": { "shift-enter": ["terminal::SendText", "\u001b\r"] } }3754{ "context": "Terminal", "bindings": { "shift-enter": ["terminal::SendText", "\u001b\r"] } }

3688```3755```

3689 3756 

3690訊息的第一行命名原因:3757訊息的第一行指出原因:

3691 3758 

3692* `Couldn't read your Zed keymap, so it was left unchanged.`:Claude Code 無法讀取檔案,例如因為檔案權限3759* `Couldn't read your Zed keymap, so it was left unchanged.`:Claude Code 無法讀取該檔案,例如因為檔案權限的緣故

3693* `Your Zed keymap isn't a readable list of keybindings, so it was left unchanged.`:檔案讀取良好,但不解析為快捷鍵區塊的陣列,即使允許 `//` 註釋和尾隨逗號3760* `Your Zed keymap isn't a readable list of keybindings, so it was left unchanged.`:檔案可正常讀取,但即使允許 `//` 註解與尾隨逗號,仍無法解析為快捷鍵區塊的陣列

3694* `Couldn't back up your Zed keymap; not modifying it.`:Claude Code 無法將檔案複製到其旁邊的 `.bak` 備份,所以它沒有變更任何內容3761* `Couldn't back up your Zed keymap; not modifying it.`:Claude Code 無法將檔案複製為其旁邊的 `.bak` 備份,因此未做任何變更

3695* `Couldn't update your Zed keymap, so it was left unchanged.`:合併的結果未驗證為帶有繫結的有效快捷鍵,所以 Claude Code 丟棄它而不是寫入。具有重複鍵的快捷鍵區塊可能導致此情況3762* `Couldn't update your Zed keymap, so it was left unchanged.`:合併後的結果未能驗證為帶有該綁定的有效 keymap,因此 Claude Code 捨棄了結果而未寫入。帶有重複鍵的快捷鍵區塊可能會造成此情況

3696 3763 

3697**該怎麼做:**3764**處理方式:**

3698 3765 

3699* 將訊息中的區塊複製到您 `keymap.json` 中訊息命名的路徑中的頂級陣列3766* 將訊息中的區塊複製到訊息所指路徑下 `keymap.json` 的頂層陣列中

3700* 對於 `isn't a readable list of keybindings`,修復語法錯誤,或使檔案的頂級值成為陣列,然後再次執行 `/terminal-setup`3767* 對於 `isn't a readable list of keybindings`,請修正語法錯誤,或將檔案的頂層值改為陣列,然後再次執行 `/terminal-setup`

3701 3768 

3702在 v2.1.247 之前,`/terminal-setup` 無法解析使用 `//` 註釋或尾隨逗號的 Zed 快捷鍵,它用只有其自己的繫結替換整個檔案,同時報告繫結已安裝。若要恢復較早版本替換的快捷鍵,請使用[輸入多行提示](/docs/zh-TW/terminal-config#enter-multiline-prompts)下描述的 `.bak` 備份檔案。3769在 v2.1.247 之前,`/terminal-setup` 無法解析使用了 `//` 註解或尾隨逗號的 Zed keymap,並會將整個檔案替換為僅包含其自身的綁定,同時回報綁定已安裝。若要還原被早期版本替換的 keymap,請使用 [Enter multiline prompts](/docs/zh-TW/terminal-config#enter-multiline-prompts) 中說明的 `.bak` 備份檔案。

3703 3770 

3704<h3 id="skill-usage-reports-are-not-available-on-this-connection">3771<h3 id="skill-usage-reports-are-not-available-on-this-connection">

3705 此連線上不提供技能使用報告3772 Skill usage reports are not available on this connection

3706</h3>3773</h3>

3707 3774 

3708您在[遠端控制](/docs/zh-TW/remote-control)上、從您的手機或瀏覽器執行了 [`/skill-doctor`](/docs/zh-TW/skills#find-unused-skills)。Claude Code 不會通過遠端控制傳送技能使用報告,並改為回答此訊息:3775您透過 [Remote Control](/docs/zh-TW/remote-control),從手機或瀏覽器執行了 [`/skill-doctor`](/docs/zh-TW/skills#find-unused-skills)。Claude Code 不會透過 Remote Control 傳送 skill 使用報告,而是改以此訊息回覆:

3709 3776 

3710```text theme={null}3777```text theme={null}

3711Skill usage reports are not available on this connection.3778Skill usage reports are not available on this connection.

3712```3779```

3713 3780 

3714**該怎麼做:**3781**處理方式:**

3715 3782 

3716* 在工作階段執行所在的機器上的終端中執行 `/skill-doctor`,或在那裡執行 `claude -p "/skill-doctor"`3783* 在執行該工作階段的機器上,於終端機中執行 `/skill-doctor`,或在該處執行 `claude -p "/skill-doctor"`

3717 3784 

3718<h3 id="custom-output-styles-cant-be-selected-over-remote-control">3785<h3 id="custom-output-styles-cant-be-selected-over-remote-control">

3719 無法通過遠端控制選擇自訂輸出樣式3786 Custom output styles can't be selected over Remote Control

3720</h3>3787</h3>

3721 3788 

3722您從行動應用程式或網路通過[遠端控制](/docs/zh-TW/remote-control)執行了 [`/output-style`](/docs/zh-TW/output-styles#change-your-output-style),或命令在轉向中轉送到工作階段。因為此類轉向可能不來自帳戶擁有者,Claude Code 只在其上列出並選擇[內建樣式](/docs/zh-TW/output-styles#built-in-output-styles),並在命令列出樣式或不識別您給定的名稱時新增此注意。[自訂樣式](/docs/zh-TW/output-styles#create-a-custom-output-style)名稱得到與不存在的名稱相同的回覆:3789您透過 [Remote Control](/docs/zh-TW/remote-control) 從行動應用程式或網頁執行了 [`/output-style`](/docs/zh-TW/output-styles#change-your-output-style),或該命令是透過轉送至工作階段的訊息傳入的。由於這類回合可能並非來自帳戶擁有者,Claude Code 在該回合中只會列出及選擇[內建風格](/docs/zh-TW/output-styles#built-in-output-styles),並在命令列出風格或無法辨識您提供的名稱時,附加此通知。[自訂風格](/docs/zh-TW/output-styles#create-a-custom-output-style)名稱會得到與不存在的名稱相同的回覆:

3723 3790 

3724```text theme={null}3791```text theme={null}

3725Custom output styles can't be selected over Remote Control or from a relayed message. Select one in the session itself, or pick a built-in style here.3792Custom output styles can't be selected over Remote Control or from a relayed message. Select one in the session itself, or pick a built-in style here.

3726```3793```

3727 3794 

3728**該怎麼做:**3795**處理方式:**

3729 3796 

3730* 選擇內建樣式,例如 `/output-style concise`3797* 選擇一個內建風格,例如 `/output-style concise`

3731* 若要使用自訂樣式,在專案的 `.claude/settings.local.json` 中設定 [`outputStyle`](/docs/zh-TW/settings-reference#outputstyle),或在工作階段自己的終端中執行 `/output-style <style>`(如果它有的話)3798* 若要使用自訂風格,請在專案的 `.claude/settings.local.json` 中設定 [`outputStyle`](/docs/zh-TW/settings-reference#outputstyle),或者若工作階段本身有終端機,請在該終端機執行 `/output-style <style>`

3732 3799 

3733<h3 id="output-styles-are-saved-to-local-settings-which-this-session-doesnt-load">3800<h3 id="output-styles-are-saved-to-local-settings-which-this-session-doesnt-load">

3734 輸出樣式被保存到此工作階段不載入的本地設定3801 Output styles are saved to local settings which this session doesn't load

3735</h3>3802</h3>

3736 3803 

3737您嘗試在其設定來源排除 `local` 的工作階段中使用 `/output-style <style>` 或 `/config outputStyle=<style>` 切換[輸出樣式](/docs/zh-TW/output-styles)。範例是 [Agent SDK](/docs/zh-TW/agent-sdk/typescript) 工作階段,其 [`settingSources`](/docs/zh-TW/agent-sdk/typescript#options) 保留 `"local"` 和使用 [`--setting-sources`](/docs/zh-TW/cli-reference#cli-flags) 值保留 `local` 啟動的 CLI 工作階段。兩個命令都將樣式保存到 `.claude/settings.local.json`,此類工作階段永遠不會讀取回,所以 Claude Code 拒絕而不是寫入沒有效果的設定:3804您在設定來源排除了 `local` 的工作階段中,嘗試使用 `/output-style <style>` 或 `/config outputStyle=<style>` 切換[輸出風格](/docs/zh-TW/output-styles)。例如 [`settingSources`](/docs/zh-TW/agent-sdk/typescript#options) 未包含 `"local"` 的 [Agent SDK](/docs/zh-TW/agent-sdk/typescript) 工作階段,以及使用未包含 `local` 的 [`--setting-sources`](/docs/zh-TW/cli-reference#cli-flags) 值啟動的 CLI 工作階段。這兩個命令都會將風格儲存至 `.claude/settings.local.json`,而這類工作階段永遠不會讀回該檔案,因此 Claude Code 會拒絕執行,而不是寫入一個不會生效的設定:

3738 3805 

3739```text theme={null}3806```text theme={null}

3740Output styles are saved to local settings (.claude/settings.local.json), which this session doesn't load, so the style can't be changed here.3807Output styles are saved to local settings (.claude/settings.local.json), which this session doesn't load, so the style can't be changed here.

3741```3808```

3742 3809 

3743**該怎麼做:**3810**處理方式:**

3744 3811 

3745* 將 `local` 新增到工作階段的設定來源並再次切換3812* 將 `local` 加入工作階段的設定來源,然後再次切換

3746* 在工作階段確實載入的設定檔中設定 [`outputStyle`](/docs/zh-TW/settings-reference#outputstyle) 鍵,例如專案中的 `.claude/settings.json` 或 `~/.claude/settings.json`。在 TypeScript SDK 中,改為在內嵌 `settings` 物件內設定 `outputStyle`;請參閱[啟用輸出樣式](/docs/zh-TW/agent-sdk/modifying-system-prompts#activate-an-output-style)3813* 在工作階段確實會載入的設定檔中設定 [`outputStyle`](/docs/zh-TW/settings-reference#outputstyle) 鍵,例如專案中的 `.claude/settings.json` 或 `~/.claude/settings.json`。在 TypeScript SDK 中,請改為在內嵌的 `settings` 物件中設定 `outputStyle`;請參閱 [Activate an output style](/docs/zh-TW/agent-sdk/modifying-system-prompts#activate-an-output-style)

3747 3814 

3748<h2 id="plugin-errors">3815<h2 id="plugin-errors">

3749 Plugin 錯誤3816 Plugin 錯誤


4066 工具錯誤4133 工具錯誤

4067</h2>4134</h2>

4068 4135 

4069這些錯誤來自 Claude 的內建工具。Claude 會自動修正大多數工具錯誤。當需要您進行變更時,該錯誤的**應該怎麼做**清單會說明要變更的內容。4136這些錯誤來自 Claude 的內建工具。Claude 會自行修正大多數工具錯誤。當某個錯誤需要您進行變更時,該錯誤的 **處理方式** 清單會說明需要變更的內容。

4070 4137 

4071<h3 id="agent-would-be-spawned-with-zero-tools">4138<h3 id="agent-would-be-spawned-with-zero-tools">

4072 Agent 會以零個工具生成4139 Agent would be spawned with zero tools

4073</h3>4140</h3>

4074 4141 

4075子代理的 [`tools` 清單](/docs/zh-TW/sub-agents#supported-frontmatter-fields)中的每個項目都無法匹配可用的工具,因此 Claude Code 拒絕啟動子代理:沒有工具,它無法採取行動。該訊息會按出錯原因將您的項目分組:4142subagent 的 [`tools` 清單](/docs/zh-TW/sub-agents#supported-frontmatter-fields) 中的每個項目都無法比對到可用的工具,因此 Claude Code 拒絕啟動該 subagent:沒有任何工具,它就無法執行動作。訊息會依問題類型將您的項目分組:

4076 4143 

4077* **無法識別**:該項目不符合任何工具名稱,通常是打字錯誤,例如 `Grpe` 而非 `Grep`。4144* **Unrecognized**:該項目不符合任何工具名稱,通常是拼字錯誤,例如將 `Grep` 寫成 `Grpe`。

4078* **子代理無法使用**:該項目命名了一個[子代理無法使用](/docs/zh-TW/sub-agents#available-tools)的真實工具。背景子代理保持較小的內建工具集,因此當子代理在背景中執行時(這是預設值),只有前景子代理可以使用的項目會出現在此處。如果您列出 `Agent`,該訊息會改為在下一個群組下報告它。4145* **Not available to subagents**:該項目指定的是實際存在、但 [subagent 無法使用](/docs/zh-TW/sub-agents#available-tools) 的工具。背景 subagent 保留的內建工具集較小,因此當 subagent 會在背景執行時(這是預設行為),只有前景 subagent 能使用的項目就會歸入此組。如果您列出 `Agent`,訊息會改將其歸入下一組。

4079* **在此工作階段中未匹配任何工具**:該項目有效,但目前工作階段中沒有工具符合它,例如沒有連接 GitHub MCP 伺服器的 `mcp__github__*`,或子代理在[深度限制](/docs/zh-TW/sub-agents#let-subagents-spawn-their-own-subagents)處的 `Agent`。4146* **Matched no tools in this session**:該項目有效,但目前工作階段中沒有任何工具與其相符,例如未連線 GitHub MCP 伺服器時的 `mcp__github__*`,或是已達 [深度上限](/docs/zh-TW/sub-agents#let-subagents-spawn-their-own-subagents) 的 subagent 所列的 `Agent`。

4080 4147 

4081省略 `tools` 欄位永遠不會觸發此拒絕。如果您將 `tools` 清單留空,或 `disallowedTools` 移除其中的每個項目,Claude Code 也會跳過拒絕並啟動沒有工具的子代理。4148省略 `tools` 欄位永遠不會觸發此拒絕。如果您將 `tools` 清單留空,或 `disallowedTools` 移除了其中的每個項目,Claude Code 也會略過此拒絕,並在沒有工具的情況下啟動 subagent。

4082 4149 

4083在 v2.1.208 之前,子代理會以零個工具啟動,並可能返回空的或令人困惑的結果。4150在 v2.1.208 之前,subagent 會在沒有工具的情況下啟動,並可能傳回空白或令人困惑的結果。

4084 4151 

4085```text theme={null}4152```text theme={null}

4086Agent 'code-reviewer' would be spawned with zero tools — refusing. Its tools list resolved to nothing: unrecognized [Grpe]. Fix the agent's tools frontmatter or pass a different subagent_type.4153Agent 'code-reviewer' would be spawned with zero tools — refusing. Its tools list resolved to nothing: unrecognized [Grpe]. Fix the agent's tools frontmatter or pass a different subagent_type.

4087```4154```

4088 4155 

4089**應該怎麼做:**4156**處理方式:**

4090 4157 

4091* 根據[子代理可用的工具](/docs/zh-TW/sub-agents#available-tools)修正錯誤命名的每個項目4158* 對照 [subagent 可用的工具](/docs/zh-TW/sub-agents#available-tools),修正錯誤中列出的每個項目

4092* 移除工作階段沒有的工具項目,例如來自未連接伺服器的 MCP 工具4159* 移除工作階段中不存在之工具的項目,例如來自未連線伺服器的 MCP 工具

4093* 對於[背景子代理會捨棄](/docs/zh-TW/sub-agents#available-tools)的工具(例如 `CronCreate`),移除該項目。若要保留該工具,[關閉 fork 模式](/docs/zh-TW/sub-agents#turn-fork-mode-on-or-off)並要求 Claude 在前景中執行子代理4160* 對於 [背景 subagent 會捨棄](/docs/zh-TW/sub-agents#available-tools) 的工具(例如 `CronCreate`),請移除該項目。若要保留該工具,請 [關閉 fork 模式](/docs/zh-TW/sub-agents#turn-fork-mode-on-or-off),並要求 Claude 在前景執行該 subagent

4094* 刪除 `tools` 欄位而不是列出工具,以給予子代理[子代理可用的每個工具](/docs/zh-TW/sub-agents#available-tools)4161* 刪除 `tools` 欄位而不列出工具,即可讓 subagent 取得每個 [subagent 可用的工具](/docs/zh-TW/sub-agents#available-tools)

4095* 對於只包含 `Agent` 的 `tools` 清單,提高[深度限制](/docs/zh-TW/sub-agents#let-subagents-spawn-their-own-subagents)或給予代理至少一個其他工具:Claude Code 在該限制處會保留 `Agent`,因此只有其他工具的清單會解析為零個工具4162* 對於只包含 `Agent` 的 `tools` 清單,請提高 [深度上限](/docs/zh-TW/sub-agents#let-subagents-spawn-their-own-subagents),或至少再給該 agent 一個其他工具:Claude Code 會在達到該上限時保留 `Agent` 不提供,因此除了 `Agent` 之外沒有任何其他項目的清單會解析為沒有工具

4096 4163 

4097<h3 id="file-is-covered-by-a-read-deny-rule">4164<h3 id="file-is-covered-by-a-read-deny-rule">

4098 檔案受到 Read 拒絕規則的涵蓋4165 File is covered by a Read deny rule

4099</h3>4166</h3>

4100 4167 

4101Edit 或 Write 工具在由 [`Read` 拒絕規則](/docs/zh-TW/permissions#read-and-edit)匹配的路徑上被呼叫,包括在該路徑建立新檔案。兩個工具都會變更 Claude 必須能夠讀回的內容,因此 Claude Code 在任何檔案存取之前拒絕該呼叫。NotebookEdit 不受 `Read` 拒絕規則涵蓋。在 v2.1.228 之前,該規則僅阻止 Edit 工具,在 v2.1.208 之前,只有 `Edit` 拒絕規則會阻止編輯。4168Edit 或 Write 工具被呼叫來操作符合 [`Read` 拒絕規則](/docs/zh-TW/permissions#read-and-edit) 的路徑,包括在該路徑建立新檔案。這兩個工具都會變更 Claude 必須能夠讀回的內容,因此 Claude Code 會在存取任何檔案之前拒絕該呼叫。NotebookEdit 不受 `Read` 拒絕規則涵蓋。在 v2.1.228 之前,該規則只會封鎖 Edit 工具;在 v2.1.208 之前,只有 `Edit` 拒絕規則會封鎖編輯。

4102 4169 

4103```text theme={null}4170```text theme={null}

4104File is covered by a Read deny rule in your permission settings and cannot be edited.4171File is covered by a Read deny rule in your permission settings and cannot be edited.

4105```4172```

4106 4173 

4107當 Claude Code 拒絕 Write 工具時,訊息結尾改為 `and cannot be written`。4174當 Claude Code 拒絕 Write 工具時,訊息的結尾會改為 `and cannot be written`。

4108 4175 

4109**應該怎麼做:**4176**處理方式:**

4110 4177 

4111* 如果 Claude 應該能夠變更檔案,請在 `/permissions` 或[設定](/docs/zh-TW/settings-reference#permission-settings)中移除或縮小 `Read` 拒絕規則4178* 如果 Claude 應該能夠變更該檔案,請在 `/permissions` 或 [設定](/docs/zh-TW/settings-reference#permission-settings) 中移除或縮小該 `Read` 拒絕規則

4112* 如果檔案必須保持未觸及,請保留該規則並為相同路徑新增 `Edit` 拒絕規則以同時阻止 NotebookEdit 工具4179* 如果該檔案必須保持不變,請保留該規則,並為相同路徑新增 `Edit` 拒絕規則,以同時封鎖 NotebookEdit 工具

4113 4180 

4114<h3 id="path-cannot-contain-null-bytes">4181<h3 id="path-cannot-contain-null-bytes">

4115 路徑不能包含空位元組4182 Path cannot contain null bytes

4116</h3>4183</h3>

4117 4184 

4118檔案工具呼叫的路徑或模式引數包含空位元組,檔案系統和搜尋工具無法接受。Read、Write、Edit、NotebookEdit、Glob 和 Grep 會檢查此項,訊息會命名工具和引數:4185檔案工具呼叫的路徑或模式引數包含 null 位元組,而檔案系統和搜尋工具無法接受這種字元。Read、Write、Edit、NotebookEdit、Glob 和 Grep 會檢查這一點,訊息會指出工具和引數:

4119 4186 

4120```text theme={null}4187```text theme={null}

4121Read file_path cannot contain null bytes (\0). Remove the null byte and try again.4188Read file_path cannot contain null bytes (\0). Remove the null byte and try again.

4122```4189```

4123 4190 

4124工具呼叫失敗,Claude 看到錯誤,回合繼續。4191該工具呼叫會失敗,Claude 會看到錯誤,回合則會繼續進行。

4125 4192 

4126**應該怎麼做:**4193**處理方式:**

4127 4194 

4128* 您這邊無需做任何事:錯誤會作為工具的結果返回給 Claude,訊息本身會告訴 Claude 移除空位元組並重試4195* 您無需採取任何動作:錯誤會作為工具的結果傳回給 Claude,而訊息本身會告知 Claude 移除 null 位元組並重試

4129 4196 

4130在 v2.1.281 之前,Read、Write、Edit 或 NotebookEdit 路徑中的空位元組會以命名 `Path contains null bytes` 的錯誤結束整個回合,工具永遠不會執行。4197在 v2.1.281 之前,Read、Write、Edit 或 NotebookEdit 路徑中的 null 位元組會以指出 `Path contains null bytes` 的錯誤結束整個回合,且工具從未執行。

4131 4198 

4132<h3 id="subagent-type-is-required">4199<h3 id="subagent-type-is-required">

4133 subagent\_type 是必需的4200 subagent\_type is required

4134</h3>4201</h3>

4135 4202 

4136```text theme={null}4203```text theme={null}

4137subagent_type is required: the general-purpose agent is not available in this session. Available agents: ...4204subagent_type is required: the general-purpose agent is not available in this session. Available agents: ...

4138```4205```

4139 4206 

4140Claude 呼叫了 [Agent 工具](/docs/zh-TW/tools-reference#agent-tool-behavior)但沒有 `subagent_type`,此工作階段沒有[通用子代理](/docs/zh-TW/sub-agents#built-in-subagents)可作為備用。這在兩種設定中是這樣的情況:4207Claude 在未指定 `subagent_type` 的情況下呼叫了 [Agent 工具](/docs/zh-TW/tools-reference#agent-tool-behavior),而此工作階段沒有可供後備使用的 [general-purpose subagent](/docs/zh-TW/sub-agents#built-in-subagents)。這會發生在兩種設定中:

4141 4208 

4142* [`CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS=1`](/docs/zh-TW/env-vars) 在非互動模式中設定,這會移除每個內建子代理4209* 在非互動模式中設定了 [`CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS=1`](/docs/zh-TW/env-vars),這會移除所有內建 subagent

4143* 工作階段的主執行緒代理有一個 [`tools: Agent(...)` 允許清單](/docs/zh-TW/sub-agents#restrict-which-subagents-can-be-spawned),其中不包括 `general-purpose`4210* 工作階段的主執行緒 agent 具有排除了 `general-purpose` 的 [`tools: Agent(...)` 允許清單](/docs/zh-TW/sub-agents#restrict-which-subagents-can-be-spawned)

4144 4211 

4145**應該怎麼做:**4212**處理方式:**

4146 4213 

4147* 通常無需做任何事:訊息會列出工作階段確實擁有的子代理,因此 Claude 可以使用其中一個重試4214* 通常無需任何動作:訊息會列出工作階段中確實存在的 subagent,因此 Claude 可以使用其中之一重試

4148* 如果 Claude 持續失敗,請將 `general-purpose` 新增到 `tools: Agent(...)` 允許清單,或取消設定 `CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS`4215* 如果 Claude 持續失敗,請將 `general-purpose` 加入 `tools: Agent(...)` 允許清單,或取消設定 `CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS`

4149 4216 

4150在 v2.1.235 之前,相同的呼叫失敗並顯示 `Agent type 'general-purpose' not found`。4217在 v2.1.235 之前,相同的呼叫會以 `Agent type 'general-purpose' not found` 失敗。

4151 4218 

4152<h3 id="memory-index-is-over-its-read-limit">4219<h3 id="memory-index-is-over-its-read-limit">

4153 記憶體索引超過其讀取限制4220 Memory index is over its read limit

4154</h3>4221</h3>

4155 4222 

4156Claude 寫入[自動記憶體](/docs/zh-TW/memory#auto-memory)索引 `MEMORY.md` 並將其留在其讀取限制之一上方:200 行或 25KB。寫入成功,但只有前 200 行或 25KB(以先到者為準)在工作階段開始時載入,因此超過限制的所有內容在每次讀取索引時都會被捨棄。在 v2.1.210 之前,超限索引在下次載入時會被無聲地截斷,沒有寫入時間訊號。4223Claude 寫入了 [自動記憶](/docs/zh-TW/memory#auto-memory) 索引 `MEMORY.md`,並使其超過其中一項讀取上限:200 行或 25KB。寫入已成功,但在工作階段開始時只會載入前 200 行或 25KB(以先達到者為準),因此每次讀取索引時,超出上限的所有內容都會被捨棄。在 v2.1.210 之前,超過上限的索引會在下次載入時被無聲截斷,且在寫入時不會有任何提示。

4157 4224 

4158```text theme={null}4225```text theme={null}

4159Error: this write left the memory index at MEMORY.md at 214 lines, over its 200-line read limit. The write succeeded, but everything past the limit is silently dropped each time the index is loaded — entries at the end are already invisible to readers. Rewrite it to under 140 lines now: keep one line per entry, move detail into topic files, and merge or drop stale entries.4226Error: this write left the memory index at MEMORY.md at 214 lines, over its 200-line read limit. The write succeeded, but everything past the limit is silently dropped each time the index is loaded — entries at the end are already invisible to readers. Rewrite it to under 140 lines now: keep one line per entry, move detail into topic files, and merge or drop stale entries.

4160```4227```

4161 4228 

4162只有載入的內容才計入限制。YAML frontmatter 和區塊級 HTML 註解在索引載入前會被移除,因此它們被排除在測量之外。在 v2.1.211 之前,Claude Code 測量原始檔案,frontmatter 或註解即使在載入的內容符合時也可能觸發此錯誤。4229只有會被載入的內容才會計入上限。YAML frontmatter 和區塊層級的 HTML 註解會在載入索引前被移除,因此不計入測量。在 v2.1.211 之前,Claude Code 會測量原始檔案,即使載入的內容符合上限,frontmatter 或註解也可能觸發此錯誤。

4163 4230 

4164Claude Code 在寫入後將錯誤傳遞給 Claude,而不是在您的終端中列印為橫幅,因此您可能只在文字記錄中注意到它。4231Claude Code 會在寫入後將錯誤傳遞給 Claude,而不是在您的終端機中以橫幅形式顯示,因此您可能只會在逐字稿中注意到它。

4165 4232 

4166當 Claude 的寫入使檔案接近限制但未超過時,Claude Code 會返回更溫和的提醒以壓縮索引,而不是此錯誤。4233當 Claude 的寫入使檔案接近上限但未超過時,Claude Code 會傳回較溫和的提醒,要求壓縮索引,而非此錯誤。

4167 4234 

4168**應該怎麼做:**4235**處理方式:**

4169 4236 

4170* 讓 Claude 重寫 `MEMORY.md`,或要求它:每個項目保留一行,將詳細資訊移到主題檔案中,並合併或捨棄過時的項目4237* 讓 Claude 重寫 `MEMORY.md`,或要求它這麼做:每個項目保留一行,將細節移至主題檔案,並合併或刪除過時的項目

4171* 若要自己修剪索引,請參閱[稽核和編輯您的記憶體](/docs/zh-TW/memory#audit-and-edit-your-memory)4238* 若要自行精簡索引,請參閱 [稽核與編輯您的記憶](/docs/zh-TW/memory#audit-and-edit-your-memory)

4172 4239 

4173<h3 id="pkill-pattern-matches-the-claude-code-process">4240<h3 id="pkill-pattern-matches-the-claude-code-process">

4174 pkill 模式符合 Claude Code 程序4241 pkill pattern matches the Claude Code process

4175</h3>4242</h3>

4176 4243 

4177Bash 工具呼叫中的 `pkill` 命令使用了一個模式(通常帶有 `-f`),該模式符合 Claude Code 程序本身,因此 Claude Code 拒絕該命令而不是讓它結束工作階段。Claude Code 在執行 `pkill` 之前使用 `pgrep` 測試模式,並在結果中包含其自己的程序 ID 時拒絕。檢查僅在 Linux 上執行;在 macOS 上,`pkill` 不經修改地執行。在 v2.1.214 之前,命令執行,符合的模式在回合中途殺死了 Claude Code 工作階段。4244Bash 工具呼叫中的 `pkill` 命令使用了符合 Claude Code 程序本身的模式(通常搭配 `-f`),因此 Claude Code 會拒絕該命令,而不是讓它結束工作階段。Claude Code 會在執行 `pkill` 之前以 `pgrep` 測試該模式,若結果中包含其自身的程序 ID 便會拒絕。此檢查僅在 Linux 上執行;在 macOS 上,`pkill` 會原封不動地執行。在 v2.1.214 之前,該命令會執行,且符合的模式會在回合進行中終止 Claude Code 工作階段。

4178 4245 

4179```text theme={null}4246```text theme={null}

4180pkill: refusing to run — this pattern matches the Claude CLI process (PID 12345). Narrow the pattern, or target your own children with `pkill -P $$ ...`.4247pkill: refusing to run — this pattern matches the Claude CLI process (PID 12345). Narrow the pattern, or target your own children with `pkill -P $$ ...`.

4181```4248```

4182 4249 

4183拒絕出現在 Bash 工具結果中,而不是作為您終端中的橫幅,Claude 通常會自行調整命令。4250拒絕訊息會出現在 Bash 工具結果中,而不是以橫幅形式出現在您的終端機中,Claude 通常會自行調整命令。

4184 4251 

4185**應該怎麼做:**4252**處理方式:**

4186 4253 

4187* 縮小模式,使其僅符合預期的程序,例如目標二進位檔的完整路徑而不是短子字串4254* 縮小模式範圍,使其只符合預期的程序,例如使用目標二進位檔的完整路徑,而非簡短的子字串

4188* 若要停止由目前 shell 啟動的程序,請使用 `pkill -P $$` 搭配模式,這會將符合限制為 shell 自己的子程序4255* 若要停止由目前 shell 啟動的程序,請將 `pkill -P $$` 與模式搭配使用,這會將比對範圍限制在該 shell 自身的子程序

4189 4256 

4190<h3 id="failed-to-write-to-a-teammate-inbox">4257<h3 id="failed-to-write-to-a-teammate-inbox">

4191 無法寫入隊友的收件匣4258 Failed to write to a teammate's inbox

4192</h3>4259</h3>

4193 4260 

4194Claude Code 無法將訊息寫入 `~/.claude/teams/{team-name}/inboxes/` 下隊友的信箱檔案,因此收件者沒有收到任何內容。當 Claude Code 無法建立或更新檔案時寫入失敗,例如因為磁碟已滿、目錄不可寫,或另一個代理長時間持有收件匣鎖。在 v2.1.224 之前,Claude Code 即使寫入失敗也會報告訊息已傳送。4261Claude Code 無法將訊息寫入 `~/.claude/teams/{team-name}/inboxes/` 下隊員的信箱檔案,因此收件者沒有收到任何內容。當 Claude Code 無法建立或更新該檔案時,寫入就會失敗,例如磁碟已滿、目錄不可寫入,或另一個 agent 持有收件匣鎖定過久。在 v2.1.224 之前,即使寫入失敗,Claude Code 仍會回報訊息已傳送。

4195 4262 

4196錯誤出現在傳送代理的工具結果中,而不是作為您終端中的橫幅,其文字告訴 Claude 重試:4263錯誤會出現在傳送端 agent 的工具結果中,而不是以橫幅形式出現在您的終端機中,其文字會告知 Claude 重試:

4197 4264 

4198```text theme={null}4265```text theme={null}

4199Failed to write to researcher's inbox — nothing was sent. Try again, or message the lead.4266Failed to write to researcher's inbox — nothing was sent. Try again, or message the lead.

4200```4267```

4201 4268 

4202結構化[代理團隊](/docs/zh-TW/agent-teams)協議訊息以相同方式失敗,錯誤命名未傳遞的訊息:當 Claude Code 無法寫入計畫核准、計畫拒絕、關閉要求或關閉拒絕時,錯誤讀作 `Failed to write the <message> to <name>'s inbox — nothing was sent`。該清單中的 `plan approval` 是領導者核准隊友計畫的決定;隊友的計畫提交是單獨的 `plan approval request` 訊息。該訊息和另外兩個協議訊息帶有自己的訊息文字和後果:4269結構化的 [agent team](/docs/zh-TW/agent-teams) 協定訊息也會以相同方式失敗,且錯誤會指出未送達的訊息:當 Claude Code 無法寫入計畫核准、計畫駁回、關閉請求或關閉拒絕時,錯誤內容為 `Failed to write the <message> to <name>'s inbox — nothing was sent`。該清單中的 `plan approval` 是組長核准隊員計畫的決定;隊員提交的計畫則是另一則 `plan approval request` 訊息。該訊息與另外兩則協定訊息有各自的訊息文字與後果:

4203 4270 

4204* `Failed to write the plan approval request to the lead's inbox — plan not submitted; try again`:隊友的計畫永遠沒有到達領導者,隊友保持在計畫模式直到重新提交成功4271* `Failed to write the plan approval request to the lead's inbox — plan not submitted; try again`:隊員的計畫從未送達組長,且隊員會停留在 plan mode,直到重新提交成功為止

4205* `The permission request could not be delivered to the team lead (mailbox write failed)`:隊友的權限要求永遠沒有到達領導者,因此沒有人核准工具呼叫4272* `The permission request could not be delivered to the team lead (mailbox write failed)`:隊員的權限請求從未送達組長,因此沒有人核准該工具呼叫

4206* `The confirmation could not be written to team-lead's inbox.`:關閉核准本身生效,隊友退出;只有對領導者的確認遺失4273* `The confirmation could not be written to team-lead's inbox.`:關閉核准本身已生效,隊員會結束;只是缺少給組長的確認

4207 4274 

4208當您自己訊息隊友時,在領導者工作階段中輸入 `@name` 後跟訊息,相同的失敗會顯示為通知 `Couldn't write to @name's inbox — message not sent. Try again.`,Claude Code 會將您的文字保留在提示框中,以便您可以再次傳送。4275當您自行傳訊息給隊員時(在組長工作階段中輸入 `@name` 後接訊息),相同的失敗會以通知形式出現,即 `Couldn't write to @name's inbox — message not sent. Try again.`,且 Claude Code 會將您的文字保留在提示詞輸入框中,以便您再次傳送。

4209 4276 

4210**應該怎麼做:**4277**處理方式:**

4211 4278 

4212* 要求傳送者重新傳送訊息;收件匣鎖的爭用是暫時的,在重試時會清除4279* 請傳送者重新傳送訊息;收件匣鎖定的爭用是暫時性的,重試時便會解除

4213* 檢查可用磁碟空間,並檢查 `~/.claude/teams` 及其下的檔案是否可由您的使用者寫入4280* 檢查可用磁碟空間,並確認 `~/.claude/teams` 及其下的檔案可由您的使用者寫入

4214 4281 

4215<h3 id="teammate-agent-definition-not-restored">4282<h3 id="teammate-agent-definition-not-restored">

4216 隊友的代理定義未被復原4283 Teammate's agent definition was not restored

4217</h3>4284</h3>

4218 4285 

4219Claude 訊息了一個已停止的[代理團隊](/docs/zh-TW/agent-teams)隊友,Claude Code 將其恢復而沒有重新應用[子代理定義](/docs/zh-TW/agent-teams#use-subagent-definitions-for-teammates)它是從中生成的,因為其定義檔案來自沒有已儲存信任的資料夾。通知在傳送代理的工具結果中的恢復報告之後:4286Claude 傳訊息給一位已停止的 [agent team](/docs/zh-TW/agent-teams) 隊員,Claude Code 將其恢復,但沒有重新套用它最初據以產生的 [subagent 定義](/docs/zh-TW/agent-teams#use-subagent-definitions-for-teammates),因為其定義檔案來自沒有已儲存信任的資料夾。此通知會接在傳送端 agent 工具結果中的恢復報告之後:

4220 4287 

4221```text wrap theme={null}4288```text wrap theme={null}

4222Its 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.4289Its 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.

4223```4290```

4224 4291 

4225檢查適用於專案的 `.claude/agents/` 目錄或 `--add-dir` 目錄中的定義,接受父資料夾的信任對話不滿足它。4292此檢查適用於專案或 `--add-dir` 目錄之 `.claude/agents/` 目錄中的定義,而接受上層資料夾的信任對話框並不能滿足此檢查。

4226 4293 

4227**應該怎麼做:**4294**處理方式:**

4228 4295 

4229* 在[偵錯日誌](/docs/zh-TW/debug-your-config)命名的資料夾中執行 `claude` 並接受信任對話。下次 Claude Code 恢復隊友時會重新應用定義;您不需要重新啟動領導者工作階段4296* 在 [除錯日誌](/docs/zh-TW/debug-your-config) 指出的資料夾中執行 `claude`,並接受信任對話框。下次 Claude Code 恢復該隊員時,便會重新套用定義;您不需要重新啟動組長工作階段

4230* 或在 `~/.claude.json` 中將 `hasTrustDialogAccepted` 項目設定為 `true`,使用偵錯日誌列印的確切 `projects["<path>"]` 鍵4297* 或者,在 `~/.claude.json` 中將 `hasTrustDialogAccepted` 項目設為 `true`,並使用除錯日誌印出的確切 `projects["<path>"]` 鍵

4231 4298 

4232<h3 id="message-too-large-for-cross-session-delivery">4299<h3 id="message-too-large-for-cross-session-delivery">

4233 跨工作階段傳遞的訊息太大4300 Message too large for cross-session delivery

4234</h3>4301</h3>

4235 4302 

4236Claude 的[跨工作階段訊息](/docs/zh-TW/cross-session-messaging)到此機器上您的另一個工作階段太長而無法傳送。Claude Code 拒絕了它,接收工作階段沒有收到任何內容。拒絕出現在傳送工作階段的工具結果中,而不是作為您終端中的橫幅。它命名兩個大小以及如何使訊息符合:4303Claude 傳送給您在此機器上另一個工作階段的 [跨工作階段訊息](/docs/zh-TW/cross-session-messaging) 過長,無法傳送。Claude Code 拒絕了它,接收端工作階段沒有收到任何內容。拒絕訊息會出現在傳送端工作階段的工具結果中,而不是以橫幅形式出現在您的終端機中。它會指出兩個大小以及如何讓訊息符合限制:

4237 4304 

4238```text wrap theme={null}4305```text wrap theme={null}

4239Failed to send to api-worker: Message too large for cross-session delivery: the serialized message is 1,203,844 characters and the limit is 1,048,576. Shorten the message text — put bulk content in a file the recipient can read rather than in the message — or split it into smaller messages.4306Failed to send to api-worker: Message too large for cross-session delivery: the serialized message is 1,203,844 characters and the limit is 1,048,576. Shorten the message text — put bulk content in a file the recipient can read rather than in the message — or split it into smaller messages.

4240```4307```

4241 4308 

4242重新傳送相同的文字以相同方式失敗。4309重新傳送相同的文字也會以相同方式失敗。

4243 4310 

4244**應該怎麼做:**4311**處理方式:**

4245 4312 

4246* 要求 Claude 總結訊息,或將大量內容放在收件者可以讀取的檔案中4313* 要求 Claude 摘要該訊息,或將大量內容放入檔案並傳送該檔案的路徑

4247* 要求 Claude 將內容分割成幾個較短的訊息4314* 要求 Claude 將內容拆分成數則較短的訊息

4248 4315 

4249在 v2.1.235 之前,Claude Code 報告超大訊息已傳送。接收工作階段未讀地捨棄了它。4316在 v2.1.235 之前,Claude Code 會將過大的訊息回報為已傳送。接收端工作階段會在未讀取的情況下將其捨棄。

4250 4317 

4251<h3 id="too-many-messages-to-this-session-just-now">4318<h3 id="too-many-messages-to-this-session-just-now">

4252 此工作階段剛才收到太多訊息4319 Too many messages to this session just now

4253</h3>4320</h3>

4254 4321 

4255Claude 向此機器上您的一個工作階段傳送了快速的[跨工作階段訊息](/docs/zh-TW/cross-session-messaging)爆發,爆發達到該工作階段的收件匣接受的內容。Claude Code 拒絕了下一個傳送,接收工作階段沒有收到任何內容。拒絕出現在傳送工作階段的工具結果中,而不是作為您終端中的橫幅:4322Claude 向您在此機器上的某個工作階段快速連續傳送了大量 [跨工作階段訊息](/docs/zh-TW/cross-session-messaging),而這一連串訊息已達該工作階段收件匣所能接受的量。Claude Code 拒絕了下一次傳送,接收端工作階段沒有從中收到任何內容。拒絕訊息會出現在傳送端工作階段的工具結果中,而不是以橫幅形式出現在您的終端機中:

4256 4323 

4257```text wrap theme={null}4324```text wrap theme={null}

4258Failed to send to api-worker: Too many messages to this session just now: 30 were sent recently and more would be dropped by its rate limit, so this one was not sent. Batch what remains into one message, or wait a little before sending more.4325Failed to send to api-worker: Too many messages to this session just now: 30 were sent recently and more would be dropped by its rate limit, so this one was not sent. Batch what remains into one message, or wait a little before sending more.

4259```4326```

4260 4327 

4261**應該怎麼做:**4328**處理方式:**

4262 4329 

4263* 通常無需做任何事:Claude 將剩餘內容批次處理為一個訊息,或在傳送更多內容之前等待4330* 通常無需任何動作:Claude 會將剩餘內容合併成一則訊息,或在傳送更多訊息前稍候

4264* 如果您自己提示了爆發,要求 Claude 將剩餘內容合併為單一訊息4331* 如果是您自己促成了這一連串訊息,請要求 Claude 將剩餘內容合併成單一訊息

4265 4332 

4266在 v2.1.236 之前,Claude Code 報告這些傳送已傳送。接收工作階段未讀地捨棄了它們。4333在 v2.1.236 之前,Claude Code 會將這些傳送回報為已傳送。接收端工作階段會在未讀取的情況下將其捨棄。

4267 4334 

4268<h3 id="cross-session-message-dropped-at-the-inbox">4335<h3 id="cross-session-message-dropped-at-the-inbox">

4269 跨工作階段訊息在收件者工作階段的收件匣被捨棄4336 Cross-session message was dropped at the recipient session's inbox

4270</h3>4337</h3>

4271 4338 

4272Claude 傳送了[跨工作階段訊息](/docs/zh-TW/cross-session-messaging)到此機器上您的另一個工作階段,該工作階段的收件匣在 Claude 在該工作階段中讀取它之前捨棄了它。該行命名收件者的位址,當收件者提供原因時,在破折號後新增原因:4339Claude 傳送了一則 [跨工作階段訊息](/docs/zh-TW/cross-session-messaging) 給您在此機器上的另一個工作階段,而該工作階段的收件匣在該工作階段中的 Claude 讀取之前就將其捨棄。這一行會指出收件者的位址,若收件者提供了原因,則會在破折號後附上原因:

4273 4340 

4274```text wrap theme={null}4341```text wrap theme={null}

4275Cross-session message was dropped at the recipient session's inbox (recipient: uds:/tmp/cc-socks/13605.sock) and not delivered — its queue of undelivered peer messages was full. Claude was told not to resend right away.4342Cross-session message was dropped at the recipient session's inbox (recipient: uds:/tmp/cc-socks/13605.sock) and not delivered — its queue of undelivered peer messages was full. Claude was told not to resend right away.

4276```4343```

4277 4344 

4278一行可以涵蓋多個捨棄的訊息。然後它以複數開始,例如 `Cross-session messages (12) were dropped`。若要找到位址屬於哪個工作階段,請將其與 `/status` 在每個工作階段中顯示的 [`Peer address` 列](/docs/zh-TW/cross-session-messaging#the-sessions-inbox-socket)進行比較。4345一行可以涵蓋數則被捨棄的訊息,此時開頭會使用複數形式,例如 `Cross-session messages (12) were dropped`。若要找出某個位址屬於哪個工作階段,請將其與每個工作階段中 `/status` 顯示的 [`Peer address` 列](/docs/zh-TW/cross-session-messaging#the-sessions-inbox-socket) 進行比對。

4279 4346 

4280在破折號後,該行給出以下一個或多個原因:4347在破折號之後,這一行會提供下列一個或多個原因:

4281 4348 

4282* `its queue of undelivered peer messages was full`:收件者已經持有來自其他工作階段的許多未傳遞訊息,達到其佇列允許的數量4349* `its queue of undelivered peer messages was full`:收件者已持有其佇列所允許的最大數量、來自其他工作階段的未送達訊息

4283* `you sent faster than that session accepts`:傳送工作階段的訊息到達速度比收件者從一個傳送者接受的速度快4350* `you sent faster than that session accepts`:傳送端工作階段的訊息抵達速度,超過收件者從單一傳送者所接受的速度

4284* `it repeated your previous message`:訊息與傳送工作階段不久前傳送給此收件者的訊息相同4351* `it repeated your previous message`:該訊息與傳送端工作階段不久前傳送給此收件者的訊息完全相同

4285* `a relay loop between sessions was cut`:訊息繼續了工作階段相互訊息的鏈,該鏈已通過收件者太多次或變得太長4352* `a relay loop between sessions was cut`:該訊息延續了工作階段之間互相傳訊的鏈結,而該鏈結經過收件者的次數過多或長度過長

4286 4353 

4287**應該怎麼做:**4354**處理方式:**

4288 4355 

4289* 假設收件者從未看到捨棄的訊息。Claude Code 告訴 Claude 相同的內容,並告訴它改為在稍後的一個訊息中包含仍然重要的任何內容,而不是立即重新傳送4356* 假設收件者從未看到被捨棄的訊息。Claude Code 也會如此告知 Claude,並告訴它將仍然重要的內容納入稍後的一則訊息中,而不是立即重新傳送

4290* 如果您的工作階段相互傳送頻繁的更新,要求 Claude 傳送較少、較大的訊息,例如工作階段完成其工作時的一份報告4357* 如果您的工作階段會頻繁地互相傳送更新,請要求 Claude 傳送較少但較大的訊息,例如在某個工作階段完成工作時傳送一份報告

4291* 對於 `a relay loop between sessions was cut`,在其中一個工作階段中自己輸入下一個指令。Claude 為回應您自己的提示而傳送的訊息開始新的鏈4358* 對於 `a relay loop between sessions was cut`,請自行在其中一個工作階段中輸入下一個指令。Claude 為回應您自己的提示詞而傳送的訊息會開始一條新的鏈結

4292 4359 

4293在 v2.1.238 之前,當收件者的收件匣捨棄訊息時,傳送工作階段沒有收到報告。4360在 v2.1.238 之前,當收件者的收件匣捨棄訊息時,傳送端工作階段不會收到任何報告。

4294 4361 

4295<h3 id="refusing-to-send-a-cross-session-message">4362<h3 id="refusing-to-send-a-cross-session-message">

4296 拒絕傳送跨工作階段訊息4363 Refusing to send a cross-session message

4297</h3>4364</h3>

4298 4365 

4299在 Claude Code 將[跨工作階段訊息](/docs/zh-TW/cross-session-messaging)寫入此機器上您的另一個工作階段之前,它會檢查目標工作階段的收件匣通訊端是否是訊息定址到的端點。當檢查失敗時,Claude Code 拒絕傳送,目標工作階段收不到任何內容。對於 Claude 傳送的訊息,拒絕出現在傳送工作階段的工具結果中:4366在 Claude Code 將 [跨工作階段訊息](/docs/zh-TW/cross-session-messaging) 寫入您在此機器上的另一個工作階段之前,它會檢查目標工作階段的收件匣 socket 是否就是該訊息所指定的端點。當檢查失敗時,Claude Code 會在傳送端工作階段中拒絕傳送,目標工作階段不會收到任何內容。對於 Claude 傳送的訊息,拒絕訊息會出現在傳送端工作階段的工具結果中:

4300 4367 

4301```text theme={null}4368```text theme={null}

4302Failed to send to api-worker: Refusing to send: reply target is a symlink4369Failed to send to api-worker: Refusing to send: reply target is a symlink

4303```4370```

4304 4371 

4305`Refusing to send:` 之後的文字命名失敗的檢查:4372`Refusing to send:` 之後的文字會指出失敗的檢查:

4306 4373 

4307* `reply target is a symlink`:符號連結位於目標工作階段的通訊端路徑。Claude Code 不會透過它傳遞,因為連結可能會將訊息重新導向到目標工作階段未建立的端點。4374* `reply target is a symlink`:目標工作階段的 socket 路徑上有一個符號連結。Claude Code 不會透過它傳遞,因為該處的連結可能會將訊息重新導向至非目標工作階段建立的端點。

4308* `cannot vet reply target`:Claude Code 根本無法檢查目標路徑,例如因為讀取失敗並出現權限錯誤。4375* `cannot vet reply target`:Claude Code 完全無法檢查目標路徑,例如讀取時因權限錯誤而失敗。

4309 4376 

4310**應該怎麼做:**4377**處理方式:**

4311 4378 

4312* 通常無需做任何事:檢查會防止訊息到達定址到的工作階段以外的端點,沒有任何內容被傳送4379* 通常無需任何動作:這些檢查可防止訊息送達其所指定工作階段以外的端點,且沒有傳送任何內容

4313* 如果 `reply target is a symlink` 對一個工作階段重複,檢查在該工作階段的通訊端路徑(顯示在其 `/status` 下的 `Peer address`)建立連結的內容4380* 如果 `reply target is a symlink` 在某個工作階段重複出現,請檢查是什麼在該工作階段的 socket 路徑上建立了連結,該路徑會顯示在其 `/status` 的 `Peer address` 下

4314 4381 

4315<h3 id="refusing-after-a-symlink-changed">4382<h3 id="refusing-after-a-symlink-changed">

4316 拒絕讀取、寫入或搜尋路徑4383 Refusing to read, write, or search a path

4317</h3>4384</h3>

4318 4385 

4319Claude Code 檢查檔案路徑的[權限規則](/docs/zh-TW/permissions#read-and-edit),然後在工具開啟檔案或啟動搜尋時再次確認該解析。當它無法確認路徑仍然導向檢查核准的位置時,Claude Code 拒絕操作而不是跟隨它。拒絕出現在工具結果中:4386Claude Code 會檢查檔案路徑的 [權限規則](/docs/zh-TW/permissions#read-and-edit),然後在工具開啟檔案或開始搜尋時再次確認該解析結果。當它無法確認該路徑仍通往檢查所核准的位置時,Claude Code 會拒絕該操作,而不是跟隨它。拒絕訊息會出現在工具結果中:

4320 4387 

4321```text wrap theme={null}4388```text wrap theme={null}

4322Refusing to read /path/to/file: its symlink resolution changed after permission was checked (a link on the way now leads somewhere the check did not see). If a link in the working directory is being rewritten concurrently, stop that and retry.4389Refusing to read /path/to/file: its symlink resolution changed after permission was checked (a link on the way now leads somewhere the check did not see). If a link in the working directory is being rewritten concurrently, stop that and retry.

4323```4390```

4324 4391 

4325每個拒絕命名其原因:4392每個拒絕都會指出其原因:

4326 4393 

4327* `its symlink resolution changed after permission was checked`:路徑上的符號連結或 Grep 或 Glob 搜尋根在權限檢查和操作之間被取代。在讀取拒絕中,括號中的短語命名哪個比較失敗。4394* `its symlink resolution changed after permission was checked`:路徑上或 Grep、Glob 搜尋根目錄上的符號連結,在權限檢查與操作之間遭到替換。在讀取拒絕中,括號內的文字會指出哪一項比對失敗。

4328* `its parent-directory symlink resolution changed after permission was checked`:寫入路徑通過的目錄不再解析為核准的位置4395* `its parent-directory symlink resolution changed after permission was checked`:寫入路徑所經過的某個目錄不再解析至已核准的位置

4329* `where it leads on disk could not be determined (a link on the way could not be examined, or the links do not resolve)`:Claude Code 無法跟隨路徑到磁碟上的最終位置,例如因為路徑上的符號連結形成迴圈4396* `where it leads on disk could not be determined (a link on the way could not be examined, or the links do not resolve)`:Claude Code 無法沿著路徑找到磁碟上的最終位置,例如因為路徑上的符號連結形成迴圈

4330* `it is a symbolic link. Write to the link's target path instead`:符號連結位於核准的寫入位置本身,例如 `CLAUDE.md` 是 `AGENTS.md` 的符號連結;訊息將 Claude 導向連結的目標4397* `it is a symbolic link. Write to the link's target path instead`:要求的寫入位置本身就是符號連結,例如作為指向 `AGENTS.md` 之符號連結的 `CLAUDE.md`;訊息會引導 Claude 改用該連結的目標

4331* `Refusing to write through symlink: <path>. Resolve the symlink and pass the real target path explicitly.`:當另一個寫入器開啟檔案時捕獲的相同條件,例如寫入符號連結的 `.mcp.json`4398* `Refusing to write through symlink: <path>. Resolve the symlink and pass the real target path explicitly.`:在另一個寫入器開啟檔案時偵測到的相同情況,例如寫入作為符號連結的 `.mcp.json`

4332* `Refusing to write into symlinked directory: <path>`:持有檔案的目錄本身是符號連結,例如專案的 `.claude/` 目錄連結到另一位置4399* `Refusing to write into symlinked directory: <path>`:存放該檔案的目錄本身就是符號連結,例如連結至其他位置的專案 `.claude/` 目錄

4333* `a path one of its Read deny rules is written through changed while the search was being prepared. Retry.`:搜尋的 `Read` 拒絕規則命名通過符號連結的路徑,該連結在 Claude Code 準備搜尋時變更4400* `a path one of its Read deny rules is written through changed while the search was being prepared. Retry.`:搜尋所適用的某條 `Read` 拒絕規則指定了一個經過符號連結的路徑,而該連結在 Claude Code 準備搜尋時發生了變更

4334* `it could not be opened (EACCES) — it is unreadable, or is being replaced concurrently.`:搜尋根存在但無法開啟;括號中的代碼是作業系統錯誤4401* `it could not be opened (EACCES) — it is unreadable, or is being replaced concurrently.`:搜尋根目錄存在,但無法開啟;括號內的代碼是作業系統錯誤

4335* `its permission check expired before it ran (too many concurrent file operations). Retry.`:Claude Code 在許多同時檔案操作下驅逐核准記錄,工具使用它之前;重試執行新鮮的權限檢查4402* `its permission check expired before it ran (too many concurrent file operations). Retry.`:在大量同時進行的檔案操作下,Claude Code 在工具使用核准記錄之前就將其逐出;重試會執行新的權限檢查

4336* `ripgrep was found only by name on PATH, and a search outside the working directory cannot apply your Read deny rules in that configuration`:Claude Code 無法將 `rg` 二進位檔解析為絕對路徑,因此它拒絕工作目錄外的搜尋,而不是執行您的拒絕規則不涵蓋的搜尋4403* `ripgrep was found only by name on PATH, and a search outside the working directory cannot apply your Read deny rules in that configuration`:Claude Code 無法將 `rg` 二進位檔解析為絕對路徑,因此會拒絕工作目錄以外的搜尋,而不是執行一個您的拒絕規則無法涵蓋的搜尋

4337 4404 

4338**應該怎麼做:**4405**處理方式:**

4339 4406 

4340* 通常無需做任何事:拒絕到達 Claude 作為工具結果,被拒絕的操作不執行4407* 通常無需任何動作:拒絕會作為工具結果傳遞給 Claude,被拒絕的操作不會執行

4341* 如果符號連結拒絕在一個路徑上重複,找到什麼持續重寫那裡的連結,例如建置工具或檔案監視程式,或要求 Claude 使用檔案的已解析路徑而不是連結的路徑4408* 如果符號連結拒絕在某個路徑上重複出現,請找出持續改寫該處連結的來源,例如建置工具或檔案監看程式,或要求 Claude 使用檔案的解析後路徑,而非連結路徑

4342* 如果此拒絕在 Windows 上 Claude Code 在 AppContainer 或受限權杖沙箱內執行時出現,升級到 v2.1.265 或更新版本4409* 如果 Claude Code 在 Windows 上於 AppContainer 或受限權杖沙箱中執行時,每個檔案都出現此拒絕,請升級至 v2.1.265 或更新版本

4343* 如果讀取拒絕在 macOS 上出現,針對沒有任何內容重寫的檔案,例如拖入提示的螢幕擷取畫面,升級到 v2.1.273 或更新版本4410* 如果在 macOS 上,對於沒有任何程式在改寫的檔案(例如拖曳到提示詞中的螢幕截圖)出現讀取拒絕,請升級至 v2.1.273 或更新版本

4344* 對於 ripgrep 拒絕,使用您的套件管理員安裝 ripgrep,使 `rg` 解析為 `PATH` 上的絕對路徑,或將搜尋保留在工作目錄下4411* 對於 ripgrep 拒絕,請使用您的套件管理員安裝 ripgrep,使 `rg` 能在 `PATH` 上解析為絕對路徑,或將搜尋保持在工作目錄之下

4345 4412 

4346在 v2.1.251 之前,Claude Code 僅針對檔案寫入重新檢查路徑的解析,因此在權限檢查後取代的連結可能會將讀取或搜尋重新導向到不同位置而沒有訊息。其中,只有父目錄、透過符號連結和符號連結目錄寫入拒絕出現在較早的版本上。4413在 v2.1.251 之前,Claude Code 只會針對檔案寫入重新檢查路徑的解析結果,因此在權限檢查後遭替換的連結可能會在沒有任何訊息的情況下,將讀取或搜尋重新導向至不同的位置。在這些拒絕中,只有上層目錄、透過符號連結寫入,以及符號連結目錄這幾種寫入拒絕會出現在較早的版本中。

4347 4414 

4348在 v2.1.280 之前,`where it leads on disk could not be determined` 拒絕沒有出現。4415在 v2.1.280 之前,`where it leads on disk could not be determined` 拒絕不會出現。

4349 4416 

4350<h3 id="task-output-swap-refused">4417<h3 id="task-output-swap-refused">

4351 工作輸出交換被拒絕4418 Task output swap refused

4352</h3>4419</h3>

4353 4420 

4354Claude Code 將每個 Bash 命令的輸出儲存到其暫存目錄下的檔案。每次它開啟其中一個檔案時,它都會檢查路徑是否仍然導向它建立的檔案,沒有符號連結、額外硬連結或移動的目錄重新導向它。此訊息表示該檢查失敗,因此 Claude Code 拒絕操作而不是透過該路徑寫入或讀取輸出。訊息出現在 Bash 工具結果中:4421Claude Code 會將每個 Bash 命令的輸出儲存到其暫存目錄下的檔案中。每次開啟這些檔案時,它都會檢查路徑是否仍通往它所建立的檔案,且沒有符號連結、額外的硬連結或被移動的目錄將其重新導向。此訊息表示該檢查失敗,因此 Claude Code 拒絕了該操作,而不是透過該路徑寫入或讀取輸出。訊息會出現在 Bash 工具結果中:

4355 4422 

4356```text wrap theme={null}4423```text wrap theme={null}

4357task output swap refused (tasks dir moved or linked): /private/tmp/claude-501/-Users-you-my-project/1f0e62dc-4b0a-4f5e-9c2d-8a7b6c5d4e3f/tasks/b7k2f9m3q.output. To recover: restart Claude Code with CLAUDE_CODE_TMPDIR set to a fresh directory; or, if /private/tmp/claude-501/-Users-you-my-project is a stray directory or a symbolic link that should not be there, remove that entry itself (not what it points to) and restart.4424task output swap refused (tasks dir moved or linked): /private/tmp/claude-501/-Users-you-my-project/1f0e62dc-4b0a-4f5e-9c2d-8a7b6c5d4e3f/tasks/b7k2f9m3q.output. To recover: restart Claude Code with CLAUDE_CODE_TMPDIR set to a fresh directory; or, if /private/tmp/claude-501/-Users-you-my-project is a stray directory or a symbolic link that should not be there, remove that entry itself (not what it points to) and restart.

4358```4425```

4359 4426 

4360括號中的文字命名失敗的檢查。原因例如 `output symlink was re-pointed`、`output file identity changed` 和 `not a regular file` 都報告相同的條件:輸出路徑上或沿著的某些內容不再是 Claude Code 建立的檔案。只有某些原因帶有 `To recover:` 句子。4427括號內的文字會指出失敗的檢查。`output symlink was re-pointed`、`output file identity changed` 和 `not a regular file` 等原因都回報相同的情況:輸出路徑上或沿途的某個東西已不再是 Claude Code 所建立的檔案。只有部分原因會附帶 `To recover:` 句子。

4361 4428 

4362如果檢查在命令仍在執行時失敗,Claude Code 會停止命令,其結果報告:4429如果檢查在命令仍在執行時失敗,Claude Code 會停止該命令,其結果會回報:

4363 4430 

4364```text theme={null}4431```text theme={null}

4365Command killed: its output file was replaced or could no longer be verified4432Command killed: its output file was replaced or could no longer be verified

4366```4433```

4367 4434 

4368**應該怎麼做:**4435**處理方式:**

4369 4436 

4370* 升級到 v2.1.260 或更新版本。較早的版本有時在沒有連結或移動目錄存在時顯示此訊息4437* 升級至 v2.1.260 或更新版本。較早的版本有時會在沒有連結或被移動目錄的情況下顯示此訊息

4371* 使用 [`CLAUDE_CODE_TMPDIR`](/docs/zh-TW/env-vars) 設定為新鮮目錄重新啟動 Claude Code4438* 將 [`CLAUDE_CODE_TMPDIR`](/docs/zh-TW/env-vars) 設為全新的目錄,然後重新啟動 Claude Code

4372* 或檢查您的專案在 Claude Code 暫存目錄下的目錄,範例訊息中的 `/private/tmp/claude-501/-Users-you-my-project`。如果該路徑是符號連結,或不應該在那裡的目錄,移除連結或目錄本身而不是連結的目標,並重新啟動 Claude Code4439* 或者,檢查 Claude Code 暫存目錄下您專案的目錄,也就是範例訊息中的 `/private/tmp/claude-501/-Users-you-my-project`。如果該路徑是符號連結,或是不應存在的目錄,請移除該連結或目錄本身,而非連結的目標,然後重新啟動 Claude Code

4373* 如果拒絕重複,程序在工作階段執行時替換、連結或移除 Claude Code 暫存目錄下的項目。將 [`CLAUDE_CODE_TMPDIR`](/docs/zh-TW/env-vars) 設定為沒有其他內容管理的目錄並重新啟動4440* 如果拒絕重複出現,表示有某個程序在工作階段執行期間,替換、連結或移除 Claude Code 暫存目錄下的項目。請將 [`CLAUDE_CODE_TMPDIR`](/docs/zh-TW/env-vars) 設為沒有其他程式管理的目錄,然後重新啟動

4374 4441 

4375<h3 id="disk-quota-or-temp-filesystem-is-full">4442<h3 id="disk-quota-or-temp-filesystem-is-full">

4376 磁碟配額或暫存檔案系統已滿4443 Disk quota or temp filesystem is full

4377</h3>4444</h3>

4378 4445 

4379Claude Code 將每個 Bash 和 PowerShell 命令的輸出儲存到其暫存目錄下的檔案。當命令以非零代碼退出且完全沒有輸出時,Claude Code 會檢查持有該檔案的檔案系統是否空間不足或 inode 不足,或您在其上的磁碟配額是否已用完。如果是這樣,診斷會出現在命令的結果中,代替空輸出:4446Claude Code 會將每個 Bash 和 PowerShell 命令的輸出儲存到其暫存目錄下的檔案中。當命令以非零代碼結束且完全沒有輸出時,Claude Code 會檢查存放該檔案的檔案系統是否已用盡空間或 inode,或您在其上的磁碟配額是否已用完。若是如此,命令的結果中會以診斷訊息取代空白輸出:

4380 4447 

4381```text wrap theme={null}4448```text wrap theme={null}

4382Your disk quota is full on the filesystem with Claude Code's temp directory /private/tmp/claude-501/-Users-you-my-project/1f0e62dc-4b0a-4f5e-9c2d-8a7b6c5d4e3f/tasks (EDQUOT), so any output this command printed was lost, and it may have failed because it could not write. Delete files you no longer need there, or restart Claude Code with CLAUDE_CODE_TMPDIR set to a directory on another filesystem.4449Your disk quota is full on the filesystem with Claude Code's temp directory /private/tmp/claude-501/-Users-you-my-project/1f0e62dc-4b0a-4f5e-9c2d-8a7b6c5d4e3f/tasks (EDQUOT), so any output this command printed was lost, and it may have failed because it could not write. Delete files you no longer need there, or restart Claude Code with CLAUDE_CODE_TMPDIR set to a directory on another filesystem.

4383```4450```

4384 4451 

4385訊息命名什麼用完了:4452訊息會指出用盡的資源:

4386 4453 

4387* `Your disk quota is full ... (EDQUOT)`:您在該檔案系統上的配額已用完。配額可以在檔案系統仍顯示可用空間時已滿4454* `Your disk quota is full ... (EDQUOT)`:您自己在該檔案系統上的配額已用完。即使檔案系統仍顯示有可用空間,配額也可能已滿

4388* `The filesystem with Claude Code's temp directory ..., or your disk quota on it, is full (ENOSPC)`:檔案系統或您在其上的配額沒有空間剩餘4455* `The filesystem with Claude Code's temp directory ..., or your disk quota on it, is full (ENOSPC)`:檔案系統或您在其上的配額已沒有剩餘空間

4389* `Command output was lost: the temp filesystem at ... is full` 或 `... is out of inodes`:檔案系統幾乎沒有可用空間剩餘,或 inode 即將用完4456* `Command output was lost: the temp filesystem at ... is full` 或 `... is out of inodes`:檔案系統幾乎沒有剩餘的可用空間,或 inode 即將用盡

4390 4457 

4391**應該怎麼做:**4458**處理方式:**

4392 4459 

4393* 刪除您在持有 Claude Code 暫存目錄的檔案系統上不再需要的檔案。對於 `EDQUOT`,刪除計入您自己配額的檔案。對於 `out of inodes`,刪除許多檔案而不是幾個大檔案,因為每個檔案佔用一個 inode,無論其大小如何4460* 刪除存放 Claude Code 暫存目錄之檔案系統上不再需要的檔案。對於 `EDQUOT`,請刪除計入您自己配額的檔案。對於 `out of inodes`,請刪除大量檔案,而不是少數幾個大型檔案,因為無論大小,每個檔案都會佔用一個 inode

4394* 或使用 [`CLAUDE_CODE_TMPDIR`](/docs/zh-TW/env-vars) 設定為有空間的檔案系統上的目錄重新啟動 Claude Code4461* 或者,將 [`CLAUDE_CODE_TMPDIR`](/docs/zh-TW/env-vars) 設為位於有空間之檔案系統上的目錄,然後重新啟動 Claude Code

4395* 然後讓 Claude 再次執行命令。它列印的輸出已遺失,未被截斷4462* 接著讓 Claude 再次執行該命令。它先前印出的輸出已遺失,而不是被截斷

4396 4463 

4397<h3 id="the-source-file-is-not-valid-utf-8-text">4464<h3 id="the-source-file-is-not-valid-utf-8-text">

4398 來源檔案不是有效的 UTF-8 文字4465 The source file is not valid UTF-8 text

4399</h3>4466</h3>

4400 4467 

4401Claude 嘗試從其位元組不解碼為文字的檔案發佈[成品](/docs/zh-TW/artifacts),或其文字已包含替換字元 `U+FFFD`,因此 Claude Code 拒絕發佈,未上傳任何內容。訊息出現在成品工具結果中,並命名要修正的第一個位置:4468Claude 嘗試從一個位元組無法解碼為文字、或其文字已包含替代字元 `U+FFFD` 的檔案發佈 [artifact](/docs/zh-TW/artifacts),因此 Claude Code 在上傳任何內容之前就拒絕了發佈。訊息會出現在 Artifact 工具結果中,並指出第一個需要修正的位置:

4402 4469 

4403```text wrap theme={null}4470```text wrap theme={null}

4404file_path: the source file is not valid UTF-8 text (first invalid byte at line 12, column 40). It may be saved in another encoding or contain binary data. Rewrite it as UTF-8, then publish again. Nothing was published.4471file_path: the source file is not valid UTF-8 text (first invalid byte at line 12, column 40). It may be saved in another encoding or contain binary data. Rewrite it as UTF-8, then publish again. Nothing was published.


4406file_path: the source file has the replacement character U+FFFD at line 12, column 40, usually left where an earlier edit or paste lost a character. Replace it with the intended text (in HTML, write an intended U+FFFD as &#xFFFD;), then publish again. Nothing was published.4473file_path: the source file has the replacement character U+FFFD at line 12, column 40, usually left where an earlier edit or paste lost a character. Replace it with the intended text (in HTML, write an intended U+FFFD as &#xFFFD;), then publish again. Nothing was published.

4407```4474```

4408 4475 

4409Claude Code 將檔案解碼為 UTF-8,或當它以小端 UTF-16 位元組順序標記開始時解碼為 UTF-16。當這樣的 UTF-16 檔案不解碼時,第一個訊息命名 `UTF-16` 並仍然告訴您將檔案重寫為 UTF-8。當更多位置跟隨命名的位置時,訊息在位置後新增計數,例如 `(+2 more)`。4476Claude Code 會將檔案解碼為 UTF-8,若檔案以小端序 UTF-16 位元組順序標記開頭,則解碼為 UTF-16。當這類 UTF-16 檔案無法解碼時,第一則訊息會指出 `UTF-16`,但仍會告知您將檔案重寫為 UTF-8。當指出的位置之後還有更多位置時,訊息會在位置後加上計數,例如 `(+2 more)`。

4410 4477 

4411**應該怎麼做:**4478**處理方式:**

4412 4479 

4413* 通常無需做任何事:Claude 重寫檔案並再次發佈4480* 通常無需任何動作:Claude 會重寫檔案並再次發佈

4414* 如果檔案是您寫入或匯出的,再次將其儲存為 UTF-8,並將每個 `U+FFFD` 替換為較早的編輯、貼上或轉換遺失的字元4481* 如果該檔案是您撰寫或匯出的,請將其重新儲存為 UTF-8,並將每個 `U+FFFD` 替換為先前的編輯、貼上或轉換所遺失的字元

4415* 若要在頁面上顯示有意的 `U+FFFD`,請在 HTML 中將其寫為 `&#xFFFD;` 而不是字面字元4482* 若要在頁面上顯示刻意使用的 `U+FFFD`,請在 HTML 中將其寫成 `&#xFFFD;`,而不是使用該字元本身

4416 4483 

4417在 v2.1.267 之前,Claude Code 上傳這樣的檔案而不檢查它,伺服器改為拒絕發佈。4484在 v2.1.267 之前,Claude Code 會在未檢查的情況下上傳這類檔案,改由伺服器拒絕發佈。

4418 4485 

4419<h3 id="reading-a-local-file-from-outside-the-connected-folders">4486<h3 id="reading-a-local-file-from-outside-the-connected-folders">

4420 在 Cowork 工作階段中從連接的資料夾外讀取本機檔案4487 Reading a local file from outside the connected folders in a Cowork session

4421</h3>4488</h3>

4422 4489 

4423在 Claude Desktop 應用程式中在您的機器上執行的 [Cowork](https://claude.com/docs/cowork/overview) 工作階段中,Claude 命名了[成品](/docs/zh-TW/artifacts)的本機檔案。Claude Code 無法確認檔案是工作階段連接資料夾內的純檔案:路徑位於這些資料夾外、通過符號連結或以可能命名不同檔案的方式拼寫。讀取這樣的檔案需要您的核准,在無法向您顯示核准卡的工作階段中,例如設定為跳過所有核准的工作階段,Claude Code 拒絕讀取。4490在 Claude Desktop 應用程式中於您的機器上執行的 [Cowork](https://claude.com/docs/cowork/overview) 工作階段裡,Claude 為 [artifact](/docs/zh-TW/artifacts) 指定了一個本機檔案。Claude Code 無法確認該檔案是位於工作階段已連接資料夾內的一般檔案:該路徑位於這些資料夾之外、經過符號連結,或其寫法可能指向與表面上不同的檔案。讀取這類檔案需要您的核准,而在無法向您顯示核准卡片的工作階段中(例如設定為略過所有核准的工作階段),Claude Code 會拒絕該讀取。

4424 4491 

4425拒絕出現在成品工具結果中;當檔案根本無法檢查時,它改為命名該失敗:4492拒絕訊息會出現在 Artifact 工具結果中;當檔案完全無法被檢查時,則會改為指出該失敗:

4426 4493 

4427```text wrap theme={null}4494```text wrap theme={null}

4428Reading a local file from outside this session's connected folders, or through a link, needs the approval card, and no one can answer it in this Cowork session. Use a plain file inside the connected folders; do not retry this file in this session.4495Reading a local file from outside this session's connected folders, or through a link, needs the approval card, and no one can answer it in this Cowork session. Use a plain file inside the connected folders; do not retry this file in this session.


4430cannot read file_path (ENOENT) — the file could not be examined, and no one can answer the approval card in this Cowork session. Check that the file exists as a plain file inside the connected folders, then retry with that path.4497cannot read file_path (ENOENT) — the file could not be examined, and no one can answer the approval card in this Cowork session. Check that the file exists as a plain file inside the connected folders, then retry with that path.

4431```4498```

4432 4499 

4433**應該怎麼做:**4500**處理方式:**

4434 4501 

4435* 通常無需做任何事:訊息告訴 Claude 改為使用連接資料夾內的純檔案4502* 通常無需任何動作:訊息會告知 Claude 改用已連接資料夾內的一般檔案

4436* 若要將該確切檔案放在成品中,將其複製到工作階段的連接資料夾之一中作為常規檔案(不是符號連結),並再次詢問4503* 若要將該檔案原樣放入 artifact,請將其以一般檔案(而非符號連結)的形式複製到工作階段的其中一個已連接資料夾中,然後再次提出要求

4437 4504 

4438<h3 id="webfetch-cannot-fetch-localhost">4505<h3 id="webfetch-cannot-fetch-localhost">

4439 WebFetch 無法擷取 localhost4506 WebFetch cannot fetch localhost

4440</h3>4507</h3>

4441 4508 

4442Claude 呼叫了 [WebFetch](/docs/zh-TW/tools-reference#webfetch-tool-behavior),其 URL 的主機名沒有點,例如 `http://localhost:3000` 或裸內部網路名稱如 `http://wiki/`。WebFetch 在進行任何要求之前拒絕這些 URL:4509Claude 使用主機名稱不含點的 URL 呼叫了 [WebFetch](/docs/zh-TW/tools-reference#webfetch-tool-behavior),例如 `http://localhost:3000` 或像 `http://wiki/` 這樣的純內部網路名稱。WebFetch 會在發出任何請求之前拒絕這些 URL:

4443 4510 

4444```text wrap theme={null}4511```text wrap theme={null}

4445WebFetch cannot fetch localhost or other hostnames without a dot. To reach a local server, use Bash with curl instead.4512WebFetch cannot fetch localhost or other hostnames without a dot. To reach a local server, use Bash with curl instead.

4446```4513```

4447 4514 

4448**應該怎麼做:**4515**處理方式:**

4516 

4517* 通常無需任何動作:訊息會引導 Claude 透過 Bash 工具使用 `curl`,它可以連線至本機與內部網路伺服器

4449 4518 

4450* 通常無需做任何事:訊息將 Claude 指向透過 Bash 工具的 `curl`,它可以到達本機和內部網路伺服器4519在 v2.1.268 之前,WebFetch 會以通用的 `Invalid URL` 錯誤回報這些 URL。

4520 

4521<h3 id="webfetch-domain-safety-check-failed">

4522 WebFetch domain safety check failed

4523</h3>

4451 4524 

4452在 v2.1.268 之前,WebFetch 報告這些 URL 時出現通用 `Invalid URL` 錯誤。4525在擷取 URL 之前,WebFetch 會將 URL 的主機名稱傳送至 `api.anthropic.com`,以對照 Anthropic 的 [網域安全封鎖清單](/docs/zh-TW/data-usage#webfetch-domain-safety-check) 進行檢查。如果檢查無法完成,WebFetch 就無法確認該網域是安全的,因此不會擷取該頁面,工具結果會改為包含下列其中一則訊息:

4526 

4527```text wrap theme={null}

4528The safety check for domain example.com is rate-limited (too many domain checks from this network; the limit is shared and can stay exhausted for minutes). Do not retry WebFetch in a loop or sleep to wait it out; continue without this page and report that its safety check was rate-limited. A single later attempt is fine; if that is rate-limited too, stop.

4529 

4530Unable to verify if domain example.com is safe to fetch. This may be due to network restrictions or enterprise security policies blocking claude.ai.

4531```

4532 

4533* `rate-limited`:檢查端點以 HTTP `429` 回應。訊息會告知 Claude 在沒有該頁面的情況下繼續,且稍後最多只重試一次。Claude Code 不會快取失敗的檢查,因此稍後擷取該網域時會再次執行檢查。如果您網路上的工作階段經常遇到此情況,可以在設定中使用 [`skipWebFetchPreflight: true`](/docs/zh-TW/settings-reference#skipwebfetchpreflight) 略過檢查。

4534* `Unable to verify`:檢查請求失敗、逾時或收到其他錯誤狀態。如果您的網路封鎖了 `api.anthropic.com`,請將該網域加入允許清單,或在設定中使用 [`skipWebFetchPreflight: true`](/docs/zh-TW/settings-reference#skipwebfetchpreflight) 略過檢查。

4535 

4536在 v2.1.286 之前,速率限制訊息的內容為 `The safety check for domain example.com is temporarily rate-limited (too many domain checks from this network). Retry after about a minute; retrying sooner will fail the same way.`。

4537在 v2.1.285 之前,受速率限制的檢查會改以 `Unable to verify` 訊息回報。

4453 4538 

4454<h2 id="background-session-errors">4539<h2 id="background-session-errors">

4455 背景工作階段錯誤4540 背景工作階段錯誤

4456</h2>4541</h2>

4457 4542 

4458[背景工作階段](/docs/zh-TW/agent-view)在沒有互動式終端的情況下執行,因此需要終端的命令在那裡的行為會有所不同。這些訊息會出現在背景工作階段的文字記錄中、附加到背景工作階段的終端中、您分派的工作階段或殼層中,或者對於下面的[worktree-guard 項目](#write-or-command-blocked-because-the-path-cannot-be-safely-resolved),會出現在任何在 worktree 中隔離或執行 worktree 隔離子代理的工作階段中;當訊息特定於某個表面時,其項目會說明。4543[背景工作階段](/docs/zh-TW/agent-view)在沒有自己的互動式終端機的情況下執行,因此需要終端機的命令在那裡的行為會有所不同。這些訊息會出現在背景工作階段的逐字稿中、附加到背景工作階段的終端機中、您分派的工作階段或 shell 中,或者對於下面的[worktree-guard 項目](#write-or-command-blocked-because-the-path-cannot-be-safely-resolved),會出現在任何在 worktree 中隔離或執行 worktree 隔離 subagent 的工作階段中;當訊息特定於某個使用介面時,其項目會說明。

4459 4544 

4460<h3 id="commands-refused-in-a-background-session">4545<h3 id="commands-refused-in-a-background-session">

4461 在背景工作階段中拒絕的命令4546 在背景工作階段中拒絕的命令

4462</h3>4547</h3>

4463 4548 

4464開啟互動式對話框的命令在沒有終端附加到背景工作階段時無法執行。`/install-github-app`、`/mcp` 設定清單和 MCP 伺服器選單中的驗證動作會回應一則訊息。對於 `/install-github-app` 和 `/mcp` 設定清單,工作階段也會在[代理檢視](/docs/zh-TW/agent-view)中的 **Needs input** 下出現,以便您可以找到它、附加並再次執行命令。當終端附加時,這些命令正常運作。4549開啟互動式對話框的命令在沒有終端機附加到背景工作階段時無法執行。`/install-github-app`、`/mcp` 設定清單和 MCP 伺服器選單中的身分驗證動作會回應一則訊息。對於 `/install-github-app` 和 `/mcp` 設定清單,工作階段也會在 [agent 檢視](/docs/zh-TW/agent-view)中的 **Needs input** 下出現,以便您可以找到它、附加並再次執行命令。當終端機附加時,這些命令正常運作。

4465 4550 

4466在 v2.1.216 之前,工作階段在 `/install-github-app` 或 `/mcp` 設定清單被拒絕後不會在 **Needs input** 下出現。在 v2.1.213 到 v2.1.215 中,命令在附加終端時仍然有效,拒絕訊息告訴您附加並再次執行命令。從 v2.1.208 到 v2.1.212,Claude Code 即使在附加終端時也拒絕它們,訊息如 `Can't open MCP settings in a background session`;在這些版本上,改為從常規 `claude` 工作階段執行命令,或升級。在 v2.1.208 之前,它們在背景工作階段內開啟其對話框。在 v2.1.208 中,Claude Code 也拒絕了背景工作階段中的 `/model` 選擇器,`/upgrade` 列印升級 URL 而不是開啟瀏覽器。4551在 v2.1.216 之前,工作階段在 `/install-github-app` 或 `/mcp` 設定清單被拒絕後不會在 **Needs input** 下出現。在 v2.1.213 到 v2.1.215 中,命令在附加終端機時仍然有效,拒絕訊息告訴您附加並再次執行命令。從 v2.1.208 到 v2.1.212,Claude Code 即使在附加終端機時也拒絕它們,訊息如 `Can't open MCP settings in a background session`;在這些版本上,改為從一般的 `claude` 工作階段執行命令,或升級。在 v2.1.208 之前,它們在背景工作階段內開啟其對話框。僅在 v2.1.208 中,Claude Code 也拒絕了背景工作階段中的 `/model` 選擇器,且 `/upgrade` 列印升級 URL 而不是開啟瀏覽器。

4467 4552 

4468措辭會命名該命令。`/mcp` 設定清單報告:4553措辭會命名該命令。`/mcp` 設定清單報告:

4469 4554 


4473 4558 

4474**該怎麼做:**4559**該怎麼做:**

4475 4560 

4476* 從代理檢視附加到工作階段並再次執行命令4561* 從 agent 檢視附加到工作階段並再次執行命令

4477* 或使用訊息命名的形式,例如 `/mcp reconnect <server>`、`/mcp enable` 或 `/mcp disable`,這些在不附加的情況下有效4562* 或使用訊息命名的形式,例如 `/mcp reconnect <server>`、`/mcp enable` 或 `/mcp disable`,這些在不附加的情況下有效

4478 4563 

4479<h3 id="write-or-command-blocked-because-the-path-cannot-be-safely-resolved">4564<h3 id="write-or-command-blocked-because-the-path-cannot-be-safely-resolved">

4480 寫入或命令被阻止,因為路徑無法安全解析4565 寫入或命令被阻止,因為路徑無法安全解析

4481</h3>4566</h3>

4482 4567 

4483Claude 透過 [worktree 隔離防護](/docs/zh-TW/agent-view#how-file-edits-are-isolated)無法解析為一個可驗證位置的拼寫來定址檔案或工作目錄。防護檢查[任何在 worktree 中隔離的工作階段](/docs/zh-TW/worktrees#how-claude-code-enforces-isolation)中的寫入和命令工作目錄,互動式或背景,以及[worktree 隔離子代理](/docs/zh-TW/worktrees#isolate-subagents-with-worktrees)中的寫入和命令工作目錄。它在檢查操作不會到達共享簽出之前解析符號連結,當解析失敗時,它會阻止操作而不是讓它落在那裡。訊息命名它拒絕的路徑形式以及如何重試:4568Claude 透過 [worktree 隔離防護](/docs/zh-TW/agent-view#how-file-edits-are-isolated)無法解析為一個可驗證位置的拼寫來定址檔案或工作目錄。防護會檢查[任何在 worktree 中隔離的工作階段](/docs/zh-TW/worktrees#how-claude-code-enforces-isolation)(無論互動式或背景)以及 [worktree 隔離 subagent](/docs/zh-TW/worktrees#isolate-subagents-with-worktrees) 中的寫入和命令工作目錄。它在檢查操作不會到達共享簽出之前解析符號連結,當解析失敗時,它會阻止操作而不是讓它落在那裡。訊息命名它拒絕的路徑形式以及如何重試:

4484 4569 

4485```text theme={null}4570```text theme={null}

4486This write was blocked because the path is spelled in a form that cannot be safely resolved (for example through a symlink storing a raw dot segment, a network-share or device-namespace shape, or an unreadable ancestor directory). If the file is inside the worktree /path/to/worktree, address it by its direct symlink-free path instead.4571This write was blocked because the path is spelled in a form that cannot be safely resolved (for example through a symlink storing a raw dot segment, a network-share or device-namespace shape, or an unreadable ancestor directory). If the file is inside the worktree /path/to/worktree, address it by its direct symlink-free path instead.


4490 4575 

4491**該怎麼做:**4576**該怎麼做:**

4492 4577 

4493* 通常什麼都不做:完整訊息作為工具錯誤傳遞給 Claude,Claude 使用它命名的直接路徑重試。對於被阻止的檔案編輯,對話檢視只顯示簡短的 `Error editing file` 行;完整訊息出現在文字記錄檢視中,您可以使用 `Ctrl+O` 開啟。被阻止的命令在其命令輸出中列印它。4578* 通常什麼都不做:完整訊息作為工具錯誤傳遞給 Claude,Claude 使用它命名的直接路徑重試。對於被阻止的檔案編輯,對話檢視只顯示簡短的 `Error editing file` 行;完整訊息出現在逐字稿檢視中,您可以使用 `Ctrl+O` 開啟。被阻止的命令在其命令輸出中列印它。

4494* 如果同一檔案上的阻止重複,路徑可能透過已提交的符號連結執行,其目標包含 `..`,例如 `docs/current -> ../README.md`;要求 Claude 透過其真實路徑編輯目標檔案,而不是透過連結4579* 如果同一檔案上的阻止重複,路徑可能透過已提交的符號連結執行,其目標包含 `..`,例如 `docs/current -> ../README.md`;要求 Claude 透過其真實路徑編輯目標檔案,而不是透過連結

4495 4580 

4496<h3 id="write-or-command-blocked-because-the-path-names-a-network-location">4581<h3 id="write-or-command-blocked-because-the-path-names-a-network-location">


4515 4600 

4516Claude 在[在 worktree 中隔離的工作階段](/docs/zh-TW/worktrees#how-claude-code-enforces-isolation)中執行了 Bash 或 Monitor 命令,Claude Code 因以下兩個原因之一拒絕了它:4601Claude 在[在 worktree 中隔離的工作階段](/docs/zh-TW/worktrees#how-claude-code-enforces-isolation)中執行了 Bash 或 Monitor 命令,Claude Code 因以下兩個原因之一拒絕了它:

4517 4602 

4518* 命令指向 git 到主簽出。4603* 命令將 git 指向主簽出。

4519* Claude Code 無法從命令文字驗證命令執行的任何 git 保持在 worktree 內。永遠不命名 git 的命令仍然可能因此原因被拒絕,因為展開變數間接參照(例如 `${!name}`)或執行 Bash 函數替換(例如 `${ command; }`)會產生在執行時本身可能是命令的值。4604* Claude Code 無法從命令文字驗證命令執行的任何 git 保持在 worktree 內。從未提及 git 的命令仍然可能因此原因被拒絕,因為展開變數間接參照(例如 `${!name}`)或執行 Bash 函數替換(例如 `${ command; }`)會產生在執行時本身可能是命令的值。

4520 4605 

4521訊息的中間命名無法驗證的內容:4606訊息的中間命名無法驗證的內容:

4522 4607 


4527**該怎麼做:**4612**該怎麼做:**

4528 4613 

4529* 通常什麼都不做:Claude 讀取訊息並按其最後一句要求的方式重寫命令4614* 通常什麼都不做:Claude 讀取訊息並按其最後一句要求的方式重寫命令

4530* 如果您要求的命令持續被拒絕,按字面拼寫標記的值:用其值替換間接參照或替換,並從 worktree 內作為其自己的純命令執行 git4615* 如果您要求的命令持續被拒絕,按字面拼寫標記的值:用其值替換間接參照或替換,並從 worktree 內將 git 作為獨立的純命令執行

4531* 要有目的地作用於主簽出,在工作階段外的終端中自己執行命令4616* 要刻意作用於主簽出,請在工作階段外的終端機中自己執行命令

4532 4617 

4533<h3 id="this-session-has-no-saved-transcript">4618<h3 id="this-session-has-no-saved-transcript">

4534 此工作階段沒有已儲存的文字記錄4619 此工作階段沒有已儲存的逐字稿

4535</h3>4620</h3>

4536 4621 

4537您附加到已停止的[背景工作階段](/docs/zh-TW/agent-view),該工作階段使用 `←` 或 `/background` 從另一個對話背景化,並在其第一個回應完成之前停止。在該第一個回應完成之前,對話仍然只存在於背景化它的工作階段中,因此 `claude attach` 拒絕啟動已停止的工作階段,而不是在相同工作階段 ID 下開始空白對話。訊息以此工作階段的 `claude respawn` 命令結尾:4622您附加到已停止的[背景工作階段](/docs/zh-TW/agent-view),該工作階段使用 `←` 或 `/background` 從另一個對話背景化,並在其第一個回應完成之前停止。在該第一個回應完成之前,對話仍然只存在於背景化它的工作階段中,因此 `claude attach` 拒絕啟動已停止的工作階段,而不是在相同工作階段 ID 下開始空白對話。訊息以此工作階段的 `claude respawn` 命令結尾:


4540This session has no saved transcript — it was stopped before its first response finished. If it was backgrounded from another conversation, that one is still intact; `claude respawn <id>` starts this one fresh.4625This session has no saved transcript — it was stopped before its first response finished. If it was backgrounded from another conversation, that one is still intact; `claude respawn <id>` starts this one fresh.

4541```4626```

4542 4627 

4543在[代理檢視](/docs/zh-TW/agent-view)中開啟相同工作階段的列在清單下方顯示 `Press enter again to restart this session fresh`,列上的第二個 `Enter` 使用空白對話重新啟動工作階段。在 v2.1.212 之前,開啟列顯示拒絕訊息,無法從代理檢視重新啟動。在 v2.1.211 之前,開啟已停止的工作階段無聲地啟動該空白對話,並可以重新執行工作階段的原始提示。4628在 [agent 檢視](/docs/zh-TW/agent-view)中開啟相同工作階段的列,會改為在清單下方顯示 `Press enter again to restart this session fresh`,在該列上第二次按 `Enter` 會使用空白對話重新啟動工作階段。在 v2.1.212 之前,開啟列會顯示拒絕訊息,無法從 agent 檢視重新啟動。在 v2.1.211 之前,開啟已停止的工作階段會無聲地啟動該空白對話,並可能重新執行工作階段的原始提示詞。

4544 4629 

4545**該怎麼做:**4630**該怎麼做:**

4546 4631 

4547* 您背景化的對話完整無缺:使用 [`claude --resume`](/docs/zh-TW/sessions) 繼續它或繼續在其中工作4632* 您背景化的對話完整無缺:使用 [`claude --resume`](/docs/zh-TW/sessions) 繼續它或繼續在其中工作

4548* 要無論如何啟動已停止的工作階段,請使用訊息中的 ID 執行 `claude respawn <id>`,或在代理檢視中的其列上按 `Enter` 兩次4633* 若仍要重新啟動已停止的工作階段,請使用訊息中的 ID 執行 `claude respawn <id>`,或在 agent 檢視中的其列上按 `Enter` 兩次

4549* 如果工作階段確實完成了回應,您仍在 v2.1.214 之前的版本上看到此拒絕,`~/.claude/projects` 中的不可讀資料夾可能會使文字記錄掃描遺漏已儲存的對話;更新到 v2.1.214 或更新版本,其在掃描期間容許不可讀資料夾4634* 如果工作階段確實完成了回應,而您在 v2.1.214 之前的版本上仍看到此拒絕,`~/.claude/projects` 中的不可讀資料夾可能會使逐字稿掃描遺漏已儲存的對話;請更新到 v2.1.214 或更新版本,其在掃描期間容許不可讀資料夾

4550 4635 

4551<h3 id="this-session-is-running-in-another-terminal">4636<h3 id="this-session-is-running-in-another-terminal">

4552 此工作階段在另一個終端中執行4637 此工作階段在另一個終端機中執行

4553</h3>4638</h3>

4554 4639 

4555您在[代理檢視](/docs/zh-TW/agent-view)中開啟了已停止工作階段的列,其已儲存的對話已在此機器上的另一個即時 Claude Code 程序中開啟,因此 Claude Code 拒絕啟動將寫入相同文字記錄的第二個程序。您看到的訊息取決於[什麼保持對話](/docs/zh-TW/agent-view#opening-a-session-says-the-conversation-is-already-open):4640您在 [agent 檢視](/docs/zh-TW/agent-view)中開啟了已停止工作階段的列,而其已儲存的對話已在此機器上的另一個執行中 Claude Code 程序中開啟,因此 Claude Code 拒絕啟動將寫入相同逐字稿的第二個程序。您看到的訊息取決於[持有該對話的是什麼](/docs/zh-TW/agent-view#opening-a-session-says-the-conversation-is-already-open):

4556 4641 

4557```text theme={null}4642```text theme={null}

4558Can't open — this session is running in another terminal4643Can't open — this session is running in another terminal

4559This conversation is already open in another running Claude session — use that one, or close it and try again4644This conversation is already open in another running Claude session — use that one, or close it and try again

4560```4645```

4561 4646 

4562* **`running in another terminal`**:終端保持對話,例如您使用 `claude --resume` 或 `/resume` 繼續它的終端。列也顯示 `Open in a terminal`。4647* **`running in another terminal`**:終端機持有該對話,例如您使用 `claude --resume` 或 `/resume` 繼續它的終端機。列也會顯示 `Open in a terminal`。

4563* **`already open in another running Claude session`**:另一個非互動式 Claude Code 程序保持它,例如相同對話的[背景工作階段](/docs/zh-TW/agent-view#the-supervisor-process)程序,尚未退出。4648* **`already open in another running Claude session`**:另一個非互動式 Claude Code 程序持有它,例如相同對話中尚未退出的[背景工作階段](/docs/zh-TW/agent-view#the-supervisor-process)程序。

4564 4649 

4565Claude Code 儲存您在開啟列時輸入的回覆,並在工作階段下次啟動時將其作為工作階段的下一個提示傳送。4650Claude Code 會儲存您在開啟列時輸入的回覆,並在工作階段下次啟動時將其作為工作階段的下一個提示詞傳送。

4566 4651 

4567**該怎麼做:**4652**該怎麼做:**

4568 4653 

4569* 在保持它開啟的程序中繼續對話,或退出該程序並再次開啟列4654* 在開啟該對話的程序中繼續對話,或退出該程序並再次開啟列

4570 4655 

4571在 v2.1.248 之前,只有 `already open in another running Claude session` 拒絕存在:在終端中繼續的對話不計為開啟,開啟列啟動寫入相同對話的第二個 Claude Code 程序。4656在 v2.1.248 之前,只有 `already open in another running Claude session` 拒絕存在:在終端機中繼續的對話不計為開啟,開啟列會啟動寫入相同對話的第二個 Claude Code 程序。

4572 4657 

4573<h3 id="this-sessions-saved-conversation-is-no-longer-on-disk">4658<h3 id="this-sessions-saved-conversation-is-no-longer-on-disk">

4574 此工作階段的已儲存對話不再在磁碟上4659 此工作階段的已儲存對話不再在磁碟上

4575</h3>4660</h3>

4576 4661 

4577您開啟了在背景服務關閉時結束的[背景工作階段](/docs/zh-TW/agent-view),[文字記錄清理](/docs/zh-TW/settings-reference#cleanupperioddays)已移除其已儲存的對話,例如在機器關閉數週後。通常開啟這樣的列會[繼續其已儲存的對話](/docs/zh-TW/agent-view#sessions-show-as-failed-after-shutdown)。沒有什麼可繼續,Claude Code 拒絕而不是在不詢問的情況下重新執行工作階段的原始提示:4662您開啟了在背景服務關閉時結束的[背景工作階段](/docs/zh-TW/agent-view),而[逐字稿清理](/docs/zh-TW/settings-reference#cleanupperioddays)已移除其已儲存的對話,例如在機器關閉數週後。通常開啟這樣的列會[繼續其已儲存的對話](/docs/zh-TW/agent-view#sessions-show-as-failed-after-shutdown)。由於沒有可繼續的內容,Claude Code 會拒絕,而不是在不詢問的情況下重新執行工作階段的原始提示詞:

4578 4663 

4579```text theme={null}4664```text theme={null}

4580This session's saved conversation is no longer on disk (it ended while the background service was off, and old transcripts are cleaned up), so there is nothing to resume. `claude rm 7c5dcf5d` deletes the row; `claude respawn 7c5dcf5d` runs its original prompt again instead.4665This session's saved conversation is no longer on disk (it ended while the background service was off, and old transcripts are cleaned up), so there is nothing to resume. `claude rm 7c5dcf5d` deletes the row; `claude respawn 7c5dcf5d` runs its original prompt again instead.

4581```4666```

4582 4667 

4583`claude attach <id>` 列印此文字。在代理檢視中,頁腳較短,以 `ctrl+x deletes the row` 結尾。4668`claude attach <id>` 列印此文字。在 agent 檢視中,頁腳較短,以 `ctrl+x deletes the row` 結尾。

4584 4669 

4585**該怎麼做:**4670**該怎麼做:**

4586 4671 

4587* 執行 `claude rm <id>` 刪除列。當其中一個[保留案例](/docs/zh-TW/agent-view#what-deleting-a-session-removes)適用時,`claude rm` 保留列和 worktree,並命名原因4672* 執行 `claude rm <id>` 刪除列。當其中一個[保留案例](/docs/zh-TW/agent-view#what-deleting-a-session-removes)適用時,`claude rm` 會改為保留列和 worktree,並說明原因

4588* 要再次執行工作階段的原始提示作為新對話,請執行 `claude respawn <id>`4673* 要將工作階段的原始提示詞作為新對話再次執行,請執行 `claude respawn <id>`

4589 4674 

4590在 v2.1.248 之前,開啟這樣的列會重新執行工作階段的原始提示,而不是拒絕,將數週前的任務拉回前景。4675在 v2.1.248 之前,開啟這樣的列會重新執行工作階段的原始提示詞,而不是拒絕,將數週前的任務拉回前景。

4591 4676 

4592<h3 id="worktree-has-commits-that-are-not-pushed-anywhere">4677<h3 id="worktree-has-commits-that-are-not-pushed-anywhere">

4593 Worktree 有未推送到任何地方的提交4678 Worktree 有未推送到任何地方的提交

4594</h3>4679</h3>

4595 4680 

4596您嘗試刪除[背景工作階段](/docs/zh-TW/agent-view#what-deleting-a-session-removes),其 worktree 保持 Claude Code 無法確認在其他地方儲存的提交。Claude Code 保留 worktree 和工作階段列,而不是銷毀提交。`claude rm` 命名分支和未推送的提交,並說明如何進行:4681您嘗試刪除[背景工作階段](/docs/zh-TW/agent-view#what-deleting-a-session-removes),其 worktree 包含 Claude Code 無法確認已在其他地方儲存的提交。Claude Code 保留 worktree 和工作階段列,而不是在您未察覺的情況下銷毀提交。`claude rm` 命名分支和未推送的提交,並說明如何進行:

4597 4682 

4598```text theme={null}4683```text theme={null}

4599kept 7c5dcf5d — its worktree is still at "/home/you/project/.claude/worktrees/fix-login"4684kept 7c5dcf5d — its worktree is still at “/home/you/project/.claude/worktrees/fix-login”

4600 2 unpushed commits on "claude/fix-login": a1b2c3d "Fix login flow" and 1 more. They exist on no remote, so deleting the worktree would lose them.4685 2 unpushed commits on “claude/fix-login”: a1b2c3d “Fix login flow” and 1 more. They exist on no remote, so deleting the worktree would lose them.

4601 push them and run 'claude rm 7c5dcf5d' again, or discard the worktree and its commits: claude rm 7c5dcf5d --discard-unpushed a1b2c3d000000000000000000000000000000000@0123456789abcdef0123456789abcdef4686 push them and run 'claude rm 7c5dcf5d' again, or discard the worktree and its commits: claude rm 7c5dcf5d --discard-unpushed a1b2c3d000000000000000000000000000000000@0123456789abcdef0123456789abcdef

4602```4687```

4603 4688 

4604當 Claude Code 無法總結提交時,詳細行讀取 `The worktree has unpushed commits`。在[代理檢視](/docs/zh-TW/agent-view)中,工作階段的列顯示 `not deleted`,原因相同。4689當 Claude Code 無法總結提交時,詳細行改為顯示 `The worktree has unpushed commits`。在 [agent 檢視](/docs/zh-TW/agent-view)中,工作階段的列顯示 `not deleted`,原因相同。

4605 4690 

4606遠端上的提交不會阻止刪除。本機複製您的 `origin` 遠端預設分支上的提交也不會,只要該分支在您的主簽出中簽出,即儲存庫目錄本身而不是 worktree。4691遠端上的提交不會阻止刪除。您的 `origin` 遠端預設分支的本機副本上的提交也不會,只要該分支在您的主簽出(即儲存庫目錄本身而不是 worktree)中簽出。

4607 4692 

4608**該怎麼做:**4693**該怎麼做:**

4609 4694 

4610* 要保留提交,推送 worktree 的分支,或將其合併到在主簽出中簽出的預設分支,然後再次刪除工作階段4695* 要保留提交,推送 worktree 的分支,或將其合併到在主簽出中簽出的預設分支,然後再次刪除工作階段

4611* 要捨棄提交,執行訊息列印的 `claude rm <id> --discard-unpushed` 命令,或在代理檢視中的工作階段列上再次按 `Ctrl+X` 兩次。這會移除工作階段和 worktree 以及其分支、未推送的提交和任何未提交的變更。如果 worktree 自拒絕以來獲得了提交,Claude Code 再次保留它並顯示更新的狀態4696* 要捨棄提交,執行訊息列印的 `claude rm <id> --discard-unpushed` 命令,或在 agent 檢視中的工作階段列上再次按 `Ctrl+X` 兩次。這會移除工作階段和 worktree 以及其分支、未推送的提交和任何未提交的變更。如果 worktree 自拒絕以來新增了提交,Claude Code 會再次保留它並顯示更新的狀態

4612* 當訊息說 worktree 也由另一個已完成的工作階段記錄時,再次刪除不會捨棄它:推送提交,然後再次刪除工作階段4697* 當訊息說 worktree 也由另一個已完成的工作階段記錄時,再次刪除不會捨棄它:推送提交,然後再次刪除工作階段

4613 4698 

4614在 v2.1.268 之前,`claude rm` 將提交摘要放在 `kept` 行本身上。當 `claude rm` 無法總結提交時,`kept` 行讀取 `worktree has commits that are not pushed anywhere` 代替摘要。4699在 v2.1.268 之前,`claude rm` 將提交摘要放在 `kept` 行本身上。當 `claude rm` 無法總結提交時,`kept` 行會以 `worktree has commits that are not pushed anywhere` 代替摘要。

4615 4700 

4616在 v2.1.260 之前,訊息未命名分支或提交,再次刪除被拒絕的方式相同:刪除工作階段而不推送意味著使用 `git worktree remove --force <path>` 自己移除 worktree,然後再次執行 `claude rm <id>`。4701在 v2.1.260 之前,訊息未命名分支或提交,再次刪除也會以相同方式被拒絕:不推送而刪除工作階段意味著您必須使用 `git worktree remove --force <path>` 自己移除 worktree,然後再次執行 `claude rm <id>`。

4617 4702 

4618在 v2.1.248 之前,在主簽出中簽出的預設分支不計算:您已經合併到那裡的分支仍然觸發此拒絕,直到其提交到達遠端。4703在 v2.1.248 之前,在主簽出中簽出的預設分支不計算在內:您已經合併到那裡的分支仍然會觸發此拒絕,直到其提交到達遠端。

4619 4704 

4620<h3 id="terminal-host-process-died">4705<h3 id="terminal-host-process-died">

4621 終端主機程序已死亡4706 終端機主機程序已死亡

4622</h3>4707</h3>

4623 4708 

4624每個[背景工作階段的](/docs/zh-TW/agent-view)終端在背景服務下的主機程序中執行,該程序在服務仍保持其連線時死亡,因此無法到達工作階段。4709每個[背景工作階段的](/docs/zh-TW/agent-view)終端機在背景服務下的主機程序中執行,該程序在服務仍保持其連線時死亡,因此無法連線到工作階段。

4625 4710 

4626在 Linux 和 WSL 上,背景服務每隔幾秒檢查每個主機程序,當程序已退出但其與服務的連線從未關閉時標記工作階段失敗,並在[代理檢視](/docs/zh-TW/agent-view#read-session-state)中的其列上顯示原因:4711在 Linux 和 WSL 上,背景服務每隔幾秒檢查每個主機程序,當程序已退出但其與服務的連線從未關閉時,將工作階段標記為失敗,並在 [agent 檢視](/docs/zh-TW/agent-view#read-session-state)中的其列上顯示原因:

4627 4712 

4628```text theme={null}4713```text theme={null}

4629terminal host process died — press Enter to restart4714terminal host process died — press Enter to restart

4630```4715```

4631 4716 

4632從殼層,`claude attach <id>` 重新啟動已標記為死主機失敗的工作階段,否則列印原因並退出:4717從 shell,`claude attach <id>` 會重新啟動已因主機死亡而標記為失敗的工作階段,否則列印原因並退出:

4633 4718 

4634```text theme={null}4719```text theme={null}

4635Couldn't attach to <id> — This session's terminal host process died (the conversation is saved) — run `claude attach <id>` again to restart it on a fresh host.4720Couldn't attach to <id> — This session's terminal host process died (the conversation is saved) — run `claude attach <id>` again to restart it on a fresh host.

4636```4721```

4637 4722 

4638無論如何對話都會儲存。4723無論哪種情況,對話都會儲存。

4639 4724 

4640執行[殼層命令](/docs/zh-TW/agent-view#run-a-shell-command)的列改為顯示 `terminal host process died — its output is gone; the command was not run again`,`claude attach` 列印 `This command's terminal host process died — its output is gone and the command was not run again`。Claude Code 永遠不會為您重新執行命令。4725執行 [shell 命令](/docs/zh-TW/agent-view#run-a-shell-command)的列改為顯示 `terminal host process died — its output is gone; the command was not run again`,`claude attach` 列印 `This command's terminal host process died — its output is gone and the command was not run again`。Claude Code 永遠不會為您重新執行命令。

4641 4726 

4642**該怎麼做:**4727**該怎麼做:**

4643 4728 

4644* 在代理檢視中,在失敗的列上按 `Enter`;工作階段在新主機程序上重新啟動,對話繼續4729* 在 agent 檢視中,在失敗的列上按 `Enter`;工作階段在新主機程序上重新啟動,對話繼續

4645* 從殼層,再次執行 `claude attach <id>`。Claude Code 列印 `Session <id>'s terminal host died — restarting it on a fresh one…` 並重新開啟工作階段4730* 從 shell,再次執行 `claude attach <id>`。Claude Code 列印 `Session <id>'s terminal host died — restarting it on a fresh one…` 並重新開啟工作階段

4646* 您無法以這種方式重新啟動殼層命令列;再次分派命令以重新執行它4731* 您無法以這種方式重新啟動 shell 命令列;再次分派命令以重新執行它

4647 4732 

4648在 v2.1.247 之前,死主機程序可能通過背景服務執行的每個活躍性檢查,因此開啟工作階段無限期地顯示 `opening… · esc to cancel`,`claude attach <id>` 等待而不報告錯誤。4733在 v2.1.247 之前,已死亡的主機程序可能通過背景服務執行的每個活躍性檢查,因此開啟工作階段會無限期地顯示 `opening… · esc to cancel`,而 `claude attach <id>` 會等待而不報告錯誤。

4649 4734 

4650<h3 id="session-isnt-responding">4735<h3 id="session-isnt-responding">

4651 工作階段沒有回應4736 工作階段沒有回應

4652</h3>4737</h3>

4653 4738 

4654您開啟了[背景工作階段](/docs/zh-TW/agent-view),背景服務接受了開啟,但約十秒內沒有輸出到達,因此 Claude Code 得出結論,中繼工作階段終端的程序無法傳遞輸出,並結束嘗試而不是等待。4739您開啟了[背景工作階段](/docs/zh-TW/agent-view),背景服務接受了開啟,但約十秒內沒有輸出到達,因此 Claude Code 判定中繼工作階段終端機的程序無法傳遞輸出,並結束嘗試而不是繼續等待。

4655 4740 

4656在代理檢視中,Claude Code 在頁腳中提供重新啟動:4741在 agent 檢視中,Claude Code 在頁腳中提供重新啟動:

4657 4742 

4658```text theme={null}4743```text theme={null}

4659Press enter again to restart this session — it isn't responding (its conversation is saved and resumes).4744Press enter again to restart this session — it isn't responding (its conversation is saved and resumes).

4660```4745```

4661 4746 

4662從殼層,`claude attach <id>` 列印原因並退出:4747從 shell,`claude attach <id>` 列印原因並退出:

4663 4748 

4664```text theme={null}4749```text theme={null}

4665Couldn't attach to <id> — Session isn't responding — `claude stop <id>`, then `claude attach <id>` restarts it (the conversation is saved).4750Couldn't attach to <id> — Session isn't responding — `claude stop <id>`, then `claude attach <id>` restarts it (the conversation is saved).

4666```4751```

4667 4752 

4668Claude Code 永遠不會為您重新啟動執行[殼層命令](/docs/zh-TW/agent-view#run-a-shell-command)的列,因為重新啟動會再次執行命令。4753Claude Code 永遠不會為您重新啟動執行 [shell 命令](/docs/zh-TW/agent-view#run-a-shell-command)的列,因為重新啟動會再次執行命令。

4669 4754 

4670**該怎麼做:**4755**該怎麼做:**

4671 4756 

4672* 在代理檢視中,在相同列上再次按 `Enter`。Claude Code 停止無回應的程序並重新啟動工作階段,對話繼續。沒有第二次按下,什麼都不會停止4757* 在 agent 檢視中,在相同列上再次按 `Enter`。Claude Code 停止無回應的程序並重新啟動工作階段,對話繼續。沒有第二次按下,什麼都不會停止

4673* 從殼層,執行 `claude stop <id>`,然後 `claude attach <id>`4758* 從 shell,執行 `claude stop <id>`,然後 `claude attach <id>`

4674* 對於殼層命令列,在代理檢視中按 `Ctrl+X` 或執行 `claude stop <id>` 停止它;再次分派命令以重新執行它4759* 對於 shell 命令列,在 agent 檢視中按 `Ctrl+X` 或執行 `claude stop <id>` 停止它;再次分派命令以重新執行它

4675 4760 

4676<h3 id="session-was-stopped-while-the-respawn-was-in-flight">4761<h3 id="session-was-stopped-while-the-respawn-was-in-flight">

4677 工作階段在重新生成進行中時被停止4762 工作階段在重新生成進行中時被停止

4678</h3>4763</h3>

4679 4764 

4680您開啟了[背景工作階段](/docs/zh-TW/agent-view),其程序未執行,當 Claude Code 重新啟動它時,另一個 Claude Code 程序停止了它,例如在另一個終端中的 `claude stop`。Claude Code 保持工作階段停止:4765您開啟了[背景工作階段](/docs/zh-TW/agent-view),其程序未執行,而當 Claude Code 重新啟動它時,另一個 Claude Code 程序停止了它,例如在另一個終端機中的 `claude stop`。Claude Code 保持工作階段停止:

4681 4766 

4682```text theme={null}4767```text theme={null}

4683Session <id> was stopped while the respawn was in flight4768Session <id> was stopped while the respawn was in flight

4684```4769```

4685 4770 

4686開啟您剛分派的工作階段,當其程序仍在啟動時,等待程序。在 v2.1.246 之前,在那一刻開啟它可能會停止它並顯示此訊息。4771開啟您剛分派、其程序仍在啟動中的工作階段時,會改為等待該程序。在 v2.1.246 之前,在那一刻開啟它可能會停止它並顯示此訊息。

4687 4772 

4688**該怎麼做:**4773**該怎麼做:**

4689 4774 

4690* 如果您沒有停止工作階段,在代理檢視中再次開啟其列或執行 `claude respawn <id>` 重新啟動它4775* 如果您沒有停止工作階段,在 agent 檢視中再次開啟其列或執行 `claude respawn <id>` 重新啟動它

4691* 如果您自己停止了它,沒有什麼剩下要做的:工作階段保持停止4776* 如果您自己停止了它,就不需要再做任何事:工作階段保持停止

4692 4777 

4693<h3 id="session-agent-no-longer-available">4778<h3 id="session-agent-no-longer-available">

4694 工作階段代理不再可用4779 工作階段 agent 不再可用

4695</h3>4780</h3>

4696 4781 

4697您繼續了執行[自訂代理](/docs/zh-TW/sub-agents#invoke-subagents-explicitly)的工作階段,使用 `--agent` 或 `agent` 設定啟動,Claude Code 未找到該名稱的代理。它首先搜索工作階段的原始目錄,當您[信任該工作區](/docs/zh-TW/permissions#project-allow-rules-and-workspace-trust)時,然後搜索您繼續的目錄。工作階段仍然繼續,但使用預設工具,因此代理的工具限制不再適用:4782您繼續了一個執行[自訂 agent](/docs/zh-TW/sub-agents#invoke-subagents-explicitly) 的工作階段(使用 `--agent` 或 `agent` 設定啟動),而 Claude Code 未找到該名稱的 agent。當您已[信任該工作區](/docs/zh-TW/permissions#project-allow-rules-and-workspace-trust)時,它會先搜尋工作階段的原始目錄,然後搜尋您繼續時所在的目錄。工作階段仍然會繼續,但使用預設工具,因此 agent 的工具限制不再適用:

4698 4783 

4699```text theme={null}4784```text theme={null}

4700This session was running agent 'code-reviewer', which is no longer available (no agent by that name in /home/you/project). Continuing with the default tools and system prompt — the agent's tool restrictions no longer apply. To restore it, re-create the agent, or resume with an explicit --agent <name>.4785This session was running agent 'code-reviewer', which is no longer available (no agent by that name in /home/you/project). Continuing with the default tools and system prompt — the agent's tool restrictions no longer apply. To restore it, re-create the agent, or resume with an explicit --agent <name>.

4701```4786```

4702 4787 

4703訊息只命名 Claude Code 搜索的目錄,無論您喚醒[背景工作階段](/docs/zh-TW/agent-view)、執行 `/resume` 或 `claude --resume`,還是在[非互動模式](/docs/zh-TW/headless)中繼續,它都會出現在繼續的對話中,它也會進入 stderr。使用 `--input-format stream-json` 的工作階段不顯示它,因為 Agent SDK 在啟動後提供代理。4788警告只列出 Claude Code 搜尋過的目錄,無論您是喚醒[背景工作階段](/docs/zh-TW/agent-view)、執行 `/resume` 或 `claude --resume`,還是在[非互動模式](/docs/zh-TW/headless)中繼續,它都會出現在繼續的對話中;在非互動模式中它也會輸出到 stderr。使用 `--input-format stream-json` 的工作階段不會顯示它,因為 Agent SDK 在啟動後才提供 agent。

4704 4789 

4705Claude Code 不會將回退儲存到工作階段,因此警告在每次繼續時重複,直到您採取行動。內建 `claude` 代理不觸發警告,因為回退到預設工具集對它沒有變化。在 v2.1.216 之前,Claude Code 無聲地繼續作為預設代理,查詢僅涵蓋您繼續的目錄,因此專案範圍的代理在從另一個目錄繼續時丟失。4790Claude Code 不會將此備援儲存到工作階段,因此警告會在每次繼續時重複出現,直到您採取行動。內建 `claude` agent 不會觸發警告,因為改用預設工具集對它沒有任何變化。在 v2.1.216 之前,Claude Code 會無聲地以預設 agent 繼續,且查詢僅涵蓋您繼續時所在的目錄,因此從另一個目錄繼續時,專案範圍的 agent 就會遺失。

4706 4791 

4707**該怎麼做:**4792**該怎麼做:**

4708 4793 

4709* 在工作階段的專案中的 `.claude/agents/<name>.md` 或個人代理的 `~/.claude/agents/<name>.md` 重新建立代理檔案,然後再次繼續4794* 在工作階段專案中的 `.claude/agents/<name>.md`,或針對個人 agent 在 `~/.claude/agents/<name>.md` 重新建立 agent 檔案,然後再次繼續

4710* 或使用 `--agent <name>` 繼續,命名確實存在的代理,以改為作為該代理執行工作階段4795* 或使用 `--agent <name>` 繼續,指定確實存在的 agent,以改為作為該 agent 執行工作階段

4711* 如果代理是專案範圍的,您尚未信任工作階段的原始目錄,請在那裡執行 Claude Code 一次,接受信任對話,然後再次繼續4796* 如果 agent 是專案範圍的,而您尚未信任工作階段的原始目錄,請在那裡執行 Claude Code 一次,接受信任對話框,然後再次繼續

4712 4797 

4713<h3 id="claude_code_process_wrapper-launcher-errors">4798<h3 id="claude_code_process_wrapper-launcher-errors">

4714 CLAUDE\_CODE\_PROCESS\_WRAPPER 啟動器錯誤4799 CLAUDE\_CODE\_PROCESS\_WRAPPER 啟動器錯誤

4715</h3>4800</h3>

4716 4801 

4717[`CLAUDE_CODE_PROCESS_WRAPPER`](/docs/zh-TW/corporate-launcher)已設定,其值無法使用,因此 Claude Code 拒絕啟動受影響的程序,而不是在沒有啟動器的情況下執行它。配置問題報告為以變數名稱開頭並說明原因的訊息,例如:4802[`CLAUDE_CODE_PROCESS_WRAPPER`](/docs/zh-TW/corporate-launcher) 已設定,但其值無法使用,因此 Claude Code 拒絕啟動受影響的程序,而不是在沒有啟動器的情況下執行它。設定問題會以變數名稱開頭並說明原因的訊息報告,例如:

4718 4803 

4719```text theme={null}4804```text theme={null}

4720CLAUDE_CODE_PROCESS_WRAPPER: launcher `/opt/corp/launcher` is not an executable regular file4805CLAUDE_CODE_PROCESS_WRAPPER: launcher `/opt/corp/launcher` is not an executable regular file

4721```4806```

4722 4807 

4723啟動但在不用 Claude Code 替換自己的情況下退出的啟動器會使其啟動的工作階段失敗,工作階段在代理檢視中的列報告啟動器 `must exec, not daemonize`,後跟啟動器列印的任何內容。無法啟動或到達背景服務的工作階段因啟動器報告啟動器問題作為 `Couldn't reach the background service (...)` 內的原因。4808啟動後未以 Claude Code 替換自己就退出的啟動器,會使其正在啟動的工作階段失敗,該工作階段在 agent 檢視中的列會報告啟動器 `must exec, not daemonize`,後接啟動器列印的任何內容。因啟動器而無法啟動或無法連線到背景服務的工作階段,會將啟動器問題作為 `Couldn't reach the background service (...)` 內的原因報告。

4724 4809 

4725**該怎麼做:**4810**該怎麼做:**

4726 4811 

4727* 將變數設定為以呼叫 `exec "$@"` 結尾的可執行檔的絕對路徑。有關完整合約,請參閱[啟動器合約](/docs/zh-TW/corporate-launcher#the-launcher-contract)4812* 將變數設定為以呼叫 `exec "$@"` 結尾的可執行檔的絕對路徑。有關完整合約,請參閱[啟動器合約](/docs/zh-TW/corporate-launcher#the-launcher-contract)

4728* 檢查 `/status`,其在 Self-exec 項中顯示已解析的啟動命令,並在執行中的背景服務不符合時警告,或從殼層執行 `claude daemon status`4813* 檢查 `/status`,其在 Self-exec 項目中顯示已解析的啟動命令,並在執行中的背景服務不符合時發出警告,或從 shell 執行 `claude daemon status`

4729* 在[設定](/docs/zh-TW/corporate-launcher#set-up-the-launcher)的 `env` 區塊中修復值後,使用 `claude daemon stop --any` 重新啟動背景服務,以便下次分派啟動包裝的服務4814* 在[設定](/docs/zh-TW/corporate-launcher#set-up-the-launcher)的 `env` 區塊中修正值後,使用 `claude daemon stop --any` 重新啟動背景服務,以便下次分派時啟動經過包裝的服務

4730 4815 

4731<h3 id="eunknown-when-starting-a-background-session">4816<h3 id="eunknown-when-starting-a-background-session">

4732 啟動背景工作階段時 EUNKNOWN4817 啟動背景工作階段時 EUNKNOWN

4733</h3>4818</h3>

4734 4819 

4735Windows 拒絕使用沒有標準名稱的錯誤代碼啟動程式,因此失敗表現為 `EUNKNOWN`。通常的觸發器是軟體限制原則,例如群組原則或 AppLocker,阻止正在啟動的程式。當您使用 `/background` 或 `claude --bg` 啟動[背景工作階段](/docs/zh-TW/agent-view)時,錯誤出現:4820Windows 以沒有標準名稱的錯誤代碼拒絕啟動程式,因此失敗表現為 `EUNKNOWN`。通常的觸發原因是軟體限制原則(例如群組原則或 AppLocker)阻止正在啟動的程式。當您使用 `/background` 或 `claude --bg` 啟動[背景工作階段](/docs/zh-TW/agent-view)時,會出現此錯誤:

4736 4821 

4737```text theme={null}4822```text theme={null}

4738Couldn't reach the background service (spawn background service: EUNKNOWN: unknown error, uv_spawn) — run 'claude daemon status'4823Couldn't reach the background service (spawn background service: EUNKNOWN: unknown error, uv_spawn) — run 'claude daemon status'

4739```4824```

4740 4825 

4741在某些帳戶上,訊息在 `daemon` 位置說 `background service`。4826在某些帳戶上,訊息會以 `daemon` 取代 `background service`。

4742 4827 

4743在 npm 安裝上,在 `npm install -g @anthropic-ai/claude-code` 替換二進位檔案時出現的 `EUNKNOWN` 與[重新安裝期間的 `EACCES`](#eacces-when-starting-a-background-session)有相同的原因,並在您在安裝完成後重試時清除。4828在 npm 安裝上,在 `npm install -g @anthropic-ai/claude-code` 替換二進位檔案時出現的 `EUNKNOWN` 與[重新安裝期間的 `EACCES`](#eacces-when-starting-a-background-session) 有相同的原因,並會在安裝完成後重試時消除。

4744 4829 

4745Claude Code 透過 PowerShell 啟動背景服務,以便服務在關閉終端時存活,在安裝時使用 PowerShell 7,否則使用 Windows PowerShell 5.1。當兩個 PowerShell 都無法執行時,Claude Code 改為直接啟動服務,因此只阻止 PowerShell 的原則不會導致此錯誤。4830Claude Code 透過 PowerShell 啟動背景服務,以便服務在關閉終端機後仍能存活;已安裝 PowerShell 7 時使用它,否則使用 Windows PowerShell 5.1。當兩個 PowerShell 都無法執行時,Claude Code 改為直接啟動服務,因此只阻止 PowerShell 的原則不會導致此錯誤。

4746 4831 

4747在 v2.1.212 之前,Claude Code 僅使用 Windows PowerShell 5.1 啟動服務,因此任何群組原則阻止 PowerShell 5.1 的機器失敗,訊息為 `Couldn't start the session — EUNKNOWN: unknown error, uv_spawn`,即使安裝了 PowerShell 7。4832在 v2.1.212 之前,Claude Code 僅使用 Windows PowerShell 5.1 啟動服務,因此任何群組原則阻止 PowerShell 5.1 的機器都會失敗,訊息為 `Couldn't start the session — EUNKNOWN: unknown error, uv_spawn`,即使已安裝 PowerShell 7 也是如此。

4748 4833 

4749**該怎麼做:**4834**該怎麼做:**

4750 4835 

4751* 如果訊息讀取 `Couldn't start the session`,升級到 v2.1.212 或更新版本。在較早的版本上,您也可以在單獨的終端中首先執行 `claude daemon run`,然後再次啟動背景工作階段。該命令在終端的前景中執行背景服務,因此服務僅在該終端保持開啟時持續。4836* 如果訊息顯示 `Couldn't start the session`,請升級到 v2.1.212 或更新版本。在較早的版本上,您也可以先在另一個終端機中執行 `claude daemon run`,然後再次啟動背景工作階段。該命令在終端機的前景中執行背景服務,因此服務僅在該終端機保持開啟時持續運作。

4752* 如果 npm 安裝正在替換二進位檔案,等待它完成,然後再次啟動背景工作階段4837* 如果 npm 安裝正在替換二進位檔案,請等待它完成,然後再次啟動背景工作階段

4753* 如果錯誤在 v2.1.212 或更新版本上出現,沒有 npm 安裝執行,請要求您的 Windows 管理員在限制原則中允許 Claude Code 可執行檔4838* 如果錯誤在 v2.1.212 或更新版本上出現,且沒有 npm 安裝正在執行,請向您的 Windows 管理員確認是否有限制原則阻止 Claude Code 可執行檔

4754* 如果關閉終端時背景服務停止,Claude Code 在沒有 PowerShell 的情況下啟動它。安裝 PowerShell 7,或要求您的管理員解除阻止 PowerShell,以便服務可以超越終端。4839* 如果關閉終端機時背景服務停止,表示 Claude Code 是在沒有 PowerShell 的情況下啟動它的。請安裝 PowerShell 7,或要求您的管理員解除對 PowerShell 的阻止,以便服務可以在終端機關閉後繼續運作。

4755 4840 

4756<h3 id="eacces-when-starting-a-background-session">4841<h3 id="eacces-when-starting-a-background-session">

4757 啟動背景工作階段時 EACCES4842 啟動背景工作階段時 EACCES

4758</h3>4843</h3>

4759 4844 

4760Claude Code 無法執行其自己的二進位檔案來啟動[背景服務](/docs/zh-TW/agent-view#the-supervisor-process),該服務託管背景工作階段。在 npm 安裝上,這通常意味著 `npm install -g @anthropic-ai/claude-code` 在那一刻替換二進位檔案,無論您執行它還是[自動更新程式](/docs/zh-TW/setup#auto-updates)執行。當您從[代理檢視](/docs/zh-TW/agent-view)開啟工作階段時,錯誤出現:4845Claude Code 無法執行其自己的二進位檔案來啟動託管背景工作階段的[背景服務](/docs/zh-TW/agent-view#the-supervisor-process)。在 npm 安裝上,這通常意味著 `npm install -g @anthropic-ai/claude-code` 在那一刻正在替換二進位檔案,無論是您執行的還是[自動更新程式](/docs/zh-TW/setup#auto-updates)執行的。當您從 [agent 檢視](/docs/zh-TW/agent-view)開啟工作階段時,會出現此錯誤:

4761 4846 

4762```text theme={null}4847```text theme={null}

4763Couldn't start the background service — spawn background service: EACCES: permission denied, posix_spawn '/usr/local/lib/node_modules/@anthropic-ai/claude-code/bin/claude'4848Couldn't start the background service — spawn background service: EACCES: permission denied, posix_spawn '/usr/local/lib/node_modules/@anthropic-ai/claude-code/bin/claude'

4764```4849```

4765 4850 

4766當您使用 `/background` 或 `claude --bg` 啟動工作階段時,相同的原因出現在 `Couldn't reach the background service (...)` 內。在相同重新安裝視窗期間,錯誤可能命名另一個代碼,例如 `ENOENT` 或 `ENOEXEC`,或 Windows 上的 `EUNKNOWN` 或 `EPERM`;跨重試持續的 `EUNKNOWN` 有[不同的原因](#eunknown-when-starting-a-background-session)。4851當您使用 `/background` 或 `claude --bg` 啟動工作階段時,相同的原因出現在 `Couldn't reach the background service (...)` 內。在相同的重新安裝期間,錯誤可能改為顯示另一個代碼,例如 `ENOENT` 或 `ENOEXEC`,或 Windows 上的 `EUNKNOWN` 或 `EPERM`;在多次重試後仍持續的 `EUNKNOWN` 有[不同的原因](#eunknown-when-starting-a-background-session)。

4767 4852 

4768在 npm 安裝上,Claude Code 等待重新安裝完成並自動重試:最多十秒,以及在 npm 安裝 Claude Code 在機器上明顯仍在執行時最多兩分鐘,涵蓋另一個 Claude Code 程序下載更新。當安裝超過該等待時,失敗命名更新而不是裸錯誤代碼:4853在 npm 安裝上,Claude Code 會等待重新安裝完成並自動重試:最多十秒,而當機器上明顯仍有 Claude Code 的 npm 安裝在執行時最多兩分鐘,這涵蓋了另一個 Claude Code 程序正在下載更新的情況。當安裝超過該等待時間時,失敗訊息會提及更新,而不是單純的錯誤代碼:

4769 4854 

4770```text theme={null}4855```text theme={null}

4771Claude Code is being updated by npm on this machine (still not runnable after 2 min, EACCES) — try again when the update finishes4856Claude Code is being updated by npm on this machine (still not runnable after 2 min, EACCES) — try again when the update finishes

4772```4857```

4773 4858 

4774在 v2.1.257 之前,等待在每種情況下停止在十秒,因此此錯誤在另一個 Claude Code 程序仍在下載更新時出現。在 v2.1.246 之前,Claude Code 立即失敗,沒有等待。4859在 v2.1.257 之前,等待在所有情況下都在十秒停止,因此此錯誤會在另一個 Claude Code 程序仍在下載更新時出現。在 v2.1.246 之前,Claude Code 會立即失敗,不會等待。

4775 4860 

4776**該怎麼做:**4861**該怎麼做:**

4777 4862 

4778* 等待幾秒,然後開啟工作階段或再次分派。當訊息說 Claude Code 正在更新時,在更新完成後重試。4863* 等待幾秒,然後開啟工作階段或再次分派。當訊息說 Claude Code 正在更新時,請在更新完成後重試。

4779* 如果錯誤在沒有 npm 安裝執行時持續,您的使用者無法執行已安裝的二進位檔案。檢查其權限及其目錄的,或重新安裝 Claude Code。4864* 如果錯誤在沒有 npm 安裝執行時持續,表示您的使用者無法執行已安裝的二進位檔案。請檢查其權限及其目錄的權限,或重新安裝 Claude Code。

4780 4865 

4781<h3 id="background-service-exited-before-it-became-reachable">4866<h3 id="background-service-exited-before-it-became-reachable">

4782 背景服務在變得可到達之前退出4867 背景服務在可連線之前退出

4783</h3>4868</h3>

4784 4869 

4785Claude Code 啟動為[背景服務](/docs/zh-TW/agent-view#the-supervisor-process)的程序在變得可到達之前退出,因此 Claude Code 無法開啟您的工作階段。當服務在退出前列印錯誤時,括號中的原因給出退出代碼或訊號以及服務列印的第一行,其命名停止它的內容:4870Claude Code 作為[背景服務](/docs/zh-TW/agent-view#the-supervisor-process)啟動的程序在接受連線之前就退出了,因此 Claude Code 無法開啟您的工作階段。當服務在退出前列印了錯誤時,括號中的原因會提供退出碼或訊號以及服務列印的第一行,該行指出使其停止的原因:

4786 4871 

4787```text theme={null}4872```text theme={null}

4788Couldn't reach the background service (background service exited before it became reachable (exit code N): <the service's first error line>) — run 'claude daemon status'4873Couldn't reach the background service (background service exited before it became reachable (exit code N): <the service's first error line>) — run 'claude daemon status'

4789```4874```

4790 4875 

4791當您從[代理檢視](/docs/zh-TW/agent-view)開啟工作階段時,相同的原因跟隨 `Couldn't start the background service —`。當服務在退出前未列印任何內容時,訊息改為說 `nothing on stderr`。4876當您從 [agent 檢視](/docs/zh-TW/agent-view)開啟工作階段時,相同的原因接在 `Couldn't start the background service —` 之後。當服務在退出前未列印任何內容時,訊息改為顯示 `nothing on stderr`。

4792 4877 

4793Claude Code 使用服務的錯誤行報告失敗。在 v2.1.246 之前,失敗僅在 45 秒等待後表現,為 `background service did not become reachable within 45s`,沒有服務的錯誤行。4878Claude Code 會連同服務的錯誤行一起報告失敗。在 v2.1.246 之前,失敗僅在等待 45 秒後才以 `background service did not become reachable within 45s` 的形式出現,且不含服務的錯誤行。

4794 4879 

4795兩個引用的原因有已知的原因:4880兩種引用的原因有已知的成因:

4796 4881 

4797* `Error: claude native binary not installed.`:npm 安裝在那一刻替換 Claude Code 二進位檔案,因此服務執行 npm 的佔位符。在安裝完成後重試;如果沒有安裝執行時行持續,[完成 npm 安裝](/docs/zh-TW/troubleshoot-install#native-binary-not-found-after-npm-install)。在 v2.1.257 之前,macOS npm 自我更新在安裝視窗期間在每次啟動時產生此失敗。4882* `Error: claude native binary not installed.`:npm 安裝在那一刻正在替換 Claude Code 二進位檔案,因此服務執行了 npm 的佔位檔。請在安裝完成後重試;如果在沒有安裝執行時該行仍持續出現,請[完成 npm 安裝](/docs/zh-TW/troubleshoot-install#native-binary-not-found-after-npm-install)。在 v2.1.257 之前,macOS 上的 npm 自我更新會在安裝期間的每次啟動時產生此失敗。

4798* Windows 上每次啟動時 `nothing on stderr` 和退出代碼 1:`daemon.lock` 命名 Claude Code 既無法訊號也無法證明已消失的程序,因此每個新服務得出結論另一個保持鎖定並退出。Claude Code 可以證明其寫入器已消失的鎖定會自動替換,不會產生此失敗。當失敗在每次啟動時重複時,刪除 `~/.claude/daemon.lock`,然後開啟工作階段或再次分派。在 v2.1.257 之前,這樣的鎖定阻止每次啟動,直到您刪除檔案。4883* Windows 上每次啟動時都出現 `nothing on stderr` 且退出碼為 1:`daemon.lock` 指向一個 Claude Code 既無法傳送訊號、也無法證明已消失的程序,因此每個新服務都判定另一個服務持有鎖定並退出。Claude Code 能證明其寫入者已消失的鎖定會自動被替換,不會產生此失敗。當失敗在每次啟動時重複出現時,請刪除 `~/.claude/daemon.lock`,然後開啟工作階段或再次分派。在 v2.1.257 之前,這樣的鎖定會阻止每次啟動,直到您刪除該檔案。

4799 4884 

4800**該怎麼做:**4885**該怎麼做:**

4801 4886 

4802* 如果訊息引用一行,修復它命名的內容,然後開啟工作階段或再次分派。下次嘗試再次啟動服務4887* 如果訊息引用了一行,請修正其指出的問題,然後開啟工作階段或再次分派。下次嘗試會再次啟動服務

4803* 執行 `claude daemon status` 檢查現在是否有服務執行4888* 執行 `claude daemon status` 檢查現在是否有服務正在執行

4804 4889 

4805<h3 id="working-directory-no-longer-exists-when-starting-a-background-session">4890<h3 id="working-directory-no-longer-exists-when-starting-a-background-session">

4806 啟動背景工作階段時工作目錄不再存在4891 啟動背景工作階段時工作目錄不再存在

4807</h3>4892</h3>

4808 4893 

4809您嘗試在不再存在的目錄中啟動[背景工作階段](/docs/zh-TW/agent-view)。Claude Code 不啟動工作階段,訊息命名遺漏的目錄:4894您啟動[背景工作階段](/docs/zh-TW/agent-view)時所在的目錄在工作階段啟動期間被移除。Claude Code 不會啟動工作階段,訊息會指出遺失的目錄:

4810 4895 

4811```text theme={null}4896```text theme={null}

4812Couldn't start a background session (working directory no longer exists or is not accessible: /tmp/demo)4897Couldn't start a background session (working directory no longer exists or is not accessible: /tmp/demo)

4813```4898```

4814 4899 

4815在 v2.1.257 之前,工作階段似乎啟動,然後在代理檢視中顯示為失敗列,原因相同。4900在 v2.1.257 之前,工作階段看似已啟動,然後在 agent 檢視中顯示為失敗列,原因相同。

4816 4901 

4817在 v2.1.281 之前,此訊息也在您啟動工作階段之前目錄已消失時出現。該案例報告[`could not be resolved on disk`](#workspace-not-trusted-when-dispatching-a-background-session)。4902在 v2.1.281 之前,當目錄在您啟動工作階段之前就已消失時,也會出現此訊息。該情況會報告 [`could not be resolved on disk`](#workspace-not-trusted-when-dispatching-a-background-session)。

4818 4903 

4819**該怎麼做:**4904**該怎麼做:**

4820 4905 

4821* 重新建立訊息命名的目錄,或從存在的目錄分派,然後再試一次4906* 重新建立訊息指出的目錄,或從存在的目錄分派,然後再試一次

4822 4907 

4823<h3 id="workspace-not-trusted-when-dispatching-a-background-session">4908<h3 id="workspace-not-trusted-when-dispatching-a-background-session">

4824 分派背景工作階段時工作區未信任4909 分派背景工作階段時工作區未信任

4825</h3>4910</h3>

4826 4911 

4827您在未[信任](/docs/zh-TW/permissions#project-allow-rules-and-workspace-trust)的目錄中啟動或重新啟動[背景工作階段](/docs/zh-TW/agent-view),工作區信任對話無法出現以詢問您。Claude Code 不啟動工作階段:4912您在尚未[信任](/docs/zh-TW/permissions#project-allow-rules-and-workspace-trust)的目錄中啟動或重新啟動[背景工作階段](/docs/zh-TW/agent-view),而工作區信任對話框無法出現來詢問您。Claude Code 不會啟動工作階段:

4828 4913 

4829```text theme={null}4914```text theme={null}

4830Workspace not trusted. Run `claude` in /path/to/project once and accept the trust prompt, then retry.4915Workspace not trusted. Run `claude` in /path/to/project once and accept the trust prompt, then retry.

4831```4916```

4832 4917 

4833從工作階段自己的目錄中的終端,相同的命令改為顯示信任對話並在您接受後啟動工作階段。此訊息出現在沒有對話可以出現的地方,例如在指令碼中,或當您從不同於其自己的目錄重新啟動工作階段時。4918若從工作階段自己目錄中的終端機執行,相同的命令會改為顯示信任對話框,並在您接受後啟動工作階段。此訊息出現在無法顯示對話框的地方,例如在指令碼中,或當您從非其自身的目錄重新啟動工作階段時。

4834 4919 

4835兩個變體命名不同的原因:4920兩種變體指出不同的原因:

4836 4921 

4837* **`The home directory is trusted one session at a time`**:工作階段的目錄是您的主目錄。Claude Code 永遠不會儲存主目錄的信任,因此在較早的工作階段中在那裡接受對話不計算。4922* **`The home directory is trusted one session at a time`**:工作階段的目錄是您的家目錄。Claude Code 永遠不會儲存家目錄的信任,因此在較早的工作階段中於該處接受對話框並不算數。

4838* **`<path> could not be resolved on disk`**:Claude Code 無法在磁碟上找到工作階段的目錄。4923* **`<path> could not be resolved on disk`**:Claude Code 無法在磁碟上找到工作階段的目錄。

4839 4924 

4925在 v2.1.286 之前,在 Windows 上,如果信任記錄儲存時路徑的大小寫不同,此訊息也可能出現在您已信任的目錄中。請更新到 v2.1.286 或更新版本。

4926 

4840**該怎麼做:**4927**該怎麼做:**

4841 4928 

4842* 在訊息命名的目錄中執行 `claude` 並接受信任對話,然後再次執行命令4929* 在訊息指出的目錄中執行 `claude` 並接受信任對話框,然後再次執行命令

4843* 對於主目錄訊息,從您主目錄中的終端執行命令,以便對話可以出現,或改為從專案目錄啟動工作階段4930* 對於家目錄訊息,請從家目錄中的終端機執行命令,以便對話框可以出現,或改為從專案目錄啟動工作階段

4844* 對於 `could not be resolved on disk` 訊息,重新建立目錄,或從存在的目錄啟動新工作階段4931* 對於 `could not be resolved on disk` 訊息,請重新建立目錄,或從存在的目錄啟動新工作階段

4845 4932 

4846<h2 id="wrapper-and-ide-errors">4933<h2 id="wrapper-and-ide-errors">

4847 包裝程式和 IDE 錯誤4934 包裝程式和 IDE 錯誤

Details

39這些有提供者特定的差異:39這些有提供者特定的差異:

40 40 

41* **MCP servers**:[來自 claude.ai 的連接器](/docs/zh-TW/mcp#use-mcp-servers-from-claude-ai)僅在您的 claude.ai 訂閱是作用中驗證方法時才會載入。[工具搜尋](/docs/zh-TW/mcp#configure-tool-search)在 `ANTHROPIC_BASE_URL` 指向非第一方主機時預設為關閉,在 Google Cloud's Agent Platform 上早於 Claude 4.5 世代的模型或在 Microsoft Foundry [部署於 Azure 上](https://platform.claude.com/docs/en/build-with-claude/claude-in-microsoft-foundry#hosting-options)時不受支援41* **MCP servers**:[來自 claude.ai 的連接器](/docs/zh-TW/mcp#use-mcp-servers-from-claude-ai)僅在您的 claude.ai 訂閱是作用中驗證方法時才會載入。[工具搜尋](/docs/zh-TW/mcp#configure-tool-search)在 `ANTHROPIC_BASE_URL` 指向非第一方主機時預設為關閉,在 Google Cloud's Agent Platform 上早於 Claude 4.5 世代的模型或在 Microsoft Foundry [部署於 Azure 上](https://platform.claude.com/docs/en/build-with-claude/claude-in-microsoft-foundry#hosting-options)時不受支援

42* **Subagents**:內建的 [Explore subagent](/docs/zh-TW/sub-agents#built-in-subagents) 在 Claude API 上將其繼承的模型上限設為 Opus,在任何其他提供者(包括 AWS 上的 Claude Platform)上直接繼承主要對話的模型42* **Subagents**:當主要對話執行 Fable 時,內建的 [Explore subagent](/docs/zh-TW/sub-agents#built-in-subagents) 在使用 Claude 訂閱、Anthropic Console 帳戶,或透過 `ANTHROPIC_BASE_URL` 連線的 [LLM 閘道](/docs/zh-TW/llm-gateway)時會在 Opus 上執行。在其他提供者上(包括 AWS 上的 Claude Platform),它會在 Fable 上執行

43* **[Commands](/docs/zh-TW/commands#all-commands)**:43* **[Commands](/docs/zh-TW/commands#all-commands)**:

44 * `/design-sync` 和 `/import` 及其 `claude import` 子命令形式在 Amazon Bedrock、Google Cloud's Agent Platform、Microsoft Foundry 和 AWS 上的 Claude Platform 上不可用,以及透過 [Claude apps gateway](/docs/zh-TW/claude-apps-gateway#availability-and-limitations)44 * `/design-sync` 和 `/import` 及其 `claude import` 子命令形式在 Amazon Bedrock、Google Cloud's Agent Platform、Microsoft Foundry 和 AWS 上的 Claude Platform 上不可用,以及透過 [Claude apps gateway](/docs/zh-TW/claude-apps-gateway#availability-and-limitations)

45 * `/voice` 需要 claude.ai 帳戶45 * `/voice` 需要 claude.ai 帳戶

fullscreen.md +3 −1

Details

104* **點擊多選功能表中的選項**,以切換它,然後點擊提交按鈕以確認您的選擇。點擊自由文字列(例如多選題中的 `Other` 列)會聚焦其輸入欄位,以便您可以輸入答案。需要 Claude Code v2.1.208 或更新版本。104* **點擊多選功能表中的選項**,以切換它,然後點擊提交按鈕以確認您的選擇。點擊自由文字列(例如多選題中的 `Other` 列)會聚焦其輸入欄位,以便您可以輸入答案。需要 Claude Code v2.1.208 或更新版本。

105* **點擊 `/config` 面板中的設定值**,以變更它,並使用滑鼠滾輪捲動設定清單。需要 Claude Code v2.1.271 或更新版本。105* **點擊 `/config` 面板中的設定值**,以變更它,並使用滑鼠滾輪捲動設定清單。需要 Claude Code v2.1.271 或更新版本。

106* **使用滑鼠滾輪捲動選擇或多選功能表**,當它有超過一次顯示的選項時,例如短終端機視窗中的 `/model` 清單。當指標在其選項上方時,滾輪會捲動清單。需要 Claude Code v2.1.280 或更新版本。106* **使用滑鼠滾輪捲動選擇或多選功能表**,當它有超過一次顯示的選項時,例如短終端機視窗中的 `/model` 清單。當指標在其選項上方時,滾輪會捲動清單。需要 Claude Code v2.1.280 或更新版本。

107* **在清單面板(例如 `/skills`、`/mcp` 和 `/plugin` 的已安裝清單)中使用其捲軸捲動溢出的清單。** 當指標在清單上方時,捲軸會出現在有超過一行可容納的列的清單旁邊。點擊軌道以跳至該點,或拖曳滑塊。需要 Claude Code v2.1.281 或更新版本。107* **使用捲軸捲動溢出的清單。** 在清單面板(例如 `/skills`、`/mcp` 和 `/plugin` 的已安裝清單)中,當指標位於列數超過可容納範圍的清單上方時,捲軸會出現在該清單旁邊。點擊軌道以跳至該點,或拖曳滑塊。需要 Claude Code v2.1.281 或更新版本。

108 * 當捲軸兩端有 `↑` 和 `↓` 箭頭時,點擊箭頭以捲動單一列,或按住箭頭以持續捲動。箭頭需要 Claude Code v2.1.286 或更新版本。

109* **點擊清單邊緣的 `↑ N more` 或 `↓ N more` 列**,以跳至清單的該端,而不選擇任何選項。需要 Claude Code v2.1.286 或更新版本。

108* **點擊已摺疊的工具結果**,以展開它並查看完整輸出。再次點擊以摺疊。工具呼叫及其結果會一起展開。只有有更多內容要顯示的訊息才可點擊。110* **點擊已摺疊的工具結果**,以展開它並查看完整輸出。再次點擊以摺疊。工具呼叫及其結果會一起展開。只有有更多內容要顯示的訊息才可點擊。

109 * 點擊也會展開 `!` shell 命令的輸出,無論是較舊的截斷結果或命令執行時的即時進度列。需要 Claude Code v2.1.257 或更新版本。111 * 點擊也會展開 `!` shell 命令的輸出,無論是較舊的截斷結果或命令執行時的即時進度列。需要 Claude Code v2.1.257 或更新版本。

110 * 點擊也會展開當寄件者是[隊友](/docs/zh-TW/agent-teams)或在您的工作階段中執行的另一個代理時的暗淡 `Message from @<sender>` 列。來自[您其他工作階段之一](/docs/zh-TW/cross-session-messaging#what-a-message-looks-like)的訊息列也會顯示訊息的第一行,且無法點擊,因此按 `Ctrl+o` 以讀取該訊息。112 * 點擊也會展開當寄件者是[隊友](/docs/zh-TW/agent-teams)或在您的工作階段中執行的另一個代理時的暗淡 `Message from @<sender>` 列。來自[您其他工作階段之一](/docs/zh-TW/cross-session-messaging#what-a-message-looks-like)的訊息列也會顯示訊息的第一行,且無法點擊,因此按 `Ctrl+o` 以讀取該訊息。

headless.md +8 −0

Details

62| 自訂代理 | `--agents <json>` |62| 自訂代理 | `--agents <json>` |

63| 一個 plugin | `--plugin-dir <path>`、`--plugin-url <url>` |63| 一個 plugin | `--plugin-dir <path>`、`--plugin-url <url>` |

64 64 

65bare 模式也會限制工作階段執行期間發生的事情:

66 

67* **MCP 伺服器**:只有在命令列上提供的伺服器會連接,例如使用 `--mcp-config`。在互動工作階段中,除非您傳遞 `--ide`,否則 Claude Code 也會跳過自動 IDE 連接。

68* **系統提醒**:Claude 會收到您的提示詞和工具結果,但不會附帶 Claude Code 原本會一併加入的 [系統提醒](/docs/zh-TW/glossary#system-reminder)。例如,當 Claude 先前讀取的檔案在磁碟上變更時,Claude 不會收到通知,也不會取得可用 skill 的清單,包括來自 `--add-dir` 資料夾的 skill。

69* **背景任務**:不會執行任何背景任務。達到 [逾時](/docs/zh-TW/tools-reference#timeout-and-output-limits) 的命令會停止,而不是 [移至背景](/docs/zh-TW/tools-reference#background-commands)。

70 

71在 v2.1.286 之前,這些限制僅部分生效:互動式 `--bare` 工作階段會連接一般工作階段會連接的 MCP 伺服器,每個 `--bare` 工作階段都會傳送系統提醒,且背景任務仍可使用。

72 

65<Note>73<Note>

66 `--bare` 是用於指令碼和 SDK 呼叫的建議模式,並將在未來版本中成為 `-p` 的預設值。74 `--bare` 是用於指令碼和 SDK 呼叫的建議模式,並將在未來版本中成為 `-p` 的預設值。

67</Note>75</Note>

hooks.md +164 −170

Details

239下面的[設定](#configuration)部分記錄了完整架構,每個 [hook 事件](#hook-events)部分記錄了您的命令接收的輸入以及它可以返回的輸出。239下面的[設定](#configuration)部分記錄了完整架構,每個 [hook 事件](#hook-events)部分記錄了您的命令接收的輸入以及它可以返回的輸出。

240 240 

241<h2 id="configuration">241<h2 id="configuration">

242 配置242 設定

243</h2>243</h2>

244 244 

245Hooks 在 JSON 設定檔中定義。配置有三個嵌套層級:245Hook 定義在 JSON 設定檔中。設定有三層巢狀結構:

246 246 

2471. 選擇要回應的 [hook 事件](#hook-events),例如 `PreToolUse` 或 `Stop`2471. 選擇要回應的 [hook 事件](#hook-events),例如 `PreToolUse` 或 `Stop`

2482. 新增 [匹配器群組](#matcher-patterns) 以篩選何時觸發,例如「僅針對 Bash 工具」2482. 新增 [matcher 群組](#matcher-patterns)來篩選觸發時機,例如「僅限 Bash 工具」

2493. 定義一個或多個 [hook 處理程式](#hook-handler-fields) 以在匹配時執行2493. 定義一個或多個在符合時執行的 [hook 處理常式](#hook-handler-fields)

250 250 

251有關完整的逐步說明和註解範例,請參閱上面的 [Hook 如何解析](#how-a-hook-resolves)。251請參閱上方的 [Hook 如何解析](#how-a-hook-resolves),其中有附註解範例的完整逐步說明。

252 252 

253<Note>253<Note>

254 此頁面為每個層級使用特定術語:**hook 事件**表示生命週期點,**匹配器群組**表示篩選器,**hook 處理程式**表示執行的 shell 命令、HTTP 端點、MCP 工具、提示或代理。'Hook' 本身指的是一般功能。254 本頁針對每個層級使用特定術語:**hook 事件**指生命週期中的時間點,**matcher 群組**指篩選條件,**hook 處理常式**指實際執行的 shell 命令、HTTP 端點、MCP 工具、提示詞或 agent。單獨使用「hook」時指的是整體功能。

255</Note>255</Note>

256 256 

257<h3 id="hook-locations">257<h3 id="hook-locations">

258 Hook 位置258 Hook 位置

259</h3>259</h3>

260 260 

261您定義 hook 的位置決定了其範圍:261定義 hook 的位置決定其範圍:

262 262 

263| 位置 | 範圍 | 可共享 |263| 位置 | 範圍 | 可共用 |

264| :- | :- | :- |264| :- | :- | :- |

265| `~/.claude/settings.json` | 您的所有專案 | 否,本機限定 |265| `~/.claude/settings.json` | 您的所有專案 | 否,僅限您的電腦本機 |

266| `.claude/settings.json` | 單一專案 | 是,可提交到儲存庫 |266| `.claude/settings.json` | 單一專案 | 是,可提交至儲存庫 |

267| `.claude/settings.local.json` | 單一專案 | 否,gitignored(當 Claude Code 將設定儲存到其中時) |267| `.claude/settings.local.json` | 單一專案 | 否,Claude Code 將設定儲存至此檔時會將其加入 gitignore |

268| 受管理的原則設定 | 組織範圍 | 是,由管理員控制 |268| 受管政策設定 | 整個組織 | 是,由管理員控管 |

269| [Plugin](/docs/zh-TW/plugins/overview) `hooks/hooks.json` | 啟用外掛程式時 | 是,與外掛程式一起打包 |269| [外掛](/docs/zh-TW/plugins/overview) `hooks/hooks.json` | 外掛啟用時 | 是,與外掛綁定 |

270| [Skill](/docs/zh-TW/skills) frontmatter | 叫用 skill 後的工作階段其餘部分。請參閱 [Skills 和代理中的 Hooks](#hooks-in-skills-and-agents) | 是,在 skill 檔案中定義 |270| [Skill](/docs/zh-TW/skills) frontmatter | 叫用 skill 後的工作階段剩餘期間。請參閱 [skill 與 agent 中的 hook](#hooks-in-skills-and-agents) | 是,定義於 skill 檔案中 |

271| [Subagent](/docs/zh-TW/sub-agents) frontmatter | 該 subagent 執行時 | 是,在 subagent 檔案中定義 |271| [Subagent](/docs/zh-TW/sub-agents) frontmatter | 該 subagent 執行期間 | 是,定義於 subagent 檔案中 |

272 272 

273[雲端工作階段](/docs/zh-TW/claude-code-on-the-web) 不會讀取您的本機 `~/.claude/settings.json`。在 [自託管環境](/docs/zh-TW/self-hosted-environments-configuration#permissions-and-tool-approval) 中,Claude Code 也執行操作員從執行器主機的 `~/.claude/` 中植入的 hooks,並在該檔案位於 [Claude Code 應用的受管理來源](/docs/zh-TW/managed-settings#how-claude-code-combines-managed-sources) 中時執行執行器映像的受管理設定檔中的 hooks,預設情況下僅當伺服器管理設定或 MDM 傳遞的 Claude Code 原則都不提供受管理層級時。請參閱 [您的設定中哪些內容會轉移到雲端工作階段](/docs/zh-TW/cloud-environments#what-carries-over-from-your-setup) 以了解哪些設定檔和外掛程式,以及因此哪些 hooks,到達雲端工作階段。273[雲端工作階段](/docs/zh-TW/claude-code-on-the-web)不會讀取您本機的 `~/.claude/settings.json`。在[自行託管環境](/docs/zh-TW/self-hosted-environments-configuration#permissions-and-tool-approval)中,Claude Code 也會執行操作者從 runner 主機的 `~/.claude/` 預先植入的 hook;當 runner 映像檔的受管設定檔屬於 [Claude Code 套用的受管來源](/docs/zh-TW/managed-settings#how-claude-code-combines-managed-sources)之一時,Claude Code 也會執行該檔案中的 hook,而依預設,這僅在伺服器受管設定與透過 MDM 傳遞的 Claude Code 政策都未提供受管層級時才會發生。請參閱[從您的設定中沿用的項目](/docs/zh-TW/cloud-environments#what-carries-over-from-your-setup),了解哪些設定檔與外掛(以及因此哪些 hook)會進入雲端工作階段。

274 274 

275有關設定檔解析的詳細資訊,請參閱 [settings](/docs/zh-TW/settings)。275如需設定檔解析的詳細資訊,請參閱[設定](/docs/zh-TW/settings)。

276 276 

277來自設定檔、受管理的原則設定和外掛程式的 Hooks 也在 [subagents](/docs/zh-TW/sub-agents) 內執行。當 subagent 呼叫工具時,工具事件(例如 `PreToolUse` 和 `PostToolUse`)會觸發與主要對話中相同的已配置 hooks,輸入會攜帶 `agent_id` 和 `agent_type` [通用輸入欄位](#common-input-fields) 以識別 subagent。277來自設定檔、受管政策設定與外掛的 hook 也會在 [subagent](/docs/zh-TW/sub-agents) 內執行。當 subagent 呼叫工具時,`PreToolUse` 與 `PostToolUse` 等工具事件會觸發與主對話中相同的已設定 hook,且輸入會帶有用於識別 subagent 的 `agent_id` 與 `agent_type` [通用輸入欄位](#common-input-fields)。

278 278 

279企業管理員可以使用 [`allowManagedHooksOnly`](/docs/zh-TW/settings-reference#allowmanagedhooksonly) 在 [受管理設定](/docs/zh-TW/managed-settings) 中限制哪些 hooks 執行:279管理員可以在[受管設定](/docs/zh-TW/managed-settings)中使用 [`allowManagedHooksOnly`](/docs/zh-TW/settings-reference#allowmanagedhooksonly) 來限制可執行的 hook:

280 280 

281* 您的使用者、專案、本機和外掛程式 hooks 被阻止。在受管理設定 `enabledPlugins` 中強制啟用的外掛程式的 Hooks 是例外281* 您的使用者、專案、本機及外掛 hook 會被封鎖。在受管設定 `enabledPlugins` 中強制啟用的外掛所提供的 hook 不受此限

282* Claude Code 也將您的 [`statusLine`](/docs/zh-TW/statusline)、[`fileSuggestion`](/docs/zh-TW/settings-reference#filesuggestion) 和 [`subagentStatusLine`](/docs/zh-TW/statusline#subagent-status-lines) 設定縮小到受管理設定282* Claude Code 也會將您的 [`statusLine`](/docs/zh-TW/statusline)、[`fileSuggestion`](/docs/zh-TW/settings-reference#filesuggestion) 與 [`subagentStatusLine`](/docs/zh-TW/statusline#subagent-status-lines) 設定限縮為僅採用受管設定

283* Claude Code 也停用具有 [`command` 來源](/docs/zh-TW/plugins/marketplace-reference#command-plugin-source) 的外掛程式,包括在受管理設定 `enabledPlugins` 中強制啟用的外掛程式,除非 [`disableCommandPluginSources`](/docs/zh-TW/settings-reference#disablecommandpluginsources) 明確設定為 `false`。`command` 來源需要 Claude Code v2.1.229 或更新版本283* 除非 [`disableCommandPluginSources`](/docs/zh-TW/settings-reference#disablecommandpluginsources) 明確設為 `false`,否則 Claude Code 也會停用具有 [`command` 來源](/docs/zh-TW/plugins/marketplace-reference#command-plugin-source)的外掛,包括在受管設定 `enabledPlugins` 中強制啟用的外掛。`command` 來源需要 Claude Code v2.1.229 或更新版本

284* Claude Code 也阻止市場 [`headersHelper` 命令](/docs/zh-TW/plugins/host-marketplace#authenticate-archive-downloads),除非 [`disableCommandPluginSources`](/docs/zh-TW/settings-reference#disablecommandpluginsources) 明確設定為 `false`,除了受管理設定本身宣告的市場284* 除非 [`disableCommandPluginSources`](/docs/zh-TW/settings-reference#disablecommandpluginsources) 明確設為 `false`,否則 Claude Code 也會封鎖市集的 [`headersHelper` 命令](/docs/zh-TW/plugins/host-marketplace#authenticate-archive-downloads),但受管設定本身宣告的市集除外

285 285 

286請參閱 [在 `allowManagedHooksOnly` 下執行的內容](/docs/zh-TW/settings-reference#what-runs-under-allowmanagedhooksonly)。286請參閱[在 `allowManagedHooksOnly` 下會執行的項目](/docs/zh-TW/settings-reference#what-runs-under-allowmanagedhooksonly)。

287 287 

288Hook 項目在設定層級之間合併而不是相互替換:使用者、專案和本機設定新增自己的 hooks 而不移除受管理的 hooks,[`disableAllHooks`](#disable-or-remove-hooks) 設定無法停用來自受管理設定外部的受管理 hooks。288Hook 項目會在各設定層級之間合併,而不是互相取代:使用者、專案與本機設定會加入各自的 hook,而不會移除受管 hook;且在受管設定以外設定的 [`disableAllHooks`](#disable-or-remove-hooks) 無法停用受管 hook。

289 289 

290[HTTP hook 允許清單](/docs/zh-TW/settings-reference#hook-and-skill-settings) 適用於來自每個來源的 hooks,包括受管理的原則設定:290[HTTP hook 允許清單](/docs/zh-TW/settings-reference#hook-and-skill-settings)適用於所有來源的 hook,包括受管政策設定:

291 291 

292* `allowedHttpHookUrls`:在任何設定層級定義時,Claude Code 僅在其 URL 與合併的允許清單相符時執行 HTTP hook 處理程式292* `allowedHttpHookUrls`:只要在任一設定層級中定義,Claude Code 僅會在 HTTP hook 處理常式的 URL 符合合併後的允許清單時執行它

293* `httpHookAllowedEnvVars`:定義時,Claude Code 僅將該清單上的環境變數插值到 hook 標頭中293* `httpHookAllowedEnvVars`:定義後,Claude Code 只會將清單上的環境變數插入 hook 標頭中

294 294 

295<h3 id="matcher-patterns">295<h3 id="matcher-patterns">

296 匹配器模式296 Matcher 模式

297</h3>297</h3>

298 298 

299`matcher` 欄位篩選 hooks 何時觸發。匹配器的評估方式取決於它包含的字元:299`matcher` 欄位用於篩選 hook 的觸發時機。Matcher 的評估方式取決於其包含的字元:

300 300 

301| 匹配器值 | 評估為 | 範例 |301| Matcher 值 | 評估方式 | 範例 |

302| :- | :- | :- |302| :- | :- | :- |

303| `"*"`、`""` 或省略 | 匹配所有 | 在事件的每次出現時觸發 |303| `"*"`、`""` 或省略 | 全部符合 | 每次發生該事件時都會觸發 |

304| 僅字母、數字、`_`、`-`、空格、`,` 和 `\|` | 精確字串或由 `\|` 或 `,` 分隔的精確字串清單,可選周圍空格 | `Bash` 僅匹配 Bash 工具;`Edit\|Write` 和 `Edit, Write` 各自精確匹配任一工具;`code-reviewer` 僅匹配該代理類型 |304| 僅包含字母、數字、`_`、`-`、空格、`,` 與 `\|` | 精確字串,或以 `\|` 或 `,` 分隔的精確字串清單,前後可有空白 | `Bash` 僅符合 Bash 工具;`Edit\|Write` 與 `Edit, Write` 皆精確符合這兩個工具中的任一個;`code-reviewer` 僅符合該 agent 類型 |

305| 包含任何其他字元 | JavaScript 正規表達式,未錨定 | `^Notebook` 匹配任何以 Notebook 開頭的工具;`mcp__memory__.*` 匹配來自 `memory` 伺服器的每個工具 |305| 包含任何其他字元 | JavaScript 正規表示式,未錨定 | `^Notebook` 符合名稱以 `Notebook` 開頭的任何工具;`mcp__memory__.*` 符合來自 `memory` 伺服器的所有工具 |

306 306 

307在正規表達式路徑上的匹配器使用 JavaScript 的 `RegExp.prototype.test` 進行測試,該測試在值中任何位置的匹配時成功。`Edit.*` 匹配 `Edit` 和 `NotebookEdit`;當您需要整個字串匹配時,用 `^` 和 `$` 包裝模式,如 `^Edit$`。307走正規表示式路徑的 matcher 會以 JavaScript 的 `RegExp.prototype.test` 進行測試,只要值中任何位置有符合即成功。`Edit.*` 同時符合 `Edit` 與 `NotebookEdit`;需要完整字串比對時,請以 `^` 與 `$` 包住模式,例如 `^Edit$`。

308 308 

309`FileChanged` 和 `StopFailure` 使用更窄的精確匹配集,僅包含字母、數字、`_` 和 `|`。匹配器中的連字號、空格或逗號會將其保留在正規表達式路徑上,只有 `|` 分隔替代項。表格中列出的支援匹配器的所有其他事件接受 `|` 或 `,`。309`FileChanged` 與 `StopFailure` 使用較窄的精確比對字元集,僅限字母、數字、`_` 與 `|`。這兩個事件的 matcher 中若含有連字號、空格或逗號,就會走正規表示式路徑,且只有 `|` 能分隔替代項目。下表中其他支援 matcher 的事件皆接受 `|` 或 `,`。

310 310 

311`FileChanged` 事件在建立其監視清單時不遵循這些規則。請參閱 [FileChanged](#filechanged)。311`FileChanged` 事件在建立監看清單時不遵循這些規則。請參閱 [FileChanged](#filechanged)。

312 312 

313每個事件類型在不同的欄位上匹配:313每種事件類型比對的欄位不同:

314 314 

315| 事件 | 匹配器篩選的內容 | 範例匹配器值 |315| 事件 | Matcher 篩選的對象 | Matcher 值範例 |

316| :- | :- | :- |316| :- | :- | :- |

317| `PreToolUse`、`PostToolUse`、`PostToolUseFailure`、`PermissionRequest`、`PermissionDenied` | 工具名稱 | `Bash`、`Edit\|Write`、`mcp__.*` |317| `PreToolUse`、`PostToolUse`、`PostToolUseFailure`、`PermissionRequest`、`PermissionDenied` | 工具名稱 | `Bash`、`Edit\|Write`、`mcp__.*` |

318| `SessionStart` | 工作階段如何開始 | `startup`、`resume`、`clear`、`compact`、`fork` |318| `SessionStart` | 工作階段的啟動方式 | `startup`、`resume`、`clear`、`compact`、`fork` |

319| `Setup` | 哪個 CLI 旗標觸發設定 | `init`、`maintenance` |319| `Setup` | 觸發 setup 的 CLI 旗標 | `init`、`maintenance` |

320| `SessionEnd` | 工作階段為何結束 | `clear`、`resume`、`logout`、`prompt_input_exit`、`other` |320| `SessionEnd` | 工作階段結束的原因 | `clear`、`resume`、`logout`、`prompt_input_exit`、`other` |

321| `Notification` | 通知類型 | `permission_prompt`、`idle_prompt`、`auth_success`、`elicitation_dialog`、`elicitation_url_dialog`、`elicitation_complete`、`elicitation_response`、`agent_needs_input`、`agent_completed`、`quota_auto_resume_fired`、`quota_auto_resume_stale`、`quota_auto_resume_disabled` |321| `Notification` | 通知類型 | `permission_prompt`、`idle_prompt`、`auth_success`、`elicitation_dialog`、`elicitation_url_dialog`、`elicitation_complete`、`elicitation_response`、`agent_needs_input`、`agent_completed`、`quota_auto_resume_fired`、`quota_auto_resume_stale`、`quota_auto_resume_disabled` |

322| `SubagentStart` | 代理類型 | `general-purpose`、`Explore`、`Plan`、自訂代理名稱或外掛程式範圍名稱,如 `^my-plugin:reviewer$` |322| `SubagentStart` | agent 類型 | `general-purpose`、`Explore`、`Plan`、自訂 agent 名稱,或外掛範圍的名稱,例如 `^my-plugin:reviewer$` |

323| `PreCompact`、`PostCompact` | 觸發壓縮的原因 | `manual`、`auto` |323| `PreCompact`、`PostCompact` | 觸發壓縮的原因 | `manual`、`auto` |

324| `PreModelSwitch`、`PostModelSwitch` | 工作階段切換到的模型的規範名稱,如 [PreModelSwitch](#premodelswitch) 下所述 | `claude-opus-5`、`claude-opus-4-6\|claude-opus-5`、`.*opus.*` |324| `PreModelSwitch`、`PostModelSwitch` | 工作階段要切換到的模型之標準名稱,如 [PreModelSwitch](#premodelswitch) 中所述 | `claude-opus-5`、`claude-opus-4-6\|claude-opus-5`、`.*opus.*` |

325| `SubagentStop` | 代理類型 | 與 `SubagentStart` 相同的值 |325| `SubagentStop` | agent 類型 | 與 `SubagentStart` 相同的值 |

326| `ConfigChange` | 配置來源 | `user_settings`、`project_settings`、`local_settings`、`policy_settings`、`skills` |326| `ConfigChange` | 設定來源 | `user_settings`、`project_settings`、`local_settings`、`policy_settings`、`skills` |

327| `CwdChanged` | 不支援匹配器 | 總是在每次出現時觸發 |327| `CwdChanged` | 不支援 matcher | 每次發生時一律觸發 |

328| `DirectoryAdded` | 目錄如何被新增 | `slash_command`、`register_repo_root` |328| `DirectoryAdded` | 目錄的加入方式 | `slash_command`、`register_repo_root` |

329| `FileChanged` | 要監視的字面檔案名稱(請參閱 [FileChanged](#filechanged)) | `.envrc\|.env` |329| `FileChanged` | 要監看的字面檔名(請參閱 [FileChanged](#filechanged)) | `.envrc\|.env` |

330| `StopFailure` | 錯誤類型 | `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` |330| `StopFailure` | 錯誤類型 | `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` |

331| `InstructionsLoaded` | 載入原因 | `session_start`、`nested_traversal`、`path_glob_match`、`include`、`compact` |331| `InstructionsLoaded` | 載入原因 | `session_start`、`nested_traversal`、`path_glob_match`、`include`、`compact` |

332| `UserPromptExpansion` | 命令名稱 | 您的 skill 或命令名稱 |332| `UserPromptExpansion` | 命令名稱 | 您的 skill 或命令名稱 |

333| `Elicitation` | MCP 伺服器名稱 | 您配置的 MCP 伺服器名稱 |333| `Elicitation` | MCP 伺服器名稱 | 您已設定的 MCP 伺服器名稱 |

334| `ElicitationResult` | MCP 伺服器名稱 | 與 `Elicitation` 相同的值 |334| `ElicitationResult` | MCP 伺服器名稱 | 與 `Elicitation` 相同的值 |

335| `UserPromptSubmit`、`PostToolBatch`、`Stop`、`TeammateIdle`、`TaskCreated`、`TaskCompleted`、`WorktreeCreate`、`WorktreeRemove`、`MessageDisplay` | 不支援匹配器 | 總是在每次出現時觸發 |335| `UserPromptSubmit`、`PostToolBatch`、`Stop`、`TeammateIdle`、`TaskCreated`、`TaskCompleted`、`WorktreeCreate`、`WorktreeRemove`、`MessageDisplay` | 不支援 matcher | 每次發生時一律觸發 |

336 336 

337在 `cloud_credential_error` 上匹配 `StopFailure` 需要 Claude Code v2.1.267 或更新版本,這是第一個在該值下報告認證載入失敗而不是 `server_error` 或 `unknown` 的版本。337以 `cloud_credential_error` 比對 `StopFailure` 需要 Claude Code v2.1.267 或更新版本,這是第一個以該值回報憑證載入失敗,而非以 `server_error` 或 `unknown` 回報的版本。

338 338 

339對於大多數事件,Claude Code 針對它在 stdin 上發送給您的 hook 的 [JSON 輸入](#hook-input-and-output) 中的欄位評估匹配器。對於工具事件,該欄位是 `tool_name`。對於 `PreModelSwitch` 和 `PostModelSwitch`,Claude Code 針對它從 `to_model` 衍生的規範名稱評估匹配器,如 [PreModelSwitch](#premodelswitch) 下所述。每個 [hook 事件](#hook-events) 部分列出了該事件的完整匹配器值集和輸入架構。339對於大多數事件,Claude Code 會以它透過 stdin 傳送給您的 hook 的 [JSON 輸入](#hook-input-and-output)中的某個欄位來評估 matcher。對於工具事件,該欄位為 `tool_name`。對於 `PreModelSwitch` 與 `PostModelSwitch`,Claude Code 會以從 `to_model` 推導出的標準名稱來評估 matcher,如 [PreModelSwitch](#premodelswitch) 中所述。每個 [hook 事件](#hook-events)章節都列出了該事件完整的 matcher 值與輸入 schema。

340 340 

341此範例僅在 Claude 寫入或編輯檔案時執行 linting 指令碼:341此範例僅在 Claude 寫入或編輯檔案時執行 lint 指令碼:

342 342 

343```json theme={null}343```json theme={null}

344{344{


358}358}

359```359```

360 360 

361如果您將 `matcher` 欄位新增到不支援匹配器的事件,它會被無聲地忽略。361若您為不支援 matcher 的事件加入 `matcher` 欄位,該欄位會被靜默忽略。

362 362 

363對於工具事件,您可以通過在個別 hook 處理程式上設定 [`if` 欄位](#common-fields) 來更狹隘地篩選。`if` 使用 [權限規則語法](/docs/zh-TW/permissions) 來匹配工具名稱和參數,因此 `"Bash(git *)"` 僅在任何 Bash 輸入的子命令匹配 `git *` 時執行,`"Edit(*.ts)"` 僅針對 TypeScript 檔案執行。363對於工具事件,您可以在個別 hook 處理常式上設定 [`if` 欄位](#common-fields)以進一步縮小篩選範圍。`if` 使用[權限規則語法](/docs/zh-TW/permissions)同時比對工具名稱與引數,因此 `"Bash(git *)"` 會在 Bash 輸入的任何子命令符合 `git *` 時執行,而 `"Edit(*.ts)"` 僅對 TypeScript 檔案執行。

364 364 

365<h4 id="match-mcp-tools">365<h4 id="match-mcp-tools">

366 匹配 MCP 工具366 比對 MCP 工具

367</h4>367</h4>

368 368 

369[MCP](/docs/zh-TW/mcp) 伺服器工具在工具事件中顯示為常規工具(`PreToolUse`、`PostToolUse`、`PostToolUseFailure`、`PermissionRequest`、`PermissionDenied`),因此您可以像匹配任何其他工具名稱一樣匹配它們。369[MCP](/docs/zh-TW/mcp) 伺服器的工具在工具事件(`PreToolUse`、`PostToolUse`、`PostToolUseFailure`、`PermissionRequest`、`PermissionDenied`)中會以一般工具的形式出現,因此您可以用比對其他工具名稱的相同方式來比對它們。

370 370 

371MCP 工具遵循命名模式 `mcp__<server>__<tool>`,例如:371MCP 工具遵循 `mcp__<server>__<tool>` 命名模式,例如:

372 372 

373* `mcp__memory__create_entities`:Memory 伺服器的建立實體工具373* `mcp__memory__create_entities`:Memory 伺服器的建立實體工具

374* `mcp__filesystem__read_file`:Filesystem 伺服器的讀取檔案工具374* `mcp__filesystem__read_file`:Filesystem 伺服器的讀取檔案工具

375* `mcp__github__search_repositories`:GitHub 伺服器的搜尋工具375* `mcp__github__search_repositories`:GitHub 伺服器的搜尋工具

376 376 

377要匹配來自伺服器的每個工具,請在伺服器前綴後附加 `.*`。`.*` 是必需的:像 `mcp__memory` 或 `mcp__brave-search` 這樣的匹配器僅包含精確匹配字元,因此它被比較為精確字串,不匹配任何工具。377若要比對某個伺服器的所有工具,請在伺服器前綴後加上 `.*`。`.*` 是必要的:像 `mcp__memory` 或 `mcp__brave-search` 這樣的 matcher 只包含精確比對字元,因此會被當作精確字串比較,不會符合任何工具。

378 378 

379* `mcp__memory__.*` 匹配來自 `memory` 伺服器的所有工具379* `mcp__memory__.*` 符合 `memory` 伺服器的所有工具

380* `mcp__brave-search__.*` 匹配來自名稱包含連字號的伺服器的所有工具380* `mcp__brave-search__.*` 符合名稱含有連字號的伺服器的所有工具

381* `mcp__.*__write.*` 匹配來自任何伺服器的任何名稱以 `write` 開頭的工具381* `mcp__.*__write.*` 符合任何伺服器中名稱以 `write` 開頭的任何工具

382 382 

383來自 [plugin-bundled MCP server](/docs/zh-TW/mcp#plugin-provided-mcp-servers) 的工具使用包含外掛程式名稱的範圍伺服器段:`mcp__plugin_<plugin-name>_<server-name>__<tool>`。針對裸伺服器金鑰編寫的匹配器永遠不會針對這些工具觸發。對於名為 `my-plugin` 的外掛程式,在金鑰 `db` 下打包伺服器,`query` 工具顯示為 `mcp__plugin_my-plugin_db__query`,因此來自該伺服器的每個工具的匹配器是 `mcp__plugin_my-plugin_db__.*`。在處理程式的 [`if` 欄位](#common-fields) 中使用相同的範圍工具名稱。請參閱 [Plugin-provided MCP servers](/docs/zh-TW/mcp#plugin-provided-mcp-servers) 以了解如何建立範圍名稱。383來自[外掛綁定 MCP 伺服器](/docs/zh-TW/mcp#plugin-provided-mcp-servers)的工具使用包含外掛名稱的範圍化伺服器區段:`mcp__plugin_<plugin-name>_<server-name>__<tool>`。針對單純伺服器鍵撰寫的 matcher 永遠不會對這些工具觸發。例如名為 `my-plugin` 的外掛以鍵 `db` 綁定了一個伺服器,則 `query` 工具會顯示為 `mcp__plugin_my-plugin_db__query`,因此比對該伺服器所有工具的 matcher 為 `mcp__plugin_my-plugin_db__.*`。在處理常式的 [`if` 欄位](#common-fields)中也請使用相同的範圍化工具名稱。請參閱[外掛提供的 MCP 伺服器](/docs/zh-TW/mcp#plugin-provided-mcp-servers),了解範圍化名稱的組成方式。

384 384 

385此範例記錄所有 memory 伺服器操作並驗證來自任何 MCP 伺服器的寫入操作:385此範例會記錄所有 memory 伺服器的操作,並驗證來自任何 MCP 伺服器的寫入操作:

386 386 

387```json theme={null}387```json theme={null}

388{388{


412```412```

413 413 

414<h3 id="hook-handler-fields">414<h3 id="hook-handler-fields">

415 Hook 處理程式欄位415 Hook 處理常式欄位

416</h3>416</h3>

417 417 

418內部 `hooks` 陣列中的每個物件都是一個 hook 處理程式:當匹配器匹配時執行的 shell 命令、HTTP 端點、MCP 工具、LLM 提示或代理。有五種類型:418內層 `hooks` 陣列中的每個物件都是一個 hook 處理常式:即 matcher 符合時執行的 shell 命令、HTTP 端點、MCP 工具、LLM 提示詞或 agent。共有五種類型:

419 419 

420* **[命令 hooks](#command-hook-fields)**(`type: "command"`):執行 shell 命令。您的指令碼在 stdin 上接收事件的 [JSON 輸入](#hook-input-and-output),並通過退出代碼和 stdout 傳回結果。420* **[命令 hook](#command-hook-fields)**(`type: "command"`):執行 shell 命令。您的指令碼會透過 stdin 接收事件的 [JSON 輸入](#hook-input-and-output),並透過退出碼與 stdout 回傳結果。

421* **[HTTP hooks](#http-hook-fields)**(`type: "http"`):將事件的 JSON 輸入作為 HTTP POST 請求發送到 URL。端點通過使用與命令 hooks 相同的 [JSON 輸出格式](#json-output) 的回應正文傳回結果。421* **[HTTP hook](#http-hook-fields)**(`type: "http"`):將事件的 JSON 輸入以 HTTP POST 請求傳送至某個 URL。端點會透過回應主體,以與命令 hook 相同的 [JSON 輸出格式](#json-output)回傳結果。

422* **[MCP 工具 hooks](#mcp-tool-hook-fields)**(`type: "mcp_tool"`):在已連接的 [MCP 伺服器](/docs/zh-TW/mcp) 上呼叫工具。工具的文字輸出被視為類似命令 hook stdout。422* **[MCP 工具 hook](#mcp-tool-hook-fields)**(`type: "mcp_tool"`):呼叫已設定的 [MCP 伺服器](/docs/zh-TW/mcp)上的工具。工具的文字輸出會比照命令 hook 的 stdout 處理。

423* **[提示 hooks](#prompt-and-agent-hook-fields)**(`type: "prompt"`):將提示發送到 Claude 模型進行單輪評估。模型以 JSON 形式返回決定。請參閱 [基於提示的 hooks](#prompt-based-hooks)。423* **[提示詞 hook](#prompt-and-agent-hook-fields)**(`type: "prompt"`):將提示詞傳送給 Claude 模型進行單回合評估。模型會以 JSON 回傳其決定。請參閱[以提示詞為基礎的 hook](#prompt-based-hooks)。

424* **[代理 hooks](#prompt-and-agent-hook-fields)**(`type: "agent"`):生成一個可以使用 Read、Grep 和 Glob 等工具來驗證條件的 subagent,然後返回決定。代理 hooks 是實驗性的,可能會變更。請參閱 [基於代理的 hooks](#agent-based-hooks)。424* **[Agent hook](#prompt-and-agent-hook-fields)**(`type: "agent"`):產生一個 subagent,可使用 Read、Grep 與 Glob 等工具驗證條件後再回傳決定。Agent hook 屬實驗性功能,可能會變更。請參閱[以 agent 為基礎的 hook](#agent-based-hooks)。

425 425 

426所有匹配的 hooks 並行執行。如果您在多個設定檔中定義相同的處理程式,它執行一次。外掛程式或 skill 的相同處理程式副本保持分開。426所有符合的 hook 會平行執行。若您在多個設定檔中定義相同的處理常式,它只會執行一次。外掛或 skill 中的相同處理常式副本則會分開執行。

427 427 

428處理程式在目前目錄中執行,使用 Claude Code 的環境。如果目前目錄不再存在,例如另一個 shell 在工作階段中途刪除的 worktree 或臨時目錄,Claude Code 從以下第一個仍然存在的目錄執行命令 hooks:工作階段開始的目錄、專案根目錄、您的主目錄或系統臨時目錄。Claude Code 在 [debug log](#debug-hooks) 中記錄一個警告,命名回退目錄。428處理常式會在目前目錄中以 Claude Code 的環境執行。若目前目錄已不存在,例如在工作階段中途被另一個 shell 刪除的 worktree 或暫存目錄,Claude Code 會從下列目錄中第一個仍存在者執行命令 hook:工作階段啟動時的目錄、專案根目錄、您的家目錄,或系統暫存目錄。Claude Code 會在[偵錯日誌](#debug-hooks)中記錄一則指出備援目錄的警告。

429 429 

430`$CLAUDE_CODE_REMOTE` 環境變數在遠端網路環境中為 `"true"`,在本機 CLI 中未設定。Claude Code v2.1.199 及更新版本在本機工作階段具有活動的 Remote Control 連接時將 [`$CLAUDE_CODE_BRIDGE_SESSION_ID`](/docs/zh-TW/env-vars) 設定為 [Remote Control](/docs/zh-TW/remote-control) 工作階段 ID。430`$CLAUDE_CODE_REMOTE` 環境變數在遠端 Web 環境中為 `"true"`,在本機 CLI 中則未設定。Claude Code v2.1.199 及更新版本會在本機工作階段具有作用中的 Remote Control 連線時,將 [`$CLAUDE_CODE_BRIDGE_SESSION_ID`](/docs/zh-TW/env-vars) 設為 [Remote Control](/docs/zh-TW/remote-control) 工作階段 ID。

431 431 

432<h4 id="common-fields">432<h4 id="common-fields">

433 通用欄位433 通用欄位


435 435 

436這些欄位適用於所有 hook 類型:436這些欄位適用於所有 hook 類型:

437 437 

438| 欄位 | 必需 | 描述 |438| 欄位 | 必要 | 說明 |

439| :- | :- | :- |439| :- | :- | :- |

440| `type` | 是 | `"command"`、`"http"`、`"mcp_tool"`、`"prompt"` 或 `"agent"` |440| `type` | 是 | `"command"`、`"http"`、`"mcp_tool"`、`"prompt"` 或 `"agent"` |

441| `if` | 否 | 權限規則語法以篩選此 hook 何時執行,例如 `"Bash(git *)"` 或 `"Edit(*.ts)"`。Hook 命令僅在工具呼叫匹配模式時執行。請參閱下面的 [Bash 匹配表](#bash-if-matching) 以了解 Bash 模式如何針對子命令、`$()` 和反引號進行評估。僅在工具事件上評估:`PreToolUse`、`PostToolUse`、`PostToolUseFailure`、`PermissionRequest` 和 `PermissionDenied`。在其他事件上,設定 `if` 的 hook 永遠不會執行。使用與 [權限規則](/docs/zh-TW/permissions) 相同的語法 |441| `if` | 否 | 用於篩選此 hook 執行時機的權限規則語法,例如 `"Bash(git *)"` 或 `"Edit(*.ts)"`。只有在工具呼叫符合該模式時,hook 命令才會執行。請參閱下方的 [Bash 比對表](#bash-if-matching),了解 Bash 模式如何針對子命令、`$()` 與反引號進行評估。僅在工具事件上評估:`PreToolUse`、`PostToolUse`、`PostToolUseFailure`、`PermissionRequest` 與 `PermissionDenied`。在其他事件上,設定了 `if` 的 hook 永遠不會執行。使用與[權限規則](/docs/zh-TW/permissions)相同的語法 |

442| `timeout` | 否 | 取消前的秒數。Claude Code 不會在您使用 [`async: true`](#run-hooks-in-the-background) 執行的命令 hook 上強制執行。預設值:`command`、`http` 和 `mcp_tool` 為 600;`prompt` 為 30;`agent` 為 60。Claude Code 在 [`UserPromptSubmit`](#userpromptsubmit)、[`PreModelSwitch`](#premodelswitch) 和 [`PostModelSwitch`](#postmodelswitch) 上將 `command`、`http` 和 `mcp_tool` 的預設值降低到 30,在 [`MessageDisplay`](#messagedisplay) 上降低到 10。[`SessionEnd`](#sessionend) hooks 共享 1.5 秒的預算;如果您的設定設定了更長的每個 hook `timeout`,Claude Code 會提高預算以匹配,最多 60 秒 |442| `timeout` | 否 | 取消前的秒數。對於以 [`async: true`](#run-hooks-in-the-background) 執行的命令 hook,Claude Code 不會強制執行此值。預設值:`command`、`http` 與 `mcp_tool` 為 600;`prompt` 為 30;`agent` 為 60。在 [`UserPromptSubmit`](#userpromptsubmit)、[`PreModelSwitch`](#premodelswitch) 與 [`PostModelSwitch`](#postmodelswitch) 上,Claude Code 會將 `command`、`http` 與 `mcp_tool` 的預設值降為 30,在 [`MessageDisplay`](#messagedisplay) 上則降為 10。[`SessionEnd`](#sessionend) hook 共用 1.5 秒的時間預算;若您的設定為個別 hook 設定了更長的 `timeout`,Claude Code 會將預算提高以配合,最多 60 秒 |

443| `statusMessage` | 否 | hook 執行時顯示的自訂微調訊息 |443| `statusMessage` | 否 | hook 執行期間顯示的自訂轉圈訊息 |

444| `once` | 否 | 如果為 `true`,Claude Code 在第一次成功執行後移除 hook。執行失敗、以退出代碼 2 阻止或逾時的執行會將 hook 保留在原位,因此它在下一個匹配事件上再次執行。僅在 [skill frontmatter](#hooks-in-skills-and-agents) 中受尊重;在設定檔和代理 frontmatter 中被忽略 |444| `once` | 否 | 若為 `true`,Claude Code 會在 hook 第一次成功執行後將其移除。執行失敗、以退出碼 2 封鎖或逾時的情況下,hook 會保留,因此在下一個符合的事件上會再次執行。僅對在 [skill frontmatter](#hooks-in-skills-and-agents) 中宣告的 hook 生效;在設定檔與 agent frontmatter 中會被忽略 |

445 445 

446`if` 欄位恰好包含一個權限規則。沒有 `&&`、`||` 或清單語法來組合規則;要應用多個條件,請為每個條件定義一個單獨的 hook 處理程式。446`if` 欄位只能容納一條權限規則。沒有 `&&`、`||` 或清單語法可用來組合規則;若要套用多個條件,請為每個條件分別定義 hook 處理常式。

447 447 

448在檔案工具的 `if` 條件中,單一段目錄模式如 `"Edit(src/**)"` 僅匹配工作目錄中的 `src` 目錄及其下的檔案。要匹配任何深度的名為 `src` 的目錄,請寫 `"Edit(**/src/**)"`。在 v2.1.214 之前,`"Edit(src/**)"` 匹配工作目錄下任何深度的名為 `src` 的目錄。448在檔案工具的 `if` 條件中,像 `"Edit(src/**)"` 這樣的單一區段目錄模式只會符合工作目錄中的 `src` 目錄及其下的檔案。若要符合任意深度中名為 `src` 的目錄,請寫成 `"Edit(**/src/**)"`。在 v2.1.214 之前,`"Edit(src/**)"` 會符合工作目錄下任意深度中名為 `src` 的目錄。

449 449 

450<span id="bash-if-matching" />對於 Bash 模式,您的 hook 命令是否執行取決於模式的形狀和 Claude 正在呼叫的 Bash 命令。前導 `VAR=value` 指派在匹配前被移除。450<span id="bash-if-matching" />對於 Bash 模式,您的 hook 命令是否執行取決於模式的形式以及 Claude 所叫用的 Bash 命令。比對前會先移除開頭的 `VAR=value` 指派。

451 451 

452| `if` 模式 | Bash 命令 | Hook 執行? | 原因 |452| `if` 模式 | Bash 命令 | Hook 是否執行? | 原因 |

453| :- | :- | :- | :- |453| :- | :- | :- | :- |

454| `Bash(git *)` | `FOO=bar git push` | 是 | 前導指派被移除;`git push` 匹配 |454| `Bash(git *)` | `FOO=bar git push` | 是 | 開頭的指派會被移除;`git push` 符合 |

455| `Bash(git *)` | `npm test && git push` | 是 | 每個子命令都被檢查;`git push` 匹配 |455| `Bash(git *)` | `npm test && git push` | 是 | 每個子命令都會檢查;`git push` 符合 |

456| `Bash(rm *)` | `echo $(rm -rf /)` | 是 | `$()` 和反引號內的命令被檢查;`rm -rf /` 匹配 |456| `Bash(rm *)` | `echo $(rm -rf /)` | 是 | `$()` 與反引號內的命令會被檢查;`rm -rf /` 符合 |

457| `Bash(rm *)` | `echo $(date)` | 否 | 沒有子命令匹配 `rm *` |457| `Bash(rm *)` | `echo $(date)` | 否 | 沒有子命令符合 `rm *` |

458| `Bash(git push *)` | `echo $(date)` | 是 | 指定超過命令名稱的模式在 `$()`、反引號或 `$VAR` 上執行 hook |458| `Bash(git push *)` | `echo $(date)` | 是 | 指定超過命令名稱的模式,在遇到 `$()`、反引號或 `$VAR` 時仍會執行 hook |

459 459 

460當 Claude Code 無法確定 Bash 輸入執行哪些命令時,它無論如何都會執行您的 hook。因為 `if` 篩選器是盡力而為的,請使用 [權限系統](/docs/zh-TW/permissions) 而不是 hook 來強制執行硬允許或拒絕。460當 Claude Code 無法判斷 Bash 輸入會執行哪些命令時,無論模式為何都會執行您的 hook。由於 `if` 篩選僅為盡力而為,若要強制實施嚴格的允許或拒絕,請使用[權限系統](/docs/zh-TW/permissions)而非 hook。

461 461 

462<h4 id="command-hook-fields">462<h4 id="command-hook-fields">

463 命令 hook 欄位463 命令 hook 欄位

464</h4>464</h4>

465 465 

466除了 [通用欄位](#common-fields) 外,命令 hooks 還接受這些欄位:466除了[通用欄位](#common-fields)之外,命令 hook 還接受下列欄位:

467 467 

468| 欄位 | 必需 | 描述 |468| 欄位 | 必要 | 說明 |

469| :- | :- | :- |469| :- | :- | :- |

470| `command` | 是 | 要執行的 shell 命令。使用 `args` 時,要直接生成的可執行檔。請參閱 [Exec 形式和 shell 形式](#exec-form-and-shell-form) |470| `command` | 是 | 要執行的 shell 命令。搭配 `args` 時,則為要直接產生的可執行檔。請參閱 [Exec 形式與 shell 形式](#exec-form-and-shell-form) |

471| `args` | 否 | 參數清單。存在時,`command` 被解析為可執行檔並直接使用 `args` 作為參數向量生成,不涉及 shell。請參閱 [Exec 形式和 shell 形式](#exec-form-and-shell-form) |471| `args` | 否 | 引數清單。若有此欄位,`command` 會被解析為可執行檔,並以 `args` 作為引數向量直接產生,不經過 shell。請參閱 [Exec 形式與 shell 形式](#exec-form-and-shell-form) |

472| `async` | 否 | 如果為 `true`,在背景執行而不阻止。請參閱 [在背景執行 hooks](#run-hooks-in-the-background) |472| `async` | 否 | 若為 `true`,會在背景執行而不封鎖。請參閱[在背景執行 hook](#run-hooks-in-the-background) |

473| `asyncRewake` | 否 | 如果為 `true`,在背景執行並在退出代碼 2 時喚醒 Claude。Hook 的 stderr,或如果 stderr 為空則為 stdout,作為 [系統提醒](/docs/zh-TW/glossary#system-reminder) 顯示給 Claude,以便它可以對長時間執行的背景失敗做出反應 |473| `asyncRewake` | 否 | 若為 `true`,會在背景執行,並在退出碼為 2 時喚醒 Claude。Hook 的 stderr(若 stderr 為空則為 stdout)會以[系統提醒](/docs/zh-TW/glossary#system-reminder)的形式顯示給 Claude,讓它能對長時間執行的背景失敗做出反應 |

474| `shell` | 否 | 用於此 hook 的 shell。接受 `"bash"` 或 `"powershell"`。預設為 `"bash"`,或在未安裝 Git Bash 時在 Windows 上預設為 `"powershell"`。設定 `"powershell"` 在 Windows 上通過 PowerShell 執行命令。不需要 `CLAUDE_CODE_USE_POWERSHELL_TOOL`,因為 hooks 直接生成 PowerShell。設定 `args` 時被忽略 |474| `shell` | 否 | 此 hook 使用的 shell。接受 `"bash"` 或 `"powershell"`。預設為 `"bash"`,在未安裝 Git Bash 的 Windows 上則為 `"powershell"`。設為 `"powershell"` 會在 Windows 上透過 PowerShell 執行命令。由於 hook 會直接產生 PowerShell,因此不需要 `CLAUDE_CODE_USE_POWERSHELL_TOOL`。設定了 `args` 時會被忽略 |

475 475 

476<a id="exec-form-and-shell-form" />476<a id="exec-form-and-shell-form" />

477 477 

478<h5 id="exec-form-and-shell-form">478<h5 id="exec-form-and-shell-form">

479 Exec 形式和 shell 形式479 Exec 形式與 shell 形式

480</h5>480</h5>

481 481 

482當設定 `args` 時,命令 hook 以 exec 形式執行,當省略 `args` 時以 shell 形式執行。每當 hook 參考 [路徑佔位符](#reference-scripts-by-path) 時設定 `args`,因為每個元素作為一個參數傳遞,不進行引用。當您需要 shell 功能(如管道或 `&&`)時,或當兩個問題都不適用時,省略 `args`。482設定了 `args` 時,命令 hook 會以 exec 形式執行;省略 `args` 時則以 shell 形式執行。只要 hook 參照了[路徑預留位置](#reference-scripts-by-path),就請設定 `args`,因為每個元素都會作為單一引數傳遞,無需加引號。當您需要管線或 `&&` 等 shell 功能,或上述兩種情況都不適用時,請省略 `args`。

483 483 

484**Exec 形式**在設定 `args` 時執行。Claude Code 在 `PATH` 上解析 `command` 作為可執行檔並直接使用 `args` 作為參數向量生成它。沒有 shell,因此每個 `args` 元素恰好是一個參數,完全按照編寫的方式,路徑佔位符如 `${CLAUDE_PLUGIN_ROOT}` 被替換為 `command` 和每個 `args` 元素中的純字串。特殊字元如撇號、`$` 和反引號逐字傳遞,因為沒有 shell 來解釋它們。任何平台上都不會發生 shell 標記化。484**Exec 形式**在有 `args` 時執行。Claude Code 會將 `command` 解析為 `PATH` 上的可執行檔,並以 `args` 作為引數向量直接產生它。由於沒有 shell,每個 `args` 元素都會完全依照所寫的內容成為一個引數,而 `${CLAUDE_PLUGIN_ROOT}` 等路徑預留位置會以純字串形式代入 `command` 與每個 `args` 元素。撇號、`$` 與反引號等特殊字元會原封不動地傳遞,因為沒有 shell 會解譯它們。在任何平台上都不會進行 shell 斷詞。

485 485 

486**Shell 形式**在省略 `args` 時執行。`command` 字串被傳遞到 shell:macOS 和 Linux 上的 `sh -c`、Windows 上的 Git Bash,或未安裝 Git Bash 時的 PowerShell。設定 `shell` 欄位以明確選擇。Shell 標記化字串、展開變數並解釋管道、`&&`、重定向和 glob。486**Shell 形式**在沒有 `args` 時執行。`command` 字串會傳給 shell:macOS 與 Linux 上為 `sh -c`,Windows 上為 Git Bash,未安裝 Git Bash 時則為 PowerShell。設定 `shell` 欄位可明確選擇。Shell 會對字串進行斷詞、展開變數,並解譯管線、`&&`、重新導向與萬用字元。

487 487 

488<Note>488<Note>

489 在 Windows 上,exec 形式需要 `command` 解析為真實可執行檔,如 `.exe`。npm、npx、eslint 和其他工具在 `node_modules/.bin` 中安裝的 `.cmd` 和 `.bat` 填充程式不是可執行檔,無法在沒有 shell 的情況下生成。要在 exec 形式中執行它們,直接使用 `node` 呼叫底層指令碼,例如 `"command": "node", "args": ["${CLAUDE_PLUGIN_ROOT}/node_modules/eslint/bin/eslint.js"]`。`node` 加上指令碼路徑模式在每個平台上都有效,因為 `node.exe` 是真實二進位檔。要按名稱執行 `.cmd` 或 `.bat` 填充程式,請使用 shell 形式。489 在 Windows 上,exec 形式要求 `command` 解析為真正的可執行檔,例如 `.exe`。npm、npx、eslint 與其他工具安裝在 `node_modules/.bin` 中的 `.cmd` 與 `.bat` shim 並非可執行檔,無法在沒有 shell 的情況下產生。若要以 exec 形式執行它們,請直接以 `node` 叫用底層指令碼,例如 `"command": "node", "args": ["${CLAUDE_PLUGIN_ROOT}/node_modules/eslint/bin/eslint.js"]`。`node` 加上指令碼路徑的模式在所有平台上都可運作,因為 `node.exe` 是真正的二進位檔。若要依名稱執行 `.cmd` 或 `.bat` shim,請使用 shell 形式。

490</Note>490</Note>

491 491 

492此範例執行與外掛程式一起打包的 Node 指令碼。Exec 形式將解析的指令碼路徑作為一個參數傳遞,不進行引用:492此範例執行與外掛綁定的 Node 指令碼。Exec 形式會將解析後的指令碼路徑作為單一引數傳遞,無需加引號:

493 493 

494```json theme={null}494```json theme={null}

495{495{


499}499}

500```500```

501 501 

502等效的 shell 形式需要引用以處理包含空格或特殊字元的路徑:502等效的 shell 形式需要加引號,以處理含有空格或特殊字元的路徑:

503 503 

504```json theme={null}504```json theme={null}

505{505{


508}508}

509```509```

510 510 

511兩種形式都支援相同的 [路徑佔位符](#reference-scripts-by-path),並且都將它們作為環境變數 `CLAUDE_PROJECT_DIR`、`CLAUDE_PLUGIN_ROOT` 和 `CLAUDE_PLUGIN_DATA` 匯出到生成的程序,因此指令碼可以讀取 `process.env.CLAUDE_PLUGIN_ROOT`,無論它是如何啟動的。511兩種形式都支援相同的[路徑預留位置](#reference-scripts-by-path),並且都會在產生的程序上將它們匯出為環境變數 `CLAUDE_PROJECT_DIR`、`CLAUDE_PLUGIN_ROOT` 與 `CLAUDE_PLUGIN_DATA`,因此無論指令碼是如何啟動的,都能讀取 `process.env.CLAUDE_PLUGIN_ROOT`。

512 512 

513外掛程式 hooks 另外替換 [`${user_config.*}`](/docs/zh-TW/plugins/manifest-reference#user-configuration) 值,僅在 exec 形式中:該值被替換為 `command` 和每個 `args` 元素中的純字串,因此沒有 shell 重新解析它。513外掛 hook 另外還會代入 [`${user_config.*}`](/docs/zh-TW/plugins/manifest-reference#user-configuration) 值,但僅限 exec 形式:該值會以純字串形式代入 `command` 與每個 `args` 元素,因此不會被 shell 重新剖析。

514 514 

515shell 形式的外掛程式 hook,其 `command` 參考 `${user_config.*}` 會失敗並出現 [錯誤](/docs/zh-TW/errors#plugin-command-references-user-config),而不是執行。要在 shell 形式的 hook 中使用選項值,請讀取 `$CLAUDE_PLUGIN_OPTION_<KEY>` 環境變數,例如 `webhook_url` 選項的 `$CLAUDE_PLUGIN_OPTION_WEBHOOK_URL`,或設定 `args` 以將 hook 切換到 exec 形式。在 v2.1.207 之前,shell 形式的外掛程式 hook 命令也替換了 `${user_config.*}`。515`command` 參照 `${user_config.*}` 的 shell 形式外掛 hook 會以[錯誤](/docs/zh-TW/errors#plugin-command-references-user-config)失敗,而不會執行。若要在 shell 形式的 hook 中使用選項值,請讀取 `$CLAUDE_PLUGIN_OPTION_<KEY>` 環境變數,例如 `webhook_url` 選項對應的 `$CLAUDE_PLUGIN_OPTION_WEBHOOK_URL`,或設定 `args` 將 hook 切換為 exec 形式。在 v2.1.207 之前,shell 形式的外掛 hook 命令也會代入 `${user_config.*}`。

516 516 

517<Note>517<Note>

518 在 exec 形式中,`command` 僅是可執行檔名稱或路徑。如果 `command` 是沒有路徑分隔符的裸名稱,並且與 `args` 一起包含空格,Claude Code 會記錄警告,因為生成將失敗:沒有名為 `node script.js` 的可執行檔。將額外的令牌移到 `args` 中。包含空格的絕對路徑,如 `C:\Program Files\nodejs\node.exe`,是單個有效的可執行檔,不會觸發警告。518 在 exec 形式中,`command` 只能是可執行檔名稱或路徑。若 `command` 是不含路徑分隔符號的單純名稱,且在有 `args` 的情況下包含空白,Claude Code 會記錄警告,因為產生程序將會失敗:不存在名為 `node script.js` 的可執行檔。請將多餘的 token 移至 `args`。含有空格的絕對路徑,例如 `C:\Program Files\nodejs\node.exe`,是單一有效的可執行檔,不會觸發警告。

519</Note>519</Note>

520 520 

521<h4 id="http-hook-fields">521<h4 id="http-hook-fields">

522 HTTP hook 欄位522 HTTP hook 欄位

523</h4>523</h4>

524 524 

525除了 [通用欄位](#common-fields) 外,HTTP hooks 還接受這些欄位:525除了[通用欄位](#common-fields)之外,HTTP hook 還接受下列欄位:

526 526 

527| 欄位 | 必需 | 描述 |527| 欄位 | 必要 | 說明 |

528| :- | :- | :- |528| :- | :- | :- |

529| `url` | 是 | 要發送 POST 請求的 URL |529| `url` | 是 | POST 請求要傳送到的 URL |

530| `headers` | 否 | 其他 HTTP 標頭作為鍵值對。值支援使用 `$VAR_NAME` 或 `${VAR_NAME}` 語法的環境變數插值。只有列在 `allowedEnvVars` 中的變數才會被解析 |530| `headers` | 否 | 以鍵值對表示的額外 HTTP 標頭。值支援使用 `$VAR_NAME` 或 `${VAR_NAME}` 語法插入環境變數。只有列在 `allowedEnvVars` 中的變數會被解析 |

531| `allowedEnvVars` | 否 | 可能被插值到標頭值中的環境變數名稱清單。對未列出的變數的參考會被替換為空字串。任何環境變數插值都需要此項 |531| `allowedEnvVars` | 否 | 可插入標頭值中的環境變數名稱清單。對未列出之變數的參照會被替換為空字串。任何環境變數插入都必須設定此欄位才能運作 |

532 532 

533Claude Code 將 hook 的 [JSON 輸入](#hook-input-and-output) 作為 POST 請求正文發送,`Content-Type: application/json`。回應正文使用與命令 hooks 相同的 [JSON 輸出格式](#json-output)。533Claude Code 會將 hook 的 [JSON 輸入](#hook-input-and-output)作為 POST 請求主體傳送,並帶有 `Content-Type: application/json`。回應主體使用與命令 hook 相同的 [JSON 輸出格式](#json-output)。

534 534 

535錯誤處理與命令 hooks 不同;請參閱 [HTTP 回應處理](#http-response-handling)。535錯誤處理方式與命令 hook 不同;請參閱 [HTTP 回應處理](#http-response-handling)。

536 536 

537此範例將 `PreToolUse` 事件發送到本機驗證服務,使用來自 `MY_TOKEN` 環境變數的令牌進行驗證:537此範例將 `PreToolUse` 事件傳送至本機驗證服務,並使用 `MY_TOKEN` 環境變數中的 token 進行驗證:

538 538 

539```json theme={null}539```json theme={null}

540{540{


563 MCP 工具 hook 欄位563 MCP 工具 hook 欄位

564</h4>564</h4>

565 565 

566除了 [通用欄位](#common-fields) 外,MCP 工具 hooks 還接受這些欄位:566除了[通用欄位](#common-fields)之外,MCP 工具 hook 還接受下列欄位:

567 567 

568| 欄位 | 必需 | 描述 |568| 欄位 | 必要 | 說明 |

569| :- | :- | :- |569| :- | :- | :- |

570| `server` | 是 | 已配置的 MCP 伺服器的名稱。對於 [plugin-bundled server](/docs/zh-TW/mcp#plugin-provided-mcp-servers),這是範圍名稱 `plugin:<plugin-name>:<server-name>`,例如 `plugin:my-plugin:db`,而不是裸伺服器金鑰 |570| `server` | 是 | 已設定的 MCP 伺服器名稱。對於[外掛綁定的伺服器](/docs/zh-TW/mcp#plugin-provided-mcp-servers),這是範圍化名稱 `plugin:<plugin-name>:<server-name>`,例如 `plugin:my-plugin:db`,而非單純的伺服器鍵 |

571| `tool` | 是 | 該伺服器上要呼叫的工具名稱 |571| `tool` | 是 | 要在該伺服器上呼叫的工具名稱 |

572| `input` | 否 | 傳遞給工具的參數。字串值支援來自 hook 的 [JSON 輸入](#hook-input-and-output) 的 `${path}` 替換,例如 `"${tool_input.file_path}"` |572| `input` | 否 | 傳遞給工具的引數。字串值支援從 hook 的 [JSON 輸入](#hook-input-and-output)進行 `${path}` 代入,例如 `"${tool_input.file_path}"` |

573 573 

574此範例在每個 `Write` 或 `Edit` 後呼叫 `my_server` MCP 伺服器上的 `security_scan` 工具,傳遞編輯檔案的路徑:574此範例會在每次 `Write` 或 `Edit` 後,呼叫 `my_server` MCP 伺服器上的 `security_scan` 工具,並傳入被編輯檔案的路徑:

575 575 

576```json theme={null}576```json theme={null}

577{577{


594```594```

595 595 

596<h5 id="how-the-tool’s-result-is-read">596<h5 id="how-the-tool’s-result-is-read">

597 工具結果的讀取方式597 如何讀取工具的結果

598</h5>598</h5>

599 599 

600Claude Code 讀取工具的文字內容的方式與讀取命令 hook stdout 相同,遵循 [退出代碼 0 下的解析規則](#exit-code-0)。如果工具返回 `isError: true`,hook 會產生非阻止性錯誤,執行繼續。600Claude Code 讀取工具文字內容的方式與讀取命令 hook stdout 相同,遵循[退出碼 0 下的剖析規則](#exit-code-0)。若工具回傳 `isError: true`,hook 會產生非封鎖性錯誤,並繼續執行。

601 601 

602<h5 id="when-the-server-is-still-connecting">602<h5 id="when-the-server-is-still-connecting">

603 當伺服器仍在連接時603 當伺服器仍在連線中

604</h5>604</h5>

605 605 

606在 hook 可以阻止或改變結果的事件上,例如 `PreToolUse` 或 `Stop`,Claude Code 在呼叫工具之前等待連接伺服器,最多 [`MCP_TIMEOUT`](/docs/zh-TW/env-vars),並在 hook 自己的 [`timeout`](#common-fields) 內。在觀察事件上,例如 `Notification` 或 `SessionEnd`,它不等待。606在 hook 可以封鎖或變更結果的事件上,例如 `PreToolUse` 或 `Stop`,Claude Code 會在呼叫工具前等待正在連線的伺服器,最多等待 [`MCP_TIMEOUT`](/docs/zh-TW/env-vars),且不超過 hook 本身的 [`timeout`](#common-fields)。在觀察性事件上,例如 `Notification` 或 `SessionEnd`,則不會等待。

607 607 

608顯示 [`cached` 狀態](/docs/zh-TW/mcp#server-status-detail) 的伺服器在 hook 呼叫其工具時連接。如果伺服器在該點未連接,hook 會產生非阻止性錯誤,執行繼續。Hook 永遠不會啟動 OAuth 流程,因此請先 [從 `/mcp` 驗證伺服器](/docs/zh-TW/mcp#authenticate-with-remote-mcp-servers)。608顯示 [`cached` 狀態](/docs/zh-TW/mcp#server-status-detail)的伺服器會在 hook 呼叫其工具時進行連線。若此時伺服器未連線,hook 會產生非封鎖性錯誤,並繼續執行。Hook 永遠不會啟動 OAuth 流程,因此請先[從 `/mcp` 驗證伺服器](/docs/zh-TW/mcp#authenticate-with-remote-mcp-servers)。

609 609 

610<h5 id="events-that-fire-before-mcp-servers-are-available">610<h5 id="events-that-fire-before-mcp-servers-are-available">

611 MCP 伺服器不可用之前觸發的事件611 在 MCP 伺服器可用前觸發的事件

612</h5>612</h5>

613 613 

614`SessionStart` 在啟動時,包括使用 `--continue` 或 `--resume`,以及每個 `Setup` 事件在工作階段的 MCP 伺服器對 hooks 可用之前觸發。Claude Code 跳過其 `mcp_tool` hooks 而不呼叫工具,[debug log](#debug-hooks) 記錄 `mcp_tool hooks are not available for the 'SessionStart' hook event (no MCP client context)`,或相同的訊息命名 `Setup`。當 `SessionStart` 稍後在工作階段中再次觸發時,在 `/clear` 或壓縮後,其 `mcp_tool` hooks 執行。對於工作階段在啟動時需要的任何內容,請改用 `type: "command"` hook 在 `SessionStart` 上。614啟動時的 `SessionStart`(包括使用 `--continue` 或 `--resume` 時)以及每個 `Setup` 事件,都會在工作階段的 MCP 伺服器可供 hook 使用之前觸發。Claude Code 會略過這些事件的 `mcp_tool` hook 而不呼叫工具,且[偵錯日誌](#debug-hooks)會記錄 `mcp_tool hooks are not available for the 'SessionStart' hook event (no MCP client context)`,或指名 `Setup` 的相同訊息。當 `SessionStart` 在工作階段稍後(`/clear` 或壓縮之後)再次觸發時,其 `mcp_tool` hook 會執行。對於工作階段啟動時所需的任何內容,請改在 `SessionStart` 上使用 `type: "command"` hook。

615 615 

616<h4 id="prompt-and-agent-hook-fields">616<h4 id="prompt-and-agent-hook-fields">

617 提示和代理 hook 欄位617 提示詞與 agent hook 欄位

618</h4>618</h4>

619 619 

620除了 [通用欄位](#common-fields) 外,提示和代理 hooks 還接受這些欄位:620除了[通用欄位](#common-fields)之外,提示詞與 agent hook 還接受下列欄位:

621 621 

622| 欄位 | 必需 | 描述 |622| 欄位 | 必要 | 說明 |

623| :- | :- | :- |623| :- | :- | :- |

624| `prompt` | 是 | 要發送到模型的提示文字。使用 `$ARGUMENTS` 作為 hook 輸入 JSON 的佔位符。使用反斜線逸出以包含字面文字:`\$1.00` 呈現為 `$1.00` |624| `prompt` | 是 | 要傳送給模型的提示詞文字。使用 `$ARGUMENTS` 作為 hook 輸入 JSON 的預留位置。若要包含字面文字,請以反斜線跳脫:`\$1.00` 會呈現為 `$1.00` |

625| `model` | 否 | 用於評估的模型。預設為 Claude Code 用於 [背景功能](/docs/zh-TW/costs#background-token-usage) 的模型 |625| `model` | 否 | 用於評估的模型。預設為 Claude Code 用於[背景功能](/docs/zh-TW/costs#background-token-usage)的模型 |

626 626 

627<h3 id="reference-scripts-by-path">627<h3 id="reference-scripts-by-path">

628 按路徑參考指令碼628 以路徑參照指令碼

629</h3>629</h3>

630 630 

631使用這些佔位符按相對於專案或外掛程式根目錄的路徑參考 hook 指令碼,無論 hook 執行時的工作目錄如何:631使用這些預留位置,以相對於專案或外掛根目錄的方式參照 hook 指令碼,不受 hook 執行時的工作目錄影響:

632 632 

633* `${CLAUDE_PROJECT_DIR}`:工作階段開始的專案根目錄。Claude Code 也在 [stdio MCP 伺服器](/docs/zh-TW/mcp#option-3-add-a-local-stdio-server) 和外掛程式 LSP 伺服器的環境中設定此變數。633* `${CLAUDE_PROJECT_DIR}`:工作階段啟動時的專案根目錄。Claude Code 也會在 [stdio MCP 伺服器](/docs/zh-TW/mcp#option-3-add-a-local-stdio-server)與外掛 LSP 伺服器的環境中設定此變數。

634* `${CLAUDE_PLUGIN_ROOT}`:外掛程式的安裝目錄,用於與 [plugin](/docs/zh-TW/plugins/overview) 一起打包的指令碼。請參閱 [外掛程式環境變數](/docs/zh-TW/plugins/manifest-reference#environment-variables) 以了解路徑在更新中的行為。634* `${CLAUDE_PLUGIN_ROOT}`:外掛的安裝目錄,用於與[外掛](/docs/zh-TW/plugins/overview)綁定的指令碼。請參閱[外掛環境變數](/docs/zh-TW/plugins/manifest-reference#environment-variables),了解此路徑在更新時的行為。

635* `${CLAUDE_PLUGIN_DATA}`:外掛程式的 [持久資料目錄](/docs/zh-TW/plugins/components#path-variables-and-persistent-data),用於應該在外掛程式更新後保留的依賴項和狀態。635* `${CLAUDE_PLUGIN_DATA}`:外掛的[持久資料目錄](/docs/zh-TW/plugins/components#path-variables-and-persistent-data),用於應在外掛更新後保留的相依性與狀態。

636 636 

637<Note>637<Note>

638 **Worktrees 不同。** 如果 Claude 在工作階段期間進入 [worktree](/docs/zh-TW/worktrees),Claude Code 將 `${CLAUDE_PROJECT_DIR}` 保留在原位,並以不同的方式將 worktree 路徑傳遞給您的 hooks:638 **Worktree 的情況不同。** 若 Claude 在工作階段期間進入 [worktree](/docs/zh-TW/worktrees),Claude Code 會讓 `${CLAUDE_PROJECT_DIR}` 維持原樣,並以另一種方式將 worktree 路徑傳給您的 hook:

639 639 

640 * **`${CLAUDE_PROJECT_DIR}` 保持不變**:它仍然指向工作階段開始的專案根目錄,因此像 `${CLAUDE_PROJECT_DIR}/.claude/hooks/check-style.sh` 這樣的命令仍然在主簽出中執行指令碼。640 * **`${CLAUDE_PROJECT_DIR}` 保持不變**:它仍指向工作階段啟動時的專案根目錄,因此像 `${CLAUDE_PROJECT_DIR}/.claude/hooks/check-style.sh` 這樣的命令仍會在主要 checkout 中執行指令碼。

641 * **`cwd` 跟隨 Claude**:hook 的 [輸入 JSON](#common-input-fields) 中的 `cwd` 欄位在 Claude 進入 worktree 後是 worktree 根目錄,在 Claude 執行 `cd` 後是新目錄。當 hook 需要知道 Claude 正在哪個目錄中工作時,讀取它。641 * **`cwd` 跟隨 Claude**:Claude 進入 worktree 後,hook [輸入 JSON](#common-input-fields) 中的 `cwd` 欄位為 worktree 根目錄;Claude 執行 `cd` 後則為新的目錄。當 hook 需要知道 Claude 正在哪個目錄中工作時,請讀取此欄位。

642</Note>642</Note>

643 643 

644對於任何參考路徑佔位符的 hook,優先使用 [exec 形式](#exec-form-and-shell-form)。在 shell 形式中,用雙引號括起每個佔位符。644任何參照路徑預留位置的 hook,建議使用 [exec 形式](#exec-form-and-shell-form)。在 shell 形式中,請以雙引號包住每個預留位置。

645 645 

646<Tabs>646<Tabs>

647 <Tab title="專案指令碼">647 <Tab title="專案指令碼">

648 此範例使用 `${CLAUDE_PROJECT_DIR}` 在任何 `Write` 或 `Edit` 工具呼叫後從專案的 `.claude/hooks/` 目錄執行樣式檢查器:648 此範例使用 `${CLAUDE_PROJECT_DIR}`,在任何 `Write` 或 `Edit` 工具呼叫後,從專案的 `.claude/hooks/` 目錄執行樣式檢查器:

649 649 

650 ```json theme={null}650 ```json theme={null}

651 {651 {


667 ```667 ```

668 </Tab>668 </Tab>

669 669 

670 <Tab title="外掛程式指令碼">670 <Tab title="外掛指令碼">

671 在 `hooks/hooks.json` 中定義外掛程式 hooks,使用可選的頂層 `description` 欄位。啟用外掛程式時,其 hooks 會與您的使用者和專案 hooks 合併。671 在 `hooks/hooks.json` 中定義外掛 hook,可選擇加入頂層的 `description` 欄位。外掛啟用時,其 hook 會與您的使用者及專案 hook 合併。

672 672 

673 此範例執行與外掛程式一起打包的格式化指令碼:673 此範例執行與外掛綁定的格式化指令碼:

674 674 

675 ```json theme={null}675 ```json theme={null}

676 {676 {


693 }693 }

694 ```694 ```

695 695 

696 有關建立外掛程式 hooks 的詳細資訊,請參閱 [外掛程式元件參考](/docs/zh-TW/plugins/components#hooks)。696 如需建立外掛 hook 的詳細資訊,請參閱[外掛元件參考](/docs/zh-TW/plugins/components#hooks)。

697 </Tab>697 </Tab>

698</Tabs>698</Tabs>

699 699 

700<h3 id="hooks-in-skills-and-agents">700<h3 id="hooks-in-skills-and-agents">

701 Skills 和代理中的 Hooks701 Skill 與 agent 中的 hook

702</h3>702</h3>

703 703 

704除了設定檔和外掛程式外,hooks 還可以使用 frontmatter 直接在 [skills](/docs/zh-TW/skills) 和 [subagents](/docs/zh-TW/sub-agents) 中定義,使用與基於設定的 hooks 相同的配置格式。Claude Code 保持它們註冊的時間取決於元件:704除了設定檔與外掛之外,hook 也可以使用 frontmatter 直接定義在 [skill](/docs/zh-TW/skills) 與 [subagent](/docs/zh-TW/sub-agents) 中,其設定格式與以設定為基礎的 hook 相同。Claude Code 保留其註冊的時間長短取決於元件:

705 705 

706* **Subagent hooks**:Claude Code 僅在該 subagent 執行時執行它們,並在其完成時移除它們。Claude Code 在此處將 `Stop` hook 轉換為 `SubagentStop`,這是 subagent 完成時觸發的事件。706* **Subagent hook**:Claude Code 只會在該 subagent 執行期間執行它們,並在其完成時移除。Claude Code 會將此處的 `Stop` hook 轉換為 `SubagentStop`,也就是 subagent 完成時觸發的事件。

707* **Skill hooks**:Claude Code 在您或 Claude 叫用 skill 時註冊它們,並在工作階段的其餘部分保持執行它們,在 skill 自己的轉向之後的轉向上也是如此。要讓 Claude Code 在第一次成功執行後移除 hook,請在其上設定 [`once: true`](#common-fields)。707* **Skill hook**:Claude Code 會在您或 Claude 叫用 skill 時註冊它們,並在工作階段剩餘期間持續執行,包括 skill 本身所在回合之後的回合。若要讓 Claude Code 改為在 hook 第一次成功執行後將其移除,請在其上設定 [`once: true`](#common-fields)。

708 708 

709此 skill 定義了一個 `PreToolUse` hook,在每個 `Bash` 命令之前執行安全驗證指令碼:709此 skill 定義了一個 `PreToolUse` hook,會在每個 `Bash` 命令之前執行安全驗證指令碼:

710 710 

711```yaml theme={null}711```yaml theme={null}

712---712---


721---721---

722```722```

723 723 

724Subagents 在其 YAML frontmatter 中使用相同的格式。724Subagent 在其 YAML frontmatter 中使用相同的格式。

725 725 

726專案 skill 中的 Frontmatter hooks 遵循與設定檔中 hooks 相同的 [工作區信任規則](#workspace-trust)。Claude Code 在您或 Claude 叫用 skill 時註冊它們,包括在您未信任的資料夾中的 `-p` 執行。726專案 skill 中的 frontmatter hook 遵循與[設定檔中的 hook 相同的工作區信任規則](#workspace-trust)。Claude Code 會在您或 Claude 叫用 skill 時註冊它們,包括在您尚未信任的資料夾中執行 `-p` 時。

727 727 

728專案 subagent 中的 Frontmatter hooks 僅在您接受代理檔案來自的資料夾的 [工作區信任對話](/docs/zh-TW/permissions#project-allow-rules-and-workspace-trust) 後執行。`-p` 工作階段不計為接受它。[在您信任資料夾之前執行的內容](/docs/zh-TW/permissions#what-runs-before-you-trust-a-folder) 將此與設定檔規則進行比較,subagents 頁面列出 [哪些範圍是豁免的](/docs/zh-TW/sub-agents#hooks-in-subagent-frontmatter)。在 v2.1.218 之前,這些 hooks 可以從您未信任的資料夾執行。728專案 subagent 中的 frontmatter hook,只有在您為 agent 檔案所在的資料夾接受[工作區信任對話方塊](/docs/zh-TW/permissions#project-allow-rules-and-workspace-trust)後才會執行。`-p` 工作階段不算作接受。[信任資料夾前會執行的項目](/docs/zh-TW/permissions#what-runs-before-you-trust-a-folder)將此與設定檔規則進行比較,而 subagent 頁面列出了[哪些範圍不受此限](/docs/zh-TW/sub-agents#hooks-in-subagent-frontmatter)。在 v2.1.218 之前,這些 hook 可能會從您尚未信任的資料夾執行。

729 729 

730<h3 id="the-/hooks-menu">730<h3 id="the-/hooks-menu">

731 `/hooks` 選單731 `/hooks` 選單

732</h3>732</h3>

733 733 

734在 Claude Code 中輸入 `/hooks` 以開啟唯讀瀏覽器來查看您配置的 hooks。選單顯示每個 hook 事件及其配置的 hooks 計數,讓您深入查看匹配器,並顯示每個 hook 處理程式的完整詳細資訊。使用它來驗證配置、檢查 hook 來自哪個設定檔,或檢查 hook 的命令、提示或 URL。734在 Claude Code 中輸入 `/hooks`,即可開啟已設定 hook 的唯讀瀏覽器。清單會標示每個 hook 的來源,例如使用者設定、專案設定、本機設定、外掛或目前的工作階段。

735 

736選單顯示所有五種 hook 類型:`command`、`prompt`、`agent`、`http` 和 `mcp_tool`。每個 hook 都標有 `[type]` 前綴和指示其定義位置的來源:

737 735 

738* `User Settings`:來自 `~/.claude/settings.json`736選取某個 hook 即可查看其執行內容的完整文字以及定義位置,例如其設定檔的路徑或其外掛的名稱。

739* `Project Settings`:來自 `.claude/settings.json`

740* `Local Settings`:來自 `.claude/settings.local.json`

741* `Plugin Hooks`:來自外掛程式的 `hooks/hooks.json`

742* `Session Hooks`:在目前工作階段中記錄在記憶體中

743 737 

744選擇 hook 會開啟詳細檢視,顯示其事件、匹配器、類型、來源檔案和完整命令、提示或 URL。選單是唯讀的:要新增、修改或移除 hooks,請直接編輯設定 JSON 或要求 Claude 進行變更。738若要瀏覽所有 hook 事件,包括未設定任何 hook 的事件,請在清單末端選取 `All events`。

745 739 

746<h3 id="disable-or-remove-hooks">740<h3 id="disable-or-remove-hooks">

747 停用或移除 hooks741 停用或移除 hook

748</h3>742</h3>

749 743 

750要移除 hook,請從設定 JSON 檔案中刪除其項目。744若要移除定義在設定檔中的 hook,請從該檔案中刪除其項目。

751 745 

752要暫時停用所有 hooks 而不移除它們,請在設定檔中設定 `"disableAllHooks": true`。Claude Code 讀取 [設定優先順序](/docs/zh-TW/settings#settings-precedence) 應用後剩下的值,因此專案的 `.claude/settings.json` 中的 `"disableAllHooks": false` 會覆蓋您的使用者設定中的 `true`。要根據專案的設定關閉一次執行的 hooks,請傳遞 `--settings '{"disableAllHooks": true}'`,這優先於專案和本機設定。沒有辦法在保留 hook 在配置中的同時停用單個 hook。746若要暫時停用所有 hook 而不移除它們,請在您的設定檔中設定 `"disableAllHooks": true`。Claude Code 會讀取套用[設定優先順序](/docs/zh-TW/settings#settings-precedence)後剩下的值,因此專案 `.claude/settings.json` 中的 `"disableAllHooks": false` 會覆寫您使用者設定中的 `true`。若要不論專案設定為何都在單次執行中關閉 hook,請傳入 `--settings '{"disableAllHooks": true}'`,它會優先於專案與本機設定。無法在保留於設定中的同時停用個別 hook。

753 747 

754`disableAllHooks` 設定遵循受管理的設定階層。如果管理員已通過受管理的原則設定配置了 hooks,則在使用者、專案或本機設定中設定的 `disableAllHooks` 無法停用這些受管理的 hooks。只有在受管理的設定層級設定的 `disableAllHooks` 才能停用受管理的 hooks。有關每個層級的完整範圍,請參閱 [`disableAllHooks`](/docs/zh-TW/settings-reference#disableallhooks)。748`disableAllHooks` 設定會遵循受管設定的階層。若管理員已透過受管政策設定來設定 hook,則在使用者、專案或本機設定中設定的 `disableAllHooks` 無法停用這些受管 hook。只有在受管設定層級設定的 `disableAllHooks` 才能停用受管 hook。如需各層級的完整作用範圍,請參閱 [`disableAllHooks`](/docs/zh-TW/settings-reference#disableallhooks)。

755 749 

756對設定檔中 hooks 的直接編輯通常由檔案監視程式自動拾取。750直接編輯設定檔中的 hook,通常會由檔案監看程式自動偵測並套用。

757 751 

758<h2 id="hook-input-and-output">752<h2 id="hook-input-and-output">

759 Hook 輸入和輸出753 Hook 輸入和輸出

hooks-guide.md +14 −11

Details

69 </Step>69 </Step>

70 70 

71 <Step title="驗證設定">71 <Step title="驗證設定">

72 輸入 `/hooks` 以開啟 hooks 瀏覽器。您將看到所有可用 hook 事件的列表,每個配置了 hooks 的事件旁邊都有一個計數。選擇 `Notification` 以確認您的新 hook 出現在列表中。選擇 hook 會顯示其詳細資訊:事件、匹配器、類型、來源檔案和命令。72 在 Claude Code 提示字元輸入 `/hooks` 以開啟 hooks 瀏覽器。您的新 hook 會出現在 `Notification` 下的列表中。

73 </Step>73 </Step>

74 74 

75 <Step title="測試 hook">75 <Step title="測試 hook">

76 按 `Esc` 返回 CLI。按 `Shift+Tab` 直到狀態列顯示 `⏸ manual mode on`,要求 Claude 執行需要權限的操作,然後切換離開終端。您應該會收到桌面通知。76 按 `Esc` 返回 CLI。按 `Shift+Tab` 直到狀態列顯示 `⏸ manual mode on`,要求 Claude 執行需要權限的操作,然後切換離開終端機。您應該會收到桌面通知。

77 </Step>77 </Step>

78</Steps>78</Steps>

79 79 

80<Tip>

81 `/hooks` 選單是唯讀的。若要新增、修改或移除 hooks,請直接編輯您的設定 JSON 或要求 Claude 進行變更。

82</Tip>

83 

84<h2 id="what-you-can-automate">80<h2 id="what-you-can-automate">

85 您可以自動化的內容81 您可以自動化的內容

86</h2>82</h2>


97 93 

98每當 Claude 完成工作並需要您的輸入時收到桌面通知,這樣您可以切換到其他任務而無需檢查終端。94每當 Claude 完成工作並需要您的輸入時收到桌面通知,這樣您可以切換到其他任務而無需檢查終端。

99 95 

100此 hook 使用 `Notification` 事件,當 Claude 等待輸入或權限時觸發。請參閱[每個通知類型何時觸發](/docs/zh-TW/hooks#notification)以了解確切的時機。下面的每個標籤使用平台的原生通知命令。將此新增到 `~/.claude/settings.json`:96此 hook 使用 `Notification` 事件,Claude Code 會在 Claude 等待輸入或權限時觸發此事件。請參閱[每個通知類型何時觸發](/docs/zh-TW/hooks#notification)以了解確切的時機。

97 

98下面的每個標籤使用平台的原生通知命令。將此新增到 `~/.claude/settings.json`:

101 99 

102<Tabs>100<Tabs>

103 <Tab title="macOS">101 <Tab title="macOS">


120 ```118 ```

121 119 

122 <Accordion title="如果沒有出現通知">120 <Accordion title="如果沒有出現通知">

123 `osascript` 透過內建的 Script Editor 應用程式路由通知。如果 Script Editor 沒有通知權限,命令會無聲地失敗,macOS 不會提示您授予它。在終端中執行一次以使 Script Editor 出現在您的通知設定中:121 `osascript` 透過內建的 Script Editor 應用程式路由通知。如果 Script Editor 沒有通知權限,命令會無聲地失敗,macOS 不會提示您授予它。

122 

123 在終端機中執行一次以使 Script Editor 出現在您的通知設定中:

124 124 

125 ```bash theme={null}125 ```bash theme={null}

126 osascript -e 'display notification "test"'126 osascript -e 'display notification "test"'


180 ```180 ```

181 181 

182 <Accordion title="如果沒有出現對話框">182 <Accordion title="如果沒有出現對話框">

183 此命令開啟對話框而不是螢幕角落的通知,因此對話框可能會在終端視窗後面開啟。首先在 PowerShell 中直接測試命令。如果您在 WSL 內執行 Claude Code,`powershell.exe` 必須透過 Windows 互操作在您的 `PATH` 上可用。183 此命令開啟對話框而不是螢幕角落的通知,因此對話框可能會在終端機視窗後面開啟。首先在 PowerShell 中直接測試命令。

184 

185 如果您在 WSL 內執行 Claude Code,`powershell.exe` 必須透過 Windows 互操作在您的 `PATH` 上可用。

184 </Accordion>186 </Accordion>

185 </Tab>187 </Tab>

186</Tabs>188</Tabs>


212 214 

213隊友終端設定問題的 `agent_needs_input` 需要 Claude Code v2.1.248 或更新版本。215隊友終端設定問題的 `agent_needs_input` 需要 Claude Code v2.1.248 或更新版本。

214 216 

215輸入 `/hooks` 並選擇 `Notification` 以確認 hook 已註冊。有關完整的事件架構,請參閱 [Notification 參考](/docs/zh-TW/hooks#notification)。217在 Claude Code 提示字元中輸入 `/hooks`,並確認 hook 出現在 `Notification` 之下。

216 218 

217<h3 id="auto-format-code-after-edits">219<h3 id="auto-format-code-after-edits">

218 編輯後自動格式化程式碼220 編輯後自動格式化程式碼


1016 1018 

1017反面不成立:傳回 `"allow"` 的 hook 不會繞過來自設定的拒絕規則,它也無法抑制標記為 [`requiresUserInteraction`](/docs/zh-TW/mcp#require-approval-for-a-specific-tool) 的 MCP 工具的提示或[您的組織設定為 `ask`](/docs/zh-TW/mcp#organization-controls-on-connector-tools) 的連接器工具在該設定到達 Claude Code 的工作階段中的提示。設定檔案和外掛程式 `hooks/hooks.json` 中的 Hooks 可以加強限制,但不能放寬超過權限規則允許的限制。1019反面不成立:傳回 `"allow"` 的 hook 不會繞過來自設定的拒絕規則,它也無法抑制標記為 [`requiresUserInteraction`](/docs/zh-TW/mcp#require-approval-for-a-specific-tool) 的 MCP 工具的提示或[您的組織設定為 `ask`](/docs/zh-TW/mcp#organization-controls-on-connector-tools) 的連接器工具在該設定到達 Claude Code 的工作階段中的提示。設定檔案和外掛程式 `hooks/hooks.json` 中的 Hooks 可以加強限制,但不能放寬超過權限規則允許的限制。

1018 1020 

1019您安裝的 [mod](/docs/zh-TW/plugins/mods/overview) 如果掛接 `tool.check` 可以批准您的 `PreToolUse` hook 阻止的呼叫,除非該 hook 在受管設定中。[使用 hooks 擴展權限](/docs/zh-TW/permissions#extend-permissions-with-hooks)列出哪些規則優先於 mod。1021您安裝的 [mod](/docs/zh-TW/plugins/mods/overview) 如果處理 `tool.check`,可以批准您的 `PreToolUse` hook 阻止的呼叫,除非該 hook 在受管設定中。[使用 hook 擴展權限](/docs/zh-TW/permissions#extend-permissions-with-hooks)列出哪些規則優先於 mod。

1020 1022 

1021<h3 id="hook-not-firing">1023<h3 id="hook-not-firing">

1022 Hook 未觸發1024 Hook 未觸發


1055* 檔案編輯通常會自動選取。如果在幾秒鐘後仍未出現,檔案監視程式可能已錯過變更:重新啟動您的工作階段以強制重新載入。1057* 檔案編輯通常會自動選取。如果在幾秒鐘後仍未出現,檔案監視程式可能已錯過變更:重新啟動您的工作階段以強制重新載入。

1056* 驗證您的 JSON 有效:不允許尾隨逗號和註解1058* 驗證您的 JSON 有效:不允許尾隨逗號和註解

1057* 確認設定檔在正確的位置:`.claude/settings.json` 用於專案 hooks,`~/.claude/settings.json` 用於全域 hooks1059* 確認設定檔在正確的位置:`.claude/settings.json` 用於專案 hooks,`~/.claude/settings.json` 用於全域 hooks

1060* 如果選單顯示 `Only hooks from managed settings run here`,表示您的組織已設定 [`allowManagedHooksOnly`](/docs/zh-TW/settings-reference#allowmanagedhooksonly)。您的使用者、專案和本機設定檔中的 hook 不會執行,也不會列出

1058 1061 

1059<h3 id="stop-hook-hits-the-block-cap">1062<h3 id="stop-hook-hits-the-block-cap">

1060 Stop hook 觸發區塊上限1063 Stop hook 觸發區塊上限

Details

394* 在空提示上按 `Escape`、`Backspace` 或 `Ctrl+U` 結束394* 在空提示上按 `Escape`、`Backspace` 或 `Ctrl+U` 結束

395* 將以 `!` 開頭的文字貼到空提示中會自動進入 shell 模式,符合輸入的 `!` 行為395* 將以 `!` 開頭的文字貼到空提示中會自動進入 shell 模式,符合輸入的 `!` 行為

396 396 

397除非您的工作階段是[嚴格沙箱模式](/docs/zh-TW/sandboxing#the-unsandboxed-retry-escape-hatch)下列出的其中一個,否則您在 shell 模式中輸入的命令會在[沙箱](/docs/zh-TW/sandboxing)外執行,即使您已啟用沙箱,因為沙箱適用於 Claude 執行的命令。397除非您的工作階段是[嚴格沙箱模式](/docs/zh-TW/sandboxing#turn-off-the-retry-with-strict-sandbox-mode)下列出的其中一個,否則您在 shell 模式中輸入的命令會在[沙箱](/docs/zh-TW/sandboxing)外執行,即使您已啟用沙箱機制,因為沙箱適用於 Claude 執行的命令。

398 398 

399一旦命令輸出進入文字記錄,Claude 會自動回應,因此您可以執行 `! npm test` 並取得失敗的說明,無需第二個提示。回應成本與傳送一般提示相同。若要還原先前的行為(其中輸出會新增至內容而不回應),請在 `settings.json` 中將 [`respondToBashCommands`](/docs/zh-TW/settings-reference#respondtobashcommands) 設定為 `false`。在 v2.1.186 之前,shell 模式始終將輸出新增至內容而不回應。399一旦命令輸出進入文字記錄,Claude 會自動回應,因此您可以執行 `! npm test` 並取得失敗的說明,無需第二個提示。回應成本與傳送一般提示相同。若要還原先前的行為(其中輸出會新增至內容而不回應),請在 `settings.json` 中將 [`respondToBashCommands`](/docs/zh-TW/settings-reference#respondtobashcommands) 設定為 `false`。在 v2.1.186 之前,shell 模式始終將輸出新增至內容而不回應。

400 400 


737 737 

738當 claude.ai [使用量限制](/docs/zh-TW/errors#youve-hit-your-session-limit) 在任務中途停止 Claude 時,Claude Code 會在開啟的工作階段中等待,並在限制重設後自動繼續該任務。在使用 claude.ai 訂閱登入的互動式工作階段中,自動繼續預設為開啟。需要 Claude Code v2.1.234 或更新版本。738當 claude.ai [使用量限制](/docs/zh-TW/errors#youve-hit-your-session-limit) 在任務中途停止 Claude 時,Claude Code 會在開啟的工作階段中等待,並在限制重設後自動繼續該任務。在使用 claude.ai 訂閱登入的互動式工作階段中,自動繼續預設為開啟。需要 Claude Code v2.1.234 或更新版本。

739 739 

740Claude Code 等待時,工作階段底部的一行會顯示何時繼續:740Claude Code 等待時,工作階段底部的幾行會顯示您的上限何時重設,以及 Claude 何時會繼續:

741 741 

742```text theme={null}742```text theme={null}

743Usage limit reached · continuing automatically at 3:45pm · esc to cancel743Usage limit reached · limit resets 3:45pm

744Continuing automatically at 3:45pm · esc to cancel

744```745```

745 746 

747任一行在這些文字之後都可能帶有更多內容,例如第一行的說明連結,或第二行的 `/usage-credits to continue now`。當等待自行開始時,對話中也會以一行 `Usage limit reached · continuing automatically at 3:45pm · esc to cancel` 記錄下來。

748 

746保持工作階段開啟。接下來發生的情況取決於等待如何結束:749保持工作階段開啟。接下來發生的情況取決於等待如何結束:

747 750 

748* **在重設時**:該行顯示 `continuing shortly`,然後 `Usage limit reset · continuing automatically`,Claude Code 會向 Claude 傳送一個固定提示,以便從停止的地方繼續任務。它不會重新傳送您的最後一條訊息。751* **在重設時**:第二行會變為 `Continuing shortly · esc to cancel`。接著對話中會出現 `Usage limit reset · continuing automatically`,Claude Code 會提示 Claude 從停止的地方接續任務。它不會重新傳送您的最後一條訊息。

749* **在您的電腦睡眠後**:如果睡眠超過約 30 分鐘,且限制在睡眠期間重設,該行會顯示 `Your usage limit has reset · press enter to continue`。按 `Enter` 繼續。睡眠時間較短後,Claude Code 會自動繼續。752* **在您的電腦睡眠後**:如果睡眠超過約 30 分鐘,且上限在睡眠期間重設,第一行會顯示 `Your usage limit has reset`,第二行會顯示 `Press enter to continue`。按 `Enter` 繼續。若睡眠時間較短,或睡眠在重設前就已結束,Claude Code 會自動繼續。

750* **提前**:當您使用 `/usage-credits` 完成新增 [使用額度](/docs/zh-TW/costs#add-usage-credits-to-your-subscription)、在 `/upgrade` 後重新登入,或在等待期間使用 `/model` 切換模型時,Claude Code 會檢查使用量是否再次可用,如果可用則立即繼續。它不會在您在瀏覽器中自行進行的升級或購買後檢查。在 [`opusplan`](/docs/zh-TW/model-config#opusplan-model-setting) 和其他在不同模型上執行計畫模式的模型設定下,Claude Code 會改為等待重設。753* **提前**:當您使用 `/usage-credits` 完成新增 [使用額度](/docs/zh-TW/costs#add-usage-credits-to-your-subscription)、在 `/upgrade` 後重新登入,或在等待期間使用 `/model` 切換模型時,Claude Code 會檢查使用量是否再次可用,如果可用則立即繼續。它不會在您在瀏覽器中自行進行的升級或購買後檢查。在 [`opusplan`](/docs/zh-TW/model-config#opusplan-model-setting) 和其他在不同模型上執行計畫模式的模型設定下,Claude Code 會改為等待重設。

751 754 

752繼續的任務會像任何其他回合一樣執行。Claude Code 仍會照常要求 [權限](/docs/zh-TW/permissions),因此任務可能會在您不在時在提示處停止。如果再次達到限制,Claude Code 最多會自動重新啟動等待兩次,然後停止並顯示 `Automatic continue stopped after repeated usage-limit hits · /rate-limit-options to try again`。755繼續的任務會像任何其他回合一樣執行。Claude Code 仍會照常要求 [權限](/docs/zh-TW/permissions),因此任務可能會在您不在時在提示處停止。如果再次達到限制,Claude Code 最多會自動重新啟動等待兩次,然後停止並顯示 `Automatic continue stopped after repeated usage-limit hits · /rate-limit-options to try again`。


755 取消等待758 取消等待

756</h3>759</h3>

757 760 

758在空提示處按 `Esc`,或在該行顯示時按 `Ctrl+C`,或執行 [`/rate-limit-options`](/docs/zh-TW/commands#all-commands) 並選擇 **Don't continue automatically**。Claude Code 會確認一行以 `Automatic continue cancelled` 開頭的訊息。761在這些行顯示期間,於提示詞為空時按 `Esc`,或按 `Ctrl+C`,或執行 [`/rate-limit-options`](/docs/zh-TW/commands#all-commands) 並選擇 **Don't continue automatically**。Claude Code 會以一行以 `Automatic continue cancelled` 開頭的訊息確認。

759 762 

760取消後,在您傳送提示或再次從 `/rate-limit-options` 選擇以 **Wait here, then continue automatically** 開頭的列之前,不會有任何內容繼續。Claude Code 不會在該重設視窗中自行再次啟動等待;下一個重設視窗會重新開始。763取消後,在您傳送提示或再次從 `/rate-limit-options` 選擇以 **Wait here, then continue automatically** 開頭的列之前,不會有任何內容繼續。Claude Code 不會在該重設視窗中自行再次啟動等待;下一個重設視窗會重新開始。

761 764 

762等待也會在以下情況下結束而不繼續任務:765等待也會在以下情況下結束而不繼續任務:

763 766 

764* **您傳送提示**:Claude Code 會執行您的提示而不是等待。767* **您傳送提示詞**:Claude Code 會傳送您的提示詞而不是等待。如果您的提示詞也達到上限,它會保留在對話中,且 Claude Code 會再次開始等待。

765* **您退出 Claude Code**:當您繼續工作階段時,等待不會重新啟動。768* **您退出 Claude Code**:當您繼續工作階段時,等待不會重新啟動。

766* **對話轉手**:您使用 `/login` 切換帳戶、清除或倒帶對話、`/resume` 另一個工作階段、使用 `/teleport` 拉取一個、使用 `/tui` 重新啟動,或將工作階段交給 Claude Desktop、背景工作階段或雲端。769* **對話轉手**:您使用 `/login` 切換帳戶、清除或倒帶對話、`/resume` 另一個工作階段、使用 `/teleport` 拉取一個、使用 `/tui` 重新啟動,或將工作階段交給 Claude Desktop、背景工作階段或雲端。

767* **設定關閉,或重設超過 24 小時**:這只會結束 Claude Code 自行啟動的等待。您從 `/rate-limit-options` 選擇的等待會繼續倒數。770* **設定關閉,或重設超過 24 小時**:這只會結束 Claude Code 自行啟動的等待。您從 `/rate-limit-options` 選擇的等待會繼續倒數。

Details

204 204 

205在大型程式碼庫中,尋找符號的定義或使用位置可能會花費許多檔案讀取和 grep 呼叫。[程式碼智能外掛](/docs/zh-TW/plugins/code-intelligence)將 Claude 連接到語言伺服器,以便它可以跳轉到定義、尋找參考和直接顯示類型錯誤,而不是掃描樹。205在大型程式碼庫中,尋找符號的定義或使用位置可能會花費許多檔案讀取和 grep 呼叫。[程式碼智能外掛](/docs/zh-TW/plugins/code-intelligence)將 Claude 連接到語言伺服器,以便它可以跳轉到定義、尋找參考和直接顯示類型錯誤,而不是掃描樹。

206 206 

207官方市場有 TypeScript、Python、Go、Rust 和其他常見語言的外掛。在 Claude Code 工作階段內執行下方命令以安裝 TypeScript 外掛:207官方市集有 TypeScript、Python、Go、Rust 和其他常見語言的外掛。在 VS Code 擴充功能或桌面應用程式中,請依照[安裝外掛](/docs/zh-TW/plugins/install#install-a-plugin)進行安裝。在終端機中,執行 `claude` 啟動 Claude Code,然後在其提示字元中輸入以下內容以安裝 TypeScript 外掛:

208 208 

209```shell theme={null}209```shell theme={null}

210/plugin install typescript-lsp@claude-plugins-official210/plugin install typescript-lsp@claude-plugins-official

Details

73 73 

74串流推論回應。Claude Code 在到達時讀取串流,因此如果您的閘道在轉發前緩衝完整回應,Claude Code 會停滯。74串流推論回應。Claude Code 在到達時讀取串流,因此如果您的閘道在轉發前緩衝完整回應,Claude Code 會停滯。

75 75 

76傳遞每個回應的完整事件序列,不要丟棄、複製或重新排序事件。當事件參考的內容區塊其 `content_block_start` 從未到達,或其 `content_block_stop` 已經到達的區塊時,Claude Code 會在該事件處停止讀取串流,而不是應用它,因此複製的 `content_block_stop` 無法執行相同的工具呼叫兩次。[上述回應可能不完整](/docs/zh-TW/errors#the-response-above-may-be-incomplete)描述使用者看到的內容,在 `Part of the response never arrived` 和 `The response stream was malformed` 變體下。76傳遞每個回應的完整事件序列,不要丟棄、複製或重新排序事件。當 Amazon Bedrock guardrail 封鎖回覆時,請原封不動地轉發它發送的事件,即使這些事件參考的內容區塊其 `content_block_stop` 已經到達。[AWS Guardrails](/docs/zh-TW/amazon-bedrock#aws-guardrails) 描述該回覆如何結束。當任何其他事件參考的內容區塊其 `content_block_start` 從未到達,或其 `content_block_stop` 已經到達的區塊時,Claude Code 會在該事件處停止讀取串流,而不是應用它,因此複製的 `content_block_stop` 無法執行相同的工具呼叫兩次。[上述回應可能不完整](/docs/zh-TW/errors#the-response-above-may-be-incomplete)描述使用者看到的內容,在 `Part of the response never arrived` 和 `The response stream was malformed` 變體下。

77 77 

78在結束本體前,透過每個回應的最終 `message_delta` 和 `message_stop` 事件轉發它。在 `message_delta` 攜帶 `stop_reason` 之後結束的本體,沒有內容區塊仍然開啟,且該框架之後沒有內容區塊事件,即使 `message_stop` 遺失,也計為完整。您的閘道在內容區塊已啟動後更早乾淨地結束的本體,被視為與丟棄連線相同:[自動重試](/docs/zh-TW/errors#automatic-retries)說明何時 Claude Code 重新發出請求,[上述回應可能不完整](/docs/zh-TW/errors#the-response-above-may-be-incomplete)涵蓋一旦可見內容已到達時它保留的內容。Claude Code 保留 `message_delta` 傳遞的 `stop_reason`,因此稍後的僅使用情況 `message_delta` 其 `delta` 具有 `stop_reason: null` 或沒有 `stop_reason` 鍵不會清除它。78在結束本體前,透過每個回應的最終 `message_delta` 和 `message_stop` 事件轉發它。在 `message_delta` 攜帶 `stop_reason` 之後結束的本體,沒有內容區塊仍然開啟,且該框架之後沒有內容區塊事件,即使 `message_stop` 遺失,也計為完整。您的閘道在內容區塊已啟動後更早乾淨地結束的本體,被視為與丟棄連線相同:[自動重試](/docs/zh-TW/errors#automatic-retries)說明何時 Claude Code 重新發出請求,[上述回應可能不完整](/docs/zh-TW/errors#the-response-above-may-be-incomplete)涵蓋一旦可見內容已到達時它保留的內容。Claude Code 保留 `message_delta` 傳遞的 `stop_reason`,因此稍後的僅使用情況 `message_delta` 其 `delta` 具有 `stop_reason: null` 或沒有 `stop_reason` 鍵不會清除它。

79 79 


242| 功能 | 標頭和請求體對 | 破壞時的症狀 | 補救 |242| 功能 | 標頭和請求體對 | 破壞時的症狀 | 補救 |

243| :- | :- | :- | :- |243| :- | :- | :- | :- |

244| [自適應推理](/docs/zh-TW/model-config#adjust-effort-level) | 無測試版標頭。Claude Code 為 Claude 4.6 及更新版本發送 `thinking: {"type": "adaptive"}`,並將它不識別的模型名稱(如 gateway 別名)視為接收該欄位的目前模型 | 當上游模型組建不接受它時,命名 `thinking` 欄位或 `adaptive` 標籤的 `400` | 升級上游。在 Opus 4.6 和 Sonnet 4.6 上,開發人員可以改為設定 `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING=1` |244| [自適應推理](/docs/zh-TW/model-config#adjust-effort-level) | 無測試版標頭。Claude Code 為 Claude 4.6 及更新版本發送 `thinking: {"type": "adaptive"}`,並將它不識別的模型名稱(如 gateway 別名)視為接收該欄位的目前模型 | 當上游模型組建不接受它時,命名 `thinking` 欄位或 `adaptive` 標籤的 `400` | 升級上游。在 Opus 4.6 和 Sonnet 4.6 上,開發人員可以改為設定 `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING=1` |

245| [上下文管理](https://platform.claude.com/docs/en/build-with-claude/context-editing) | 上下文管理測試版標頭與 `context_management` 請求體欄位配對 | `400` 搭配 `Extra inputs are not permitted`。常見於 gateway 接受 Anthropic 格式請求但將其轉發到 Amazon Bedrock 時 | 轉發兩者,或 [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`](/docs/zh-TW/env-vars) |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` | 一起轉發欄位及其標頭 |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),這會移除格式和任務預算設定,但不會移除努力 |

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 


260* 當上游拒絕 `thinking` 欄位、中途對話系統訊息或這類訊息上的 `cache_control` 標記時,Claude Code 會重試請求並為對話的其餘部分禁用被拒絕的功能260* 當上游拒絕 `thinking` 欄位、中途對話系統訊息或這類訊息上的 `cache_control` 標記時,Claude Code 會重試請求並為對話的其餘部分禁用被拒絕的功能

261* 當上游拒絕[思考簽名](https://platform.claude.com/docs/en/build-with-claude/extended-thinking)時,包括以 `400` 拒絕其中區塊 `bound to a different conversation` 時,Claude Code 會從請求中移除較早的思考區塊、重試,並將它們排除在每個後續請求之外。新回應仍包含思考261* 當上游拒絕[思考簽名](https://platform.claude.com/docs/en/build-with-claude/extended-thinking)時,包括以 `400` 拒絕其中區塊 `bound to a different conversation` 時,Claude Code 會從請求中移除較早的思考區塊、重試,並將它們排除在每個後續請求之外。新回應仍包含思考

262* 當 gateway 或其上游將[顧問工具](/docs/zh-TW/advisor)項目在 `tools` 中拒絕為無法識別的工具類型時,Claude Code 會重試一次請求,不包含該項目及其 `anthropic-beta` 值。對該基礎 URL 的後續請求會將顧問排除在外,直到 Claude Code 退出,且 `/advisor` 對開發人員在該時間內不可用。Claude Code 通過 `400` 或 `422` 回應識別此拒絕,其訊息在 `Input tag` 後命名工具類型,例如 `Input tag 'advisor_20260301'`。在 v2.1.280 之前,Claude Code 沒有重試此拒絕262* 當 gateway 或其上游將[顧問工具](/docs/zh-TW/advisor)項目在 `tools` 中拒絕為無法識別的工具類型時,Claude Code 會重試一次請求,不包含該項目及其 `anthropic-beta` 值。對該基礎 URL 的後續請求會將顧問排除在外,直到 Claude Code 退出,且 `/advisor` 對開發人員在該時間內不可用。Claude Code 通過 `400` 或 `422` 回應識別此拒絕,其訊息在 `Input tag` 後命名工具類型,例如 `Input tag 'advisor_20260301'`。在 v2.1.280 之前,Claude Code 沒有重試此拒絕

263* 當上游拒絕 `output_config.effort` 時,Claude Code 會在不包含努力的情況下重試請求,並在 Claude Code 退出之前,對該模型的後續請求中將其排除。Claude Code 通過 `400` 識別此拒絕,其訊息同時命名 `output_config.effort` 和 `Extra inputs are not permitted`,或指出該模型不支援努力參數

263* Claude Code 不會重試上下文管理或工具架構欄位的拒絕,因此這些 `400` 錯誤會到達開發人員264* Claude Code 不會重試上下文管理或工具架構欄位的拒絕,因此這些 `400` 錯誤會到達開發人員

264 265 

265`bound to a different conversation` 拒絕來自 API 的[保留思考](https://platform.claude.com/docs/en/build-with-claude/preserved-thinking)檢查,當 `system`、`tools` 或較早的 `messages` 內容與產生思考的請求不同時,該檢查會失敗。重寫任何該內容的 gateway 可能會導致拒絕本身;[程式庫、代理和 gateway](https://platform.claude.com/docs/en/build-with-claude/preserved-thinking#libraries-proxies-gateways)涵蓋要逐字轉發的內容。266`bound to a different conversation` 拒絕來自 API 的[保留思考](https://platform.claude.com/docs/en/build-with-claude/preserved-thinking)檢查,當 `system`、`tools` 或較早的 `messages` 內容與產生思考的請求不同時,該檢查會失敗。重寫任何該內容的 gateway 可能會導致拒絕本身;[程式庫、代理和 gateway](https://platform.claude.com/docs/en/build-with-claude/preserved-thinking#libraries-proxies-gateways)涵蓋要逐字轉發的內容。


270 禁用預發佈功能271 禁用預發佈功能

271</h3>272</h3>

272 273 

273`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1` 停止 Claude Code 發送預發佈功能及其請求體欄位,包括上下文管理和測試版工具欄位。該變數不影響自適應推理,後者由模型而不是測試版選擇。它永遠不會抑制訂閱驗證所需的 OAuth 功能。274當您的閘道或其上游拒絕預發佈的 `anthropic-beta` 值或與其配對的請求體欄位,且您無法同時轉發兩個部分時,請讓開發人員設定 `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`。設定該變數後,Claude Code 會停止發送預發佈功能以及與其配對的 `anthropic-beta` 值,包括:

275 

276* 上下文管理及其 `context_management` 請求體欄位

277* 測試版工具 schema 欄位,例如 `strict` 和 `defer_loading`。標準的 `name`、`description`、`input_schema` 和 `cache_control` 工具欄位會保留

278* 結構化輸出的 `output_config.format` 欄位。需要 Claude Code v2.1.287 或更新版本

279* `output_config.task_budget` 欄位

280* [MCP Tool Search](/docs/zh-TW/mcp#scale-with-mcp-tool-search),因此每個 MCP 工具都會預先載入,除非您的組織透過受管設定將其保持開啟

281 

282該變數不會移除所有 `anthropic-beta` 值。它保留的內容包括:

283 

284* 擴展上下文、交錯思考和努力的 `anthropic-beta` 值,雲端提供者也接受這些值

285* `output_config.effort` 欄位。[自動重試和錯誤轉發](#automatic-retry-and-error-forwarding)涵蓋拒絕它的上游

286* 自適應推理的 `thinking` 欄位,它沒有測試版標頭

287* 訂閱身分驗證所需的 OAuth `anthropic-beta` 值

288* 開發人員透過 [`ANTHROPIC_BETAS`](/docs/zh-TW/env-vars) 或 [`CLAUDE_CODE_EXTRA_BODY`](/docs/zh-TW/env-vars) 自行添加的標頭值和請求體欄位

274 289 

275當嵌入 Claude Code 的主機平台設定 [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](/docs/zh-TW/env-vars) 時,`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS` 不會停止 Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 或 [Claude 應用程式 gateway](/docs/zh-TW/claude-apps-gateway) 上的自動模式工作階段要求伺服器進行[分類器審查](/docs/zh-TW/permission-modes#server-side-classifier-review)。該審查添加了 `anthropic-beta` 值和 `safeguards` 請求欄位。設定 `CLAUDE_CODE_AUTO_MODE_SERVER=0` 以在那裡停止它。290當嵌入 Claude Code 的主機平台設定 [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](/docs/zh-TW/env-vars) 時,`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS` 不會停止 Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 或 [Claude 應用程式 gateway](/docs/zh-TW/claude-apps-gateway) 上的自動模式工作階段要求伺服器進行[分類器審查](/docs/zh-TW/permission-modes#server-side-classifier-review)。該審查添加了 `anthropic-beta` 值和 `safeguards` 請求欄位。設定 `CLAUDE_CODE_AUTO_MODE_SERVER=0` 以在那裡停止它。

276 291 

managed-mcp.md +1 −0

Details

532| `managed-mcp.json` 存在且可以在 Chrome 中執行 Claude 的使用者執行 `claude --chrome` | Claude Code 在啟動時結束,顯示 `Claude in Chrome is blocked by your organization's managed MCP configuration (managed-mcp.json). An administrator can allow it with allowClaudeInChromeWithManagedMcp in device policy.` |532| `managed-mcp.json` 存在且可以在 Chrome 中執行 Claude 的使用者執行 `claude --chrome` | Claude Code 在啟動時結束,顯示 `Claude in Chrome is blocked by your organization's managed MCP configuration (managed-mcp.json). An administrator can allow it with allowClaudeInChromeWithManagedMcp in device policy.` |

533| 伺服器在拒絕清單上且使用者執行 `claude mcp add` | `Cannot add MCP server "<name>": server is explicitly blocked by enterprise policy` |533| 伺服器在拒絕清單上且使用者執行 `claude mcp add` | `Cannot add MCP server "<name>": server is explicitly blocked by enterprise policy` |

534| 伺服器不在允許清單上且使用者執行 `claude mcp add` | `Cannot add MCP server "<name>": not allowed by enterprise policy` |534| 伺服器不在允許清單上且使用者執行 `claude mcp add` | `Cannot add MCP server "<name>": not allowed by enterprise policy` |

535| [`strictPluginOnlyCustomization`](/docs/zh-TW/settings-reference#strictpluginonlycustomization) 為 `true` 或包含 `mcp`,且使用者執行 `claude mcp add` | [`Cannot add MCP server: your organization's managed settings allow only MCP servers that plugins provide`](/docs/zh-TW/errors#cannot-add-mcp-server-when-managed-settings-allow-only-plugin-servers) |

535| 使用者在來自 `managedMcpServers` 的伺服器上執行 `claude mcp remove` | `MCP server "<name>" is provided by your organization (managed settings) and cannot be removed locally.` |536| 使用者在來自 `managedMcpServers` 的伺服器上執行 `claude mcp remove` | `MCP server "<name>" is provided by your organization (managed settings) and cannot be removed locally.` |

536| 先前設定的伺服器現在被原則封鎖 | 伺服器從 `/mcp` 和 `claude mcp list` 消失 |537| 先前設定的伺服器現在被原則封鎖 | 伺服器從 `/mcp` 和 `claude mcp list` 消失 |

537| 伺服器在工作階段執行時被封鎖,且使用者選擇 **重新連線** 或在 `/mcp` 中將其重新開啟 | [`MCP server <name> is blocked by enterprise managed policy`](/docs/zh-TW/errors#mcp-server-is-blocked-by-enterprise-managed-policy) |538| 伺服器在工作階段執行時被封鎖,且使用者選擇 **重新連線** 或在 `/mcp` 中將其重新開啟 | [`MCP server <name> is blocked by enterprise managed policy`](/docs/zh-TW/errors#mcp-server-is-blocked-by-enterprise-managed-policy) |

Details

470| [`wslInheritsWindowsSettings`](/docs/zh-TW/settings-reference#wslinheritswindowssettings) | 當在 HKLM 登錄或 `C:\Program Files\ClaudeCode` 下的檔案中設定時,讓 WSL 讀取 Windows 原則鏈,並且只在[沒有 Windows 管理員文件存在](#present-admin-documents)時才讀取 `/etc/claude-code`;該項目給出順序 |470| [`wslInheritsWindowsSettings`](/docs/zh-TW/settings-reference#wslinheritswindowssettings) | 當在 HKLM 登錄或 `C:\Program Files\ClaudeCode` 下的檔案中設定時,讓 WSL 讀取 Windows 原則鏈,並且只在[沒有 Windows 管理員文件存在](#present-admin-documents)時才讀取 `/etc/claude-code`;該項目給出順序 |

471 471 

472<Note>472<Note>

473 在 Team 和 Enterprise 方案上,擁有者在 [Claude Code 管理員設定](https://claude.ai/admin-settings/claude-code)中為整個組織啟用或停用[遠端控制](/docs/zh-TW/remote-control)和[雲端工作階段](/docs/zh-TW/claude-code-on-the-web)。遠端控制還可以透過 [`disableRemoteControl`](/docs/zh-TW/settings-reference#disableremotecontrol) 設定按裝置停用。雲端工作階段沒有按裝置的受管理設定金鑰。473 在 Team 和 Enterprise 方案上,擁有者在 [Claude Code 管理員設定](https://claude.ai/admin-settings/claude-code)中為整個組織啟用或停用 [Remote Control](/docs/zh-TW/remote-control) 和[雲端工作階段](/docs/zh-TW/claude-code-on-the-web)。當擁有者關閉 Remote Control 時,執行 Claude Code v2.1.286 或更新版本的已連線工作階段也會中斷連線。每個工作階段會在下次重新整理您組織的原則時中斷連線,大約每小時一次。若要了解這些工作階段中會發生的情況,請參閱 [`Remote Control was turned off by your organization's policy`](/docs/zh-TW/remote-control#remote-control-was-turned-off-by-your-organizations-policy)。

474 

475 Remote Control 還可以透過 [`disableRemoteControl`](/docs/zh-TW/settings-reference#disableremotecontrol) 設定按裝置停用。雲端工作階段沒有按裝置的受管理設定金鑰。

474 476 

475 若要檢查這些組織設定是否到達指定的機器,請在該處執行 `claude doctor`,並讀取 `Organization policy` 行,該行會說明 Claude Code 從何處載入原則或為什麼沒有載入。需要 Claude Code v2.1.261 或更新版本。在執行中的工作階段中,當原則未載入時,`/status` 會顯示相同的行。477 若要檢查這些組織設定是否到達指定的機器,請在該處執行 `claude doctor`,並讀取 `Organization policy` 行,該行會說明 Claude Code 從何處載入原則或為什麼沒有載入。需要 Claude Code v2.1.261 或更新版本。在執行中的工作階段中,當原則未載入時,`/status` 會顯示相同的行。

476</Note>478</Note>

mcp.md +8 −2

Details

40您也可以使用官方的 [`mcp-server-dev` plugin](https://github.com/anthropics/claude-plugins-official/tree/main/plugins/mcp-server-dev) 讓 Claude 為您建立伺服器。40您也可以使用官方的 [`mcp-server-dev` plugin](https://github.com/anthropics/claude-plugins-official/tree/main/plugins/mcp-server-dev) 讓 Claude 為您建立伺服器。

41 41 

42<Steps>42<Steps>

43 <Step title="安裝 plugin">43 <Step title="安裝外掛">

44 在 Claude Code 工作階段中,執行:44 在 VS Code 擴充功能或桌面應用程式中,請改為依照[安裝外掛](/docs/zh-TW/plugins/install#install-a-plugin)操作,而非執行此步驟。在終端機中,執行 `claude` 啟動 Claude Code,然後在其提示字元輸入以下內容:

45 45 

46 ```46 ```

47 /plugin install mcp-server-dev@claude-plugins-official47 /plugin install mcp-server-dev@claude-plugins-official


430 430 

431伺服器連接後,Claude Code 向其傳送功能發現請求,例如 `tools/list`、`prompts/list` 和 `resources/list`。Claude Code 在暫時性網路或伺服器錯誤後使用短退避最多重試這些請求三次。它不重試驗證錯誤、4xx 回應或請求逾時。431伺服器連接後,Claude Code 向其傳送功能發現請求,例如 `tools/list`、`prompts/list` 和 `resources/list`。Claude Code 在暫時性網路或伺服器錯誤後使用短退避最多重試這些請求三次。它不重試驗證錯誤、4xx 回應或請求逾時。

432 432 

433<h4 id="retry-failed-servers-yourself">

434 自行重試失敗的伺服器

435</h4>

436 

437若要重試所有失敗或需要身分驗證的伺服器,請執行 `/mcp reconnect all`。在互動式終端機中,這需要 Claude Code v2.1.284 或更新版本,較早版本會在該處列印 `MCP server "all" not found`。

438 

433<h4 id="how-claude-learns-that-a-server-failed">439<h4 id="how-claude-learns-that-a-server-failed">

434 Claude 如何了解伺服器失敗440 Claude 如何了解伺服器失敗

435</h4>441</h4>

memory.md +12 −10

Details

82<Tip>82<Tip>

83 執行 `/init` 以自動產生起始 CLAUDE.md。Claude 分析您的程式碼庫並建立包含建置命令、測試指令和它發現的專案慣例的檔案。如果 CLAUDE.md 已存在,`/init` 會建議改進而不是覆寫它。從那裡使用 Claude 不會自行發現的指令進行精煉。83 執行 `/init` 以自動產生起始 CLAUDE.md。Claude 分析您的程式碼庫並建立包含建置命令、測試指令和它發現的專案慣例的檔案。如果 CLAUDE.md 已存在,`/init` 會建議改進而不是覆寫它。從那裡使用 Claude 不會自行發現的指令進行精煉。

84 84 

85 設定 `CLAUDE_CODE_NEW_INIT` 環境變數為 `1` 以啟用互動式多階段流程。在執行 `/init` 之前在您的 shell 中或在設定檔的 `env` 區塊中設定它,如 [設定環境變數](/docs/zh-TW/env-vars#set-environment-variables) 中所示。設定後,`/init` 會詢問要設定哪些成品:CLAUDE.md 檔案、skills 和 hooks。然後它使用子代理探索您的程式碼庫,透過後續問題填補空白,並在寫入任何檔案之前呈現可審查的提案。該變數僅改變 `/init` 的執行方式,因此您可以保持它設定。85 若要改用互動式多階段流程,請在執行 `/init` 之前將 `CLAUDE_CODE_NEW_INIT` 環境變數設定為 `1`。請在您的 shell 中或在設定檔的 `env` 區塊中設定它,如 [設定環境變數](/docs/zh-TW/env-vars#set-environment-variables) 中所示。設定後,`/init` 會詢問要設定哪些 artifact:CLAUDE.md 檔案、skills 和 hooks。然後它使用 subagent 探索您的程式碼庫,透過後續問題填補空白,並在寫入任何檔案之前呈現可審查的提案。該變數僅改變 `/init` 的執行方式,因此您可以保持它設定。

86</Tip>86</Tip>

87 87 

88<h3 id="write-effective-instructions">88<h3 id="write-effective-instructions">


99 99 

100* **大小**:每個 CLAUDE.md 檔案的目標為 200 行以下。較長的檔案消耗更多背景並降低遵守度。將僅對程式碼庫的一部分重要的指令移至 [path-scoped rules](#path-specific-rules),這些規則僅在 Claude 使用匹配檔案時載入。[匯入](#import-additional-files) 可幫助您組織長檔案,但不會減少其背景成本,因為匯入的檔案也在啟動時載入。100* **大小**:每個 CLAUDE.md 檔案的目標為 200 行以下。較長的檔案消耗更多背景並降低遵守度。將僅對程式碼庫的一部分重要的指令移至 [path-scoped rules](#path-specific-rules),這些規則僅在 Claude 使用匹配檔案時載入。[匯入](#import-additional-files) 可幫助您組織長檔案,但不會減少其背景成本,因為匯入的檔案也在啟動時載入。

101* **結構**:在 markdown 標題和項目符號下分組相關指令。組織的部分比密集的段落更容易讓 Claude 遵循。101* **結構**:在 markdown 標題和項目符號下分組相關指令。組織的部分比密集的段落更容易讓 Claude 遵循。

102* **一致性**:如果兩個指令相互矛盾,Claude 可能會任意選擇一個。定期審查您的 CLAUDE.md 檔案、子目錄中的巢狀 CLAUDE.md 檔案和 [`.claude/rules/`](#organize-rules-with-claude/rules/) 以移除過時或衝突的指令。若要讓 Claude 為您找到它們,請 [執行提示審計](#audit-your-instruction-files)。102* **一致性**:如果兩個指令相互矛盾,Claude 可能會任意選擇一個。定期審查您的 CLAUDE.md 檔案、子目錄中的巢狀 CLAUDE.md 檔案和 [`.claude/rules/`](#organize-rules-with-claude/rules/) 以移除過時或衝突的指令。若要讓 Claude 為您找到它們,請 [執行提示詞審計](#audit-your-instruction-files)。

103 103 

104<h4 id="audit-your-instruction-files">104<h4 id="audit-your-instruction-files">

105 審計您的指令檔案105 審計您的指令檔案


107 107 

108若要讓 Claude 檢查您的指令檔案是否有過時或衝突的內容,請在工作階段中執行 `/doctor prompt-audit`。Claude 尋找問題,例如為舊版模型編寫的指令、對不存在的檔案或命令的參考,以及相互矛盾的檔案。您會獲得發現報告和建議的編輯,在您要求 Claude 應用它們之前,您的檔案中不會有任何變更。108若要讓 Claude 檢查您的指令檔案是否有過時或衝突的內容,請在工作階段中執行 `/doctor prompt-audit`。Claude 尋找問題,例如為舊版模型編寫的指令、對不存在的檔案或命令的參考,以及相互矛盾的檔案。您會獲得發現報告和建議的編輯,在您要求 Claude 應用它們之前,您的檔案中不會有任何變更。

109 109 

110根據預設,審計涵蓋您的 CLAUDE.md、CLAUDE.local.md 和 AGENTS.md 檔案,加上 `.claude/` 和 `~/.claude/` 下的規則、skills、命令、子代理和輸出樣式。若要改為審計一個檔案或目錄,請傳遞其路徑,例如 `/doctor prompt-audit .claude/skills/deploy`。110根據預設,審計涵蓋您的 CLAUDE.md、CLAUDE.local.md 和 AGENTS.md 檔案,加上 `.claude/` 和 `~/.claude/` 下的規則、skills、命令、subagents 和輸出風格。若要改為審計一個檔案或目錄,請傳遞其路徑,例如 `/doctor prompt-audit .claude/skills/deploy`。

111 111 

112審計透過捆綁的 `/claude-api` skill 執行。當該 skill 在 [`skillOverrides`](/docs/zh-TW/skills#override-skill-visibility-from-settings) 中關閉或使用 [`disableBundledSkills`](/docs/zh-TW/settings-reference#disablebundledskills) 時,它不可用。`/doctor prompt-audit` 需要 Claude Code v2.1.283 或更新版本。112審計透過捆綁的 `/claude-api` skill 執行。當該 skill 在 [`skillOverrides`](/docs/zh-TW/skills#override-skill-visibility-from-settings) 中關閉或使用 [`disableBundledSkills`](/docs/zh-TW/settings-reference#disablebundledskills) 時,它不可用。`/doctor prompt-audit` 需要 Claude Code v2.1.283 或更新版本。

113 113 


138 138 

139對於不應簽入版本控制的私人每個專案偏好設定,請在專案根目錄建立 `CLAUDE.local.md`。它與 `CLAUDE.md` 一起載入並以相同方式處理。將 `CLAUDE.local.md` 新增至您的 `.gitignore`,以便不提交它。設定 `CLAUDE_CODE_NEW_INIT=1` 後,執行 `/init` 並選擇個人選項會為您執行此操作。139對於不應簽入版本控制的私人每個專案偏好設定,請在專案根目錄建立 `CLAUDE.local.md`。它與 `CLAUDE.md` 一起載入並以相同方式處理。將 `CLAUDE.local.md` 新增至您的 `.gitignore`,以便不提交它。設定 `CLAUDE_CODE_NEW_INIT=1` 後,執行 `/init` 並選擇個人選項會為您執行此操作。

140 140 

141如果您在同一儲存庫的多個 git worktrees 中工作,gitignored `CLAUDE.local.md` 僅存在於您建立它的 worktree 中。若要在 worktrees 中共享個人指令,請改為從您的主目錄匯入檔案:141如果您在同一儲存庫的多個 git worktrees 中工作,gitignored `CLAUDE.local.md` 僅存在於您建立它的 worktree 中。若要在 worktrees 中共享個人指令,請改為從您的家目錄匯入檔案:

142 142 

143```text theme={null}143```text theme={null}

144# Individual Preferences144# Individual Preferences


146```146```

147 147 

148<Warning>148<Warning>

149 專案級記憶檔案中的匯入是外部的,當其路徑解析到工作目錄外時,例如上面的主目錄匯入。Claude Code 首次在專案中遇到外部匯入時,會顯示核准對話框,列出檔案。如果您拒絕,匯入將保持停用狀態,對話框不會再出現。149 專案級記憶檔案中的匯入是外部的,當其路徑解析到工作目錄外時,例如上面的家目錄匯入。Claude Code 首次在專案中遇到外部匯入時,會顯示核准對話框,列出檔案。如果您拒絕,匯入將保持停用狀態,對話框不會再出現。

150 150 

151 Claude Code 顯示對話框以保護您免受其他人提交到共享專案的檔案。使用者範圍記憶檔案(例如 `~/.claude/CLAUDE.md` 和 `~/.claude/rules/`)是您自己編寫的檔案。除了在您的桌面上的 [Cowork](https://claude.com/product/cowork) 工作階段中,Claude Code 會載入它們的匯入而不顯示對話框,並像信任您的其餘個人設定一樣信任它們。151 Claude Code 顯示對話框以保護您免受其他人提交到共享專案的檔案。使用者範圍記憶檔案(例如 `~/.claude/CLAUDE.md` 和 `~/.claude/rules/`)是您自己編寫的檔案。除了在您的桌面上的 [Cowork](https://claude.com/product/cowork) 工作階段中,Claude Code 會載入它們的匯入而不顯示對話框,並像信任您的其餘個人設定一樣信任它們。

152 152 


161 161 

162所有發現的檔案都會串聯到背景中,而不是相互覆寫。在目錄樹中,內容從檔案系統根目錄向下排序到您的工作目錄。對於 `foo/bar/` 範例,`foo/CLAUDE.md` 在背景中出現在 `foo/bar/CLAUDE.md` 之前,因此更接近您啟動 Claude 的位置的指令最後讀取。在每個目錄中,`CLAUDE.local.md` 附加在 `CLAUDE.md` 之後,因此您的個人筆記是 Claude 在該級別讀取的最後一件事。162所有發現的檔案都會串聯到背景中,而不是相互覆寫。在目錄樹中,內容從檔案系統根目錄向下排序到您的工作目錄。對於 `foo/bar/` 範例,`foo/CLAUDE.md` 在背景中出現在 `foo/bar/CLAUDE.md` 之前,因此更接近您啟動 Claude 的位置的指令最後讀取。在每個目錄中,`CLAUDE.local.md` 附加在 `CLAUDE.md` 之後,因此您的個人筆記是 Claude 在該級別讀取的最後一件事。

163 163 

164Claude 也會發現您目前工作目錄下子目錄中的 `CLAUDE.md` 和 `CLAUDE.local.md` 檔案。它們不是在啟動時載入,而是在 Claude 讀取這些子目錄中的檔案時包含。164Claude 也會發現您目前工作目錄下子目錄中的 `CLAUDE.md` 和 `CLAUDE.local.md` 檔案。它們不是在啟動時載入,而是在 Claude 讀取這些子目錄中的檔案時包含。關於 `.claude/worktrees/` 下 worktree 中的檔案,請參閱 [使用 worktree 隔離 subagent](/docs/zh-TW/worktrees#isolate-subagents-with-worktrees)。

165 165 

166如果您在大型 monorepo 中工作,其中其他團隊的 CLAUDE.md 檔案被拾取,請使用 [`claudeMdExcludes`](#exclude-specific-claude-md-files) 跳過它們。有關根目錄和每個目錄 CLAUDE.md 檔案和規則的完整配置,請參閱 [Monorepos 和大型儲存庫](/docs/zh-TW/large-codebases)。166如果您在大型 monorepo 中工作,其中其他團隊的 CLAUDE.md 檔案被拾取,請使用 [`claudeMdExcludes`](#exclude-specific-claude-md-files) 跳過它們。有關根目錄和每個目錄 CLAUDE.md 檔案和規則的完整配置,請參閱 [Monorepos 和大型儲存庫](/docs/zh-TW/large-codebases)。

167 167 

168CLAUDE.md 檔案中的區塊級 HTML 註解(`<!-- maintainer notes -->`)在內容注入到 Claude 的背景之前被移除。使用它們為人類維護者留下筆記,而不在它們上花費背景權杖。程式碼區塊內的註解會保留。當您直接使用 Read 工具開啟 CLAUDE.md 檔案時,註解保持可見。168CLAUDE.md 檔案中的區塊級 HTML 註解(`<!-- maintainer notes -->`)在內容注入到 Claude 的背景之前被移除。使用它們為人類維護者留下筆記,而不在它們上花費背景 token。程式碼區塊內的註解會保留。當您直接使用 Read 工具開啟 CLAUDE.md 檔案時,註解保持可見。

169 169 

170<h4 id="load-from-additional-directories">170<h4 id="load-from-additional-directories">

171 從其他目錄載入171 從其他目錄載入


190對於較大的專案,您可以使用 `.claude/rules/` 目錄將指令組織成多個檔案。這使指令保持模組化並更容易讓團隊維護。規則也可以 [scoped to specific file paths](#path-specific-rules),因此它們僅在 Claude 使用匹配檔案時載入到背景中,減少雜訊並節省背景空間。190對於較大的專案,您可以使用 `.claude/rules/` 目錄將指令組織成多個檔案。這使指令保持模組化並更容易讓團隊維護。規則也可以 [scoped to specific file paths](#path-specific-rules),因此它們僅在 Claude 使用匹配檔案時載入到背景中,減少雜訊並節省背景空間。

191 191 

192<Note>192<Note>

193 規則在每個工作階段或開啟匹配檔案時載入到背景中。對於不需要始終在背景中的任務特定指令,請改用 [skills](/docs/zh-TW/skills),它們僅在您叫用它們或 Claude 確定它們與您的提示相關時載入。193 規則在每個工作階段或開啟匹配檔案時載入到背景中。對於不需要始終在背景中的任務特定指令,請改用 [skills](/docs/zh-TW/skills),它們僅在您叫用它們或 Claude 確定它們與您的提示詞相關時載入。

194</Note>194</Note>

195 195 

196<h4 id="set-up-rules">196<h4 id="set-up-rules">


232- Include OpenAPI documentation comments232- Include OpenAPI documentation comments

233```233```

234 234 

235沒有 `paths` 欄位的規則無條件載入並適用於所有檔案。路徑範圍規則在 Claude 讀取與模式匹配的檔案時觸發,而不是在每個工具使用時觸發。從 v2.1.198 開始,當 Claude 透過到專案目錄的符號連結路徑到達檔案時,匹配也有效,例如在符號連結簽出中。235沒有 `paths` 欄位的規則無條件載入並適用於所有檔案。路徑範圍規則在 Claude 讀取與模式匹配的檔案時觸發,而不是在每個工具使用時觸發。當 Claude 透過到專案目錄的符號連結路徑到達檔案時,匹配也有效,例如在符號連結簽出中。

236 236 

237在 `paths` 欄位中使用 glob 模式以按副檔名、目錄或任何組合匹配檔案:237在 `paths` 欄位中使用 glob 模式以按副檔名、目錄或任何組合匹配檔案:

238 238 


538 啟用或停用自動記憶538 啟用或停用自動記憶

539</h3>539</h3>

540 540 

541自動記憶預設為開啟。要切換它,請在工作階段中開啟 `/memory` 並使用自動記憶切換,這會將 `autoMemoryEnabled` 保存到您的使用者設定 `~/.claude/settings.json`。要為單一專案關閉它,請在該專案的設定中設定 `autoMemoryEnabled`:541自動記憶在本機工作階段中預設為開啟。在 [Claude Tag](https://claude.com/docs/claude-tag/overview) 工作階段以外,[自行託管環境](/docs/zh-TW/self-hosted-environments-configuration#how-each-session’s-config-is-assembled)中的工作階段預設會在自動記憶關閉的情況下執行。

542 

543要切換它,請在工作階段中開啟 `/memory` 並使用自動記憶切換,這會將 `autoMemoryEnabled` 保存到您的使用者設定 `~/.claude/settings.json`。要為單一專案關閉它,請在該專案的設定中設定 `autoMemoryEnabled`:

542 544 

543```json theme={null}545```json theme={null}

544{546{

model-config.md +652 −326

Details

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.3> Use this file to discover all available pages before exploring further.

4 4 

5# 模型配置5# 模型設定

6 6 

7> 了解 Claude Code 模型配置,包括模型別名如 `opusplan`7> 設定 Claude Code 使用的模型、effort 等級、延伸上下文以及自動壓縮視窗

8 8 

9<h2 id="available-models">9<h2 id="available-models">

10 可用模型10 可用模型

11</h2>11</h2>

12 12 

13對於 Claude Code 中的 `model` 設定,您可以配置以下任一項:13對於 Claude Code 中的 `model` 設定,您可以設定以下任一項:

14 14 

15* 一個**模型別名**15* **模型別名**

16* 一個**模型名稱**16* **模型名稱**

17 * Anthropic API:完整的\*\*[模型名稱](https://platform.claude.com/docs/zh-TW/about-claude/models/overview)\*\*17 * Anthropic API:完整的 **[模型名稱](https://platform.claude.com/docs/en/about-claude/models/overview)**

18 * Amazon Bedrock:推論設定檔 ARN18 * Amazon Bedrock:推論設定檔 ARN

19 * Microsoft Foundry:部署名稱19 * Microsoft Foundry:部署名稱

20 * Google Cloud 的 Agent Platform:版本名稱20 * Google Cloud's Agent Platform:版本名稱

21 21 

22如需有關哪個模型和努力程度適合不同類型工作的指導,請參閱部落格上的 [Choosing a Claude model and effort level in Claude Code](https://claude.com/blog/claude-model-and-effort-level-in-claude-code)。22關於哪種模型和 effort 等級適合不同類型的工作,請參閱部落格上的 [Choosing a Claude model and effort level in Claude Code](https://claude.com/blog/claude-model-and-effort-level-in-claude-code)。

23 23 

24<Note>24<Note>

25 `ANTHROPIC_BASE_URL` 改變請求的發送位置,而不是哪個模型回答它們。若要透過 LLM 閘道路由 Claude,請參閱 [LLM 閘道](/docs/zh-TW/llm-gateway)。25 `ANTHROPIC_BASE_URL` 變更的是請求傳送的目的地,而非由哪個模型回應。若要透過 LLM 閘道路由 Claude,請參閱 [LLM 閘道](/docs/zh-TW/llm-gateway)。

26</Note>26</Note>

27 27 

28<h3 id="model-aliases">28<h3 id="model-aliases">

29 模型別名29 模型別名

30</h3>30</h3>

31 31 

32模型別名提供了一種便捷的方式來選擇模型設定,無需記住確切的版本號:32使用模型別名即可選擇模型設定,無需記住確切的版本號碼:

33 33 

34| 模型別名 | 行為 |34| 模型別名 | 行為 |

35| - | - |35| - | - |

36| **`default`** | 特殊值,可清除任何模型覆蓋並還原為您帳戶類型的推薦模型,或當管理員設定了[組織預設模型](#organization-default-model)時還原為該模型。本身不是模型別名 |36| **`default`** | 特殊值,會清除任何模型覆寫並還原為[您帳戶的執行階段預設值](#default-model-setting)。其本身並非模型別名 |

37| **`best`** | 在您的組織有權限的地方使用 Fable 5,否則使用最新的 Opus 模型 |37| **`best`** | 在您可使用 Fable 時,使用 [`fable` 別名解析到的](#fable-alias-resolution)模型,否則使用與 `opus` 相同的模型 |

38| **`fable`** | 使用 Claude Fable 5 進行您最困難和最長時間執行的任務 |38| **`fable`** | 使用[您供應商的 Fable 模型](#fable-alias-resolution)處理最困難且執行時間最長的任務 |

39| **`sonnet`** | 使用最新的 Sonnet 模型進行日常編碼任務 |39| **`sonnet`** | 使用最新的 Sonnet 模型處理日常程式設計任務 |

40| **`opus`** | 使用最新的 Opus 模型進行複雜推理任務 |40| **`opus`** | 使用最新的 Opus 模型處理複雜的推理任務 |

41| **`haiku`** | 使用快速高效的 Haiku 模型進行簡單任務 |41| **`haiku`** | 使用快速且高效的 Haiku 模型處理簡單任務 |

42| **`sonnet[1m]`** | 使用 Sonnet 搭配[100 萬個 token 的 context window](https://platform.claude.com/docs/zh-TW/build-with-claude/context-windows#context-window-sizes-by-model)進行長時間會話。當 `sonnet` 已解析為具有原生 1M window 的 Sonnet 5 時無效;在 [LLM 閘道](/docs/zh-TW/llm-gateway)後方時,會為 Sonnet 5 選擇 1M window |42| **`sonnet[1m]`** | 使用具有 [100 萬 token 上下文視窗](https://platform.claude.com/docs/en/build-with-claude/context-windows#context-window-sizes-by-model)的 Sonnet 進行長時間工作階段。當 `sonnet` 已解析為原生具備 1M 視窗的 Sonnet 5.5 或 Sonnet 5 時沒有作用 |

43| **`opus[1m]`** | 使用 Opus 搭配[100 萬個 token 的 context window](https://platform.claude.com/docs/zh-TW/build-with-claude/context-windows#context-window-sizes-by-model)進行長時間會話 |43| **`opus[1m]`** | 使用具有 [100 萬 token 上下文視窗](https://platform.claude.com/docs/en/build-with-claude/context-windows#context-window-sizes-by-model)的 Opus 進行長時間工作階段 |

44| **`opusplan`** | 特殊模式,在 Plan Mode 期間使用 `opus`,然後在執行時切換到 `sonnet` |44| **`opusplan`** | 特殊模式,在 plan mode 期間使用 `opus`,然後在執行時切換至 `sonnet` |

45 45 

46`opus` 和 `sonnet` 別名解析為什麼取決於提供者:46`opus` 和 `sonnet` 別名解析到的版本取決於供應商:

47 47 

48| 提供者 | `opus` | `sonnet` |48| 供應商 | `opus` | `sonnet` |

49| :- | :- | :- |49| :- | :- | :- |

50| Anthropic API | Opus 4.8 | Sonnet 5 |50| Anthropic API | Opus 5.5 | Sonnet 5.5 |

51| [AWS 上的 Claude Platform](/docs/zh-TW/claude-platform-on-aws) | Opus 4.8 | Sonnet 4.6 |51| [Claude Platform on AWS](/docs/zh-TW/claude-platform-on-aws) | Opus 5.5 | Sonnet 4.6 |

52| Amazon Bedrock、Google Cloud 的 Agent Platform | Opus 4.8 | Sonnet 4.5 |52| Amazon Bedrock、Google Cloud's Agent Platform | Opus 5.5 | Sonnet 4.5 |

53| Microsoft Foundry | Opus 4.6 | Sonnet 4.5 |53| Microsoft Foundry | Opus 4.6 | Sonnet 4.5 |

54 54 

55當別名解析為較舊的模型時,透過明確選擇完整模型名稱或設定 `ANTHROPIC_DEFAULT_OPUS_MODEL` 或 `ANTHROPIC_DEFAULT_SONNET_MODEL`,可以使用較新的模型。55<span id="fable-alias-resolution" />

56 56 

57在 v2.1.207 之前,`opus` 在 AWS 上的 Claude Platform 上解析為 Opus 4.7,在 Amazon Bedrock 和 Google Cloud 的 Agent Platform 上解析為 Opus 4.6。57除非您設定了 `ANTHROPIC_DEFAULT_FABLE_MODEL`,否則 `fable` 別名會解析為 Fable 5.1,但在 [Claude apps gateway](/docs/zh-TW/claude-apps-gateway) 工作階段中例外,此時 `fable` 和 `best` 會解析為 Fable 5。

58 58 

59別名指向您提供者的推薦版本,並隨著時間推移而更新。若要固定到特定版本,請使用完整模型名稱(例如 `claude-opus-4-8`),或設定相應的環境變數,如 `ANTHROPIC_DEFAULT_OPUS_MODEL`。59未設定為提供 `claude-fable-5-1` 的閘道會拒絕對該模型的請求。若要透過提供該模型的閘道使用 Fable 5.1,請使用 `/model claude-fable-5-1` 選擇它。

60 

61當別名解析為較舊的模型時,您可以明確選擇完整模型名稱,或設定 `ANTHROPIC_DEFAULT_OPUS_MODEL` 或 `ANTHROPIC_DEFAULT_SONNET_MODEL` 來使用較新的模型。

62 

63較早的版本會將這些別名解析為較舊的模型。關於每個別名變更時的版本,請參閱[版本歷史](#version-history)。

64 

65別名會指向您供應商的建議版本,並隨時間更新。若要固定使用特定版本,請使用完整模型名稱,例如 `claude-opus-5-5`,或設定對應的環境變數,例如 `ANTHROPIC_DEFAULT_OPUS_MODEL`。

60 66 

61<Note>67<Note>

62 Sonnet 5 需要 Claude Code v2.1.197 或更新版本。Opus 4.8 需要 v2.1.154 或更新版本。執行 `claude update` 以升級。68 Sonnet 5.5 需要 Claude Code v2.1.284 或更新版本,Opus 5.5 需要 v2.1.280 或更新版本。如果從較舊版本對其中任一模型發出的請求失敗,請參閱 [Claude Code does not support this model](/docs/zh-TW/errors#claude-code-does-not-support-this-model)。執行 `claude update` 進行升級。

63</Note>69</Note>

64 70 

65<h3 id="work-with-fable-5">71<h3 id="work-with-fable">

66 使用 Fable 572 使用 Fable

67</h3>73</h3>

68 74 

69[Claude Fable 5](https://platform.claude.com/docs/zh-TW/about-claude/models/introducing-claude-fable-5-and-claude-mythos-5) 是 Claude Code 中最強大的模型,適合於超過單次會話的任務。它能維持長時間的自主會話,在行動前進行調查,並比較小的模型更頻繁地驗證其工作。75[Claude Fable 5.1](https://platform.claude.com/docs/en/about-claude/models/overview) 和 Claude Fable 5 是 Claude Code 中能力最強的模型,適合無法一次完成的大型任務。它們能維持長時間的自主工作階段,在行動前先進行調查,並且比較小的模型更頻繁地驗證自己的工作。Fable 5.1 是較新的版本。

76 

77在任何方案或供應商上,這兩個 Fable 模型都不是帳戶類型的預設模型。請明確選擇其中之一:

78 

79* **Fable 5.1**:執行 `/model fable`,或以 `claude --model fable` 啟動。在 [Claude apps gateway](/docs/zh-TW/claude-apps-gateway) 工作階段中,由於別名會解析為 Fable 5,請改為執行 `/model claude-fable-5-1`。

80* **Fable 5**:透過模型 ID 選擇。在 Anthropic API 上,執行 `/model claude-fable-5` 或以 `claude --model claude-fable-5` 啟動。在其他供應商上,請使用您供應商的 Fable 5 模型 ID,或使用 `ANTHROPIC_DEFAULT_FABLE_MODEL` [固定它](#pin-models-for-third-party-deployments)。

70 81 

71Fable 5 不是預設模型。使用 `/model fable` 選擇它。其安全分類器標記的請求,最常見於網路安全和生物學領域,會觸發[自動模型回退](#automatic-model-fallback)。82如果您直接連線至 Anthropic API,且您的使用者設定將 `claude-fable-5` 或 `claude-fable-5[1m]` 保存為模型(例如因為您在 v2.1.257 之前於 `/model` 選擇器中選擇了 Fable),Claude Code 會在您首次執行 v2.1.257 或更新版本時,將該已儲存的值變更為 `fable` 或 `fable[1m]` 別名。啟動時的模型列會顯示一次 `(auto-updated)`。專案、本機或受管設定中的 `claude-fable-5` 值則維持不變。

72 83 

73若要充分利用 Fable 5:84被 Fable 模型的安全分類器標記的請求(最常見於網路安全和生物學領域)會觸發[自動模型備援](#automatic-model-fallback)。

74 85 

75* **描述結果,而不是步驟**:給它您想要的結果,讓它規劃路徑。若要讓它持續工作直到該結果成立,[設定目標](/docs/zh-TW/goal)。86若要充分發揮 Fable 的效益:

76* **交給它模糊的問題**:根本原因調查、中斷除錯和架構決策是額外調查和驗證發揮作用的地方。87 

77* **跳過驗證提醒**:它以較少的提示驗證自己的工作,所以測試或檢查的提醒通常是不必要的。88* **描述結果,而非步驟**:告訴它您想要的結果,讓它自行規劃路徑。若要讓它持續朝該結果努力,請[設定目標](/docs/zh-TW/goal)。

78* **規劃更大的任務**:給它您通常會分成多個部分的工作。它能維持長時間的會話而不失去思路。89* **交給它模糊的問題**:根本原因調查、服務中斷除錯和架構決策,正是額外調查與驗證能帶來回報的地方。

90* **省略驗證提醒**:它只需較少的提示就會驗證自己的工作,因此通常不需要提醒它測試或檢查。

91* **給予更大的任務**:交給它您通常會拆分成多個部分的工作。它能維持長時間工作階段而不失去脈絡。

79 92 

80<Note>93<Note>

81 Fable 5 需要 Claude Code v2.1.170 或更新版本。較舊的版本不會在模型選擇器中顯示 Fable 5,也無法選擇它。執行 `claude update` 以升級。Fable 5 在[零資料保留](/docs/zh-TW/zero-data-retention)下不可用,其中 `/model` 選擇器要麼省略它,要麼將其顯示為已停用。94 Fable 5.1 需要 Claude Code v2.1.257 或更新版本。如果從較舊版本對其發出的請求失敗,請參閱 [Claude Code does not support this model](/docs/zh-TW/errors#claude-code-does-not-support-this-model)。執行 `claude update` 進行升級。關於零資料保留下的可用性,請參閱 [ZDR 下的模型可用性](/docs/zh-TW/zero-data-retention#model-availability-under-zdr)。

82</Note>95</Note>

83 96 

97在 Anthropic API 上,Fable 模型會出現在 `/model` 選擇器中,除非 [`availableModels`](#restrict-model-selection) 或[組織模型限制](#organization-model-restrictions)將其排除。當您的組織完全無法使用 Fable 時(例如在[零資料保留](/docs/zh-TW/zero-data-retention#model-availability-under-zdr)下),該列仍會以灰色顯示於選擇器中,並附上原因說明。

98 

99<h4 id="fable-and-usage-credits">

100 Fable 與用量點數

101</h4>

102 

103視您的方案和席位等級而定,Fable 的使用量可能會計入[用量點數](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans),而非使用您方案內含的限額。在此情況下,`/model` 選擇器會在 Fable 列上顯示「Requires usage credits」。若要管理用量點數,請參閱[為您的訂閱新增用量點數](/docs/zh-TW/costs#add-usage-credits-to-your-subscription)。

104 

105在互動式工作階段中,Claude Code 會在 Fable 請求計入用量點數之前顯示同意提示。採用組織計費的 Enterprise 方案成員不會看到此提示。您可以選擇使用用量點數繼續使用 Fable,或切換至您的預設模型。您也可以關閉此提示:

106 

107* 當您使用 `/model` 選擇 Fable 模型時,會保留目前的模型。

108* 在工作階段進行中,Claude Code 會以您的預設模型繼續該回合。

109 

110在您選擇使用用量點數繼續使用 Fable 之後,Claude Code 不會再次顯示此提示。

111 

112在已連線 [Remote Control](/docs/zh-TW/remote-control) 的工作階段、[背景工作階段](/docs/zh-TW/agent-view)或 [agent team](/docs/zh-TW/agent-teams) 隊員的工作階段中,終端機前可能沒有人,因此 Claude Code 會將工作階段中的同意提示保留至 [`dialogExpiry`](/docs/zh-TW/settings-reference#dialogexpiry) 期限,預設為五分鐘。如果在期限前無人回應,Claude Code 會在不傳送請求的情況下結束該回合,並在逐字稿中加入通知,Remote Control 用戶端也會顯示該通知。您的模型選擇維持不變,Claude Code 會在您下一則訊息時再次請求同意。

113 

114提示等待期間您可以執行的操作取決於工作階段:

115 

116* 在已連線 Remote Control 或在隊員的工作階段中,於終端機按下任意鍵即可取消期限,Claude Code 會等待您的回應。

117* 在背景工作階段中,請在期限前回應。

118* 如果您在任何人於終端機輸入之前從遠端用戶端傳送新訊息,Claude Code 會以相同方式結束該回合,而您的新訊息會開始下一個回合。在有人於終端機輸入之後,Claude Code 會持續等待回應,並將您的新訊息排在其後。

119 

120在其他應用程式透過 [Agent SDK](/docs/zh-TW/agent-sdk/overview) 託管的工作階段中,是否顯示提示由該應用程式決定。如果顯示提示且在相同的 [`dialogExpiry`](/docs/zh-TW/settings-reference#dialogexpiry) 期限前無人回應,Claude Code 會在不傳送請求的情況下結束該回合。

121 

122在使用 `-p` 旗標的[非互動模式](/docs/zh-TW/headless)中,以及在不顯示提示的 Agent SDK 應用程式中,Claude Code 永遠不會請求同意。當 Fable 請求會計入用量點數時,Claude Code 會直接計費而不詢問。

123 

84<h3 id="setting-your-model">124<h3 id="setting-your-model">

85 設定您的模型125 設定您的模型

86</h3>126</h3>

87 127 

88您可以透過多種方式配置模型,按優先順序列出:128您可以透過多種方式設定模型,以下依優先順序列出:

89 129 

901. **在會話期間**:使用 `/model <alias|name>` 立即切換,或執行 `/model` 不帶任何引數以開啟選擇器。當會話有先前的輸出時,選擇器會要求確認,因為下一個回應會重新讀取完整歷史記錄而不使用快取的 context1301. **工作階段期間**:使用 `/model <alias|name>` 立即切換,或執行不帶引數的 `/model` 開啟選擇器。請參閱 [Claude Code 何時會要求您確認切換](/docs/zh-TW/prompt-caching#switching-models)

912. **在啟動時**:使用 `claude --model <alias|name>` 啟動1312. **啟動時**:以 `claude --model <alias|name>` 啟動

923. **環境變數**:設定 `ANTHROPIC_MODEL=<alias|name>`1323. **環境變數**:設定 `ANTHROPIC_MODEL=<alias|name>`

934. **設定**:在設定檔中使用 `model` 欄位永久配置1334. **設定**:在您的設定檔中使用 `model` 欄位永久設定

1345. **[新工作階段的預設值](#set-a-default-model-for-new-sessions)**:設定 `ANTHROPIC_DEFAULT_MODEL=<alias|name>`

94 135 

95自 v2.1.153 起,`/model` 會透過在您的使用者設定中寫入 `model` 欄位,將您的選擇儲存為新會話的預設值。在選擇器中:136`/model` 會透過在您的使用者設定中寫入 `model` 欄位,將您的選擇儲存為新工作階段的預設值。在選擇器中:

96 137 

97* `Enter`:切換模型並儲存為您的預設值138* `Enter`:切換模型並儲存為您的預設值

98* `s`:僅針對此會話切換模型139* `s`:僅為此工作階段切換模型,並保持您的預設值不變。若要使用其他按鍵,請重新綁定 [`modelPicker:thisSessionOnly`](/docs/zh-TW/keybindings#model-picker-actions)

99 140 

100直接輸入 `/model <name>` 的行為類似於 `Enter`。在[非互動模式](/docs/zh-TW/headless)中使用 `/model` 設定的模型,搭配 `-p` 旗標,僅適用於目前會話,不會儲存為您的預設值。專案和受管設定仍然優先,並在下次啟動時重新應用。您的管理員配置的[組織預設模型](#organization-default-model)也會在下次啟動時重新應用。141直接輸入 `/model <name>` 的行為與 `Enter` 相同。若要僅為此工作階段切換,請以 `/model` 開啟選擇器,並在該模型的列上按下 `s`。

101 142 

102在 v2.1.144 至 v2.1.152 中,`/model` 僅適用於目前會話,選擇器中的 `d` 儲存預設值。143在 Enterprise 方案中,當您以 claude.ai 帳戶登入並使用 `/model` 儲存預設值時,Claude Code 也會在該帳戶上記錄此選擇。這需要 Claude Code v2.1.280 或更新版本。

103 144 

104`--model` 旗標和 `ANTHROPIC_MODEL` 環境變數僅適用於您啟動它們的會話。若要同時在不同終端中執行不同的模型,請使用各自的 `--model` 旗標啟動每個終端,而不是使用 `/model` 切換。145* 當您的管理員未設定[組織預設模型](#organization-default-model)時,[Default 選項](#default-model-setting)可以解析為已記錄的模型,此時選擇器的 Default 列會顯示該模型的名稱。

146* 如果[模型限制](#restrict-model-selection)排除了已記錄的模型或該模型無法供您的帳戶使用,且您的管理員未設定組織預設模型,Default 選項會如同未記錄任何內容般進行解析。

147* 如果您在 `/model` 中選擇 Default 或 `opusplan`,已記錄的選擇不會變更。

105 148 

106當 Claude Code 與 Anthropic API 通訊時,`/model` 選擇器中的價格會出現,直接或透過代理它的 [LLM 閘道](/docs/zh-TW/llm-gateway),而一列上的價格是該列選擇的模型的價格。在 [Amazon Bedrock](/docs/zh-TW/third-party-integrations) 等第三方提供者上,以及在 [Claude 應用程式閘道](/docs/zh-TW/claude-apps-gateway)上,您的提供者或閘道決定您支付的費用,所以選擇器列不顯示價格。價格僅是顯示標籤;它不會影響一列選擇哪個模型或您的提供者計費的內容。在 v2.1.206 之前,[AWS 上的 Claude Platform](/docs/zh-TW/claude-platform-on-aws) 和閘道會話顯示 Anthropic 列表價格,一列可能顯示與其選擇的模型不同的模型的價格。149如果您使用 `/model` 切換模型,此切換也會影響[繼承主對話模型的 subagent](/docs/zh-TW/sub-agents#choose-a-model),因為 Claude Code 會在 Claude 啟動它們時,根據您工作階段正在使用的模型來解析它們的模型。在 Claude 將研究或測試執行委派給其中一個 subagent 之前切換至 Opus,該工作也會在 Opus 上執行。若要讓自訂 subagent 維持使用較小的模型,請在其定義中設定 `model`。

107 150 

108使用 `claude --resume`、`--continue` 或 `/resume` 選擇器啟動的已恢復會話會保持它們在儲存文字記錄時使用的模型,無論目前的 `model` 設定如何。如果該模型已被淘汰或被 [`availableModels`](#restrict-model-selection) 排除,會話會回到正常的優先順序。這可防止另一個會話的 `/model` 選擇在恢復時改變模型。151如果您在使用 `-p` 旗標的[非互動模式](/docs/zh-TW/headless)中以 `/model` 設定模型,您的選擇僅適用於目前的工作階段,不會儲存為預設值;在該模式下使用 `/model` 需要 Claude Code v2.1.205 或更新版本。專案和受管設定仍然優先,並會在下次啟動時重新套用。您的管理員設定為覆寫使用者選擇的[組織預設模型](#organization-default-model)也會在下次啟動時重新套用。

109 152 

110您在新啟動時使用 `--model` 或 `ANTHROPIC_MODEL` 選擇的模型仍然優先於還原的模型。自 v2.1.195 起,[`ANTHROPIC_DEFAULT_OPUS_MODEL`](#environment-variables) 系列變數也是如此。153在 v2.1.144 至 v2.1.152 中,`/model` 僅適用於目前的工作階段,而選擇器中的 `d` 會儲存預設值。

111 154 

112當啟動時的活動模型來自專案或受管設定而非您自己的選擇時,啟動標題會顯示哪個設定檔設定了它。執行 `/model` 以覆蓋;專案或受管設定會在下次啟動時重新應用。155`--model` 旗標和 `ANTHROPIC_MODEL` 環境變數僅適用於以它們啟動的工作階段。若要同時在不同終端機中執行不同的模型,請為每個終端機使用各自的 `--model` 旗標啟動,而非使用 `/model` 切換。

113 156 

114當透過 [Agent SDK](/docs/zh-TW/agent-sdk/overview) `setModel()` 方法或由執行 Claude Code CLI 的應用程式(例如 [Desktop app](/docs/zh-TW/desktop))要求模型切換時,Claude Code 會檢查該字串是否為它識別的字串,然後再儲存它。此檢查需要 Claude Code v2.1.200 或更新版本。在 Anthropic API 上,Claude Code 識別:157當 Claude Code 直接或透過代理其請求的 [LLM 閘道](/docs/zh-TW/llm-gateway)與 Anthropic API 通訊時,`/model` 選擇器中會顯示價格,而某一列上的價格即為該列所選模型的價格。在 Amazon Bedrock 等[第三方供應商](/docs/zh-TW/third-party-integrations)以及 [Claude apps gateway](/docs/zh-TW/claude-apps-gateway) 上,由您的供應商或閘道決定您支付的費用,因此選擇器的各列不會顯示價格。價格僅為顯示標籤;它不會影響某一列所選擇的模型或您供應商的計費。在 v2.1.206 之前,[Claude Platform on AWS](/docs/zh-TW/claude-platform-on-aws) 和閘道工作階段會顯示 Anthropic 的牌價,且某一列可能顯示與其所選模型不同之模型的價格。

115 158 

116* 一個模型別名159以 `claude --resume`、`--continue` 或 `/resume` 選擇器啟動的恢復工作階段,會保留逐字稿儲存時所使用的模型,不論目前的 `model` 設定為何。如果還原的模型已停用或被 [`availableModels`](#restrict-model-selection) 排除,工作階段會改依一般的優先順序進行。這可防止其他工作階段的 `/model` 選擇在恢復時變更模型。在使用供應商專屬部署 ID 而非 Anthropic 模型 ID 的供應商上(例如 Amazon Bedrock、Google Cloud's Agent Platform 和 Microsoft Foundry),完全不會還原逐字稿中的模型,工作階段會透過一般的優先順序來解析其模型。

117* 來自 `/model` 選擇器的項目

118* 任何以 `claude-` 開頭的名稱

119* 您自己配置為[自訂模型選項](#add-a-custom-model-option)或在 [`modelOverrides`](#override-model-ids-per-version) 中的值

120 160 

121Claude Code 會以 `Model "<name>" is not a recognized model id.` 拒絕無法識別的字串,會話會保持其目前的模型,而不是儲存該字串並在下一個請求時失敗。請參閱[錯誤參考](/docs/zh-TW/errors#model-is-not-a-recognized-model-id)以了解復原步驟。161您透過 `--model` 或 `ANTHROPIC_MODEL` 為新啟動選擇的模型仍優先於還原的模型。自 v2.1.195 起,[`ANTHROPIC_DEFAULT_OPUS_MODEL`](#environment-variables) 系列變數也同樣優先。[`ANTHROPIC_DEFAULT_MODEL`](#set-a-default-model-for-new-sessions) 在其章節所列的條件下也可優先。

122 162 

123檢查僅在 Anthropic API 上執行。在 Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry、[AWS 上的 Claude Platform](/docs/zh-TW/claude-platform-on-aws) 和 [LLM 閘道](/docs/zh-TW/llm-gateway)後方或自訂 `ANTHROPIC_BASE_URL` 後方,您的提供者或閘道定義模型名稱,所以 Claude Code 會不檢查地傳遞任何字串。檢查也不涵蓋 `--model` 旗標、`ANTHROPIC_MODEL` 環境變數或 `model` 設定;在那裡輸入錯誤的值會在第一個請求時產生[所選模型有問題](/docs/zh-TW/errors#theres-an-issue-with-the-selected-model)。163當啟動時的作用中模型來自專案或受管設定,而非您自己的選擇時,啟動標頭會顯示是哪個設定檔設定了它。執行 `/model` 即可覆寫;專案或受管設定會在下次啟動時重新套用。在嵌入 Claude Code 並設定 [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](/docs/zh-TW/env-vars) 的平台上,主機的模型設定優先於受管模型設定,而受管的 `availableModels` 允許清單仍然有效,除非主機提供自己的允許清單;[受管設定優先順序的例外情況](/docs/zh-TW/settings#exceptions-to-managed-settings-precedence)說明了主機會覆寫哪些鍵和變數。

124 164 

125當請求的模型有排定的淘汰日期或自動重新對應到較新版本時,Claude Code 會顯示一個警告,其中命名了請求的模型。互動式會話會將其顯示為啟動通知。從 v2.1.182 起,當使用預設文字輸出格式時,相同的警告會在[非互動模式](/docs/zh-TW/headless)中寫入 stderr。檢查也涵蓋在[子代理 frontmatter](/docs/zh-TW/sub-agents) 中設定的 `model`。對於 `--output-format json` 和 `stream-json`,stderr 警告會被抑制;改為從[結果訊息](/docs/zh-TW/headless#get-structured-output)的 `modelUsage` 欄位讀取實際模型。165如果您或您的組織設定了 [PreModelSwitch hook](/docs/zh-TW/hooks#premodelswitch),它們會在所請求的切換套用之前執行,並可以阻擋切換或要求您確認。

126 166 

127使用範例:167當 Claude Code 無法判斷您組織的[受管外掛](/docs/zh-TW/settings-reference#enabledplugins)提供了哪些 PreModelSwitch hook 時(例如因為某個受管外掛載入失敗),它會拒絕切換,而不是在未經檢查的情況下套用,並在每次新的嘗試時再次檢查。關於訊息和復原方式,請參閱 [Model switch was blocked by a PreModelSwitch hook](/docs/zh-TW/errors#model-switch-was-blocked-by-a-premodelswitch-hook)。

168 

169當您透過 [Agent SDK](/docs/zh-TW/agent-sdk/overview) 的 `setModel()` 方法、透過 [Desktop 應用程式](/docs/zh-TW/desktop)等應用程式,或從透過 [Remote Control](/docs/zh-TW/remote-control) 連線的裝置切換模型時,Claude Code 會在切換時檢查該值:

170 

171* **Agent SDK 或應用程式**:在 Claude Code v2.1.268 或更新版本中,除非 Claude Code 在本機接受某個模型 ID(例如您的[自訂模型選項](#add-a-custom-model-option)),否則它會在工作階段首次切換至該 ID 時向您的供應商確認。此確認在所有供應商上都會執行,您的供應商未提供的 ID 會在切換時被拒絕,而不是在您下一次請求時才失敗。

172* **Remote Control**:在 Anthropic API 上,Claude Code 會在本機檢查該值,不會傳送任何請求。

173 

174關於相關訊息,請參閱 [Model is not a recognized model id](/docs/zh-TW/errors#model-is-not-a-recognized-model-id) 和 [Model not found](/docs/zh-TW/errors#model-not-found)。

175 

176如果您以 `--model` 旗標、`ANTHROPIC_MODEL` 環境變數或 `model` 設定來設定模型,Claude Code 不會事先檢查,輸入錯誤的值會在第一次請求時產生 [There's an issue with the selected model](/docs/zh-TW/errors#theres-an-issue-with-the-selected-model)。

177 

178當所請求的模型有預定的停用日期,或會自動重新對應至較新版本時,Claude Code 會顯示一則指出所請求模型的警告。互動式工作階段會將其顯示為啟動通知。自 v2.1.182 起,在使用預設文字輸出格式時,相同的警告也會在[非互動模式](/docs/zh-TW/headless)中寫入 stderr。此檢查也涵蓋在 [subagent frontmatter](/docs/zh-TW/sub-agents) 中設定的 `model`。對於 `--output-format json` 和 `stream-json`,stderr 警告會被隱藏;請改從[結果訊息](/docs/zh-TW/headless#get-structured-output)的 `modelUsage` 欄位讀取實際模型。

179 

180例如,在 Opus 上啟動工作階段:

128 181 

129```bash theme={null}182```bash theme={null}

130# 使用 Opus 啟動

131claude --model opus183claude --model opus

184```

132 185 

133# 在會話期間切換到 Sonnet186然後在工作階段中切換模型:

187 

188```text theme={null}

134/model sonnet189/model sonnet

135```190```

136 191 


139```json theme={null}194```json theme={null}

140{195{

141 "permissions": {196 "permissions": {

142 ...197 "allow": ["Bash(npm run lint)"]

143 },198 },

144 "model": "opus"199 "model": "opus"

145}200}

146```201```

147 202 

203<h4 id="set-a-default-model-for-new-sessions">

204 為新工作階段設定預設模型

205</h4>

206 

207設定 `ANTHROPIC_DEFAULT_MODEL=<alias|name>` 以選擇您的工作階段預設啟動時使用的模型。需要 Claude Code v2.1.236 或更新版本。

208 

209只有在以下各項都未選擇模型時,Claude Code 才會以該變數的模型啟動新工作階段:

210 

211* `--model` 旗標

212* `ANTHROPIC_MODEL`

213* 任何設定檔中的 `model` 值,包括您以 `/model` 儲存的選擇

214* [組織預設模型](#organization-default-model)

215 

216您以 `/model` 儲存的選擇在後續啟動時也優先於該變數。若改為設定 `ANTHROPIC_MODEL`,無論您以 `/model` 儲存了什麼,Claude Code 都會在下次啟動時回到該變數的模型。

217 

218除非適用組織預設模型,否則 Claude Code 也會將 Default 選項解析為該變數的模型。當 Default 選項解析為該變數的模型時,`/model` 選擇器中的 Default 列會顯示標籤 Set by ANTHROPIC\_DEFAULT\_MODEL。

219 

220在以下情況中,Claude Code 會忽略該變數,且 Default 選項會如同您未設定它般進行解析:

221 

222* 您將其設定為 `default`、`inherit`、`opusplan` 或 `haiku`

223* [`enforceAvailableModels`](#enforce-the-allowlist-for-the-default-model) 已開啟

224* 您組織的[模型限制](#restrict-model-selection)排除了該模型

225* 該模型無法供您的帳戶使用

226 

227當新工作階段會以該變數的模型啟動時,您以 `claude --resume`、`--continue` 或 `/resume` 選擇器恢復的工作階段也會以該模型啟動。Claude Code 不會還原該工作階段逐字稿中儲存的模型。否則,當您[恢復工作階段](#setting-your-model)時,Claude Code 不會使用該變數。

228 

229<h4 id="a-new-session-starts-on-a-different-model-than-you-picked">

230 新工作階段以不同於您所選的模型啟動

231</h4>

232 

233當您以 `/model` 選擇模型,而下一個工作階段卻以其他模型啟動時,常見原因如下:

234 

235* **您只為單一工作階段選擇了它。** 在選擇器中按下 `s`、以 `--model` 啟動,以及在非互動模式中執行 `/model`,都只適用於目前的工作階段,不會變更您已儲存的預設值。

236* **有更高優先順序的項目設定了模型。** 專案或受管設定中的 `model` 值、您 shell 中的 `ANTHROPIC_MODEL`,或您的管理員設定為覆寫使用者選擇的[組織預設值](#organization-default-model),都會在每次啟動時重新套用。您的 `/model` 選擇仍然已儲存,只是被更高優先順序的設定所取代。當專案或受管設定設定了模型時,啟動標頭會指出該檔案。

237* **Claude Code 無法儲存您的選擇。** `/model` 會將 `model` 寫入 `~/.claude/settings.json`。如果您無法寫入該檔案(例如因為另一個工具會產生它,或將它連結至唯讀副本),您選擇的模型只會在該工作階段中有效,下次啟動時會讀取舊值。請在產生該檔案的工具中設定 `model`,或讓該檔案可寫入。請參閱 [您在 Claude Code 中所做的變更在新工作階段中遺失](/docs/zh-TW/settings#a-change-you-made-in-claude-code-is-lost-in-new-sessions)。

238* **您恢復了工作階段。** 您以 `claude --resume` 或 `--continue` 恢復的工作階段通常會[保留其原本使用的模型](#setting-your-model),而非您目前的預設值。

239 

148<h2 id="restrict-model-selection">240<h2 id="restrict-model-selection">

149 限制模型選擇241 限制模型選擇

150</h2>242</h2>

151 243 

152企業管理員可以在[受管理或政策設定](/docs/zh-TW/settings#settings-files)中使用 `availableModels` 來限制使用者可以選擇的模型。項目符合模型系列(例如 `sonnet`)、版本前綴(例如 `claude-sonnet-4-5`)或完整模型 ID(例如 `claude-sonnet-4-5-20250929`)。244管理員可以在[受管設定或政策設定](/docs/zh-TW/managed-settings)中使用 `availableModels` 來限制使用者可以選擇的模型。項目可比對模型系列(例如 `sonnet`)、版本前綴(例如 `claude-sonnet-4-5`),或完整模型 ID(例如 `claude-sonnet-4-5-20250929`)。版本前綴也會比對以另一個區段延伸該前綴的後續模型 ID,因此 `claude-fable-5` 同時允許 Fable 5 與 Fable 5.1,而 `claude-fable-5-1` 僅允許 Fable 5.1。若要封鎖清單所允許的某個模型,或讓每個模型 ID 項目僅允許其所指定的版本,請參閱[封鎖特定模型或版本](#block-specific-models-or-versions)。

245 

246在內嵌 Claude Code 並設定 [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](/docs/zh-TW/env-vars) 的平台上,主機的模型設定優先於受管模型設定,而受管的 `availableModels` 允許清單仍然有效,除非主機提供自己的允許清單;[受管設定優先順序的例外](/docs/zh-TW/settings#exceptions-to-managed-settings-precedence)說明主機會覆寫哪些設定鍵與變數。

153 247 

154設定 `availableModels` 後,允許清單適用於使用者可以指定模型的每個位置:248設定 `availableModels` 後,允許清單會套用於使用者可以指定模型的所有位置:

155 249 

156* **主要會話模型**:`/model`、`--model` 旗標、`ANTHROPIC_MODEL` 環境變數、`model` 設定,以及[恢復會話](#setting-your-model)時還原的模型250* **主要工作階段模型**:`/model`、`--model` 旗標、`ANTHROPIC_MODEL` 環境變數、`model` 設定、[`ANTHROPIC_DEFAULT_MODEL`](#set-a-default-model-for-new-sessions),以及[恢復工作階段](#setting-your-model)時還原的模型

157* **別名解析**:`ANTHROPIC_DEFAULT_OPUS_MODEL`、`ANTHROPIC_DEFAULT_SONNET_MODEL`、`ANTHROPIC_DEFAULT_HAIKU_MODEL` 和 `ANTHROPIC_DEFAULT_FABLE_MODEL` 環境變數無法將允許的別名重新導向到清單外的模型251* **別名解析**:`ANTHROPIC_DEFAULT_OPUS_MODEL`、`ANTHROPIC_DEFAULT_SONNET_MODEL`、`ANTHROPIC_DEFAULT_HAIKU_MODEL` 與 `ANTHROPIC_DEFAULT_FABLE_MODEL` 環境變數無法將允許的別名重新導向至清單以外的模型

158* **快速模式**:`/fast` 在隱含切換到清單外的 Opus 模型時拒絕切換,並顯示訊息「不在您組織的允許模型中」252* **快速模式**:當切換會隱含地改用清單以外的 Opus 模型時,`/fast` 會拒絕切換,並顯示訊息「is not in your organization's allowed models」

159* **子代理模型**:[子代理](/docs/zh-TW/sub-agents#choose-a-model) frontmatter 中的 `model` 欄位、Agent 工具的 `model` 參數、`CLAUDE_CODE_SUBAGENT_MODEL`,以及在 v2.1.197 及更早版本上,`/agents` 精靈中的模型選擇器253* **Subagent 與隊員模型**:[subagent](/docs/zh-TW/sub-agents#choose-a-model) frontmatter 中的 `model` 欄位、Agent 工具的 `model` 參數、[agent team](/docs/zh-TW/agent-teams#specify-teammates-and-models) 隊員模型、`CLAUDE_CODE_SUBAGENT_MODEL`,以及在 v2.1.197 及更早版本中 `/agents` 精靈內的模型選擇器&#x20;

160* **技能和命令模型**:[技能和命令](/docs/zh-TW/skills)中的 `model` frontmatter254* **Skill 與命令模型**:[skill 與命令](/docs/zh-TW/skills)中的 `model` frontmatter

161* **顧問模型**:已設定的 [`advisorModel`](/docs/zh-TW/advisor) 設定和 `--advisor` 旗標255* **顧問模型**:已設定的 [`advisorModel`](/docs/zh-TW/advisor) 設定與 `--advisor` 旗標

162* **背景代理模型**:在[分派選擇器](/docs/zh-TW/agent-view)中選擇的模型256* **背景 agent 模型**:在 [Dispatch 選擇器](/docs/zh-TW/agent-view)中選取的模型

163 257 

164在 Anthropic API 和 [AWS 上的 Claude Platform](/docs/zh-TW/claude-platform-on-aws) 上,模型系列別名 `opus`、`sonnet`、`haiku` 或 `fable` 解析為允許清單允許的其系列的最新版本。當允許清單固定特定版本時,例如 `["sonnet", "claude-opus-4-6"]`,`/model opus` 和 `--model opus` 都會選擇 Claude Opus 4.6(最新允許的 Opus),並顯示一個通知,命名所要求和替代的模型。在 v2.1.205 之前,其最新發佈版本在清單外的別名會被拒絕或替換,就像任何其他被阻止的選擇一樣,即使清單允許較舊版本。258在 Anthropic API 與 [Claude Platform on AWS](/docs/zh-TW/claude-platform-on-aws) 上,模型系列別名(`opus`、`sonnet`、`haiku` 或 `fable`)在允許清單允許該模型時,會解析為其一般對應的模型。當允許清單封鎖該模型時,Claude Code 會改用允許清單所允許的該系列最新版本,並顯示一則通知,同時列出請求的模型與替代的模型。例如,使用 `["sonnet", "claude-opus-4-6"]` 時,`/model opus` 與 `--model opus` 都會選取 Claude Opus 4.6,也就是允許的最新 Opus。在 v2.1.205 之前,若別名的最新發行版本不在清單中,該別名會如同其他被封鎖的選擇一樣遭到拒絕或替換,即使清單允許較舊的版本也是如此。

165 259 

166Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 和 [Mantle](/docs/zh-TW/amazon-bedrock#use-the-mantle-endpoint) 使用提供者特定的部署 ID 而不是 Anthropic 模型 ID,因此被阻止的別名在那裡遵循下面的拒絕和替換行為。260替代需要有可改用的允許版本:當允許清單未允許該別名系列的任何版本時,該別名會如同其他被封鎖的值一樣,遵循下列拒絕與替換行為。

167 261 

168Claude Code 根據模型的設定位置處理任何其他被阻止的選擇:262Claude Code 會依據模型的設定位置來處理其他被封鎖的選擇:

169 263 

170* **`/model`**:切換被拒絕並出現錯誤264* **`/model`**:Claude Code 會以錯誤拒絕切換

171* **`--model` 旗標、`ANTHROPIC_MODEL` 或 `model` 設定**:該值在啟動時被替換為警告,命名所要求和替代的模型,會話會在預設模型上啟動265* **`--model` 旗標、`ANTHROPIC_MODEL` 或 `model` 設定**:Claude Code 會在啟動時替換該值,並顯示同時列出請求模型與替代模型的警告,工作階段會以預設模型啟動

172* **子代理、技能或命令覆蓋**:覆蓋會回退到繼承或預設模型,而不是使請求失敗266* **[`ANTHROPIC_DEFAULT_MODEL`](#set-a-default-model-for-new-sessions)**:Claude Code 會忽略該變數

173* **`advisorModel` 設定**:該會話的顧問被停用267* **Subagent 或隊員覆寫**:Claude Code 會以備援模型執行該 subagent 或隊員,而不是讓請求失敗。subagent 的備援請參閱[選擇模型](/docs/zh-TW/sub-agents#choose-a-model),隊員的備援請參閱[指定隊員與模型](/docs/zh-TW/agent-teams#specify-teammates-and-models)。

174* **`--advisor` 旗標**:Claude Code 在啟動時以錯誤退出

175 268 

176排除的模型會從 `/model` 選擇器中隱藏。清單中沒有內建選擇器列的完整模型 ID(例如清單固定的較舊版本)會在 `/model` 選擇器中顯示為其自己的標記列。在 v2.1.199 之前,此類 ID 只能透過輸入 `/model <id>` 選擇。269 在互動式工作階段中,當 Claude Code 透過此備援或上述的最新允許版本替代來替換 subagent 的模型時,會向您發出警告,並列出請求的模型與替代的模型;隊員的備援則不會回報。

177 270 

178Claude Code 代表您進行的模型變更會以相同方式檢查:271 在上述最新允許版本替代適用的情況下,被封鎖的系列別名會改為遵循該替代方式。在 v2.1.222 之前,別名在所有提供者上都會如同其他被封鎖的值一樣改用備援

272* **Skill 或命令覆寫**:Claude Code 會忽略該覆寫(包括被封鎖的系列別名),skill 或命令會以工作階段模型執行。[在 subagent 中執行](/docs/zh-TW/skills#run-skills-in-a-subagent)的 skill 或命令則改為遵循上述的 subagent 行為

273* **`advisorModel` 設定**:該工作階段會停用顧問

274* **`--advisor` 旗標**:Claude Code 會在啟動時以錯誤結束。在[背景工作階段](/docs/zh-TW/agent-view)中,則會在沒有顧問的情況下啟動工作階段,而不是結束

179 275 

180* **[後備模型鏈](#fallback-model-chains)**:清單外的元素會被捨棄276Claude Code 會在 `/model` 選擇器中隱藏被排除的模型。清單中沒有內建選擇器列的完整模型 ID(例如清單所固定的較舊版本),會在 `/model` 選擇器中顯示為獨立的標示列,除非 Claude Code 以 [`modelPicker`](/docs/zh-TW/settings-reference#modelpicker) 陣容取代內建選項。在 v2.1.199 之前,這類 ID 只能透過輸入 `/model <id>` 來選取。

181* **Plan Mode 升級**:在 Anthropic API 和 AWS 上的 Claude Platform 上,升級(例如 [`opusplan`](#opusplan-model-setting))到排除的模型會使用升級系列的最新允許版本。在具有提供者特定模型 ID 的提供者上,以及當沒有版本被允許時,升級會被跳過,計畫會在會話的模型上繼續277 

182* **[自動模型後備](#automatic-model-fallback)**:目標被排除的後備不會執行,因此標記的請求會以拒絕結束278Claude Code 代您進行的模型變更也會以相同方式檢查:

183* **[快速模式](/docs/zh-TW/fast-mode)**:當會話之後執行的模型在允許清單外時,啟用快速模式會被拒絕279 

280* **[備援模型鏈](#fallback-model-chains)**:允許清單以外的項目會被捨棄

281* **Plan mode 升級**:在 Anthropic API 與 Claude Platform on AWS 上,升級至被排除的模型(例如 [`opusplan`](#opusplan-model-setting))時,會使用升級系列中允許的最新版本。在使用提供者專屬模型 ID 的提供者上,以及沒有任何允許版本時,會略過升級,規劃會以工作階段的模型繼續進行

282* **[自動模型備援](#automatic-model-fallback)**:目標被排除的備援不會執行,因此被標記的請求會改以拒絕結束

283* **[自動模式分類器](/docs/zh-TW/permission-modes#eliminate-prompts-with-auto-mode)**:分類器預設使用的 Claude Sonnet 5 僅在允許清單允許 Sonnet 5 時適用。當其被排除時,分類器會以工作階段的模型(已受允許清單管控)執行,或在工作階段以 [Fable 模型](#work-with-fable)執行時改用 Opus 模型。在 Anthropic API 以外的提供者上,該 Opus 備援會以您在 `ANTHROPIC_DEFAULT_OPUS_MODEL` 中設定的模型執行,否則使用 Opus 5,且不會參照允許清單。需要 Claude Code v2.1.210 或更新版本

284* **[快速模式](/docs/zh-TW/fast-mode)**:若啟用快速模式後工作階段所使用的模型不在允許清單中,將會拒絕啟用快速模式

184 285 

185```json theme={null}286```json theme={null}

186{287{


189```290```

190 291 

191<h3 id="surface-coverage">292<h3 id="surface-coverage">

192 表面覆蓋293 使用介面涵蓋範圍

193</h3>294</h3>

194 295 

195每個表面都會強制執行它接收的允許清單。哪個傳遞機制到達每個表面不同:296每個使用介面都會強制執行其收到的允許清單。各使用介面接收設定的傳遞機制則有所不同:

196 297 

197| 傳遞機制 | CLI 和 IDE | 桌面本機會話 | Web、行動和雲端會話 | Agent SDK 和非互動式 | Cowork |298| 傳遞機制 | CLI 與 IDE | Desktop 本機工作階段 | 網頁、行動裝置與雲端工作階段 | Agent SDK 與非互動模式 | Cowork |

198| :- | :- | :- | :- | :- | :- |299| :- | :- | :- | :- | :- | :- |

199| 來自管理員主控台的[伺服器管理設定](/docs/zh-TW/server-managed-settings) | 強制執行 | 強制執行 | 強制執行 | 強制執行 | 未傳遞 |300| 來自管理主控台的[伺服器管理設定](/docs/zh-TW/server-managed-settings) | 強制執行 | 強制執行 | 強制執行,[Claude Tag](https://claude.com/docs/claude-tag/overview) 工作階段除外 | 強制執行 | 遠端 Cowork 工作階段:由伺服器檢查模型。在使用者的電腦上:不會傳遞。 |

200| [MDM 或受管理設定檔](/docs/zh-TW/settings#settings-files) | 強制執行 | 強制執行 | 未傳遞 | 強制執行 | 在部署位置強制執行 |301| [MDM 或受管設定檔](/docs/zh-TW/managed-settings#delivery-mechanisms) | 強制執行 | 強制執行 | 在 Anthropic 託管的環境中不會傳遞;在[自行託管的環境](/docs/zh-TW/self-hosted-environments)中,依照 [Claude Code 如何合併受管來源](/docs/zh-TW/managed-settings#how-claude-code-combines-managed-sources)從 runner 映像檔強制執行 | 強制執行 | 在已部署處強制執行 |

201 302 

202* 雲端會話在[網路上的 Claude Code](/docs/zh-TW/claude-code-on-the-web) 或桌面應用程式中執行,在 Anthropic 管理的 VM 上執行:部署到您的裝置的設定無法到達它們,因此請透過伺服器管理設定傳遞允許清單。雲端會話中的中途會話模型切換在要求的模型被允許清單排除時被拒絕。會話建立時的伺服器端拒絕適用於[組織模型限制](#organization-model-restrictions),而不是 `availableModels` 設定鍵。303* [雲端工作階段](/docs/zh-TW/claude-code-on-the-web)(包括您從 Desktop 應用程式啟動的工作階段)預設在 Anthropic 管理的 VM 上執行:部署到您裝置上的設定不會傳遞至這些工作階段,因此請透過伺服器管理設定傳遞允許清單。您的組織路由至[自行託管環境](/docs/zh-TW/self-hosted-environments)的工作階段會在您自己的運算資源上執行,並且也會讀取 runner 映像檔中的受管設定檔。[Claude Code 如何合併受管來源](/docs/zh-TW/managed-settings#how-claude-code-combines-managed-sources)說明該檔案何時適用。在雲端工作階段中,若請求的模型被允許清單排除,工作階段中途的模型切換將被拒絕。當您伺服器管理設定中的 `availableModels` 清單不為空時,伺服器會拒絕在 claude.ai/code 或從 Desktop 應用程式以清單所排除的模型啟動雲端工作階段的請求。

203* Cowork 是 Claude 桌面應用程式中的代理工作標籤,不是 Claude Code 表面,根據設計不接收伺服器管理設定。受管理設定檔在會話執行的位置存在時適用於 Cowork 會話;遠端 Cowork 會話在 Anthropic 管理的 VM 上執行,其中不存在裝置部署的檔案。304* [Claude Tag](https://claude.com/docs/claude-tag/overview) 工作階段在雲端環境中執行,但不會收到伺服器管理設定;在[自行託管環境](/docs/zh-TW/self-hosted-environments)中,這些工作階段仍會讀取 runner 映像檔中的受管設定檔。若要為這些工作階段設定模型,請參閱 Claude Tag 管理員指南中的[為範圍選擇模型](https://claude.com/docs/claude-tag/admins/customize#choose-the-model-for-a-scope)。

204* [第三方提供者](/docs/zh-TW/server-managed-settings#platform-availability)(例如 Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 和 [AWS 上的 Claude Platform](/docs/zh-TW/claude-platform-on-aws))上的會話不接收伺服器管理設定,因此請在那裡透過 MDM 或受管理設定檔傳遞允許清單。305* Cowork 是 Claude Desktop 應用程式中的 agentic 工作分頁,其工作階段在 Claude Code 上執行,但依設計不會收到來自 claude.ai 管理主控台的伺服器管理設定。當您伺服器管理設定中的 `availableModels` 清單不為空,且使用者選擇了清單以外的模型時,伺服器會在遠端 Cowork 工作階段中拒絕該模型。當受管設定檔存在於工作階段執行的位置時,該檔案即適用於 Cowork 工作階段;遠端 Cowork 工作階段在 Anthropic 管理的 VM 上執行,部署到裝置上的檔案不會存在於該處。

205* 伺服器管理傳遞也需要會話使用組織登入或直接設定的 API 金鑰進行驗證。只透過 [`apiKeyHelper`](/docs/zh-TW/settings#available-settings) 指令碼產生金鑰的艦隊應透過 MDM 或受管理設定檔傳遞允許清單。306* 在 Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 與 [Claude Platform on AWS](/docs/zh-TW/claude-platform-on-aws) 等[第三方提供者](/docs/zh-TW/server-managed-settings#platform-availability)上的工作階段不會收到伺服器管理設定,因此在這些環境中請透過 MDM 或受管設定檔傳遞允許清單。

206* 桌面代碼標籤也裝載 [SSH 會話](/docs/zh-TW/desktop#ssh-sessions),它們從執行所在的遠端主機讀取受管理設定檔。請參閱[桌面受管理設定](/docs/zh-TW/desktop#managed-settings)。307* 伺服器管理的傳遞方式還需要工作階段使用[符合資格的登入或金鑰](/docs/zh-TW/server-managed-settings#platform-availability)進行驗證。僅透過 [`apiKeyHelper`](/docs/zh-TW/settings-reference#apikeyhelper) 指令碼產生金鑰的裝置群組,應透過 MDM 或受管設定檔傳遞允許清單。

207* claude.ai 和桌面應用程式中的模型選擇器會隱藏或灰顯您組織的允許清單排除的模型。選擇器狀態是使用者的便利;強制執行發生在會話中。308* Desktop 的 Code 分頁也承載 [SSH 工作階段](/docs/zh-TW/desktop#ssh-sessions),這些工作階段會從其執行所在的遠端主機讀取受管設定檔。請參閱 [Desktop 受管設定](/docs/zh-TW/desktop#managed-settings)。

309* claude.ai 與 Desktop 應用程式中的模型選擇器會隱藏或以灰色顯示被組織允許清單排除的模型。選擇器狀態僅是為使用者提供的便利,並不會強制執行允許清單。

208 310 

209<h3 id="default-model-behavior">311<h3 id="default-model-behavior">

210 預設模型行為312 預設模型行為

211</h3>313</h3>

212 314 

213根據預設,模型選擇器中的「預設」選項不受 `availableModels` 影響,除非也設定了 [`enforceAvailableModels`](#enforce-the-allowlist-for-the-default-model)。單獨使用 `availableModels` 會保持「預設」可用,根據帳戶的[執行時預設](#default-model-setting)解析為系統預設值。如果該預設值是您想要限制的模型,也請設定 `enforceAvailableModels`。315在預設的前綴比對下,單獨使用 `availableModels` 時,Default 選項會維持為帳戶的系統[執行階段預設](#default-model-setting),直到您同時設定 [`enforceAvailableModels`](#enforce-the-allowlist-for-the-default-model)。如果該預設是您想要限制的模型,請一併設定 `enforceAvailableModels`,或[封鎖該模型](#block-specific-models-or-versions)。

214 316 

215空的 `availableModels` 陣列永遠不會啟用「預設」模型強制執行:使用 `availableModels: []` 時,具名模型選擇會被阻止,但帳戶類型的「預設」模型無論 `enforceAvailableModels` 為何都保持可用。317使用 `availableModels: []` 時,指名的模型選擇都會被封鎖,且 `enforceAvailableModels` 不會產生作用。

216 318 

217<h3 id="enforce-the-allowlist-for-the-default-model">319<h3 id="enforce-the-allowlist-for-the-default-model">

218 對「預設」模型強制執行允許清單320 為 Default 模型強制執行允許清單

219</h3>321</h3>

220 322 

221在受管理設定中將 `enforceAvailableModels: true` 與非空的 `availableModels` 一起設定,以將允許清單擴展到「預設」選項。這需要 Claude Code v2.1.175 或更新版本。323在受管設定中,將 `enforceAvailableModels: true` 與非空的 `availableModels` 一起設定,即可將允許清單延伸至 Default 選項。這需要 Claude Code v2.1.175 或更新版本。

222 324 

223```json theme={null}325```json theme={null}

224{326{


227}329}

228```330```

229 331 

230「預設」選項解析為帳戶類型預設值,或當管理員設定了[組織預設模型](#organization-default-model)時解析為該模型。當該模型不在允許清單中時,「預設」選項會改為解析為第一個 `availableModels` 項目,該項目命名允許的、可用的模型,而 `/model` 選擇器的「預設」列會顯示該模型。這適用於到達預設值的每個位置:會話啟動、在 `/model` 中選擇「預設」、[後備模型鏈](#fallback-model-chains)中的 `"default"` 關鍵字,以及排除選擇被捨棄時使用的後備。332對於[帳戶上未記錄模型](#setting-your-model)的成員,Default 選項會解析為帳戶類型預設,或在管理員已設定時解析為[組織預設模型](#organization-default-model)。當該模型不在允許清單中時,Default 選項會改為解析為第一個指定了允許且可用模型的 `availableModels` 項目,而 `/model` 選擇器的 Default 列會顯示該模型。這適用於所有使用預設的地方:工作階段啟動、在 `/model` 中選取 Default、[備援模型鏈](#fallback-model-chains)中的 `"default"` 關鍵字,以及捨棄被排除的選擇時所使用的備援。記錄在成員帳戶上的模型也會依 `availableModels` 進行檢查;[設定您的模型](#setting-your-model)說明 Default 選項如何處理它。

231 333 

232當 `availableModels` 未設定或為空時,`enforceAvailableModels` 無效:使用 `availableModels: []` 時,帳戶類型的「預設」模型保持可用,因此該設定無法將使用者鎖定在每個模型之外。當 `availableModels` 非空但沒有項目解析為允許的、可用的模型時,強制執行會降級,「預設」會回退到帳戶類型預設值,警告僅在 `--debug` 下可見。在清單中保留至少一個保證可用的項目以避免這種情況。334`enforceAvailableModels` 僅在 `availableModels` 不為空時才會重新對應 Default 選項。當 `availableModels` 不為空,但沒有任何項目解析為允許且可用的模型時,會略過強制執行,並顯示僅在 `--debug` 下可見的警告。請在清單中至少保留一個保證可用的項目以避免這種情況。

233 335 

234在[最高優先順序受管理來源](/docs/zh-TW/settings#settings-precedence)中部署兩個鍵:管理員部署的受管理來源不會合併,因此放在受管理設定檔中的一對在管理員主控台傳遞任何設定時會被忽略。336請將這兩個設定鍵一起部署在您所傳遞的最高等級受管來源中。預設情況下,Claude Code 只會讀取該來源,因此當管理主控台傳遞任何設定時,放在受管設定檔中的這組設定會被忽略;在 [Claude Code 如何合併受管來源](/docs/zh-TW/managed-settings#how-claude-code-combines-managed-sources)中所述的選擇性合併下,Claude Code 仍會忽略來自等級低於設定 `availableModels` 之來源的 `modelOverrides` 對應。

235 337 

236<h3 id="control-the-model-users-run-on">338<h3 id="control-the-model-users-run-on">

237 控制使用者執行的模型339 控制使用者執行的模型

238</h3>340</h3>

239 341 

240`model` 設定是初始選擇,而非強制執行。它設定會話啟動時哪個模型處於活動狀態,但使用者仍然可以開啟 `/model` 並選擇「預設」,這會解析為系統的[執行時預設](#default-model-setting),無論 `model` 設定為何,除非 [`enforceAvailableModels`](#enforce-the-allowlist-for-the-default-model) 重新導向它。342`model` 設定是初始選擇,而非強制執行。它會設定工作階段啟動時使用的模型,但使用者仍可開啟 `/model` 並選擇 Default,而 Default 會解析為系統的[執行階段預設](#default-model-setting),不論 `model` 設定為何,除非 [`enforceAvailableModels`](#enforce-the-allowlist-for-the-default-model) 或[封鎖特定版本的設定鍵](#block-specific-models-or-versions)對其適用。

241 343 

242若要完全控制模型體驗,請結合這些設定:344若要完整控制模型體驗,請結合下列設定:

243 345 

244* **`availableModels`**:限制使用者可以切換到的具名模型346* **`availableModels`**:限制使用者可以切換的指名模型

245* **`enforceAvailableModels`**:將 `availableModels` 允許清單擴展到「預設」選項,因此「預設」無法解析為清單外的模型347* **`enforceAvailableModels`**:將 `availableModels` 允許清單延伸至 Default 選項,使 Default 無法解析為清單以外的模型

246* **`model`**:設定會話啟動時的初始模型選擇348* **`deniedModels`** 與 **`availableModelsMatch`**:[封鎖特定版本](#block-specific-models-or-versions),這些版本原本會被某個 `availableModels` 項目所允許

247* **`ANTHROPIC_DEFAULT_SONNET_MODEL`** / **`ANTHROPIC_DEFAULT_OPUS_MODEL`** / **`ANTHROPIC_DEFAULT_HAIKU_MODEL`** / **`ANTHROPIC_DEFAULT_FABLE_MODEL`**:控制「預設」選項以及 `sonnet`、`opus`、`haiku` 和 `fable` 別名解析為什麼349* **`model`**:設定工作階段啟動時的初始模型選擇

350* **`ANTHROPIC_DEFAULT_SONNET_MODEL`** / **`ANTHROPIC_DEFAULT_OPUS_MODEL`** / **`ANTHROPIC_DEFAULT_HAIKU_MODEL`** / **`ANTHROPIC_DEFAULT_FABLE_MODEL`**:控制 `sonnet`、`opus`、`haiku` 與 `fable` 別名所解析的目標,以及[帳戶類型預設](#default-model-setting)所使用的版本

248 351 

249此範例在 Sonnet 4.5 上啟動使用者,將選擇器限制為 Sonnet 和 Haiku,並確保「預設」解析為允許清單上的模型,而不是層級預設值:352此範例讓使用者以 Sonnet 4.5 開始,將選擇器限制為 Sonnet 與 Haiku,並確保 Default 解析為允許清單上的模型,而非層級預設:

250 353 

251```json theme={null}354```json theme={null}

252{355{


259}362}

260```363```

261 364 

262沒有 `enforceAvailableModels` 或 `env` 區塊,在選擇器中選擇「預設」的使用者會獲得其層級的最新版本,繞過 `model` 和 `availableModels` 中的版本固定。這兩個設定涵蓋不同的範圍:`enforceAvailableModels` 使「預設」遵守允許清單,而 `env` 區塊固定允許的別名(例如 `sonnet`)解析為哪個版本。當限制模型系列就足夠時,單獨使用 `enforceAvailableModels`;當您還需要固定特定版本時,新增 `env` 區塊。365若沒有 `enforceAvailableModels` 或 `env` 區塊,在選擇器中選取 Default 的使用者會取得[執行階段預設](#default-model-setting),而不是 `model` 中固定的版本。這兩項設定涵蓋不同的範圍:`enforceAvailableModels` 讓 Default 遵循允許清單,而 `env` 區塊則固定允許的別名(例如 `sonnet`)所解析的版本。若僅限制模型系列就已足夠,請單獨使用 `enforceAvailableModels`;若您還需要固定特定版本,請加上 `env` 區塊。

263 366 

264<h3 id="merge-behavior">367<h3 id="merge-behavior">

265 合併行為368 合併行為

266</h3>369</h3>

267 370 

268當[最高優先順序受管理設定來源](/docs/zh-TW/server-managed-settings#settings-precedence)定義 `availableModels` 時,該清單單獨適用:使用者、專案或本機設定中的項目無法擴展它,而管理員部署的受管理來源不會彼此合併,因此在伺服器管理設定傳遞任何鍵時,部署在受管理設定檔中的清單會被忽略。否則,來自使用者、專案和本機設定的清單會像其他陣列設定一樣[連接和去重](/docs/zh-TW/settings#settings-precedence)。自 Claude Code v2.1.175 起,受管理清單會取代較低優先順序的項目;較早版本會合併它們。371當 Claude Code 套用的受管設定定義了 `availableModels` 時,只會套用該清單,[自行提供清單的主機平台](/docs/zh-TW/settings#exceptions-to-managed-settings-precedence)除外:使用者、專案或本機設定中的項目無法擴充它,且 Claude Code 也絕不會跨受管來源合併 `availableModels`;[Claude Code 如何合併受管來源](/docs/zh-TW/managed-settings#how-claude-code-combines-managed-sources)說明套用哪個來源的清單。否則,來自使用者、專案與本機設定的清單會如同其他陣列設定一樣[串接並去除重複](/docs/zh-TW/settings#settings-precedence)。在 Claude Code v2.1.175 之前,來自較低優先順序範圍的項目會合併至受管清單,而不是被其取代。

269 372 

270在有效清單中,命名系列中特定模型的項目(無論是版本前綴還是完整模型 ID)會停用該系列的萬用字元項目:`["sonnet", "claude-sonnet-4-5"]` 只允許 Sonnet 4.5 版本,而不是每個 Sonnet 模型。373在有效清單中,指定某系列中特定模型的項目(無論是版本前綴或完整模型 ID)會停用該系列的萬用字元項目:`["sonnet", "claude-sonnet-4-5"]` 只允許 Sonnet 4.5 版本,而不是所有 Sonnet 模型。

271 374 

272<h3 id="mantle-model-ids">375<h3 id="mantle-model-ids">

273 Mantle 模型 ID376 Mantle 模型 ID

274</h3>377</h3>

275 378 

276當[Amazon Bedrock Mantle 端點](/docs/zh-TW/amazon-bedrock#use-the-mantle-endpoint)啟用時,`availableModels` 中以 `anthropic.` 開頭的項目會作為自訂選項新增到 `/model` 選擇器,並路由到 Mantle 端點。這是[為第三方部署固定模型](#pin-models-for-third-party-deployments)中描述的別名符合的例外。該設定仍然將選擇器限制為列出的項目,而 Mantle ID 嵌入系列名稱,因此它計為特定項目並停用該系列的萬用字元:在任何 Mantle ID 旁邊,列出您想要保持可選擇的版本前綴或完整 ID。請參閱[合併行為](#merge-behavior)。379啟用 [Amazon Bedrock Mantle 端點](/docs/zh-TW/amazon-bedrock#use-the-mantle-endpoint)時,`availableModels` 中以 `anthropic.` 開頭的項目會以自訂選項的形式加入 `/model` 選擇器,並路由至 Mantle 端點。這是[為第三方部署固定模型](#pin-models-for-third-party-deployments)中所述別名比對的例外。該設定仍會將選擇器限制為列出的項目,而且 Mantle ID 內嵌了系列名稱,因此會被視為特定項目並停用該系列的萬用字元:除了任何 Mantle ID 之外,請列出您希望保持可選取的版本前綴或完整 ID。請參閱[合併行為](#merge-behavior)。

380 

381<h3 id="block-specific-models-or-versions">

382 封鎖特定模型或版本

383</h3>

384 

385`claude-opus-5` 這類 `availableModels` 項目,一旦 Claude Code 支援延伸它的後續版本(例如 Opus 5.5),也會允許這些版本。有兩個受管設定可讓您暫緩某個版本,且兩者都需要 Claude Code v2.1.283 或更新版本:

386 

387* [`deniedModels`](/docs/zh-TW/settings-reference#deniedmodels):列出要封鎖的模型。列出的模型即使 `availableModels` 允許也會被封鎖,且此設定鍵在完全沒有允許清單時也能運作。沒有任何項目封鎖的版本會維持允許

388* [`availableModelsMatch`](/docs/zh-TW/settings-reference#availablemodelsmatch):將其設定為 `"exact"`,使 `availableModels` 中的每個模型 ID 僅允許其所指定的版本。如此一來,列出的模型 ID 的較新版本會維持封鎖,直到您將其加入清單

389 

390較早的版本會忽略這兩個設定鍵,因此請一併設定 [`requiredMinimumVersion`](/docs/zh-TW/settings-reference#requiredminimumversion) 以防止這些版本啟動。

391 

392此範例允許 Opus 與 Sonnet 模型,並封鎖所有寫法的 Opus 5.5,包括帶日期與提供者專屬的 ID:

393 

394```json theme={null}

395{

396 "availableModels": ["opus", "sonnet"],

397 "deniedModels": ["claude-opus-5-5"]

398}

399```

400 

401被封鎖的模型(無論是 `deniedModels` 指名的,或是 `"exact"` 清單所省略的)在[允許清單適用](#restrict-model-selection)的所有位置都會被視為被封鎖的選擇。它會從 `/model` 選擇器中隱藏,且 `/model <name>` 會拒絕它。如果您透過 `--model`、`ANTHROPIC_MODEL` 或 `model` 設定指定被封鎖的模型 ID,Claude Code 會在啟動時捨棄它,改為解析 Default 選項。如果 [hook](/docs/zh-TW/hooks) 或背景請求指定了 `deniedModels` 封鎖的模型(例如 agent hook 的 `model` 欄位),該請求會改以工作階段的模型執行。

402 

403Default 選項同樣遵循這兩個設定鍵,無論您是否設定 [`enforceAvailableModels`](#enforce-the-allowlist-for-the-default-model)。如果您將其與非空的 `availableModels` 一起設定,被封鎖的預設會被視為允許清單以外的模型。否則,會解析為被封鎖模型的 Default 選項將依下列順序降級:

404 

4051. 同一系列中允許的最新版本

4062. 依序為每個較低成本系列中允許的最新模型:先 Sonnet,再 Haiku

4073. 第一個指定了允許模型的 `availableModels` 項目

408 

409如果上述皆不被允許,以 Default 選項啟動的工作階段會[拒絕啟動](/docs/zh-TW/errors#managed-settings-block-the-default-model),並顯示指出需修正之設定鍵的錯誤。`"exact"` 清單僅在受管的 `availableModels` 清單至少指定一個模型或系列時,才會影響 Default 選項。

410 

411Claude Code 僅從受管設定讀取這兩個設定鍵。如果您在使用者、專案或本機設定中,或透過 `--settings` 設定其中任一項,Claude Code 會忽略它並顯示警告。

277 412 

278<h3 id="organization-model-restrictions">413<h3 id="organization-model-restrictions">

279 組織模型限制414 組織模型限制

280</h3>415</h3>

281 416 

282Claude Enterprise 計畫上的組織管理員透過在 claude.ai 管理員主控台中停用個別模型來限制成員可以執行的模型。此限制在 Claude Code 驗證時與帳戶的權利一起傳遞,與設定中的任何 `availableModels` 清單分開,而伺服器在建立會話時獨立強制執行相同的限制。需要 Claude Code v2.1.187 或更新版本。417Claude Enterprise 方案的組織管理員可以在 claude.ai 管理主控台中停用個別模型,藉此限制成員可以執行的模型。此限制會在 Claude Code 驗證時隨帳戶的權利一併傳遞,與設定中的任何 `availableModels` 清單分開,且伺服器在建立工作階段時也會獨立強制執行相同的限制。需要 Claude Code v2.1.187 或更新版本。

283 418 

284當成員登入或使用自己的 API 金鑰時,限制適用。組織範圍的認證(例如組織服務金鑰)未與使用者相關聯,因此限制不適用於它們。419此限制適用於成員登入或使用自己的 API 金鑰時。組織範圍的憑證(例如組織服務金鑰)不與使用者綁定,因此限制不適用於這些憑證。

285 420 

286Claude Console 沒有模型限制控制。沒有 Claude Enterprise 計畫的組織(包括其成員透過 Anthropic API 進行驗證的組織)改為在[受管理設定](/docs/zh-TW/settings#settings-files)中使用 [`availableModels`](#restrict-model-selection) 限制模型,新增 [`enforceAvailableModels`](#enforce-the-allowlist-for-the-default-model) 以涵蓋「預設」選項。這些設定由 Claude Code 本身強制執行,而不是由伺服器強制執行。421Claude Console 沒有模型限制控制項。沒有 Claude Enterprise 方案的組織(包括其成員透過 Anthropic API 驗證的組織),請改用[受管設定](/docs/zh-TW/managed-settings)中的 [`availableModels`](#restrict-model-selection) 來限制模型,並加上 [`enforceAvailableModels`](#enforce-the-allowlist-for-the-default-model) 以涵蓋 Default 選項。[使用介面涵蓋範圍](#surface-coverage)說明每個使用介面如何接收並強制執行這些設定。

287 422 

288受限制的模型會從 `/model` 選擇器中隱藏。使用 `--model`、`ANTHROPIC_MODEL` 環境變數或 `model` 設定按名稱選擇它會顯示通知 `Model "<name>" is restricted by your organization's settings. Using <model> instead.`,會話會在允許的模型上啟動。為受限制的模型輸入 `/model <name>` 會被拒絕,並顯示 `Model '<name>' is restricted by your organization's settings. Run /model to choose a different model.`,會話會保持其目前模型。423受限制的模型會從 `/model` 選擇器中隱藏。透過 `--model`、`ANTHROPIC_MODEL` 環境變數或 `model` 設定以名稱選取它時,會顯示通知 `Model "<name>" is restricted by your organization's settings. Using <model> instead.`,且工作階段會以允許的模型啟動。針對受限制的模型輸入 `/model <name>` 會被拒絕,並顯示 `Model '<name>' is restricted by your organization's settings. Run /model to choose a different model.`,工作階段會保留其目前的模型。

289 424 

290[模型系列別名](#restrict-model-selection)(例如 `opus`)解析為組織允許的其系列的最新版本,具有相同的替代通知。`/model <alias>` 只有在其系列的每個版本都被限制時才會被拒絕;使用 `--model`、`ANTHROPIC_MODEL` 或 `model` 設定設定的別名在該情況下仍在啟動時被替換。在 v2.1.205 之前,系列別名是根據其最新發佈版本單獨進行替代或拒絕的,即使允許了較舊版本。425`opus` 這類[模型系列別名](#restrict-model-selection)在組織允許時會解析為其一般對應的模型。當組織限制該模型時,Claude Code 會改用組織所允許的該系列最新版本,並顯示相同的替代通知。只有在其系列的所有版本都受限制時,`/model <alias>` 才會被拒絕;在這種情況下,透過 `--model`、`ANTHROPIC_MODEL` 或 `model` 設定的別名仍會在啟動時被替換。在 v2.1.205 之前,系列別名僅依其最新發行版本來決定替代或拒絕,即使允許較舊的版本也是如此。

291 426 

292限制適用於組織範圍或按角色:427限制可套用於整個組織或依角色套用:

293 428 

294* 在組織層級停用模型會將其移除給每個成員。429* 在組織層級停用某個模型,會對所有成員移除該模型。

295* 角色級別存取為不同的自訂角色授予不同的模型,持有多個角色的成員可以使用其任何角色授予的模型。430* 角色層級存取權會將不同模型授予不同的自訂角色,而擁有多個角色的成員可以使用其任一角色所授予的任何模型。

296* Haiku 模型始終可用,無法停用,因此每個成員至少保留一個可用模型。431* Haiku 模型永遠可用且無法停用,因此每位成員至少保有一個可用的模型。

297* 存取變更在約一分鐘內對新請求生效;`/model` 選擇器在下次會話啟動時反映它。432* 存取權變更會在約一分鐘內對新請求生效;`/model` 選擇器則會在下一次工作階段啟動時反映變更。

298 433 

299這兩個限制組合:只有當模型被 `availableModels` 允許且未被組織限制時,它才可選擇。組織限制會傳遞到 Anthropic API 和 [LLM 閘道](/docs/zh-TW/llm-gateway)部署上的會話。Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 和 AWS 上的 Claude Platform 上的會話不接收它們,因此請改為在這些提供者上使用 `availableModels`。434兩種限制會同時套用:只有在模型被 `availableModels` 允許且未被組織限制時,才可選取該模型。組織限制僅適用於 Anthropic API 與 [LLM 閘道](/docs/zh-TW/llm-gateway)部署上的工作階段;在其他任何提供者上,請改用 `availableModels`。

300 435 

301<h2 id="organization-default-model">436<h2 id="organization-default-model">

302 組織預設模型437 組織預設模型

303</h2>438</h2>

304 439 

305Claude Enterprise 計畫上的組織管理員可以從 claude.ai 管理員主控台為 Claude Code 成員設定預設模型,適用於整個組織或按自訂角色。設定後,「預設」選項會解析為該模型,而不是[帳戶類型預設](#default-model-setting)。需要 Claude Code v2.1.196 或更新版本。440Claude Enterprise 方案的組織管理員可以從 claude.ai 管理主控台為 Claude Code 成員設定預設模型,適用於整個組織或個別自訂角色。設定後,Default 選項會解析為該模型。需要 Claude Code v2.1.196 或更新版本。

306 441 

307`/model` 選擇器中的「預設」列會顯示組織預設值的名稱,標籤為「Org default」。無論管理員是為整個組織還是為您的角色設定預設值,標籤都會讀取「Org default」。角色預設值涵蓋該自訂角色的成員,並優先於組織範圍的預設值;當您的多個角色設定不同的預設值時,最強大的模型適用。442`/model` 選擇器中的 Default 列會顯示組織預設模型的名稱,並標示 Org default。無論管理員是為整個組織還是為您的角色設定預設值,標籤都會顯示 Org default。角色預設值涵蓋該自訂角色的成員,並優先於全組織的預設值;當您的多個角色設定了不同的預設值時,會套用能力最強的模型。

308 443 

309組織預設值是起點,而非限制,任何其他模型選擇都優先於它:444組織預設值是一個起點,而非限制。以下選擇優先於組織預設值:

310 445 

311* `--model` 旗標和 `ANTHROPIC_MODEL` 環境變數446* `--model` 旗標與 `ANTHROPIC_MODEL` 環境變數

312* [受管理設定](/docs/zh-TW/settings#settings-files)中的 `model` 值或透過 `--settings` 提供447* [受管設定](/docs/zh-TW/managed-settings)中的 `model` 值,或透過 `--settings` 提供的 `model` 值

313* 您的使用者、專案或本機設定中的 `model` 值,包括您使用 `/model` 儲存的模型448* 您的使用者、專案或本機設定中的 `model` 值,包括您透過 `/model` 儲存的模型

314 449 

315管理員也可以配置組織預設值以覆蓋使用者選擇。啟用覆蓋後,它優先於使用者、專案和本機設定中的 `model` 值,因此您使用 `/model` 儲存的模型適用於目前會話,組織預設值在下次啟動時返回。當您的選擇不同時,`/model` 會顯示 `Your organization's default (<model>) applies on restart`。`--model` 旗標、`ANTHROPIC_MODEL`、受管理設定和 `--settings` 即使啟用覆蓋也仍然優先。覆蓋可用於有限的組織集合;詢問您的 Anthropic 帳戶團隊有關可用性。450管理員也可以將組織預設值設定為覆寫使用者的選擇。啟用覆寫後,組織預設值會優先於使用者、專案與本機設定中的 `model` 值,因此您透過 `/model` 儲存的模型只會套用於目前的工作階段,下次啟動時會恢復為組織預設值。當您的選擇不同時,`/model` 會顯示 `Your organization's default (<model>) applies on restart`。即使啟用覆寫,`--model` 旗標、`ANTHROPIC_MODEL`、受管設定與 `--settings` 仍然優先。

316 451 

317若要限制成員可以選擇的模型,請改用[組織模型限制](#organization-model-restrictions)或 [`availableModels`](#restrict-model-selection)。452若要限制成員可選擇的模型,請改用[組織模型限制](#organization-model-restrictions)或 [`availableModels`](#restrict-model-selection)。

318 453 

319Claude Code 在啟動時讀取組織預設值一次,因此管理員在會話中途變更的預設值在下次啟動時生效。454Claude Code 只會在啟動時讀取一次組織預設值,因此管理員在工作階段期間變更的預設值會在下次啟動時生效。

320 455 

321當組織預設值不覆蓋使用者選擇時,管理員變更後的第一次互動式啟動會從您的使用者設定中清除 `model` 鍵一次,以便新預設值適用。它不改變檔案中的任何其他內容,您在該啟動後使用 `/model` 儲存的模型會被保留。456當組織預設值未覆寫使用者選擇時,管理員變更預設值後的第一次互動式啟動會從您的使用者設定中清除一次 `model` 鍵,讓新的預設值生效。此操作不會變更檔案中的其他任何內容,而您在該次啟動之後透過 `/model` 儲存的模型會被保留。

322 457 

323組織預設值在被採用前會通過與任何其他「預設」模型相同的限制檢查:458組織預設值在被採用之前,會經過以下限制檢查:

324 459 

325* [`availableModels`](#restrict-model-selection) 本身永遠不會限制「預設」選項,因此允許清單外的組織預設值仍然適用。當也設定了 [`enforceAvailableModels`](#enforce-the-allowlist-for-the-default-model) 時,允許清單外的組織預設值會重新對應到第一個允許清單項目,就像任何其他「預設」一樣460* 在預設的前綴比對下,單獨使用 [`availableModels`](#restrict-model-selection) 不會套用於組織預設值,因此不在允許清單中的組織預設值仍會套用。若同時設定了 [`enforceAvailableModels`](#enforce-the-allowlist-for-the-default-model),不在允許清單中的組織預設值也會被重新對應至允許清單中的第一個項目

326* [組織模型限制](#organization-model-restrictions)拒絕的組織預設值會被替換為其系列中最新的允許模型,或當該系列的每個版本都被限制時被替換為較低成本的系列461* 若[組織模型限制](#organization-model-restrictions)拒絕您的帳戶使用組織預設模型,該模型會被替換為同一系列中最新的允許模型;若該系列的所有版本都受到限制,則替換為成本較低的系列

327* 對您的帳戶完全不可用的組織預設值,例如[零資料保留](/docs/zh-TW/zero-data-retention)下的 Fable 5,會被跳過,「預設」選項會解析為帳戶類型預設值462* 關於被 `deniedModels` 或 `"exact"` 清單封鎖的組織預設值,請參閱[封鎖特定模型或版本](#block-specific-models-or-versions)

463* 若組織預設模型完全無法供您的帳戶使用,則會被略過,而 Default 選項會如同[沒有組織預設值](#default-model-setting)時一樣進行解析

328 464 

329自 v2.1.199 起,當組織預設值是與您帳戶類型的常用預設值不同的模型系列時,`/model` 選擇器會為該常用系列保留一個單獨的列,因此您仍然可以為會話切換到它。在 v2.1.196 至 v2.1.198 中,該列在選擇器中缺失。465自 v2.1.199 起,當組織預設值與您帳戶類型的一般預設值屬於不同的模型系列時,`/model` 選擇器會為該一般系列保留獨立的一列,讓您仍可在工作階段中切換至該系列。在 v2.1.196 至 v2.1.198 中,選擇器中沒有該列。

330 466 

331組織預設值會傳遞到使用 Anthropic API 進行驗證的會話。[LLM 閘道](/docs/zh-TW/llm-gateway)部署、Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 和 [AWS 上的 Claude Platform](/docs/zh-TW/claude-platform-on-aws) 上的會話不接收它。若要在這些部署上設定預設值,請改用[受管理設定](/docs/zh-TW/settings#settings-files)中的 `model` 鍵。467組織預設值僅適用於透過 Anthropic API 驗證的工作階段。若要在其他任何地方設定預設值,包括 [LLM 閘道](/docs/zh-TW/llm-gateway)部署,請改用[受管設定](/docs/zh-TW/managed-settings)中的 `model` 鍵。

332 468 

333<h2 id="organization-effort-limits">469<h2 id="organization-effort-limits">

334 組織努力限制470 組織 effort 限制

335</h2>471</h2>

336 472 

337Claude Enterprise 計畫上的組織管理員可以為每個自訂角色設定每個模型的最大[努力等級](#adjust-effort-level),以及角色級別[組織模型限制](#organization-model-restrictions)。超過上限的等級不會在 `/effort` 選擇器中提供,使用 `--effort` 或 `/effort` 命名更高等級會改為在上限處執行。在互動式會話和純文字 `--print` 執行中,警告會命名所要求和應用的等級;使用 `json` 或 `stream-json` 輸出或在背景代理中,限制會無聲地應用。上限是按模型的,因此切換模型可以改變哪些等級可用。當您的多個角色授予相同的模型時,最寬鬆的上限適用。需要 Claude Code v2.1.195 或更新版本。473您的組織可以透過兩種方式限制 [effort 等級](#adjust-effort-level)。在 Claude Enterprise 方案中,組織管理員可設定各角色的 effort 限制,詳見下文。在任何方案與任何供應商上,包括 Amazon Bedrock、Google Cloud 的 Agent Platform 以及 Microsoft Foundry,[`maxEffortLevel`](/docs/zh-TW/settings-reference#maxeffortlevel) 受管設定則改為在用戶端限制 effort。當兩者同時適用於某個模型時,將套用較低的上限。

338 474 

339努力限制與[組織模型限制](#organization-model-restrictions)一起傳遞,並遵循相同的提供者可用性:Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 和 [AWS 上的 Claude Platform](/docs/zh-TW/claude-platform-on-aws) 上的會話不接收它們。475Claude Enterprise 方案的組織管理員可以為每個自訂角色,針對各模型設定最高 [effort 等級](#adjust-effort-level),並搭配角色層級的[組織模型限制](#organization-model-restrictions)。高於上限的等級不會出現在 `/effort` 選擇器中,而透過 `--effort` 或 `/effort` 指定更高等級時,則會改以上限等級執行。在互動式工作階段與純文字 `--print` 執行中,會顯示一則警告,列出所要求的等級與實際套用的等級;若使用 `json` 或 `stream-json` 輸出,或在背景 agent 中,則會靜默套用限制。上限是以模型為單位,因此切換模型可能會改變可用的等級。當您的多個角色授予同一個模型時,將套用限制最寬鬆的上限。需要 Claude Code v2.1.195 或更新版本。

476 

477Effort 限制會與[組織模型限制](#organization-model-restrictions)一同傳送,並套用至相同的工作階段。

340 478 

341<h2 id="special-model-behavior">479<h2 id="special-model-behavior">

342 特殊模型行為480 特殊模型行為


348 486 

349`default` 的行為取決於您的帳戶類型:487`default` 的行為取決於您的帳戶類型:

350 488 

351* **Max、Team Premium、Enterprise 隨用隨付和 Anthropic API**:預設為 Opus 4.8489* **Pro、Max、Team、Enterprise 和 Anthropic API**:預設為 Opus 5.5

352* **AWS 上的 Claude Platform、Amazon Bedrock 和 Google Cloud 的 Agent Platform**:預設為 Opus 4.8490* **Claude Platform on AWS、Amazon Bedrock 和 Google Cloud's Agent Platform**:預設為 Opus 5.5

353* **Pro、Team Standard 和 Enterprise 訂閱席位**:預設為 Sonnet 5

354* **Microsoft Foundry**:預設為 Sonnet 4.5491* **Microsoft Foundry**:預設為 Sonnet 4.5

355 492 

356Enterprise 隨用隨付是指按使用量計費而非按訂閱席位計費的 Enterprise 組織。493在 v2.1.280 之前,`default` 在 Pro 和 Team Standard 上解析為 Sonnet 5;自 v2.1.219 起,在 Max、Team Premium、Enterprise、Anthropic API、Claude Platform on AWS、Amazon Bedrock 和 Google Cloud's Agent Platform 上解析為 Opus 5。在 v2.1.219 之前,自 v2.1.154 起,`default` 在 Anthropic API、Max、Team Premium 和 Enterprise 隨用隨付方案上解析為 Opus 4.8;自 v2.1.207 起,在 Claude Platform on AWS、Amazon Bedrock 和 Google Cloud's Agent Platform 上也解析為 Opus 4.8。在 v2.1.207 之前,`default` 在 Claude Platform on AWS 上解析為 Opus 4.7,在 Amazon Bedrock 和 Google Cloud's Agent Platform 上解析為 Sonnet 4.5。

357 

358在 v2.1.207 之前,`default` 在 AWS 上的 Claude Platform 上解析為 Opus 4.7,在 Amazon Bedrock 和 Google Cloud 的 Agent Platform 上解析為 Sonnet 4.5。

359 494 

360當管理員設定了[組織預設模型](#organization-default-model)時,`default` 會解析為該模型,而不是上述帳戶類型預設值。需要 Claude Code v2.1.196 或更新版本。495當管理員設定了[組織預設模型](#organization-default-model)時,`default` 會解析為該模型,而非上述的帳戶類型預設值。需要 Claude Code v2.1.196 或更新版本。在其章節所列的條件下,`default` 也可能解析為您透過 [`ANTHROPIC_DEFAULT_MODEL`](#set-a-default-model-for-new-sessions) 設定的模型,或解析為[記錄在您帳戶上](#setting-your-model)的模型。

361 496 

362當受管設定[強制執行 Default 模型的允許清單](#enforce-the-allowlist-for-the-default-model)且帳戶類型預設不在 `availableModels` 中時,`default` 會解析為強制執行的 Default,而不是上述帳戶類型預設。當兩者都適用時,組織預設值首先取代帳戶類型預設值,然後強制執行適用於它:允許清單上的組織預設值會被保留,而清單外的會解析為強制執行的 Default。497當您的帳戶上沒有記錄任何模型、受管設定[對 Default 模型強制執行允許清單](#enforce-the-allowlist-for-the-default-model),且帳戶類型預設值不在 `availableModels` 中時,`default` 會解析為強制執行的 Default,而非上述的帳戶類型預設值。當組織預設值與強制執行同時適用時,組織預設值會先取代帳戶類型預設值,接著再對其套用強制執行:位於允許清單內的組織預設值會保留,而不在清單內的則會解析為強制執行的 Default。

363 498 

364Fable 5 不是任何帳戶類型的預設模型。會話僅在您選擇 Fable 5 後才使用它,使用 `/model fable`、`model` 設定或 `best` 別名(其中 Fable 5 可用)。使用 `/model` 選擇它會將其儲存為您使用者設定中的選定模型,因此後續會話會在 Fable 5 上啟動,直到您變更模型。499在任何方案或供應商上,Fable 模型都不是帳戶類型預設值。使用 `/model` 選擇其中一個模型時,會將其儲存為您使用者設定中的所選模型,因此之後的工作階段都會以該模型啟動。關於 Claude Code 在 v2.1.257 中對已儲存的 Fable 5 選擇所做的一次性變更,請參閱[使用 Fable](#work-with-fable)。

365 500 

366<h3 id="opusplan-model-setting">501<h3 id="opusplan-model-setting">

367 `opusplan` 模型設定502 `opusplan` 模型設定

368</h3>503</h3>

369 504 

370`opusplan` 模型別名提供了一種自動化的混合方法:505`opusplan` 模型別名提供一種自動化的混合方式:

371 506 

372* **在 Plan Mode 中**:使用 `opus` 進行複雜推理和架構決策507* **在 plan mode 中**:使用 `opus` 進行複雜推理和架構決策

373* **在執行模式中**:自動切換到 `sonnet` 進行程式碼生成和實現508* **在執行模式中**:自動切換至 `sonnet` 進行程式碼產生與實作

374 509 

375這為您提供了兩全其美的方案:Opus 優越的推理能力用於計畫,Sonnet 的效率用於執行。510這種方式將 Opus 在規劃上的推理能力與 Sonnet 在執行上的效率結合在一起。

376 511 

377Plan Mode Opus 階段使用與 `opus` 模型設定相同的 context window。在訂閱層級上,Opus 會[自動升級到 1M context](#extended-context),`opusplan` 在 Plan Mode 中也會獲得升級。若要在您不在自動升級層級上時強制兩個階段都使用 1M context,請將模型設定為 `opusplan[1m]`。512plan mode 的 Opus 階段使用與 `opus` 模型設定相同的上下文視窗,而執行階段則使用與 `sonnet` 相同的視窗。當 `opus` 和 `sonnet` 解析為預設以 [1M 上下文視窗](#extended-context)執行的模型時(如目前 Anthropic API 上的模型),兩個階段都會以 1M 視窗執行。若要在不是這種情況時為兩個階段請求 1M 上下文,請將[模型設定](#setting-your-model)為 `opusplan[1m]`,例如使用 `/model opusplan[1m]`。使用 `/model` 設定需要 Claude Code v2.1.265 或更新版本;在較早的版本上,請改用 `--model` 旗標或 `model` 設定。

378 513 

379當 [`availableModels`](#restrict-model-selection) 排除最新的 Opus 但允許較舊版本時,例如 `["sonnet", "claude-opus-4-6"]`,`opusplan` 會為計畫使用最新允許的 Opus,並且僅在排除每個 Opus 時才保持在 Sonnet 上。通常會在 Plan Mode 中升級到 Sonnet 的 Haiku 會話同樣會使用最新允許的 Sonnet,並且僅在排除每個 Sonnet 時才保持在 Haiku 上。在 v2.1.205 之前,當排除升級系列的最新版本時,Plan Mode 會保持在會話的模型上,即使允許清單允許較舊版本。514當 [`availableModels`](#restrict-model-selection) 排除了最新的 Opus 但允許較舊版本時(例如 `["sonnet", "claude-opus-4-6"]`),`opusplan` 會使用允許的最新 Opus 進行規劃,只有在所有 Opus 都被排除時才會維持使用 Sonnet。同樣地,通常會在 plan mode 中升級為 Sonnet 的 Haiku 工作階段,會使用允許的最新 Sonnet,只有在所有 Sonnet 都被排除時才會維持使用 Haiku。在 v2.1.205 之前,只要升級家族的最新版本被排除,即使允許清單允許較舊版本,plan mode 也會維持使用工作階段的模型。

380 515 

381較舊允許版本的替換適用於 Anthropic API 和 [Claude Platform on AWS](/docs/zh-TW/claude-platform-on-aws)。在 Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 和 Mantle 上,其部署使用提供者特定的模型 ID,當升級模型被排除時,Plan Mode 會保持在會話的模型上。516以較舊的允許版本替代的行為適用於 Anthropic API 和 [Claude Platform on AWS](/docs/zh-TW/claude-platform-on-aws)。在 Amazon Bedrock、Google Cloud's Agent Platform、Microsoft Foundry 和 Mantle 上,由於其部署使用供應商專屬的模型 ID,只要升級模型被排除,plan mode 就會維持使用工作階段的模型。

382 517 

383如需混合方法,其中 Claude 在任務中途決定何時諮詢第二個模型,而不是在計畫邊界處切換,請參閱 [advisor tool](/docs/zh-TW/advisor)。518若想採用由 Claude 在任務進行中自行決定何時諮詢第二個模型、而非在規劃邊界切換的混合方式,請參閱 [advisor 工具](/docs/zh-TW/advisor)。

384 519 

385<h3 id="fallback-model-chains">520<h3 id="fallback-model-chains">

386 回退模型鏈521 備援模型鏈

387</h3>522</h3>

388 523 

389當主要模型過載、不可用或傳回另一個不可重試的伺服器錯誤時,Claude Code 可以切換到回退模型,而不是使請求失敗。驗證、計費、速率限制、請求大小和傳輸錯誤永遠不會觸發切換;這些遵循其正常的重試和錯誤處理。524當主要模型過載、無法使用,或傳回其他不可重試的伺服器錯誤時,Claude Code 可以切換至備援模型,而不是讓請求失敗。身分驗證、計費、速率限制、請求大小和傳輸錯誤,以及[被您組織的政策檢查拒絕](/docs/zh-TW/errors#automatic-retries),都不會觸發切換;這些情況會依照其一般的重試和錯誤處理方式進行。當 [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 確實會切換,因為它將此視為模型無法使用,而非身分驗證錯誤。

390 525 

391配置一個或多個回退模型,Claude Code 會按順序嘗試它們,在切換時顯示通知。切換僅持續目前輪次,因此您的下一條訊息會再次首先嘗試主要模型。鏈在重複移除後限制為三個模型,額外項目會被忽略。526設定一個或多個備援模型後,Claude Code 會依序嘗試這些模型,並在切換時顯示通知。切換僅在目前回合內有效,因此您的下一則訊息會再次優先嘗試主要模型。Claude Code 在移除重複項目後,將模型鏈上限設為三個模型,並忽略多餘的項目。

392 527 

393使用 `--fallback-model` 旗標為一個會話設定鏈,該旗標接受逗號分隔的清單:528使用 `--fallback-model` 旗標為單一工作階段設定模型鏈,此旗標接受以逗號分隔的清單:

394 529 

395```bash theme={null}530```bash theme={null}

396claude --fallback-model sonnet,haiku531claude --fallback-model sonnet,haiku

397```532```

398 533 

399若要在會話間持續保存鏈,請在 [settings](/docs/zh-TW/settings) 中設定 `fallbackModel` 為陣列:534若要在工作階段之間保留模型鏈,請在[設定](/docs/zh-TW/settings)中將 `fallbackModel` 設定為陣列:

400 535 

401```json theme={null}536```json theme={null}

402{537{


404}539}

405```540```

406 541 

407`--fallback-model` 旗標優先於 `fallbackModel` 設定。每個元素接受模型名稱或別名,`"default"` 會展開為預設模型。542`--fallback-model` 旗標優先於 `fallbackModel` 設定。每個項目都接受模型名稱或別名,而 `"default"` 會展開為預設模型。

543 

544Claude Code 在啟動時不會確認模型鏈,`/status` 也不會顯示它。發生切換時顯示的通知,是已設定備援的第一個可見跡象。

545 

546當請求進行容錯移轉時,Claude Code 會依序嘗試每個項目,直到其中一個接受請求為止。同樣無法連線的項目(例如在設定中釘選的已淘汰模型)也會以相同方式移轉至下一個項目。Claude Code 會在開始依序嘗試之前移除兩類項目:

408 547 

409兩種情況會導致元素被跳過:548* **不在允許清單內**:Claude Code 在讀取模型鏈時,會捨棄任何未被 [`availableModels`](#restrict-model-selection) 允許的項目。

549* **壓縮期間上下文視窗較小**:模型鏈也涵蓋[壓縮](/docs/zh-TW/context-window#what-survives-compaction),但 Claude Code 不會改用上下文視窗比主要模型小的模型,因為在那裡進行摘要會先截斷部分對話。如果所有備援模型的視窗都較小,壓縮會顯示原始錯誤,您可以重試。

410 550 

411* **不可用的模型**:無法到達的模型,例如在設定中固定的已停用模型,會被跳過,Claude Code 會繼續到下一個元素。551Claude Code 也會將模型鏈套用至 [subagent](/docs/zh-TW/sub-agents)。當 subagent 的請求進行容錯移轉時,Claude Code 會依序嘗試您設定的備援模型,subagent 則會在接受請求的模型上繼續執行。您工作階段的模型不會改變。在 v2.1.247 之前,模型鏈涵蓋的失敗會直接結束 subagent。

412* **超出允許清單**:不被 [`availableModels`](#restrict-model-selection) 允許的元素在讀取鏈時會被刪除,永遠不會被嘗試。

413 552 

414<h3 id="automatic-model-fallback">553<h3 id="automatic-model-fallback">

415 自動模型回退554 自動模型備援

416</h3>555</h3>

417 556 

418本節涵蓋來自 Fable 5 的基於內容的回退。如需模型過載或不可用時的基於可用性的回退,請參閱 [Fallback model chains](#fallback-model-chains)。557本節說明從 Fable 模型、Opus 5.5、Sonnet 5.5 和 Opus 5 進行的基於內容的備援。關於模型過載或無法使用時基於可用性的備援,請參閱[備援模型鏈](#fallback-model-chains)。

558 

559Fable 模型、Opus 5.5、Sonnet 5.5 和 Opus 5 會搭配安全分類器執行,這些分類器最常標記網路安全和生物學內容。當分類器標記某個請求,且被標記的類別有備援模型時,Claude Code 會在該模型上重新執行請求,並在逐字稿中顯示通知。對於這兩個類別,備援模型取決於拒絕的模型:

560 

561* **Fable 5.1、Fable 5 和 Opus 5.5**:被標記為生物學的請求會在 Opus 5 上重新執行,被標記為網路安全的請求會在 Opus 4.8 上重新執行。

562* **Sonnet 5.5**:被標記為網路安全的請求會在 Sonnet 5 上重新執行。被標記為生物學的請求則會以拒絕結束,因為 Sonnet 5.5 沒有生物學備援模型。

563* **Opus 5**:被標記為網路安全的請求會在 Opus 4.8 上重新執行。被標記為生物學的請求則會以拒絕結束,因為 Opus 5 執行自己的生物學分類器,且沒有備援模型。

564 

565在 Amazon Bedrock、Google Cloud's Agent Platform 和 Microsoft Foundry 上,Claude Code 改為透過您部署的模型 ID 解析這些目標。請參閱[在 Bedrock、Agent Platform 和 Foundry 上啟用備援](#enable-fallback-on-bedrock-agent-platform-and-foundry)。

566 

567發生備援後,工作階段會在備援模型上繼續。若要返回原始模型,請執行 [`/model`](#setting-your-model)。

568 

569基於類別的備援需要 Claude Code v2.1.219 或更新版本。在 v2.1.219 之前,每個被標記的 Fable 5 請求都會在您供應商的預設 Opus 模型上重新執行,而 Opus 5 不是備援來源。

570 

571備援模型會對照 [`availableModels`](#restrict-model-selection) 進行檢查。當它被封鎖時,不會發生備援。拒絕會以一般錯誤顯示,且工作階段的模型不會改變。

572 

573<h4 id="effort-level-after-a-fallback">

574 備援後的 effort 等級

575</h4>

576 

577當 Claude Code 將您的工作階段切換至備援模型時,會保留被標記請求執行時的 effort 等級,而不是使用該模型的預設 effort。例如,在 Opus 5.5 上以其預設 `medium` 執行、備援至 Opus 4.8 的工作階段會維持在 `medium`,儘管 Opus 4.8 預設為 `high`。

419 578 

420Fable 5 使用網路安全和生物學內容的安全分類器執行。當分類器標記請求時,Claude Code 會在您提供者的預設 Opus 模型上重新執行該請求,並在記錄中顯示通知。在 Anthropic API、[LLM gateway](/docs/zh-TW/llm-gateway) 部署和 [Claude Platform on AWS](/docs/zh-TW/claude-platform-on-aws) 上,該模型是 Opus 4.8。在 [Claude apps gateway](/docs/zh-TW/claude-apps-gateway) 上,它是 Opus 4.7,除非您將 [`opus` 別名](#environment-variables)指向另一個模型。579在下列情況中,會套用不同的等級:

421 580 

422會話隨後在該 Opus 模型上繼續。若要返回 Fable 5,請執行 `/model fable`。581* **設定或組織預設值**:您設定中適用於備援模型的等級,或您組織為其設定的預設 effort,會改為適用。

582* **您自己的變更**:一旦您選擇 effort 等級、在 `/model` 中挑選模型,或稍後恢復工作階段,被標記請求的等級就不再沿用。

583* **Skill effort**:skill 的 `effort` frontmatter 為被標記請求設定的等級會套用於該回合,之後的回合則以 [effort 解析順序](#adjust-effort-level)為備援模型給出的等級執行。

423 584 

424回退目標會根據 [`availableModels`](#restrict-model-selection) 進行檢查。當它被阻止時,不會發生回退。拒絕會作為正常錯誤出現,會話的模型保持不變。585工作階段標頭會在模型名稱旁顯示目前生效的等級。若要變更,請在工作階段中執行 `/effort`。

425 586 

426<h4 id="check-what-triggered-fallback">587<h4 id="check-what-triggered-fallback">

427 檢查觸發回退的原因588 檢查觸發備援的原因

428</h4>589</h4>

429 590 

430回退可以在會話的第一個請求上觸發,在您發送任何不尋常的內容之前,因為第一個請求會攜帶工作區上下文,例如您的 CLAUDE.md 內容和 git 狀態。包含安全或生物學材料的儲存庫可以單獨在該上下文上觸發分類器。591備援可能在工作階段的第一個請求就觸發,甚至在您傳送任何不尋常的內容之前,因為第一個請求會攜帶工作區上下文,例如您的 CLAUDE.md 內容和 git 狀態。包含安全或生物學資料的儲存庫,光憑該上下文就可能觸發分類器。

431 592 

432若要檢查自訂是否是觸發器,請使用 `claude --safe-mode` 啟動會話,這會禁用自訂,例如 CLAUDE.md、skills、MCP 伺服器和 hooks。Git 狀態和目錄名稱不是自訂,仍然包含在內。593若要檢查自訂內容是否為觸發原因,請使用 `claude --safe-mode` 啟動工作階段,這會停用 CLAUDE.md、skill、MCP 伺服器和 hook 等自訂內容。Git 狀態和目錄名稱不屬於自訂內容,仍會被包含在內。

433 594 

434<h4 id="ask-before-switching">595<h4 id="ask-before-switching">

435 在切換前詢問596 切換前先詢問

436</h4>597</h4>

437 598 

438若要決定每次請求被標記時發生的情況,而不是自動切換,請執行 `/config` 並關閉「當訊息被標記時切換模型」。標記的請求隨後會暫停會話,有兩個選項:切換到 Opus 模型,或編輯提示並在 Fable 5 上重試。599若要在每次請求被標記時自行決定如何處理,而非自動切換,請執行 `/config` 並關閉 **Switch models when a message is flagged**,或在您的設定檔中將 [`switchModelsOnFlag`](/docs/zh-TW/settings-reference#switchmodelsonflag) 設為 `false`。之後被標記的請求會暫停工作階段,並提供兩個選項:切換至備援模型,或編輯提示詞並在目前模型上重試。

439 600 

440某些情況的行為不同:601某些情況的行為有所不同:

441 602 

442* 如果兩個模型都標記相同的請求,您可以編輯提示並重試,或啟動新會話。603* 當被標記的類別沒有備援模型時(例如 Opus 5 或 Sonnet 5.5 上的生物學標記),Claude Code 不會顯示提示,請求會以拒絕結束。

443* 在行動裝置 [Claude Code on the web](/docs/zh-TW/claude-code-on-the-web) 會話上,不支援編輯和重試。切換模型,或從桌面瀏覽器或桌面應用程式繼續會話。604* 如果兩個模型都標記同一個請求,您可以編輯提示詞並重試,或開始新的工作階段。

444* 在 [non-interactive mode](/docs/zh-TW/cli-reference#cli-flags) 和無法顯示提示的 SDK 整合中,標記的請求以拒絕結束輪次。605* 在行動應用程式上的[雲端工作階段](/docs/zh-TW/claude-code-on-the-web)中,不支援編輯並重試。請切換模型,或從桌面瀏覽器或桌面應用程式繼續工作階段。

445* 當回退目標被 [`availableModels`](#restrict-model-selection) 阻止時,不會顯示提示。標記的請求以拒絕結束,與目標被阻止時的自動回退相同。606* 在無法顯示提示的[非互動模式](/docs/zh-TW/cli-reference#cli-flags)和 SDK 整合中,被標記的請求會改以拒絕結束該回合。

607* 當備援目標被 [`availableModels`](#restrict-model-selection) 封鎖時,Claude Code 不會顯示提示。被標記的請求會以拒絕結束,與目標被封鎖時的自動備援相同。

446 608 

447<h4 id="enable-fallback-on-bedrock-agent-platform-and-foundry">609<h4 id="enable-fallback-on-bedrock-agent-platform-and-foundry">

448 在 Bedrock、Agent Platform 和 Foundry 上啟用回退610 在 Bedrock、Agent Platform 和 Foundry 上啟用備援

449</h4>611</h4>

450 612 

451在 [Amazon Bedrock](/docs/zh-TW/amazon-bedrock)、[Google Cloud 的 Agent Platform](/docs/zh-TW/google-vertex-ai) 和 [Microsoft Foundry](/docs/zh-TW/microsoft-foundry) 上,模型 ID 是提供者特定的,因此自動回退僅在 Claude Code 可以識別涉及的兩個模型時運作:613在 [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) 上,模型 ID 是供應商專屬的,因此只有在 Claude Code 能識別所涉及的每個模型時,自動備援才會運作:

614 

615* Claude Code 必須將目前模型識別為備援來源。當模型 ID 包含 `claude-fable-5`、符合 `ANTHROPIC_DEFAULT_FABLE_MODEL` 的值,或透過 [`modelOverrides`](#override-model-ids-per-version) 對應時,Fable 5.1 和 Fable 5 會被識別。Opus 5.5、Sonnet 5.5 和 Opus 5 則透過其供應商模型 ID 或 [`modelOverrides`](#override-model-ids-per-version) 對應來識別。

616* 無論拒絕的是哪個模型,Opus 目標都必須能在您的部署中解析:設定 `ANTHROPIC_DEFAULT_OPUS_MODEL`,或在供應商的模型清單中保留 Opus 4.8 項目。若兩者皆無,所有來源模型(包括 Sonnet 5.5)的備援都會維持關閉,被標記的請求會以拒絕結束。

617* 被標記類別的備援模型必須能在您的部署中解析。從 Fable 模型、Opus 5.5 或 Opus 5 出發時,如果您設定了 `ANTHROPIC_DEFAULT_OPUS_MODEL`,被標記的請求會針對每個有備援的類別在該模型上重新執行;Opus 5 上的生物學標記仍會以拒絕結束。如果您未設定,被標記為網路安全的請求會在 Opus 4.8 項目上重新執行,而來自 Fable 模型或 Opus 5.5、被標記為生物學的請求則會在 Opus 5 項目上重新執行。從 Sonnet 5.5 出發時,被標記為網路安全的請求會在您於 `ANTHROPIC_DEFAULT_SONNET_MODEL` 中設定的模型上重新執行,若您未設定,則在供應商模型清單中的 Sonnet 5 項目上重新執行。

452 618 

453* Claude Code 必須將目前模型識別為 Fable 5:模型 ID 包含 `claude-fable-5`、符合 `ANTHROPIC_DEFAULT_FABLE_MODEL` 的值,或使用 [`modelOverrides`](#override-model-ids-per-version) 對應。619如果任一模型無法識別,Claude Code 不會切換。被標記的請求會以拒絕訊息結束,您可以使用 [`/model`](#setting-your-model) 切換模型並重試。若要讓兩個模型都能被識別,請為您的來源模型設定釘選:

454* 回退目標必須解析為 Opus 模型:`ANTHROPIC_DEFAULT_OPUS_MODEL` 的值(如果設定),否則提供者模型清單中的 Opus 4.8 項目。

455 620 

456如果任一模型無法識別,Claude Code 不會自動切換。標記的請求以拒絕訊息結束,您可以使用 [`/model`](#setting-your-model) 切換模型並重試。若要在這些提供者上啟用自動回退,請將 `ANTHROPIC_DEFAULT_FABLE_MODEL` 設定為您的 Fable 5 模型 ID,並將 `ANTHROPIC_DEFAULT_OPUS_MODEL` 設定為您的 Opus 4.8 模型 ID。621* **Fable 模型**:將 `ANTHROPIC_DEFAULT_FABLE_MODEL` 設定為您的 Fable 模型 ID,讓 Claude Code 將其識別為備援來源。

622* **每個來源模型**:將 `ANTHROPIC_DEFAULT_OPUS_MODEL` 設定為 Opus 模型 ID,以開啟備援並為被標記的類別提供目標。若釘選的是 Opus 家族以外的模型,或是拒絕的那個模型本身,拒絕將維持不變。

623* **Sonnet 5.5**:除了 Opus 釘選外,請設定 `ANTHROPIC_DEFAULT_SONNET_MODEL`,或在供應商的模型清單中保留 Sonnet 5 項目,以提供重新執行請求的模型。若 Sonnet 釘選的是 Sonnet 家族以外的模型,或是 Sonnet 5.5 本身,拒絕將維持不變。

457 624 

458<h4 id="security-research-and-biology-workloads">625<h4 id="security-research-and-biology-workloads">

459 安全研究和生物學工作負載626 安全研究與生物學工作負載

460</h4>627</h4>

461 628 

462進攻性安全或生物學中的工作負載,包括滲透測試、Capture the Flag (CTF) 練習和生物學相鄰程式碼庫,經常觸發回退,通常在第一個請求上。對於實質性生物學工作,預期幾乎所有請求都會重新路由。629攻擊性安全或生物學方面的工作負載,包括滲透測試、Capture the Flag (CTF) 練習和與生物學相關的程式碼庫,經常會觸發備援,而且通常在第一個請求就觸發。對於在 Fable 5.1、Fable 5 或 Opus 5.5 上進行的實質生物學工作,Claude Code 會在第一個被標記的請求時將工作階段移至 Opus 5,之後被標記為生物學的請求會在那裡以拒絕結束,因為 Opus 5 沒有生物學備援。在 Opus 5 和 Sonnet 5.5 上,您從第一個被標記的請求開始就會收到這些拒絕。

463 630 

464這是這些領域的預期路由,不是帳戶標記。如果您的組織需要 Fable 級別的能力來進行此工作,請詢問您的 Anthropic 帳戶團隊有關受信任存取計畫。631這是這些領域的預期路由,而非帳戶被標記。如果您的組織需要 Fable 等級的能力來進行此類工作,請向您的 Anthropic 客戶團隊詢問受信任存取計畫。

465 632 

466<h3 id="adjust-effort-level">633<h3 id="adjust-effort-level">

467 調整努力等級634 調整 effort 等級

468</h3>635</h3>

469 636 

470[努力等級](https://platform.claude.com/docs/en/build-with-claude/effort)控制自適應推理,讓模型根據任務複雜性決定是否以及在每一步上思考多少。較低的努力對於直接的任務更快且更便宜,而較高的努力為複雜問題提供更深入的推理。637[Effort 等級](https://platform.claude.com/docs/en/build-with-claude/effort)控制自適應推理,讓模型根據任務複雜度決定是否在每個步驟思考以及思考多少。較低的 effort 對於簡單任務更快速且更便宜,而較高的 effort 則為複雜問題提供更深入的推理。

471 638 

472可用的努力等級取決於模型。此處未列出的模型不支援努力:639可用的 effort 等級取決於模型。未列於此處的模型不支援 effort:

473 640 

474| 模型 | 等級 |641| 模型 | 等級 |

475| :- | :- |642| :- | :- |

476| Fable 5 | `low`、`medium`、`high`、`xhigh`、`max` |643| Fable 5.1 和 Fable 5 | `low`、`medium`、`high`、`xhigh`、`max` |

477| Sonnet 5、Opus 4.8 和 Opus 4.7 | `low`、`medium`、`high`、`xhigh`、`max` |644| Opus 5.5、Sonnet 5.5、Opus 5、Sonnet 5、Opus 4.8 和 Opus 4.7 | `low`、`medium`、`high`、`xhigh`、`max` |

478| Opus 4.6 和 Sonnet 4.6 | `low`、`medium`、`high`、`max` |645| Opus 4.6 和 Sonnet 4.6 | `low`、`medium`、`high`、`max` |

479 646 

480如果您設定活動模型不支援的等級,Claude Code 會回退到您設定的等級處或以下的最高支援等級。例如,`xhigh` 在 Opus 4.6 上執行為 `high`。您的組織也可以限制模型可用的等級;請參閱[組織努力限制](#organization-effort-limits)。647如果您設定了目前模型不支援的等級,Claude Code 會改用等於或低於您所設定等級中最高的支援等級。例如,`xhigh` 在 Opus 4.6 上會以 `high` 執行。您的組織或您自己的設定也可以限制模型提供的等級;請參閱[組織 effort 限制](#organization-effort-limits)。

648 

649Claude Code 依下列順序解析工作階段的 effort 等級,採用第一個適用的項目:

650 

6511. 明確的選擇:[`CLAUDE_CODE_EFFORT_LEVEL`](/docs/zh-TW/env-vars#variables) 環境變數、以 `--effort` 啟動,或在工作階段中使用 `/effort`([非互動式的 `/effort` 影響範圍較窄](#non-interactive-effort))

6522. 您的設定:您為模型儲存的等級或 [`effortLevel`](/docs/zh-TW/settings-reference#effortlevel) 鍵,兩者之間以及各設定檔之間的優先順序說明於 [`modelSettings`](/docs/zh-TW/settings-reference#modelsettings)

6533. 模型的預設 effort:所有支援 effort 的模型都預設為 `high`,但 Opus 5.5 和 Sonnet 5.5 預設為 `medium`、Opus 4.7 預設為 `xhigh`,而當您的組織為其[組織預設模型](#organization-default-model)設定預設 effort 等級時,該等級就是您執行該模型時的預設值。自動模型備援後適用的等級,請參閱[備援後的 effort 等級](#effort-level-after-a-fallback)。

654 

655除非上述來源之一為 Opus 5.5 設定了等級,否則 Opus 5.5 會從 `medium` 開始,且您使用者設定檔中的頂層 `effortLevel` 不會計入 Opus 5.5。該鍵是 Claude Code 開始按模型儲存等級之前 `/effort` 寫入的舊形式:它會繼續在先前適用的地方適用,即 Opus 5、Fable 5.1 及更早的模型,而 Opus 5.5 及其後發布的模型則會從自己的預設值開始,直到您使用 `/effort` 或 `/model` 選擇器為其選擇等級為止。專案、本機或受管設定中的頂層 `effortLevel`,或透過 `--settings` 傳入的 `effortLevel`,則適用於所有模型。

656 

657當您在本機的互動式工作階段中設定 `low`、`medium`、`high` 或 `xhigh` 時,可以透過確認方式選擇其持續時間:

658 

659* 在 `/effort` 滑桿或 `/model` 選擇器中按 `Enter`,或在 `/effort` 後輸入等級:將等級儲存為您的預設值,並在之後的工作階段中套用

660* 在 `/effort` 滑桿或 `/model` 選擇器中按 `s`:僅將等級套用於此工作階段。需要 Claude Code v2.1.257 或更新版本

661 

662Claude Code 會按模型儲存等級,存放在您使用者設定中的 [`modelSettings`](/docs/zh-TW/settings-reference#modelsettings) 鍵下,因此每個模型都會保留自己儲存的等級。

663 

664`max` 是最深入的推理等級。除非您透過 `CLAUDE_CODE_EFFORT_LEVEL` 環境變數設定,否則 Claude Code 只會將 `max` 套用於目前的工作階段。

481 665 

482Fable 5、Sonnet 5、Opus 4.8、Opus 4.6 和 Sonnet 4.6 上的預設努力為 `high`,Opus 4.7 上的預設努力為 `xhigh`。666<Note>

667 您在透過 [Remote Control](/docs/zh-TW/remote-control#what-connected-devices-see) 連線的手機或瀏覽器上,從 effort 控制項選擇的等級僅適用於該工作階段。

668</Note>

669 

670<span id="non-interactive-effort" />

671 

672當您在 [`-p` 執行](/docs/zh-TW/headless)中使用 `/effort` 設定等級時,Claude Code 只會將其套用於該工作階段,不會儲存為您的預設值。

673 

674`/effort` 滑桿還有一個 **Ultracode** 切換開關。Ultracode 是 Claude Code 的設定,而非模型 effort 等級:開啟時,Claude 會為實質任務協調[動態工作流程](/docs/zh-TW/workflows),不論工作階段以何種 effort 等級執行。關於可以持久設定它的位置,請參閱 [`ultracode`](/docs/zh-TW/settings-reference#ultracode) 設定。

483 675 

484當您首次執行 Fable 5、Opus 4.8 或 Opus 4.7 時,Claude Code 會應用該模型的預設努力,即使您之前為另一個模型設定了不同的等級:Fable 5 和 Opus 4.8 上的 `high`,以及 Opus 4.7 上的 `xhigh`。執行 `/effort` 以在切換後選擇不同的等級。該預設值在會話間保持,直到您進行明確的努力選擇,例如在互動式會話中執行 `/effort` 或使用 `--effort` 啟動。在 [non-interactive mode](/docs/zh-TW/headless) 中使用 `/effort` 設定的等級,使用 `-p` 旗標,僅適用於目前會話,不會儲存為您的預設值。非互動式 `/effort` 也無法釋放上述模型預設值保持:在 Fable 5、Opus 4.8 和 Opus 4.7 上,它報告 `Not applied`,會話保持在模型的預設努力,因此改為在啟動時傳遞 `--effort`。`max` 提供最深入的推理,對 token 支出沒有限制,並且僅適用於目前會話,除非透過 `CLAUDE_CODE_EFFORT_LEVEL` 環境變數設定。676使用 `/effort` 或 `ultracode` 設定開啟或關閉 ultracode 時,effort 等級不會改變。`--effort ultracode` 旗標和 Agent SDK 的 `effortLevel: "ultracode"` 值會開啟它,同時也會將等級設為 `xhigh`。在 `/effort` 滑桿或 `/model` 選擇器中挑選等級,不會改變 ultracode 的狀態。

485 677 

486`/effort` 選單也提供 `ultracode`。Ultracode 是 Claude Code 設定而非模型努力等級:它向模型發送 `xhigh`,並額外讓 Claude 為實質性任務協調[動態工作流程](/docs/zh-TW/workflows)。它僅適用於目前會話。678您可以透過下列任一方式開啟 ultracode:

487 679 

488您可以透過以下任何方式開啟 ultracode:680* **`/effort`**:執行 `/effort ultracode` 以在目前工作階段中開啟,或執行 `/effort ultracode off` 以關閉。在 `/effort` 滑桿中,按 `Tab` 切換 **Ultracode** 開關,然後按 `Enter` 套用

681* **`--effort` 旗標**:使用 `claude --effort ultracode` 啟動,這會以 `xhigh` effort 並開啟 ultracode 的狀態啟動工作階段

682* **`ultracode` 設定**:在設定檔中、透過 `--settings`,或在 Agent SDK 控制請求中設定 [`"ultracode": true`](/docs/zh-TW/settings-reference#ultracode)。[`applyFlagSettings()`](/docs/zh-TW/agent-sdk/typescript#applyflagsettings) 請求也接受 `effortLevel: "ultracode"`,這會開啟它並將 effort 等級設為 `xhigh`

489 683 

490* **`/effort`**:執行 `/effort ultracode`,或從選單中選擇它684`/effort ultracode off` 形式、滑桿切換開關,以及在 `xhigh` 以外的 effort 等級保持開啟 ultracode,需要 Claude Code v2.1.284 或更新版本。在 v2.1.284 之前,開啟 ultracode 會將工作階段設為 `xhigh` effort,挑選其他等級會將其關閉,而低於 `xhigh` 的 effort 上限會使其無法使用。

491* **`--effort` 旗標**:使用 `claude --effort ultracode` 啟動,這會以 `xhigh` 努力和 ultracode 開啟會話

492* **`--settings` 或 Agent SDK 控制請求**:傳遞 `"ultracode": true`。[`applyFlagSettings()`](/docs/zh-TW/agent-sdk/typescript#applyflagsettings) 請求也接受 `effortLevel: "ultracode"`

493 685 

494將 `ultracode` 傳遞給 `--effort` 旗標或 Agent SDK `effortLevel` 值需要 Claude Code v2.1.203 或更新版本。在 v2.1.203 之前,`--effort ultracode` 列印 `Unknown --effort value 'ultracode'`,會話以預設努力啟動。686將 `ultracode` 傳給 `--effort` 旗標或 Agent SDK 的 `effortLevel` 值,需要 Claude Code v2.1.203 或更新版本。在 v2.1.203 之前,`--effort ultracode` 會印出 `Unknown --effort value 'ultracode'`,且工作階段會以預設 effort 啟動。

495 687 

496持續的 `effortLevel` 設定和 `CLAUDE_CODE_EFFORT_LEVEL` 環境變數不接受 `ultracode`。688持久化的 `effortLevel` 設定和 `CLAUDE_CODE_EFFORT_LEVEL` 環境變數不接受 `ultracode`。如果 `CLAUDE_CODE_EFFORT_LEVEL` 或 [effort 上限](#organization-effort-limits)設定了工作階段的等級,ultracode 會在該等級下保持開啟。

497 689 

498當 ultracode 不可用時,例如當[工作流程被關閉](/docs/zh-TW/workflows#turn-workflows-off)時,`--effort ultracode` 僅設定 `xhigh` 努力。690<span id="when-ultracode-is-available" />

691 

692在下列情況下無法使用 ultracode:

693 

694* [工作流程已關閉](/docs/zh-TW/workflows#turn-workflows-off)

695* 模型不支援 `xhigh` effort

696 

697在這些情況下,`--effort ultracode` 會以關閉 ultracode 的狀態啟動工作階段,使用模型和任何上限所允許的最高 effort 等級,最高至 `xhigh`。

499 698 

500<h4 id="choose-an-effort-level">699<h4 id="choose-an-effort-level">

501 選擇努力等級700 選擇 effort 等級

502</h4>701</h4>

503 702 

504每個等級都在 token 支出和能力之間進行權衡。預設值適合大多數編碼任務;當您想要不同的平衡時進行調整。703每個等級都是在 token 消耗與能力之間的取捨。預設值適合大多數程式設計任務;當您想要不同的平衡時再進行調整。

505 704 

506| 等級 | 何時使用 |705| 等級 | 使用時機 |

507| :- | :- |706| :- | :- |

508| `low` | 保留用於短期、範圍有限、延遲敏感且不是智能敏感的任務 |707| `low` | 您會檢閱每個結果的快速交流,例如腦力激盪、初步草稿,或像重新命名這類的小變更 |

509| `medium` | 減少成本敏感工作的 token 使用,可以權衡一些智能 |708| `medium` | Opus 5.5 和 Sonnet 5.5 上的預設值,適合範圍明確的日常工程工作,例如實作新功能。在其他模型上,可為能夠犧牲部分智慧的成本敏感工作減少 token 用量 |

510| `high` | 平衡 token 使用和智能。Fable 5、Sonnet 5、Opus 4.8、Opus 4.6 和 Sonnet 4.6 上的預設值 |709| `high` | 需要驗證或可能出現邊緣案例的工作,例如修正現有程式碼庫中的錯誤。除 Opus 5.5、Sonnet 5.5 和 Opus 4.7 外,所有模型的預設值 |

511| `xhigh` | 更深入的推理,token 支出更高。Opus 4.7 上的預設值 |710| `xhigh` | 以較高的 token 消耗換取更深入的推理。Opus 4.7 上的預設值 |

512| `max` | 可以改善困難任務的效能,但可能顯示遞減回報,容易過度思考。在廣泛採用前進行測試 |711| `max` | 您希望 Claude 在沒有您參與的情況下處理的困難問題,例如找出安全漏洞。`max` 可能出現報酬遞減且容易過度思考,因此在廣泛採用前請先測試 |

513| `ultracode` | 一個 Claude Code 設定,為每個實質性任務規劃[動態工作流程](/docs/zh-TW/workflows),每條訊息進行 `xhigh` 推理。僅限會話 |712| `ultracode` | 是 Claude Code 的設定而非等級:在任何 effort 等級下為每個實質任務規劃[動態工作流程](/docs/zh-TW/workflows) |

713 

714在 Opus 5.5 和 Fable 5.1 上的測試中,較高等級的 Claude 會測試更多邊緣案例,並在回答前驗證更多工作內容。它也會自行做出更多選擇。在較低等級時,Claude 會更快回傳一個起點,適合您檢閱每個結果並引導下一步的工作。若要查看相同任務在各等級下的執行情形,請閱讀部落格上的 [Using Claude Code: Spending your effort](https://claude.dev/blog/spending-your-effort/)。

514 715 

515努力量表按模型進行校準,因此相同的等級名稱在模型之間不代表相同的基礎值。716effort 刻度是按模型校準的,因此相同的等級名稱在不同模型之間並不代表相同的底層數值。

717 

718Opus 5.5 [預設為 `medium`](#adjust-effort-level),比 Opus 5 的預設值 `high` 低一個等級。在 Anthropic 的測試中,Opus 5.5 在 `medium` 下的程式設計和知識工作評估表現,與 Opus 5 在 `high` 下相當或更佳。在相同等級下,Opus 5.5 每個回合的思考量往往比 Opus 5 更多。當您從 Opus 5 移至 Opus 5.5 時,請從 `medium` 開始,而不要沿用您在 Opus 5 上使用的等級。若要針對您自己的工作測試各等級,請參閱 Opus 5.5 提示指南中的 [Calibrate effort](https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/prompting-claude-opus-5-5#calibrate-effort)。

516 719 

517<h4 id="use-ultrathink-for-one-off-deep-reasoning">720<h4 id="use-ultrathink-for-one-off-deep-reasoning">

518 使用 ultrathink 進行一次性深入推理721 使用 ultrathink 進行一次性深入推理

519</h4>722</h4>

520 723 

521在您的提示中的任何地方包含 `ultrathink` 以請求在該輪上進行更深入的推理,而不改變您的會話努力設定。Claude Code 識別該關鍵字並新增一個上下文指令。發送到 API 的努力等級保持不變。其他短語如「think」、「think hard」和「think more」會作為普通提示文本傳遞,不被識別為關鍵字。724在提示詞中的任何位置加入 `ultrathink`,即可在該回合請求更深入的推理,而不變更工作階段的 effort 設定。Claude Code 會辨識此關鍵字並加入上下文內的指示。傳送至 API 的 effort 等級不會改變。Claude Code 會將其他片語(例如「think」、「think hard」和「think more」)當作一般提示詞文字傳遞,不會將其辨識為關鍵字。

522 725 

523<h4 id="set-the-effort-level">726<h4 id="set-the-effort-level">

524 設定努力等級727 設定 effort 等級

525</h4>728</h4>

526 729 

527您可以透過以下任何方式改變努力:730您可以透過下列任一方式變更 effort:

731 

732* **`/effort`**:不帶引數執行 `/effort` 以開啟互動式滑桿,在 `/effort` 後接等級名稱以直接設定,或執行 `/effort auto` 以清除您為目前模型儲存的等級。您可以在 Claude 工作時執行它,一旦您確認[快取警告](/docs/zh-TW/prompt-caching#changing-effort-level)(如果 Claude Code 有顯示),Claude Code 就會將新等級套用於該回合中的下一個請求

733* **在 `/model` 中**:選擇模型時,使用左/右方向鍵調整 effort 滑桿

734* **`--effort` 旗標**:啟動 Claude Code 時傳入等級名稱,為單一工作階段設定

735* **環境變數**:將 `CLAUDE_CODE_EFFORT_LEVEL` 設定為等級名稱或 `auto`

736* **設定**:在 [`modelSettings`](/docs/zh-TW/settings-reference#modelsettings) 中設定各模型的等級,或將 [`effortLevel`](/docs/zh-TW/settings-reference#effortlevel) 設定為 `low`、`medium`、`high` 或 `xhigh`,作為沒有設定等級之模型的預設值。這兩個鍵都不接受 `max` 作為等級,而 `ultracode` 有自己的 [`ultracode`](/docs/zh-TW/settings-reference#ultracode) 鍵

737* **從已連線的裝置**:在 [Remote Control](/docs/zh-TW/remote-control#what-connected-devices-see) 工作階段中,從手機或瀏覽器上的 effort 控制項選擇等級。該等級僅適用於目前的工作階段。需要 Claude Code v2.1.234 或更新版本

738* **Skill 和 subagent frontmatter**:在 [skill](/docs/zh-TW/skills#frontmatter-reference) 或 [subagent](/docs/zh-TW/sub-agents#supported-frontmatter-fields) markdown 檔案中設定 `effort`,以在該 skill 或 subagent 執行時覆寫 effort 等級

528 739 

529* **`/effort`**:執行 `/effort` 不帶引數以開啟互動式滑塊,執行 `/effort` 後跟等級名稱以直接設定,或執行 `/effort auto` 以重設為模型預設值740Frontmatter effort 會在該 skill 或 subagent 處於作用中時適用,覆寫工作階段等級,但不會覆寫環境變數。[`maxEffortLevel`](/docs/zh-TW/settings-reference#maxeffortlevel) 或[組織 effort 上限](#organization-effort-limits)仍會限制 skill 或 subagent 執行時的等級。

530* **在 `/model` 中**:選擇模型時使用左/右箭頭鍵調整努力滑塊

531* **`--effort` 旗標**:在啟動 Claude Code 時傳遞等級名稱以為單一會話設定

532* **環境變數**:設定 `CLAUDE_CODE_EFFORT_LEVEL` 為等級名稱或 `auto`

533* **設定**:在設定檔中設定 `effortLevel` 為 `low`、`medium`、`high` 或 `xhigh`。`max` 和 `ultracode` 是[僅限會話](#adjust-effort-level),此處不接受

534* **Skill 和 subagent frontmatter**:在 [skill](/docs/zh-TW/skills#frontmatter-reference) 或 [subagent](/docs/zh-TW/sub-agents#supported-frontmatter-fields) markdown 檔案中設定 `effort` 以在該 skill 或 subagent 執行時覆蓋努力等級

535 741 

536環境變數優先於所有其他方法,然後是您配置的等級,然後是模型預設值。Frontmatter 努力在該 skill 或 subagent 活動時適用,覆蓋會話等級但不覆蓋環境變數。742如果您在[受管設定](/docs/zh-TW/managed-settings)中設定 `effortLevel`,Claude Code 會在 [effort 解析順序](#adjust-effort-level)的設定步驟套用它,使用者仍可使用 `/effort` 或 `--effort` 變更等級。若要讓使用者維持在某個等級或以下,請設定 [`maxEffortLevel`](/docs/zh-TW/settings-reference#maxeffortlevel)。

537 743 

538當選擇支援的模型時,努力滑塊會出現在 `/model` 中。目前的努力等級也會顯示在標誌和微調器旁邊,例如「with low effort」,因此您可以確認哪個設定處於活動狀態,而無需開啟 `/model`。744選擇支援的模型時,effort 滑桿會出現在 `/model` 中。目前的 effort 等級也會顯示在工作階段標頭中的模型名稱旁,例如「with low effort」,因此您無需開啟 `/model` 即可確認哪個設定處於作用中。頁尾也會在啟動時以及等級變更時短暫顯示 effort 等級。

539 745 

540<h4 id="adaptive-reasoning-and-fixed-thinking-budgets">746<h4 id="adaptive-reasoning-and-fixed-thinking-budgets">

541 自適應推理和固定思考預算747 自適應推理與固定思考預算

542</h4>748</h4>

543 749 

544自適應推理使思考在每一步上都是可選的,因此 Claude 可以更快地回應常規提示,並為受益於思考的步驟保留更深入的思考。如果您想要 Claude 比目前等級產生的更頻繁或更少地思考,您可以直接在您的提示或 `CLAUDE.md` 中說明;模型在其努力設定範圍內回應該指導。750自適應推理讓每個步驟的思考變為可選,因此 Claude 能更快回應例行提示詞,並將更深入的思考保留給能從中受益的步驟。如果您希望 Claude 比目前等級產生的思考頻率更高或更低,可以直接在提示詞或 `CLAUDE.md` 中說明;模型會在其 effort 設定範圍內回應該指引。

545 751 

546Fable 5、Sonnet 5 和 Opus 4.7 及更新版本始終使用自適應推理。固定思考預算模式和 `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` 不適用於它們。752Fable 模型、Sonnet 5 及更新版本,以及 Opus 4.7 及更新版本一律使用自適應推理。固定思考預算模式和 `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` 不適用於這些模型。

547 753 

548在 Opus 4.6 和 Sonnet 4.6 上,您可以設定 `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING=1` 以恢復到由 `MAX_THINKING_TOKENS` 控制的先前固定思考預算。請參閱[環境變數](/docs/zh-TW/env-vars)。754在 Opus 4.6 和 Sonnet 4.6 上,您可以設定 `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING=1`,以恢復由 `MAX_THINKING_TOKENS` 控制的先前固定思考預算。請參閱[環境變數](/docs/zh-TW/env-vars)。

549 755 

550<h3 id="extended-thinking">756<h3 id="extended-thinking">

551 擴展思考757 延伸思考

552</h3>758</h3>

553 759 

554擴展思考是 Claude 在回應前發出的推理。在支援[自適應推理](#adjust-effort-level)的模型上,努力等級是控制發生多少思考的主要控制項;下面的設定會開啟或關閉思考,並控制其顯示方式。760延伸思考是 Claude 在回應前產生的推理。在支援[自適應推理](#adjust-effort-level)的模型上,effort 等級是控制思考量的主要方式;下列設定用於開啟或關閉思考,並控制其顯示方式。在 Anthropic API 上關閉思考時,對於 Claude Code 已知[不接受該組合](/docs/zh-TW/errors#effort-isnt-available-with-thinking-turned-off)的模型(例如 Opus 5),Claude Code 會傳送 effort `high`,而非更高的等級。

555 761 

556| 控制項 | 如何設定 |762| 控制項 | 設定方式 |

557| :- | :- |763| :- | :- |

558| 目前會話的切換 | 在 macOS 上按 `Option+T` 或在 Windows 和 Linux 上按 `Alt+T` |764| 切換目前工作階段 | 在 macOS 上按 `Option+T`,在 Windows 和 Linux 上按 `Alt+T` |

559| 設定全域預設值 | 執行 `/config` 並切換思考模式。儲存為 `~/.claude/settings.json` 中的 `alwaysThinkingEnabled` |765| 設定全域預設值 | 執行 `/config` 並切換思考模式。儲存為 `~/.claude/settings.json` 中的 `alwaysThinkingEnabled` |

560| 無論努力如何禁用 | 設定 [`MAX_THINKING_TOKENS=0`](/docs/zh-TW/env-vars),這會在 Anthropic API 上關閉思考,除了 Fable 5。在[第三方提供者](/docs/zh-TW/third-party-integrations)上,這會改為省略 `thinking` 參數,自適應推理模型可能仍然思考。其他值僅適用於[固定思考預算](#adaptive-reasoning-and-fixed-thinking-budgets) |766| 透過環境變數停用 | 設定 [`MAX_THINKING_TOKENS=0`](/docs/zh-TW/env-vars),這會在 Anthropic API 上關閉思考,但 Opus 5.5、Sonnet 5.5 和 Fable 模型除外。在[第三方供應商](/docs/zh-TW/third-party-integrations)上,Claude Code 會改為省略 `thinking` 參數,自適應推理模型仍可能進行思考。其他值僅在使用[固定思考預算](#adaptive-reasoning-and-fixed-thinking-budgets)時適用 |

767 

768您無法在 Opus 5.5、Sonnet 5.5 或 Fable 模型上關閉思考。對於這些模型,工作階段切換開關和 `/config` 列會顯示 `Thinking can't be turned off`,而不提供切換選項,且已儲存的 `alwaysThinkingEnabled: false` 或 `MAX_THINKING_TOKENS=0` 在這些模型上無效。在這些模型上,模型會根據 effort 等級決定每個步驟的思考量。當您切換至接受該設定的模型時,已儲存的設定會再次適用。

561 769 

562思考無法在 Fable 5 上關閉。會話切換、`alwaysThinkingEnabled` 和 `MAX_THINKING_TOKENS=0` 在那裡沒有效果,Fable 5 根據努力等級決定每一步思考多少。770Claude Code 預設會收合思考輸出。按 `Ctrl+O` 切換詳細模式,即可看到以灰色斜體文字顯示的推理。Anthropic API 上的互動式工作階段預設會收到經過編修的思考區塊,因此如果您希望展開時能看到完整摘要,請在[設定](/docs/zh-TW/settings)中設定 `showThinkingSummaries: true`。即使思考內容被收合或編修,您仍需為所有產生的思考 token 付費。

563 771 

564思考輸出預設為摺疊。按 `Ctrl+O` 以切換詳細模式並將推理視為灰色斜體文本。Anthropic API 上的互動式會話預設會收到編輯的思考區塊,因此如果您想要在展開時可用的完整摘要,請在[設定](/docs/zh-TW/settings)中設定 `showThinkingSummaries: true`。您需要為所有生成的思考 token 付費,即使它們被摺疊或編輯。772<a id="extended-context-with-1m" />

565 773 

566<h3 id="extended-context">774<h3 id="extended-context">

567 擴展 context775 延伸上下文

568</h3>776</h3>

569 777 

570Fable 5、Sonnet 5、Opus 4.6 及更新版本和 Sonnet 4.6 支援[100 萬個 token 的 context window](https://platform.claude.com/docs/en/build-with-claude/context-windows#context-window-sizes-by-model),用於具有大型程式碼庫的長時間會話。778Fable 5.1、Fable 5、Sonnet 5 及更新版本、Opus 4.6 及更新版本,以及 Sonnet 4.6 支援 [100 萬 token 上下文視窗](https://platform.claude.com/docs/en/build-with-claude/context-windows#context-window-sizes-by-model),適用於處理大型程式碼庫的長時間工作階段。

571 779 

572可用性因模型和計畫而異。在 Anthropic API 上,Fable 5、Sonnet 5、Opus 4.8 和 Opus 4.7 始終使用 1M window 執行。在 Max、Team 和 Enterprise 計畫上,Opus 會自動升級到 1M context,無需額外配置。這適用於 Team Standard 和 Team Premium 席位。Sonnet 4.6 搭配 1M context 不是自動升級的一部分,需要在每個訂閱計畫上進行[使用額度](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans),包括 Max。780在 Anthropic API 上,Fable 5.1、Fable 5、Sonnet 5 及更新版本,以及 Opus 4.7 及更新版本在每個方案(包括 Pro)上都以 1M 視窗執行。在這些模型上,您不需要選擇 `[1m]` 變體,也不需要為 1M 視窗開啟用量點數。在某些方案上,Fable 的使用本身可能會計入用量點數;請參閱 [Fable 與用量點數](#fable-and-usage-credits)。

573 781 

574| 計畫 | Opus 搭配 1M context | Sonnet 4.6 搭配 1M context |782Opus 4.6 和 Sonnet 4.6 只能透過其 `[1m]` 變體達到 1M,而能否使用該變體取決於您的方案。在 Max、Team 和 Enterprise 方案上(包括 Team Standard 和 Team Premium 席位),具有 1M 上下文的 Opus 4.6 已包含在您的訂閱中。具有 1M 上下文的 Sonnet 4.6 在每個訂閱方案(包括 Max)上都需要[用量點數](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans)。

783 

784| 方案 | 具有 1M 上下文的 Opus 4.6 | 具有 1M 上下文的 Sonnet 4.6 |

575| - | - | - |785| - | - | - |

576| Max、Team 和 Enterprise | 包含在訂閱中 | 需要[使用額度](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) |786| Max、Team 和 Enterprise | 包含在訂閱中 | 需要[用量點數](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) |

577| Pro | 需要[使用額度](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) | 需要[使用額度](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) |787| Pro | 需要[用量點數](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) | 需要[用量點數](https://support.claude.com/en/articles/12429409-extra-usage-for-paid-claude-plans) |

578| API 和隨用隨付 | 完全存取 | 完全存取 |788| API 和隨用隨付 | 完整存取 | 完整存取 |

579 789 

580若要完全禁用 1M context,請設定 `CLAUDE_CODE_DISABLE_1M_CONTEXT=1`。這會從模型選擇器中移除 1M 模型變體。請參閱[環境變數](/docs/zh-TW/env-vars)。790Claude Code 只有在直接連線至 Anthropic API 時才會檢查這些方案要求。如果您將 `ANTHROPIC_BASE_URL` 指向 [LLM 閘道](/docs/zh-TW/llm-gateway#subscriptions-and-gateways),且您已儲存的 claude.ai 登入仍是作用中的憑證,Claude Code 不會檢查您方案的用量點數。`[1m]` 選項在 `/model` 中仍可使用,由閘道決定請求是否成功。在 v2.1.229 之前,在該設定下,當 Claude Code 無法確認帳戶上的用量點數時,會拒絕 `/model sonnet[1m]`。

581 791 

5821M context window 使用標準模型定價,超過 200K 的 token 無需額外費用。對於訂閱中包含擴展 context 的計畫,使用量仍由您的訂閱涵蓋。對於透過使用額度存取擴展 context 的計畫,token 會計入使用額度。792<span id="context-window-behind-a-gateway" />

583 793 

584如果您的帳戶支援 1M context,該選項會出現在最新版本 Claude Code 的 `/model` 選擇器中。如果您看不到它,請嘗試重新啟動您的會話。794如果您將 `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),讓工作階段在該邊界進行壓縮。

585 795 

586您也可以將 `[1m]` 後綴與模型別名或完整模型名稱一起使用:796若要關閉 1M 上下文,請設定 `CLAUDE_CODE_DISABLE_1M_CONTEXT=1`。Claude Code 會從模型選擇器中移除 1M 模型變體。對於具有原生 1M 視窗的模型(例如 Sonnet 5 和 Fable 模型),它也會將該模型視為具有 200K 上下文視窗:

587 797 

588```bash theme={null}798* 開啟自動壓縮時,工作階段會透過[自動壓縮](#set-the-auto-compact-window)在 200K 邊界進行壓縮。將自動壓縮視窗設定為高於 200K 並不會解除此限制,因為 Claude Code 會將該視窗上限設為模型的上下文視窗。

589# 使用 opus[1m] 或 sonnet[1m] 別名799* 關閉自動壓縮時,工作階段會在 200K 邊界以[上下文限制錯誤](/docs/zh-TW/errors#prompt-is-too-long)停止,而不是進行壓縮。

800 

801在 v2.1.223 之前,Claude Code 只會將 Sonnet 5、Opus 4.8 和 Opus 5 工作階段限制在 200K。請參閱[環境變數](/docs/zh-TW/env-vars)。

802 

8031M 上下文視窗採用標準模型定價,超過 200K 的 token 不收取額外費用。對於延伸上下文已包含在訂閱中的方案,用量仍由您的訂閱涵蓋。對於透過用量點數使用延伸上下文的方案,token 會計入用量點數。

804 

805如果您的帳戶支援 1M 上下文,該選項會出現在最新版 Claude Code 的 `/model` 選擇器中。如果您沒有看到它,請重新啟動工作階段;若使用第三方供應商,請檢查您的部署是否已透過 `ANTHROPIC_DEFAULT_*_MODEL` 變數[釘選模型](#pin-models-for-third-party-deployments)。

806 

807您也可以將 `[1m]` 後綴與模型別名或完整模型名稱搭配使用:

808 

809```text theme={null}

810# Use the opus[1m] or sonnet[1m] alias

590/model opus[1m]811/model opus[1m]

591/model sonnet[1m]812/model sonnet[1m]

592 813 

593# 或將 [1m] 附加到完整模型名稱814# Or append [1m] to a full model name

594/model claude-opus-4-8[1m]815/model claude-opus-4-8[1m]

595```816```

596 817 

597<h4 id="sonnet-5-context-window">818<h4 id="sonnet-5-5-and-sonnet-5-context-window">

598 Sonnet 5 context window819 Sonnet 5.5 和 Sonnet 5 上下文視窗

599</h4>820</h4>

600 821 

601在 Anthropic API 上,Sonnet 5 始終使用 1M context window 執行。沒有 200K 變體,沒有可選擇的 `[1m]` 後綴,任何計畫都不需要使用額度。會話會在 window 填滿前自動壓縮,預設約在 967K 個 token 時;設定 [`CLAUDE_CODE_AUTO_COMPACT_WINDOW`](/docs/zh-TW/env-vars) 以選擇不同的閾值。822在 Anthropic API 上,Sonnet 5.5 和 Sonnet 5 一律以 1M 上下文視窗執行。沒有 200K 變體、沒有需要選擇的 `[1m]` 後綴,且任何方案都不需要用量點數。工作階段會在視窗填滿前自動壓縮,預設約在 967K token 時進行;設定 [`CLAUDE_CODE_AUTO_COMPACT_WINDOW`](/docs/zh-TW/env-vars) 以選擇不同的閾值。

823 

824在 [LLM 閘道](/docs/zh-TW/llm-gateway)或其他自訂 `ANTHROPIC_BASE_URL` 後方,Claude Code 也會為 Sonnet 5.5 和 Sonnet 5 提供相同的 1M 視窗。如果您的閘道強制執行較低的限制,請參閱[閘道後方的上下文視窗](#context-window-behind-a-gateway)。

825 

826下列設定會改以 200K 作為視窗預算:

827 

828* **`CLAUDE_CODE_DISABLE_1M_CONTEXT=1`**:將所有具有原生 1M 視窗之模型的工作階段限制在 200K 視窗;關於如何強制執行此限制,請參閱[延伸上下文](#extended-context)。適用於需要限制上下文的部署。

829 

830<h2 id="context-window-and-auto-compaction">

831 上下文視窗與自動壓縮

832</h2>

833 

834自動壓縮視窗是指上下文視窗在 Claude Code 壓縮對話之前可以填滿的程度。關於各機制在壓縮時保留與捨棄的內容,請參閱[壓縮後保留的內容](/docs/zh-TW/context-window#what-survives-compaction)。

835 

836<h3 id="set-the-auto-compact-window">

837 設定自動壓縮視窗

838</h3>

602 839 

603兩種配置會改為以 200K 計算 window,並在該邊界自動壓縮:840您可以在三個地方設定自動壓縮視窗:

604 841 

605* **LLM gateway**:當 `ANTHROPIC_BASE_URL` 指向[gateway](/docs/zh-TW/llm-gateway)時,Claude Code 無法驗證 1M 支援。若要使用完整的 window,請在模型選擇器中選擇 Sonnet 5 (1M context),它會對應到 `sonnet[1m]`。842* **適用於本次及之後的工作階段**:執行帶有值的 `/autocompact`,例如 `/autocompact 500k`。Claude Code 會將其以 [`autoCompactWindow`](/docs/zh-TW/settings-reference#autocompactwindow) 儲存至您的使用者設定,並套用至目前的工作階段;若受管設定等優先順序較高的[設定範圍](/docs/zh-TW/settings#settings-precedence)設定了此鍵,該命令仍會儲存您的值,但工作階段會維持該範圍的視窗,且命令會說明此情況。執行 `/autocompact auto` 可恢復為針對您的模型調校的視窗。

606* **`CLAUDE_CODE_DISABLE_1M_CONTEXT=1`**:將 Sonnet 5 會話視為具有 200K window,適用於需要限制 context 的部署。843* **適用於單次啟動**:啟動 Claude Code 時傳入 [`--autocompact`](/docs/zh-TW/cli-reference#cli-flags)。此旗標會在該次啟動中覆寫您已儲存的設定,但不會變更該設定;即使您已儲存的設定有值,`claude --autocompact auto` 仍會以調校後的視窗執行工作階段。與 `/autocompact` 不同,此旗標不會被受管設定等優先順序較高的設定範圍搶先覆寫。

844* **在指令碼與雲端環境中**:設定 [`CLAUDE_CODE_AUTO_COMPACT_WINDOW`](/docs/zh-TW/env-vars)。設定此變數期間,它會優先於命令、旗標與設定,且 `/autocompact` 會回報此覆寫,而不會變更視窗。

845 

846命令與旗標接受 100K 至 1M token 的視窗大小,可使用下列任一形式:

847 

848* 單純的 token 數量,例如 `200000`

849* 帶有 `k` 或 `M` 後綴,例如 `500k` 或 `1M`

850* 100 至 1000 之間的純數字,代表千,因此 `200` 會設定為 200,000

851 

852環境變數只接受單純的 token 數量。Claude Code 會將視窗上限設為模型的上下文視窗。

853 

854<h3 id="default-auto-compact-thresholds">

855 預設自動壓縮閾值

856</h3>

857 

858若您未設定自動壓縮視窗,Claude Code 會在對話達到模型的上下文限制時進行壓縮,但下列工作階段除外:

859 

860* [雲端工作階段](/docs/zh-TW/claude-code-on-the-web)會在對話接近模型限制時進行壓縮

861* 未啟用[擴充上下文](#extended-context)的 Sonnet 4.6 與 Opus 4.6 會在 200K 邊界進行壓縮;Opus 4.8 及更新版本以 200K 上下文視窗執行時(例如在 Amazon Bedrock、Google Cloud 的 Agent Platform 與 Microsoft Foundry 上)也是如此

862* 當您設定 [`CLAUDE_CODE_DISABLE_1M_CONTEXT=1`](/docs/zh-TW/env-vars) 時,具有原生 1M 視窗的模型(例如 Sonnet 5 與 Fable 模型)會在 200K 邊界進行壓縮

863* 以原生 1M 視窗執行的模型會在視窗填滿前進行壓縮,預設約為 967K token。在 Anthropic API 上,這些模型包括 Sonnet 5、Fable 模型,以及 Opus 4.7 及更新版本。在 Amazon Bedrock、Google Cloud 的 Agent Platform 與 Microsoft Foundry 上,哪些模型以該視窗執行,請參閱[為第三方部署固定模型](#pin-models-for-third-party-deployments)。若位於自訂 `ANTHROPIC_BASE_URL` 之後,請參閱[閘道後方的上下文視窗](#context-window-behind-a-gateway)

864* 使用 Claude Code 無法辨識之模型 ID(例如 [LLM 閘道](/docs/zh-TW/llm-gateway)別名)的工作階段,會在 Claude Code 為該 ID 假定的上下文視窗進行壓縮;請參閱[為閘道或自訂模型 ID 修正視窗](#correct-the-window-for-a-gateway-or-custom-model-id)

865 

866<h3 id="correct-the-window-for-a-gateway-or-custom-model-id">

867 為閘道或自訂模型 ID 修正視窗

868</h3>

869 

870在 [LLM 閘道](/docs/zh-TW/llm-gateway)或其他自訂部署上,無論 Claude Code 是否將模型 ID 解析為 Claude 模型,它為該 ID 假定的上下文視窗都可能與模型的實際視窗不同。請將 [`CLAUDE_CODE_MAX_CONTEXT_TOKENS`](/docs/zh-TW/env-vars) 設為 Claude Code 應改為假定的視窗。

871 

872此變數如何套用取決於 ID。當 ID 不以 `claude-` 開頭(不分大小寫),或帶有 Claude Code 在讀取 ID 時會去除的後綴(例如 Google Cloud 的 Agent Platform 上使用的 `@YYYYMMDD` 日期)時,Claude Code 會將其視為供應商或自訂拼寫。在 v2.1.259 之前,Claude Code 不會計入被去除的後綴,因此帶有日期後綴且無法辨識的 `claude-` ID 會被視為單純的 `claude-` 名稱。

873 

874無法辨識的供應商或自訂拼寫、帶有 `[1m]` 的相同拼寫,以及其他所有 ID,是三種不同的情況:

875 

876* 若 Claude Code 無法將供應商或自訂拼寫解析為其可辨識的模型,且 ID 不包含 `[1m]`,則此變數會直接套用,主動壓縮會在宣告的視窗繼續進行。

877* 若 Claude Code 無法將供應商或自訂拼寫解析為其可辨識的模型,且 ID 包含 `[1m]`(不分大小寫),Claude Code 會為其假定 1M 視窗,此變數單獨設定時不會套用。若要在保留主動壓縮的同時修正視窗,請一併設定 [`CLAUDE_CODE_DISABLE_1M_CONTEXT=1`](/docs/zh-TW/env-vars)。設定該變數後,Claude Code 會將此 ID 的大小視同不含 `[1m]` 的相同拼寫,因此 `CLAUDE_CODE_MAX_CONTEXT_TOKENS` 會在其適用於該未標記拼寫時套用。

878 

879 當宣告的視窗超過 200K 時,Claude Code 接著會顯示 200K 限制未被強制執行的[啟動警告](/docs/zh-TW/errors#the-200k-limit-isnt-enforced)。在此設定下出現此警告是預期的行為。

880* 若 ID 解析為 Claude Code 可辨識的模型,或 ID 是沒有可供 Claude Code 去除之後綴的單純 `claude-` 名稱(不分大小寫),則只有在您同時設定 [`DISABLE_COMPACT`](/docs/zh-TW/env-vars)(此設定會停用所有壓縮)時,此變數才會生效。

881 

882 例如,包含 Claude Code 已知之 Claude 模型名稱的 ID,例如 `anthropic/claude-opus-4-8`、`us.anthropic.claude-…-v1:0` 或帶日期的 `claude-sonnet-4-5@20250929`,會解析為該模型。這也包括同時包含 `[1m]` 的 ID:即使設定了 `CLAUDE_CODE_DISABLE_1M_CONTEXT`,Claude Code 仍會將 `claude-opus-4-8[1m]` 解析為 Opus 4.8。

883 

884對於 Claude Code 無法辨識的模型 ID,請設定 [`CLAUDE_CODE_DISABLE_UNKNOWN_MODEL_WINDOW_ENFORCEMENT=1`](/docs/zh-TW/env-vars),讓 Claude Code 僅在 API 以 [Claude Code 可辨識的過長錯誤](/docs/zh-TW/errors#prompt-is-too-long)拒絕對話後才進行壓縮。當閘道將錯誤[改寫](/docs/zh-TW/llm-gateway-connect#troubleshoot-gateway-errors)為 Claude Code 無法辨識的措辭時,Claude Code 不會執行該復原程序。

607 885 

608<h2 id="checking-your-current-model">886<h2 id="checking-your-current-model">

609 檢查您目前的模型887 檢查您目前的模型


618 新增自訂模型選項896 新增自訂模型選項

619</h2>897</h2>

620 898 

621使用 `ANTHROPIC_CUSTOM_MODEL_OPTION` 將單一自訂項目新增到 `/model` 選擇器,而無需取代內建別名。這對於測試 Claude Code 預設不列出的模型 ID 很有用。對於 LLM 閘道部署,當設定 `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY=1` 時,Claude Code 可以從閘道的 `/v1/models` 端點填入選擇器,因此只有在探索被停用或未傳回您想要的模型時,才需要此變數。請參閱 [gateway model discovery](/docs/zh-TW/llm-gateway-protocol#model-discovery)。899使用 `ANTHROPIC_CUSTOM_MODEL_OPTION` 可在 `/model` 選擇器中新增單一自訂項目,而不會取代內建的別名。這對於測試 Claude Code 預設未列出的模型 ID 很有用。對於 LLM 閘道部署,當設定 `CLAUDE_CODE_ENABLE_GATEWAY_MODEL_DISCOVERY=1` 時,Claude Code 可以從閘道的 `/v1/models` 端點填入選擇器,因此只有在停用探索功能,或探索未傳回您想要的模型時,才需要此變數。請參閱[閘道模型探索](/docs/zh-TW/llm-gateway-protocol#model-discovery)。

622 900 

623此範例設定所有三個變數以使閘道路由的 Opus 部署可選擇:901若要改為列出多個模型,並依您自己的順序、使用您選擇的標籤,請設定 [`modelPicker`](/docs/zh-TW/settings-reference#modelpicker)。其說明項目會指出當該清單取代內建清單時,選擇器會保留哪些列。

902 

903此範例設定全部三個變數,讓透過閘道路由的 Opus 部署可供選取。Claude Code 會在啟動時讀取環境變數,因此請在啟動 `claude` 之前執行這些 export 指令,或重新啟動現有的工作階段以套用它們:

624 904 

625```bash theme={null}905```bash theme={null}

626export ANTHROPIC_CUSTOM_MODEL_OPTION="my-gateway/claude-opus-4-8"906export ANTHROPIC_CUSTOM_MODEL_OPTION="my-gateway/claude-opus-5-5"

627export ANTHROPIC_CUSTOM_MODEL_OPTION_NAME="Opus via Gateway"907export ANTHROPIC_CUSTOM_MODEL_OPTION_NAME="Opus via Gateway"

628export ANTHROPIC_CUSTOM_MODEL_OPTION_DESCRIPTION="Custom deployment routed through the internal LLM gateway"908export ANTHROPIC_CUSTOM_MODEL_OPTION_DESCRIPTION="Custom deployment routed through the internal LLM gateway"

629```909```

630 910 

631自訂項目出現在 `/model` 選擇器的底部。`ANTHROPIC_CUSTOM_MODEL_OPTION_NAME` 和 `ANTHROPIC_CUSTOM_MODEL_OPTION_DESCRIPTION` 是可選的。如果省略,模型 ID 會用作名稱,描述預設為 `Custom model (<model-id>)`。911`ANTHROPIC_CUSTOM_MODEL_OPTION_NAME` 和 `ANTHROPIC_CUSTOM_MODEL_OPTION_DESCRIPTION` 為選用項目:

912 

913* 若省略名稱,當 Claude Code [識別出該 ID](#customize-pinned-model-display-and-capabilities) 時,該項目會顯示模型的名稱,否則會顯示模型 ID。

914* 若省略說明,Claude Code 會使用 `Custom model (<model-id>)`。

632 915 

633Claude Code 會跳過在 `ANTHROPIC_CUSTOM_MODEL_OPTION` 中設定的模型 ID 的驗證,因此您可以使用您的 API 端點接受的任何字串。當設定 [`availableModels`](#restrict-model-selection) 時,也要在允許清單中包含自訂模型 ID:自訂項目會從選擇器中篩選出來,對其進行 `--model` 選擇會被拒絕,就像任何其他被排除的模型一樣。嵌入家族名稱的自訂 ID(例如 `my-gateway/claude-opus-4-8`)會計為該家族的特定項目,並停用其萬用字元,因此也要列出您打算保持可選擇的版本。請參閱 [Merge behavior](#merge-behavior)。916Claude Code 會將自訂項目列在內建項目之後,而您附加的任何 [`modelPicker`](/docs/zh-TW/settings-reference#modelpicker) 列則會排在其後。

917 

918Claude Code 會略過 `ANTHROPIC_CUSTOM_MODEL_OPTION` 中所設定模型 ID 的驗證,因此您可以使用 API 端點接受的任何字串。

919 

920當設定了 [`availableModels`](#restrict-model-selection) 時,也請將自訂模型 ID 加入允許清單中。否則 Claude Code 會從選擇器中過濾掉該自訂項目,並如同其他被排除的模型一樣,拒絕以 `--model` 選取它。

921 

922內嵌家族名稱的自訂 ID(例如 `my-gateway/claude-opus-5-5`)會被視為該家族的特定項目,並停用其萬用字元,因此也請列出您打算保持可選取的版本。請參閱[合併行為](#merge-behavior)。

634 923 

635<h2 id="environment-variables">924<h2 id="environment-variables">

636 環境變數925 環境變數

637</h2>926</h2>

638 927 

639您可以使用以下環境變數來控制別名對應到的模型名稱。每個值必須是完整的模型名稱,或您的 API 提供者的等效識別碼。928使用下列環境變數來控制別名所對應的模型名稱。每個值都必須是完整的模型名稱,或是您的 API 供應商的對等識別碼。若要選擇工作階段啟動時使用的模型,請設定 [`ANTHROPIC_DEFAULT_MODEL`](#set-a-default-model-for-new-sessions),此表未列出該變數。

640 929 

641| 環境變數 | 描述 |930| 環境變數 | 說明 |

642| - | - |931| - | - |

643| `ANTHROPIC_DEFAULT_FABLE_MODEL` | 用於 `fable` 的模型,以及 Claude Code 識別為 Fable 5 的模型 ID,用於第三方提供者上的[自動模型回退](#automatic-model-fallback) |932| `ANTHROPIC_DEFAULT_FABLE_MODEL` | 用於 `fable` 的模型,也是 Claude Code 在第三方供應商上為[自動模型備援](#automatic-model-fallback)識別為 Fable 模型的模型 ID |

644| `ANTHROPIC_DEFAULT_OPUS_MODEL` | 用於 `opus` 的模型,或在 Plan Mode 活動時用於 `opusplan` 的模型。 |933| `ANTHROPIC_DEFAULT_OPUS_MODEL` | 用於 `opus` 的模型,或在 Plan Mode 啟用時用於 `opusplan` 的模型。 |

645| `ANTHROPIC_DEFAULT_SONNET_MODEL` | 用於 `sonnet` 的模型,或在 Plan Mode 未活動時用於 `opusplan` 的模型。 |934| `ANTHROPIC_DEFAULT_SONNET_MODEL` | 用於 `sonnet` 的模型,或在 Plan Mode 未啟用時用於 `opusplan` 的模型。 |

646| `ANTHROPIC_DEFAULT_HAIKU_MODEL` | 用於 `haiku` 的模型,或[背景功能](/docs/zh-TW/costs#background-token-usage) |935| `ANTHROPIC_DEFAULT_HAIKU_MODEL` | 用於 `haiku` 或[背景功能](/docs/zh-TW/costs#background-token-usage)的模型 |

647| `CLAUDE_CODE_SUBAGENT_MODEL` | 用於所有 [subagents](/docs/zh-TW/sub-agents#choose-a-model)、[agent teams](/docs/zh-TW/agent-teams) 和 [workflow](/docs/zh-TW/workflows) 執行的代理的模型。接受別名(例如 `haiku`)或完整模型名稱,並覆蓋每次調用的 `model` 參數和 subagent 定義的 `model` frontmatter。設定為 `inherit` 以改用一般模型解析 |936| `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` 等別名或完整模型名稱。每次呼叫指定的模型或定義中的 `model` 欄位(包括 `inherit`)優先於此設定。若要改變此行為,請設定 [`CLAUDE_CODE_SUBAGENT_MODEL_FORCE`](/docs/zh-TW/sub-agents#run-every-subagent-on-one-model) |

648 937 

649注意:`ANTHROPIC_SMALL_FAST_MODEL` 已棄用,改用 `ANTHROPIC_DEFAULT_HAIKU_MODEL`。938在第三方供應商上,[自訂固定模型的顯示與功能](#customize-pinned-model-display-and-capabilities)說明了固定模型在 `/model` 選擇器中的該列會顯示什麼內容。

939 

940注意:`ANTHROPIC_SMALL_FAST_MODEL` 已棄用,請改用

941`ANTHROPIC_DEFAULT_HAIKU_MODEL`。

650 942 

651<h3 id="pin-models-for-third-party-deployments">943<h3 id="pin-models-for-third-party-deployments">

652 為第三方部署固定模型944 為第三方部署固定模型

653</h3>945</h3>

654 946 

655當透過 [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) 部署 Claude Code 時,在向使用者推出前固定模型版本。947透過 [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) 部署 Claude Code 時,請在推出給使用者之前固定模型版本。

948 

949若未固定,Claude Code 會使用 `fable`、`opus`、`sonnet` 和 `haiku` 等模型別名,這些別名會解析為各供應商的內建預設模型 ID。該預設值可能落後於 Anthropic 的最新版本,且其指向的模型可能尚未在使用者的帳戶中啟用。當預設模型無法使用時,Amazon Bedrock 和 Google Cloud's Agent Platform 使用者會看到通知,工作階段會改用較早版本的預設模型;若預設模型為 Opus 模型且沒有可用的 Opus 版本,則會改用預設的 Sonnet 模型。Microsoft Foundry 使用者則會看到錯誤,因為 Microsoft Foundry 沒有對等的啟動檢查。

656 950 

657不固定模型時,Claude Code 使用模型別名(例如 `fable`、`opus`、`sonnet` 和 `haiku`),這些別名會解析為每個提供者的內建預設模型 ID。該預設值可能落後於最新的 Anthropic 版本,而且它指向的模型可能尚未在使用者的帳戶中啟用。當預設值不可用時,Amazon Bedrock 和 Google Cloud's Agent Platform 使用者會看到通知並回退到該會話的先前版本,或當預設值是 Opus 模型且沒有 Opus 版本可用時回退到預設 Sonnet 模型。Microsoft Foundry 使用者會看到錯誤,因為 Microsoft Foundry 沒有等效的啟動檢查。951在 Amazon Bedrock 和 Google Cloud's Agent Platform 上,若使用者以特定的 Sonnet 或 Opus 版本啟動工作階段(例如透過 `--model`、`ANTHROPIC_MODEL` 或 `model` 設定),該版本會被固定為對應別名在該工作階段中的預設值:啟動檢查會略過被其取代的內建預設值,且不會顯示備援通知。在 v2.1.211 之前,即使已明確設定工作階段模型,檢查仍會執行並可能顯示通知。

658 952 

659<Warning>953<Warning>

660 在初始設定中將模型環境變數設定為特定版本 ID。固定讓您控制使用者何時移動到新模型。954 請在初始設定時將模型環境變數設定為特定的版本 ID。固定模型可讓您控制使用者何時移轉到新模型。

661</Warning>955</Warning>

662 956 

663使用以下環境變數搭配您提供者的版本特定模型 ID:957請針對您的供應商,搭配特定版本的模型 ID 使用下列環境變數:

664 958 

665| 提供者 | 範例 |959| 供應商 | 範例 |

666| :- | :- |960| :- | :- |

667| Amazon Bedrock | `export ANTHROPIC_DEFAULT_OPUS_MODEL='us.anthropic.claude-opus-4-8'` |961| Amazon Bedrock | `export ANTHROPIC_DEFAULT_OPUS_MODEL='us.anthropic.claude-opus-4-8'` |

668| Google Cloud's Agent Platform | `export ANTHROPIC_DEFAULT_OPUS_MODEL='claude-opus-4-8'` |962| Google Cloud's Agent Platform | `export ANTHROPIC_DEFAULT_OPUS_MODEL='claude-opus-4-8'` |

669| Microsoft Foundry | `export ANTHROPIC_DEFAULT_OPUS_MODEL='claude-opus-4-8'` |963| Microsoft Foundry | `export ANTHROPIC_DEFAULT_OPUS_MODEL='claude-opus-4-8'` |

670 964 

671對 `ANTHROPIC_DEFAULT_FABLE_MODEL`、`ANTHROPIC_DEFAULT_SONNET_MODEL` 和 `ANTHROPIC_DEFAULT_HAIKU_MODEL` 應用相同的模式。有關所有提供者的目前和舊版模型 ID,請參閱[模型概述](https://platform.claude.com/docs/en/about-claude/models/overview)。若要將使用者升級到新模型版本,請更新這些環境變數並重新部署。965對 `ANTHROPIC_DEFAULT_FABLE_MODEL`、`ANTHROPIC_DEFAULT_SONNET_MODEL` 和 `ANTHROPIC_DEFAULT_HAIKU_MODEL` 套用相同的模式。如需所有供應商目前與舊版的模型 ID,請參閱[模型概覽](https://platform.claude.com/docs/en/about-claude/models/overview)。若要將使用者升級至新的模型版本,請更新這些環境變數並重新部署。

672 966 

673若要為固定模型啟用[擴展 context](#extended-context),請將 `[1m]` 附加到 `ANTHROPIC_DEFAULT_OPUS_MODEL` 或 `ANTHROPIC_DEFAULT_SONNET_MODEL` 中的模型 ID:967若要為固定模型啟用[延伸上下文](#extended-context),請在 `ANTHROPIC_DEFAULT_OPUS_MODEL`、`ANTHROPIC_DEFAULT_SONNET_MODEL` 或 `ANTHROPIC_DEFAULT_FABLE_MODEL` 中的模型 ID 後方附加 `[1m]`:

674 968 

675```bash theme={null}969```bash theme={null}

676export ANTHROPIC_DEFAULT_OPUS_MODEL='claude-opus-4-8[1m]'970export ANTHROPIC_DEFAULT_OPUS_MODEL='claude-opus-4-8[1m]'

677```971```

678 972 

679`[1m]` 後綴將 1M context window 應用於 `opus` 和 `sonnet` 別名的所有使用,包括 [`opusplan`](#opusplan-model-setting) 的 plan-mode Opus 階段。973加上 `[1m]` 後綴後,1M 上下文視窗會套用於該固定別名的所有使用情境,包括 [`opusplan`](#opusplan-model-setting) 的 plan mode Opus 階段,以及 `model` frontmatter 指定該別名的 [subagent](/docs/zh-TW/sub-agents#choose-a-model)。

680 974 

681* Claude Code 在將模型 ID 發送到您的提供者之前會移除該後綴。975* Claude Code 會在將模型 ID 傳送給您的供應商之前移除此後綴。

682* 只有當基礎模型[支援 1M context](https://platform.claude.com/docs/en/build-with-claude/context-windows#context-window-sizes-by-model) 時,才附加 `[1m]`。976* 僅在底層模型[支援 1M 上下文](https://platform.claude.com/docs/en/build-with-claude/context-windows#context-window-sizes-by-model)時才附加 `[1m]`。

683* 後綴是按變數讀取的,而不是按模型讀取的。在 Amazon Bedrock、Google Cloud's Agent Platform 和 Microsoft Foundry 上,一個變數中沒有 `[1m]` 的模型 ID 會使用 200K context,即使另一個變數設定相同的模型並帶有後綴。Sonnet 5 在這些提供者上始終以 1M window 執行,永遠不需要後綴。977* 後綴是依變數讀取,而非依模型讀取。在 Amazon Bedrock、Google Cloud's Agent Platform 和 Microsoft Foundry 上,某個變數中不含 `[1m]` 的模型 ID 會使用 200K 上下文,即使另一個變數以後綴設定了相同的模型亦然。Sonnet 5 在這些供應商上一律以 1M 視窗執行,永遠不需要後綴。

978 

979當您設定 `ANTHROPIC_DEFAULT_*_MODEL` 變數時,`/model` 選擇器會以該模型的單一列取代該系列的內建列,包括所有 1M 上下文列。若要在不為該變數加上後綴的情況下使用 1M 視窗,使用者可執行 `/model opus[1m]`,Claude Code 會將後綴套用至該變數所指定的模型。`/model sonnet[1m]` 的運作方式相同。

684 980 

685<Note>981<Note>

686 使用第三方提供者時,透過 [MDM 或受管設定檔](/docs/zh-TW/settings#settings-files) 傳遞的 `availableModels` 允許清單仍然適用;[伺服器管理的設定不會在那裡傳遞](/docs/zh-TW/server-managed-settings#platform-availability)。篩選會根據模型別名(例如 `opus`)、版本前綴(例如 `claude-opus-4-8`)或完整提供者形式模型 ID 進行匹配。提供者特定的前綴(例如 `us.anthropic.`)不會被移除,因此若要允許特定模型,請列出選擇器顯示的相同提供者形式 ID,或透過 [`modelOverrides`](#override-model-ids-per-version) 對應它。任何 `[1m]` 後綴會從允許清單項目和請求的模型中移除,然後進行匹配。982 透過 [MDM 或受管設定檔](/docs/zh-TW/managed-settings#delivery-mechanisms)派送的 `availableModels` 允許清單在使用第三方供應商時仍然適用;[伺服器受管設定不會派送至該處](/docs/zh-TW/server-managed-settings#platform-availability)。

983 

984 篩選會比對 `opus` 等模型別名、`claude-opus-4-8` 等版本前綴,或完整的供應商格式模型 ID。`us.anthropic.` 等供應商特定前綴不會被移除,因此若要允許特定模型,請列出其完整的供應商格式 ID,或透過 [`modelOverrides`](#override-model-ids-per-version) 進行對應。對於固定模型,該 ID 即為您在其 `ANTHROPIC_DEFAULT_*_MODEL` 變數中設定的值。比對前,允許清單項目與所要求模型中的任何 `[1m]` 後綴都會被移除。

687</Note>985</Note>

688 986 

689<h3 id="customize-pinned-model-display-and-capabilities">987<h3 id="customize-pinned-model-display-and-capabilities">

690 自訂固定模型顯示和能力988 自訂固定模型的顯示與功能

691</h3>989</h3>

692 990 

693當您在第三方提供者上固定模型時,提供者特定的 ID 會按原樣出現在 `/model` 選擇器中,Claude Code 可能無法識別模型支援的功能。您可以使用每個固定模型的伴隨環境變數覆蓋顯示名稱並宣告能力。991當您在第三方供應商上固定模型時,若 Claude Code 能識別固定的 ID,該模型在 `/model` 選擇器中的列預設會顯示模型名稱,否則會顯示原始 ID:

992 

993* **可識別**:Claude Code 已知模型的確切 ID,例如其 Anthropic API ID,或您的供應商或閘道所使用的對應格式,不論是否帶有 `[1m]` 後綴。固定 `us.anthropic.claude-sonnet-4-5-20250929-v1:0` 時,該列會顯示 `Sonnet 4.5`。

994* **無法識別**:任何其他 ID,例如應用程式推論設定檔 ARN 或 Claude Code 不認得的模型版本,除非有 [`modelOverrides`](#override-model-ids-per-version) 項目將某個模型對應到該確切字串。在 Microsoft Foundry 上,部署名稱由使用者自訂,因此無論是否有對應,Claude Code 都無法識別該處的固定 ID,該列預設會顯示部署名稱。

995 

996當某列顯示模型名稱時,其預設說明會包含固定的 ID,讓您仍能看出固定的是哪個 ID。

694 997 

695這些變數在 Amazon Bedrock、Google Cloud's Agent Platform 和 Microsoft Foundry 等第三方提供者上生效。`_NAME` 和 `_DESCRIPTION` 變數在 `ANTHROPIC_BASE_URL` 指向 [LLM gateway](/docs/zh-TW/llm-gateway) 時也會生效。當直接連接到 `api.anthropic.com` 時無效。998Claude Code 也可能無法識別固定模型支援哪些功能。您可以針對每個固定模型,使用配套的環境變數自行設定顯示名稱與說明,並宣告其功能。

696 999 

697| 環境變數 | 描述 |1000這些變數在 Amazon Bedrock、Google Cloud's Agent Platform 和 Microsoft Foundry 等第三方供應商上生效。當 `ANTHROPIC_BASE_URL` 指向 [LLM 閘道](/docs/zh-TW/llm-gateway)時,`_NAME` 和 `_DESCRIPTION` 變數也會生效。直接連線至 `api.anthropic.com` 時,這些變數沒有作用。

1001 

1002| 環境變數 | 說明 |

698| - | - |1003| - | - |

699| `ANTHROPIC_DEFAULT_OPUS_MODEL_NAME` | `/model` 選擇器中固定 Opus 模型的顯示名稱。未設定時預設為模型 ID |1004| `ANTHROPIC_DEFAULT_OPUS_MODEL_NAME` | 固定的 Opus 模型在 `/model` 選擇器中的顯示名稱。未設定時,若 Claude Code 能識別固定的 ID,該列會顯示模型名稱,否則顯示固定的 ID |

700| `ANTHROPIC_DEFAULT_OPUS_MODEL_DESCRIPTION` | `/model` 選擇器中固定 Opus 模型的顯示描述。未設定時預設為 `Custom Opus model` |1005| `ANTHROPIC_DEFAULT_OPUS_MODEL_DESCRIPTION` | 固定的 Opus 模型在 `/model` 選擇器中的顯示說明。未設定時,該列會顯示以 `Custom Opus model` 開頭的預設說明 |

701| `ANTHROPIC_DEFAULT_OPUS_MODEL_SUPPORTED_CAPABILITIES` | 固定 Opus 模型支援的能力的逗號分隔清單 |1006| `ANTHROPIC_DEFAULT_OPUS_MODEL_SUPPORTED_CAPABILITIES` | 固定的 Opus 模型所支援功能的逗號分隔清單 |

702 1007 

703相同的 `_NAME`、`_DESCRIPTION` 和 `_SUPPORTED_CAPABILITIES` 後綴可用於 `ANTHROPIC_DEFAULT_SONNET_MODEL`、`ANTHROPIC_DEFAULT_HAIKU_MODEL`、`ANTHROPIC_DEFAULT_FABLE_MODEL` 和 `ANTHROPIC_CUSTOM_MODEL_OPTION`。1008相同的 `_NAME`、`_DESCRIPTION` 和 `_SUPPORTED_CAPABILITIES` 後綴也可用於 `ANTHROPIC_DEFAULT_SONNET_MODEL`、`ANTHROPIC_DEFAULT_HAIKU_MODEL`、`ANTHROPIC_DEFAULT_FABLE_MODEL` 和 `ANTHROPIC_CUSTOM_MODEL_OPTION`。

704 1009 

705Claude Code 透過將模型 ID 與已知模式進行匹配來啟用[努力等級](#adjust-effort-level)和[擴展思考](#extended-thinking)等功能。提供者特定的 ID(例如 Amazon Bedrock ARN 或自訂部署名稱)通常不符合這些模式,導致支援的功能被禁用。設定 `_SUPPORTED_CAPABILITIES` 以告訴 Claude Code 模型實際支援的功能:1010Claude Code 會將模型 ID 與已知模式進行比對,以啟用 [effort 等級](#adjust-effort-level)和[延伸思考](#extended-thinking)等功能。Amazon Bedrock ARN 或自訂部署名稱等供應商特定 ID 通常不符合這些模式,導致受支援的功能維持停用。請設定 `_SUPPORTED_CAPABILITIES`,告知 Claude Code 該模型實際支援哪些功能:

706 1011 

707| 能力值 | 啟用 |1012| 功能值 | 啟用 |

708| - | - |1013| - | - |

709| `effort` | [努力等級](#adjust-effort-level)和 `/effort` 命令 |1014| `effort` | [Effort 等級](#adjust-effort-level)與 `/effort` 命令 |

710| `xhigh_effort` | `xhigh` 努力等級 |1015| `xhigh_effort` | `xhigh` effort 等級 |

711| `max_effort` | `max` 努力等級 |1016| `max_effort` | `max` effort 等級 |

712| `thinking` | [擴展思考](#extended-thinking) |1017| `thinking` | [延伸思考](#extended-thinking) |

713| `adaptive_thinking` | 根據任務複雜性動態分配思考的自適應推理 |1018| `adaptive_thinking` | 依任務複雜度動態分配思考的自適應推理 |

714| `interleaved_thinking` | 工具呼叫之間的思考 |1019| `interleaved_thinking` | 在工具呼叫之間進行思考 |

715 1020 

716當設定 `_SUPPORTED_CAPABILITIES` 時,列出的能力會為匹配的固定模型啟用,未列出的能力會被禁用。當變數未設定時,Claude Code 會回退到基於模型 ID 的內建檢測。1021設定 `_SUPPORTED_CAPABILITIES` 後,Claude Code 會針對對應的固定模型啟用所列出的功能,並停用未列出的功能。未設定此變數時,Claude Code 會改用依模型 ID 進行的內建偵測。

717 1022 

718此範例將 Opus 固定到 Amazon Bedrock 自訂模型 ARN,設定友善名稱,並宣告其能力:1023此範例將 Opus 固定至 Amazon Bedrock 自訂模型 ARN、設定易於辨識的名稱,並宣告其功能:

719 1024 

720```bash theme={null}1025```bash theme={null}

721export ANTHROPIC_DEFAULT_OPUS_MODEL='arn:aws:bedrock:us-east-1:123456789012:custom-model/abc'1026export ANTHROPIC_DEFAULT_OPUS_MODEL='arn:aws:bedrock:us-east-1:123456789012:custom-model/abc'


725```1030```

726 1031 

727<h3 id="override-model-ids-per-version">1032<h3 id="override-model-ids-per-version">

728 按版本覆蓋模型 ID1033 依版本覆寫模型 ID

729</h3>1034</h3>

730 1035 

731家族級環境變數上述為每個家族別名配置一個模型 ID。如果您需要將同一家族內的多個版本對應到不同的提供者 ID,請改用 `modelOverrides` 設定。1036在嵌入 Claude Code 並設定 [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](/docs/zh-TW/env-vars) 的平台上,主機的模型設定優先於受管模型設定,而受管的 `availableModels` 允許清單則持續有效,除非主機提供自己的允許清單;[受管設定優先順序的例外](/docs/zh-TW/settings#exceptions-to-managed-settings-precedence)說明了主機會覆寫哪些鍵與變數。

1037 

1038上述系列層級的環境變數會為每個系列別名設定一個模型 ID。若您需要將同一系列中的多個版本對應到不同的供應商 ID,請改用 `modelOverrides` 設定。

732 1039 

733`modelOverrides` 將個別 Anthropic 模型 ID 對應到 Claude Code 發送到您提供者 API 的提供者特定字串。當使用者在 `/model` 選擇器中選擇對應的模型時,Claude Code 會使用您配置的值而不是內建預設值。1040`modelOverrides` 會將個別的 Anthropic 模型 ID 對應到 Claude Code 傳送至您供應商 API 的供應商特定字串。當使用者在 `/model` 選擇器中選取已對應的模型時,Claude Code 會使用您設定的值,而非內建預設值。

734 1041 

735這讓企業管理員可以將每個模型版本路由到特定的 Amazon Bedrock 推論設定檔 ARN、Google Cloud's Agent Platform 版本名稱或 Microsoft Foundry 部署名稱,以進行治理、成本分配或區域路由。1042這讓企業管理員能將每個模型版本路由至特定的 Amazon Bedrock 推論設定檔 ARN、Google Cloud's Agent Platform 版本名稱或 Microsoft Foundry 部署名稱,以用於治理、成本分攤或區域路由。

736 1043 

737在您的[設定檔](/docs/zh-TW/settings#settings-files)中設定 `modelOverrides`:1044在您的[設定檔](/docs/zh-TW/settings#where-settings-live)中設定 `modelOverrides`:

738 1045 

739```json theme={null}1046```json theme={null}

740{1047{


746}1053}

747```1054```

748 1055 

749鍵必須是[模型概述](https://platform.claude.com/docs/en/about-claude/models/overview)中列出的 Anthropic 模型 ID。對於日期模型 ID,請包含日期後綴,完全如其所示。未知的鍵會被忽略。1056鍵必須是[模型概覽](https://platform.claude.com/docs/en/about-claude/models/overview)中列出的 Anthropic 模型 ID。對於帶有日期的模型 ID,請完全依照該處所示加上日期後綴。未知的鍵會被忽略。

750 1057 

751覆蓋會取代支援 `/model` 選擇器中每個項目的內建模型 ID。在 Amazon Bedrock 上,`modelOverrides` 項目優先於 Claude Code 在啟動時自動發現的任何推論設定檔。Claude Code 會將已經是提供者原生的值(例如 Amazon Bedrock 推論設定檔 ARN 或 Microsoft Foundry 部署名稱)按原樣傳遞給提供者。1058若要停止針對閘道別名等 ID 出現的 `[claude-code:unrecognized_model]` [診斷訊息行](/docs/zh-TW/errors#unrecognized-model-id-on-a-request),請新增一個以該 ID 為值的項目。

752 1059 

753當您直接透過 `--model`、`ANTHROPIC_MODEL` 環境變數或 `ANTHROPIC_DEFAULT_*_MODEL` 環境變數傳遞 Anthropic 模型 ID 時,覆蓋也會適用。在 Amazon Bedrock、Google Cloud's Agent Platform 和 [Mantle](/docs/zh-TW/amazon-bedrock#use-the-mantle-endpoint) 上,沒有 `modelOverrides` 項目的 Anthropic 模型 ID 會解析為與該版本的 `/model` 選擇器列相同的提供者特定 ID(當提供者支援該版本時)。Mantle 支援版本的子集。對於該子集之外的 Anthropic 模型 ID,Claude Code 會將原始 ID 發送到 Mantle 而不進行對應,除非 `modelOverrides` 項目涵蓋它。在 v2.1.200 之前,`--model` 和環境變數值會按原樣到達提供者,不會通過覆蓋對應。1060覆寫會取代 `/model` 選擇器中每個項目背後的內建模型 ID。在 Amazon Bedrock 上,`modelOverrides` 項目優先於 Claude Code 在啟動時自動探索到的任何推論設定檔。對於已是供應商原生格式的值,例如 Amazon Bedrock 推論設定檔 ARN 或 Microsoft Foundry 部署名稱,Claude Code 會原樣傳遞給供應商。

754 1061 

755`modelOverrides` 與 `availableModels` 一起運作。允許清單會根據 Anthropic 模型 ID 進行評估,而不是覆蓋值,因此 `availableModels` 中的項目(如 `"opus"`)即使 Opus 版本對應到 ARN 時仍會繼續匹配。當在受管設定中設定 `enforceAvailableModels` 時,強制執行的預設值會從[最高優先順序受管來源](/docs/zh-TW/server-managed-settings#settings-precedence)透過 `modelOverrides` 解析。管理員的對應(例如固定到推論設定檔 ARN 的版本)會在強制執行的預設值中受到尊重。來自使用者或專案設定的覆蓋不會影響它。1062當您透過 `--model`、`ANTHROPIC_MODEL` 環境變數或 `ANTHROPIC_DEFAULT_*_MODEL` 環境變數直接傳入 Anthropic 模型 ID 時,覆寫同樣適用。在 Amazon Bedrock、Google Cloud's Agent Platform 和 [Mantle](/docs/zh-TW/amazon-bedrock#use-the-mantle-endpoint) 上,沒有 `modelOverrides` 項目的 Anthropic 模型 ID 會解析為與該版本在 `/model` 選擇器中的列相同的供應商特定 ID,前提是供應商支援該版本。Mantle 僅支援部分版本。對於不在該範圍內的 Anthropic 模型 ID,Claude Code 會將原始 ID 直接傳送至 Mantle 而不進行對應,除非有 `modelOverrides` 項目涵蓋它。在 v2.1.200 之前,`--model` 與環境變數的值會原樣傳送至供應商,不會經過覆寫對應表。

756 1063 

757當 `availableModels` 在[受管設定](/docs/zh-TW/settings#settings-files)中設定時,只有來自該受管來源的 `modelOverrides` 適用於直接透過 `--model` 或上述環境變數傳遞的 Anthropic 模型 ID。Claude Code 會忽略來自使用者或專案設定的這些 ID 的覆蓋,並且永遠不會透過來自任何設定來源的 `modelOverrides` 解析受管清單排除的 ID。此受管來源限制需要 Claude Code v2.1.200 或更新版本。請參閱[限制模型選擇](#restrict-model-selection)以瞭解如何處理被阻止的 ID。1064`modelOverrides` 可與 `availableModels` 搭配使用。允許清單是依據 Anthropic 模型 ID 而非覆寫值進行評估,因此即使 Opus 版本已對應到 ARN,`availableModels` 中的 `"opus"` 等項目仍會持續符合。當受管設定中設定了 `enforceAvailableModels` 時,強制執行的 Default 僅會透過來自[受管設定](/docs/zh-TW/managed-settings#how-claude-code-combines-managed-sources)的 `modelOverrides` 進行解析。管理員的對應(例如固定至推論設定檔 ARN 的版本)會在強制執行的 Default 中生效。來自使用者或專案設定的覆寫不會影響它。

1065 

1066當[受管設定](/docs/zh-TW/managed-settings)中設定了 `availableModels` 時,對於透過 `--model` 或上述環境變數直接傳入的 Anthropic 模型 ID,只有來自受管設定的 `modelOverrides` 會生效。對於這些 ID,Claude Code 會忽略使用者或專案設定中的覆寫,且絕不會透過任何設定來源的 `modelOverrides` 解析受管清單所排除的 ID。此受管來源限制需要 Claude Code v2.1.200 或更新版本。如需了解被封鎖的 ID 如何處理,請參閱[限制模型選擇](#restrict-model-selection)。

758 1067 

759<h3 id="prompt-caching-configuration">1068<h3 id="prompt-caching-configuration">

760 Prompt caching 配置1069 提示快取設定

761</h3>1070</h3>

762 1071 

763Claude Code 自動使用 [prompt caching](/docs/zh-TW/prompt-caching) 來優化效能並降低成本。您可以全域禁用 prompt caching 或針對特定模型層級禁用:1072Claude Code 會自動使用[提示快取](/docs/zh-TW/prompt-caching)來最佳化效能並降低成本。您可以全域停用提示快取,或針對特定模型層級停用:

764 1073 

765| 環境變數 | 描述 |1074| 環境變數 | 說明 |

766| - | - |1075| - | - |

767| `DISABLE_PROMPT_CACHING` | 設定為 `1` 以禁用所有模型的 prompt caching。優先於每個模型的設定 |1076| `DISABLE_PROMPT_CACHING` | 設為 `1` 可為所有模型停用提示快取。優先於各模型的設定 |

768| `DISABLE_PROMPT_CACHING_HAIKU` | 設定為 `1` 以僅禁用 Haiku 模型的 prompt caching |1077| `DISABLE_PROMPT_CACHING_HAIKU` | 設為 `1` 可為[預設 Haiku 模型](/docs/zh-TW/prompt-caching#disable-prompt-caching)停用提示快取 |

769| `DISABLE_PROMPT_CACHING_SONNET` | 設定為 `1` 以僅禁用 Sonnet 模型的 prompt caching |1078| `DISABLE_PROMPT_CACHING_SONNET` | 設為 `1` 可為[預設 Sonnet 模型](/docs/zh-TW/prompt-caching#disable-prompt-caching)停用提示快取 |

770| `DISABLE_PROMPT_CACHING_OPUS` | 設定為 `1` 以僅禁用 Opus 模型的 prompt caching |1079| `DISABLE_PROMPT_CACHING_OPUS` | 設為 `1` 可為[預設 Opus 模型](/docs/zh-TW/prompt-caching#disable-prompt-caching)停用提示快取 |

771| `DISABLE_PROMPT_CACHING_FABLE` | 設定為 `1` 以僅禁用 Fable 模型的 prompt caching |1080| `DISABLE_PROMPT_CACHING_FABLE` | 設為 `1` 可僅為 Fable 模型停用提示快取 |

1081 

1082若要分別為主要對話與 subagent 選擇快取 TTL,請參閱[自行選擇 TTL](/docs/zh-TW/prompt-caching#choose-the-ttl-yourself)。如需了解哪些情況會導致快取未命中,請參閱[Claude Code 如何使用提示快取](/docs/zh-TW/prompt-caching)。

772 1083 

773若要變更快取 TTL 或瞭解什麼會觸發快取未命中,請參閱 [Claude Code 如何使用 prompt caching](/docs/zh-TW/prompt-caching)。1084<h2 id="version-history">

1085 版本歷史

1086</h2>

1087 

1088下表列出每個模型別名變更其所解析之模型時的 Claude Code 版本,依新到舊排列。

1089 

1090| 版本 | 變更 |

1091| :- | :- |

1092| v2.1.284 | 在 Anthropic API 上,`sonnet` 解析為 Sonnet 5.5 |

1093| v2.1.280 | 在 Anthropic API、Claude Platform on AWS、Amazon Bedrock 及 Google Cloud's Agent Platform 上,`opus` 解析為 Opus 5.5 |

1094| v2.1.257 | `fable` 解析為 Fable 5.1,但 Claude apps 閘道工作階段除外 |

1095| v2.1.219 | 在 Anthropic API、Claude Platform on AWS、Amazon Bedrock 及 Agent Platform 上,`opus` 解析為 Opus 5 |

1096| v2.1.207 | 在 Claude Platform on AWS、Amazon Bedrock 及 Agent Platform 上,`opus` 解析為 Opus 4.8 |

1097| v2.1.197 | 在 Anthropic API 上,`sonnet` 解析為 Sonnet 5 |

1098| v2.1.154 | 在 Anthropic API 上,`opus` 解析為 Opus 4.8 |

1099| 更早版本 | 在 Claude Platform on AWS 上,`opus` 解析為 Opus 4.7;在 Amazon Bedrock 及 Agent Platform 上則解析為 Opus 4.6。在所有供應商上,`fable` 皆解析為 Fable 5 |

Details

255| `duration_ms` | 包括重試的掛鐘持續時間 | |255| `duration_ms` | 包括重試的掛鐘持續時間 | |

256| `ttft_ms` | 首個令牌的時間(毫秒) | |256| `ttft_ms` | 首個令牌的時間(毫秒) | |

257| `first_content_ms` | 從請求開始到成功嘗試的第一個內容區塊的時間(毫秒)。在回退到非串流路徑的請求上不存在。需要 Claude Code v2.1.268 或更新版本 | |257| `first_content_ms` | 從請求開始到成功嘗試的第一個內容區塊的時間(毫秒)。在回退到非串流路徑的請求上不存在。需要 Claude Code v2.1.268 或更新版本 | |

258| `input_tokens` | 來自 API 使用區塊的輸入令牌計數 | |258| `input_tokens` | 來自 API 使用區塊的輸入 token 計數。不包括從提示詞快取讀取或寫入提示詞快取的 token,這些會在 `cache_read_tokens` 和 `cache_creation_tokens` 中報告 | |

259| `output_tokens` | 輸出令牌計數 | |259| `output_tokens` | 輸出令牌計數 | |

260| `cache_read_tokens` | 從提示快取讀取的令牌 | |260| `cache_read_tokens` | 從提示快取讀取的令牌 | |

261| `cache_creation_tokens` | 寫入提示快取的令牌 | |261| `cache_creation_tokens` | 寫入提示快取的令牌 | |


719**屬性**:719**屬性**:

720 720 

721* 所有[標準屬性](#standard-attributes)721* 所有[標準屬性](#standard-attributes)

722* `type`:(`"input"`、`"output"`、`"cacheRead"`、`"cacheCreation"`)722* `type`:(`"input"`、`"output"`、`"cacheRead"`、`"cacheCreation"`)。`"input"` 類型不包含從提示詞快取讀取或寫入的 token,這些會計入 `"cacheRead"` 與 `"cacheCreation"`

723* `model`:模型識別碼(例如,"claude-sonnet-5")723* `model`:模型識別碼(例如,"claude-sonnet-5")

724* `query_source`:發出請求的子系統的類別。`"main"`、`"subagent"` 或 `"auxiliary"` 之一724* `query_source`:發出請求的子系統的類別。`"main"`、`"subagent"` 或 `"auxiliary"` 之一

725* `speed`:當請求使用快速模式時為 `"fast"`。否則不存在725* `speed`:當請求使用快速模式時為 `"fast"`。否則不存在


874* `cost_usd`:以美元計的估計成本874* `cost_usd`:以美元計的估計成本

875* `cost_usd_micros`:以美元百萬分之一計的估計成本,作為整數發出875* `cost_usd_micros`:以美元百萬分之一計的估計成本,作為整數發出

876* `duration_ms`:請求持續時間(以毫秒為單位)876* `duration_ms`:請求持續時間(以毫秒為單位)

877* `input_tokens`:輸入權杖數877* `input_tokens`:輸入 token 數量,不包含從提示詞快取讀取或寫入的 token

878* `output_tokens`:輸出權杖數878* `output_tokens`:輸出權杖數

879* `cache_read_tokens`:從快取讀取的權杖數879* `cache_read_tokens`:從快取讀取的權杖數

880* `cache_creation_tokens`:用於快取建立的權杖數880* `cache_creation_tokens`:用於快取建立的權杖數


1473 1473 

1474| 指標 | 分析機會 |1474| 指標 | 分析機會 |

1475| - | - |1475| - | - |

1476| `claude_code.token.usage` | 按 `type`(輸入/輸出)、使用者、團隊、模型、`skill.name`、`plugin.name` 或 `agent.name` 進行細分 |1476| `claude_code.token.usage` | 按 token [`type`](#token-counter)、使用者、團隊、模型、`skill.name`、`plugin.name` 或 `agent.name` 進行細分 |

1477| `claude_code.session.count` | 追蹤一段時間內的採用和參與度 |1477| `claude_code.session.count` | 追蹤一段時間內的採用和參與度 |

1478| `claude_code.lines_of_code.count` | 透過追蹤程式碼新增和移除來衡量生產力,按模型進行細分 |1478| `claude_code.lines_of_code.count` | 透過追蹤程式碼新增和移除來衡量生產力,按模型進行細分 |

1479| `claude_code.commit.count` & `claude_code.pull_request.count` | 了解對開發工作流程的影響 |1479| `claude_code.commit.count` & `claude_code.pull_request.count` | 了解對開發工作流程的影響 |


1535 1535 

1536**效能監控**:追蹤 API 請求持續時間和工具執行時間以識別效能瓶頸。1536**效能監控**:追蹤 API 請求持續時間和工具執行時間以識別效能瓶頸。

1537 1537 

1538<h3 id="map-input-tokens-to-opentelemetry-genai-semantic-conventions">

1539 將輸入 token 對應至 OpenTelemetry GenAI 語意慣例

1540</h3>

1541 

1542Claude Code 依照 API 回應的 usage 區塊中所呈現的方式匯出輸入 token 計數,因此這些值不包含從[提示快取](/docs/zh-TW/prompt-caching)讀取或寫入的 token:

1543 

1544* [`claude_code.llm_request`](#span-attributes) span 和 [`api_request`](#api-request-event) 事件上的 `input_tokens`

1545* [`claude_code.token.usage`](#token-counter) 指標的 `"input"` 類型

1546 

1547Claude Code 不會設定 `gen_ai.usage.*` 屬性。[OpenTelemetry GenAI 語意慣例](https://github.com/open-telemetry/semantic-conventions-genai)規定 `gen_ai.usage.input_tokens` 應包含從快取讀取和寫入快取的 token。若要計算該總數:

1548 

1549* 從 span 或事件:將 `input_tokens`、`cache_read_tokens` 和 `cache_creation_tokens` 相加

1550* 從 `claude_code.token.usage` 指標:將其 `"input"`、`"cacheRead"` 和 `"cacheCreation"` 類型相加

1551 

1552這些慣例也為快取讀取和快取寫入定義了個別的屬性:

1553 

1554* `cache_read_tokens` 對應至 `gen_ai.usage.cache_read.input_tokens`

1555* `cache_creation_tokens` 對應至 `gen_ai.usage.cache_write.input_tokens`。較舊版本的慣例將快取寫入屬性命名為 `gen_ai.usage.cache_creation.input_tokens`,因此請使用您的後端所預期的名稱。

1556 

1538<h2 id="audit-security-events">1557<h2 id="audit-security-events">

1539 稽核安全事件1558 稽核安全事件

1540</h2>1559</h2>

Details

287 287 

288前面的表格涵蓋獨立 CLI。Claude Desktop 應用程式和瀏覽器中的 claude.ai 從其他 Anthropic CDN 主機載入其應用程式程式碼和使用者內容,包括 `assets-proxy.anthropic.com` 和其他在這些應用程式中提供 [Artifact](/docs/zh-TW/artifacts) 的 `*.claudeusercontent.com` 來源。允許 `claude.ai` 同時阻止這些主機會產生空白頁面而不是錯誤。請參閱 Desktop 頁面上的[網路存取需求](/docs/zh-TW/desktop#network-access-requirements)。288前面的表格涵蓋獨立 CLI。Claude Desktop 應用程式和瀏覽器中的 claude.ai 從其他 Anthropic CDN 主機載入其應用程式程式碼和使用者內容,包括 `assets-proxy.anthropic.com` 和其他在這些應用程式中提供 [Artifact](/docs/zh-TW/artifacts) 的 `*.claudeusercontent.com` 來源。允許 `claude.ai` 同時阻止這些主機會產生空白頁面而不是錯誤。請參閱 Desktop 頁面上的[網路存取需求](/docs/zh-TW/desktop#network-access-requirements)。

289 289 

290Claude Desktop 和 claude.ai 也會將對話中的部分工具結果呈現為互動式小工具,例如某些連接器提供的 [MCP Apps](https://claude.com/docs/connectors/building/mcp-apps/getting-started)。這些小工具從 `claudemcpcontent.com` 的產生子網域載入,因此請允許 `*.claudemcpcontent.com` 並保留萬用字元。如果您阻止它,應用程式的其餘部分仍可正常運作,但這些小工具不會載入。

291 

292<h4 id="third-party-hosts-for-artifact-fonts-and-libraries">

293 Artifact 字型和程式庫的第三方主機

294</h4>

295 

290從 [Google Fonts](/docs/zh-TW/artifacts#improve-the-visual-design) 載入字型的 [Artifact](/docs/zh-TW/artifacts) 也會要求 `fonts.googleapis.com` 和 `fonts.gstatic.com`。兩個主機都是選用的。如果您阻止它們,Artifact 會以備用字型呈現。使用快速拒絕而不是無聲丟棄進行阻止,以便字型要求立即失敗,而不是延遲頁面的首次呈現。296從 [Google Fonts](/docs/zh-TW/artifacts#improve-the-visual-design) 載入字型的 [Artifact](/docs/zh-TW/artifacts) 也會要求 `fonts.googleapis.com` 和 `fonts.gstatic.com`。兩個主機都是選用的。如果您阻止它們,Artifact 會以備用字型呈現。使用快速拒絕而不是無聲丟棄進行阻止,以便字型要求立即失敗,而不是延遲頁面的首次呈現。

291 297 

292Artifact 也可以從 `cdnjs.cloudflare.com`、`cdn.jsdelivr.net`、`cdn.tailwindcss.com`、`code.jquery.com` 和 `unpkg.com` 載入 JavaScript 程式庫(例如 React 或圖表套件),而不是從任何其他外部主機。如果您阻止這些主機,Artifact 中依賴程式庫的部分將無法運作,與阻止的字型不同,阻止的程式庫沒有備用方案。此處也使用快速拒絕進行阻止,以便阻止的程式庫要求立即失敗,而不是掛起直到逾時。298Artifact 也可以從 `cdnjs.cloudflare.com`、`cdn.jsdelivr.net`、`cdn.tailwindcss.com`、`code.jquery.com` 和 `unpkg.com` 載入 JavaScript 程式庫(例如 React 或圖表套件),而不是從任何其他外部主機。如果您阻止這些主機,Artifact 中依賴程式庫的部分將無法運作,與阻止的字型不同,阻止的程式庫沒有備用方案。此處也使用快速拒絕進行阻止,以便阻止的程式庫要求立即失敗,而不是掛起直到逾時。

permission-modes.md +136 −135

Details

293 293 

294自動模式讓 Claude 無需例行權限提示即可執行。一個獨立的分類器模型在操作執行前進行審查,阻止任何超出您請求範圍、針對無法識別的基礎設施或似乎由 Claude 讀取的惡意內容驅動的操作。明確的[詢問規則](/docs/zh-TW/permissions#manage-permissions)仍會強制提示。294自動模式讓 Claude 無需例行權限提示即可執行。一個獨立的分類器模型在操作執行前進行審查,阻止任何超出您請求範圍、針對無法識別的基礎設施或似乎由 Claude 讀取的惡意內容驅動的操作。明確的[詢問規則](/docs/zh-TW/permissions#manage-permissions)仍會強制提示。

295 295 

296使用 Claude Code v2.1.283 或更新版本,自動模式是所有計畫和提供商上互動式終端和 VS Code 工作階段的[內建起始權限模式](#which-mode-a-session-starts-in)。在較早版本上,它僅在 Pro、Max 和 Team 計畫上是內建起始權限模式。296使用 Claude Code v2.1.283 或更新版本,自動模式是所有計畫和提供商上互動式終端機和 VS Code 工作階段的[內建起始權限模式](#which-mode-a-session-starts-in)。在較早版本上,它僅在 Pro、Max 和 Team 計畫上是內建起始權限模式。

297 297 

298分類器也會在 Claude 使用 [`SendMessage`](/docs/zh-TW/tools-reference) 向另一個代理傳送每條訊息前進行審查,無論是純文字還是結構化的[代理團隊](/docs/zh-TW/agent-teams)訊息,在自動模式和[計畫模式中分類器審查命令](#analyze-before-you-edit-with-plan-mode)時都會進行審查;傳送審查需要 Claude Code v2.1.222 或更新版本。298分類器也會在 Claude Code 傳遞 Claude 使用 [`SendMessage`](/docs/zh-TW/tools-reference) 向另一個 agent 傳送的每條訊息之前進行審查,無論是純文字還是結構化的 [agent team](/docs/zh-TW/agent-teams) 訊息,在自動模式和[分類器審查命令時的 plan mode](#analyze-before-you-edit-with-plan-mode) 中都會進行審查;傳送審查需要 Claude Code v2.1.222 或更新版本。

299 299 

300預設情況下,分類器不審查針對關鍵路徑的 `rm` 和 `rmdir` 移除,例如 `rm -rf /` 或 `rm -rf ~`。[關鍵路徑](#critical-paths)涵蓋在每個權限模式中對它們的處理。300預設情況下,分類器不審查針對關鍵路徑的 `rm` 和 `rmdir` 移除,例如 `rm -rf /` 或 `rm -rf ~`。[關鍵路徑](#critical-paths)涵蓋在每個權限模式中對它們的處理。

301 301 

302自動模式也會促使 Claude 繼續工作而不停下來提出澄清問題,儘管當您的提示或技能明確依賴它時 Claude 仍會詢問。為了在仍會提示您的模式中獲得更強的自主行為,請改為設定[主動輸出風格](/docs/zh-TW/output-styles)。302自動模式也會促使 Claude 繼續工作而不停下來提出澄清問題,儘管當您的提示詞或 skill 明確依賴它時 Claude 仍會詢問。為了在仍會提示您的模式中獲得更強的自主行為,請改為設定[主動輸出風格](/docs/zh-TW/output-styles)。

303 303 

304<Warning>304<Warning>

305 自動模式減少了權限提示,但不保證安全。將其用於您信任一般方向的任務,而不是作為敏感操作審查的替代品。305 自動模式減少了權限提示,但不保證安全。將其用於您信任大致方向的任務,而不是作為敏感操作審查的替代品。

306</Warning>306</Warning>

307 307 

308自動模式僅在您的帳戶滿足所有這些要求時才可用:308自動模式僅在您的帳戶滿足所有這些要求時才可用:

309 309 

310* **計畫**:所有計畫。310* **計畫**:所有計畫。

311* **組織**:在 Team 和 Enterprise 上,自動模式預設可用。管理員可以通過在[受管設定](/docs/zh-TW/managed-settings)中將 `permissions.disableAutoMode` 設定為 `"disable"` 來為組織關閉它。311* **組織**:在 Team 和 Enterprise 上,自動模式預設可用。管理員可以透過在[受管設定](/docs/zh-TW/managed-settings)中將 `permissions.disableAutoMode` 設定為 `"disable"` 來為組織關閉它。

312* **模型**:在 Anthropic API 和 [AWS 上的 Claude Platform](/docs/zh-TW/claude-platform-on-aws) 上,Claude Opus 4.6 或更新版本、Sonnet 4.6 或更新版本,或[Fable 模型](/docs/zh-TW/model-config#work-with-fable)。在 Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 和已登入的 [Claude 應用程式閘道](/docs/zh-TW/claude-apps-gateway)工作階段上,僅限 Claude Sonnet 5 或更新版本、Opus 4.7 或更新版本和 Fable 模型。較舊的模型,包括 Sonnet 4.5、Opus 4.5、Haiku 和 claude-3 模型,在任何提供商上都不受支援。312* **模型**:在 Anthropic API 和 [AWS 上的 Claude Platform](/docs/zh-TW/claude-platform-on-aws) 上,Claude Opus 4.6 或更新版本、Sonnet 4.6 或更新版本,或 [Fable 模型](/docs/zh-TW/model-config#work-with-fable)。在 Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 和已登入的 [Claude 應用程式閘道](/docs/zh-TW/claude-apps-gateway)工作階段上,僅限 Claude Sonnet 5 或更新版本、Opus 4.7 或更新版本和 Fable 模型。較舊的模型,包括 Sonnet 4.5、Opus 4.5、Haiku 和 claude-3 模型,在任何提供商上都不受支援。

313* **提供商**:在 Anthropic API、AWS 上的 Claude Platform、Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 和已登入的 Claude 應用程式閘道工作階段上預設可用。313* **提供商**:在 Anthropic API、AWS 上的 Claude Platform、Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 和已登入的 Claude 應用程式閘道工作階段上預設可用。

314 314 

315如果 Claude Code 報告自動模式不可用,首先檢查這些要求以及任何設定檔是否設定了 [`disableAutoMode`](/docs/zh-TW/settings-reference#disableautomode)。Anthropic 也可能已在伺服器端關閉自動模式,或伺服器可能已為您的帳戶拒絕自動模式。收到任一答案的工作階段會保持自動模式關閉直到工作階段結束,因此稍後啟動新工作階段。315如果 Claude Code 報告自動模式不可用,首先檢查這些要求以及任何設定檔是否設定了 [`disableAutoMode`](/docs/zh-TW/settings-reference#disableautomode)。Anthropic 也可能已在伺服器端關閉自動模式,或伺服器可能已為您的帳戶拒絕自動模式。收到任一答案的工作階段會保持自動模式關閉直到工作階段結束,因此請稍後啟動新工作階段。

316 316 

317一條單獨的訊息命名一個模型並說自動模式「無法確定」操作的安全性意味著分類器請求失敗。該失敗通常是暫時的,但在 Amazon Bedrock 上,它可能會重複直到您的帳戶可以呼叫命名的模型。請參閱[錯誤參考](/docs/zh-TW/errors#auto-mode-cannot-determine-the-safety-of-an-action)以了解原因和應對方法。317另一則指明某個模型並表示自動模式「無法確定」某個操作安全性的訊息,意味著分類器請求失敗。該失敗通常是暫時的,但在 Amazon Bedrock 上,它可能會重複發生,直到您的帳戶可以呼叫所指明的模型。請參閱[錯誤參考](/docs/zh-TW/errors#auto-mode-cannot-determine-the-safety-of-an-action)以了解原因和應對方法。

318 318 

319如果您在[設定](/docs/zh-TW/settings-reference#all-settings)中設定 `defaultMode: "auto"` 並且終端工作階段在沒有錯誤的情況下以手動模式啟動,該設定可能在 `.claude/settings.json` 或 `.claude/settings.local.json` 中。`auto` 不會從這些檔案生效。將其移至 `~/.claude/settings.json`。對於 VS Code 擴充功能啟動的對話,請改為檢查擴充功能自己的列表在[切換權限模式](#switch-permission-modes)中。319如果您在[設定](/docs/zh-TW/settings-reference#all-settings)中設定 `defaultMode: "auto"`,而終端機工作階段在沒有錯誤的情況下以手動模式啟動,該設定可能位於 `.claude/settings.json` 或 `.claude/settings.local.json` 中。`auto` 不會從這些檔案生效。請將其移至 `~/.claude/settings.json`。對於 VS Code 擴充功能啟動的對話,請改為檢查[切換權限模式](#switch-permission-modes)中該擴充功能自己的清單。

320 320 

321<h3 id="enable-auto-mode-on-bedrock-agent-platform-or-foundry">321<h3 id="enable-auto-mode-on-bedrock-agent-platform-or-foundry">

322 Bedrock、Agent Platform 或 Foundry 上的自動模式322 Bedrock、Agent Platform 或 Foundry 上的自動模式

323</h3>323</h3>

324 324 

325在 [Amazon Bedrock](/docs/zh-TW/amazon-bedrock)、[Google Cloud 的 Agent Platform](/docs/zh-TW/google-vertex-ai)、[Microsoft Foundry](/docs/zh-TW/microsoft-foundry) 和已登入的 [Claude 應用程式閘道](/docs/zh-TW/claude-apps-gateway)工作階段上,自動模式預設可用。當沒有其他設定權限模式時,它也是[內建起始權限模式](#which-mode-a-session-starts-in),在該部分的表格列出的版本上。要自己選擇起始權限模式,請按照[以不同權限模式啟動](#start-in-a-different-mode)的描述設定 `permissions.defaultMode`,或從 VS Code 擴充功能的模式指示器中選擇權限模式。325在 [Amazon Bedrock](/docs/zh-TW/amazon-bedrock)、[Google Cloud 的 Agent Platform](/docs/zh-TW/google-vertex-ai)、[Microsoft Foundry](/docs/zh-TW/microsoft-foundry) 和已登入的 [Claude 應用程式閘道](/docs/zh-TW/claude-apps-gateway)工作階段上,自動模式預設可用。當沒有其他設定指定權限模式時,在該章節表格列出的版本上,它也是[內建起始權限模式](#which-mode-a-session-starts-in)。要自己選擇起始權限模式,請按照[以不同權限模式啟動](#start-in-a-different-mode)的說明設定 `permissions.defaultMode`,或從 VS Code 擴充功能的模式指示器中選擇權限模式。

326 326 

327這些提供商上僅支援 Claude Sonnet 5 或更新版本、Opus 4.7 或更新版本和 Fable 模型。在任何其他模型上,工作階段改為以手動模式啟動。327這些提供商上僅支援 Claude Sonnet 5 或更新版本、Opus 4.7 或更新版本和 Fable 模型。在任何其他模型上,工作階段改為以手動模式啟動。

328 328 

329要防止開發人員使用自動模式,請在[受管設定](/docs/zh-TW/managed-settings)中將 `disableAutoMode` 設定為 `"disable"`。這會從 `Shift+Tab` 循環中移除 `auto`,並且以 `--permission-mode auto` 啟動的工作階段改為以手動模式啟動。已在自動模式中執行的工作階段在設定從[管理員部署的來源](/docs/zh-TW/managed-settings#which-managed-source-claude-code-uses)到達該工作階段時會離開它,並顯示 `auto mode disabled by settings`。在 v2.1.251 之前,執行中的工作階段會保持自動模式直到它結束。329要防止開發人員使用自動模式,請在[受管設定](/docs/zh-TW/managed-settings)中將 `disableAutoMode` 設定為 `"disable"`。這會從 `Shift+Tab` 循環中移除 `auto`,並且以 `--permission-mode auto` 啟動的工作階段改為以手動模式啟動。已在自動模式中執行的工作階段,在該設定從[管理員部署的來源](/docs/zh-TW/managed-settings#which-managed-source-claude-code-uses)送達該工作階段時會離開自動模式,並顯示 `auto mode disabled by settings`。在 v2.1.251 之前,執行中的工作階段會保持自動模式直到它結束。

330 330 

331在 v2.1.158 到 v2.1.206 中,自動模式在這些提供商上是關閉的,直到您設定 `CLAUDE_CODE_ENABLE_AUTO_MODE=1`,並且 Claude Code 在這些提供商上忽略 `defaultMode: "auto"`,除非也設定了該變數。該變數仍被接受以保持相容性,從 v2.1.207 開始沒有效果。331在 v2.1.158 到 v2.1.206 中,自動模式在這些提供商上是關閉的,直到您設定 `CLAUDE_CODE_ENABLE_AUTO_MODE=1`,並且 Claude Code 在這些提供商上忽略 `defaultMode: "auto"`,除非也設定了該變數。該變數仍被接受以保持相容性,從 v2.1.207 開始沒有效果。

332 332 


334 伺服器端分類器審查334 伺服器端分類器審查

335</h3>335</h3>

336 336 

337在自動模式中,Claude Code 可以要求伺服器檢查[決策順序](#how-the-classifier-evaluates-actions)發送進行審查的操作,作為工作階段模型請求的一部分,而不是發送自己的分類器請求。這些工作階段詢問:337在自動模式中,Claude Code 可以要求伺服器檢查[決策順序](#how-the-classifier-evaluates-actions)送交審查的操作,作為工作階段模型請求的一部分,而不是發送自己的分類器請求。以下工作階段會提出此要求:

338 338 

339* **直接連接到 Anthropic API**:在互動式終端工作階段中,在每個 claude.ai 計畫和使用 Claude API 的帳戶上,隨著 Anthropic 推出。在 Pro、Max 和 Team 計畫上需要 Claude Code v2.1.271 或更新版本,在 Enterprise 計畫和 Claude API 帳戶上需要 v2.1.278 或更新版本。從 v2.1.282 開始,[不獲取功能旗標](/docs/zh-TW/env-vars#features-that-need-feature-flag-fetching)的工作階段,例如因為您關閉了遙測,在任何類型的工作階段中預設詢問伺服器。339* **直接連接到 Anthropic API**:在互動式終端機工作階段,以及 `-p`、Agent SDK、[VS Code 擴充功能](/docs/zh-TW/vs-code)和[桌面應用程式](/docs/zh-TW/desktop)工作階段中,無論您的計畫或帳戶類型為何,隨 Anthropic 逐步推出。在互動式終端機工作階段中,在 Pro、Max 和 Team 計畫上需要 Claude Code v2.1.271 或更新版本,在 Enterprise 計畫和 Claude API 帳戶上需要 v2.1.278 或更新版本。在 `-p`、Agent SDK、VS Code 擴充功能和桌面應用程式工作階段中,需要 Claude Code v2.1.281 或更新版本。從 v2.1.282 開始,[不擷取功能旗標](/docs/zh-TW/env-vars#features-that-need-feature-flag-fetching)的工作階段(例如因為您關閉了遙測),在任何類型的工作階段中都會預設詢問伺服器。

340* **雲端提供商、LLM 閘道或代理**:在 [AWS 上的 Claude Platform](/docs/zh-TW/claude-platform-on-aws)、Amazon Bedrock、Google Cloud 的 Agent Platform 和 Microsoft Foundry 上,以及每當您將 `ANTHROPIC_BASE_URL` 指向[LLM 閘道或代理](/docs/zh-TW/llm-gateway)時,無論您的計畫如何。預設詢問需要 Claude Code v2.1.278 或更新版本。340* **雲端提供商,或 LLM 閘道或代理伺服器**:在 [AWS 上的 Claude Platform](/docs/zh-TW/claude-platform-on-aws)、Amazon Bedrock、Google Cloud 的 Agent Platform 和 Microsoft Foundry 上,以及每當您將 `ANTHROPIC_BASE_URL` 指向 [LLM 閘道或代理伺服器](/docs/zh-TW/llm-gateway)時,無論您的計畫為何。預設詢問需要 Claude Code v2.1.278 或更新版本。

341* **已登入的 [Claude 應用程式閘道](/docs/zh-TW/claude-apps-gateway)工作階段**:需要 Claude Code v2.1.280 或更新版本341* **已登入的 [Claude 應用程式閘道](/docs/zh-TW/claude-apps-gateway)工作階段**:需要 Claude Code v2.1.280 或更新版本

342 342 

343伺服器審查操作的地方,其判決決定了它們。還有兩種其他可能的結果:343在伺服器審查操作的情況下,由其判決決定這些操作。還有兩種其他可能的結果:

344 344 

345* **伺服器不審查工作階段**:回應完成時沒有審查結果,或伺服器回答它不審查此工作階段。最常見的原因是 LLM 閘道或代理丟棄審查請求或結果,以及平台、區域或認證還沒有伺服器端檢查。Claude Code 回退到自己的分類器請求。一旦該回退在工作階段的其餘部分保持,它會在這些請求被計費的帳戶上顯示[關於分類器請求費用的通知](/docs/zh-TW/auto-mode-classifier-billing)。345* **伺服器不審查工作階段**:回應完成時沒有審查結果,或伺服器回答它不審查此工作階段。最常見的原因是 LLM 閘道或代理伺服器丟棄了審查請求或結果,以及平台、區域或憑證尚未提供伺服器端檢查。Claude Code 會改用自己的分類器請求。一旦該備援在工作階段的其餘部分持續生效,它會在這些請求會被計費的帳戶上顯示[關於分類器請求費用的通知](/docs/zh-TW/auto-mode-classifier-billing)。

346* **伺服器對操作沒有給出判決**:Claude Code 拒絕操作而不是執行它未審查的操作。在任何連接上,當回應在審查結果到達前結束或結果以 Claude Code 無法讀取的形式到達時會發生這種情況。丟棄回應或重寫結果的 LLM 閘道或代理可能導致任一情況。在直接連接到 Anthropic API 時,當伺服器對操作的檢查失敗時也會發生,例如超時。[伺服器未返回安全判決](/docs/zh-TW/errors#the-server-returned-no-safety-verdict)涵蓋拒絕訊息、拒絕重複時發生的情況以及應對方法。346* **伺服器對操作沒有給出判決**:Claude Code 會拒絕該操作,而不是在未經審查的情況下執行它。在任何連線上,當回應在審查結果到達前結束,或結果以 Claude Code 無法讀取的形式到達時,就會發生這種情況。截斷回應或重寫結果的 LLM 閘道或代理伺服器可能導致任一情況。在直接連接到 Anthropic API 時,當伺服器對該操作的檢查失敗(例如逾時)時也會發生。[伺服器未返回安全判決](/docs/zh-TW/errors#the-server-returned-no-safety-verdict)涵蓋拒絕訊息、拒絕重複發生時的情況以及應對方法。

347 347 

348要跳過詢問伺服器並始終使用 Claude Code 自己的分類器請求,請設定 [`CLAUDE_CODE_AUTO_MODE_SERVER=0`](/docs/zh-TW/env-vars)。在直接連接到 Anthropic API 時,該變數需要 Claude Code v2.1.281 或更新版本。將其設定為 `1` 會在還沒有伺服器審查的工作階段中開啟伺服器審查,例如 `-p` 或 Agent SDK 工作階段,除非您也設定了 `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`。如果您設定 `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1` 並保持 `CLAUDE_CODE_AUTO_MODE_SERVER` 未設定,Claude Code 也會停止詢問伺服器,除了[禁用預發行功能](/docs/zh-TW/llm-gateway-protocol#disable-pre-release-capabilities)所述的情況。348要跳過詢問伺服器並始終使用 Claude Code 自己的分類器請求,請設定 [`CLAUDE_CODE_AUTO_MODE_SERVER=0`](/docs/zh-TW/env-vars)。在直接連接到 Anthropic API 時,該變數需要 Claude Code v2.1.281 或更新版本。在該情況下將其設定為 `1`,會在尚未啟用伺服器審查的工作階段中開啟伺服器審查,除非您也設定了 `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1`。如果您設定 `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1` 並保持 `CLAUDE_CODE_AUTO_MODE_SERVER` 未設定,Claude Code 也會停止詢問伺服器,但[停用預發行功能](/docs/zh-TW/llm-gateway-protocol#disable-pre-release-capabilities)所述的情況除外。

349 349 

350<h3 id="what-the-classifier-blocks-by-default">350<h3 id="what-the-classifier-blocks-by-default">

351 分類器預設阻止的內容351 分類器預設阻止的內容

352</h3>352</h3>

353 353 

354分類器信任您的工作目錄和為它配置的遠端,當工作階段啟動時。在工作階段期間使用 `git remote add` 或 `git remote set-url` 新增或重新指向的遠端不受信任,其他所有內容都被視為外部,直到您[配置受信任的基礎設施](/docs/zh-TW/auto-mode-config#define-trusted-infrastructure)。在 v2.1.200 之前,中途新增的遠端也受信任。354分類器信任您的工作目錄,以及工作階段啟動時為其設定的遠端。在工作階段期間使用 `git remote add` 或 `git remote set-url` 新增或重新指向的遠端不受信任,其他所有內容都被視為外部,直到您[設定受信任的基礎設施](/docs/zh-TW/auto-mode-config)。在 v2.1.200 之前,工作階段中途新增的遠端也受信任。

355 355 

356**預設阻止**:356**預設阻止**:

357 357 


361* 雲端儲存上的大量刪除361* 雲端儲存上的大量刪除

362* 授予 IAM 或儲存庫權限362* 授予 IAM 或儲存庫權限

363* 修改共享基礎設施363* 修改共享基礎設施

364* 不可逆地銷毀工作階段前存在的檔案364* 不可逆地銷毀工作階段前已存在的檔案

365* 強制推送365* 強制推送

366* 提交或推送會在執行時將秘密或敏感資料傳送到儲存庫外部的變更,或擴大部署公開的內容。這涵蓋將秘密傳遞到還不接收它的目的地的 CI 工作流程或部署配置、讀取秘密存儲並傳送資料出去的指令碼或設定步驟,以及擴大部署發佈內容的配置變更,例如登錄、可見性、成品或原始碼對應設定。檢查適用於任何分支,即使儲存庫是公開的也適用,並在提交或推送時觸發,無論該提交或推送是否觸發管道;清除它需要命名執行效果,而不僅僅是提交或推送。在 v2.1.211 之前,此檢查的範圍限於預設分支:推送到那裡時,如果它攜帶敏感內容、相對於您要求的隱藏或誤述的變更、從儲存庫外部移植的內容或繞過您要求的審查的內容,則被阻止366* 提交或推送在執行時會將秘密或敏感資料傳送到儲存庫外部,或擴大部署所公開內容的變更。這涵蓋將秘密傳遞到原本未接收該秘密之目的地的 CI 工作流程或部署設定、讀取秘密儲存區並將資料送出的指令碼或設定步驟,以及擴大部署發佈內容的設定變更,例如 registry、可見性、建置產物或 sourcemap 設定。此檢查適用於任何分支,即使儲存庫是公開的也適用,並在提交或推送該變更時觸發,無論該提交或推送是否觸發管線;要解除它,需要指明執行時的效果,而不僅僅是提交或推送。在 v2.1.211 之前,此檢查的範圍改為限於預設分支:推送到預設分支時,如果攜帶敏感內容、相對於您的要求有隱藏或誤述的變更、從儲存庫外部移植的內容,或繞過了您要求的審查,則會被阻止

367* `git reset --hard`、`git checkout -- .`、`git restore .`、`git clean -fd`、`git stash drop` 或 `git stash clear`,分類器推測會丟棄未提交的變更367* `git reset --hard`、`git checkout -- .`、`git restore .`、`git clean -fd`、`git stash drop` 或 `git stash clear`,分類器推定這些會丟棄未提交的變更

368* `git commit --amend` 當 HEAD 的提交不是在此工作階段中建立的368* 當 HEAD 的提交不是在此工作階段中建立時的 `git commit --amend`

369* 從 v2.1.198 開始,`git commit --amend` 當 HEAD 的提交已經被推送時。僅訊息重述不被阻止:`--amend -m` 沒有新暫存的內容,在 Claude 在此工作階段期間建立的提交上369* 從 v2.1.198 開始,當 HEAD 的提交已經被推送時的 `git commit --amend`。僅修改訊息的改寫不會被阻止:在 Claude 於此工作階段期間建立的提交上,沒有新暫存內容的 `--amend -m`

370* `terraform destroy`、`pulumi destroy`、`cdk destroy` 或 `terragrunt destroy`,以及應用銷毀資源的計畫370* `terraform destroy`、`pulumi destroy`、`cdk destroy` 或 `terragrunt destroy`,以及套用會銷毀資源的計畫

371* 寫入秘密管理器,或變更 DNS 記錄或 TLS 憑證371* 寫入秘密管理器,或變更 DNS 記錄或 TLS 憑證

372* 合併沒有人類批准的拉取請求、批准 Claude 自己的拉取請求或禁用 CI 檢查372* 合併未經任何人核准的 pull request、核准 Claude 自己的 pull request,或停用 CI 檢查

373* 發佈本身是自動化命令的評論,例如 `atlantis apply` 或機器人的 `/deploy` 或 `/merge`373* 發佈本身就是對自動化發出命令的留言,例如 `atlantis apply` 或機器人的 `/deploy` 或 `/merge`

374* 切換、調整或刪除生產功能旗標374* 切換、逐步調整或刪除生產環境的功能旗標

375* 將基礎設施變更應用於受保護的 IaC 範圍,或排空並移除叢集節點375* 將基礎設施變更套用到受保護的 IaC 範圍,或排空並移除叢集節點

376* 寫入超出您命名的資源的共享計算叢集,例如標籤選擇器或 `--all` 捕捉其他使用者的工作376* 對共享運算叢集的寫入超出您所指明的資源,例如會涵蓋到其他使用者工作的標籤選擇器或 `--all`

377* 建立在每個節點上執行或攔截叢集流量的 Kubernetes 資源,例如 DaemonSets 和准入 Webhooks377* 建立在每個節點上執行或攔截叢集流量的 Kubernetes 資源,例如 DaemonSets 和 admission webhooks

378* 互動式 Shell 或連接埠轉發到敏感遠端目標378* 對敏感遠端目標開啟互動式 shell 或連接埠轉發

379* 開啟隧道或反向 Shell,使本地服務可從公開網際網路存取379* 開啟使本機服務可從公開網際網路存取的通道或反向 shell

380* 將即時認證或權杖列印到文字記錄或檔案中380* 將有效的憑證或 token 印出到逐字稿或檔案中

381* 存取在您的[環境](/docs/zh-TW/auto-mode-config#define-trusted-infrastructure)中列為敏感資料位置的位置,或從一個複製資料出去。從 v2.1.198 開始,這也會阻止從一個傳送資料到該項目排除的受眾381* 存取在您的[環境](/docs/zh-TW/auto-mode-config#define-trusted-infrastructure)中列為敏感資料位置的位置,或從中複製資料出去。從 v2.1.198 開始,這也會阻止從該位置將資料傳送給該項目所排除的對象

382* 繞過您的內部套件登錄將套件安裝路由到公開登錄。從 v2.1.198 開始,這也適用於您在對話中告訴 Claude 內部登錄或鏡像存在的情況,而不僅僅是在您的環境中列出的情況382* 繞過您的內部套件 registry,將套件安裝導向公開 registry。從 v2.1.198 開始,這也適用於您在對話中告訴 Claude 存在內部 registry 或鏡像的情況,而不僅限於在您的環境中列出的情況

383* 執行帶有禁用安全防護旗標的命令,例如 `--insecure`383* 執行帶有解除安全防護旗標的命令,例如 `--insecure`

384* 啟動在沒有人類批准或沙箱的情況下執行的自主代理迴圈,例如使用 `--dangerously-skip-permissions` 或 `--no-sandbox` 啟動的迴圈。從 v2.1.198 開始,這也涵蓋執行第三方代理或評估工具,隔離和按操作批准禁用,例如使用 `--yes-always` 啟動的執行器384* 啟動在沒有人工核准或沙箱的情況下執行的自主 agent 迴圈,例如使用 `--dangerously-skip-permissions` 或 `--no-sandbox` 啟動的迴圈。從 v2.1.198 開始,這也涵蓋在停用隔離和逐項操作核准的情況下執行第三方 agent 或評估工具,例如使用 `--yes-always` 啟動的執行器

385* [Chrome 中的 Claude](/docs/zh-TW/chrome)瀏覽器操作可能會將頁面內容、Cookie 或認證傳送到跨來源385* 可能將頁面內容、Cookie 或憑證傳送到其他來源的 [Claude in Chrome](/docs/zh-TW/chrome) 瀏覽器操作

386 386 

387其中幾個類別取決於[環境](/docs/zh-TW/auto-mode-config#define-trusted-infrastructure)項目,例如敏感遠端目標和受保護的 IaC 範圍,您可以將其縮小到具體名稱。387其中幾個類別取決於[環境](/docs/zh-TW/auto-mode-config#define-trusted-infrastructure)項目,例如敏感遠端目標和受保護的 IaC 範圍,您可以將其縮小到具體名稱。

388 388 

389Claude Code v2.1.198 及更新版本也預設阻止這些:389Claude Code v2.1.198 及更新版本也預設阻止這些:

390 390 

391* 通過萬用字元、glob 或年齡篩選器而不是特定命名路徑刪除 `/tmp`、`$TMPDIR` 或其他共享暫存或快取目錄中的檔案391* 透過萬用字元、glob 或存留時間篩選,而非特定指名的路徑,刪除 `/tmp`、`$TMPDIR` 或其他共享暫存或快取目錄中的檔案

392* 在內容傳送、上傳、發佈或寫入其他人或共享系統時包含敏感詳細資訊,當您自己的訊息沒有為該收件人授權這些詳細資訊時。PR 和問題正文、提交訊息和評論在儲存庫在信任邊界外或公開時計為此類出站內容,包括您組織自己的公開儲存庫;內部檔案路徑、代碼名稱、即時 API 回應資料(例如電子郵件或帳戶識別碼)和基礎設施識別碼計為敏感詳細資訊。PR、問題和提交訊息範圍需要 Claude Code v2.1.200 或更新版本。PR 或問題正文中的即時個人資料(例如電子郵件地址、帳戶或組織識別碼或使用指標)需要您命名這些詳細資訊和收件人,無論儲存庫的可見性或信任邊界如何。該檢查需要 Claude Code v2.1.203 或更新版本392* 在傳送、上傳、發佈或寫給其他人或共享系統的內容中包含敏感細節,而您自己的訊息並未授權將這些細節提供給該收件者。當儲存庫位於信任邊界之外或為公開時(包括您組織自己的公開儲存庫),PR 和 issue 內文、提交訊息和留言都視為此類對外內容;內部檔案路徑、代號、即時 API 回應資料(例如電子郵件或帳戶識別碼)以及基礎設施識別碼都視為敏感細節。PR、issue 和提交訊息的範圍界定需要 Claude Code v2.1.200 或更新版本。PR 或 issue 內文中來自 API 回應的即時個人資料,例如電子郵件地址、帳戶或組織識別碼或使用量指標,無論儲存庫的可見性或信任邊界為何,都需要您指明這些細節和收件者。該檢查需要 Claude Code v2.1.203 或更新版本

393* 傳送按鍵到 Claude Code 自己的 tmux 窗格以驅動其自己的介面,分類器將其視為 Claude 變更自己的權限或監督393* 向 Claude Code 自己的 tmux 窗格傳送按鍵以操控其自身介面,分類器將此視為 Claude 變更自己的權限或監督

394 394 

395Claude Code v2.1.200 及更新版本也預設阻止這些:395Claude Code v2.1.200 及更新版本也預設阻止這些:

396 396 

397* 註解掉、刪除或強制通過保護安全行為的測試或斷言,例如驗證、存取控制、輸入驗證或沙箱397* 註解掉、刪除或強制通過保護安全行為的測試或斷言,例如驗證、存取控制、輸入驗證或沙箱機制

398* 刪除或拆除 Claude 在工作階段中未建立的有狀態資源,當沒有更具體的刪除規則適用且您沒有命名該資源時398* 刪除或拆除 Claude 未在工作階段中建立的有狀態資源,當沒有更具體的刪除規則適用且您未指明該資源時

399* 將 API 基礎 URL、代理端點、Webhook 接收器或登錄鏡像重新指向不適合任務的第三方主機,包括在 `.env.example` 等範例檔案中399* 將 API 基礎 URL、代理伺服器端點、webhook 接收器或 registry 鏡像重新指向不符合任務的第三方主機,包括在 `.env.example` 等範例檔案中

400* 使用 `git remote set-url` 或 `git remote add` 變更推送去向,除非您命名了新遠端400* 使用 `git remote set-url` 或 `git remote add` 變更推送目的地,除非您指明了新的遠端

401* 推送秘密或個人或受信任資料到已知為公開的儲存庫,或推送不是該儲存庫自己工作一部分的機密材料到那裡。dotfiles 儲存庫自己的主題是個人或受信任資料的唯一例外,來自私有儲存庫到任何公開表面的內容以相同方式被阻止;兩項改進都需要 Claude Code v2.1.203 或更新版本。在 v2.1.203 之前,個人資料與機密材料分組,僅當它不是該儲存庫自己工作的一部分時才被阻止。當儲存庫的可見性未確定時,分類器不單獨在此阻止;它改為根據其他規則判斷內容401* 將秘密或個人或受託資料推送到已知為公開的儲存庫,或將不屬於該儲存庫本身工作的機密資料推送到那裡。對個人或受託資料而言,dotfiles 儲存庫本身的主題內容是唯一的例外,而來自私人儲存庫的內容流向任何公開使用介面也會以相同方式被阻止;這兩項改進都需要 Claude Code v2.1.203 或更新版本。在 v2.1.203 之前,個人資料與機密資料歸為同一類,僅當其不屬於該儲存庫本身的工作時才會被阻止。當儲存庫的可見性未確定時,分類器不會僅憑此點而阻止;它會改為依據其他規則判斷內容

402* 針對不同儲存庫或組織開啟拉取請求、使用 `gh repo fork` 進行分叉或推送到第三方儲存庫,除非您命名了該外部目標402* 對不同的儲存庫或組織開啟 pull request、使用 `gh repo fork` 進行分叉,或推送到第三方儲存庫,除非您指明了該外部目標

403 403 

404Claude Code v2.1.203 及更新版本也預設阻止這些:404Claude Code v2.1.203 及更新版本也預設阻止這些:

405 405 

406* 來自敏感本地存儲或其名稱、路徑或類型將其標記為敏感的檔案的內容進入提交、推送、PR 或問題文字、gist 或貼上或套件發佈,除非您命名了來源和目的地。工作階段文字記錄和對話日誌、認證和配置點資料夾(例如 SSH 金鑰、雲端認證、瀏覽器設定檔和 Shell 歷史記錄)以及使用者資料匯出都計為此類,儲存庫是私有的不會清除它406* 來自敏感本機儲存區,或來自名稱、路徑或類型標示其為敏感之檔案的內容,進入提交、推送、PR 或 issue 文字、gist 或貼文,或套件發佈,除非您同時指明了來源和目的地。工作階段逐字稿和對話日誌、憑證和設定點資料夾(例如 SSH 金鑰、雲端憑證、瀏覽器設定檔和 shell 歷史記錄)以及使用者資料匯出都包含在內,且儲存庫為私人並不會解除此限制

407 407 

408Claude Code v2.1.205 及更新版本也預設阻止這些:408Claude Code v2.1.205 及更新版本也預設阻止這些:

409 409 

410* 寫入 Claude Code 工作階段文字記錄、`~/.claude/projects/` 下的 `.jsonl` 歷史檔案或您配置的配置目錄,無論是直接還是通過 Shell 命令。該規則也涵蓋 Claude Code 為其自己的檢查附加到每個文字記錄項目的中繼資料行。讀取文字記錄不被阻止410* 寫入 Claude Code 工作階段逐字稿,即 `~/.claude/projects/` 或您所設定之設定目錄下的 `.jsonl` 歷史檔案,無論是直接寫入還是透過 shell 命令。此規則也涵蓋 Claude Code 為其自身檢查附加到每個逐字稿項目的中繼資料行。讀取逐字稿不會被阻止

411* 遞迴強制刪除,例如 `rm -rf "$VAR"` 或 `Remove-Item -Recurse -Force $dir`,其目標是在分類器看到的對話中任何地方都未指派的 Shell 變數,或以此類變數為根的 glob。該值僅來自較早的命令輸出,分類器永遠不會收到,因此分類器無法根據其他刪除規則驗證刪除目標。當您命名正在刪除的確切路徑或 Claude 使用寫入命令的已解析文字路徑重新執行刪除時,該塊會清除。其目標分類器可以解析的刪除不受影響。411* 遞迴強制刪除,例如 `rm -rf "$VAR"` 或 `Remove-Item -Recurse -Force $dir`,其目標是在分類器看到的對話中任何地方都未被指派的 shell 變數,或以此類變數為根的 glob。該值僅來自較早的命令輸出,而分類器永遠不會收到這些輸出,因此分類器無法依據其他刪除規則驗證刪除目標。當您指明正在刪除的確切路徑,或 Claude 將解析後的字面路徑寫入命令中重新執行刪除時,此阻止即會解除。分類器可以解析其目標的刪除不受影響。

412 412 

413 直接在變數下的 glob,如 `rm -rf "$VAR"/*`,是[關鍵路徑](#critical-paths)。`Remove-Item` 目標是裸 `*` 或以 `/*` 或 `\*` 結尾的永遠不會到達分類器:Claude Code [直接拒絕它們](#remove-item-in-powershell)。413 直接位於變數下的 glob,如 `rm -rf "$VAR"/*`,則屬於[關鍵路徑](#critical-paths)。目標為單獨的 `*` 或以 `/*` 或 `\*` 結尾的 `Remove-Item` 永遠不會送到分類器:Claude Code 會[直接拒絕它們](#remove-item-in-powershell)。

414 414 

415Claude Code v2.1.257 及更新版本也預設阻止這些:415Claude Code v2.1.257 及更新版本也預設阻止這些:

416 416 

417* 從雲端實例中繼資料端點(例如 `169.254.169.254`)請求認證,或使用機器自己的服務帳戶或節點身份明確驗證雲端、叢集或登錄呼叫417* 從雲端執行個體中繼資料端點(例如 `169.254.169.254`)請求憑證,或明確使用機器自身的服務帳戶或節點身分來驗證雲端、叢集或 registry 呼叫

418* 通過直接請求以外的路由到達公開主機,例如隧道、反向 Shell 或重寫為指向外部的解析器或代理配置418* 透過直接請求以外的路徑連線到公開主機,例如通道、反向 shell,或被改寫為指向外部的解析器或代理伺服器設定

419* 讀取屬於主機而不是您的任務的認證,例如節點憑證或節點的容器登錄驗證419* 讀取屬於主機而非屬於您任務的憑證,例如節點憑證或節點的容器 registry 驗證資訊

420* 連接到或掃描 Claude 未啟動的同級容器、Pod 或 VM,或容器下的節點420* 連線到或掃描 Claude 未啟動的同層容器、Pod 或 VM,或容器底下的節點

421 421 

422如果 Claude Code 在應該允許其中之一的地方執行,請在 `autoMode.environment` 中的[主機包含項目](/docs/zh-TW/auto-mode-config#define-trusted-infrastructure)中描述該設定。422如果 Claude Code 在本應允許其中某項操作的環境中執行,請在 `autoMode.environment` 的[主機隔離項目](/docs/zh-TW/auto-mode-config#define-trusted-infrastructure)中描述該設定。

423 423 

424Claude Code v2.1.261 及更新版本也預設阻止這些:424Claude Code v2.1.261 及更新版本也預設阻止這些:

425 425 

426* 在訊息、PR 或問題文字、文件或連結將被開啟或獲取的任何其他地方發佈或寫入公開貼上、圖表或資料共享服務的連結,當 URL 本身攜帶正在共享的內容時,除非您命名了該服務426* 在訊息、PR 或 issue 文字、文件,或任何連結會被開啟或擷取的其他地方,發佈或寫入指向公開貼文、圖表或資料分享服務的連結,而該 URL 本身即攜帶所分享的內容,除非您指明了該服務

427 427 

428**預設允許**:428**預設允許**:

429 429 

430* 您工作目錄中的本地檔案操作430* 您工作目錄中的本機檔案操作

431* 安裝在您的鎖定檔案或清單中宣告的依賴項431* 安裝在您的鎖定檔案或清單檔中宣告的相依套件

432* 讀取 `.env` 並將認證傳送到其匹配的 API432* 讀取 `.env` 並將憑證傳送到其對應的 API

433* 唯讀 HTTP 請求433* 唯讀 HTTP 請求

434* 推送到您正在處理的儲存庫的任何分支,包括預設分支。其名稱將其標記為部署或發佈目標的非預設分支,例如 `production` 或 `gh-pages`,不涵蓋:分類器根據其自己的條款判斷推送到那裡。推送的內容仍根據其他規則進行檢查,[`permissions.deny` 規則](/docs/zh-TW/permissions#manage-permissions)仍可以在每個模式中[按寫入](/docs/zh-TW/permissions#bash-rule-limits)阻止推送命令,遠端自己的分支保護仍然適用。在 v2.1.211 之前,僅推送到您啟動的分支、Claude 建立的分支和到預設分支的例行推送預設允許,在 v2.1.203 之前任何直接推送到預設分支都被阻止434* 推送到您正在處理的儲存庫的任何分支,包括預設分支。名稱將其標示為部署或發佈目標的非預設分支,例如 `production` 或 `gh-pages`,不在此列:分類器會依其本身的情況判斷推送到那裡的操作。推送的內容仍會依據其他規則進行檢查,[`permissions.deny` 規則](/docs/zh-TW/permissions#manage-permissions)仍可在每個模式中[依撰寫方式](/docs/zh-TW/permissions#bash-rule-limits)阻止推送命令,遠端自身的分支保護也仍然適用。在 v2.1.211 之前,預設僅允許推送到您起始所在的分支、Claude 建立的分支,以及對預設分支的例行推送;而在 v2.1.203 之前,任何直接推送到預設分支的操作都會被阻止

435* 刪除 Claude 在同一工作階段中較早建立的確切工作435* 刪除 Claude 在同一工作階段中稍早建立的特定工作

436* 作為您任務的一部分讀取、審查或寫入安全相關的程式碼、配置和威脅模型436* 作為您任務的一部分讀取、審查或撰寫與安全相關的程式碼、設定和威脅模型

437* 在同一多代理工作階段中一起工作的代理之間的訊息437* 在同一多 agent 工作階段中協同工作的 agent 之間的訊息

438* 將資料傳送到您在 [`environment`](/docs/zh-TW/auto-mode-config#define-trusted-infrastructure) 中列出的受信任網域、儲存桶和服務。這僅涵蓋資料流,不涵蓋同一基礎設施上的破壞性或認證操作438* 將資料傳送到您在 [`environment`](/docs/zh-TW/auto-mode-config#define-trusted-infrastructure) 中列出的受信任網域、儲存桶和服務。這僅涵蓋資料流,不涵蓋在同一基礎設施上的破壞性操作或憑證操作

439* [Chrome 中的 Claude](/docs/zh-TW/chrome)導航到受信任的內部網域、localhost 或您命名的 URL439* [Claude in Chrome](/docs/zh-TW/chrome) 導覽至受信任的內部網域、localhost 或您指明的 URL

440 440 

441沙箱命令預設不獲得網路存取。Claude 在命令本身上命名命令需要的主機,分類器與命令一起審查它們,批准的列表僅為該一個命令開啟這些主機。[每個命令允許的網域](/docs/zh-TW/sandboxing#per-command-allowed-domains-in-auto-mode)涵蓋列表可以和不能開啟的內容以及命令到達未列出主機時發生的情況。441沙箱化命令預設不會取得網路存取權。Claude 會在命令本身上指明該命令需要的主機,分類器會連同命令一起審查這些主機,核准的清單僅為該單一命令開放這些主機。[每個命令允許的網域](/docs/zh-TW/sandboxing#per-command-allowed-domains-in-auto-mode)涵蓋清單可以和不能開放的內容,以及命令嘗試連線到未列出主機時的情況。

442 442 

443執行 `claude auto-mode defaults` 以將完整規則列表列印為 JSON。如果例行操作被阻止,管理員可以通過 `autoMode.environment` 設定新增受信任的儲存庫、儲存桶和服務:請參閱[配置自動模式](/docs/zh-TW/auto-mode-config#define-trusted-infrastructure)。443執行 `claude auto-mode defaults` 以將完整規則清單以 JSON 格式印出。如果例行操作被阻止,管理員可以透過 `autoMode.environment` 設定新增受信任的儲存庫、儲存桶和服務:請參閱[設定自動模式](/docs/zh-TW/auto-mode-config)。

444 444 

445推送到您正在處理的儲存庫的任何分支並建立與您的請求相符的拉取請求無需提示即可執行,除非推送或拉取請求屬於[阻止列表](#what-the-classifier-blocks-by-default),例如秘密或敏感資料離開儲存庫,或針對不同儲存庫或組織的拉取請求。要在保持自動模式的同時要求這些命令前的人類檢查點,請新增 `permissions.ask` 規則,這些規則與命令[按寫入](/docs/zh-TW/permissions#bash-rule-limits)相符:請參閱[常見邊界](/docs/zh-TW/auto-mode-config#common-boundaries)。445推送到您正在處理的儲存庫的任何分支,以及建立符合您請求的 pull request,都無需提示即可執行,除非該推送或 pull request 屬於[阻止清單](#what-the-classifier-blocks-by-default),例如秘密或敏感資料離開儲存庫,或以不同儲存庫或組織為目標的 pull request。要在保持自動模式的同時,於這些命令執行前要求人工檢查點,請新增 `permissions.ask` 規則,這些規則會[依撰寫方式](/docs/zh-TW/permissions#bash-rule-limits)比對命令:請參閱[常見邊界](/docs/zh-TW/auto-mode-config#common-boundaries)。

446 446 

447<h3 id="first-read-outside-the-working-directories">447<h3 id="first-read-outside-the-working-directories">

448 工作目錄外的第一次讀取448 工作目錄外的第一次讀取

449</h3>449</h3>

450 450 

451當 [`permissions.blockReadsOutsideWorkingDirectories`](/docs/zh-TW/settings-reference#permissions-blockreadsoutsideworkingdirectories) 關閉時,檔案讀取在自動模式中無需提示即可執行,包括在[工作目錄](/docs/zh-TW/permissions#working-directories)外的讀取。Claude 第一次在它們外的路徑上使用 Read、Grep 或 Glob 工具時,Claude Code 詢問是否允許該讀取。451當 [`permissions.blockReadsOutsideWorkingDirectories`](/docs/zh-TW/settings-reference#permissions-blockreadsoutsideworkingdirectories) 關閉時,檔案讀取在自動模式中無需提示即可執行,包括在[工作目錄](/docs/zh-TW/permissions#working-directories)外的讀取。Claude 第一次對工作目錄外的路徑使用 Read、Grep 或 Glob 工具時,Claude Code 會詢問是否允許該讀取。

452 452 

453該提示不會出現在非互動式 `-p` 執行或背景工作階段中;那裡的讀取如前所述執行。453該提示不會出現在非互動式 `-p` 執行或背景工作階段中;那裡的讀取照常執行。

454 454 

455無論您的答案如何,Claude 都會繼續工作:455無論您如何回答,Claude 都會繼續工作:

456 456 

457* **是的,並繼續允許工作目錄外的任何讀取**:讀取執行,稍後工作目錄外的讀取如前所述執行,Claude Code 記錄您的答案,以便提示不會再次出現457* **是,並繼續允許工作目錄外的任何讀取**:讀取會執行,之後在工作目錄外的讀取照常執行,Claude Code 會記錄您的答案,讓提示不再出現

458* **否,並從現在開始阻止工作目錄外的讀取**:讀取被拒絕,Claude Code 在您的使用者設定中將 [`permissions.blockReadsOutsideWorkingDirectories`](/docs/zh-TW/settings-reference#permissions-blockreadsoutsideworkingdirectories) 設定為 `true`,這使檔案工具在每個稍後的工作階段和每個權限模式中拒絕此類讀取。要稍後讓 Claude 讀取此類路徑,請使用 `/add-dir` 新增其目錄或移除設定。458* **否,並從現在開始阻止工作目錄外的讀取**:讀取被拒絕,Claude Code 會在您的使用者設定中將 [`permissions.blockReadsOutsideWorkingDirectories`](/docs/zh-TW/settings-reference#permissions-blockreadsoutsideworkingdirectories) 設定為 `true`,這會使檔案工具在之後的每個工作階段和每個權限模式中拒絕此類讀取。若之後要讓 Claude 讀取此類路徑,請使用 `/add-dir` 新增其目錄或移除該設定。

459* **否,下次再詢問**:讀取被拒絕,下一次工作目錄外的讀取再次提示459* **否,下次再詢問**:讀取被拒絕,下一次在工作目錄外的讀取會再次提示

460* **是的,但下次再詢問**:讀取執行,沒有保存任何內容,下一次工作目錄外的讀取再次提示460* **是,但下次再詢問**:讀取會執行,不會儲存任何內容,下一次在工作目錄外的讀取會再次提示

461 461 

462<h3 id="boundaries-you-state-in-conversation">462<h3 id="boundaries-you-state-in-conversation">

463 您在對話中陳述的邊界463 您在對話中陳述的邊界

464</h3>464</h3>

465 465 

466分類器將您在對話中陳述的邊界視為阻止信號。如果您告訴 Claude「不要推送」或「在我審查前等待再部署」,分類器會阻止相符的操作,即使預設規則會允許它們。邊界保持有效直到您在稍後的訊息中解除它。Claude 自己的判斷條件已滿足不會解除它。466分類器將您在對話中陳述的邊界視為阻止訊號。如果您告訴 Claude「不要推送」或「等我審查後再部署」,即使預設規則會允許,分類器也會阻止相符的操作。邊界會持續有效,直到您在之後的訊息中解除它。Claude 自行判斷條件已滿足並不會解除它。

467 467 

468邊界不作為規則儲存。分類器在每次檢查時從文字記錄重新讀取它們,因此如果[上下文壓縮](/docs/zh-TW/costs#reduce-token-usage)移除陳述邊界的訊息,邊界可能會丟失。為了硬保證,請改為新增[拒絕規則](/docs/zh-TW/permissions#permission-rule-syntax)。468邊界不會以規則的形式儲存。分類器在每次檢查時都會從逐字稿重新讀取它們,因此如果[上下文壓縮](/docs/zh-TW/costs#reduce-token-usage)移除了陳述該邊界的訊息,邊界可能會遺失。若需要硬性保證,請改為新增[拒絕規則](/docs/zh-TW/permissions#permission-rule-syntax)。

469 469 

470<h3 id="approvals-you-state-in-conversation">470<h3 id="approvals-you-state-in-conversation">

471 您在對話中陳述的批准471 您在對話中陳述的核准

472</h3>472</h3>

473 473 

474如果您告訴 Claude 被阻止的操作是允許的,分類器將其讀取為您的批准,並可以清除該塊。您如何措辭決定了操作是否執行以及批准到達多遠:474如果您告訴 Claude 某個被阻止的操作是允許的,分類器會將其視為您的核准,並可以解除該阻止。您的措辭決定了操作是否執行,以及核准的涵蓋範圍:

475 475 

476* **命名操作及其細節**:您的訊息必須命名操作和使其危險的具體事項,例如強制推送的分支。僅命名動詞不會清除任何內容,因此「您可以強制推送」會使塊保持有效。476* **指明操作及其細節**:您的訊息必須指明該操作,以及使其危險的具體事項,例如強制推送的分支。僅指明動詞不會解除任何阻止,因此「您可以強制推送」會使阻止保持有效。

477* **期望它涵蓋一個操作**:批准涵蓋您命名的破壞性操作,因此稍後的操作再次被阻止,除非您授予批准為常設。要停止一次批准一個例行模式,請將其新增到 [`autoMode.allow`](/docs/zh-TW/auto-mode-config#override-the-block-and-allow-rules)。477* **預期它只涵蓋一個操作**:核准涵蓋您所指明的破壞性操作,因此之後的操作會再次被阻止,除非您將核准授予為持續有效。若要停止逐一核准某個例行模式,請將其新增到 [`autoMode.allow`](/docs/zh-TW/auto-mode-config#override-the-block-and-allow-rules)。

478* **某些塊保持有效**:[分類器的優先順序](/docs/zh-TW/auto-mode-config#override-the-block-and-allow-rules)列出您的批准可以到達的塊。要執行它不會清除的步驟,請[離開自動模式](#switch-permission-modes)並回答權限提示。478* **某些阻止會保持有效**:[分類器的優先順序](/docs/zh-TW/auto-mode-config#override-the-block-and-allow-rules)說明了您的核准可以解除哪些阻止。要執行無法解除的步驟,請[離開自動模式](#switch-permission-modes)並回答權限提示。

479 479 

480<h3 id="when-auto-mode-falls-back">480<h3 id="when-auto-mode-falls-back">

481 當自動模式回退時481 當自動模式改用備援時

482</h3>482</h3>

483 483 

484當自動模式無法批准您工作階段的操作時,發生的情況取決於情況:484當自動模式無法核准您工作階段的操作時,發生的情況取決於具體情形:

485 485 

486* **被阻止的操作**:Claude Code 顯示通知並在 `/permissions` 下的**最近拒絕**標籤中列出操作,您可以按 `r` 使用手動批准重試它。486* **被阻止的操作**:Claude Code 會顯示通知,並在 `/permissions` 的 **Recently denied** 分頁中列出該操作,您可以在此按 `r` 以手動核准重試。

487* **重複的塊**:如果分類器連續 3 次或總共 20 次阻止操作,自動模式暫停,Claude Code 恢復提示。批准提示的操作恢復自動模式。請參閱[重複塊閾值](#repeated-block-thresholds)以了解塊如何計數。487* **重複阻止**:如果分類器連續 3 次或總共 20 次阻止操作,自動模式會暫停,Claude Code 會恢復提示。核准被提示的操作即可恢復自動模式。請參閱[重複阻止閾值](#repeated-block-thresholds)以了解阻止如何計數。

488* **分類器沒有判決**:當自動模式以外的安全檢查拒絕分類器自己的請求,或分類器的回應不解析時,Claude Code 拒絕操作而不通知或**最近拒絕**項目。請參閱[自動模式無法確定操作的安全性](/docs/zh-TW/errors#auto-mode-cannot-determine-the-safety-of-an-action)以了解每個情況顯示的訊息和應對方法。488* **分類器沒有判決**:當自動模式以外的安全檢查拒絕分類器自身的請求,或分類器的回應無法解析時,Claude Code 會拒絕該操作,且不顯示通知,也不建立 **Recently denied** 項目。請參閱[自動模式無法確定操作的安全性](/docs/zh-TW/errors#auto-mode-cannot-determine-the-safety-of-an-action)以了解每種情況顯示的訊息和應對方法。

489* **伺服器沒有判決**:在[伺服器端分類器審查](#server-side-classifier-review)下,Claude Code 拒絕伺服器沒有給出判決的操作,並在連續十個沒有判決的回應後停止轉向。請參閱[伺服器未返回安全判決](/docs/zh-TW/errors#the-server-returned-no-safety-verdict)。489* **伺服器沒有判決**:在[伺服器端分類器審查](#server-side-classifier-review)下,Claude Code 會拒絕伺服器未給出判決的操作,並在連續十個沒有判決的回應後停止該回合。請參閱[伺服器未返回安全判決](/docs/zh-TW/errors#the-server-returned-no-safety-verdict)。

490* **檢查期間的模式切換**:如果您在分類器檢查待決時切換權限模式,Claude Code 丟棄新模式不會要求的判決。您改為被提示批准,或操作在 [`dontAsk` 模式](#allow-only-pre-approved-tools-with-dontask-mode)中自動拒絕。490* **檢查期間切換模式**:如果您在分類器檢查尚未完成時切換權限模式,Claude Code 會捨棄新模式不會請求的判決。您會改為被提示核准,或者該操作在 [`dontAsk` 模式](#allow-only-pre-approved-tools-with-dontask-mode)中被自動拒絕。

491 491 

492<h4 id="repeated-block-thresholds">492<h4 id="repeated-block-thresholds">

493 重複塊閾值493 重複阻止閾值

494</h4>494</h4>

495 495 

4963 個連續塊和 20 個總塊的閾值不可配置。總計數器在工作階段中持續,僅在其自己的限制觸發回退時重置。當自動模式以外的安全檢查拒絕分類器自己的請求時,Claude Code 不計算拒絕朝向任一閾值。496連續 3 次阻止和總共 20 次阻止的閾值無法設定。總計數器會在整個工作階段中持續累計,僅在其自身的上限觸發備援時才會重設。當自動模式以外的安全檢查拒絕分類器自身的請求時,Claude Code 不會將該拒絕計入任一閾值。

497 497 

498沒有 [`--permission-prompt-tool`](/docs/zh-TW/cli-reference#cli-flags) 的[非互動式](/docs/zh-TW/headless) `-p` 執行沒有回退提示。當重複塊到達閾值時,操作不執行,Claude 繼續工作。Claude Code 不停止執行。498沒有 [`--permission-prompt-tool`](/docs/zh-TW/cli-reference#cli-flags) 的[非互動式](/docs/zh-TW/headless) `-p` 執行沒有可改用的提示。當重複阻止達到閾值時,該操作不會執行,Claude 會繼續工作。Claude Code 不會停止執行。

499 499 

500重複塊通常意味著分類器缺少關於您基礎設施的上下文。使用 `/feedback` 報告誤報,或讓管理員[配置受信任的基礎設施](/docs/zh-TW/auto-mode-config#define-trusted-infrastructure)。500重複阻止通常意味著分類器缺少關於您基礎設施的上下文。請使用 `/feedback` 回報誤判,或請管理員[設定受信任的基礎設施](/docs/zh-TW/auto-mode-config)。

501 501 

502<h3 id="how-auto-mode-evaluates-actions">502<h3 id="how-auto-mode-evaluates-actions">

503 自動模式如何評估操作503 自動模式如何評估操作

504</h3>504</h3>

505 505 

506以下部分涵蓋 Claude Code 評估操作的順序、分類器如何審查子代理工作以及分類器呼叫在成本和延遲中新增的內容。506以下章節涵蓋 Claude Code 評估操作的順序、分類器如何審查 subagent 的工作,以及分類器呼叫在成本和延遲上增加的負擔。

507 507 

508<span id="how-the-classifier-evaluates-actions" />508<span id="how-the-classifier-evaluates-actions" />

509 509 

510<AccordionGroup>510<AccordionGroup>

511 <Accordion title="自動模式如何評估操作">511 <Accordion title="分類器如何評估操作">

512 每個操作都經過固定的決策順序。第一個相符的步驟獲勝:512 每個操作都會經過固定的決策順序。第一個相符的步驟優先:

513 513 

514 1. 與您的[允許、詢問或拒絕規則](/docs/zh-TW/permissions#manage-permissions)相符的操作立即解決,但有以下例外:514 1. 符合您的[允許、詢問或拒絕規則](/docs/zh-TW/permissions#manage-permissions)的操作會立即決定,但有以下例外:

515 * 寫入[受保護路徑](#protected-paths)的操作路由到分類器,即使允許規則相符515 * 寫入[受保護路徑](#protected-paths)的操作即使符合允許規則,也會送交分類器

516 * 沒有允許規則批准 `rm` 和 `rmdir` 移除針對[關鍵路徑](#critical-paths)516 * 沒有任何允許規則能核准針對[關鍵路徑](#critical-paths)的 `rm` 和 `rmdir` 移除操作

517 * 標記為 [`requiresUserInteraction`](/docs/zh-TW/mcp#require-approval-for-a-specific-tool) 的 MCP 工具即使允許規則相符也直接提示您,組織設定為 [`ask`](/docs/zh-TW/mcp#organization-controls-on-connector-tools) 的連接器工具在該設定到達 Claude Code 的工作階段中也是如此517 * 標記為 [`requiresUserInteraction`](/docs/zh-TW/mcp#require-approval-for-a-specific-tool) 的 MCP 工具即使符合允許規則也會直接提示您,而在[您的組織設定為 `ask`](/docs/zh-TW/mcp#organization-controls-on-connector-tools) 的連接器工具上,若該設定已送達 Claude Code 的工作階段,也是如此

518 * 攜帶[每個命令允許的網域](/docs/zh-TW/sandboxing#per-command-allowed-domains-in-auto-mode)的 Shell 命令也路由到分類器,即使允許規則相符,因為規則批准命令,而不是其主機518 * 攜帶[每個命令允許的網域](/docs/zh-TW/sandboxing#per-command-allowed-domains-in-auto-mode)的 shell 命令即使符合允許規則,也會送交分類器,因為規則核准的是命令,而不是其主機

519 * 在命令內容上相符的詢問規則,例如 `Bash(git push *)`,回退到權限提示519 * 依命令內容比對的詢問規則,例如 `Bash(git push *)`,會改用權限提示

520 * [符號連結檢查](/docs/zh-TW/permissions#symlinks)解決為受保護路徑的寫入在 Claude 請求的路徑本身不受保護時提示您520 * 經[符號連結檢查](/docs/zh-TW/permissions#symlinks)解析為受保護路徑的寫入操作,在 Claude 所請求的路徑本身不受保護時會提示您

521 2. 唯讀操作和您工作目錄中的檔案編輯自動批准,除了寫入[受保護路徑](#protected-paths)和[工作目錄外的第一次讀取](#first-read-outside-the-working-directories),這提示您521 2. 唯讀操作和您工作目錄中的檔案編輯會自動核准,但寫入[受保護路徑](#protected-paths)和[工作目錄外的第一次讀取](#first-read-outside-the-working-directories)除外,後者會提示您

522 * 在具有[伺服器端分類器審查](#server-side-classifier-review)的工作階段中,唯讀和[沙箱](/docs/zh-TW/sandboxing#sandbox-modes) Shell 命令等待該審查,如果它標記它們則被阻止522 * 在具有[伺服器端分類器審查](#server-side-classifier-review)的工作階段中,唯讀和[沙箱化](/docs/zh-TW/sandboxing#sandbox-modes)的 shell 命令會等待該審查,若審查將其標記則會被阻止

523 * 您工作目錄內的寫入,[符號連結檢查](/docs/zh-TW/permissions#symlinks)解決為其外的位置,在您被提示時523 * 在您工作目錄內、經[符號連結檢查](/docs/zh-TW/permissions#symlinks)解析為工作目錄外位置的寫入操作會提示您

524 3. 其他所有內容都進入分類器,除了[關鍵路徑移除](#critical-paths)在其預設處理下。在步驟 1 中直接提示您的連接器工具和 `requiresUserInteraction` MCP 工具永遠不會到達分類器,因此組織要求的批准和同意步驟都不是自動批准524 * 當 Claude 讀取[其他人製作的 artifact](/docs/zh-TW/artifacts#read-an-artifact-shared-with-you) 時,適用該章節所列的核准情況

525 4. 如果分類器阻止,Claude 收到原因。在大多數工作階段中,原因命名分類器相符的規則,例如 `[Data Exfiltration]`,而不是給出書面解釋;請參閱[審查拒絕](/docs/zh-TW/auto-mode-config#review-denials)525 3. 其他所有操作都會送交分類器,但採用預設處理方式的[關鍵路徑移除](#critical-paths)除外。在步驟 1 中直接提示您的連接器工具和 `requiresUserInteraction` MCP 工具也永遠不會送到分類器,因此組織要求的核准和同意步驟都不會被自動核准

526 526 4. 如果分類器阻止操作,Claude 會收到原因。在大多數工作階段中,原因會指明分類器比對到的規則,例如 `[Data Exfiltration]`,而不是提供書面說明;請參閱[檢視拒絕](/docs/zh-TW/auto-mode-config#review-denials)

527 您安裝的掛鉤 `tool.check` 的 [mod](/docs/zh-TW/plugins/mods/overview) 可以在步驟 3 前批准操作,分類器不檢查 mod 批准的操作。請參閱[使用掛鉤擴展權限](/docs/zh-TW/permissions#extend-permissions-with-hooks)。527 

528 528 您安裝的處理 `tool.check` 的 [mod](/docs/zh-TW/plugins/mods/overview) 可以在步驟 3 之前核准操作,分類器不會檢查 mod 核准的操作。請參閱[使用 hook 擴充權限](/docs/zh-TW/permissions#extend-permissions-with-hooks)。

529 進入自動模式時,授予任意程式碼執行的廣泛允許規則被丟棄:529 

530 530 進入自動模式時,授予任意程式碼執行能力的廣泛允許規則會被移除:

531 * 無條件 `Bash(*)` 或 `PowerShell(*)`531 

532 * 萬用字元解釋器,例如 `Bash(python*)`532 * 無條件的 `Bash(*)` 或 `PowerShell(*)`

533 * 套件管理器執行命令533 * 使用萬用字元的直譯器,例如 `Bash(python*)`

534 * 套件管理器的執行命令

534 * `Agent` 允許規則535 * `Agent` 允許規則

535 * [`Monitor`](/docs/zh-TW/tools-reference#monitor-tool) 允許規則,因為 Claude Code 通過 Shell 執行 Monitor 命令536 * [`Monitor`](/docs/zh-TW/tools-reference#monitor-tool) 允許規則,因為 Claude Code 透過 shell 執行 Monitor 命令

536 537 

537 窄規則,例如 `Bash(npm test)` 保持有效。Claude Code 在您離開自動模式時恢復丟棄的規則。在 v2.1.236 之前,Claude Code 在自動模式中保持 `Monitor` 允許規則有效,因此與整個工具相符的規則批准 Monitor 命令而不進行分類器審查。538 像 `Bash(npm test)` 這樣的窄規則仍然有效。當您離開自動模式時,Claude Code 會恢復被移除的規則。在 v2.1.236 之前,Claude Code 在自動模式中保留 `Monitor` 允許規則,因此比對整個工具的規則會在沒有分類器審查的情況下核准 Monitor 命令。

538 539 

539 Claude Code 也在會丟棄未提交工作的命令前執行 `git status`,例如 `git reset --hard` 或 `rm -rf`,並向分類器顯示是否存在暫存、修改或未追蹤的工作。Claude Code 在該檢查中報告未追蹤的檔案,即使儲存庫的 git 配置設定 `status.showUntrackedFiles=no`。540 Claude Code 也會在可能丟棄未提交工作的命令(例如 `git reset --hard` 或 `rm -rf`)之前自行執行 `git status`,並向分類器顯示是否存在已暫存、已修改或未追蹤的工作。即使儲存庫的 git 設定指定了 `status.showUntrackedFiles=no`,Claude Code 仍會在該檢查中回報未追蹤的檔案。

540 541 

541 在 Claude Code 本身發送的分類器請求中,分類器看到使用者訊息、除了唯讀查詢(例如檔案讀取和搜尋)之外的工具呼叫,以及您的 CLAUDE.md 內容。工具結果從這些請求中被剝離,因此檔案或網頁中的惡意內容無法直接操縱分類器。542 在 Claude Code 本身發送的分類器請求中,分類器會看到使用者訊息、除唯讀查詢(例如檔案讀取和搜尋)之外的工具呼叫,以及您的 CLAUDE.md 內容。工具結果會從這些請求中移除,因此檔案或網頁中的惡意內容無法直接操縱分類器。

542 543 

543 您可以使用 [PostToolUse 掛鉤的 `classifierContext` 欄位](/docs/zh-TW/hooks#annotate-a-result-for-the-auto-mode-classifier)註解呼叫的結果,分類器將其讀取為應用程式提供的上下文。該欄位需要 Claude Code v2.1.236 或更新版本。544 您可以使用 [PostToolUse hook 的 `classifierContext` 欄位](/docs/zh-TW/hooks#annotate-a-result-for-the-auto-mode-classifier)註解呼叫的結果,分類器會將其視為應用程式提供的上下文。該欄位需要 Claude Code v2.1.236 或更新版本。

544 545 

545 一個單獨的伺服器端探針掃描傳入的工具結果,並在 Claude 讀取它之前標記可疑內容。有關這些層如何協同工作的更多資訊,請參閱[自動模式公告](https://claude.com/blog/auto-mode)和[工程深入探討](https://www.anthropic.com/engineering/claude-code-auto-mode)。546 另一個獨立的伺服器端探測器會掃描傳入的工具結果,並在 Claude 讀取之前標記可疑內容。有關這些防護層如何協同運作的更多資訊,請參閱[自動模式公告](https://claude.com/blog/auto-mode)和[工程深入探討](https://www.anthropic.com/engineering/claude-code-auto-mode)。

546 </Accordion>547 </Accordion>

547 548 

548 <Accordion title="自動模式如何處理子代理">549 <Accordion title="自動模式如何處理 subagent">

549 分類器在三個點檢查[子代理](/docs/zh-TW/sub-agents)工作:550 分類器會在三個時間點檢查 [subagent](/docs/zh-TW/sub-agents) 的工作:

550 551 

551 1. 在子代理啟動前,委派的任務描述被評估,因此危險看起來的任務在生成時被阻止。552 1. 在 subagent 啟動之前,會評估委派的任務描述,因此看起來危險的任務會在產生時就被阻止。

552 2. 當子代理執行時,其每個操作都經過與父工作階段相同的[決策順序](#how-the-classifier-evaluates-actions),具有相同的塊和允許規則。子代理前置事項中的任何 `permissionMode` 都被忽略。553 2. 在 subagent 執行期間,其每個操作都會經過與父工作階段相同的[決策順序](#how-the-classifier-evaluates-actions),並套用相同的阻止和允許規則。subagent frontmatter 中的任何 `permissionMode` 都會被忽略。

553 3. 當子代理完成時,分類器審查其工作及其最終報告,然後父代讀取報告。當分類器標記子代理的工作或報告,或單獨的 API 安全檢查拒絕審查時,報告仍被傳遞,前面加上安全警告。當分類器對審查不可用時,報告到達時帶有在代理工作前驗證的注意事項。554 3. 當 subagent 完成時,分類器會在父工作階段讀取報告之前審查其工作和最終報告。當分類器標記了 subagent 的工作或報告,或另一個獨立的 API 安全檢查拒絕了該審查時,報告仍會送達,但前面會加上安全警告。當分類器無法進行審查時,報告送達時會附帶一則說明,提醒您在據此採取行動前先驗證 subagent 的工作。

554 </Accordion>555 </Accordion>

555 556 

556 <Accordion title="成本和延遲">557 <Accordion title="成本和延遲">

557 分類器預設在 Claude Sonnet 5 上執行,而不是在您的 `/model` 選擇上。Anthropic 配置伺服器端的分類器模型優先於該預設。當您工作階段的模型是 Claude Sonnet 4.6,或當 [`availableModels`](/docs/zh-TW/model-config#restrict-model-selection) 排除 Sonnet 5 時,分類器改為在工作階段的模型上執行,或在工作階段在 [Fable 模型](/docs/zh-TW/model-config#work-with-fable)上執行時在 Opus 模型上執行;在 Anthropic API 以外的提供商上,該 Opus 回退是提供商的預設 Opus 模型。558 分類器預設在 Claude Sonnet 5 上執行,而不是使用您的 `/model` 選擇。Anthropic 在伺服器端設定的分類器模型優先於此預設值。當您工作階段的模型是 Claude Sonnet 4.6,或 [`availableModels`](/docs/zh-TW/model-config#restrict-model-selection) 排除了 Sonnet 5 時,分類器會改為在工作階段的模型上執行;若工作階段在 [Fable 模型](/docs/zh-TW/model-config#work-with-fable)上執行,則改為在 Opus 模型上執行。在 Anthropic API 以外的提供商上,該 Opus 備援是您在 [`ANTHROPIC_DEFAULT_OPUS_MODEL`](/docs/zh-TW/model-config#environment-variables) 中設定的模型,若您未設定則為 Opus 5。

558 559 

559 工作階段的第一個自動模式請求驗證 Sonnet 5 預設:如果請求成功,Sonnet 5 保持工作階段的分類器模型,如果它因為模型不可用而失敗,工作階段改為使用回退。560 工作階段的第一個自動模式請求會驗證 Sonnet 5 預設值:如果請求成功,Sonnet 5 會保持為工作階段的分類器模型;如果因為模型不可用而失敗,工作階段會改用備援模型。

560 561 

561 在 Enterprise 計畫和使用 Claude API、[AWS 上的 Claude Platform](/docs/zh-TW/claude-platform-on-aws)、Amazon Bedrock、Google Cloud 的 Agent Platform 或 Microsoft Foundry 的帳戶上,分類器呼叫計入您的權杖使用。每次檢查發送文字記錄的一部分加上待決操作,在執行前新增往返。讀取和受保護路徑外的工作目錄編輯跳過分類器,因此開銷主要來自 Shell 命令和網路操作。伺服器審查操作作為工作階段模型請求的一部分的地方,沒有單獨的分類器呼叫計數;請參閱[伺服器端分類器審查](#server-side-classifier-review)。562 在 Enterprise 計畫,以及使用 Claude API、[AWS 上的 Claude Platform](/docs/zh-TW/claude-platform-on-aws)、Amazon Bedrock、Google Cloud 的 Agent Platform 或 Microsoft Foundry 的帳戶上,分類器呼叫會計入您的 token 使用量。每次檢查都會傳送部分逐字稿以及待處理的操作,在執行前增加一次往返。讀取和受保護路徑以外的工作目錄編輯會略過分類器,因此額外負擔主要來自 shell 命令和網路操作。若伺服器將審查操作作為工作階段模型請求的一部分,就沒有獨立的分類器呼叫需要計入;請參閱[伺服器端分類器審查](#server-side-classifier-review)。

562 563 

563 沙箱網路存取不新增每個連接分類器請求。分類器在一次審查中與命令一起判斷[命令命名的主機](/docs/zh-TW/sandboxing#per-command-allowed-domains-in-auto-mode),Claude Code 檢查每個連接對批准列表而不再次呼叫分類器。564 沙箱化的網路存取不會針對每個連線增加分類器請求。分類器會在一次審查中,將[命令所指明的主機](/docs/zh-TW/sandboxing#per-command-allowed-domains-in-auto-mode)與命令一併判斷,而 Claude Code 會依據核准的清單檢查每個連線,不會再次呼叫分類器。

564 </Accordion>565 </Accordion>

565</AccordionGroup>566</AccordionGroup>

566 567 


588 589 

589`bypassPermissions` 模式會停用權限提示和安全檢查,使工具呼叫立即執行,包括寫入[受保護路徑](#protected-paths)。590`bypassPermissions` 模式會停用權限提示和安全檢查,使工具呼叫立即執行,包括寫入[受保護路徑](#protected-paths)。

590 591 

591[任何模式都不會自動批准的操作](#actions-no-mode-auto-approves)在此模式中仍會提示。[PowerShell 中的 Remove-Item](#remove-item-in-powershell) 拒絕也適用於此模式。592[任何模式都不會自動核准的操作](#actions-no-mode-auto-approves)在此模式中仍會提示。讀取[其他組織的公開 artifact](/docs/zh-TW/artifacts#read-an-artifact-shared-with-you) 需要您的核准,而此模式不會詢問核准,因此 Claude 無法讀取。[PowerShell 中的 Remove-Item](#remove-item-in-powershell) 拒絕也適用於此模式。

592 593 

593兩個[跨工作階段訊息傳遞](/docs/zh-TW/cross-session-messaging)保護措施在此模式中仍然適用,以及在有可用的略過權限的 Plan Mode 工作階段中:594兩個[跨工作階段訊息傳遞](/docs/zh-TW/cross-session-messaging)保護措施在此模式中仍然適用,以及在有可用的略過權限的 Plan Mode 工作階段中:

594 595 

permissions.md +1 −1

Details

358 Read 和 Edit358 Read 和 Edit

359</h3>359</h3>

360 360 

361若要阻止 Claude 的檔案工具讀取檔案或目錄,請為其路徑新增 `Read` deny 規則,如 `Read(./.env)` 或 `Read(./secrets/**)`;[排除敏感檔案](/docs/zh-TW/settings-reference#exclude-sensitive-files)有一個可貼上的範例。361若要阻止 Claude 的檔案工具讀取檔案或目錄,請為其路徑新增 `Read` deny 規則,如 `Read(./.env)` 或 `Read(./secrets/**)`;[排除敏感檔案](/docs/zh-TW/settings-reference#exclude-sensitive-files)有一個可貼上的範例。如果您的專案有 `.claudeignore` 檔案,它不會有任何作用,所以請將其項目移至 `Read` deny 規則中。

362 362 

363`Edit` 規則適用於所有編輯檔案的內建工具。Claude 會盡力嘗試將 `Read` 規則應用於所有讀取檔案的內建工具(如 Grep 和 Glob)、您提示中的 `@file` 提及,以及連接的 [IDE](/docs/zh-TW/vs-code#the-built-in-ide-mcp-server) 與 Claude 共享的選擇和開啟檔案內容。363`Edit` 規則適用於所有編輯檔案的內建工具。Claude 會盡力嘗試將 `Read` 規則應用於所有讀取檔案的內建工具(如 Grep 和 Glob)、您提示中的 `@file` 提及,以及連接的 [IDE](/docs/zh-TW/vs-code#the-built-in-ide-mcp-server) 與 Claude 共享的選擇和開啟檔案內容。

364 364 

plugin-evals.md +2 −2

Details

31* Claude Code v2.1.269 或更新版本。執行 `claude --version` 檢查,執行 `claude update` 升級。31* Claude Code v2.1.269 或更新版本。執行 `claude --version` 檢查,執行 `claude update` 升級。

32* Git 2.31 或更新版本(如果已安裝 git)。執行 `git --version` 檢查。使用較舊的 git,`claude plugin eval` [在執行任何案例之前停止](#git-is-too-old-for-claude-plugin-eval)。沒有 git,它會正常執行。32* Git 2.31 或更新版本(如果已安裝 git)。執行 `git --version` 檢查。使用較舊的 git,`claude plugin eval` [在執行任何案例之前停止](#git-is-too-old-for-claude-plugin-eval)。沒有 git,它會正常執行。

33* 具有 `plugin.json` 或 `.claude-plugin/plugin.json` 資訊清單的 plugin 目錄,或 [skills-directory plugin](/docs/zh-TW/plugins/loading#plugins-shared-through-a-repository)。33* 具有 `plugin.json` 或 `.claude-plugin/plugin.json` 資訊清單的 plugin 目錄,或 [skills-directory plugin](/docs/zh-TW/plugins/loading#plugins-shared-through-a-repository)。

34* 與您的正常 Claude Code 工作階段相同的驗證和模型提供者。Eval 執行、評判評分器和 `claude plugin eval init` 使用您的認證呼叫模型,因此它們計入您的方案使用量限制或 API 帳單。當命令報告成本時,該數字是這些呼叫的 [list-price estimate](/docs/zh-TW/costs)。34* 與您的正常 Claude Code 工作階段相同的身分驗證和模型提供者。Eval 執行、評判評分器和 `claude plugin eval init` 使用您的憑證呼叫模型,因此它們計入您方案的用量上限或 API 帳單。當命令報告成本時,該數字是這些呼叫的 [list-price estimate](/docs/zh-TW/costs)。如果您在 Amazon Bedrock、Google Cloud 的 Agent Platform 或 Microsoft Foundry 上執行 Claude Code,請從匯出與正常工作階段相同提供者變數的 shell 執行測試套件,因為每次執行都會從該 shell 繼承這些變數,如 [`env` 欄位](#prompt-md-fields)所述。

35 35 

36<h2 id="how-an-eval-run-works">36<h2 id="how-an-eval-run-works">

37 Eval 執行的運作方式37 Eval 執行的運作方式


441 441 

442CI 執行器還需要以下內容:442CI 執行器還需要以下內容:

443 443 

444* **安裝和認證**:CI 執行器需要 Claude Code 安裝和[環境中的認證](/docs/zh-TW/authentication),例如 `ANTHROPIC_API_KEY`。444* **安裝和憑證**:CI 執行器需要 Claude Code 安裝和[環境中的憑證](/docs/zh-TW/authentication),例如 `ANTHROPIC_API_KEY` 或您雲端供應商的變數。

445* **信任**:沒有 `--trust-plugin`,其簽出目錄 Claude Code 尚未信任的工作需要[首次執行信任提示](#trust-the-plugin-directory),無法詢問的執行會被拒絕,結束代碼為 1。445* **信任**:沒有 `--trust-plugin`,其簽出目錄 Claude Code 尚未信任的工作需要[首次執行信任提示](#trust-the-plugin-directory),無法詢問的執行會被拒絕,結束代碼為 1。

446* **CI 中的 `init`**:`claude plugin eval init` 需要終端機來詢問您的問題;在 CI 中,執行 `claude plugin eval init --bare <name>` 以取得空白範本。446* **CI 中的 `init`**:`claude plugin eval init` 需要終端機來詢問您的問題;在 CI 中,執行 `claude plugin eval init --bare <name>` 以取得空白範本。

447 447 

Details

29每個子命令共享這些結束代碼、plugin 引數和範圍值:29每個子命令共享這些結束代碼、plugin 引數和範圍值:

30 30 

31* **結束代碼**:成功時為 `0`,失敗時為 `1`。`validate` 為非預期錯誤新增結束 `2`,`eval` 新增 [其部分](#plugin-eval) 中列出的代碼。31* **結束代碼**:成功時為 `0`,失敗時為 `1`。`validate` 為非預期錯誤新增結束 `2`,`eval` 新增 [其部分](#plugin-eval) 中列出的代碼。

32* **Plugin 引數**:`<plugin>` 引數是 plugin `name` 或 `name@marketplace`。當兩個市場提供相同名稱時,使用限定形式。`configure` 僅接受限定形式。32* **Plugin 引數**:`<plugin>` 引數是 plugin `name` 或 `name@marketplace`。當兩個市集提供相同名稱時,使用限定形式。`configure` 僅接受限定形式。

33* **範圍**:`--scope` 接受 `user`、`project` 或 `local`,並命名命令寫入的設定檔。`update` 也接受 `managed`。33* **範圍**:`--scope` 接受 `user`、`project` 或 `local`,並命名命令寫入的設定檔。`update` 也接受 `managed`。

34 34 

35<h3 id="plugin-init">35<h3 id="plugin-init">


76 plugin install76 plugin install

77</h3>77</h3>

78 78 

79從您已新增的市場安裝 plugin。`i` 是 `install` 的別名。79從您已新增的市集安裝 plugin。`i` 是 `install` 的別名。

80 80 

81```bash theme={null}81```bash theme={null}

82claude plugin install <plugin> [options]82claude plugin install <plugin> [options]

83```83```

84 84 

85大多數 plugins 無需提示即可安裝。對於其市場項目 [執行命令以安裝它](/docs/zh-TW/plugins/host-marketplace) 或 [為其下載設定 `headersHelper`](/docs/zh-TW/plugins/host-marketplace#how-users-accept-a-headershelper-command) 的 plugin,Claude Code 首先列印命令並詢問 `Run this command now? [y/N]`。85大多數 plugins 無需提示即可安裝。對於其市集項目 [執行命令以安裝它](/docs/zh-TW/plugins/host-marketplace) 或 [為其下載設定 `headersHelper`](/docs/zh-TW/plugins/host-marketplace#how-users-accept-a-headershelper-command) 的 plugin,Claude Code 首先列印命令並詢問 `Run this command now? [y/N]`。

86 86 

87| 旗標 | 說明 |87| 旗標 | 說明 |

88| :- | :- |88| :- | :- |

89| `-s, --scope <scope>` | 安裝範圍:`user`、`project` 或 `local`。預設為 `user` |89| `-s, --scope <scope>` | 安裝範圍:`user`、`project` 或 `local`。預設為 `user` |

90| `--config <key=value>` | 設定 plugin 的 manifest 宣告的 [`userConfig`](/docs/zh-TW/plugins/manifest-reference) 選項。為每個選項重複旗標。需要 Claude Code v2.1.147 或更新版本。寫成 `<server>.<key>` 的金鑰設定 [bundled MCP server](/docs/zh-TW/plugins/components#include-a-packaged-mcpb-server) 在其自己的 `user_config` 中宣告的設定,用於 plugin 內附帶的 bundle 檔案。`<server>.<key>` 形式需要 Claude Code v2.1.285 或更新版本 |90| `--config <key=value>` | 設定 plugin 的 manifest 宣告的 [`userConfig`](/docs/zh-TW/plugins/manifest-reference) 選項。為每個選項重複旗標。需要 Claude Code v2.1.147 或更新版本。寫成 `<server>.<key>` 的金鑰改為設定 [內附的 MCP 伺服器](/docs/zh-TW/plugins/components#include-a-packaged-mcpb-server) 在其自己的 `user_config` 中宣告的設定,用於 plugin 內附帶的 bundle 檔案。`<server>.<key>` 形式需要 Claude Code v2.1.285 或更新版本 |

91| `-y, --yes` | 接受顯示的安裝命令,無需 `Run this command now?` 提示。當命令在 Claude Code 工作階段內執行時(例如從 Bash 工具或 hook)被忽略。需要 Claude Code v2.1.229 或更新版本 |91| `-y, --yes` | 接受顯示的安裝命令,無需 `Run this command now?` 提示。當命令在 Claude Code 工作階段內執行時(例如從 Bash 工具或 hook)被忽略。需要 Claude Code v2.1.229 或更新版本 |

92| `--accept-command <sha256>` | 接受顯示的安裝命令,其 `sha256` 先前的 [`--json` 執行](#plugin-json-result) 在 `shownCommand` 中報告,代替 `-y`。無法與 `-y` 結合。請參閱 [接受顯示的安裝命令](#accept-a-displayed-install-command)。需要 Claude Code v2.1.271 或更新版本 |92| `--accept-command <sha256>` | 接受顯示的安裝命令,其 `sha256` 先前的 [`--json` 執行](#plugin-json-result) 在 `shownCommand` 中報告,代替 `-y`。無法與 `-y` 結合。請參閱 [接受顯示的安裝命令](#accept-a-displayed-install-command)。需要 Claude Code v2.1.271 或更新版本 |

93| `--json` | 將結果列印為 stdout 最後一行的一個 JSON 物件,而不是人類可讀的訊息,供指令碼使用。請參閱 [JSON 結果格式](#plugin-json-result)。需要 Claude Code v2.1.268 或更新版本 |93| `--json` | 將結果列印為 stdout 最後一行的一個 JSON 物件,而不是人類可讀的訊息,供指令碼使用。請參閱 [JSON 結果格式](#plugin-json-result)。需要 Claude Code v2.1.268 或更新版本 |

94 94 

95執行 `claude plugin install --help` 在您的 shell 中查看您的版本支援的每個選項。95在您的 shell 中執行 `claude plugin install --help`,查看您的版本支援的每個選項。

96 96 

97從您自己的終端傳遞 `-y` 以接受顯示的命令,無需提示。以下是沒有 TTY 和 Claude 執行命令時發生的情況:97從您自己的終端機傳遞 `-y` 以接受顯示的命令,無需提示。以下是沒有 TTY 和 Claude 執行命令時發生的情況:

98 98 

99* **stdin 或 stdout 不是 TTY,且您既不傳遞 `-y` 也不傳遞 `--accept-command`**:安裝被拒絕。輸出說命令只是顯示,結束代碼為 `1`99* **stdin 或 stdout 不是 TTY,且您既不傳遞 `-y` 也不傳遞 `--accept-command`**:安裝被拒絕。輸出說命令只是顯示,結束代碼為 `1`

100* **Claude 透過其 Bash 工具執行命令**:`-y` 被忽略。改為從您自己的終端執行命令100* **Claude 透過其 Bash 工具執行命令**:`-y` 被忽略。改為從您自己的終端機執行命令

101 101 

102為複製專案的每個人安裝 plugin:102為複製專案的每個人安裝 plugin:

103 103 


115 JSON 結果格式115 JSON 結果格式

116</h4>116</h4>

117 117 

118當您將 `--json` 傳遞給 `plugin install` 時,stdout 的最後一行是一個 JSON 物件。只解析該行,因為 Claude Code 在其前面列印市場宣告的任何命令。118當您將 `--json` 傳遞給 `plugin install` 時,stdout 的最後一行是一個 JSON 物件。只解析該行,因為 Claude Code 在其前面列印市集宣告的任何命令。

119 119 

120三個欄位始終存在:120三個欄位始終存在:

121 121 


125 125 

126其他欄位(例如 `pluginId`、`scope` 和 `failureCode`)僅在適用時出現。126其他欄位(例如 `pluginId`、`scope` 和 `failureCode`)僅在適用時出現。

127 127 

128`plugin uninstall`、`plugin update`、`plugin enable` 和 `plugin disable` 上的 `--json` 選項會列印相同的物件,並帶有該子命令自己的欄位。

129 

128使用錯誤(例如無效的 `--scope`)不列印結果行,結束 `1`,stderr 上有原因。130使用錯誤(例如無效的 `--scope`)不列印結果行,結束 `1`,stderr 上有原因。

129 131 

130<h4 id="accept-a-displayed-install-command">132<h4 id="accept-a-displayed-install-command">

131 接受顯示的安裝命令133 接受顯示的安裝命令

132</h4>134</h4>

133 135 

134當 `--json` 執行顯示市場宣告的命令且不執行它時,`failed` 結果也會帶有 `shownCommand` 物件。其欄位包括顯示的命令、它所屬的 plugin 和命令的 `sha256`。136當 `--json` 執行顯示市集宣告的命令且不執行它時,`failed` 結果也會帶有 `shownCommand` 物件。其欄位包括顯示的命令、它所屬的 plugin 和命令的 `sha256`。

135 137 

136若要接受完全相同的命令,從您自己的終端使用該 `sha256` 作為 `--accept-command` 重新執行,因為旗標在 Claude Code 工作階段內無效。需要 Claude Code v2.1.271 或更新版本。138若要接受完全相同的命令,從您自己的終端機使用該 `sha256` 作為 `--accept-command` 重新執行,因為旗標在 Claude Code 工作階段內無效。需要 Claude Code v2.1.271 或更新版本。

137 139 

138`sha256` 計為完全相同的命令、plugin 和市場目錄的接受。如果自命令顯示以來其中任何一個已變更,Claude Code 不接受 `sha256` 並再次顯示命令。執行自己的市場重新整理擷取的變更也計為此類變更。140`sha256` 計為完全相同的命令、plugin 和市集目錄的接受。如果自命令顯示以來其中任何一個已變更,Claude Code 不接受 `sha256` 並再次顯示命令。執行自己的市集重新整理擷取的變更也計為此類變更。

139 141 

140如果 `shownCommand.acceptCommandMatched` 為 `false`,您傳遞的 `sha256` 與現在顯示的命令不符。在使用其 `sha256` 重新執行之前,檢查該命令。142如果 `shownCommand.acceptCommandMatched` 為 `false`,您傳遞的 `sha256` 與現在顯示的命令不符。在使用其 `sha256` 重新執行之前,檢查該命令。

141 143 


153| :- | :- |155| :- | :- |

154| `-s, --scope <scope>` | 從範圍卸載:`user`、`project` 或 `local`。預設為 `user` |156| `-s, --scope <scope>` | 從範圍卸載:`user`、`project` 或 `local`。預設為 `user` |

155| `--keep-data` | 保留 plugin 的持久資料目錄 `~/.claude/plugins/data/<id>/` |157| `--keep-data` | 保留 plugin 的持久資料目錄 `~/.claude/plugins/data/<id>/` |

156| `--prune` | 也移除自動安裝的 [dependencies](/docs/zh-TW/plugins/dependencies),沒有剩餘 plugin 需要 |158| `--prune` | 也移除沒有剩餘 plugin 需要的自動安裝 [相依套件](/docs/zh-TW/plugins/dependencies) |

157| `-y, --yes` | 跳過 `--prune` 確認提示。當 stdin 或 stdout 不是 TTY 時,需要與 `--prune` 一起使用 |159| `-y, --yes` | 跳過 `--prune` 確認提示。當 stdin 或 stdout 不是 TTY 時,需要與 `--prune` 一起使用 |

158| `--json` | 將結果列印為 stdout 最後一行的一個 JSON 物件,格式與 [`plugin install --json`](#plugin-json-result) 相同。無法與 `--prune` 結合。需要 Claude Code v2.1.268 或更新版本 |160| `--json` | 將結果列印為 stdout 最後一行的一個 JSON 物件,格式與 [`plugin install --json`](#plugin-json-result) 相同。無法與 `--prune` 結合。需要 Claude Code v2.1.268 或更新版本 |

159 161 


203 205 

204如果 plugin 已在解析的範圍啟用,命令列印 `Plugin "formatter" is already enabled` 並結束 `1`。使用 `--json`,結果有 `"failureCode": "already_in_goal_state"` 和 `"alreadyInGoalState": true`,因此指令碼可以將該情況視為成功。206如果 plugin 已在解析的範圍啟用,命令列印 `Plugin "formatter" is already enabled` 並結束 `1`。使用 `--json`,結果有 `"failureCode": "already_in_goal_state"` 和 `"alreadyInGoalState": true`,因此指令碼可以將該情況視為成功。

205 207 

206當 plugin 宣告 [dependencies](/docs/zh-TW/plugins/dependencies) 時,Claude Code 也啟用它們。命令在這些情況下失敗:208當 plugin 宣告 [相依套件](/docs/zh-TW/plugins/dependencies) 時,Claude Code 也啟用它們。命令在這些情況下失敗:

207 209 

208* **dependency 未安裝**:啟用失敗並列印每個遺漏 dependency 的 `claude plugin install` 命令210* **相依套件未安裝**:啟用失敗並列印每個遺漏相依套件的 `claude plugin install` 命令

209* **dependency 被您組織的 plugin 原則阻止**:啟用失敗並命名被阻止的 dependency211* **相依套件被您組織的 plugin 原則阻止**:啟用失敗並命名被阻止的相依套件

210* **dependency 在優先於目標範圍的範圍設定為 `false`**:啟用失敗。在該範圍啟用 dependency,或傳遞 `--scope` 以在那裡寫入212* **相依套件在優先於目標範圍的範圍設定為 `false`**:啟用失敗。在該範圍啟用相依套件,或傳遞 `--scope` 以在那裡寫入

211 213 

212在宣告它的任何地方重新啟用 plugin:214在宣告它的任何地方重新啟用 plugin:

213 215 


239 241 

240命令對仍然需要的 plugin 失敗:242命令對仍然需要的 plugin 失敗:

241 243 

242* **另一個啟用的 plugin [depends on](/docs/zh-TW/plugins/dependencies) 它**:命令失敗並命名要先停用的相依項244* **另一個啟用的 plugin [相依於](/docs/zh-TW/plugins/dependencies) 它**:命令失敗並命名要先停用的相依項

243* **您的組織要求它作為同步 plugin**:命令失敗並保存任何內容245* **您的組織要求它作為同步 plugin**:命令失敗且不保存任何內容

244 246 

245停用一個 plugin:247停用一個 plugin:

246 248 


254 plugin update256 plugin update

255</h3>257</h3>

256 258 

257將 plugin 更新到其市場提供的最新版本。新版本在您的下一個工作階段中載入,或在執行中的工作階段中執行 `/reload-plugins` 後載入。259將 plugin 更新到其市集提供的最新版本。新版本在您的下一個工作階段中載入,或在執行中的工作階段中執行 `/reload-plugins` 後載入。

258 260 

259```bash theme={null}261```bash theme={null}

260claude plugin update <plugin> [options]262claude plugin update <plugin> [options]


264| :- | :- |266| :- | :- |

265| `-s, --scope <scope>` | 更新的範圍:`user`、`project`、`local` 或 `managed`。省略時自動偵測 |267| `-s, --scope <scope>` | 更新的範圍:`user`、`project`、`local` 或 `managed`。省略時自動偵測 |

266| `-y, --yes` | 接受來自 [command-source](/docs/zh-TW/plugins/host-marketplace) plugin 的已變更安裝命令,無需提示。當 stdin 或 stdout 不是 TTY 時需要,除非您傳遞 `--accept-command`。需要 Claude Code v2.1.229 或更新版本 |268| `-y, --yes` | 接受來自 [command-source](/docs/zh-TW/plugins/host-marketplace) plugin 的已變更安裝命令,無需提示。當 stdin 或 stdout 不是 TTY 時需要,除非您傳遞 `--accept-command`。需要 Claude Code v2.1.229 或更新版本 |

267| `--accept-command <sha256>` | 接受市場宣告的命令,其 `sha256` 先前的 [`--json` 執行](#plugin-json-result) 在 `shownCommand` 中報告,代替 `-y`。無法與 `-y` 結合。需要 Claude Code v2.1.271 或更新版本 |269| `--accept-command <sha256>` | 接受市集宣告的命令,其 `sha256` 先前的 [`--json` 執行](#plugin-json-result) 在 `shownCommand` 中報告,代替 `-y`。無法與 `-y` 結合。需要 Claude Code v2.1.271 或更新版本 |

268| `--json` | 將結果列印為 stdout 最後一行的一個 JSON 物件,格式與 [`plugin install --json`](#plugin-json-result) 相同。需要 Claude Code v2.1.268 或更新版本 |270| `--json` | 將結果列印為 stdout 最後一行的一個 JSON 物件,格式與 [`plugin install --json`](#plugin-json-result) 相同。需要 Claude Code v2.1.268 或更新版本 |

269 271 

270如果您省略 `--scope`,命令會在您目前專案安裝 plugin 的最具體範圍更新它,檢查本地、專案、使用者,然後受管。272如果您省略 `--scope`,命令會在您目前專案安裝 plugin 的最具體範圍更新它,檢查本地、專案、使用者,然後受管。


281 283 

282Claude Code 列印 `Checking for updates for plugin "formatter@my-marketplace"…`,然後是結果。當沒有更新時,它列印 `formatter is already at the latest version (1.0.0).` 並結束 `0`。284Claude Code 列印 `Checking for updates for plugin "formatter@my-marketplace"…`,然後是結果。當沒有更新時,它列印 `formatter is already at the latest version (1.0.0).` 並結束 `0`。

283 285 

284您可以傳遞裸 plugin 名稱,命令會根據您安裝的 plugins 進行比對。當來自不同市場的已安裝 plugins 共享名稱時,命令拒絕更新並列出要執行的限定 `plugin-name@marketplace-name` 命令。按裸名稱更新需要 Claude Code v2.1.246 或更新版本。286您可以傳遞裸 plugin 名稱,命令會根據您安裝的 plugins 進行比對。當來自不同市集的已安裝 plugins 共享名稱時,命令拒絕更新並列出要執行的限定 `plugin-name@marketplace-name` 命令。按裸名稱更新需要 Claude Code v2.1.246 或更新版本。

285 287 

286<h3 id="plugin-list">288<h3 id="plugin-list">

287 plugin list289 plugin list


296| 旗標 | 說明 |298| 旗標 | 說明 |

297| :- | :- |299| :- | :- |

298| `--json` | 將列表列印為 JSON |300| `--json` | 將列表列印為 JSON |

299| `--available` | 也列出您的市場提供但您未安裝的 plugins。沒有 `--json` 時無效 |301| `--available` | 也列出您的市集提供但您未安裝的 plugins。沒有 `--json` 時無效 |

300| `--data-size [plugin]` | 測量每個已安裝 plugin 的 [saved data directory](#what-an-uninstall-deletes-and-keeps),或僅測量命名 plugin 的,以 `name@marketplace` 形式給出。沒有 `--json` 時無效。如果名稱沒有安裝記錄,命令列印 `--data-size names a plugin that is not installed` 並結束 `1`,而不是列印列表。需要 Claude Code v2.1.285 或更新版本 |302| `--data-size [plugin]` | 測量每個已安裝 plugin 的 [保存的資料目錄](#what-an-uninstall-deletes-and-keeps),或僅測量命名 plugin 的,以 `name@marketplace` 形式給出。沒有 `--json` 時無效。如果名稱沒有安裝記錄,命令列印 `--data-size names a plugin that is not installed` 並結束 `1`,而不是列印列表。需要 Claude Code v2.1.285 或更新版本 |

301 303 

302Claude Code 按每個 plugin 的載入方式對人類可讀的輸出進行分組:304Claude Code 按每個 plugin 的載入方式對人類可讀的輸出進行分組:

303 305 

304* **`Installed plugins:`**:您從市場安裝的 plugins306* **`Installed plugins:`**:您從市集安裝的 plugins

305* **`Session-only plugins (--plugin-dir / --plugin-url):`**:由同一命令中的這些旗標載入的 plugins,如 `claude --plugin-dir ./my-plugin plugin list`307* **`Session-only plugins (--plugin-dir / --plugin-url):`**:由同一命令中的這些旗標載入的 plugins,如 `claude --plugin-dir ./my-plugin plugin list`

306* **`Skills-directory plugins (.claude/skills/*):`**:Claude Code 在 skills 目錄中找到的 plugins308* **`Skills-directory plugins (.claude/skills/*):`**:Claude Code 在 skills 目錄中找到的 plugins

307* **`Synced from claude.ai`**:[從您的 claude.ai 帳戶同步的 plugins](/docs/zh-TW/plugins/loading#synced-plugins)309* **`Synced from claude.ai`**:[從您的 claude.ai 帳戶同步的 plugins](/docs/zh-TW/plugins/loading#synced-plugins)


317| 欄位 | 類型 | 說明 |319| 欄位 | 類型 | 說明 |

318| :- | :- | :- |320| :- | :- | :- |

319| `id` | string | 安裝為 `name@marketplace`,工作階段專用 plugins 為 `name@inline`,skills-directory plugins 為 `name@skills-dir`,從 claude.ai 同步的 plugins 為 `name@synced` |321| `id` | string | 安裝為 `name@marketplace`,工作階段專用 plugins 為 `name@inline`,skills-directory plugins 為 `name@skills-dir`,從 claude.ai 同步的 plugins 為 `name@synced` |

320| `version` | string | 對於市場安裝,[Claude Code 在安裝時計算的](/docs/zh-TW/plugins/loading#versions-and-updates) 版本。對於工作階段專用、skills-directory 或同步 plugin,manifest 的 `version`,或未宣告時為 `unknown` |322| `version` | string | 對於市集安裝,[Claude Code 在安裝時計算的](/docs/zh-TW/plugins/loading#versions-and-updates) 版本。對於工作階段專用、skills-directory 或同步 plugin,manifest 的 `version`,或未宣告時為 `unknown` |

321| `scope` | string | 安裝為 `user`、`project`、`local` 或 `managed`;skills-directory plugins 為 `user` 或 `project`;工作階段專用 plugins 為 `session`;從 claude.ai 同步的 plugins 為 `synced` |323| `scope` | string | 安裝為 `user`、`project`、`local` 或 `managed`;skills-directory plugins 為 `user` 或 `project`;工作階段專用 plugins 為 `session`;從 claude.ai 同步的 plugins 為 `synced` |

322| `enabled` | boolean | plugin 在您的合併設定中是否啟用 |324| `enabled` | boolean | plugin 在您的合併設定中是否啟用 |

323| `installPath` | string | plugin 載入的目錄 |325| `installPath` | string | plugin 載入的目錄 |

324| `installedAt` | string | 安裝的 ISO 時間戳。僅市場安裝 |326| `installedAt` | string | 安裝的 ISO 時間戳。僅市集安裝 |

325| `lastUpdated` | string | 上次更新的 ISO 時間戳。僅市場安裝 |327| `lastUpdated` | string | 上次更新的 ISO 時間戳。僅市集安裝 |

326| `projectPath` | string | 安裝所屬的專案。僅 `project` 和 `local` 範圍 |328| `projectPath` | string | 安裝所屬的專案。僅 `project` 和 `local` 範圍 |

327| `mcpServers` | object | plugin 的 MCP 伺服器定義,當市場安裝的 plugin 有任何時 |329| `mcpServers` | object | plugin 的 MCP 伺服器定義,當市集安裝的 plugin 有任何時 |

328| `errors` | array of strings | 載入錯誤,當 plugin 無法載入時 |330| `errors` | array of strings | 載入錯誤,當 plugin 無法載入時 |

329| `notes` | array of strings | plugin 已載入並正常運作的編寫警告 |331| `notes` | array of strings | plugin 已載入並正常運作的編寫警告 |

330| `errorDetails` | array of objects | 每個 `errors` 項目一個物件,給出其診斷 `type` 和它引用的名稱,例如 plugin、市場、伺服器或檔案。需要 Claude Code v2.1.268 或更新版本 |332| `errorDetails` | array of objects | 每個 `errors` 項目一個物件,給出其診斷 `type` 和它引用的名稱,例如 plugin、市集、伺服器或檔案。需要 Claude Code v2.1.268 或更新版本 |

331| `noteDetails` | array of objects | 每個 `notes` 項目的相同詳細物件。需要 Claude Code v2.1.268 或更新版本 |333| `noteDetails` | array of objects | 每個 `notes` 項目的相同詳細物件。需要 Claude Code v2.1.268 或更新版本 |

332| `hasUserConfig` | boolean | 當 plugin 已載入且其 manifest 宣告 [`userConfig` 選項](/docs/zh-TW/plugins/manifest-reference#user-configuration) 時存在且為 `true`。對於無法載入的 plugin 不存在,無論其 manifest 宣告什麼。保存的值永遠不包括。需要 Claude Code v2.1.285 或更新版本 |334| `hasUserConfig` | boolean | 當 plugin 已載入且其 manifest 宣告 [`userConfig` 選項](/docs/zh-TW/plugins/manifest-reference#user-configuration) 時存在且為 `true`。對於無法載入的 plugin 不存在,無論其 manifest 宣告什麼。保存的值永遠不包括。需要 Claude Code v2.1.285 或更新版本 |

333| `projectEnabled` | boolean | 專案的共享 `.claude/settings.json` 是否開啟 plugin。僅市場安裝。需要 Claude Code v2.1.285 或更新版本 |335| `projectEnabled` | boolean | 專案的共享 `.claude/settings.json` 是否開啟 plugin。僅市集安裝。需要 Claude Code v2.1.285 或更新版本 |

334| `dataDirSize` | object | 使用 `--data-size`,plugin 的 [saved data directory](#what-an-uninstall-deletes-and-keeps) 的大小為 `bytes` 和 `human`;當目錄遺漏或空白時不存在。僅市場安裝。需要 Claude Code v2.1.285 或更新版本 |336| `dataDirSize` | object | 使用 `--data-size`,plugin 的 [保存的資料目錄](#what-an-uninstall-deletes-and-keeps) 的大小為 `bytes` 和 `human`;當目錄遺漏或空白時不存在。僅市集安裝。需要 Claude Code v2.1.285 或更新版本 |

335| `dataDirUnreadable` | boolean | 使用 `--data-size`,當保存的資料目錄存在但無法測量時為 `true`。僅市場安裝。需要 Claude Code v2.1.285 或更新版本 |337| `dataDirUnreadable` | boolean | 使用 `--data-size`,當保存的資料目錄存在但無法測量時為 `true`。僅市集安裝。需要 Claude Code v2.1.285 或更新版本 |

336 338 

337使用 `--json --available`,Claude Code 列印一個物件而不是陣列。其 `installed` 欄位保存已安裝 plugin 物件的陣列,其 `available` 欄位保存每個未安裝市場 plugin 的一個物件,欄位如下。339使用 `--json --available`,Claude Code 列印一個物件而不是陣列。其 `installed` 欄位保存已安裝 plugin 物件的陣列,其 `available` 欄位保存每個未安裝市集 plugin 的一個物件,欄位如下。

338 340 

339| 欄位 | 類型 | 說明 |341| 欄位 | 類型 | 說明 |

340| :- | :- | :- |342| :- | :- | :- |

341| `pluginId` | string | `name@marketplace` |343| `pluginId` | string | `name@marketplace` |

342| `name` | string | plugin 在市場中的名稱 |344| `name` | string | plugin 在市集中的名稱 |

343| `marketplaceName` | string | 提供它的市場 |345| `marketplaceName` | string | 提供它的市集 |

344| `source` | string or object | 市場項目的 [source](/docs/zh-TW/plugins/marketplace-reference):相對路徑為字串,否則為物件 |346| `source` | string or object | 市集項目的 [source](/docs/zh-TW/plugins/marketplace-reference):相對路徑為字串,否則為物件 |

345| `description` | string | 項目的說明,當它有時 |347| `description` | string | 項目的說明,當它有時 |

346| `version` | string | 項目的版本,當它宣告時 |348| `version` | string | 項目的版本,當它宣告時 |

347| `installCount` | number | 安裝計數,當 Claude Code 有 plugin 的計數時 |349| `installCount` | number | 安裝計數,當 Claude Code 有 plugin 的計數時 |


391| `--values-stdin` | 從 stdin 讀取選項值作為單行字串的 JSON 物件並儲存它們。您遺漏的選項保留其儲存的值 |393| `--values-stdin` | 從 stdin 讀取選項值作為單行字串的 JSON 物件並儲存它們。您遺漏的選項保留其儲存的值 |

392| `--json` | 將結果列印為 stdout 上的一個 JSON 物件。不使用 `--values-stdin`,物件帶有選項的 `schema` 和 `choices`、其起始 `inputs` 以及 `configured` 和 `unconfigured` 選項名稱。使用 `--values-stdin`,它帶有 `saved` 選項名稱,以及當它們可以被讀回時,`unconfigured` 選項名稱 |394| `--json` | 將結果列印為 stdout 上的一個 JSON 物件。不使用 `--values-stdin`,物件帶有選項的 `schema` 和 `choices`、其起始 `inputs` 以及 `configured` 和 `unconfigured` 選項名稱。使用 `--values-stdin`,它帶有 `saved` 選項名稱,以及當它們可以被讀回時,`unconfigured` 選項名稱 |

393 395 

394不使用旗標,命令列出每個選項,最多三個標籤:`required` 或 `optional`,然後 `sensitive` 用於 manifest 宣告為敏感的選項,然後 `set` 或 `not set`。它列印沒有儲存的值。使用 `--json`,輸出包括不敏感選項的儲存值,永遠不包括敏感選項的文字。396不使用旗標,命令列出每個選項,最多三個標籤:`required` 或 `optional`,然後 `sensitive` 用於 manifest 宣告為敏感的選項,然後 `set` 或 `not set`。它不列印任何儲存的值。使用 `--json`,輸出包括不敏感選項的儲存值,永遠不包括敏感選項的文字。

395 397 

396若要儲存值,將它們寫入檔案作為將選項金鑰對應到字串值的 JSON 物件,然後在 stdin 上傳遞檔案。將 `formatter@my-marketplace` 替換為您自己的 plugin 的 id,如 `claude plugin list` 所示。此範例從包含 `{"api_url": "https://example.com"}` 的檔案 `values.json` 設定一個名為 `api_url` 的選項:398若要儲存值,將它們寫入檔案作為將選項金鑰對應到字串值的 JSON 物件,然後在 stdin 上傳遞檔案。將 `formatter@my-marketplace` 替換為您自己的 plugin 的 id,如 `claude plugin list` 所示。此範例從包含 `{"api_url": "https://example.com"}` 的檔案 `values.json` 設定一個名為 `api_url` 的選項:

397 399 


403 405 

404傳遞 plugin 的完整 `name@marketplace` id,如 `claude plugin list` 所示。`configure` 不接受裸 `name`。當沒有已載入的 plugin 有該 id 時,命令列印 `No installed plugin has the id "<plugin>".` 並結束 `1`。406傳遞 plugin 的完整 `name@marketplace` id,如 `claude plugin list` 所示。`configure` 不接受裸 `name`。當沒有已載入的 plugin 有該 id 時,命令列印 `No installed plugin has the id "<plugin>".` 並結束 `1`。

405 407 

406對於 bundled MCP server 的設定,請參閱 [`plugin install --config`](#plugin-install) 或 `/plugin` 中的 **Configure** 項目。408對於內附的 MCP 伺服器的設定,請參閱 [`plugin install --config`](#plugin-install) 或 `/plugin` 中的 **Configure** 項目。

407 409 

408<h3 id="plugin-prune">410<h3 id="plugin-prune">

409 plugin prune411 plugin prune

410</h3>412</h3>

411 413 

412移除自動安裝的 [dependencies](/docs/zh-TW/plugins/dependencies),沒有已安裝的 plugin 再需要。命令永遠不會移除您自己安裝的 plugin。`autoremove` 是 `prune` 的別名。414移除沒有已安裝的 plugin 再需要的自動安裝 [相依套件](/docs/zh-TW/plugins/dependencies)。命令永遠不會移除您自己安裝的 plugin。`autoremove` 是 `prune` 的別名。

413 415 

414```bash theme={null}416```bash theme={null}

415claude plugin prune [options]417claude plugin prune [options]


427claude plugin prune --dry-run429claude plugin prune --dry-run

428```430```

429 431 

430Claude Code 列出孤立的 dependencies 並以 `(dry run — nothing removed)` 結尾。沒有要移除的內容時,它列印以 `Nothing to prune` 開頭的行。432Claude Code 列出孤立的相依套件並以 `(dry run — nothing removed)` 結尾。沒有要移除的內容時,它列印以 `Nothing to prune` 開頭的行。

431 433 

432不使用 `--dry-run`,命令僅在您在提示處確認或傳遞 `-y` 後移除孤立的 dependencies。434不使用 `--dry-run`,命令僅在您在提示處確認或傳遞 `-y` 後移除孤立的相依套件。

433 435 

434無論您在提示處的答案如何,結束代碼都是 `0`。436無論您在提示處的答案如何,結束代碼都是 `0`。

435 437 

436`prune` 的作用取決於是否附加了終端以及您是否傳遞了 `-y`:438`prune` 的作用取決於是否附加了終端機以及您是否傳遞了 `-y`:

437 439 

438| 終端和旗標 | 發生的情況 |440| 終端機和旗標 | 發生的情況 |

439| :- | :- |441| :- | :- |

440| 互動式終端,無 `-y` | 列出孤立的 dependencies 並詢問 `Remove? [y/N]` |442| 互動式終端機,無 `-y` | 列出孤立的相依套件並詢問 `Remove? [y/N]` |

441| 任何終端,`-y` | 移除它們並列印 `Removed N auto-installed plugins: <names>` |443| 任何終端機,`-y` | 移除它們並列印 `Removed N auto-installed plugins: <names>` |

442| 非 TTY stdin 或 stdout,無 `-y` | 列印列表並 ``Not a TTY — run `claude plugin prune -y` to remove.``,不移除任何內容 |444| 非 TTY stdin 或 stdout,無 `-y` | 列印列表並 ``Not a TTY — run `claude plugin prune -y` to remove.``,不移除任何內容 |

443 445 

444<h3 id="plugin-eval">446<h3 id="plugin-eval">


447 449 

448執行 plugin 的 [eval cases](/docs/zh-TW/plugin-evals) 並報告評分結果。需要 Claude Code v2.1.269 或更新版本。450執行 plugin 的 [eval cases](/docs/zh-TW/plugin-evals) 並報告評分結果。需要 Claude Code v2.1.269 或更新版本。

449 451 

450每個案例是一個提示加上評分者。Claude Code 在隔離的工作階段中執行它多次,僅載入目標 plugin,預設情況下也不載入 plugin,以便報告顯示差異。452每個案例是一個提示詞加上評分者。Claude Code 在隔離的工作階段中執行它多次,僅載入目標 plugin,預設情況下也不載入 plugin 執行,以便報告顯示差異。

451 453 

452請參閱 [使用 evals 測試 plugins](/docs/zh-TW/plugin-evals) 以了解案例格式、評分者、結果和 CI 使用。454請參閱 [使用 evals 測試 plugins](/docs/zh-TW/plugin-evals) 以了解案例格式、評分者、結果和 CI 使用。

453 455 


469| 選項 | 說明 | 預設 |471| 選項 | 說明 | 預設 |

470| :- | :- | :- |472| :- | :- | :- |

471| `--runs <n>` | 每個 [arm](/docs/zh-TW/plugin-evals#compare-against-a-no-plugin-baseline) 中每個案例的執行 | 每個案例的 `runs`,否則 3 |473| `--runs <n>` | 每個 [arm](/docs/zh-TW/plugin-evals#compare-against-a-no-plugin-baseline) 中每個案例的執行 | 每個案例的 `runs`,否則 3 |

472| `-j, --concurrency <n>` | 同時執行的代理工作階段,1 到 8。它們共享您的速率限制 | `1` |474| `-j, --concurrency <n>` | 同時執行的 agent 工作階段,1 到 8。它們共享您的速率限制 | `1` |

473| `--model <model>` | 測試中的代理的模型 | 每個案例的 `model`,否則 `ANTHROPIC_MODEL`(如果設定),否則 Claude Code 的預設值 |475| `--model <model>` | 測試中的 agent 的模型 | 每個案例的 `model`,否則 `ANTHROPIC_MODEL`(如果設定),否則 Claude Code 的預設值 |

474| `--judge-model <model>` | `llm` 和 `baseline` 評分者的模型 | 一個小的快速模型 |476| `--judge-model <model>` | `llm` 和 `baseline` 評分者的模型 | 一個小的快速模型 |

475| `--ablation <mode>` | `none` 或 `with-without`。請參閱 [與無 plugin 基線比較](/docs/zh-TW/plugin-evals#compare-against-a-no-plugin-baseline) | 當 plugin 解析時為 `with-without`,否則為 `none` |477| `--ablation <mode>` | `none` 或 `with-without`。請參閱 [與無 plugin 基線比較評分](/docs/zh-TW/plugin-evals#compare-against-a-no-plugin-baseline) | 依案例決定,如該節所述 |

476| `--threshold <0..1>` | 如果任何案例評分低於此,結束 1 | `1.0` |478| `--threshold <0..1>` | 如果任何案例評分低於此,結束 1 | `1.0` |

477| `--max-cost-usd <usd>` | 一旦支出達到此值,停止下一次執行,結束 2,並報告部分結果 | 無限制 |479| `--max-cost-usd <usd>` | 一旦支出達到此值,停止下一次執行,結束 2,並報告部分結果 | 無限制 |

478| `--allow-tools <tools...>` | 授予超出唯讀集合的工具,例如 `Bash`、`Write`、`Edit` 或 `"mcp__plugin_<plugin>_<server>__*"`。請參閱 [授予工具](/docs/zh-TW/plugin-evals#grant-tools) | |480| `--allow-tools <tools...>` | 授予超出唯讀集合的工具,例如 `Bash`、`Write`、`Edit` 或 `"mcp__plugin_<plugin>_<server>__*"`。請參閱 [授予工具](/docs/zh-TW/plugin-evals#grant-tools) | |


503claude plugin eval init [name] [options]505claude plugin eval init [name] [options]

504```506```

505 507 

506從 plugin 的根資料夾執行命令,保存 `.claude-plugin/plugin.json` 或 skill 的 `SKILL.md` 的目錄。若要有意在另一個目錄中建立架構套件,傳遞 `--eval-dir`。508從 plugin 的根資料夾執行命令,也就是保存 `.claude-plugin/plugin.json` 或 skill 的 `SKILL.md` 的目錄。若要有意在另一個目錄中建立套件架構,傳遞 `--eval-dir`。

507 509 

508在終端中,命令開啟互動式 Claude Code 工作階段以進行編寫訪談。在訪談中,Claude 執行以下操作:510在終端機中,命令開啟互動式 Claude Code 工作階段以進行編寫訪談。在訪談中,Claude 執行以下操作:

509 511 

5101. 讀取 plugin5121. 讀取 plugin

5112. 詢問您它應該做什麼5132. 詢問您它應該做好什麼

5123. 提議案例和評分者5143. 提議案例和評分者

5134. 寫入案例檔案5154. 寫入案例檔案

5145. 執行案例並與您檢查評分,以確認評分者按您的方式評分5165. 執行案例並與您檢查評分,以確認評分者按您的方式評分

515 517 

516使用 `--bare` 或沒有終端,命令改為寫入空白單案例範本。當 Claude 從 Claude Code 工作階段內執行命令時,命令列印該工作階段要遵循的訪談說明,而不是寫入範本。518使用 `--bare` 或沒有終端機,命令改為寫入空白單案例範本。當 Claude 從 Claude Code 工作階段內執行命令時,命令列印該工作階段要遵循的訪談說明,而不是寫入範本。

517 519 

518可選的 `name` 是案例名稱。它在 `--bare` 或沒有終端時需要,因為命令為該案例寫入空白範本。案例名稱以字母或數字開頭,僅包含字母、數字、`.`、`_` 和 `-`。在每個平台上,命令也拒絕 Windows 無法儲存的名稱,例如 `con` 或以 `.` 結尾的名稱。520可選的 `name` 是案例名稱。它在 `--bare` 或沒有終端機時需要,因為命令為該案例寫入空白範本。案例名稱以字母或數字開頭,僅包含字母、數字、`.`、`_` 和 `-`。在每個平台上,命令也拒絕 Windows 無法儲存的名稱,例如 `con` 或以 `.` 結尾的名稱。

519 521 

520命令接受這些選項:522命令接受這些選項:

521 523 

522| 選項 | 說明 | 預設 |524| 選項 | 說明 | 預設 |

523| :- | :- | :- |525| :- | :- | :- |

524| `--bare` | 為 `<name>` 寫入空白 `prompt.md` 和 `graders/criteria.md`,而不是執行訪談 | |526| `--bare` | 為 `<name>` 寫入空白 `prompt.md` 和 `graders/criteria.md`,而不是執行訪談 | |

525| `-i, --interactive` | 需要訪談。沒有終端時失敗,而不是寫入範本 | |527| `-i, --interactive` | 需要訪談。沒有終端機時失敗,而不是寫入範本 | |

526| `--eval-dir <dir>` | 目前目錄下方寫入案例的目錄 | manifest 的 `experimental.evals`,否則 `evals` |528| `--eval-dir <dir>` | 目前目錄下方寫入案例的目錄 | manifest 的 `experimental.evals`,否則 `evals` |

527 529 

528<h3 id="plugin-tag">530<h3 id="plugin-tag">

529 plugin tag531 plugin tag

530</h3>532</h3>

531 533 

532為 plugin 發佈建立名為 `<name>--v<version>` 的帶註解 git 標籤。標籤前,命令檢查 plugin 的 `plugin.json` 和任何列出它的市場項目是否同意版本。534為 plugin 發佈建立名為 `<name>--v<version>` 的帶註解 git 標籤。標籤前,命令檢查 plugin 的 `plugin.json` 和任何列出它的市集項目是否同意版本。

533 535 

534有關何時標籤發佈,請參閱 [發佈 plugin](/docs/zh-TW/plugins/publish)。536有關何時標籤發佈,請參閱 [發佈 plugin](/docs/zh-TW/plugins/publish)。

535 537 


537claude plugin tag [path] [options]539claude plugin tag [path] [options]

538```540```

539 541 

540`[path]` 是 plugin 目錄,預設為目前目錄。命令透過從該目錄向上走到列出 plugin 的 `.claude-plugin/marketplace.json` 來找到市場項目。542`[path]` 是 plugin 目錄,預設為目前目錄。命令透過從該目錄向上走到列出 plugin 的 `.claude-plugin/marketplace.json` 來找到市集項目。

541 543 

542| 旗標 | 說明 |544| 旗標 | 說明 |

543| :- | :- |545| :- | :- |


547| `-m, --message <msg>` | 標籤註解訊息。`%s` 代表版本。預設為 `<name> <version>` |549| `-m, --message <msg>` | 標籤註解訊息。`%s` 代表版本。預設為 `<name> <version>` |

548| `--remote <name>` | 使用 `--push` 推送到的遠端。預設為 `origin` |550| `--remote <name>` | 使用 `--push` 推送到的遠端。預設為 `origin` |

549 551 

550預覽市場簽出中 plugin 的標籤:552預覽市集簽出中 plugin 的標籤:

551 553 

552```bash theme={null}554```bash theme={null}

553claude plugin tag plugins/formatter --dry-run555claude plugin tag plugins/formatter --dry-run


557 559 

558* plugin 名稱560* plugin 名稱

559* 版本及其來自的檔案561* 版本及其來自的檔案

560* 匹配的市場項目,當有時562* 匹配的市集項目,當有時

561* 標籤名稱563* 標籤名稱

562* 它將執行的 `git tag` 和 `git push` 命令564* 它將執行的 `git tag` 和 `git push` 命令

563 565 


565 567 

566當命令無法安全地標籤時,它結束 `1` 並列印原因。常見原因是:568當命令無法安全地標籤時,它結束 `1` 並列印原因。常見原因是:

567 569 

568* `plugin.json` 或市場項目中沒有 `version`570* `plugin.json` 或市集項目中沒有 `version`

569* 標籤已存在571* 標籤已存在

570* 工作樹是髒的572* 工作樹是髒的

571 573 

574<h3 id="plugin-test">

575 plugin test

576</h3>

577 

578為 [mod](/docs/zh-TW/plugins/mods/overview)(一種其程式碼會註冊事件處理常式的 plugin)執行測試。此命令不需要工作階段、登入或網路。如需如何撰寫測試,請參閱 [測試 mod](/docs/zh-TW/plugins/mods/test)。

579 

580```bash theme={null}

581claude plugin test [directory]

582```

583 

584`[directory]` 是 mod 的目錄,預設為目前目錄。命令會執行其下名稱以 `.test.ts` 或 `.test.tsx` 結尾的每個檔案,並在測試失敗時以狀態 1 結束。

585 

586為 `./first-mod` 中的 mod 執行測試:

587 

588```bash theme={null}

589claude plugin test ./first-mod

590```

591 

572<h3 id="plugin-validate">592<h3 id="plugin-validate">

573 plugin validate593 plugin validate

574</h3>594</h3>

575 595 

576驗證 plugin manifest、市場 manifest 或目錄中的 skills、agents 和命令,並以 CI 工作可以對其進行操作的代碼結束。對於建立、測試和編輯工作流程,請參閱 [建立 plugin](/docs/zh-TW/plugins/create)。對於驗證器在每個 manifest 中檢查的內容,請參閱 [plugin manifest 參考](/docs/zh-TW/plugins/manifest-reference) 和 [市場參考](/docs/zh-TW/plugins/marketplace-reference)。596驗證 plugin manifest、市集 manifest 或目錄中的 skills、agents 和命令,並以 CI 工作可以對其進行操作的代碼結束。對於建立、測試和編輯工作流程,請參閱 [建立 plugin](/docs/zh-TW/plugins/create)。對於驗證器在每個 manifest 中檢查的內容,請參閱 [plugin manifest 參考](/docs/zh-TW/plugins/manifest-reference) 和 [市集參考](/docs/zh-TW/plugins/marketplace-reference)。

577 597 

578```bash theme={null}598```bash theme={null}

579claude plugin validate <path> [options]599claude plugin validate <path> [options]


581 601 

582| 旗標 | 說明 |602| 旗標 | 說明 |

583| :- | :- |603| :- | :- |

584| `--strict` | 將警告視為錯誤,因此執行時容許的未識別欄位和遺漏中繼資料失敗執行。需要 Claude Code v2.1.145 或更新版本 |604| `--strict` | 將警告視為錯誤,因此執行時容許的未識別欄位和遺漏中繼資料會使執行失敗。需要 Claude Code v2.1.145 或更新版本 |

585| `--json` | 將驗證報告輸出為具有相同結束代碼的一個 JSON 物件。需要 Claude Code v2.1.259 或更新版本 |605| `--json` | 將驗證報告輸出為具有相同結束代碼的一個 JSON 物件。需要 Claude Code v2.1.259 或更新版本 |

586 606 

587在提交前驗證 plugin:607在提交前驗證 plugin:


606Claude Code 不遵循您命名的目錄內的符號連結。它的作用取決於連結的位置:626Claude Code 不遵循您命名的目錄內的符號連結。它的作用取決於連結的位置:

607 627 

608* **plugin 或 `.claude` 根下的連結 `skills`、`agents` 或 `commands` 目錄**:Claude Code 警告其中的任何內容都未被讀取。628* **plugin 或 `.claude` 根下的連結 `skills`、`agents` 或 `commands` 目錄**:Claude Code 警告其中的任何內容都未被讀取。

609* **`skills`、`agents` 或 `commands` 目錄內的連結項目**:Claude Code 跳過它並警告,每個目錄,它跳過了多少項目,工作階段會載入。629* **`skills`、`agents` 或 `commands` 目錄內的連結項目**:Claude Code 跳過它,並按目錄警告它跳過了多少個工作階段會載入的項目。

610* **您命名的 `skills`、`agents` 或 `commands` 目錄本身是符號連結,或其父 `.claude` 目錄是**:Claude Code 報告錯誤並檢查其中的任何內容。改為命名真實目錄。630* **您命名的 `skills`、`agents` 或 `commands` 目錄本身是符號連結,或其父 `.claude` 目錄是**:Claude Code 報告錯誤,且不檢查其中的任何內容。改為命名真實目錄。

611 631 

612驗證執行不讀取幾個檔案:632驗證執行不讀取幾個檔案:

613 633 

614* **plugin 根處的 `SKILL.md`**:當您針對 plugin 目錄執行 `claude plugin validate` 時,Claude Code 不檢查 plugin 根處的 `SKILL.md`634* **plugin 根處的 `SKILL.md`**:當您針對 plugin 目錄執行 `claude plugin validate` 時,Claude Code 不檢查 plugin 根處的 `SKILL.md`

615* **plugin 根處的 `CLAUDE.md`**:在 plugin 執行中,Claude Code 也警告 plugin 根處的 `CLAUDE.md`635* **plugin 根處的 `CLAUDE.md`**:在 plugin 執行中,Claude Code 也警告 plugin 根處的 `CLAUDE.md`

616* **市場執行中的 Plugin 檔案**:從市場目錄,Claude Code 不開啟 plugins 的 skill、agent、command 或 hook 檔案,或它們捆綁的 MCP 伺服器檔案。若要在這些檔案中找到錯誤,驗證每個 plugin 目錄636* **市集執行中的 Plugin 檔案**:從市集目錄,Claude Code 不開啟 plugins 的 skill、agent、command 或 hook 檔案,或它們捆綁的 MCP 伺服器檔案。若要在這些檔案中找到錯誤,驗證每個 plugin 目錄

617 637 

618<h4 id="output-and-exit-codes">638<h4 id="output-and-exit-codes">

619 輸出和結束代碼639 輸出和結束代碼


802 822 

803`<plugin>` 是 plugin `name` 或 `name@marketplace`。823`<plugin>` 是 plugin `name` 或 `name@marketplace`。

804 824 

805下表列出每個工作階段形式。shell 子命令 `init`、`update`、`details`、`prune`、`eval` 和 `eval init` 沒有工作階段形式。825下表列出每個工作階段形式。shell 子命令 `init`、`update`、`details`、`prune`、`eval`、`eval init` 和 `test` 沒有工作階段形式。

806 826 

807| 命令 | 別名 | 它的作用 |827| 命令 | 別名 | 它的作用 |

808| :- | :- | :- |828| :- | :- | :- |

Details

52 </Step>52 </Step>

53 53 

54 <Step title="安裝外掛程式">54 <Step title="安裝外掛程式">

55 若要安裝步驟 1 表格中為您的語言列出的外掛程式,請在 Claude Code 工作階段中執行 `/plugin install`,將 `typescript-lsp` 替換為該外掛程式的名稱:55 在 VS Code 擴充功能或桌面應用程式中,請改為按照[安裝外掛程式](/docs/zh-TW/plugins/install#install-a-plugin)操作,而非執行此步驟。在終端機中,執行 `claude` 啟動 Claude Code,然後在其提示字元中輸入以下內容,將 `typescript-lsp` 替換為步驟 1 表格中為您的語言列出的外掛程式:

56 56 

57 ```57 ```

58 /plugin install typescript-lsp@claude-plugins-official58 /plugin install typescript-lsp@claude-plugins-official

Details

435 435 

436<PluginExplorer>436<PluginExplorer>

437 <Piece id="manifest">437 <Piece id="manifest">

438 [manifest](/docs/zh-TW/plugins/manifest-reference) 是外掛程式 `.claude-plugin/` 目錄中的 `plugin.json` 檔案。它包含外掛程式的中繼資料和 Claude Code 提示使用者輸入的 `userConfig` 值。Claude Code 可以在沒有外掛程式清單的情況下載入外掛程式,但 [Anthropic 的目錄](/docs/zh-TW/plugins/publish#submit-to-anthropics-directory) 需要它。在檔案中,只有 `name` 是必需的。在這個檔案中,`description` 是使用者在 `/plugin` 中看到的外掛程式文字,`version` 會讓使用者保持在該版本,直到您變更它:438 [manifest](/docs/zh-TW/plugins/manifest-reference) 是外掛程式 `.claude-plugin/` 目錄中的 `plugin.json` 檔案。它包含外掛程式的中繼資料和 Claude Code 提示使用者輸入的 `userConfig` 值。即使沒有此檔案,Claude Code 也會載入外掛程式。在檔案中,只有 `name` 是必需的。在這個檔案中,`description` 是使用者在 `/plugin` 中看到的外掛程式文字,`version` 會讓使用者保持在該版本,直到您變更它:

439 439 

440 ```json theme={null}440 ```json theme={null}

441 {441 {

Details

130* `source`:Claude Code 從何處取得 plugin。對於 marketplace 目錄內的 plugin,請寫入相對路徑字串,如[逐步解說](#create-a-marketplace)中所示,或對於目錄外的 plugin,請寫入來源物件。請參閱[選擇 plugin 來源](#choose-a-plugin-source)。130* `source`:Claude Code 從何處取得 plugin。對於 marketplace 目錄內的 plugin,請寫入相對路徑字串,如[逐步解說](#create-a-marketplace)中所示,或對於目錄外的 plugin,請寫入來源物件。請參閱[選擇 plugin 來源](#choose-a-plugin-source)。

131* `description`:人們在 `/plugin` 中瀏覽您的 marketplace 時在 plugin 旁邊看到的行。131* `description`:人們在 `/plugin` 中瀏覽您的 marketplace 時在 plugin 旁邊看到的行。

132 132 

133有關完整欄位清單,請參閱 [Plugin 項目](/docs/zh-TW/plugins/marketplace-reference#plugin-entries)。133有關完整欄位清單,請參閱 [Plugin 項目](/docs/zh-TW/plugins/marketplace-reference#plugin-entries),其中也說明了項目可以設定的 [`plugin.json`](/docs/zh-TW/plugins/manifest-reference) 欄位及其適用時機。

134 

135項目也可以設定任何 [`plugin.json`](/docs/zh-TW/plugins/manifest-reference) 欄位。有關項目的 `plugin.json` 欄位何時適用於具有自己 `plugin.json` 的 plugin,請參閱[項目和 plugin.json](/docs/zh-TW/plugins/marketplace-reference#entry-and-plugin-json)。

136 134 

137<h2 id="rules-for-plugin-entries">135<h2 id="rules-for-plugin-entries">

138 Plugin 項目規則136 Plugin 項目規則

Details

385 385 

386在 Claude Code 工作階段中,執行 `/plugin` 並前往 **Marketplaces** 標籤。選擇市集,然後選擇 **Enable auto-update** 或 **Disable auto-update**。386在 Claude Code 工作階段中,執行 `/plugin` 並前往 **Marketplaces** 標籤。選擇市集,然後選擇 **Enable auto-update** 或 **Disable auto-update**。

387 387 

388<h3 id="update-one-plugin-now">388<h3 id="update-plugins-now">

389 立即更新一個外掛程式389 立即更新外掛程式

390</h3>390</h3>

391 391 

392在工作階段中,在 `/plugin` 的 **Installed** 標籤上開啟外掛程式並選擇 **Update now**,或在 shell 中執行 `claude plugin update <plugin>@<marketplace>`。392若要更新單一外掛程式,請在工作階段中,在 `/plugin` 的 **Installed** 標籤上開啟該外掛程式並選擇 **Update now**,或在 shell 中執行 `claude plugin update <plugin>@<marketplace>`。

393 

394沒有可一次更新所有外掛程式的命令。若要一次更新您從某個市集安裝的外掛程式,請前往 `/plugin` 中的 **Marketplaces** 標籤,選擇該市集,然後選擇 **Update marketplace**。這會重新整理該市集的清單、更新您從中安裝的外掛程式,並回報任何留待您自行更新的外掛程式。具有 [`command` 來源](/docs/zh-TW/plugins/marketplace-reference#command-plugin-source) 的外掛程式,或其市集項目設定了 `headersHelper` 命令的外掛程式,不會以此方式更新,因此您需要從 **Installed** 標籤上的外掛程式檢視中更新,或使用 `claude plugin update <plugin>@<marketplace>` 更新。

395 

396如果您在 shell 中執行 `claude plugin marketplace update` 而不指定名稱,它會重新整理每個市集的清單,但會讓您已安裝的外掛程式維持在目前版本。

393 397 

394<h3 id="auto-update-from-a-private-marketplace">398<h3 id="auto-update-from-a-private-marketplace">

395 從私人市集自動更新399 從私人市集自動更新

396</h3>400</h3>

397 401 

398對於私人市集,請參閱 [背景自動更新對認證的處理](/docs/zh-TW/plugins/host-marketplace#what-background-auto-update-does-with-credentials) 以了解背景自動更新如何透過 SSH 和 HTTPS 驗證,以及 [外掛程式疑難排解](/docs/zh-TW/plugins/troubleshooting#add-a-marketplace) 以了解失敗時看到的訊息。402對於私人市集,請參閱 [背景自動更新對憑證的處理](/docs/zh-TW/plugins/host-marketplace#what-background-auto-update-does-with-credentials) 以了解背景自動更新如何透過 SSH 和 HTTPS 驗證,以及 [外掛程式疑難排解](/docs/zh-TW/plugins/troubleshooting#add-a-marketplace) 以了解失敗時看到的訊息。

399 403 

400<h2 id="manage-marketplaces">404<h2 id="manage-marketplaces">

401 管理市集405 管理市集

plugins/loading.md +20 −14

Details

244 依賴項安裝何時執行244 依賴項安裝何時執行

245</h4>245</h4>

246 246 

247Claude Code 在每次建立複製版本目錄時在其中執行安裝:247Claude Code 每次建立複製的版本目錄時,都會將相依套件安裝到其中:

248 248 

249* 當您安裝 plugin 時249* 當您安裝 plugin 時

250* 當 Claude Code 將 plugin 更新到新版本時250* 當 Claude Code 將 plugin 更新到新版本時


252 252 

253對於從本地目錄市場 [就地載入](#in-place-and-copied-plugins) 的相對路徑 plugin,Claude Code 不會將依賴項安裝到來源目錄中。自己在那裡安裝它們,或從 hook 安裝到 [`${CLAUDE_PLUGIN_DATA}`](/docs/zh-TW/plugins/components#path-variables-and-persistent-data)。253對於從本地目錄市場 [就地載入](#in-place-and-copied-plugins) 的相對路徑 plugin,Claude Code 不會將依賴項安裝到來源目錄中。自己在那裡安裝它們,或從 hook 安裝到 [`${CLAUDE_PLUGIN_DATA}`](/docs/zh-TW/plugins/components#path-variables-and-persistent-data)。

254 254 

255安裝僅在 plugin 的根目錄同時包含 `package.json` 和支援的鎖定檔案時執行。鎖定檔案決定 Claude Code 執行的命令:255安裝僅在外掛的根目錄同時包含 `package.json` 和支援的鎖定檔案時執行。

256 256 

257| 鎖定檔案 | 命令 |257鎖定檔案決定 Claude Code 執行哪個套件管理器:

258 

259| 鎖定檔案 | 套件管理器 |

258| :- | :- |260| :- | :- |

259| `bun.lock` 或 `bun.lockb` | `bun install --frozen-lockfile --ignore-scripts` |261| `bun.lock` | Bun |

260| `npm-shrinkwrap.json` 或 `package-lock.json` | `npm ci --ignore-scripts` |262| `npm-shrinkwrap.json` 或 `package-lock.json` | npm |

261 263 

262如果 plugin 包含多個這些鎖定檔案中的一個,Claude Code 使用第一個匹配項,按順序檢查:`bun.lock`、`bun.lockb`、`npm-shrinkwrap.json`、`package-lock.json`。264如果外掛包含多個這些鎖定檔案,Claude Code 會使用第一個符合項,依序檢查:`bun.lock`、`npm-shrinkwrap.json`、`package-lock.json`。

263 265 

264Claude Code 跳過 Yarn 和 pnpm 鎖定檔案以及 Bun 鎖定檔案旁邊的 `bunfig.toml` 的安裝:266Claude Code 在以下鎖定檔案情況下會跳過安裝:

265 267 

266* 如果您的 plugin 只有 `yarn.lock` 或 `pnpm-lock.yaml`,請將其替換為 npm 鎖定檔案268* **`bun.lockb`**:Bun 的二進位鎖定檔案無法檢查。請改為提供文字格式的 `bun.lock` 或 npm 鎖定檔案

267* 如果 `bunfig.toml` 在 Bun 鎖定檔案的同一目錄中,移除 `bunfig.toml`,或將 Bun 鎖定檔案替換為 npm 鎖定檔案269* **`yarn.lock` 或 `pnpm-lock.yaml`**:請將其替換為 npm 鎖定檔案

270* **Claude Code 無法讀取格式的鎖定檔案**:npm 鎖定檔案需要 `lockfileVersion` 為 `2` 或 `3`(由 npm 7 或更新版本寫入),而 `bun.lock` 需要 `lockfileVersion` 不高於 `2`

268 271 

269包含 npm 鎖定檔案以到達最多使用者。Claude Code 從使用者的 PATH 執行匹配的鎖定檔案的套件管理器,如果缺少該套件管理器,不會嘗試其他鎖定檔案。272包含 npm 鎖定檔案以到達最多使用者。Claude Code 從使用者的 PATH 執行匹配的鎖定檔案的套件管理器,如果缺少該套件管理器,不會嘗試其他鎖定檔案。

270 273 


276 279 

277Claude Code 限制此依賴項安裝,以便 plugin 或其套件中的任何程式碼在安裝期間不執行,並限制其執行時間:280Claude Code 限制此依賴項安裝,以便 plugin 或其套件中的任何程式碼在安裝期間不執行,並限制其執行時間:

278 281 

279* **凍結解決**:Bun 和 npm 安裝鎖定檔案精確固定的內容,當 `package.json` 和鎖定檔案不同意時失敗而不是重新解決版本282* **僅限登錄檔套件**:每個相依套件都必須是在鎖定檔案中固定到確切版本的登錄檔套件。具有 git、GitHub、資料夾、工作區或連結相依套件的外掛不會進行安裝。

283* **`https` 下載**:鎖定檔案中的下載連結必須使用 `https`,除非它指向執行安裝之使用者自己的預設 npm 登錄檔。

284* **獨立的安裝資料夾**:套件管理器在其自身的資料夾中執行,該資料夾僅包含已檢查之相依套件清單的副本,因此 npm 和 Bun 不會讀取外掛的 `.npmrc`、`.env` 或 `bunfig.toml`。安裝成功時,Claude Code 會將產生的 `node_modules` 移入外掛。

285* **凍結解析**:安裝完全使用鎖定檔案固定的版本,當 `package.json` 和鎖定檔案列出的相依套件不一致時,Claude Code 會跳過安裝

280* **無生命週期指令碼**:`--ignore-scripts` 防止 `preinstall`、`install` 和 `postinstall` 指令碼執行,因此在這些指令碼中建立原生模組的依賴項在此安裝期間下載但不編譯286* **無生命週期指令碼**:`--ignore-scripts` 防止 `preinstall`、`install` 和 `postinstall` 指令碼執行,因此在這些指令碼中建立原生模組的依賴項在此安裝期間下載但不編譯

287* **無覆寫或修補**:`package.json` 設定了 npm `overrides` 的外掛不會從 npm 鎖定檔案進行安裝,而設定了 Bun `patchedDependencies` 的外掛不會從 `bun.lock` 進行安裝

281* **60 秒超時**:Claude Code 停止執行超過 60 秒的安裝並將其視為失敗288* **60 秒超時**:Claude Code 停止執行超過 60 秒的安裝並將其視為失敗

282 289 

283Claude Code 在此依賴項安裝之前提取 npm 來源 plugin,套件自己的安裝指令碼在提取期間不執行。請參閱 [npm plugin 來源](/docs/zh-TW/plugins/marketplace-reference#npm-plugin-source)。290Claude Code 在此依賴項安裝之前提取 npm 來源 plugin,套件自己的安裝指令碼在提取期間不執行。請參閱 [npm plugin 來源](/docs/zh-TW/plugins/marketplace-reference#npm-plugin-source)。


290 依賴項安裝失敗或被跳過時297 依賴項安裝失敗或被跳過時

291</h4>298</h4>

292 299 

293失敗或跳過的安裝永遠不會阻止 plugin,每種情況都留下不同的跡象:300失敗或被跳過的安裝永遠不會阻止外掛,外掛會在沒有相依套件的情況下載入。每種情況都會留下不同的跡象:

294 301 

295* 失敗的安裝或因 Yarn 或 pnpm 鎖定檔案或 `bunfig.toml` 而跳過的安裝在 `claude --debug` 輸出中顯示為警告302* 失敗的安裝,或因其鎖定檔案或其中一項 [安裝限制](#limits-on-the-dependency-install) 而被跳過的安裝,會在 `claude --debug` 輸出中顯示為說明原因的 `Plugin dependency install warning` 行

296* 具有 `package.json` 和無鎖定檔案的 plugin 被跳過,沒有日誌項目303* 具有 `package.json` 和無鎖定檔案的 plugin 被跳過,沒有日誌項目

297* 超時的安裝可以在快取副本中留下部分 `node_modules` 樹

298 304 

299當自動安裝無法提供依賴項時,從 hook 安裝到 [持久資料目錄](/docs/zh-TW/plugins/components#path-variables-and-persistent-data)。這包括需要其生命週期指令碼建立的套件、Python 依賴項和使用 Yarn 或 pnpm 鎖定的 plugins。305當自動安裝無法提供相依套件時,請從 hook 將其安裝到 [持久資料目錄](/docs/zh-TW/plugins/components#path-variables-and-persistent-data)。這包括需要其生命週期指令碼來建置的套件、Python 相依套件、使用 Yarn 或 pnpm 鎖定的外掛,以及非登錄檔套件的相依套件,例如 git 相依套件。

300 306 

301<h2 id="versions-and-updates">307<h2 id="versions-and-updates">

302 版本和更新308 版本和更新

Details

142| `license` | String | SPDX 識別碼,例如 `MIT` 或 `Apache-2.0` |142| `license` | String | SPDX 識別碼,例如 `MIT` 或 `Apache-2.0` |

143| `keywords` | Array of strings | 探索標籤 |143| `keywords` | Array of strings | 探索標籤 |

144| [`metadata`](#metadata) | Object | 您自己資料的自由形式物件。Claude Code 不讀取它 |144| [`metadata`](#metadata) | Object | 您自己資料的自由形式物件。Claude Code 不讀取它 |

145| [`icon`](#directory-listing-fields) | String | plugin 在 Anthropic 目錄中列表的圖示。Claude Code 不讀取它 |

146| [`documentationUrl`](#directory-listing-fields) | String | plugin 在 Anthropic 目錄中列表的文件連結。Claude Code 不讀取它 |

147| [`supportUrl`](#directory-listing-fields) | String | plugin 在 Anthropic 目錄中列表的支援連結。Claude Code 不讀取它 |

148| [`privacyPolicyUrl`](#directory-listing-fields) | String | plugin 在 Anthropic 目錄中列表的隱私權政策連結。Claude Code 不讀取它 |

149| [`termsOfServiceUrl`](#directory-listing-fields) | String | plugin 在 Anthropic 目錄中列表的服務條款連結。Claude Code 不讀取它 |

145| [`defaultEnabled`](#defaultenabled) | Boolean | 當使用者未設定時,plugin 是否在啟用時啟動。預設為 `true` |150| [`defaultEnabled`](#defaultenabled) | Boolean | 當使用者未設定時,plugin 是否在啟用時啟動。預設為 `true` |

146| [`dependencies`](#dependencies) | Array of strings or objects | 必須啟用此 plugin 才能運作的 plugin |151| [`dependencies`](#dependencies) | Array of strings or objects | 必須啟用此 plugin 才能運作的 plugin |

147| [`settings`](#settings) | Object | Claude Code 在 plugin 啟用時應用的設定。只有 `agent` 和 `subagentStatusLine` 生效 |152| [`settings`](#settings) | Object | Claude Code 在 plugin 啟用時應用的設定。只有 `agent` 和 `subagentStatusLine` 生效 |


202 207 

203您自己資料的自由形式物件,例如目錄或權利欄位。Claude Code 不讀取它。需要 Claude Code v2.1.222 或更新版本。208您自己資料的自由形式物件,例如目錄或權利欄位。Claude Code 不讀取它。需要 Claude Code v2.1.222 或更新版本。

204 209 

210<h3 id="directory-listing-fields">

211 目錄列表欄位

212</h3>

213 

214當您[提交 plugin](/docs/zh-TW/plugins/publish#submit-to-anthropics-directory) 時,Anthropic 的目錄會從 `plugin.json` 讀取 `icon`、`documentationUrl`、`supportUrl`、`privacyPolicyUrl` 和 `termsOfServiceUrl` 欄位,用於您 plugin 的列表。Claude Code 在載入時忽略它們。僅在 `plugin.json` 中設定它們。在 [marketplace 項目](#marketplace-entries-and-the-manifest)中,`claude plugin validate` 會將每個欄位報告為未知欄位。

215 

216將 `icon` 設定為 plugin 內圖片檔案的路徑,例如 `./logo.png`,並將四個 URL 欄位各自設定為 `https://` URL。

217 

218在 Claude Code v2.1.281 或更新版本上,`claude plugin validate` 接受這些欄位而不發出警告。較早版本會為每個欄位印出 `Unknown field` 警告,因此 `--strict` 執行在這些版本上會失敗。

219 

205<h3 id="defaultenabled">220<h3 id="defaultenabled">

206 `defaultEnabled`221 `defaultEnabled`

207</h3>222</h3>


276 291 

277`hooks` 採用 `.json` 檔案路徑、與 [`settings.json` 中的 `hooks`](/docs/zh-TW/hooks#configuration) 相同形式的內聯 hooks 物件,或混合兩者的陣列。有關 hook 事件和處理程式欄位,請參閱 [hooks 參考](/docs/zh-TW/hooks#hook-events)。292`hooks` 採用 `.json` 檔案路徑、與 [`settings.json` 中的 `hooks`](/docs/zh-TW/hooks#configuration) 相同形式的內聯 hooks 物件,或混合兩者的陣列。有關 hook 事件和處理程式欄位,請參閱 [hooks 參考](/docs/zh-TW/hooks#hook-events)。

278 293 

279Claude Code 在該檔案存在時將您宣告的內容與 `hooks/hooks.json` 合併。294hooks 檔案會將事件對應包裝在頂層 `"hooks"` 鍵中,也就是 [`hooks/hooks.json`](/docs/zh-TW/plugins/components#hooks) 所使用的形式。僅包含事件對應而沒有該包裝的檔案將無法載入。內聯物件本身就是事件對應,不需要包裝。

295 

296Claude Code 在該檔案存在時將您宣告的內容與 `hooks/hooks.json` 合併。此陣列載入一個 hooks 檔案,並宣告一個內聯 `PostToolUse` hook:

280 297 

281```json theme={null}298```json theme={null}

282{299{


296}313}

297```314```

298 315 

316該陣列所指名的檔案會以 `"hooks"` 包裝其自身的事件對應:

317 

318```json config/extra-hooks.json theme={null}

319{

320 "hooks": {

321 "PreToolUse": [

322 {

323 "matcher": "Bash",

324 "hooks": [

325 { "type": "command", "command": "\"${CLAUDE_PLUGIN_ROOT}\"/scripts/check-command.sh" }

326 ]

327 }

328 ]

329 }

330}

331```

332 

299<h3 id="mcpservers">333<h3 id="mcpservers">

300 `mcpServers`334 `mcpServers`

301</h3>335</h3>


400* **`skills`**:也接受 `"."`。`"."` 和 `"./"` 都表示 plugin 根目錄。在 v2.1.221 之前,`"."` 無法通過 manifest 驗證,因此當 plugin 必須在較早版本上載入時使用 `"./"`434* **`skills`**:也接受 `"."`。`"."` 和 `"./"` 都表示 plugin 根目錄。在 v2.1.221 之前,`"."` 無法通過 manifest 驗證,因此當 plugin 必須在較早版本上載入時使用 `"./"`

401* **`mcpServers`**:也接受 `https://` 套件 URL435* **`mcpServers`**:也接受 `https://` 套件 URL

402 436 

437`experimental.evals` 不是元件路徑,因此本節的規則不涵蓋它,而是由 `claude plugin eval` 在執行時檢查該值。它指定外掛根目錄下的一個目錄,例如 `"quality/evals"`,可帶或不帶 `./` 前綴。若為陣列,則僅使用第一個項目。關於該值接受的內容以及無法使用的值會發生什麼情況,請參閱[使用不同的 eval 目錄](/docs/zh-TW/plugin-evals#use-a-different-eval-directory)。

438 

403<h3 id="containment-and-existence">439<h3 id="containment-and-existence">

404 包含和存在440 包含和存在

405</h3>441</h3>


693 Marketplace 項目和 manifest729 Marketplace 項目和 manifest

694</h2>730</h2>

695 731 

696[marketplace 項目](/docs/zh-TW/plugins/marketplace-reference)接受此頁面上的每個欄位以及[其自己的欄位](/docs/zh-TW/plugins/marketplace-reference#plugin-entries),包括 `strict`。732[市集項目](/docs/zh-TW/plugins/marketplace-reference)接受[其自己的欄位](/docs/zh-TW/plugins/marketplace-reference#plugin-entries)(包括 `strict`),以及此頁面上除了[目錄列表欄位](#directory-listing-fields)以外的每個欄位。

697 733 

698`strict` 欄位決定項目是否可以將元件新增到具有自己 `plugin.json` 的 plugin。它預設為 `true`。734`strict` 欄位決定項目是否可以將元件新增到具有自己 `plugin.json` 的 plugin。它預設為 `true`。

699 735 

Details

81 81 

82`marketplace.json` 的頂層 `plugins` 陣列中的每個物件命名一個外掛程式並說明從何處擷取它。`name` 和 `source` 是必需的。82`marketplace.json` 的頂層 `plugins` 陣列中的每個物件命名一個外掛程式並說明從何處擷取它。`name` 和 `source` 是必需的。

83 83 

84項目也接受每個 [`plugin.json` 欄位](/docs/zh-TW/plugins/manifest-reference),例如 `description`、`version`、`author`、`commands` 和 `hooks`。有關這些欄位何時適用,請參閱 [How an entry combines with plugin.json](#entry-and-plugin-json)。84除了[目錄列表欄位](/docs/zh-TW/plugins/manifest-reference#directory-listing-fields)之外,項目也接受每個 [`plugin.json` 欄位](/docs/zh-TW/plugins/manifest-reference),例如 `description`、`version`、`author`、`commands` 和 `hooks`。有關這些欄位何時適用,請參閱 [How an entry combines with plugin.json](#entry-and-plugin-json)。

85 85 

86該表列出項目自己的欄位和資訊清單欄位,其含義在項目中改變。86該表列出項目自己的欄位和資訊清單欄位,其含義在項目中改變。

87 87 


96| `strict` | 布林值 | 預設 `true`。`plugin.json` 是否是外掛程式元件的決定性來源。請參閱 [Strict mode](#strict-mode) |96| `strict` | 布林值 | 預設 `true`。`plugin.json` 是否是外掛程式元件的決定性來源。請參閱 [Strict mode](#strict-mode) |

97| `relevance` | 物件 | 告訴 Claude Code 何時建議外掛程式的訊號。請參閱 [Recommend plugins for your org](/docs/zh-TW/plugins/relevance) |97| `relevance` | 物件 | 告訴 Claude Code 何時建議外掛程式的訊號。請參閱 [Recommend plugins for your org](/docs/zh-TW/plugins/relevance) |

98| `dependencies` | 陣列 | 必須為此外掛程式啟用的外掛程式。每個項目是 `"name"`、`"name@marketplace"` 或物件。請參閱 [Plugin dependencies](/docs/zh-TW/plugins/dependencies) |98| `dependencies` | 陣列 | 必須為此外掛程式啟用的外掛程式。每個項目是 `"name"`、`"name@marketplace"` 或物件。請參閱 [Plugin dependencies](/docs/zh-TW/plugins/dependencies) |

99| `defaultEnabled` | 布林值 | 預設 `true`。當使用者未在 [`enabledPlugins`](/docs/zh-TW/settings-reference#enabledplugins) 中設定時,外掛程式是否在啟用時啟動。項目值優先於 `plugin.json` |99| `defaultEnabled` | 布林值 | 預設 `true`。當使用者未在 [`enabledPlugins`](/docs/zh-TW/settings-reference#enabledplugins) 中設定時,外掛程式一開始是否為啟用狀態。項目值優先於 `plugin.json` |

100| `displayName` | 字串 | 在 UI 中顯示的人類可讀名稱。當項目和外掛程式的 `plugin.json` 都未設定時,使用者看到外掛程式的 `name` |100| `displayName` | 字串 | 在 UI 中顯示的人類可讀名稱。當項目和外掛程式的 `plugin.json` 都未設定時,使用者看到外掛程式的 `name` |

101| `metadata` | 物件 | 用於您自己欄位的自由格式物件。Claude Code 不讀取它。需要 Claude Code v2.1.222 或更新版本 |101| `metadata` | 物件 | 用於您自己欄位的自由格式物件。Claude Code 不讀取它。需要 Claude Code v2.1.222 或更新版本 |

102| `headers` | 物件 | Claude Code 在下載此項目的 [archive](#archive-plugin-source) 時發送的 HTTP 標頭。此處設定的標頭替換來自 marketplace 來源的 [`headers`](#fields-by-type) 的同名標頭。需要 Claude Code v2.1.238 或更新版本 |102| `headers` | 物件 | Claude Code 在下載此項目的 [archive](#archive-plugin-source) 時發送的 HTTP 標頭。此處設定的標頭替換來自 marketplace 來源的 [`headers`](#fields-by-type) 的同名標頭。需要 Claude Code v2.1.238 或更新版本 |

103| `headersHelper` | 字串 | 列印此項目的存檔下載標頭的命令,作為一個 JSON 物件,用於過期的認證。項目也必須設定 [`"strict": false`](#strict-mode)。需要 Claude Code v2.1.238 或更新版本。請參閱 [Authenticate archive downloads](/docs/zh-TW/plugins/host-marketplace#authenticate-archive-downloads) |103| `headersHelper` | 字串 | 列印此項目的存檔下載標頭的命令,作為一個 JSON 物件,用於會過期的憑證。項目也必須設定 [`"strict": false`](#strict-mode)。需要 Claude Code v2.1.238 或更新版本。請參閱 [Authenticate archive downloads](/docs/zh-TW/plugins/host-marketplace#authenticate-archive-downloads) |

104 104 

105<h3 id="entry-and-plugin-json">105<h3 id="entry-and-plugin-json">

106 項目如何與 plugin.json 結合106 項目如何與 plugin.json 結合


112* **`plugin.json` 存在**:`plugin.json` 是資訊清單。[Strict mode](#strict-mode) 決定項目的六個元件欄位 `commands`、`agents`、`skills`、`hooks`、`outputStyles` 和 `themes` 是與其結合還是作為衝突被拒絕。項目 `mcpServers`、`lspServers`、`userConfig` 和 `channels` 不適用。在 `plugin.json` 中宣告它們。112* **`plugin.json` 存在**:`plugin.json` 是資訊清單。[Strict mode](#strict-mode) 決定項目的六個元件欄位 `commands`、`agents`、`skills`、`hooks`、`outputStyles` 和 `themes` 是與其結合還是作為衝突被拒絕。項目 `mcpServers`、`lspServers`、`userConfig` 和 `channels` 不適用。在 `plugin.json` 中宣告它們。

113 113 

114<h4 id="hooks-in-an-entry">114<h4 id="hooks-in-an-entry">

115 項目中的 Hooks115 項目中的 hook

116</h4>116</h4>

117 117 

118將項目 `hooks` 寫為內聯物件,將 hook 事件名稱對應到匹配器陣列。如果您寫入檔案路徑或陣列,`claude plugin validate` 會通過它。這些 hooks 永遠不會執行,Claude Code 為外掛程式報告 `not yet supported in a marketplace entry` 錯誤。將基於檔案的 hooks 放在外掛程式自己的 [`hooks/hooks.json`](/docs/zh-TW/plugins/components) 或 `plugin.json` 中。118將項目 `hooks` 寫為內聯物件,將 hook 事件名稱對應到 matcher 陣列。如果您寫入檔案路徑或陣列,`claude plugin validate` 會通過它。這些 hook 永遠不會執行,Claude Code 為外掛程式報告 `not yet supported in a marketplace entry` 錯誤。將基於檔案的 hook 放在外掛程式自己的 [`hooks/hooks.json`](/docs/zh-TW/plugins/components) 或 `plugin.json` 中。

119 119 

120<h4 id="display-fields">120<h4 id="display-fields">

121 顯示欄位121 顯示欄位


132 Strict mode132 Strict mode

133</h3>133</h3>

134 134 

135`strict` 決定當已擷取的外掛程式有自己的 `plugin.json` 且項目也宣告任何 [component fields](#entry-and-plugin-json) 時會發生什麼:`commands`、`agents`、`skills`、`hooks`、`outputStyles` 或 `themes`。使用 `strict: true`(預設值),Claude Code 將項目的元件欄位附加到 `plugin.json`,除了 `hooks`,其匹配器替換資訊清單的每個事件。使用 `strict: false`,宣告任何元件欄位的項目是衝突,外掛程式無法載入。該表顯示 `strict`、`plugin.json` 和項目的元件欄位的每個組合。135`strict` 決定當已擷取的外掛程式有自己的 `plugin.json` 且項目也宣告任何 [component fields](#entry-and-plugin-json) 時會發生什麼:`commands`、`agents`、`skills`、`hooks`、`outputStyles` 或 `themes`。使用 `strict: true`(預設值),Claude Code 將項目的元件欄位附加到 `plugin.json`,除了 `hooks`,其 matcher 會按事件替換資訊清單的 matcher。使用 `strict: false`,宣告任何元件欄位的項目是衝突,外掛程式無法載入。該表顯示 `strict`、`plugin.json` 和項目的元件欄位的每個組合。

136 136 

137| `strict` | `plugin.json` | 項目元件欄位 | 結果 |137| `strict` | `plugin.json` | 項目元件欄位 | 結果 |

138| :- | :- | :- | :- |138| :- | :- | :- | :- |

139| 任何 | 不存在 | 任何 | 項目是資訊清單 |139| 任何 | 不存在 | 任何 | 項目是資訊清單 |

140| `true`(預設值) | 存在 | 任何 | `plugin.json` 是權威。Claude Code 將項目的元件欄位附加到它,除了 `hooks`,其匹配器 [replace the manifest's per event](/docs/zh-TW/plugins/manifest-reference#how-entry-fields-combine-with-plugin-json) |140| `true`(預設值) | 存在 | 任何 | `plugin.json` 是權威。Claude Code 將項目的元件欄位附加到它,除了 `hooks`,其 matcher [replace the manifest's per event](/docs/zh-TW/plugins/manifest-reference#how-entry-fields-combine-with-plugin-json) |

141| `false` | 存在 | 無 | `plugin.json` 是資訊清單,與 `true` 相同 |141| `false` | 存在 | 無 | `plugin.json` 是資訊清單,與 `true` 相同 |

142| `false` | 存在 | 一個或多個 | 衝突。外掛程式無法載入,錯誤為 `Plugin <name> has conflicting manifests: both plugin.json and marketplace entry specify components` |142| `false` | 存在 | 一個或多個 | 衝突。外掛程式無法載入,錯誤為 `Plugin <name> has conflicting manifests: both plugin.json and marketplace entry specify components` |

143 143 


154| 相對路徑 | 字串本身 | marketplace 內的目錄,從 marketplace 根目錄解析。必須以 `./` 開頭,除非您在 [`metadata.pluginRoot` 下寫入裸名](#relative-path-plugin-source)。`"."` 本身表示根目錄 |154| 相對路徑 | 字串本身 | marketplace 內的目錄,從 marketplace 根目錄解析。必須以 `./` 開頭,除非您在 [`metadata.pluginRoot` 下寫入裸名](#relative-path-plugin-source)。`"."` 本身表示根目錄 |

155| `github` | `repo`、`ref`、`sha` | GitHub 儲存庫,格式為 `owner/repo` |155| `github` | `repo`、`ref`、`sha` | GitHub 儲存庫,格式為 `owner/repo` |

156| `url` | `url`、`ref`、`sha` | 任何 git 儲存庫的 URL |156| `url` | `url`、`ref`、`sha` | 任何 git 儲存庫的 URL |

157| `git-subdir` | `url`、`path`、`ref`、`sha` | git 儲存庫的一個子目錄,使用稀疏部分複製取得 |157| `git-subdir` | `url`、`path`、`ref`、`sha` | git 儲存庫的一個子目錄,使用稀疏檢出(sparse checkout)取得 |

158| `npm` | `package`、`version`、`registry` | npm 套件,使用您的 npm 用戶端取得並解包,不執行安裝指令碼 |158| `npm` | `package`、`version`、`registry` | npm 登錄套件或 tarball 連結,使用您的 npm 用戶端取得並解包,不執行安裝指令碼 |

159| `archive` | `url`、`sha256` | HTTPS 上的 Zip 檔案。需要 Claude Code v2.1.224 或更新版本 |159| `archive` | `url`、`sha256` | HTTPS 上的 Zip 檔案。需要 Claude Code v2.1.224 或更新版本 |

160| `command` | `command`、`timeout`、`mode` | 由 Claude Code 在使用者機器上執行的命令列印的目錄。需要 Claude Code v2.1.229 或更新版本 |160| `command` | `command`、`timeout`、`mode` | 由 Claude Code 在使用者機器上執行的命令列印的目錄。需要 Claude Code v2.1.229 或更新版本 |

161 161 


239 git-subdir plugin 來源239 git-subdir plugin 來源

240</h3>240</h3>

241 241 

242`url` 接受完整的 git URL 或 GitHub `owner/repo` 簡寫。`path` 是保存 plugin 的子目錄,Claude Code 僅下載該子目錄。242`url` 接受完整的 git URL 或 GitHub `owner/repo` 簡寫。`path` 是保存 plugin 的子目錄,Claude Code 僅檢出該子目錄。透過 `https` 或 SSH URL 時,Claude Code 會向伺服器要求部分複製(partial clone),因此從支援部分複製的主機安裝時,大型 monorepo 中的 plugin 無需下載儲存庫的其餘部分即可安裝。

243 243 

244```json theme={null}244```json theme={null}

245{245{


258 258 

259`npm` 來源採用以下欄位:259`npm` 來源採用以下欄位:

260 260 

261* `package`:套件名稱,或範圍名稱,例如 `@your-org/formatter`261* `package`:登錄套件名稱,例如 `@your-org/formatter`;附加版本的名稱,例如 `@your-org/formatter@2.0.0`;或指向套件 tarball 檔案的 `https` 連結

262* `version`:版本或範圍262* `version`:版本、semver 範圍或 dist-tag,當 `package` 是未附加版本的套件名稱時使用。省略則取得 `latest`

263* `registry`:不在預設登錄中的套件的登錄 URL263* `registry`:不在預設登錄中的套件的登錄 URL

264 264 

265Claude Code 使用您的 npm 用戶端取得套件。套件的安裝指令碼(例如 `preinstall` 或 `postinstall`)永遠不會執行,其相依性在取得期間不會安裝。如果套件在其 `package.json` 旁有支援的鎖定檔案,Claude Code 會在單獨的步驟中安裝這些 [Node.js 套件相依性](/docs/zh-TW/plugins/loading#node-js-package-dependencies),同樣禁用指令碼。265Claude Code 使用您的 npm 用戶端取得套件。套件的安裝指令碼(例如 `preinstall` 或 `postinstall`)永遠不會執行,其相依性在取得期間不會安裝。如果套件在其 `package.json` 旁有支援的鎖定檔案,Claude Code 會在單獨的步驟中安裝這些 [Node.js 套件相依性](/docs/zh-TW/plugins/loading#node-js-package-dependencies),同樣禁用指令碼。

266 266 

267Claude Code 在取得任何內容之前會先檢查 `package` 值。被拒絕的值會使安裝失敗,並顯示指出該值及原因的訊息。被拒絕的值包括:

268 

269* **git 位址、資料夾或 `file:` 路徑,或 `npm:` 別名**:對於 git 儲存庫,請使用 [`github`、`url` 或 `git-subdir` 來源](#plugin-sources);對於 marketplace 中的資料夾,請使用相對路徑;對於別名,請使用套件本身的名稱

270* **github.com、gist.github.com、gitlab.com、bitbucket.org 或 git.sr.ht 上的 tarball 連結**:即使連結是 GitHub 發行版下載也會被拒絕,除非它是 `gitlab.com/api/v4/` 下的 GitLab npm 登錄連結

271* **透過 `http` 的 tarball 連結**:會被拒絕,除非它指向進行安裝之使用者自己的預設 npm 登錄

272 

273`registry` URL 必須使用 `https`,除非它是進行安裝之使用者自己的預設 npm 登錄。若使用任何其他 `http` 登錄,安裝會在 npm 與其連線之前失敗。

274 

267```json theme={null}275```json theme={null}

268{276{

269 "name": "formatter",277 "name": "formatter",

Details

67 使用 API 金鑰進行驗證的使用者,或透過 Amazon Bedrock、Google Cloud 的 Agent Platform 或 Microsoft Foundry,只有在具有受管設定的機器上才能獲得防護。67 使用 API 金鑰進行驗證的使用者,或透過 Amazon Bedrock、Google Cloud 的 Agent Platform 或 Microsoft Foundry,只有在具有受管設定的機器上才能獲得防護。

68* **防護保護您管理的內容。** 使用者的 mod 無法更改您的受管 hooks 接收或決定的內容、系統提示、您的受管 `CLAUDE.md` 和其他受管指示、任何 mod 讀取的設定內容,或您的受管 MCP 伺服器的工具和描述。68* **防護保護您管理的內容。** 使用者的 mod 無法更改您的受管 hooks 接收或決定的內容、系統提示、您的受管 `CLAUDE.md` 和其他受管指示、任何 mod 讀取的設定內容,或您的受管 MCP 伺服器的工具和描述。

69* **允許所有其他內容。** 防護不添加其他限制。使用者的 mod 仍然可以讀取和寫入檔案、啟動程序、發出網路請求、重寫工具呼叫和提示、拒絕工具呼叫、批准否則會提示的呼叫,以及在介面中繪製,所有這些都具有該使用者的權限。69* **允許所有其他內容。** 防護不添加其他限制。使用者的 mod 仍然可以讀取和寫入檔案、啟動程序、發出網路請求、重寫工具呼叫和提示、拒絕工具呼叫、批准否則會提示的呼叫,以及在介面中繪製,所有這些都具有該使用者的權限。

70* **拒絕規則和您的受管 hooks 優先。** 防護載入的地方,使用者的 mod 無法批准 `deny` 規則拒絕的呼叫,無論哪個設定檔持有該規則。來自受管設定中 `PreToolUse` hook 的塊也是最終的。兩者都適用於 Claude 的工具呼叫。兩者都不適用於 mod 自己的 [`$.fs` 和 `$.process` 呼叫](/docs/zh-TW/plugins/mods/api#reach-files-processes-and-the-network):拒絕 `Read(.env)` 後,mod 仍然可以使用 `$.fs.read` 讀取該檔案或啟動執行該操作的程式。若要限制這些呼叫,請防止 mod 載入或在[政策 mod](#enforce-a-policy-with-a-mod-of-your-own) 中掛接呼叫。70* **拒絕規則和您的受管 hook 優先。** 防護載入的地方,使用者的 mod 無法批准 `deny` 規則拒絕的呼叫,無論哪個設定檔持有該規則。來自受管設定中 `PreToolUse` hook 的封鎖也是最終的。兩者都適用於 Claude 的工具呼叫。兩者都不適用於 mod 自己的 [`$.fs` 和 `$.process` 呼叫](/docs/zh-TW/plugins/mods/api#reach-files-processes-and-the-network):拒絕 `Read(.env)` 後,mod 仍然可以使用 `$.fs.read` 讀取該檔案或啟動執行該操作的程式。若要限制這些呼叫,請防止 mod 載入或在[政策 mod](#enforce-a-policy-with-a-mod-of-your-own) 中處理呼叫。

71* **其他權限檢查可以被覆蓋。** 批准工具呼叫的使用者 mod 可以批准 `ask` 規則會提示的呼叫,或受管設定外的 `PreToolUse` hook 阻止的呼叫。在自動模式下,mod 批准的呼叫執行時不進行分類器檢查。71* **其他權限檢查可以被覆蓋。** 批准工具呼叫的使用者 mod 可以批准 `ask` 規則會提示的呼叫,或受管設定外的 `PreToolUse` hook 阻止的呼叫。在自動模式下,mod 批准的呼叫執行時不進行分類器檢查。

72 72 

73防護的來源在 [Claude Code 儲存庫的 `mods/sec-default` 目錄](https://github.com/anthropics/claude-code/tree/main/mods/sec-default)中是公開的。73防護的來源在 [Claude Code 儲存庫的 `mods/sec-default` 目錄](https://github.com/anthropics/claude-code/tree/main/mods/sec-default)中是公開的。


161* **`allowManagedModsOnly`**:內建防護上的選項。使用者自己的 mods 不會載入,他們的設定 hooks、狀態行和 `/goal` 保持有效。[停止使用者安裝的 mods 載入](#stop-user-installed-mods-from-loading)列出它涵蓋的內容。161* **`allowManagedModsOnly`**:內建防護上的選項。使用者自己的 mods 不會載入,他們的設定 hooks、狀態行和 `/goal` 保持有效。[停止使用者安裝的 mods 載入](#stop-user-installed-mods-from-loading)列出它涵蓋的內容。

162* **`allowManagedHooksOnly`**:更廣泛的設定。只有[您組織的 mods](#install-your-organizations-mods) 和內建於 Claude Code 的 mods 載入。使用者自己安裝的 mod 不會。該設定也會阻止使用者自己設定檔中的 hooks。在設定之前,請閱讀[在 `allowManagedHooksOnly` 下執行的內容](/docs/zh-TW/settings-reference#what-runs-under-allowmanagedhooksonly)。162* **`allowManagedHooksOnly`**:更廣泛的設定。只有[您組織的 mods](#install-your-organizations-mods) 和內建於 Claude Code 的 mods 載入。使用者自己安裝的 mod 不會。該設定也會阻止使用者自己設定檔中的 hooks。在設定之前,請閱讀[在 `allowManagedHooksOnly` 下執行的內容](/docs/zh-TW/settings-reference#what-runs-under-allowmanagedhooksonly)。

163* **`disableAllHooks`**:最廣泛的設定。在受管設定中,它停止每個已安裝外掛程式中的 mods,包括您的,並關閉設定檔中的每個 hook,因此您受管設定中的 `PreToolUse` hook 不再阻止任何內容。自訂狀態行和 `/goal` 也停止工作。在設定之前,請閱讀 [`disableAllHooks`](/docs/zh-TW/settings-reference#disableallhooks)。163* **`disableAllHooks`**:最廣泛的設定。在受管設定中,它停止每個已安裝外掛程式中的 mods,包括您的,並關閉設定檔中的每個 hook,因此您受管設定中的 `PreToolUse` hook 不再阻止任何內容。自訂狀態行和 `/goal` 也停止工作。在設定之前,請閱讀 [`disableAllHooks`](/docs/zh-TW/settings-reference#disableallhooks)。

164* **`disableSideloadFlags`**:在啟動時拒絕 `--plugin-dir` 和 `--plugin-url`,因此沒有人從目錄載入 mod,並防止 Claude 在工作階段期間編寫的 mods 載入。該設定也拒絕 `--agents` 和 `--mcp-config`。在設定之前,請閱讀 [`disableSideloadFlags`](/docs/zh-TW/settings-reference#disablesideloadflags)。164* **`disableSideloadFlags`**:在啟動時拒絕 `--plugin-dir` 和 `--plugin-url`,並防止 Claude 在工作階段期間編寫的 mods 載入。該設定也拒絕 `--agents` 和 `--mcp-config`。在設定之前,請閱讀 [`disableSideloadFlags`](/docs/zh-TW/settings-reference#disablesideloadflags)。

165 165 

166內建於 Claude Code 的 Mods(例如 `AGENTS.md` 支援)不受這些設定影響。每個都有[自己的開關](/docs/zh-TW/plugins/mods/overview#mods-built-into-claude-code)。166內建於 Claude Code 的 Mods(例如 `AGENTS.md` 支援)不受這些設定影響。每個都有[自己的開關](/docs/zh-TW/plugins/mods/overview#mods-built-into-claude-code)。

167 167 

168未載入 mod 的使用者在其偵錯日誌中找到原因。[拒絕訊息](/docs/zh-TW/plugins/mods/troubleshoot#refusal-messages)列出 `allowManagedHooksOnly` 和 `disableAllHooks` 的行,[來自內建防護的訊息](/docs/zh-TW/plugins/mods/troubleshoot#messages-from-the-built-in-guard)有 `allowManagedModsOnly` 的行。168未載入 mod 的使用者在其偵錯日誌中找到原因。[拒絕訊息](/docs/zh-TW/plugins/mods/troubleshoot#refusal-messages)列出 `allowManagedHooksOnly` 和 `disableAllHooks` 的行,[來自內建防護的訊息](/docs/zh-TW/plugins/mods/troubleshoot#messages-from-the-built-in-guard)有 `allowManagedModsOnly` 的行。

169 169 

170<h3 id="allow-only-your-organization’s-mods">

171 僅允許您組織的 mods

172</h3>

173 

174若要執行您組織的 mods 並阻止使用者帶來的 mods,請部署[政策表格](#choose-how-much-to-allow)中 **僅您組織的 mods** 一列的設定,再加上 `disableSideloadFlags`。使用這份完整的 `managed-settings.json`,Claude Code 會拒絕使用者自己的 mods,因此他們的 hooks 都不會執行,而您的政策 mod 會在其他 mods 之前執行:

175 

176```json managed-settings.json theme={null}

177{

178 "extraKnownMarketplaces": {

179 "acme-tools": {

180 "source": { "source": "directory", "path": "/opt/acme/claude-plugins" }

181 }

182 },

183 "enabledPlugins": { "acme-guard@acme-tools": true },

184 "prependPlugins": ["acme-guard@acme-tools", "sec-default@builtin"],

185 "pluginConfigs": {

186 "cc-plugin-sec-default@builtin": {

187 "options": { "allowManagedModsOnly": true }

188 }

189 },

190 "disableSideloadFlags": true

191}

192```

193 

194每組鍵各負責一項工作:

195 

196* **`extraKnownMarketplaces`、`enabledPlugins` 和 `prependPlugins`**:安裝您的 mod 使其計為您的,並讓它最先執行,防護在其後執行。[安裝您組織的 mods 並設定順序](#install-your-organizations-mods)涵蓋這些鍵所指向的目錄。

197* **`pluginConfigs`**:設定防護的 `allowManagedModsOnly` 選項,使 Claude Code 拒絕使用者自己的 mods。他們的設定 hooks、狀態列和 `/goal` 保持有效。

198* **`disableSideloadFlags`**:請參閱 [`disableSideloadFlags`](/docs/zh-TW/settings-reference#disablesideloadflags) 了解它在啟動時拒絕的旗標

199 

200若要在測試機器上確認政策,請在您的 shell 中以 `claude --debug` 啟動工作階段並閱讀偵錯日誌:

201 

202* **您的 mod**:其 `hooks module` 行含有 `tier prepend`

203* **使用者安裝的 mod**:有一行顯示 `refused by cc-plugin-sec-default: mods are limited to your organization's by policy (allowManagedModsOnly)`。較早的一行會顯示該 mod 的 hooks module 為 `loaded`,因此請尋找拒絕訊息。

204* **外掛目錄**:`claude --plugin-dir ./any-mod` 會結束並顯示以 `--plugin-dir is disabled by your organization's managed settings (disableSideloadFlags)` 開頭的訊息

205 

206若也要限制使用者可以新增哪些市集,請將此檔案與您的[市集限制](/docs/zh-TW/plugins/org#restrict-what-users-can-install)結合使用。

207 

208<h3 id="apply-your-plugin-controls-to-mods">

209 將您的外掛控制套用至 mods

210</h3>

211 

212Mod 是一種外掛,因此您[為組織管理外掛](/docs/zh-TW/plugins/org)的方式也適用於包含 mod 的外掛:

213 

214* **查看您整個機群中載入了哪些外掛**:[稽核與審查](/docs/zh-TW/plugins/org#audit-and-review)

215* **決定您審查過的外掛何時可以更新**:[設定更新政策](/docs/zh-TW/plugins/org#set-update-policy)

216* **為某個群組(例如試行群組)提供不同的政策**:[為受管設定無法強制執行的部分做規劃](/docs/zh-TW/plugins/org#plan-for-what-managed-settings-can’t-enforce)

217* **檢查哪些應用程式和工作階段類型會套用外掛鍵**:[各使用介面何時套用外掛鍵](/docs/zh-TW/plugins/org#when-each-surface-applies-the-plugin-keys)

218* **設定 CI 和容器**:[預先配置容器和 CI](/docs/zh-TW/plugins/org#seed-containers-and-ci)

219* **提供使用者可以安裝的 mods**:[託管市集](/docs/zh-TW/plugins/host-marketplace)。Claude Code 從 GitHub、git、URL 或 npm 來源複製的 mod 會計為使用者的,而不是[您組織的](#install-your-organizations-mods)。

220 

170<h3 id="set-options-on-the-built-in-guard">221<h3 id="set-options-on-the-built-in-guard">

171 在內建防護上設定選項222 在內建防護上設定選項

172</h3>223</h3>

173 224 

174內建防護採用兩個選項。在受管設定中的 `pluginConfigs` 下設定它們,由 `cc-plugin-sec-default@builtin` 鍵入,如[停止使用者安裝的 mods 載入](#stop-user-installed-mods-from-loading)中的範例所示。225內建防護接受選項。在受管設定中的 `pluginConfigs` 下設定它們,由 `cc-plugin-sec-default@builtin` 鍵入,如[停止使用者安裝的 mods 載入](#stop-user-installed-mods-from-loading)中的範例所示。

175 226 

176該表格給出您的使用者在每個選項未設定和設定為 `true` 時獲得的內容:227該表格給出您的使用者在每個選項未設定和設定為 `true` 時獲得的內容:

177 228 


199 安裝您組織的 mods 並設定順序250 安裝您組織的 mods 並設定順序

200</h3>251</h3>

201 252 

202您組織的 mods 在使用者 mods 不載入的地方載入,並可以在它們之前執行,因此 Claude Code 必須能夠判斷 mod 來自您。它只在所有這些都為真時才將 mod 視為您組織的:253您組織的 mods 在使用者 mods 不載入的地方載入,並可以在它們之前執行,因此 Claude Code 必須能夠判斷 mod 來自您。它只在以下所有條件都成立時才將 mod 視為您組織的:

203 254 

204* 受管 `enabledPlugins` 將 mod 的外掛程式設定為 `true`255* 受管 `enabledPlugins` 將 mod 的外掛設定為 `true`

205* 受管設定按絕對路徑命名外掛程式的[市場](/docs/zh-TW/plugins/create-marketplace)為使用者機器上的目錄。`extraKnownMarketplaces` 項目執行此操作並為使用者註冊市場。256* 受管設定以絕對路徑將外掛的[市集](/docs/zh-TW/plugins/create-marketplace)指定為使用者機器上的目錄。`extraKnownMarketplaces` 項目可做到這一點,並同時為使用者註冊該市集。

206* 市場按相對路徑列出外掛程式,因此 Claude Code [從該目錄就地載入它](/docs/zh-TW/plugins/loading#in-place-and-copied-plugins)257* 市集以相對路徑列出外掛,因此 Claude Code [從該目錄就地載入它](/docs/zh-TW/plugins/loading#in-place-and-copied-plugins)

207 258 

208為了滿足它們,讓您的裝置管理將市場目錄複製到每台機器上的相同路徑。使目錄和其上方的每個目錄只能由管理員寫入,如受管設定檔案一樣。任何可以在那裡寫入的人都可以重寫您的 mod。您從 claude.ai 管理員主控台交付的受管設定可以攜帶金鑰,但它們無法將目錄放在機器上。259為了滿足這些條件,請讓您的裝置管理將市集目錄複製到每台機器上的相同路徑。使該目錄及其上方的每個目錄只能由管理員寫入,如同受管設定檔一樣。任何可以在那裡寫入的人都可以重寫您的 mod。您從 claude.ai 管理員主控台交付的受管設定可以攜帶這些設定鍵,但無法將目錄放到機器上。

209 260 

210該目錄持有市場的清單和外掛程式:261該目錄包含市集的清單檔和外掛:

211 262 

212```text theme={null}263```text theme={null}

213/opt/acme/claude-plugins/264/opt/acme/claude-plugins/


222 └── register.js273 └── register.js

223```274```

224 275 

225清單按相對於該目錄的路徑列出外掛程式:276清單檔以相對於該目錄的路徑列出外掛:

226 277 

227```json /opt/acme/claude-plugins/.claude-plugin/marketplace.json theme={null}278```json /opt/acme/claude-plugins/.claude-plugin/marketplace.json theme={null}

228{279{


234}285}

235```286```

236 287 

237Claude Code 複製到其快取中的外掛程式計為使用者的,即使受管 `enabledPlugins` 啟用它。這涵蓋來自 GitHub、git、URL 或 npm 來源的每個外掛程式。其 mod 在使用者 mods 中執行,`prependPlugins` 和 `appendPlugins` 跳過它,它不在 `allowManagedModsOnly` 或 `allowManagedHooksOnly` 下載入。使用者的偵錯日誌有一行以外掛程式的 id 和 `is enabled by managed settings, but` 開頭。288Claude Code 複製到其快取中的外掛會被視為使用者的,即使受管 `enabledPlugins` 啟用了它。這涵蓋來自 GitHub、git、URL 或 npm 來源的每個外掛。其 mod 在使用者 mods 之間執行,`prependPlugins` 和 `appendPlugins` 會跳過它,且它不會在 `allowManagedModsOnly` 或 `allowManagedHooksOnly` 下載入。使用者的偵錯日誌中會有一行以外掛的 id 和 `is enabled by managed settings, but` 開頭。

238 289 

239Claude Code 每次即將採取行動(例如執行工具)時都會引發事件,並依次將其傳遞給每個 mod。計為您的 mod [在使用者 mods 之前執行](/docs/zh-TW/plugins/mods/events#the-order-mods-run-in),即使您在任何地方都沒有列出它。若要設定其位置,請在兩個設定之一中列出其 id。id 是外掛程式的名稱、`@` 和市場的名稱,例如 `acme-guard@acme-tools`。290Claude Code 每次即將採取行動(例如執行工具)時都會引發事件,並依次將其傳遞給每個 mod。被視為您的 mod [會在使用者 mods 之前執行](/docs/zh-TW/plugins/mods/events#the-order-mods-run-in),即使您在任何地方都沒有列出它。若要設定其位置,請在兩個設定之一中列出其 id。id 是外掛的名稱、`@` 和市集的名稱,例如 `acme-guard@acme-tools`。

240 291 

241* **`prependPlugins`**:您的 mod 在任何使用者的 mod 之前看到每個事件,並在之後看到每個結果。它可以更改事件、拒絕它或跳過使用者的 mods。292* **`prependPlugins`**:您的 mod 在任何使用者的 mod 之前看到每個事件,並在之後看到每個結果。它可以更改事件、拒絕它或跳過使用者的 mods。

242* **`appendPlugins`**:您的 mod 在每個使用者的 mod 之後執行,因此它只看到這些 mods 傳遞的事件,以及它們傳遞的形式293* **`appendPlugins`**:您的 mod 在每個使用者的 mod 之後執行,因此它只看到這些 mods 傳遞的事件,以及它們傳遞的形式

243 294 

244此範例在 `/opt/acme/claude-plugins` 聲明 `acme-tools` 市場,從中啟用 `acme-guard`,並首先執行該 mod,內建防護在其後:295此範例在 `/opt/acme/claude-plugins` 宣告 `acme-tools` 市集,從中啟用 `acme-guard`,並首先執行該 mod,內建防護在其後:

245 296 

246```json managed-settings.json theme={null}297```json managed-settings.json theme={null}

247{298{


255}306}

256```307```

257 308 

258每個金鑰執行一項工作:309每個設定鍵負責一項工作:

259 310 

260* **`extraKnownMarketplaces`**:命名持有 `acme-tools` 市場的目錄。`path` 是包含 `.claude-plugin/marketplace.json` 的目錄的絕對路徑。311* **`extraKnownMarketplaces`**:指定包含 `acme-tools` 市集的目錄。`path` 是包含 `.claude-plugin/marketplace.json` 的目錄的絕對路徑。

261* **`enabledPlugins`**:為接收這些受管設定的每個使用者開啟 `acme-guard`312* **`enabledPlugins`**:為接收這些受管設定的每個使用者開啟 `acme-guard`

262* **`prependPlugins`**:將 `acme-guard` 放在首位,內建防護放在第二位,兩者都在使用者安裝的任何 mod 之前。Claude Code 遵循您列出的順序。313* **`prependPlugins`**:將 `acme-guard` 放在首位,內建防護放在第二位,兩者都在使用者安裝的任何 mod 之前。Claude Code 遵循您列出的順序。

263 314 


265 316 

266若要確認 mod 執行的位置,請在該機器上使用 `claude --debug` 啟動工作階段,並在[偵錯日誌](/docs/zh-TW/plugins/mods/troubleshoot#read-the-debug-log)中搜尋 mod 的 id:317若要確認 mod 執行的位置,請在該機器上使用 `claude --debug` 啟動工作階段,並在[偵錯日誌](/docs/zh-TW/plugins/mods/troubleshoot#read-the-debug-log)中搜尋 mod 的 id:

267 318 

268* **`hooks module acme-guard@acme-tools loaded`,帶有 `tier prepend`**:mod 計為您組織的並首先執行319* **`hooks module acme-guard@acme-tools loaded`,帶有 `tier prepend`**:mod 被視為您組織的並首先執行

269* **相同行帶有 `tier user`**:Claude Code 將其視為使用者的 mod。第二行 `prependPlugins names acme-guard@acme-tools, which is not an enabled managed plugin with a hooks module; skipped` 表示清單跳過了它。320* **相同的行帶有 `tier user`**:Claude Code 將其視為使用者的 mod。第二行 `prependPlugins names acme-guard@acme-tools, which is not an enabled managed plugin with a hooks module; skipped` 表示清單跳過了它。

270 321 

271這些規則決定兩個清單中的哪些 ids 生效:322這些規則決定兩個清單中的哪些 id 生效:

272 323 

273* **清單替換預設值**:當您在受管設定中設定 `prependPlugins` 時,在其中命名 `sec-default@builtin` 以保持內建防護。防護是內建的,不需要 `enabledPlugins` 項目。324* **清單取代預設值**:當您在受管設定中設定 `prependPlugins` 時,請在其中列出 `sec-default@builtin` 以保留內建防護。防護是內建的,不需要 `enabledPlugins` 項目。

274* **您自己的 ids 必須計為您的**:在受管設定中,Claude Code 跳過其外掛程式不符合組織 mod 三個條件的 id325* **您自己的 id 必須被視為您的**:在受管設定中,Claude Code 會跳過其外掛不符合組織 mod 條件的 id

275* **儲存庫無法設定它們**:Claude Code 從受管設定讀取兩個設定,從不從儲存庫的設定檔讀取。使用者可以在 `~/.claude/settings.json` 中設定它們以在沒有受管設定的機器上排序他們自己的 mods,並且只有在他們未使用 Team 或 Enterprise 計畫登入時。在其他任何地方,Claude Code 忽略使用者設定中的兩個金鑰。那裡的清單既不添加也不移除內建防護。326* **儲存庫無法設定它們**:Claude Code 從受管設定讀取這兩個設定,從不從儲存庫的設定檔讀取。使用者只有在沒有受管設定的機器上,且未以 Team 或 Enterprise 方案登入時,才能在 `~/.claude/settings.json` 中設定它們以排序自己的 mods。在其他任何情況下,Claude Code 會忽略使用者設定中的這兩個設定鍵。那裡的清單既不會加入也不會移除內建防護。

276 327 

277<h3 id="enforce-a-policy-with-a-mod-of-your-own">328<h3 id="enforce-a-policy-with-a-mod-of-your-own">

278 使用您自己的 mod 強制執行政策329 使用您自己的 mod 強制執行政策

279</h3>330</h3>

280 331 

281若要排除每個使用者的 mod,您不需要您自己的 mod。設定 [`allowManagedModsOnly`](#stop-user-installed-mods-from-loading)。當您想要允許某些使用者的 mods 並拒絕其他的,或記錄 mods 執行的操作時,編寫政策 mod。332若要排除每個使用者的 mod,您不需要自己的 mod。請設定 [`allowManagedModsOnly`](#stop-user-installed-mods-from-loading)。當您想要允許某些使用者的 mods 並拒絕其他的,或記錄 mods 執行的操作時,請編寫政策 mod。

282 333 

283每次另一個 mod 即將載入時,您的 mod 會在名為 [`plugin.register`](/docs/zh-TW/plugins/mods/reference#other-mods) 的事件中接收 `claude plugin validate` 列印的清單。`prependPlugins` 中的 mod 可以讀取該清單並拒絕 mod。它也可以[按名稱掛接任何 mods API 呼叫](/docs/zh-TW/plugins/mods/api#reach-files-processes-and-the-network)以記錄或拒絕每個其他 mod 的該呼叫。名稱是沒有 `$.` 的方法,因此 `fs.write` 上的掛接看到每個 `$.fs.write` 呼叫。334每次另一個 mod 即將載入時,您的 mod 會在名為 [`plugin.register`](/docs/zh-TW/plugins/mods/reference#other-mods) 的事件中接收 `claude plugin validate` 列印的清單。`prependPlugins` 中的 mod 可以讀取該清單並拒絕該 mod。它也可以[按名稱處理任何 mods API 呼叫](/docs/zh-TW/plugins/mods/api#reach-files-processes-and-the-network),以記錄或拒絕所有其他 mod 的該呼叫。名稱是不含 `$.` 的方法,因此 `fs.write` 上的 hook 會看到每個 `$.fs.write` 呼叫。

284 335 

285此政策 mod 拒絕任何使用者的 mod,其自己的程式碼呼叫 `$.process.run` 或 `$.process.spawn`。它也保持審計日誌,將每個工具呼叫和每個 mod 寫入的檔案寫入偵錯日誌。因為它首先執行,日誌記錄在任何使用者的 mod 更改它之前請求的內容。將其儲存為 `acme-guard/hooks/register.js`:336此政策 mod 會拒絕任何自身程式碼呼叫 `$.process.run` 或 `$.process.spawn` 的使用者 mod。它也會保留稽核日誌,將每個工具呼叫和每個 mod 寫入的檔案寫入偵錯日誌。因為它首先執行,日誌會在任何使用者的 mod 更改之前記錄所請求的內容。將其儲存為 `acme-guard/hooks/register.js`:

286 337 

287```javascript acme-guard/hooks/register.js theme={null}338```javascript acme-guard/hooks/register.js theme={null}

288// 沒有使用者的 mod 可能呼叫的方法,每個拼寫為 namespace.method339// The methods no user's mod may call, each spelled namespace.method

289const BLOCKED_CALLS = ['process.run', 'process.spawn']340const BLOCKED_CALLS = ['process.run', 'process.spawn']

290 341 

291export function register(on) {342export function register(on) {

292 // 每次另一個 mod 即將載入時執行343 // Runs each time another mod is about to load

293 on('plugin.register', async ($, e, next) => {344 on('plugin.register', async ($, e, next) => {

294 // 保持該 mod 程式碼中在阻止清單上的呼叫345 // Keep the calls in that mod's code that are on the blocked list

295 const blocked = e.uses.calls.filter((call) => BLOCKED_CALLS.includes(call))346 const blocked = e.uses.calls.filter((call) => BLOCKED_CALLS.includes(call))

296 if (e.tier === 'user' && blocked.length > 0) {347 if (e.tier === 'user' && blocked.length > 0) {

297 // 返回 refuse 防止 mod 載入,文字是原因348 // Returning refuse keeps the mod from loading, and the text is the reason

298 return { refuse: 'Acme policy: mods may not call ' + blocked.join(', ') }349 return { refuse: 'Acme policy: mods may not call ' + blocked.join(', ') }

299 }350 }

300 // 讓所有其他 mod 載入351 // Let every other mod load

301 return next(e)352 return next(e)

302 })353 })

303 354 

304 // 記錄每個工具呼叫,然後讓它繼續不變355 // Record each tool call, then let it go ahead unchanged

305 on('tool.call', async ($, e, next) => {356 on('tool.call', async ($, e, next) => {

306 $.ui.log('audit tool.call ' + e.tool, { to: 'debug' })357 $.ui.log('audit tool.call ' + e.tool, { to: 'debug' })

307 return next(e)358 return next(e)

308 })359 })

309 360 

310 // 記錄哪個 mod 寫入了檔案,然後是路徑,引用因為 mod 選擇了它361 // Record which mod wrote a file, then the path, quoted because the mod chose it

311 on('fs.write', async ($, e, next) => {362 on('fs.write', async ($, e, next) => {

312 $.ui.log('audit fs.write by ' + next.origin.plugin + ' ' + JSON.stringify(e.path), { to: 'debug' })363 $.ui.log('audit fs.write by ' + next.origin.plugin + ' ' + JSON.stringify(e.path), { to: 'debug' })

313 return next(e)364 return next(e)


315}366}

316```367```

317 368 

318該檔案註冊三個 hooks:369該檔案註冊三個 hook:

319 370 

320* **`plugin.register`**:決定另一個 mod 是否載入。它拒絕呼叫阻止方法的使用者 mod,並傳遞所有其他 mod。371* **`plugin.register`**:決定另一個 mod 是否載入。它拒絕呼叫被封鎖方法的使用者 mod,並放行所有其他 mod。

321* **`tool.call`**:為每個工具呼叫寫入一行(例如 `audit tool.call Bash`)到偵錯日誌,並不改變任何內容372* **`tool.call`**:為每個工具呼叫寫入一行(例如 `audit tool.call Bash`)到偵錯日誌,且不改變任何內容

322* **`fs.write`**:為每個 `$.fs.write` 呼叫另一個 mod 發出寫入一行(例如 `audit fs.write by reader "/tmp/notes.md"`),並不改變任何內容。mod 的名稱首先出現,路徑被引用,因此 mod 選擇的路徑無法通過作為該行的另一個欄位。373* **`fs.write`**:為另一個 mod 發出的每個 `$.fs.write` 呼叫寫入一行(例如 `audit fs.write by reader "/tmp/notes.md"`),且不改變任何內容。mod 的名稱在前,路徑加上引號,因此 mod 選擇的路徑無法偽裝成該行的另一個欄位。

323 374 

324`plugin.register` hook 讀取事件的兩個欄位:375`plugin.register` hook 讀取事件的兩個欄位:

325 376 

326* **`e.tier`**:mod 將執行的位置,`prepend`、`user`、`append` 或 `builtin` 之一。每個人安裝的每個 mod 都是 `user`。377* **`e.tier`**:mod 將執行的位置,為 `prepend`、`user`、`append` 或 `builtin` 之一。使用者安裝的每個 mod 都是 `user`。

327* **`e.uses.calls`**:mod 呼叫的 mods API 方法,每個拼寫為 `namespace.method`(例如 `process.run`),不帶 `claude plugin validate` 列印的 `$.`378* **`e.uses.calls`**:mod 呼叫的 mods API 方法,每個寫成 `namespace.method`(例如 `process.run`),不帶 `claude plugin validate` 列印的 `$.`

328 379 

329當使用者安裝呼叫 `$.process.run` 的 mod 時,mod 不會載入,其偵錯日誌有一行以 `refused by acme-guard:` 和您的原因結尾。拒絕也到達[熱重新載入外掛程式目錄的工作階段](/docs/zh-TW/plugins/mods/troubleshoot#find-out-why-a-mod-does-nothing)中的文字記錄。若要阻止呼叫而不拒絕整個 mod,請從該呼叫名稱上的 hook 返回 `{ deny: 'your reason' }`。380當使用者安裝呼叫 `$.process.run` 的 mod 時,該 mod 不會載入,其偵錯日誌中會有一行以 `refused by acme-guard:` 和您的原因結尾。在[熱重新載入外掛目錄的工作階段](/docs/zh-TW/plugins/mods/troubleshoot#find-out-why-a-mod-does-nothing)中,拒絕訊息也會出現在逐字稿中。若要封鎖某個呼叫而不拒絕整個 mod,請從該呼叫名稱上的 hook 傳回 `{ deny: 'your reason' }`。

330 381 

331若要將審計行發送到偵錯日誌以外的地方,請從相同的 hooks 呼叫 `$.http.fetch`。382若要將稽核行傳送到偵錯日誌以外的地方,請從相同的 hook 呼叫 `$.http.fetch`。

332 383 

333工作階段可以在沒有您的 mod 的情況下執行。如果執行已安裝 mods 的工作執行緒[崩潰三次](/docs/zh-TW/plugins/mods/troubleshoot#mods-that-run-in-the-hooks-worker-are-off-for-this-session),Claude Code 卸載每個不是內建的 mod,包括您的,直到使用者執行 `/reload-plugins` 或啟動新工作階段。使用者使用 `--safe-mode` 啟動 Claude Code 時,執行時沒有已安裝的 mods,包括您的。384工作階段可能在沒有您的 mod 的情況下執行。如果執行已安裝 mods 的工作執行緒[當機三次](/docs/zh-TW/plugins/mods/troubleshoot#mods-that-run-in-the-hooks-worker-are-off-for-this-session),Claude Code 會卸載所有非內建的 mod(包括您的),直到使用者執行 `/reload-plugins` 或啟動新工作階段。而使用 `--safe-mode` 啟動 Claude Code 的使用者,會在沒有已安裝 mods 的情況下執行,包括您的。

334 385 

335[建立 mod](/docs/zh-TW/plugins/mods/create)涵蓋 mod 需要的檔案。[測試判斷其他 mods 的 mod](/docs/zh-TW/plugins/mods/test#test-a-mod-that-judges-other-mods)有此政策 mod 的測試檔案。386[建立 mod](/docs/zh-TW/plugins/mods/create) 涵蓋 mod 需要的檔案。[測試政策 mod](/docs/zh-TW/plugins/mods/test#test-a-mod-that-judges-other-mods) 提供此政策 mod 的測試檔案。

336 387 

337<h4 id="refuse-mods-when-your-check-fails">388<h4 id="refuse-mods-when-your-check-fails">

338 當您的檢查失敗時拒絕 mods389 當您的檢查失敗時拒絕 mods

339</h4>390</h4>

340 391 

341如果您的 `plugin.register` hook 拋出或超過其時間限制,Claude Code 跳過 hook,因此檢查失敗開啟,它正在檢查的 mod 載入。若要失敗關閉並拒絕使用者的 mods,請將檢查移到命名函數中,並添加返回拒絕的 `.catch` 處理程式。此檔案版本僅顯示 `plugin.register` hook,因此保持第一個版本中的兩個審計 hooks 在 `register` 中:392如果您的 `plugin.register` hook 拋出例外或超過其時間限制,Claude Code 會跳過該 hook,因此檢查會以開放方式失敗,正在檢查的 mod 會載入。若要以關閉方式失敗並拒絕使用者的 mods,請將檢查移到具名函式中,並加入傳回拒絕的 `.catch` 處理程式。此版本的檔案僅顯示 `plugin.register` hook,因此請在 `register` 中保留第一個版本的兩個稽核 hook:

342 393 

343```javascript acme-guard/hooks/register.js theme={null}394```javascript acme-guard/hooks/register.js theme={null}

344const BLOCKED_CALLS = ['process.run', 'process.spawn']395const BLOCKED_CALLS = ['process.run', 'process.spawn']

345 396 

346// 與之前相同的檢查,移到其自己的函數中397// The same check as before, moved into a function of its own

347async function checkMod($, e, next) {398async function checkMod($, e, next) {

348 const blocked = e.uses.calls.filter((call) => BLOCKED_CALLS.includes(call))399 const blocked = e.uses.calls.filter((call) => BLOCKED_CALLS.includes(call))

349 if (e.tier === 'user' && blocked.length > 0) {400 if (e.tier === 'user' && blocked.length > 0) {


353}404}

354 405 

355export function register(on) {406export function register(on) {

356 // 處理程式僅在 checkMod 拋出或超過其時間限制時執行407 // The handler runs only when checkMod throws or exceeds its time limit

357 on('plugin.register', checkMod).catch(async ($, e, next) => {408 on('plugin.register', checkMod).catch(async ($, e, next) => {

358 // 讓您組織的 mods 和內建 mods 載入409 // Let your organization's mods and built-in mods load

359 if (e.tier !== 'user') return next(e)410 if (e.tier !== 'user') return next(e)

360 // 拒絕無法檢查的使用者 mod411 // Refuse the user's mod that couldn't be checked

361 return { refuse: 'Acme policy check failed, so this mod was not loaded' }412 return { refuse: 'Acme policy check failed, so this mod was not loaded' }

362 })413 })

363}414}

364```415```

365 416 

366處理程式就位後,在檢查拋出或超時時正在檢查的 mod 不會載入,拒絕行帶有第二個原因,如 `refused by acme-guard: Acme policy check failed, so this mod was not loaded`。處理程式將 `user` 層外的每個 mod 傳遞給 `next(e)`,因此失敗的檢查不會停止您組織列出的 mods。[處理失敗的 hook](/docs/zh-TW/plugins/mods/events#handle-a-hook-that-fails)涵蓋其他事件的 `.catch`。417處理程式就位後,在檢查拋出例外或逾時時正在被檢查的 mod 不會載入,拒絕行會帶有第二個原因,如 `refused by acme-guard: Acme policy check failed, so this mod was not loaded`。處理程式將 `user` 層以外的每個 mod 傳遞給 `next(e)`,因此失敗的檢查不會阻止您組織列出的 mods。[處理失敗的 hook](/docs/zh-TW/plugins/mods/events#handle-a-hook-that-fails) 涵蓋其他事件的 `.catch`。

367 418 

368<h2 id="next-steps">419<h2 id="next-steps">

369 後續步驟420 後續步驟

Details

98 98 

99當您執行 `/triage the export button does nothing` 時,模組會將該文字傳送給模型並列印其答案,例如 `Label: bug`。Claude 的對話不是請求的一部分。當模型沒有回答時,標籤為 `unknown`。99當您執行 `/triage the export button does nothing` 時,模組會將該文字傳送給模型並列印其答案,例如 `Label: bug`。Claude 的對話不是請求的一部分。當模型沒有回答時,標籤為 `unknown`。

100 100 

101Claude API 失敗不會拒絕呼叫,因此請檢查 `r.isAnswered`,當其為 `false` 時請讀取 `r.reason`。呼叫只會因為 Claude Code 不會傳送的請求而被拒絕,例如您的組織封鎖的模型。[您的建置類型](/docs/zh-TW/plugins/mods/create#get-the-types-for-your-build)列出其他選項,例如 `effort`,而[限制](/docs/zh-TW/plugins/mods/reference#limits)提供 `maxTokens` 預設值。101Claude API 失敗不會拒絕呼叫,因此請檢查 `r.isAnswered`,當其為 `false` 時請讀取 `r.reason`。呼叫會因為 Claude Code 不會傳送的請求而被拒絕,例如您的組織封鎖的模型。[您的建置類型](/docs/zh-TW/plugins/mods/create#get-the-types-for-your-build)列出其他選項,例如 `effort`,而[限制](/docs/zh-TW/plugins/mods/reference#limits)提供 `maxTokens` 預設值。

102 102 

103`$.model.fork({ prompt })` 改為在目前對話上提出一個問題,使用相同的模型和系統提示,因此 Claude API 會從提示快取中提供大部分內容。103`$.model.fork({ prompt })` 改為在目前對話上提出一個問題,使用相同的模型和系統提示,因此 Claude API 會從提示快取中提供大部分內容。

104 104 


108 在背景執行工作108 在背景執行工作

109</h2>109</h2>

110 110 

111超越一個事件的工作,例如每分鐘檢查一次,在您從 `session.start` 啟動的計時器上執行。hook 本身為一個事件執行,並有 10 秒的自己執行時間限制。在 `next` 或 mods API 呼叫上花費的時間不計算,除了 `$.clock.sleep`。`$.clock.every` 和 `$.clock.after` 取代 `setInterval` 和 `setTimeout`,延遲以毫秒為單位首先:`$.clock.after(5000, fn)` 在五秒後呼叫 `fn` 一次。每個都傳回一個具有 `cancel()` 方法的計時器,而 `await $.clock.now()` 給出以毫秒為單位的時間。111超越一個事件的工作,例如每分鐘檢查一次,在您從 `session.start` 啟動的計時器上執行。hook 本身為一個事件執行,並對其自身的執行時間有[時間限制](/docs/zh-TW/plugins/mods/reference#limits)。在 `next` 或 mods API 呼叫上花費的時間不計算,除了 `$.clock.sleep`。`$.clock.every` 和 `$.clock.after` 取代 `setInterval` 和 `setTimeout`,延遲以毫秒為單位首先:`$.clock.after(5000, fn)` 在五秒後呼叫 `fn` 一次。每個都傳回一個具有 `cancel()` 方法的計時器,而 `await $.clock.now()` 給出以毫秒為單位的時間。

112 112 

113此 hook 每分鐘查詢一次提取請求的檢查,並在提示下方顯示結果。`summarize` 是您自己的函式,將命令的 JSON 輸出轉換為幾個單詞:113此 hook 每分鐘查詢一次提取請求的檢查,並在提示下方顯示結果。`summarize` 是您自己的函式,將命令的 JSON 輸出轉換為幾個單詞:

114 114 


136| 呼叫 | 使用者看到的內容 |136| 呼叫 | 使用者看到的內容 |

137| :- | :- |137| :- | :- |

138| `$.ui.status(text)` | 提示下方的一行,保持到您變更它為止。它以 `⚠` 和 mod 的名稱開頭,如 `⚠ my-mod: checks: 3 passing`。 |138| `$.ui.status(text)` | 提示下方的一行,保持到您變更它為止。它以 `⚠` 和 mod 的名稱開頭,如 `⚠ my-mod: checks: 3 passing`。 |

139| `$.ui.toast(text)` | 右上角的一個小框,mod 的名稱在文字上方,幾秒後消失 |139| `$.ui.toast(text)` | 右上角的快顯通知,mod 的名稱在文字上方,幾秒後消失 |

140| `$.ui.log(text)` | 文字記錄中的一條暗線,Claude 不讀取。它以 `●` 和 mod 的名稱開頭,如 `● my-mod: build finished`。 |140| `$.ui.log(text)` | 文字記錄中的一條暗線,Claude 不讀取。它以 `●` 和 mod 的名稱開頭,如 `● my-mod: build finished`。 |

141 141 

142<h3 id="start-a-turn-from-a-background-job">142<h3 id="start-a-turn-from-a-background-job">


149 停止背景工作149 停止背景工作

150</h3>150</h3>

151 151 

152背景工作以兩種方式停止。當模組重新載入時,計時器停止。對於 hook 內的長時間執行工作,[`next.signal`](/docs/zh-TW/plugins/mods/reference#the-hook-function) 是一個 `AbortSignal`,當您的 hook 正在處理的事件被放棄時中止,例如當使用者中斷時,因此將其傳遞給任何長時間執行的內容。152當模組重新載入時,計時器停止。對於 hook 內的長時間執行工作,[`next.signal`](/docs/zh-TW/plugins/mods/reference#the-hook-function) 是一個 `AbortSignal`,當您的 hook 正在處理的事件被放棄時中止,例如當使用者中斷時,因此將其傳遞給任何長時間執行的內容。

153 153 

154<h2 id="send-and-receive-messages-between-sessions">154<h2 id="send-and-receive-messages-between-sessions">

155 在工作階段之間傳送和接收訊息155 在工作階段之間傳送和接收訊息


170})170})

171```171```

172 172 

173當訊息排隊時,您的工作階段中不會出現任何內容,另一個工作階段的 Claude 會讀取 `Status? One line.`。當沒有任何內容被傳遞時,右上角的小方塊會顯示原因,並在幾秒後消失。173當訊息排隊時,您的工作階段中不會出現任何內容,另一個工作階段的 Claude 會讀取 `Status? One line.`。當沒有任何內容被傳遞時,toast 通知會顯示原因。

174 174 

175兩個事件讓 mod 觀察訊息。從兩者都返回 `next(e)` 以不變地傳遞每個訊息:175`session.receive` 和 `session.send` 讓 mod 觀察訊息。從兩者都返回 `next(e)` 以不變地傳遞每個訊息:

176 176 

177| 事件 | 何時觸發 | 有用的欄位 |177| 事件 | 何時觸發 | 有用的欄位 |

178| :- | :- | :- |178| :- | :- | :- |


202 202 

203檔案和程序有幾個自己的規則:203檔案和程序有幾個自己的規則:

204 204 

205* **路徑**:相對路徑在工作階段的工作目錄下205* **路徑**:相對路徑會相對於工作階段的工作目錄解析

206* **`$.fs.list`**:將一個目錄的項目傳回為 `{ name, kind, size, isLink }`,不會下降到子目錄中206* **`$.fs.list`**:將一個目錄的項目傳回為 `{ name, kind, size, isLink }`,不會遞迴

207* **`$.process.run`**:採用引數列表,不使用 shell。無論退出代碼如何,它都解析為 `{ exitCode, stdout, stderr }`。如果程式無法啟動或在逾時時仍在執行,它會拒絕,預設為 30 秒,因此將其包裝在 `try` 和 `catch` 中。207* **`$.process.run`**:採用引數列表,不使用 shell。無論退出代碼如何,它都解析為 `{ exitCode, stdout, stderr }`。如果程式無法啟動或在逾時時仍在執行,它會拒絕,預設為 30 秒,因此將其包裝在 `try` 和 `catch` 中。

208 208 

209這些呼叫中的每一個本身都是一個事件,以其命名空間和方法命名,不帶 `$.`,例如 `$.fs.read` 的 `fs.read`。鏈中[較早的](/docs/zh-TW/plugins/mods/events#the-order-mods-run-in) mod 可以觀察、重寫或拒絕您的呼叫,這是組織限制 mod 到達的方式。209這些呼叫中的每一個本身都是一個事件,以其命名空間和方法命名,不帶 `$.`,例如 `$.fs.read` 的 `fs.read`。鏈中[較早的](/docs/zh-TW/plugins/mods/events#the-order-mods-run-in) mod 可以觀察、重寫或拒絕您的呼叫,這是組織限制 mod 到達的方式。


215* [對事件做出反應](/docs/zh-TW/plugins/mods/events):hook 工具呼叫、提示和回合215* [對事件做出反應](/docs/zh-TW/plugins/mods/events):hook 工具呼叫、提示和回合

216* [在介面中繪製](/docs/zh-TW/plugins/mods/interface):在窗格或提示上方顯示您的 mod 收集的內容216* [在介面中繪製](/docs/zh-TW/plugins/mods/interface):在窗格或提示上方顯示您的 mod 收集的內容

217* [測試 mod](/docs/zh-TW/plugins/mods/test):在測試中存根這些呼叫中的任何一個217* [測試 mod](/docs/zh-TW/plugins/mods/test):在測試中存根這些呼叫中的任何一個

218* [Mods 參考](/docs/zh-TW/plugins/mods/reference):每個事件、每個 mods API 方法和限制218* [Mods 參考](/docs/zh-TW/plugins/mods/reference):事件、mods API 方法和限制

Details

6 6 

7> 讓 Claude 從描述中寫出 Claude Code mod,或自己寫一個來計算工具呼叫並新增命令。學習重新載入和驗證迴圈。7> 讓 Claude 從描述中寫出 Claude Code mod,或自己寫一個來計算工具呼叫並新增命令。學習重新載入和驗證迴圈。

8 8 

9Mod 是一個 Claude Code [plugin](/docs/zh-TW/plugins/overview),具有一個進入檔案,稱為 hooks module:一個 JavaScript 或 TypeScript 檔案,其函數在事件發生時由 Claude Code 呼叫。有兩種方式可以建立:9Mod 是一個 Claude Code [外掛](/docs/zh-TW/plugins/overview),具有一個進入檔案,稱為 hooks module:一個 JavaScript 或 TypeScript 檔案,其函數在事件發生時由 Claude Code 呼叫。若要建立 mod:

10 10 

11* **要求 Claude 寫它**:在 Claude Code 工作階段中[描述你想要的](#ask-claude-for-a-mod)11* **要求 Claude 寫它**:在 Claude Code 工作階段中[描述你想要的](#ask-claude-for-a-mod)

12* **自己寫**:[按照教學](#write-a-mod-yourself)學習 mod 程式碼的運作方式。你不需要 Node.js、bundler 或建置步驟,因為 Claude Code 直接載入 `.js` 和 `.ts` 檔案。12* **自己寫**:[按照教學](#write-a-mod-yourself)學習 mod 程式碼的運作方式。你不需要 Node.js、bundler 或建置步驟,因為 Claude Code 直接載入 `.js` 和 `.ts` 檔案。


69 69 

70* **沒有人在那裡批准**:工作階段無法向你顯示提示,如在 `claude -p` 執行或 [`dontAsk` mode](/docs/zh-TW/permission-modes) 中70* **沒有人在那裡批准**:工作階段無法向你顯示提示,如在 `claude -p` 執行或 [`dontAsk` mode](/docs/zh-TW/permission-modes) 中

71* **工作區不受信任**:你還沒有接受目錄的信任提示71* **工作區不受信任**:你還沒有接受目錄的信任提示

72* **Mod 已停止**:你使用 `--safe-mode` 或 `--bare` 啟動,你設定了 `disableAllHooks`,或你的組織的[受管設定阻止它](/docs/zh-TW/plugins/mods/admin#choose-how-much-to-allow)72* **Mod 已停用**:您以 `--safe-mode` 或 `--bare` 啟動、設定了 `disableAllHooks`,或您組織的[受管設定封鎖了它](/docs/zh-TW/plugins/mods/admin#choose-how-much-to-allow)

73 73 

74<h2 id="write-a-mod-yourself">74<h2 id="write-a-mod-yourself">

75 自己寫 mod75 自己寫 mod


249* **事件**,名為 `e`:[事件的輸入](/docs/zh-TW/plugins/mods/reference#events)作為純資料,例如工具呼叫的名稱和引數249* **事件**,名為 `e`:[事件的輸入](/docs/zh-TW/plugins/mods/reference#events)作為純資料,例如工具呼叫的名稱和引數

250* **下一個處理程式**,名為 [`next`](/docs/zh-TW/plugins/mods/events#how-a-hook-handles-an-event):一個函數,將事件傳遞給其他 mod,然後傳遞給 Claude Code 自己的行為,並返回結果250* **下一個處理程式**,名為 [`next`](/docs/zh-TW/plugins/mods/events#how-a-hook-handles-an-event):一個函數,將事件傳遞給其他 mod,然後傳遞給 Claude Code 自己的行為,並返回結果

251 251 

252`first-mod` 中的 hook 以 hook 可以的三種方式處理它們的事件:252`first-mod` 中的 hook 以下列方式處理其事件:

253 253 

254* **觀察**:`session.start` hook 註冊命令,`tool.call` hook 計算呼叫並要求重新繪製。兩者都返回 `next(e)`,所以工作階段啟動,工具照常執行。254* **觀察**:`session.start` hook 註冊命令,`tool.call` hook 計算呼叫並要求重新繪製。兩者都返回 `next(e)`,所以工作階段啟動,工具照常執行。

255* **回答**:`command.run` hook 返回自己的結果,永遠不呼叫 `next`。`on` 的第二個引數 `{ command: 'tally' }` 是一個篩選器,稱為[匹配器](/docs/zh-TW/plugins/mods/events#filter-which-events-a-hook-handles),所以 hook 只對 `/tally` 執行。255* **回答**:`command.run` hook 返回自己的結果,永遠不呼叫 `next`。`on` 的第二個引數 `{ command: 'tally' }` 是一個篩選器,稱為[匹配器](/docs/zh-TW/plugins/mods/events#filter-which-events-a-hook-handles),所以 hook 只對 `/tally` 執行。

256* **重寫**:`ui.render` hook 呼叫 `next` 並複製 `e`,其 `suffix` 保留計數,所以 Claude Code 繪製其通常的微調器,你的文字在單詞後面256* **重寫**:`ui.render` hook 呼叫 `next` 並複製 `e`,其 `suffix` 保留計數,所以 Claude Code 繪製其通常的微調器,你的文字在單詞後面

257 257 

258Claude Code 監視使用 `--plugin-dir` 載入的目錄,當其中的檔案變更時熱重新載入 hooks module。每次重新載入都執行 `register` 再次,所以 `calls` 回到 `0`,`/tally` 開始再次計數。若要在重新載入中保留值,請參閱[保留狀態](/docs/zh-TW/plugins/mods/interface#keep-state)。258Claude Code 會監看使用 `--plugin-dir` 載入的目錄,並在其中的檔案變更時熱重新載入 hooks module。每次重新載入都會再次執行 `register`,因此 `calls` 會重設為 `0`,`/tally` 會重新開始計數。若要在重新載入之間保留值,請參閱[保留狀態](/docs/zh-TW/plugins/mods/interface#keep-state)。

259 259 

260<h2 id="keep-working-on-a-mod">260<h2 id="keep-working-on-a-mod">

261 繼續處理 mod261 繼續處理 mod


318 318 

319`hooks:` 行列出你的模組 hook 的事件,每個都在大括號中有其篩選器。`calls:` 行列出它呼叫的每個 mod API 方法。讀取或設定環境變數的模組也會取得 `env reads:` 和 `env writes:` 行,使用 [`$.state`](/docs/zh-TW/plugins/mods/interface#keep-state) 的模組會取得 `state reads:` 和 `state writes:`。319`hooks:` 行列出你的模組 hook 的事件,每個都在大括號中有其篩選器。`calls:` 行列出它呼叫的每個 mod API 方法。讀取或設定環境變數的模組也會取得 `env reads:` 和 `env writes:` 行,使用 [`$.state`](/docs/zh-TW/plugins/mods/interface#keep-state) 的模組會取得 `state reads:` 和 `state writes:`。

320 320 

321如果你想 hook 的事件在第一行中遺失,Claude Code 也不會呼叫該 hook。通常的原因是事件名稱拼寫錯誤,命令報告為錯誤,例如 `"tool.calls" is not an event`。321如果您想處理的事件沒有出現在第一行中,Claude Code 也不會呼叫該 hook。常見原因是事件名稱拼寫錯誤,命令會將其回報為錯誤,例如 `"tool.calls" is not an event`。

322 322 

323遵循這些規則,以便靜態分析可以找到每個 hook 和呼叫:323遵循這些規則,以便靜態分析可以找到每個 hook 和呼叫:

324 324 

325* 完整拼寫每個 mod API 呼叫:`$`、命名空間,然後方法,如 `$.store.get('notes')`。你可以將 `$` 傳遞給在同一檔案的頂層宣告的函數,對於你的名為 `loadNotes` 的函數,`calls:` 行然後讀取 `$.store.get (via loadNotes)`。將 `$` 傳遞給方法、在 hook 內定義的函數或你從另一個檔案匯入的函數會失敗驗證。[`$.state`](/docs/zh-TW/plugins/mods/interface#keep-state) 使用的 `read` 和 `update` 函數是可以採用它的匯入。不要將 `$` 或其命名空間之一指派給變數、解構它或使用計算名稱索引它。`const ui = $.ui` 失敗,出現 `$.ui is used as a value`。325* 完整寫出每個 mods API 呼叫:`$`、命名空間,然後是方法,如 `$.store.get('notes')`。您可以將 `$` 傳遞給在同一檔案頂層宣告的函式;若您的函式名為 `loadNotes`,`calls:` 行就會顯示 `$.store.get (via loadNotes)`。將 `$` 傳遞給方法、在 hook 內定義的函式,或您從自己的另一個檔案匯入的函式,都會導致驗證失敗。[`$.state`](/docs/zh-TW/plugins/mods/interface#keep-state) 使用的 `read` 和 `update` 函式是可以接收它的匯入。不要將 `$` 或其命名空間之一指派給變數、對其解構,或以計算名稱對其進行索引。`const ui = $.ui` 會失敗,並出現 `$.ui is used as a value`。

326* 在每個 `on` 呼叫中將事件名稱寫為字串文字,例如 `'tool.call'`。變數或名稱列表上的迴圈失敗,出現 `the event name passed to on() is not a string literal`。326* 在每個 `on` 呼叫中將事件名稱寫為字串文字,例如 `'tool.call'`。變數或名稱列表上的迴圈失敗,出現 `the event name passed to on() is not a string literal`。

327* 在 `register` 內,不要宣告名為 `on` 的第二個變數或引數。驗證失敗,出現 `"on" is declared again (shadowed)`。327* 在 `register` 內,不要宣告名為 `on` 的第二個變數或引數。驗證失敗,出現 `"on" is declared again (shadowed)`。

328* 僅從 plugin 目錄內的檔案匯入,按相對路徑。允許的唯一裸匯入是 `claude-code`,用於型別和一些幫助程式。328* 僅從 plugin 目錄內的檔案匯入,按相對路徑。允許的唯一裸匯入是 `claude-code`,用於型別和一些幫助程式。


333 測試 mod333 測試 mod

334</h3>334</h3>

335 335 

336你可以為 mod 寫自動化測試,並使用 `claude plugin test` 從你的 shell 執行它們,沒有工作階段、登入或網路。測試引發你的 hook 處理的事件,並檢查 hook 做了什麼。336您可以為 mod 撰寫自動化測試,並使用 `claude plugin test` 從您的 shell 執行,無需工作階段、登入或網路。測試會觸發您的 hook 處理的事件,並檢查 hook 做了什麼。

337 337 

338此測試引發兩個工具呼叫,執行 `/tally`,並檢查回覆計算兩者。將其儲存為 `first-mod/tests/first-mod.test.ts`:338此測試觸發兩個工具呼叫、執行 `/tally`,並檢查回覆是否計入兩者。將其儲存為 `first-mod/tests/first-mod.test.ts`:

339 339 

340```typescript first-mod/tests/first-mod.test.ts theme={null}340```typescript first-mod/tests/first-mod.test.ts theme={null}

341import { expect, test } from 'claude-code/testing'341import { expect, test } from 'claude-code/testing'


344 // Answer each tool call in Claude Code's place, so no tool runs344 // Answer each tool call in Claude Code's place, so no tool runs

345 on('tool.call', () => ({ result: 'ok' }))345 on('tool.call', () => ({ result: 'ok' }))

346 346 

347 // Raise two tool calls, which the mod's tool.call hook counts347 // Fire two tool calls, which the mod's tool.call hook counts

348 await $.tool.call({ tool: 'Bash', command: 'ls' })348 await $.tool.call({ tool: 'Bash', command: 'ls' })

349 await $.tool.call({ tool: 'Read', file_path: 'README.md' })349 await $.tool.call({ tool: 'Read', file_path: 'README.md' })

350 350 


381 381 

382在你這樣做之前,檢查 plugin 的 `name`:`claude plugin validate` 失敗一個[看起來像 Anthropic 自己的](/docs/zh-TW/plugins/manifest-reference#name)名稱,例如以 `claude-` 開頭的名稱。事件和方法可以在版本之間變更,所以你的 README 是說明你測試的 Claude Code 版本的地方。382在你這樣做之前,檢查 plugin 的 `name`:`claude plugin validate` 失敗一個[看起來像 Anthropic 自己的](/docs/zh-TW/plugins/manifest-reference#name)名稱,例如以 `claude-` 開頭的名稱。事件和方法可以在版本之間變更,所以你的 README 是說明你測試的 Claude Code 版本的地方。

383 383 

384使用 `--plugin-dir` 針對目錄繼續開發,而不是針對已安裝的副本。Claude Code 按版本快取已安裝的 plugin,所以你的編輯在你提高版本並再次安裝之前不會到達已安裝的副本。384請使用 `--plugin-dir` 針對目錄繼續開發,而不是針對已安裝的副本。Claude Code 會按版本快取已安裝的外掛,因此在您提高版本並再次安裝之前,您的編輯不會反映到已安裝的副本。

385 385 

386<h2 id="next-steps">386<h2 id="next-steps">

387 後續步驟387 後續步驟

Details

52 重寫事件52 重寫事件

53</h3>53</h3>

54 54 

55若要變更 Claude Code 作用的內容,例如提示的文字,請使用修改後的事件副本呼叫 `next`。事件本身是不可變的:它在每個深度都被凍結,分配給欄位會擲回。此 hook 在傳送前修剪每個提示:55若要變更 Claude Code 作用的內容,例如提示詞的文字,請使用修改後的事件副本呼叫 `next`。事件本身是不可變的:它在每個深度都被凍結,分配給欄位會擲回。此 hook 在傳送前修剪每個提示詞:

56 56 

57```javascript theme={null}57```javascript theme={null}

58on('prompt.submit', async ($, e, next) => {58on('prompt.submit', async ($, e, next) => {


97 97 

98`hook` 針對 Bash、Edit 或 Write 呼叫執行一次,並針對名稱以 `mcp__github__` 開頭的工具呼叫執行一次。對任何其他工具(例如 Read)的呼叫不符合這三個中的任何一個,因此 `hook` 不會針對它執行。98`hook` 針對 Bash、Edit 或 Write 呼叫執行一次,並針對名稱以 `mcp__github__` 開頭的工具呼叫執行一次。對任何其他工具(例如 Read)的呼叫不符合這三個中的任何一個,因此 `hook` 不會針對它執行。

99 99 

100事件名稱可以是萬用字元。`'classic.*'` 符合每個[設定 hook 事件](#hook-the-settings-hook-events)。`'*'` 符合除[遙測事件](/docs/zh-TW/plugins/mods/reference#telemetry)之外的每個事件,您可以按名稱或作為 `'telemetry.*'` 進行 hook。100事件名稱可以是萬用字元。`'classic.*'` 符合每個[設定 hook 事件](#hook-the-settings-hook-events)。`'*'` 符合除[遙測事件](/docs/zh-TW/plugins/mods/reference#telemetry)之外的每個事件,遙測事件需使用其自身的名稱以及 `{ to: 'collector' }` 篩選器。

101 101 

102為每個 matcher 註冊一次事件。如果您為 `session.start` 呼叫 `on` 兩次而沒有 matcher,模組將無法載入,並出現 `on("session.start") is registered twice without a matcher`。將您的 mod 在工作階段開始時執行的所有操作放在一個 hook 中。102為每個 matcher 註冊一次事件。如果您為 `session.start` 呼叫 `on` 兩次而沒有 matcher,模組將無法載入,並出現 `on("session.start") is registered twice without a matcher`。將您的 mod 在工作階段開始時執行的所有操作放在一個 hook 中。

103 103 

104<h2 id="hook-what-claude-is-doing">104<h2 id="hook-what-claude-is-doing">

105 Hook Claude 正在執行的操作105 對 Claude 正在執行的動作設定 hook

106</h2>106</h2>

107 107 

108Hook 這些事件以查看或變更工具呼叫、提示或回合。對於每個事件以及 hook 可以傳回的內容,請參閱[事件參考資料](/docs/zh-TW/plugins/mods/reference#events)。108處理這些事件,即可在工具呼叫、提示詞或回合發生時檢視或變更它們。如需所有事件以及 hook 可傳回的內容,請參閱[事件參考](/docs/zh-TW/plugins/mods/reference#events)。

109 109 

110<h3 id="guard-or-change-a-tool-call">110<h3 id="guard-or-change-a-tool-call">

111 保護或變更工具呼叫111 防護或變更工具呼叫

112</h3>112</h3>

113 113 

114`tool.call` hook 會看到 Claude 即將使用的每個工具,因此它可以拒絕呼叫、變更其引數或讓它通過。`tool.call` 在 Claude Code 即將執行工具時觸發,包括子代理程式進行的呼叫和對 MCP 工具的呼叫。`e.tool` 是工具的名稱,工具的引數是 `e` 的欄位,例如 Bash 的 `e.command`。當您呼叫 `next(e)` 時,Claude Code 執行權限檢查,然後執行工具。114`tool.call` hook 會看到 Claude 即將使用的每個工具,因此可以拒絕該呼叫、變更其引數,或讓它通過。`tool.call` 會在 Claude Code 即將執行工具時觸發,包括 subagent 發出的呼叫以及對 MCP 工具的呼叫。`e.tool` 是工具的名稱,而工具的引數則是 `e` 的欄位,例如 Bash 的 `e.command`。當您呼叫 `next(e)` 時,Claude Code 會執行權限檢查,然後執行工具。

115 115 

116此 hook 拒絕強制推送的 Bash 命令,並告訴 Claude 原因:116此 hook 會拒絕執行 force push 的 Bash 命令,並告訴 Claude 原因:

117 117 

118```javascript theme={null}118```javascript theme={null}

119// matcher 將 hook 限制為 Bash 呼叫,因此 e.command 是 shell 命令119// The matcher limits the hook to Bash calls, so e.command is the shell command

120on('tool.call', { tool: 'Bash' }, async ($, e, next) => {120on('tool.call', { tool: 'Bash' }, async ($, e, next) => {

121 if (/git push .*--force/.test(e.command)) {121 if (/git push .*--force/.test(e.command)) {

122 // 傳回而不呼叫 next 會回答事件,所以命令永遠不會執行122 // Returning without calling next answers the event, so the command never runs

123 return { deny: 'Force pushes are not allowed in this repository. Push to a new branch instead.' }123 return { deny: 'Force pushes are not allowed in this repository. Push to a new branch instead.' }

124 }124 }

125 // 每個其他命令都會進行權限檢查,然後進行 Bash125 // Every other command goes on to the permission check and then to Bash

126 return next(e)126 return next(e)

127})127})

128```128```

129 129 

130當 Claude 嘗試 `git push --force` 時,命令不會執行,也不會出現權限提示,因為 hook 永遠不會呼叫 `next`。Claude 將 `deny` 文字讀取為工具的結果,因此將其寫成 Claude 可以採取行動的指示。每個其他 Bash 命令的執行方式與沒有 mod 時相同。130當 Claude 嘗試執行 `git push --force` 時,命令不會執行,也不會出現權限提示,因為 hook 從未呼叫 `next`。Claude 會將 `deny` 文字當作工具的結果來讀取,因此請將其撰寫為 Claude 可據以行動的指令。其他所有 Bash 命令的執行方式都與沒有 mod 時相同。

131 131 

132若要在工具執行後採取行動,請 `await next(e)`、執行您的工作,然後傳回 `next` 給您的內容。此 hook 記錄 Claude 變更的每個 `.mdx` 檔案,使用 [`$.ui.log`](/docs/zh-TW/plugins/mods/api#show-something-without-starting-a-turn),它會在文字記錄中新增一行暗淡的行,Claude 不會讀取:132若要在工具執行後採取動作,請 `await next(e)`、執行您的工作,然後傳回 `next` 給您的內容。此 hook 會使用 [`$.ui.log`](/docs/zh-TW/plugins/mods/api#show-something-without-starting-a-turn) 記錄 Claude 變更的每個 `.mdx` 檔案,該函式會在逐字稿中加入一行 Claude 不會讀取的淡色文字:

133 133 

134```javascript theme={null}134```javascript theme={null}

135on('tool.call', { tool: ['Edit', 'Write'] }, async ($, e, next) => {135on('tool.call', { tool: ['Edit', 'Write'] }, async ($, e, next) => {

136 // 等待權限檢查和工具,並保留它們產生的內容136 // Wait for the permission check and the tool, and keep what they produced

137 const result = await next(e)137 const result = await next(e)

138 // 被拒絕的呼叫會以 { deny } 的形式返回,失敗的呼叫會設定 isError138 // A refused call comes back as { deny }, and a failed one has isError set

139 const changed = !result.deny && !result.isError139 const changed = !result.deny && !result.isError

140 if (changed && e.file_path.endsWith('.mdx')) $.ui.log('Claude changed ' + e.file_path)140 if (changed && e.file_path.endsWith('.mdx')) $.ui.log('Claude changed ' + e.file_path)

141 // 按原樣傳回結果,以便 Claude 讀取工具傳回的內容141 // Return the result as it came, so Claude reads what the tool returned

142 return result142 return result

143})143})

144```144```

145 145 

146Claude 編輯或寫入 `.mdx` 檔案後,文字記錄中的暗淡行會命名該檔案。對於另一種檔案或被拒絕或失敗的呼叫,不會記錄任何內容。Claude 對呼叫的檢視不會改變,因為 hook 傳回它收到的結果。146在 Claude 編輯或寫入 `.mdx` 檔案後,逐字稿中會出現一行淡色文字,標示該檔案名稱。對於其他類型的檔案,或是遭拒絕或失敗的呼叫,則不會記錄任何內容。Claude 對該呼叫的認知不會改變,因為 hook 傳回的是它所收到的結果。

147 147 

148若要變更呼叫,請將變更的引數傳遞給 `next`。若要重試呼叫,請再次呼叫 `next(e)`:看到第一個結果上的 `isError` 的 hook 可以第二次執行工具並傳回該結果。若要自己回答呼叫,請傳回具有 `result` 欄位的物件,例如 `{ result: 'Skipped by my-mod' }`,而不呼叫 `next`。當您這樣做時,不會出現權限提示,工具不會執行,因此您傳回的結果是 Claude 了解發生情況的全部內容。148若要變更呼叫,請將變更後的引數傳給 `next`。若要重試呼叫,請再次呼叫 `next(e)`:在第一個結果上看到 `isError` 的 hook 可以再次執行工具,並傳回該結果。若要自行回應呼叫,請在不呼叫 `next` 的情況下傳回具有 `result` 欄位的物件,例如 `{ result: 'Skipped by my-mod' }`。這樣做時,不會出現權限提示,工具也不會執行,因此您傳回的結果就是 Claude 對所發生事情的全部了解。

149 149 

150您組織的[受管設定](/docs/zh-TW/server-managed-settings)中的 hook 在任何 mod 的 `tool.call` hook 之前執行,其中一個的區塊是最終的。150您組織的[受管設定](/docs/zh-TW/server-managed-settings)中的 hook 會在任何 mod 的 `tool.call` hook 之前執行,且其中任一個所做的封鎖都是最終決定。

151 151 

152<h4 id="hold-a-tool-call-until-the-user-decides">152<h4 id="hold-a-tool-call-until-the-user-decides">

153 保留工具呼叫直到使用者決定153 暫停工具呼叫,直到使用者做出決定

154</h4>154</h4>

155 155 

156hook 可以暫停工具呼叫並在繼續之前詢問使用者該怎麼做。`tool.call` hook 可以在呼叫 `next` 或傳回之前 `await`,工具呼叫會保持待處理狀態直到那時。若要向使用者提出問題,請呼叫 `$.ui.ask`。它在 Claude 用來詢問您的對話框中的編號選項清單上方顯示您的問題,並解析為使用者選擇的標籤。在您的選項之後,對話框會新增一行用於輸入不同的答案和一個**聊天此項目**行。156hook 可以暫停工具呼叫,並在其繼續之前詢問使用者該怎麼做。`tool.call` hook 可以在呼叫 `next` 或傳回之前先 `await`,而工具呼叫會保持等待狀態直到那時。若要向使用者提出問題,請呼叫 `$.ui.ask`。它會在 Claude 用來詢問您的對話框中,於您的選項編號清單上方顯示您的問題,並解析為使用者所選的標籤。在您的選項之後,對話框會加入一列供輸入其他答案,以及一列 **Chat about this**。

157 157 

158此範例中的 `RISKY` 模式符合 `rm -r`、`rm -rf`、`git reset --hard` 和 `git push` 搭配 `--force`,並且會遺漏其他拼寫,例如 `git push -f`。此模組在執行符合模式的 Bash 命令之前詢問:158此範例中的 `RISKY` 模式會比對 `rm -r`、`rm -rf`、`git reset --hard` 以及帶有 `--force` 的 `git push`,但會漏掉其他寫法,例如 `git push -f`。此模組會在執行符合該模式的 Bash 命令前先詢問:

159 159 

160```javascript theme={null}160```javascript theme={null}

161const RISKY = /\brm\s+-rf?\b|\bgit\s+reset\s+--hard\b|\bgit\s+push\b.*--force/161const RISKY = /\brm\s+-rf?\b|\bgit\s+reset\s+--hard\b|\bgit\s+push\b.*--force/

162 162 

163export function register(on) {163export function register(on) {

164 on('tool.call', { tool: 'Bash' }, async ($, e, next) => {164 on('tool.call', { tool: 'Bash' }, async ($, e, next) => {

165 // 讓每個其他命令通過而不提出問題165 // Let every other command through without a question

166 if (!RISKY.test(e.command)) return next(e)166 if (!RISKY.test(e.command)) return next(e)

167 // 從安全答案開始,因此沒有人回答的問題會拒絕命令167 // Start from the safe answer, so a question nobody answers refuses the command

168 let answer = 'Refuse'168 let answer = 'Refuse'

169 try {169 try {

170 // 工具呼叫在此等待,直到使用者選擇兩個標籤之一170 // The tool call waits here until the user picks one of the two labels

171 answer = await $.ui.ask('Run this command? ' + e.command, ['Run it', 'Refuse'])171 answer = await $.ui.ask('Run this command? ' + e.command, ['Run it', 'Refuse'])

172 } catch {172 } catch {

173 // 使用者關閉了問題,或這是一個沒有人可以詢問的 claude -p 執行173 // The user dismissed the question, or this is a claude -p run with nobody to ask

174 }174 }

175 if (answer !== 'Run it') {175 if (answer !== 'Run it') {

176 // 回答而不呼叫 next,所以命令不會執行176 // Answer without calling next, so the command doesn't run

177 return { deny: 'The user declined this command. Ask before trying a different approach.' }177 return { deny: 'The user declined this command. Ask before trying a different approach.' }

178 }178 }

179 return next(e)179 return next(e)


181}181}

182```182```

183 183 

184當 Claude 嘗試命令(例如 `rm -rf build`)時,問題會出現並帶有命令,命令會等待答案:184當 Claude 嘗試執行如 `rm -rf build` 之類的命令時,會出現包含該命令的問題,而命令會等待答案:

185 185 

186* **使用者選擇執行它**:hook 呼叫 `next(e)`,通常的權限檢查仍在之後執行186* **使用者選擇 Run it**:hook 會呼叫 `next(e)`,之後一般的權限檢查仍會執行

187* **使用者選擇拒絕**:命令不會執行,Claude 讀取 `deny` 文字187* **使用者選擇 Refuse**:命令不會執行,Claude 會讀取 `deny` 文字

188* **使用者輸入答案**:`$.ui.ask` 解析為輸入的文字。hook 將其與 `Run it` 進行比較,因此任何其他文字都會拒絕命令。188* **使用者輸入答案**:`$.ui.ask` 會解析為輸入的文字。hook 會將其與 `Run it` 比較,因此任何其他文字都會拒絕該命令。

189* **沒有人回答**:當使用者關閉問題或選擇**聊天此項目**時,`$.ui.ask` 會拒絕,在 `claude -p` 執行中也是如此,因此 `catch` 區塊將答案保留在 `Refuse`189* **沒有人回答**:當使用者關閉問題或選擇 **Chat about this** 時,以及在 `claude -p` 執行中,`$.ui.ask` 會拒絕(reject),因此 `catch` 區塊會讓答案維持為 `Refuse`

190 190 

191將等待保留在 mods API 呼叫(例如 `$.ui.ask`)內,因為該時間不計入 hook 的[10 秒時間限制](/docs/zh-TW/plugins/mods/reference#limits)。花費在等待您自己的承諾上的時間確實計入。Claude Code 會跳過超時的 hook,因此保留的命令會執行。191請將等待保留在如 `$.ui.ask` 之類的 mods API 呼叫中,因為這段時間不會計入 hook 的[時間限制](/docs/zh-TW/plugins/mods/reference#limits)。等待您自己的 promise 所花費的時間則會計入。Claude Code 會略過逾時的 hook,因此被暫停的命令將會執行。

192 

193<h4 id="approve-or-refuse-a-tool-call-before-the-user-is-asked">

194 在詢問使用者之前核准或拒絕工具呼叫

195</h4>

196 

197若要決定工具呼叫是否可以執行,請處理 [`tool.check`](/docs/zh-TW/plugins/mods/reference#tools),這是 Claude Code 做出該決定的事件。它會在權限規則和設定 hook 做出決定之後觸發,而 `next(e)` 會解析為它們的決定:`allow`、`ask` 或 `deny`。您的 hook 會傳回該決定或不同的決定。`e.input` 保存工具的引數,例如 Bash 的 `command`。

198 

199對於固定的命令或路徑,請使用[權限規則](/docs/zh-TW/permissions#permission-rule-syntax),例如 `Bash(npm test)`,不需要撰寫程式碼。當決定取決於當下的狀況時,例如目前的 Git 分支或另一個 hook 記錄的值,請處理 `tool.check`。

200 

201此 hook 會在目前分支為 `main` 時拒絕 `git push`:

202 

203```javascript theme={null}

204on('tool.check', { tool: 'Bash' }, async ($, e, next) => {

205 // What the permission rules and settings hooks decided: 'allow', 'ask', or 'deny'

206 const decided = await next(e)

207 if (!e.input.command.includes('git push')) return decided

208 const branch = await $.process.run(['git', 'branch', '--show-current'])

209 if (branch.stdout.trim() !== 'main') return decided

210 return { decision: 'deny', reason: 'Push from a branch other than main' }

211})

212```

213 

214在 `main` 上,即使有規則允許 `git push`,hook 仍會傳回 `deny`。在其他分支上以及對於其他命令,該呼叫會得到與沒有 mod 時相同的決定。

215 

216此 hook 比對的是命令的文字,因此請將其視為給 Claude 的提醒。若要對所有人封鎖推送至 `main`,請在您的 Git 主機上保護該分支。

217 

218hook 可以傳回 `allow`、`ask` 或 `deny`,因此它也可以核准受管設定以外的 `PreToolUse` hook 所封鎖的呼叫。[使用 hook 擴充權限](/docs/zh-TW/permissions#extend-permissions-with-hooks)列出了哪些決定的優先順序高於 mod。

192 219 

193<h3 id="rewrite-or-add-to-a-prompt">220<h3 id="rewrite-or-add-to-a-prompt">

194 重寫或新增至提示221 改寫或補充提示詞

195</h3>222</h3>

196 223 

197`prompt.submit` hook 在回合開始之前看到每個提示,因此它可以重寫文字或新增至文字。`e.text` 是輸入的內容。224`prompt.submit` hook 會在回合開始之前看到每個提示詞,因此可以改寫文字或加入內容。`e.text` 是輸入的內容。

198 225 

199| 若要執行此操作 | 傳回此項 |226| 若要執行此操作 | 請傳回 |

200| :- | :- |227| :- | :- |

201| 重寫提示。文字記錄中的訊息顯示新文字。 | `next({ ...e, text: newText })` |228| 改寫提示詞。逐字稿中的訊息會顯示新文字。 | `next({ ...e, text: newText })` |

202| 新增僅 Claude 讀取的文字,在提示之後 | `next({ ...e, context: [...(e.context ?? []), extraText] })` |229| 在提示詞之後加入只有 Claude 會讀取的文字 | `next({ ...e, context: [...(e.context ?? []), extraText] })` |

203| 停止傳送提示 | `{ drop: 'the reason' }` |230| 阻止送出提示詞 | `{ drop: 'the reason' }` |

204 231 

205此 hook 在提示提及提取要求時為 Claude 新增目前分支名稱:232每當提示詞提及 pull request 時,此 hook 就會為 Claude 加入目前的分支名稱:

206 233 

207```javascript theme={null}234```javascript theme={null}

208on('prompt.submit', async ($, e, next) => {235on('prompt.submit', async ($, e, next) => {

209 // 將不提及提取要求的提示按原樣傳遞236 // Pass on a prompt that doesn't mention a pull request as it is

210 if (!/\bPR\b|pull request/i.test(e.text)) return next(e)237 if (!/\bPR\b|pull request/i.test(e.text)) return next(e)

211 const git = await $.process.run(['git', 'branch', '--show-current'])238 const git = await $.process.run(['git', 'branch', '--show-current'])

212 // 在 git 存放庫外,命令失敗,因此沒有分支可新增239 // Outside a git repository the command fails, so there's no branch to add

213 if (git.exitCode !== 0) return next(e)240 if (git.exitCode !== 0) return next(e)

214 // 保留較早的 hook 新增的任何內容,並為 Claude 新增一行241 // Keep any context an earlier hook added, and add one more line for Claude

215 return next({ ...e, context: [...(e.context ?? []), 'Current branch: ' + git.stdout.trim()] })242 return next({ ...e, context: [...(e.context ?? []), 'Current branch: ' + git.stdout.trim()] })

216})243})

217```244```

218 245 

219當您傳送提示(例如 `open a PR for this change`)時,您的訊息在文字記錄中看起來相同,Claude 也會在其後讀取一行,例如 `Current branch: feature/auth`。不提及提取要求的提示會原封不動地通過,`git` 不會執行。246當您送出如 `open a PR for this change` 之類的提示詞時,您的訊息在逐字稿中看起來不變,而 Claude 還會在其後讀到如 `Current branch: feature/auth` 之類的一行。未提及 pull request 的提示詞會原封不動地通過,且不會執行 `git`。

220 247 

221[其他事件](/docs/zh-TW/plugins/mods/reference#prompts-and-what-claude-reads)涵蓋 Claude 讀取的其餘內容:`prompt.section` 用於系統提示的每個部分,`prompt.context` 用於與第一條訊息一起傳送的內容,以及 `skill.prompt` 用於技能的文字。來自這些 hook 的文字在請求之間變更時會[使提示快取失效](/docs/zh-TW/prompt-caching)。248[其他事件](/docs/zh-TW/plugins/mods/reference#prompts-and-what-claude-reads)涵蓋 Claude 讀取的其餘內容:`prompt.section` 用於系統提示詞的每個區段,`prompt.context` 用於隨第一則訊息送出的上下文,而 `skill.prompt` 用於 skill 的文字。來自這些 hook、且在請求之間有所變動的文字,會[使提示快取失效](/docs/zh-TW/prompt-caching)。

222 249 

223<h3 id="follow-a-turn">250<h3 id="follow-a-turn">

224 追蹤回合251 追蹤回合

225</h3>252</h3>

226 253 

227回合是 Claude 為回應一個提示而執行的所有操作。Hook `turn.start`、`turn.step` 和 `turn.complete` 以追蹤一個:254回合是 Claude 為回應一個提示詞所做的一切。處理 `turn.start`、`turn.step` 和 `turn.complete` 即可追蹤回合:

228 255 

229| 事件 | 何時觸發 | hook 可以執行的操作 |256| 事件 | 觸發時機 | hook 可以做什麼 |

230| :- | :- | :- |257| :- | :- | :- |

231| `turn.start` | 回合開始 | 觀察。`e.turnId` 在其他兩個事件中識別回合。 |258| `turn.start` | 回合開始時 | 觀察。`e.turnId` 會在另外兩個事件中識別該回合。 |

232| `turn.step` | Claude Code 即將向模型發送一個請求。具有工具呼叫的回合有多個。`e.agentId` 針對子代理程式的請求進行設定。 | 讀取每個請求的令牌使用情況,使用 `next({ ...e, model })` 將其傳送到不同的模型,或在不呼叫模型的情況下回答 |259| `turn.step` | Claude Code 即將向模型送出一個請求時。包含工具呼叫的回合會有多個請求。subagent 的請求會設定 `e.agentId`。 | 讀取每個請求的 token 使用量、使用 `next({ ...e, model })` 將其送往不同的模型,或在不呼叫模型的情況下自行回應 |

233| `turn.complete` | 回合結束,包括使用者中斷的回合,其中 `e.isAborted` 為 `true`。`e.answer` 是 Claude 的最終文字,`e.durationMs` 是花費的時間,`e.usage` 是回合的令牌總計。子代理程式的回合會以 `e.agentId` 設定的方式觸發它。 | 觀察,或傳回具有 `text` 欄位的物件,例如 `{ text: 'Done in 12 seconds' }`,以在答案下方顯示一行 |260| `turn.complete` | 回合結束時,包括使用者中斷的回合,此時 `e.isAborted` 為 `true`。`e.answer` 是 Claude 的最終文字,`e.durationMs` 是所花費的時間,`e.usage` 是該回合的 token 總數。subagent 的回合觸發此事件時會設定 `e.agentId`。 | 觀察,或傳回具有 `text` 欄位的物件(例如 `{ text: 'Done in 12 seconds' }`),以在答案下方顯示一行文字 |

234 261 

235將 `turn.step` hook 寫成非同步產生器,因為事件會串流。`yield* next(e)` 在串流時轉發回應並評估為完成的結果。此 hook 記錄每個請求中有多少來自[提示快取](/docs/zh-TW/prompt-caching)的 Claude API:262請將 `turn.step` hook 撰寫為非同步產生器(async generator),因為此事件是串流的。`yield* next(e)` 會在串流時轉送回應,並求值為最終結果。此 hook 會記錄每個請求中有多少是由 Claude API 從[提示快取](/docs/zh-TW/prompt-caching)提供:

236 263 

237```javascript theme={null}264```javascript theme={null}

238// function* 使 hook 成為產生器,可以逐段傳遞回應265// function* makes the hook a generator, which can pass the response on piece by piece

239on('turn.step', async function* ($, e, next) {266on('turn.step', async function* ($, e, next) {

240 // 傳送請求,在每個片段到達時轉發它,並保留完成的結果267 // Send the request, forward each piece as it arrives, and keep the finished result

241 const result = yield* next(e)268 const result = yield* next(e)

242 // 跳過不報告令牌計數的結果269 // Skip a result that reports no token counts

243 if (result.usage) {270 if (result.usage) {

244 $.ui.log('cache read ' + result.usage.cache_read_input_tokens + ' · wrote ' + result.usage.cache_creation_input_tokens)271 $.ui.log('cache read ' + result.usage.cache_read_input_tokens + ' · wrote ' + result.usage.cache_creation_input_tokens)

245 }272 }

246 // 傳回結果不變,以便回合照常繼續273 // Return the result unchanged, so the turn continues as usual

247 return result274 return result

248})275})

249```276```

250 277 

251Claude 的回應會串流到螢幕,就像沒有 mod 時一樣。每個請求完成後,文字記錄中的暗淡行會給出從快取讀取的令牌數和寫入的令牌數。具有工具呼叫的回合有多個請求,因此它會新增多行。278Claude 的回應會像沒有 mod 時一樣串流至畫面。每個請求完成後,逐字稿中會出現一行淡色文字,列出從快取讀取的 token 數量以及寫入快取的 token 數量。包含工具呼叫的回合會有多個請求,因此會加入多行。

252 279 

253`result.usage` 保留 Claude API 為請求報告的四個令牌計數,加上回答的 `model`:`input_tokens`、`output_tokens`、`cache_read_input_tokens` 和 `cache_creation_input_tokens`。hook 也針對子代理程式的請求執行,因此當您只想要主要對話時,請檢查 `e.agentId`。280`result.usage` 保存 Claude API 為請求回報的 token 計數,以及回應的 `model`:`input_tokens`、`output_tokens`、`cache_read_input_tokens` 和 `cache_creation_input_tokens`。此 hook 也會針對 subagent 的請求執行,因此若您只想要主要對話,請檢查 `e.agentId`。

254 281 

255<h3 id="hook-the-settings-hook-events">282<h3 id="hook-the-settings-hook-events">

256 Hook 設定 hook 事件283 處理設定 hook 事件

257</h3>284</h3>

258 285 

259設定 hook 是您在設定檔中設定的命令、HTTP、提示和代理程式 hook。每個[設定 hook 事件](/docs/zh-TW/hooks#hook-events)(例如 `Stop`、`SessionEnd` 或 `PostToolUse`)也是一個名為 `classic.` 後跟設定 hook 事件名稱的事件,例如 `classic.Stop`。`e` 是設定 hook 在 stdin 上接收的 JSON,包括 `transcript_path`。286設定 hook 是您在設定檔中設定的 command、HTTP、prompt 和 agent hook。每個[設定 hook 事件](/docs/zh-TW/hooks#hook-events),例如 `Stop`、`SessionEnd` 或 `PostToolUse`,也是一個名為 `classic.` 後接該設定 hook 事件名稱的事件,例如 `classic.Stop`。`e` 是設定 hook 在 stdin 上收到的 JSON,包括 `transcript_path`。

260 287 

261此 hook 使用 `Stop`(在 Claude 完成回應時觸發)來記錄工作階段的文字記錄的儲存位置:288此 hook 使用在 Claude 完成回應時觸發的 `Stop`,來記錄工作階段逐字稿的儲存位置:

262 289 

263```javascript theme={null}290```javascript theme={null}

264on('classic.Stop', async ($, e, next) => {291on('classic.Stop', async ($, e, next) => {

265 // e 具有設定檔中的 Stop hook 從 stdin 讀取的相同欄位292 // e has the same fields a Stop hook in a settings file reads from stdin

266 $.ui.log('Transcript saved at ' + e.transcript_path)293 $.ui.log('Transcript saved at ' + e.transcript_path)

267 // 傳遞事件,以便設定檔中的 Stop hook 仍然執行294 // Pass the event on, so Stop hooks in your settings files still run

268 return next(e)295 return next(e)

269})296})

270```297```

271 298 

272每次 Claude 完成回應時,文字記錄中的暗淡行會給出文字記錄檔案的路徑。hook 傳回 `next(e)`,因此它觀察事件並不改變回合結束的方式。299每次 Claude 完成回應時,逐字稿中會出現一行淡色文字,列出逐字稿檔案的路徑。此 hook 傳回 `next(e)`,因此它只觀察事件,不會改變回合結束的方式。

273 300 

274<h2 id="run-alongside-other-mods">301<h2 id="run-alongside-other-mods">

275 與其他 mod 並行執行302 與其他 mod 並行執行

276</h2>303</h2>

277 304 

278多個 mod 可以 hook 相同的事件,其中任何一個都可能失敗。如果您的 mod 阻止工具呼叫,請檢查其在鏈中的位置以及其 hook 失敗時會發生什麼。305多個 mod 可以處理相同的事件,其中任何一個都可能失敗。如果您的 mod 阻止工具呼叫,請檢查其在鏈中的位置以及其 hook 失敗時會發生什麼。

279 306 

280<h3 id="the-order-mods-run-in">307<h3 id="the-order-mods-run-in">

281 mod 執行的順序308 mod 執行的順序


301* **來自受管設定的 `PreToolUse` hook**:在第一個 mod 的 `tool.call` hook 之前執行,其中一個的區塊是最終的,因此沒有 mod 看到呼叫。328* **來自受管設定的 `PreToolUse` hook**:在第一個 mod 的 `tool.call` hook 之前執行,其中一個的區塊是最終的,因此沒有 mod 看到呼叫。

302* **來自每個其他設定檔和外掛程式 `hooks/hooks.json` 的 `PreToolUse` hook**:在最後一個 mod 呼叫 `next` 後執行,作為 Claude Code 自己行為的一部分。回答 `tool.call` 而不呼叫 `next` 的 mod 會阻止它們執行,呼叫 `next` 的 mod 會在它傳回的結果中看到它們的決定。329* **來自每個其他設定檔和外掛程式 `hooks/hooks.json` 的 `PreToolUse` hook**:在最後一個 mod 呼叫 `next` 後執行,作為 Claude Code 自己行為的一部分。回答 `tool.call` 而不呼叫 `next` 的 mod 會阻止它們執行,呼叫 `next` 的 mod 會在它傳回的結果中看到它們的決定。

303 330 

304[`tool.check`](/docs/zh-TW/plugins/mods/reference#tools) 是 Claude Code 決定是否允許工具呼叫執行的事件。它在這些 hook 和權限規則決定後觸發,`next(e)` 解析為它們的決定。`tool.check` 上的 hook 可以傳回不同的決定,例如 `{ decision: 'allow' }`,因此它可以批准第二組中的 hook 阻止的呼叫。[使用 hook 擴展權限](/docs/zh-TW/permissions#extend-permissions-with-hooks)列出哪些決定優先於 mod。331[`tool.check`](#approve-or-refuse-a-tool-call-before-the-user-is-asked) 在這些 hook 和權限規則決定後觸發,因此其上的 hook 可以批准第二組中的 hook 所阻止的呼叫。

305 332 

306<h3 id="handle-a-hook-that-fails">333<h3 id="handle-a-hook-that-fails">

307 處理失敗的 hook334 處理失敗的 hook


324})351})

325```352```

326 353 

327當 `guard` 有效時,處理程式永遠不會執行。當 `guard` 在 Bash 呼叫上擲回或超時時,Claude Code 使用相同的事件呼叫處理程式。處理程式傳回 `{ deny }`,因此命令不會執行,Claude 讀取末尾帶有 `throw` 或 `timeout` 的文字。沒有處理程式,Claude Code 會跳過 `guard` 並執行命令。處理程式有[一秒](/docs/zh-TW/plugins/mods/reference#limits)來回答。354當 `guard` 有效時,處理程式永遠不會執行。當 `guard` 在 Bash 呼叫上擲回或逾時時,Claude Code 使用相同的事件呼叫處理程式。處理程式傳回 `{ deny }`,因此命令不會執行,Claude 讀取末尾帶有 `throw` 或 `timeout` 的文字。沒有處理程式,Claude Code 會跳過 `guard` 並執行命令。處理程式有其自己較短的[時間限制](/docs/zh-TW/plugins/mods/reference#limits)。

328 355 

329<h2 id="next-steps">356<h2 id="next-steps">

330 後續步驟357 後續步驟

Details

6 6 

7> 從 Claude Code mod 繪製窗格、提示上方的帶狀區域、按鈕和文字欄位,處理按下和輸入,並在重新繪製和工作階段之間保持狀態。7> 從 Claude Code mod 繪製窗格、提示上方的帶狀區域、按鈕和文字欄位,處理按下和輸入,並在重新繪製和工作階段之間保持狀態。

8 8 

9mod 可以在 Claude Code 中繪製自己的介面,並更改 Claude Code 已經繪製的介面部分。mod 可以繪製的每個位置稱為[渲染位置](/docs/zh-TW/plugins/mods/reference#render-sites),例如窗格、提示上方的帶狀區域或微調器。Claude Code 在即將繪製渲染位置時會引發 [`ui.render`](/docs/zh-TW/plugins/mods/reference#interface) 事件,而您對該事件的鉤子會返回要在那裡繪製的內容。9mod 可以在 Claude Code 中繪製自己的介面,並更改 Claude Code 已經繪製的介面部分。mod 可以繪製的每個位置稱為[渲染位置](/docs/zh-TW/plugins/mods/reference#render-sites),例如窗格、提示上方的帶狀區域或微調器。Claude Code 在即將繪製渲染位置時會引發 [`ui.render`](/docs/zh-TW/plugins/mods/reference#interface) 事件,而您對該事件的 hook 會回傳要在那裡繪製的內容。

10 10 

11此地圖顯示 mod 可以在終端工作階段中的繪製位置:11此地圖顯示 mod 可以在終端機工作階段中的繪製位置:

12 12 

13<img src="https://mintcdn.com/claude-code/dgiVO_Od1X1faduV/images/mods-screen-map.svg?fit=max&auto=format&n=dgiVO_Od1X1faduV&q=85&s=5fda26b6609c62b68c6f9e528c1590ea" className="dark:hidden" alt="Claude Code 終端工作階段的地圖。mod 可以在右側新增窗格作為側邊欄、在文字記錄右上角新增快顯通知、在文字記錄中新增日誌行、在提示上方新增帶狀區域,以及在提示下方新增狀態行。mod 可以重新繪製訊息、工具呼叫列和微調器。提示是 Claude Code 自己的。" width="600" height="336" data-path="images/mods-screen-map.svg" />13<img src="https://mintcdn.com/claude-code/dgiVO_Od1X1faduV/images/mods-screen-map.svg?fit=max&auto=format&n=dgiVO_Od1X1faduV&q=85&s=5fda26b6609c62b68c6f9e528c1590ea" className="dark:hidden" alt="Claude Code 終端機工作階段的地圖。mod 可以在右側新增窗格作為側邊欄、在逐字稿右上角新增快顯通知、在逐字稿中新增日誌行、在提示上方新增帶狀區域,以及在提示下方新增狀態列。mod 可以重新繪製訊息、工具呼叫列和微調器。提示是 Claude Code 自己的。" width="600" height="336" data-path="images/mods-screen-map.svg" />

14 14 

15<img src="https://mintcdn.com/claude-code/dgiVO_Od1X1faduV/images/mods-screen-map-dark.svg?fit=max&auto=format&n=dgiVO_Od1X1faduV&q=85&s=5b4161581a1bd2c0450b0c8b57bc1225" className="hidden dark:block" alt="Claude Code 終端工作階段的地圖。mod 可以在右側新增窗格作為側邊欄、在文字記錄右上角新增快顯通知、在文字記錄中新增日誌行、在提示上方新增帶狀區域,以及在提示下方新增狀態行。mod 可以重新繪製訊息、工具呼叫列和微調器。提示是 Claude Code 自己的。" width="600" height="336" data-path="images/mods-screen-map-dark.svg" />15<img src="https://mintcdn.com/claude-code/dgiVO_Od1X1faduV/images/mods-screen-map-dark.svg?fit=max&auto=format&n=dgiVO_Od1X1faduV&q=85&s=5b4161581a1bd2c0450b0c8b57bc1225" className="hidden dark:block" alt="Claude Code 終端機工作階段的地圖。mod 可以在右側新增窗格作為側邊欄、在逐字稿右上角新增快顯通知、在逐字稿中新增日誌行、在提示上方新增帶狀區域,以及在提示下方新增狀態列。mod 可以重新繪製訊息、工具呼叫列和微調器。提示是 Claude Code 自己的。" width="600" height="336" data-path="images/mods-screen-map-dark.svg" />

16 16 

17在較窄的終端中,窗格位於提示上方而不是文字記錄旁邊。17在較窄的終端機中,窗格位於提示上方而不是逐字稿旁邊。

18 18 

19在開始之前,請先建立您的[第一個 mod](/docs/zh-TW/plugins/mods/create)。從已完成的範例開始,該範例建立一個具有兩個標籤和計數器的窗格,然後閱讀您想要更改的每個部分的部分。19在開始之前,請先建立您的[第一個 mod](/docs/zh-TW/plugins/mods/create)。從已完成的範例開始,該範例建立一個具有兩個標籤和計數器的窗格,然後閱讀您想要更改的每個部分的對應章節。

20 20 

21<Note>21<Note>

22 若要查詢一個屬性或限制,請參閱[參考](/docs/zh-TW/plugins/mods/reference#render-sites)。22 若要查詢一個屬性或限制,請參閱[參考](/docs/zh-TW/plugins/mods/reference#render-sites)。


26 建立具有標籤的窗格26 建立具有標籤的窗格

27</h2>27</h2>

28 28 

29在本部分中,您將建立一個 mod,該 mod 新增 `/hello-tabs` 命令,該命令會開啟一個窗格。窗格是在寬全螢幕終端中文字記錄旁邊的側邊欄,或在其他情況下是提示上方的框架區域。此窗格顯示兩個標籤,第二個標籤有一個按鈕,可將計數器加一。重新啟動 Claude Code 後,計數仍然存在。29在本部分中,您將建立一個 mod,該 mod 新增 `/hello-tabs` 命令,該命令會開啟一個窗格。窗格是在寬全螢幕終端機中逐字稿旁邊的側邊欄,或在其他情況下是提示上方的框架區域。此窗格顯示兩個標籤,第二個標籤有一個按鈕,可將計數器加一。重新啟動 Claude Code 後,計數仍然存在。

30 30 

31完成的 mod 看起來像這樣。錄製會開啟窗格、切換到第二個標籤、按幾次按鈕,然後返回第一個標籤:31完成的 mod 看起來像這樣。錄製會開啟窗格、切換到第二個標籤、按幾次按鈕,然後返回第一個標籤:

32 32 


36 <video autoPlay muted loop playsInline controls className="w-full hidden dark:block" src="https://mintcdn.com/claude-code/dgiVO_Od1X1faduV/images/mods-hello-tabs-dark.mp4?fit=max&auto=format&n=dgiVO_Od1X1faduV&q=85&s=ff7a14d713d6e5d3b0000efa8522ea4b" aria-label="在 Claude Code 提示處輸入 /hello-tabs 命令,一個框架窗格在其上方開啟,頂部有「1: One」和「2: Two」,以及文字「This is the first tab.」。第二個標籤顯示「Add one」按鈕,旁邊是「Count: 1」,計數上升到 3。窗格然後返回第一個標籤。" data-path="images/mods-hello-tabs-dark.mp4" />36 <video autoPlay muted loop playsInline controls className="w-full hidden dark:block" src="https://mintcdn.com/claude-code/dgiVO_Od1X1faduV/images/mods-hello-tabs-dark.mp4?fit=max&auto=format&n=dgiVO_Od1X1faduV&q=85&s=ff7a14d713d6e5d3b0000efa8522ea4b" aria-label="在 Claude Code 提示處輸入 /hello-tabs 命令,一個框架窗格在其上方開啟,頂部有「1: One」和「2: Two」,以及文字「This is the first tab.」。第二個標籤顯示「Add one」按鈕,旁邊是「Count: 1」,計數上升到 3。窗格然後返回第一個標籤。" data-path="images/mods-hello-tabs-dark.mp4" />

37</Frame>37</Frame>

38 38 

39Claude Code 沒有內建的標籤元素,因此標籤是一列中的兩個按鈕。mod 會追蹤哪一個是活動的,並在列下方繪製該標籤的內容。39標籤是一列中的兩個按鈕。mod 會追蹤哪一個是作用中的,並在列下方繪製該標籤的內容。

40 40 

41<Steps>41<Steps>

42 <Step title="建立外掛程式">42 <Step title="建立外掛">

43 mod 是一個具有清單、指向您的程式碼的 `hooks.json` 和程式碼檔案的外掛程式。[建立 mod](/docs/zh-TW/plugins/mods/create#write-a-mod-yourself) 說明了每一個。建立一個名為 `hello-tabs` 的目錄,其中包含 `.claude-plugin` 和 `hooks` 目錄,然後儲存前兩個檔案。43 mod 是一個具有清單、指向您的程式碼的 `hooks.json` 和程式碼檔案的外掛。[建立 mod](/docs/zh-TW/plugins/mods/create#write-a-mod-yourself) 說明了每一個。建立一個名為 `hello-tabs` 的目錄,其中包含 `.claude-plugin` 和 `hooks` 目錄,然後儲存前兩個檔案。

44 44 

45 將清單儲存為 `hello-tabs/.claude-plugin/plugin.json`:45 將清單儲存為 `hello-tabs/.claude-plugin/plugin.json`:

46 46 


63 </Step>63 </Step>

64 64 

65 <Step title="編寫程式碼">65 <Step title="編寫程式碼">

66 程式碼執行三項工作,每個鉤子一項:66 此清單依照各 hook 在程式碼中出現的順序,說明每個 hook 的作用:

67 67 

68 * 新增 `/hello-tabs` 命令68 * 新增 `/hello-tabs` 命令,並載入較早的工作階段儲存的計數

69 * 執行該命令時開啟窗格69 * 執行該命令時開啟窗格

70 * 繪製窗格的內容:標籤列和開啟的標籤的主體70 * 繪製窗格的內容:標籤列和開啟的標籤的主體

71 71 


82 let count = 082 let count = 0

83 83 

84 export function register(on) {84 export function register(on) {

85 // 在您的第一個提示之前執行,並在重新載入後再次執行85 // 在您的第一個提示詞之前執行,並在重新載入後再次執行

86 on('session.start', async ($, e, next) => {86 on('session.start', async ($, e, next) => {

87 await $.command.register({ name: 'hello-tabs', description: 'Open the hello-tabs pane' })87 await $.command.register({ name: 'hello-tabs', description: 'Open the hello-tabs pane' })

88 // 載入較早的工作階段儲存的計數(如果有的話)88 // 載入較早的工作階段儲存的計數(如果有的話)


95 on('command.run', { command: 'hello-tabs' }, async ($) => {95 on('command.run', { command: 'hello-tabs' }, async ($) => {

96 // 開啟窗格,給它鍵盤焦點,並讓 Esc 關閉它96 // 開啟窗格,給它鍵盤焦點,並讓 Esc 關閉它

97 await $.ui.open({ id: PANE, title: 'Hello tabs', focus: true, closeOnEscape: true })97 await $.ui.open({ id: PANE, title: 'Hello tabs', focus: true, closeOnEscape: true })

98 // 在文字記錄中不列印任何內容98 // 在逐字稿中不列印任何內容

99 return {}99 return {}

100 })100 })

101 101 


105 if (e.requestId !== PANE) return next(e)105 if (e.requestId !== PANE) return next(e)

106 // 取得此應用程式可以繪製的元素106 // 取得此應用程式可以繪製的元素

107 const { Box, Text, Button } = $.ui.resolve(e)107 const { Box, Text, Button } = $.ui.resolve(e)

108 // 要求 Claude Code 再次執行此鉤子108 // 要求 Claude Code 再次執行此 hook

109 const redraw = () => $.ui.invalidate('ui.render')109 const redraw = () => $.ui.invalidate('ui.render')

110 110 

111 // 一個標籤:一個按鈕,按下時切換到其標籤111 // 一個標籤:一個按鈕,按下時切換到其標籤


165 }165 }

166 ```166 ```

167 167 

168 每個鉤子也執行程式碼沒有明確說明的事情:168 每個 hook 也執行程式碼沒有明確說明的事情:

169 169 

170 * **[`session.start`](/docs/zh-TW/plugins/mods/reference#session)** 也從 [`$.store`](#keep-state) 讀取儲存的計數,這是一個在工作階段之間持續的鍵值存放區。170 * **[`session.start`](/docs/zh-TW/plugins/mods/reference#session)** 也從 [`$.store`](#keep-state) 讀取儲存的計數,這是一個在工作階段之間持續的鍵值存放區。

171 * **[`command.run`](/docs/zh-TW/plugins/mods/api#add-a-command)** 只告訴 Claude Code 窗格存在。開啟窗格本身不會繪製任何內容:Claude Code 然後引發 `ui.render` 以詢問其中應該放什麼。171 * **[`command.run`](/docs/zh-TW/plugins/mods/api#add-a-command)** 只告訴 Claude Code 窗格存在。開啟窗格本身不會繪製任何內容:Claude Code 然後引發 `ui.render` 以詢問其中應該放什麼。

172 * **`ui.render`** 返回元素樹,一個包含其他框、文字和按鈕的 `Box`,並每次從 `tab` 和 `count` 重新建立它。172 * **`ui.render`** 返回元素樹,一個包含其他框、文字和按鈕的 `Box`,並每次從 `tab` 和 `count` 重新建立它。

173 173 

174 按下按鈕會執行其 `onPress` 回呼,該回呼會更改變數並呼叫 `redraw`。Claude Code 然後再次執行 `ui.render` 鉤子,該鉤子從新值建立新樹。每個互動式繪製都使用該渲染週期:回呼更改狀態,鉤子從新狀態重新渲染。174 按下按鈕會執行其 `onPress` 回呼,該回呼會更改變數並呼叫 `redraw`。Claude Code 然後再次執行 `ui.render` hook,該 hook 從新值建立新樹。每個互動式繪製都使用該渲染週期:回呼更改狀態,hook 從新狀態重新渲染。

175 </Step>175 </Step>

176 176 

177 <Step title="開啟窗格">177 <Step title="開啟窗格">


189 選擇繪製位置189 選擇繪製位置

190</h2>190</h2>

191 191 

192`ui.render` 鉤子為每個渲染位置執行,除非您將其縮小到您想要繪製的位置。若要選擇渲染位置,請傳遞一個稱為[匹配器](/docs/zh-TW/plugins/mods/events#filter-which-events-a-hook-handles)的篩選器作為 `on` 的第二個引數。`{ component: 'Pane' }` 只為窗格執行鉤子。在鉤子中,`e.component` 命名位置,`e.surface` 說明哪個應用程式在繪製,`e.props` 保持位置自己的資料。對於窗格,`e.requestId` 是您用來開啟它的 `id`。192`ui.render` hook 為每個渲染位置執行,除非您將其縮小到您想要繪製的位置。若要選擇渲染位置,請傳遞一個稱為 [matcher](/docs/zh-TW/plugins/mods/events#filter-which-events-a-hook-handles) 的篩選器作為 `on` 的第二個引數。`{ component: 'Pane' }` 只為窗格執行 hook。在 hook 中,`e.component` 命名位置,`e.surface` 說明哪個應用程式在繪製,`e.props` 保持位置自己的資料。對於窗格,`e.requestId` 是您用來開啟它的 `id`。

193 193 

194兩個位置在 mod 填充它們之前是空的,窗格和帶狀區域。選擇一個標籤以查看每個位置是什麼以及如何在其中繪製:194窗格和帶狀區域在 mod 填充它們之前是空的。選擇一個標籤以查看每個位置是什麼以及如何在其中繪製:

195 195 

196<Tabs>196<Tabs>

197 <Tab title="Pane">197 <Tab title="Pane">

198 窗格是在寬全螢幕終端中文字記錄旁邊的側邊欄,或在其他情況下是提示上方的框架區域。開啟多個窗格時,每個窗格都會獲得一個顯示其標題的標籤。198 窗格是在寬全螢幕終端機中逐字稿旁邊的側邊欄,或在其他情況下是提示詞上方的框架區域。開啟多個窗格時,每個窗格都會獲得一個顯示其標題的標籤。

199 199 

200 當您的 mod 使用您選擇的 `id` 呼叫 `$.ui.open` 時,窗格會出現,如 `$.ui.open({ id: 'hello-tabs' })`。[在正確的時間開啟窗格](#open-a-pane-at-the-right-time)涵蓋其他欄位以及窗格何時等待更寬的終端。200 當您的 mod 使用您選擇的 `id` 呼叫 `$.ui.open` 時,窗格會出現,如 `$.ui.open({ id: 'hello-tabs' })`。[在正確的時間開啟窗格](#open-a-pane-at-the-right-time)涵蓋其他欄位以及窗格何時等待更寬的終端機。

201 201 

202 若要在您的窗格中繪製,請篩選 `{ component: 'Pane' }` 並檢查 `e.requestId` 是否為您的 `id`。202 若要在您的窗格中繪製,請篩選 `{ component: 'Pane' }` 並檢查 `e.requestId` 是否為您的 `id`。

203 </Tab>203 </Tab>

204 204 

205 <Tab title="Band above the prompt">205 <Tab title="Band above the prompt">

206 帶狀區域是直接在提示輸入上方的條帶。它始終存在,每個 mod 都共享它。206 帶狀區域是直接在提示詞輸入上方的條帶。它始終存在,每個 mod 都共享它。

207 207 

208 您的鉤子返回一棵樹以在帶狀區域中顯示某些內容,或返回 `next(e)` 以不顯示任何內容。樹會替換 mod [在您之後](/docs/zh-TW/plugins/mods/events#the-order-mods-run-in)在那裡繪製的內容。若要保持他們的內容,請將 `await next(e)` 的結果放在您樹中 [`Box`](#build-a-tree-from-elements) 的子項中。208 您的 hook 返回一棵樹以在帶狀區域中顯示某些內容,或返回 `next(e)` 以不顯示任何內容。樹會替換 mod [在您之後](/docs/zh-TW/plugins/mods/events#the-order-mods-run-in)在那裡繪製的內容。若要保持他們的內容,請將 `await next(e)` 的結果放在您樹中 [`Box`](#build-a-tree-from-elements) 的子項中。

209 209 

210 若要在帶狀區域中繪製,請篩選 `{ component: 'AbovePrompt' }`。210 若要在帶狀區域中繪製,請篩選 `{ component: 'AbovePrompt' }`。

211 </Tab>211 </Tab>


215 更改 Claude Code 已經繪製的內容215 更改 Claude Code 已經繪製的內容

216</h3>216</h3>

217 217 

218Claude Code 自己繪製大部分介面:訊息、工具呼叫列、微調器等。這些部分中的每一個也是一個渲染位置,因此 mod 可以重新設定樣式或替換它。若要更改一個,請在 `ui.render` 鉤子上篩選此表中的其名稱:218Claude Code 自己繪製大部分介面:訊息、工具呼叫列、微調器等。這些部分中的每一個也是一個渲染位置,因此 mod 可以重新設定樣式或替換它。若要更改一個,請在 `ui.render` hook 上篩選此表中的其名稱:

219 219 

220| 位置 | 它是什麼 |220| 位置 | 它是什麼 |

221| :- | :- |221| :- | :- |

222| `UserMessage`, `AssistantMessage` | 文字記錄中的訊息 |222| `UserMessage`, `AssistantMessage` | 逐字稿中的訊息 |

223| `ToolUse`, `ToolResult`, `ToolGroup` | 工具呼叫的列、其結果和折疊的呼叫執行 |223| `ToolUse`, `ToolResult`, `ToolGroup` | 工具呼叫的列、其結果和折疊的呼叫群組 |

224| `CommandOutput` | 命令列印的列 |224| `CommandOutput` | 命令列印的列 |

225| `AskUserQuestion` | Claude 開啟以詢問您問題的對話框 |225| `AskUserQuestion` | Claude 開啟以詢問您問題的對話框 |

226| `Spinner`, `ToolProgress`, `TurnDuration` | 輪次的狀態行:在 Claude 工作時動畫的行、執行中工具的即時進度行,以及關閉輪次的行 |226| `Spinner`, `ToolProgress`, `TurnDuration` | 回合的狀態列:在 Claude 工作時動畫的行、執行中工具的即時進度行,以及關閉回合的行 |

227| `InfoNotice`, `SessionMode`, `PromptHint` | 標誌下的狀態行、頁尾中的模式標籤,以及提示下的提示行 |227| `InfoNotice`, `SessionMode`, `PromptHint` | 標誌下的狀態列、頁尾中的模式標籤,以及提示詞下方的提示行 |

228 228 

229在 Claude Code 已經繪製的位置,您的鉤子有三個選擇:更改詳細資訊、替換繪製或不理會。選擇一個標籤以查看每個應用於微調器的選項。範例讀取另一個鉤子計數的 `calls` 變數,如[教學 mod](/docs/zh-TW/plugins/mods/create#write-a-mod-yourself) 中所示。229在 Claude Code 已經繪製的位置,您的 hook 可以更改詳細資訊、替換繪製或不理會。選擇一個標籤以查看每個應用於微調器的選項。範例讀取另一個 hook 計數的 `calls` 變數,如[教學 mod](/docs/zh-TW/plugins/mods/create#write-a-mod-yourself) 中所示。

230 230 

231<Tabs>231<Tabs>

232 <Tab title="Change a detail">232 <Tab title="Change a detail">

233 若要保持 Claude Code 的繪製並更改其一部分,請將 `next` 傳遞事件的副本,其中 `props` 已更改。此鉤子更改微調器單詞後的文字:233 若要保持 Claude Code 的繪製並更改其一部分,請將 `next` 傳遞事件的副本,其中 `props` 已更改。此 hook 更改微調器單詞後的文字:

234 234 

235 ```javascript theme={null}235 ```javascript theme={null}

236 on('ui.render', { component: 'Spinner' }, async ($, e, next) => {236 on('ui.render', { component: 'Spinner' }, async ($, e, next) => {


247 </Tab>247 </Tab>

248 248 

249 <Tab title="Replace the drawing">249 <Tab title="Replace the drawing">

250 若要在位置的位置繪製您自己的內容,請返回樹並不呼叫 `next`。此鉤子在微調器所在的位置繪製一行文字:250 若要在位置的位置繪製您自己的內容,請返回樹並不呼叫 `next`。此 hook 在微調器所在的位置繪製一行文字:

251 251 

252 ```javascript theme={null}252 ```javascript theme={null}

253 on('ui.render', { component: 'Spinner' }, async ($, e) => {253 on('ui.render', { component: 'Spinner' }, async ($, e) => {


265 </Tab>265 </Tab>

266 266 

267 <Tab title="Leave it alone">267 <Tab title="Leave it alone">

268 若要將位置保留為 Claude Code 繪製的方式,請返回 `next(e)`。鉤子通常對某些事件執行此操作,對其他事件則不執行。此鉤子在沒有要計數的呼叫之前保留微調器:268 若要將位置保留為 Claude Code 繪製的方式,請返回 `next(e)`。hook 通常對某些事件執行此操作,對其他事件則不執行。此 hook 在沒有要計數的呼叫之前保留微調器:

269 269 

270 ```javascript theme={null}270 ```javascript theme={null}

271 on('ui.render', { component: 'Spinner' }, async ($, e, next) => {271 on('ui.render', { component: 'Spinner' }, async ($, e, next) => {


283 </Tab>283 </Tab>

284</Tabs>284</Tabs>

285 285 

286權限提示不是渲染位置,因此 mod 無法更改其顯示的內容。問題對話框 `AskUserQuestion` 是一個,因此 mod 可以更改它。286在這些位置,`next(e)` 會返回對 Claude Code 繪製內容的參照 `{ type: 'engine', ref }`,除非在您之後執行的 mod 返回了它自己的樹。若要更改該繪製中的內容,請將帶有不同 props 的事件副本傳遞給 `next`,如 **Change a detail** 標籤所示。您可以原樣返回該參照,或將其放在 `Box` 中,與您自己的元素並列:

287 287 

288終端和桌面應用程式不會引發所有相同的位置。`Pane`、`AbovePrompt`、`Spinner` 和文字記錄位置在兩者中都有效。其他一些狀態行僅在終端中引發。[渲染位置表](/docs/zh-TW/plugins/mods/reference#render-sites)列出每個位置的引發位置。288```javascript theme={null}

289on('ui.render', { component: 'Spinner' }, async ($, e, next) => {

290 const { Box, Text } = $.ui.resolve(e)

291 const theirs = await next(e)

292 return Box({ flexDirection: 'column', children: [theirs, Text({ children: ['under the spinner'] })] })

293})

294```

295 

296當 Claude 工作時,微調器會像之前一樣顯示動畫,而 `under the spinner` 會出現在其下方。

297 

298權限提示不是渲染位置,因此 mod 無法更改其顯示的內容。問題對話框 `AskUserQuestion` 是渲染位置,因此 mod 可以更改它。對話框的樹必須恰好包含該參照一次,並將您的元素放在其上方。否則,Claude Code 會繪製它自己的對話框。

299 

300終端機和桌面應用程式不會引發所有相同的位置。`Pane`、`AbovePrompt`、`Spinner` 和逐字稿位置在兩者中都有效。其他一些狀態列僅在終端機中引發。[渲染位置表](/docs/zh-TW/plugins/mods/reference#render-sites)列出每個位置的引發位置。

289 301 

290<h3 id="open-a-pane-at-the-right-time">302<h3 id="open-a-pane-at-the-right-time">

291 在正確的時間開啟窗格303 在正確的時間開啟窗格

292</h3>304</h3>

293 305 

294窗格只在您的 mod 開啟它時出現。您如何以及何時開啟它決定了它是否獲得鍵盤焦點、它要求多少空間,以及它是否在狹窄的終端中顯示。306窗格只在您的 mod 開啟它時出現。您如何以及何時開啟它決定了它是否獲得鍵盤焦點、它請求多少空間,以及它是否在狹窄的終端機中顯示。

295 307 

296若要開啟窗格,請使用您選擇的 `id` 呼叫 [`$.ui.open`](/docs/zh-TW/plugins/mods/reference#mods-api-methods)。`id` 是窗格的名稱:您的 `ui.render` 鉤子檢查它,您再次傳遞它以關閉窗格。308若要開啟窗格,請使用您選擇的 `id` 呼叫 [`$.ui.open`](/docs/zh-TW/plugins/mods/reference#mods-api-methods)。`id` 是窗格的名稱:您的 `ui.render` hook 檢查它,您再次傳遞它以關閉窗格。

297 309 

298```javascript theme={null}310```javascript theme={null}

299await $.ui.open({ id: 'hello-tabs', title: 'Hello tabs', focus: true })311await $.ui.open({ id: 'hello-tabs', title: 'Hello tabs', focus: true })


310| 欄位 | 它執行的操作 |322| 欄位 | 它執行的操作 |

311| :- | :- |323| :- | :- |

312| `title` | 開啟多個窗格時窗格的標籤標籤 |324| `title` | 開啟多個窗格時窗格的標籤標籤 |

313| `focus` | 要求[鍵盤焦點](#know-which-keys-your-mod-can-receive) |325| `focus` | 請求[鍵盤焦點](#know-which-keys-your-mod-can-receive) |

314| `closeOnEscape` | 使 Esc 關閉窗格 |326| `closeOnEscape` | 使 Esc 關閉窗格 |

315| `holdToasts` | 保持快顯通知,來自 [`$.ui.toast`](/docs/zh-TW/plugins/mods/api#show-something-without-starting-a-turn) 的小通知,直到窗格關閉 |327| `holdToasts` | 保持快顯通知,來自 [`$.ui.toast`](/docs/zh-TW/plugins/mods/api#show-something-without-starting-a-turn) 的小通知,直到窗格關閉 |

316| `rows` | 當窗格位於提示上方時要求的高度。預設值是空間的三分之一。 |328| `rows` | 當窗格位於提示詞上方時請求的高度。預設值是空間的三分之一。 |

317| `columns` | 當窗格位於文字記錄旁邊時要求的寬度 |329| `columns` | 當窗格位於逐字稿旁邊時請求的寬度 |

318 330 

319`focus`、`closeOnEscape` 和 `holdToasts` 是可選的,只接受 `true`。若要省略其中一個,請將其省略。傳遞 `false` 會擲回錯誤,例如 `ui.open: focus is true or left out`。若要有條件地設定其中一個,請只在條件成立時新增欄位。此呼叫只在 `items` 不為空時要求鍵盤焦點:331`focus`、`closeOnEscape` 和 `holdToasts` 是可選的,只接受 `true`。若要省略其中一個,請將其省略。傳遞 `false` 會擲回錯誤,例如 `ui.open: focus is true or left out`。若要有條件地設定其中一個,請只在條件成立時新增欄位。此呼叫只在 `items` 不為空時請求鍵盤焦點:

320 332 

321```javascript theme={null}333```javascript theme={null}

322const pane = { id: 'hello-tabs', title: 'Hello tabs' }334const pane = { id: 'hello-tabs', title: 'Hello tabs' }

323await $.ui.open(items.length > 0 ? { ...pane, focus: true } : pane)335await $.ui.open(items.length > 0 ? { ...pane, focus: true } : pane)

324```336```

325 337 

326若要讓命令在 Claude 工作時開啟窗格,請在[註冊命令](/docs/zh-TW/plugins/mods/api#add-a-command)時新增 `immediate: true`。沒有它,在輪次期間輸入的命令會等待輪次結束。338若要讓命令在 Claude 工作時開啟窗格,請在[註冊命令](/docs/zh-TW/plugins/mods/api#add-a-command)時新增 `immediate: true`。沒有它,在回合期間輸入的命令會等待回合結束。

327 339 

328<h4 id="when-a-pane-waits-for-a-wider-terminal">340<h4 id="when-a-pane-waits-for-a-wider-terminal">

329 當窗格等待更寬的終端時341 當窗格等待更寬的終端機時

330</h4>342</h4>

331 343 

332您的 mod 開啟的窗格(未被要求)不會在狹窄的終端中出現,因此它無法接管小螢幕。它是否出現取決於開啟它的內容:344您的 mod 開啟的窗格(未被請求)不會在狹窄的終端機中出現,因此它無法接管小螢幕。它是否出現取決於開啟它的內容:

333 345 

334* **由使用者執行的操作開啟**,例如他們執行的命令或他們按下的按鈕,窗格在任何寬度出現346* **由使用者執行的操作開啟**,例如他們執行的命令或他們按下的按鈕,窗格在任何寬度出現

335* **由您的 mod 自行開啟**,例如從計時器或 [`turn.start`](/docs/zh-TW/plugins/mods/events#follow-a-turn) 鉤子,窗格只在至少 144 列寬的終端中出現。使用者自己開啟該窗格一次後,110 列就足夠了。347* **由您的 mod 自行開啟**,例如從計時器或 [`turn.start`](/docs/zh-TW/plugins/mods/events#follow-a-turn) hook,窗格只在至少 144 列寬的終端機中出現。使用者自己開啟該窗格一次後,110 列就足夠了。

336 348 

337當窗格出現時,`$.ui.open` 解析為 `{ isPlaced: true }`。當窗格在等待時,`isPlaced` 是 `false`,`reason` 是說明原因的字串。當使用者開啟窗格或加寬終端時,等待的窗格會出現。若要說明某些內容可用而不開啟窗格,請呼叫 `$.ui.toast('Your message')`,它會顯示在幾秒後消失的小通知。349當窗格出現時,`$.ui.open` 解析為 `{ isPlaced: true }`。當窗格在等待時,`isPlaced` 是 `false`,`reason` 是說明原因的字串。當使用者開啟窗格或加寬終端機時,等待的窗格會出現。若要說明某些內容可用而不開啟窗格,請呼叫 `$.ui.toast('Your message')`,它會顯示快顯通知。

338 350 

339<h2 id="build-a-tree-from-elements">351<h2 id="build-a-tree-from-elements">

340 從元素建立樹352 從元素建立樹

341</h2>353</h2>

342 354 

343`ui.render` 鉤子返回的是元素樹:對要繪製的內容的描述,由相互嵌套的框、文字和控制項組成。您描述繪製,Claude Code 在終端或桌面應用程式中呈現它。355`ui.render` hook 返回的是元素樹:對要繪製的內容的描述,由相互嵌套的框、文字和控制項組成。您描述繪製,Claude Code 在終端機或桌面應用程式中呈現它。

344 356 

345若要取得元素,請在您的鉤子中呼叫 `$.ui.resolve(e)`,如 `const { Box, Text, Button } = $.ui.resolve(e)`。每個元素都是一個函式。您傳遞它屬性,並將應該在其中的元素和字串放在 `children` 中。357若要取得元素,請在您的 hook 中呼叫 `$.ui.resolve(e)`,如 `const { Box, Text, Button } = $.ui.resolve(e)`。每個元素都是一個函式。您傳遞它屬性,並將應該在其中的元素和字串放在 `children` 中。

346 358 

347大多數繪製使用四個元素。選擇一個標籤以查看每個元素以及終端如何繪製它:359選擇一個標籤以查看每個最常見的元素以及終端機如何繪製它:

348 360 

349<Tabs>361<Tabs>

350 <Tab title="Text">362 <Tab title="Text">


407 ```419 ```

408 420 

409 ```text theme={null}421 ```text theme={null}

410 Note: Type a note and press Enter ⏎ add422 Note: Type a note and press Enter

411 ```423 ```

412 </Tab>424 </Tab>

413</Tabs>425</Tabs>

414 426 

415此表列出每個元素:427[介面圖庫](/docs/zh-TW/plugins/mods/gallery)提供大多數元素的範例和螢幕截圖。此表列出每個元素:

416 428 

417| 元素 | 它繪製的內容 | 位置 |429| 元素 | 它繪製的內容 | 位置 |

418| :- | :- | :- |430| :- | :- | :- |


420| `Text` | 樣式文字。採用 `color`、`bold`、`dimColor`、`italic` 和 `wrap`。`color` 是主題鍵或顏色,例如 `'red'`。`wrap` 是 `'wrap'`、`'truncate'`、`'truncate-start'`、`'truncate-middle'` 或 `'truncate-end'`。 | 到處 |432| `Text` | 樣式文字。採用 `color`、`bold`、`dimColor`、`italic` 和 `wrap`。`color` 是主題鍵或顏色,例如 `'red'`。`wrap` 是 `'wrap'`、`'truncate'`、`'truncate-start'`、`'truncate-middle'` 或 `'truncate-end'`。 | 到處 |

421| `Button` | 呼叫 `onPress` 的控制項 | 到處 |433| `Button` | 呼叫 `onPress` 的控制項 | 到處 |

422| `Link`, `Code`, `Markdown` | 具有 `href` 和可選 `label` 的連結、程式碼區塊和格式化為 Claude 回覆方式的文字。`Markdown` 在 `text` 屬性中而不是在 `children` 中採用其內容,並在您傳遞 `onLinkPress` 時需要 `key`。 | 到處 |434| `Link`, `Code`, `Markdown` | 具有 `href` 和可選 `label` 的連結、程式碼區塊和格式化為 Claude 回覆方式的文字。`Markdown` 在 `text` 屬性中而不是在 `children` 中採用其內容,並在您傳遞 `onLinkPress` 時需要 `key`。 | 到處 |

423| `Input`, `Select` | 文字欄位和選擇器 | 終端、桌面 |435| `Input`, `Select` | 文字欄位和下拉式選單 | 終端機、桌面 |

424| `Svg` | SVG 文件 | 桌面 |436| `Svg` | SVG 文件 | 桌面 |

425| `Client` | 由您的第二個檔案繪製的區域,用於動畫和指標輸入。該檔案不取得 mod API。它只能通過發佈資料到達您的鉤子,該資料作為 `ui.message` 事件到達。 | 終端、桌面 |437| `Client` | 由您的第二個檔案繪製的區域,用於動畫和指標輸入。該檔案不取得 mods API。它只能透過發佈資料到達您的 hook,該資料作為 `ui.message` 事件到達。 | 終端機、桌面 |

426| `Raster`, `Image` | [彩色儲存格網格](#draw-a-grid-of-colored-cells)和圖片 | 終端 |438| `Raster`, `Image` | [彩色儲存格網格](#draw-a-grid-of-colored-cells)和圖片 | 終端機 |

427 439 

428如果您的模組是 `.tsx` 或 `.jsx` 檔案,您可以將樹寫成 JSX。首先從 `$.ui.resolve(e)` 解構元素,因為鉤子模組沒有元素全域。440如果您的模組是 `.tsx` 或 `.jsx` 檔案,您可以將樹寫成 JSX。請先從 `$.ui.resolve(e)` 解構元素。

429 441 

430如果樹使用應用程式沒有的元素、元素不採用的屬性或沒有子項的位置,Claude Code 會繪製其自己的位置版本。442如果樹使用應用程式沒有的元素、元素不採用的屬性或在不該有子項的位置放置子項,Claude Code 會繪製其自己的該位置版本。

431 443 

432在使用 `--plugin-dir` 啟動的工作階段中,文字記錄行會說明這一點,例如 `ui.render (Pane) refused: Text prop "bogusProp" is not allowed; the engine drew its own`。[偵錯日誌](/docs/zh-TW/plugins/mods/troubleshoot#read-the-debug-log)將其記錄為 `ui.render (Pane): a hook returned a tree that does not validate` 並提供相同的原因。工作階段中沒有其他內容出現,因此當繪製不顯示時,請檢查該行或日誌。444在使用 `--plugin-dir` 啟動的工作階段中,逐字稿中會有一行說明這一點,例如 `ui.render (Pane) refused: Text prop "bogusProp" is not allowed; the engine drew its own`。[偵錯日誌](/docs/zh-TW/plugins/mods/troubleshoot#read-the-debug-log)將其記錄為 `ui.render (Pane): a hook returned a tree that does not validate` 並提供相同的原因。工作階段中沒有其他內容出現,因此當繪製不顯示時,請檢查該行或日誌。

433 445 

434<h3 id="draw-a-grid-of-colored-cells">446<h3 id="draw-a-grid-of-colored-cells">

435 繪製彩色儲存格網格447 繪製彩色儲存格網格

436</h3>448</h3>

437 449 

438對於熱力圖、迷你圖或終端中的遊戲板,繪製一個 `Raster` 而不是每個儲存格的 `Box`。`Raster` 採用 `key`、其大小(以 `columns` 和 `rows` 為單位)以及 `cells`,它將每個儲存格打包到一個字串中。每個儲存格是三個數字:字元的程式碼點、其顏色和其背景顏色。顏色是十六進位數字,紅色、綠色和藍色各有兩位數字,例如 `0xc62828` 表示紅色,或 `0x01000000` 表示終端的預設值。450對於熱力圖、迷你圖或終端機中的遊戲板,繪製一個 `Raster` 而不是每個儲存格一個 `Box`。`Raster` 採用 `key`、其大小(以 `columns` 和 `rows` 為單位)以及 `cells`,這是一個打包了每個儲存格的 base64 字串。每個儲存格是三個數字:字元的程式碼點、其顏色和其背景顏色。顏色是以十六進位表示的 24 位元 RGB 值,例如 `0xc62828` 表示紅色。值 `0x01000000` 比該範圍大一,表示終端機的預設值。

439 451 

440桌面應用程式沒有 `Raster`,因此請檢查 `e.surface` 並在那裡繪製文字。此窗格主體繪製一個三乘二的熱力圖:452桌面應用程式沒有 `Raster`,因此請檢查 `e.surface` 並在那裡繪製文字。此窗格主體繪製一個三乘二的熱力圖:

441 453 

442```javascript theme={null}454```javascript theme={null}

443// 表示「使用終端的預設顏色」的值455// 表示「使用終端機的預設顏色」的值

444const DEFAULT_COLOR = 0x01000000456const DEFAULT_COLOR = 0x01000000

445 457 

446// 將 [character, color] 對的列打包到 Raster 採用的一個字串中458// 將 [character, color] 對的列打包到 Raster 採用的一個字串中


469})481})

470```482```

471 483 

472在終端中,窗格顯示網格:484在終端機中,窗格顯示網格:

473 485 

474<img src="https://mintcdn.com/claude-code/dgiVO_Od1X1faduV/images/mods-heat-map.svg?fit=max&auto=format&n=dgiVO_Od1X1faduV&q=85&s=b91bcce3bad74bc851149133d4acc5d5" alt="終端中的窗格,其中包含一個小的彩色區塊網格,兩列三個。頂列是綠色、琥珀色和紅色。底列是綠色、綠色和琥珀色。" width="360" height="132" data-path="images/mods-heat-map.svg" />486<img src="https://mintcdn.com/claude-code/dgiVO_Od1X1faduV/images/mods-heat-map.svg?fit=max&auto=format&n=dgiVO_Od1X1faduV&q=85&s=b91bcce3bad74bc851149133d4acc5d5" alt="終端機中的窗格,其中包含一個小的彩色區塊網格,兩列三個。頂列是綠色、琥珀色和紅色。底列是綠色、綠色和琥珀色。" width="360" height="132" data-path="images/mods-heat-map.svg" />

475 487 

476`rows` 陣列是您要更改的部分,`cellsOf` 將其轉換為打包的字串。鉤子只在 `id` 為 `heat` 的窗格中繪製,因此從命令開啟一個,如 [`hello-tabs` 範例](#build-a-pane-with-tabs)開啟其窗格。488`rows` 陣列是您要更改的部分,`cellsOf` 將其轉換為打包的字串。hook 只在 `id` 為 `heat` 的窗格中繪製,因此請從命令使用 `$.ui.open({ id: 'heat' })` 開啟一個,如同 [`hello-tabs` 範例](#build-a-pane-with-tabs)開啟其窗格的方式。

477 489 

478每個字元必須是一個儲存格寬。若要動畫已在螢幕上的 `Raster`,請使用窗格的 `id` 作為 `requestId`、`Raster` 的 `key`、相同的大小和新儲存格呼叫 `$.ui.blit`。對於此範例,這是 `$.ui.blit({ requestId: 'heat', key: 'grid', columns: 3, rows: 2, cells: cellsOf(newRows) })`。它重新繪製該一個元素,而不再次執行您的 `ui.render` 鉤子。490每個字元必須是一個儲存格寬。若要動畫已在螢幕上的 `Raster`,請使用窗格的 `id` 作為 `requestId`、`Raster` 的 `key`、相同的大小和新儲存格呼叫 `$.ui.blit`。對於此範例,這是 `$.ui.blit({ requestId: 'heat', key: 'grid', columns: 3, rows: 2, cells: cellsOf(newRows) })`。它重新繪製該一個元素,而不再次執行您的 `ui.render` hook。

479 491 

480<h2 id="respond-to-presses-and-typing">492<h2 id="respond-to-presses-and-typing">

481 回應按下和輸入493 回應按下和輸入

482</h2>494</h2>

483 495 

484當使用者按下按鈕、輸入欄位或從您的 mod 繪製的清單中選擇時,Claude Code 會呼叫您給該控制項的函式,並在您的模組中執行。每個控制項採用其自己的回呼:496當使用者按下按鈕、輸入欄位或從您的 mod 繪製的清單中選擇時,Claude Code 會呼叫該控制項的回呼,並在您的模組中執行。每個控制項採用其自己的回呼:

485 497 

486* **`Button`**:採用 `onPress(e)`,其中 `e.surface` 是按下來自的應用程式498* **`Button`**:採用 `onPress(e)`,其中 `e.surface` 是按下來自的應用程式

487* **`Input`**:採用 `onSubmit(value)` 和 `onInput(value)`499* **`Input`**:採用 `onSubmit(value)` 和 `onInput(value)`

488* **`Select`**:採用 `onSelect(value)` 及其 `options` 中的選擇,至少一個具有唯一值的選擇清單,例如 `[{ value: 'sm', label: 'Small' }, { value: 'lg', label: 'Large' }]`500* **`Select`**:採用 `onSelect(value)` 及其 `options` 中的選擇,至少一個具有唯一值的選擇清單,例如 `[{ value: 'sm', label: 'Small' }, { value: 'lg', label: 'Large' }]`

489 501 

490測試通過其 `key` 按下或輸入到控制項,因此給每個控制項一個。控制項的每次使用也會引發 [`ui.press`、`ui.input` 或 `ui.select`](/docs/zh-TW/plugins/mods/reference#interface),其中 `key` 在 `e.element` 中,另一個 mod 可以鉤住這些事件。其鉤子在您的回呼之前執行,因此它會看到使用者輸入到您的 `Input` 中的內容,並可以更改它或代替您的回呼回答。mod API 沒有按下另一個 mod 按鈕的方法。502測試通過其 `key` 按下或輸入到控制項,因此給每個控制項一個。控制項的每次使用也會引發 [`ui.press`、`ui.input` 或 `ui.select`](/docs/zh-TW/plugins/mods/reference#interface),其中 `key` 在 `e.element` 中,另一個 mod 可以處理這些事件。其 hook 在您的回呼之前執行,因此它會看到使用者輸入到您的 `Input` 中的內容,並可以更改它或代替您的回呼回答。mods API 沒有按下另一個 mod 按鈕的方法。

491 503 

492<h3 id="know-which-keys-your-mod-can-receive">504<h3 id="know-which-keys-your-mod-can-receive">

493 鍵盤焦點和快捷鍵505 鍵盤焦點和快捷鍵

494</h3>506</h3>

495 507 

496您的 mod 永遠不會自己讀取鍵盤。使用者按下一個鍵,Claude Code 決定它是為您的哪個控制項,該控制項的回呼執行。除了[帶狀區域上的數字快捷鍵](/docs/zh-TW/plugins/mods/reference#elements)外,這只在您的窗格或帶狀區域具有鍵盤焦點時發生。其餘時間,鍵進入提示。508您的 mod 永遠不會自己讀取鍵盤。使用者按下一個鍵,Claude Code 決定它是為您的哪個控制項,該控制項的回呼執行。除了[帶狀區域上的數字快捷鍵](/docs/zh-TW/plugins/mods/reference#elements)外,這只在您的窗格或帶狀區域具有鍵盤焦點時發生。其餘時間,按鍵會進入提示詞輸入區。

497 509 

498<h4 id="how-a-pane-gets-keyboard-focus">510<h4 id="how-a-pane-gets-keyboard-focus">

499 窗格如何獲得鍵盤焦點511 窗格如何獲得鍵盤焦點

500</h4>512</h4>

501 513 

502窗格通過以下三種方式之一獲得鍵盤焦點:514窗格在以下情況下獲得鍵盤焦點:

503 515 

504* 您的 mod 使用 `focus: true` 從命令或按下開啟它516* 您的 mod 使用 `focus: true` 從命令或按下開啟它

505* 使用者按 Ctrl+X 然後 Tab517* 使用者按 Ctrl+X 然後 Tab

506* 使用者點擊它518* 使用者點擊它

507 519 

508Claude Code 只在提示為空且沒有其他內容具有鍵盤焦點時授予 `focus: true`。在使用者輸入時開啟的窗格不會接收他們的按鍵。520Claude Code 只在提示詞輸入區為空且沒有其他內容具有鍵盤焦點時授予 `focus: true`。在使用者輸入時開啟的窗格不會接收他們的按鍵。

509 521 

510<h4 id="what-each-key-does">522<h4 id="what-each-key-does">

511 每個鍵執行的操作523 每個鍵執行的操作


519| 向上和向下 | 在您的繪製適合時在控制項之間移動。當窗格或帶狀區域的列數超過它可以顯示的列數時,它們會滾動它。 |531| 向上和向下 | 在您的繪製適合時在控制項之間移動。當窗格或帶狀區域的列數超過它可以顯示的列數時,它們會滾動它。 |

520| Enter | 按下焦點 `Button`、提交焦點 `Input` 或在 `Select` 中選擇 |532| Enter | 按下焦點 `Button`、提交焦點 `Input` 或在 `Select` 中選擇 |

521| 按鈕的快捷鍵 | 按下該按鈕。當 `Input` 具有焦點時,每個可列印鍵都進入欄位。 |533| 按鈕的快捷鍵 | 按下該按鈕。當 `Input` 具有焦點時,每個可列印鍵都進入欄位。 |

522| Esc | 將鍵盤焦點返回到提示。使用 `closeOnEscape: true` 時,它也會關閉窗格。 |534| Esc | 將鍵盤焦點返回到提示詞輸入區。使用 `closeOnEscape: true` 時,它也會關閉窗格。 |

523 535 

524mod 無法將 Tab 或箭頭鍵綁定到其他任何內容,因此遊戲使用 `w`、`a`、`s` 和 `d` 進行轉向。536mod 無法將 Tab 或箭頭鍵綁定到其他任何內容,因此遊戲使用 `w`、`a`、`s` 和 `d` 進行轉向。

525 537 


527 設定快捷鍵和第一個焦點539 設定快捷鍵和第一個焦點

528</h4>540</h4>

529 541 

530控制項上的兩個屬性決定鍵盤如何到達它:542控制項上的這些屬性決定鍵盤如何到達它:

531 543 

532* **`hotkey`**:若要讓使用者使用一個鍵按下 `Button`,請給它一個 `hotkey` 的一位數字或一個小寫字母,如 `hotkey: 'a'`544* **`hotkey`**:若要讓使用者使用一個鍵按下 `Button`,請給它一個 `hotkey` 的一位數字或一個小寫字母,如 `hotkey: 'a'`

533* **`autoFocus`**:若要選擇窗格開啟時哪個控制項具有焦點,請將 `autoFocus: true` 新增到它。在其他項上省略屬性,因為 Claude Code 拒絕 `autoFocus: false`。545* **`autoFocus`**:若要選擇窗格開啟時哪個控制項具有焦點,請將 `autoFocus: true` 新增到它。此屬性僅接受 `true`,因此請在其他控制項上省略它。

534 546 

535快捷鍵的顯示方式取決於按鈕和應用程式:547快捷鍵的顯示方式取決於按鈕和應用程式:

536 548 

537| 按鈕 | 在終端中 | 在桌面應用程式中 |549| 按鈕 | 在終端機中 | 在桌面應用程式中 |

538| :- | :- | :- |550| :- | :- | :- |

539| 帶括號,預設值 | `[ Add one ]`,沒有顯示快捷鍵 | 標籤旁邊有一個小鍵 |551| 帶括號,預設值 | `[ Add one ]`,沒有顯示快捷鍵 | 標籤旁邊有一個小鍵 |

540| 使用 `plain: true` | `1: One` | 標籤旁邊有一個小鍵 |552| 使用 `plain: true` | `1: One` | 標籤旁邊有一個小鍵 |

541 553 

542在終端中,在括號按鈕的標籤中命名鍵,或使用 `plain: true`,以便使用者可以看到要按什麼。[元素參考](/docs/zh-TW/plugins/mods/reference#elements)有其他 `Button` 規則:`action`、帶狀區域上的數字快捷鍵,以及一個快捷鍵上的兩個按鈕。554在終端機中,在括號按鈕的標籤中命名鍵,或使用 `plain: true`,以便使用者可以看到要按什麼。[元素參考](/docs/zh-TW/plugins/mods/reference#elements)有其他 `Button` 規則:`action`、帶狀區域上的數字快捷鍵,以及一個快捷鍵上的兩個按鈕。

543 555 

544<h3 id="take-typed-input-and-draw-a-row-for-each-item">556<h3 id="take-typed-input-and-draw-a-row-for-each-item">

545 取得輸入的文字並為每個項目繪製一列557 取得輸入的文字並為每個項目繪製一列

546</h3>558</h3>

547 559 

548許多窗格是一個文字欄位,下面有一個清單。本部分中的範例是一個筆記窗格:您輸入一個筆記並按 Enter 新增它,每個筆記都有一個 `x` 按鈕來刪除它。新增兩個筆記後,終端會以這種方式繪製窗格:560許多窗格是一個文字欄位,下面有一個清單。本部分中的範例是一個筆記窗格:您輸入一個筆記並按 Enter 新增它,每個筆記都有一個 `x` 按鈕來刪除它。新增兩個筆記後,終端機會以這種方式繪製窗格:

549 561 

550```text theme={null}562```text theme={null}

551╭──────────────────────────────────────────────────────────╮563╭──────────────────────────────────────────────────────────╮


555╰──────────────────────────────────────────────────────────╯567╰──────────────────────────────────────────────────────────╯

556```568```

557 569 

558範例使用兩種技術:570範例使用以下技術:

559 571 

560* **取得輸入的文字**:`Input` 在使用者按 Enter 時使用欄位的文字呼叫 `onSubmit(value)`,並在每次更改時呼叫 `onInput(value)`572* **取得輸入的文字**:`Input` 在使用者按 Enter 時使用欄位的文字呼叫 `onSubmit(value)`,並在每次更改時呼叫 `onInput(value)`

561* **繪製清單**:將您的資料對應到每個一列,並給每列的按鈕其自己的 `key`573* **繪製清單**:將您的資料對應到每個一列,並給每列的按鈕其自己的 `key`

562 574 

563此鉤子繪製窗格的內容:575此 hook 繪製窗格的內容:

564 576 

565```javascript theme={null}577```javascript theme={null}

566// 窗格繪製的清單578// 窗格繪製的清單


625 637 

626每個更改都遵循與 `hello-tabs` 相同的渲染週期:回呼更改 `notes`、呼叫 `redraw` 並將清單儲存到 `$.store`。638每個更改都遵循與 `hello-tabs` 相同的渲染週期:回呼更改 `notes`、呼叫 `redraw` 並將清單儲存到 `$.store`。

627 639 

628欄位在每次提交後清空,因為其 `value` 屬性。`value` 是繪製欄位時欄位保持的文字,使用者的輸入替換它,直到您的鉤子再次繪製欄位。範例始終使用 `''` 繪製欄位。640欄位在每次提交後清空,因為其 `value` 屬性。`value` 是繪製欄位時欄位保持的文字,使用者的輸入替換它,直到您的 hook 再次繪製欄位。範例始終使用 `''` 繪製欄位。

629 641 

630範例儲存筆記但不載入它們。若要在下一個工作階段中將它們帶回,請在 `session.start` 鉤子中讀取它們,就像 `hello-tabs` 讀取 `count` 的方式一樣。642範例儲存筆記但不載入它們。若要在下一個工作階段中將它們帶回,請在 `session.start` hook 中讀取它們,就像 `hello-tabs` 讀取 `count` 的方式一樣。

631 643 

632三個屬性組成欄位的行,`Note: Type a note and press Enter ⏎ add`:644這些屬性組成欄位的行,`Note: Type a note and press Enter ⏎ add`:

633 645 

634| 屬性 | 在範例中 | 它是什麼 |646| 屬性 | 在範例中 | 它是什麼 |

635| :- | :- | :- |647| :- | :- | :- |

636| `label` | `Note` | 欄位前的文字。終端在其後繪製 `: `。 |648| `label` | `Note` | 欄位前的文字。終端機在其後繪製 `: `。 |

637| `placeholder` | `Type a note and press Enter` | 欄位為空時顯示的暗文字 |649| `placeholder` | `Type a note and press Enter` | 欄位為空時顯示的暗文字 |

638| `submitLabel` | `add` | `⏎` 後的單詞,說明 Enter 執行的操作 |650| `submitLabel` | `add` | `⏎` 後的單詞,說明 Enter 執行的操作 |

639 651 

640提交 `Input` 不會啟動輪次,除非您的回呼呼叫 [`$.prompt.submit`](/docs/zh-TW/plugins/mods/api#start-a-turn-from-a-background-job)。652提交 `Input` 不會啟動回合,除非您的回呼呼叫 [`$.prompt.submit`](/docs/zh-TW/plugins/mods/api#start-a-turn-from-a-background-job)。

641 653 

642<h2 id="redraw-when-something-changes">654<h2 id="redraw-when-something-changes">

643 重新繪製位置655 重新繪製位置

644</h2>656</h2>

645 657 

646繪製是快照:它顯示您的 `ui.render` 鉤子上次執行時返回的內容。若要顯示新內容,鉤子必須再次執行。Claude Code 為某些更改再次執行它,您的 mod 要求其餘的。658繪製是快照:它顯示您的 `ui.render` hook 上次執行時返回的內容。若要顯示新內容,hook 必須再次執行。Claude Code 為某些更改再次執行它,您的 mod 要求其餘的。

647 659 

648<h3 id="when-claude-code-redraws-without-being-asked">660<h3 id="when-claude-code-redraws-without-being-asked">

649 當 Claude Code 在未被要求時重新繪製661 當 Claude Code 在未被要求時重新繪製

650</h3>662</h3>

651 663 

652當位置的屬性更改或終端的寬度更改時,Claude Code 會再次執行您的 `ui.render` 鉤子。它不會在計時器上執行鉤子,也無法判斷您的模組中的變數何時更改。664當位置的 prop 更改或終端機的寬度更改時,Claude Code 會再次執行您的 `ui.render` hook。它不會在計時器上執行 hook,也無法判斷您的模組中的變數何時更改。

653 665 

654<h3 id="redraw-when-your-data-changes">666<h3 id="redraw-when-your-data-changes">

655 當您的資料更改時重新繪製667 當您的資料更改時重新繪製


690 在計時器上重新繪製702 在計時器上重新繪製

691</h3>703</h3>

692 704 

693若要保持時鐘、倒計時或來自工作階段外部的值為最新,請按計劃重新繪製。在模組的 `session.start` 鉤子中啟動計時器。如果模組已經有一個,如 `hello-tabs` 所做的,請將 [`$.clock.every`](/docs/zh-TW/plugins/mods/api#run-work-in-the-background) 行新增到它:705若要保持時鐘、倒計時或來自工作階段外部的值為最新,請按計劃重新繪製。在模組的 `session.start` hook 中啟動計時器。如果模組已經有一個,如 `hello-tabs` 所做的,請將 [`$.clock.every`](/docs/zh-TW/plugins/mods/api#run-work-in-the-background) 行新增到它:

694 706 

695```javascript theme={null}707```javascript theme={null}

696on('session.start', async ($, e, next) => {708on('session.start', async ($, e, next) => {


700})712})

701```713```

702 714 

703Claude Code 現在每秒執行您的 `ui.render` 鉤子一次。計時器在模組重新載入時停止,新副本啟動自己的。715Claude Code 現在每秒執行您的 `ui.render` hook 一次。計時器在模組重新載入時停止,模組的新執行個體會啟動自己的計時器。

704 716 

705<h3 id="how-often-a-site-can-redraw">717<h3 id="how-often-a-site-can-redraw">

706 位置可以重新繪製的頻率718 位置可以重新繪製的頻率

707</h3>719</h3>

708 720 

709Claude Code 限制重新繪製的頻率,因此您的 mod 可以在其資料更改時經常呼叫 `$.ui.invalidate`。可見窗格和帶狀區域的限制比其他位置更高,[限制表](/docs/zh-TW/plugins/mods/reference#limits)有數字。721Claude Code 限制位置重新繪製的頻率,因此您的 mod 可以在其資料更改時經常呼叫 `$.ui.invalidate`。關於每個位置可以重新繪製的頻率,請參閱[限制表](/docs/zh-TW/plugins/mods/reference#limits)。

710 722 

711比限制更快到達的呼叫會合併為一次重新繪製。該重新繪製執行您的鉤子一次,鉤子在該時刻讀取您的資料,因此最新值顯示,介於兩者之間的值不顯示。動畫無法比限制更快執行。723比限制更快到達的呼叫會合併為一次重新繪製。該重新繪製執行您的 hook 一次,hook 在該時刻讀取您的資料,因此最新值顯示,介於兩者之間的值不顯示。動畫無法比限制更快執行。

712 724 

713<h2 id="keep-state">725<h2 id="keep-state">

714 保持狀態726 保持狀態

715</h2>727</h2>

716 728 

717mod 有三個地方可以保持值,它們在值持續多長時間方面有所不同:直到模組重新載入、直到工作階段結束或從一個工作階段到下一個工作階段。根據值必須持續多長時間選擇:729mod 將值保存在何處,決定了該值持續多長時間:直到模組重新載入、直到工作階段結束,或從一個工作階段延續到下一個工作階段。根據值必須持續多長時間來選擇:

718 730 

719| 將其保持在 | 它持續到 | 用於 |731| 將其保持在 | 它持續到 | 用於 |

720| :- | :- | :- |732| :- | :- | :- |


724 736 

725`$.store.get(key)` 解析為值或 `undefined`,`$.store.set(key, value)` 採用任何 JSON 值。737`$.store.get(key)` 解析為值或 `undefined`,`$.store.set(key, value)` 採用任何 JSON 值。

726 738 

727<h3 id="keep-a-value-in-state">739<h3 id="keep-a-value-in-$-state">

728 在 `$.state` 中保持值740 在 `$.state` 中保持值

729</h3>741</h3>

730 742 

731`$.state` 為工作階段的長度保持值,並為您重新繪製。它是反應式狀態:讀取值的 `ui.render` 鉤子訂閱它,因此 Claude Code 每次您寫入值時都會重新繪製該位置,您不呼叫 `$.ui.invalidate`。`$.state` 中的值也在模組重新載入後存活,變數不會。743`$.state` 為工作階段的長度保持值,並為您重新繪製。它是反應式狀態:讀取值的 `ui.render` hook 會訂閱它,因此 Claude Code 每次您寫入值時都會重新繪製該位置,您不需呼叫 `$.ui.invalidate`。`$.state` 中的值也在模組重新載入後存活,變數則不會。

732 744 

733若要設定它,請宣告您的值、將您的清單指向宣告,然後定義並使用每個值。範例將 `hello-tabs` 中的 `count` 移動到 `$.state`。745若要設定它,請宣告您的值、將您的清單指向宣告,然後定義並使用每個值。範例將 `hello-tabs` 中的 `count` 移動到 `$.state`。

734 746 


736 宣告值748 宣告值

737</h4>749</h4>

738 750 

739在類型檔案中宣告值。外部鍵是您的外掛程式的名稱,其下的每個項目是一個值及其類型。將此儲存為 `hello-tabs/types/index.d.ts`:751在類型宣告檔案中宣告值。外部鍵是您的外掛程式的名稱,其下的每個項目是一個值及其類型。將此儲存為 `hello-tabs/types/index.d.ts`:

740 752 

741```typescript hello-tabs/types/index.d.ts theme={null}753```typescript hello-tabs/types/index.d.ts theme={null}

742declare module 'claude-code' {754declare module 'claude-code' {


777// 在模組的頂部:命名值並給出其預設值789// 在模組的頂部:命名值並給出其預設值

778const count = atom({ plugin: 'hello-tabs', key: 'count' }, 0)790const count = atom({ plugin: 'hello-tabs', key: 'count' }, 0)

779 791 

780// 在 ui.render 鉤子中:讀取值以繪製它792// 在 ui.render hook 中:讀取值以繪製它

781const n = await read($, count)793const n = await read($, count)

782 794 

783// 在按鈕中:從舊值寫入新值795// 在按鈕中:從舊值寫入新值

784onPress: () => update($, count, (value) => value + 1)796onPress: () => update($, count, (value) => value + 1)

785```797```

786 798 

787因為 `ui.render` 鉤子讀取 `count`,Claude Code 每次按鈕寫入它時都會再次執行鉤子。799因為 `ui.render` hook 讀取 `count`,Claude Code 每次按鈕寫入它時都會再次執行該 hook。

788 800 

789三個規則適用於程式碼:801以下規則適用於程式碼:

790 802 

791* **將 `plugin` 和 `key` 寫成文字字串**:`claude plugin validate` 從您的來源讀取它們803* **將 `plugin` 和 `key` 寫成文字字串**:`claude plugin validate` 從您的來源讀取它們

792* **在類型檔案中宣告每個值**:否則驗證失敗,出現 `hello-tabs.count is not declared`804* **在類型宣告檔案中宣告每個值**:否則驗證失敗,出現 `hello-tabs.count is not declared`

793* **從回呼或另一個事件的鉤子寫入**:`ui.render` 鉤子可以讀取狀態,無法寫入它,因此從 `onPress`、`onSubmit` 或另一個事件的鉤子寫入805* **從回呼或另一個事件的 hook 寫入**:`ui.render` hook 可以讀取狀態,無法寫入它,因此從 `onPress`、`onSubmit` 或另一個事件的 hook 寫入

794 806 

795<h4 id="change-hello-tabs-to-use-state">807<h4 id="change-hello-tabs-to-use-$-state">

796 將 `hello-tabs` 更改為使用 `$.state`808 將 `hello-tabs` 更改為使用 `$.state`

797</h4>809</h4>

798 810 

799若要將 `hello-tabs` 中的 `count` 移動到 `$.state`,請更改使用它的每一行:811若要將 `hello-tabs` 中的 `count` 移動到 `$.state`,請更改使用它的每一行:

800 812 

801* **在模組的頂部**:新增 `import` 行,並將 `let count = 0` 替換為 `atom` 行813* **在模組的頂部**:新增 `import` 行,並將 `let count = 0` 替換為 `atom` 行

802* **在 `ui.render` 鉤子中**:在 `tabButton` 之前新增 `read` 行,並在 `Text` 中繪製 `'Count: ' + n`814* **在 `ui.render` hook 中**:在 `tabButton` 之前新增 `read` 行,並在 `Text` 中繪製 `'Count: ' + n`

803* **在 Add one 按鈕中**:將 `onPress` 替換為[從多個工作階段儲存](#save-from-more-than-one-session)中的按鈕,該按鈕儲存計數以及寫入它815* **在 Add one 按鈕中**:將 `onPress` 替換為[從多個工作階段儲存](#save-from-more-than-one-session)中的按鈕,該按鈕儲存計數以及寫入它

804* **在 `session.start` 鉤子中**:將讀取 `saved` 的兩行替換為[在 `/clear` 後再次載入儲存的值](#load-a-saved-value-again-after-clear)中的 `loadCount` 呼叫816* **在 `session.start` hook 中**:將讀取 `saved` 的兩行替換為[在 `/clear` 後再次載入儲存的值](#load-a-saved-value-again-after-clear)中的 `loadCount` 呼叫

805 817 

806保持 `redraw` 用於標籤按鈕,因為 `tab` 仍然是變數。818保持 `redraw` 用於標籤按鈕,因為 `tab` 仍然是變數。

807 819 


809 在 `/clear` 後再次載入儲存的值821 在 `/clear` 後再次載入儲存的值

810</h3>822</h3>

811 823 

812如果您的 mod 在 `session.start` 時將儲存的值從 `$.store` 複製到 `$.state`,則必須在 `/clear`、`/resume` 或 `/branch` 後再次複製它。這些命令將每個 `$.state` 值放回其預設值,`session.start` 不會再次引發。[`classic.SessionStart`](/docs/zh-TW/plugins/mods/events#hook-the-settings-hook-events) 在每個之後引發,`e.source` 設定為 `clear`、`resume` 或 `fork`,因此在鉤子上再次複製值。否則您的繪製顯示預設值,儲存 `$.state` 值的回呼會將預設值寫入您儲存的內容。824如果您的 mod 在 `session.start` 時將儲存的值從 `$.store` 複製到 `$.state`,則必須在 `/clear`、`/resume` 或 `/branch` 後再次複製它。這些命令會將每個 `$.state` 值重設為其預設值,且 `session.start` 不會再次引發。[`classic.SessionStart`](/docs/zh-TW/plugins/mods/events#hook-the-settings-hook-events) 則會在每個命令之後引發,`e.source` 設定為 `clear`、`resume` 或 `fork`,因此請在其 hook 中再次複製值。否則您的繪製會顯示預設值,而儲存 `$.state` 值的回呼會以預設值覆蓋您儲存的內容。

813 825 

814此程式碼從兩個鉤子載入 `count`。它建立在 `hello-tabs` 的 `$.state` 版本上,其中 `count` 是原子,`update` 被匯入。將 `loadCount` 放在 `register` 上方,並將 `loadCount` 呼叫新增到您已經擁有的 `session.start` 鉤子。`classic.SessionStart` 也在啟動和壓縮後引發,這不會重設 `$.state`,因此 `source` 上的篩選將鉤子保持在三個重設:826此程式碼從兩個 hook 載入 `count`。它建立在 `hello-tabs` 的 `$.state` 版本上,其中 `count` 是原子,`update` 被匯入。將 `loadCount` 放在 `register` 上方,並將 `loadCount` 呼叫新增到您已經擁有的 `session.start` hook。`classic.SessionStart` 也在啟動和壓縮後引發,這不會重設 `$.state`,因此 `source` 上的篩選將該 hook 限制在三種重設:

815 827 

816```javascript theme={null}828```javascript theme={null}

817// 將儲存的計數從 $.store 複製到 $.state,如果沒有儲存任何內容,則為 0829// 將儲存的計數從 $.store 複製到 $.state,如果沒有儲存任何內容,則為 0


820 await update($, count, () => saved)832 await update($, count, () => saved)

821}833}

822 834 

823// 在您的第一個提示之前執行,並在重新載入後再次執行835// 在您的第一個提示詞之前執行,並在重新載入後再次執行

824on('session.start', async ($, e, next) => {836on('session.start', async ($, e, next) => {

825 await loadCount($)837 await loadCount($)

826 return next(e)838 return next(e)

827})839})

828 840 

829// 在 /clear、/resume 和 /branch 後再次執行,報告 fork841// 在 /clear、/resume 和 /branch 後再次執行,/branch 報告為 fork

830on('classic.SessionStart', { source: ['clear', 'resume', 'fork'] }, async ($, e, next) => {842on('classic.SessionStart', { source: ['clear', 'resume', 'fork'] }, async ($, e, next) => {

831 await loadCount($)843 await loadCount($)

832 return next(e)844 return next(e)

833})845})

834```846```

835 847 

836兩個鉤子就位後,窗格在 `/clear` 後顯示儲存的計數,而不是 `0`,下一次按 **Add one** 會新增到儲存的計數。848兩個 hook 就位後,窗格在 `/clear` 後顯示儲存的計數,而不是 `0`,下一次按 **Add one** 會新增到儲存的計數。

837 849 

838`loadCount` 將儲存的值寫入 `$.state` 中的值,`session.start` 每次模組重新載入時都會再次引發。若要保持存放區不落後,請在每次更改時儲存,如 **Add one** 按鈕所做的。850`loadCount` 將儲存的值寫入 `$.state` 中的值,`session.start` 每次模組重新載入時都會再次引發。若要保持存放區不落後,請在每次更改時儲存,如 **Add one** 按鈕所做的。

839 851 

840若要在不工作階段的情況下檢查重新載入,請[在 `/clear` 後測試繪製](/docs/zh-TW/plugins/mods/test#test-a-drawing-after-clear)。852若要在沒有工作階段的情況下檢查重新載入,請[在 `/clear` 後測試繪製](/docs/zh-TW/plugins/mods/test#test-a-drawing-after-clear)。

841 853 

842<h3 id="save-from-more-than-one-session">854<h3 id="save-from-more-than-one-session">

843 從多個工作階段儲存855 從多個工作階段儲存


845 857 

846您機器上執行您的 mod 的每個工作階段都共享一個 `$.store`。`get` 後跟 `set` 不是原子的。當兩個工作階段各自讀取值、更改它並寫回時,它們會競爭,第二次寫入會替換第一次。858您機器上執行您的 mod 的每個工作階段都共享一個 `$.store`。`get` 後跟 `set` 不是原子的。當兩個工作階段各自讀取值、更改它並寫回時,它們會競爭,第二次寫入會替換第一次。

847 859 

848兩個選擇使這種情況不太可能:860若要降低這種情況發生的可能性:

849 861 

850* **給每個項目其自己的鍵**:`set` 只更改其自己的鍵,因此寫入不同鍵的工作階段不會相互覆蓋862* **給每個項目其自己的鍵**:`set` 只更改其自己的鍵,因此寫入不同鍵的工作階段不會相互覆蓋

851* **在寫入之前再次讀取**:對於多個工作階段更改的值,在回呼中 `get` 鍵並從該值建立新值,而不是從您在 `session.start` 時載入的副本。如果另一個工作階段的寫入落在您的 `get` 和 `set` 之間,仍然會丟失。863* **在寫入之前緊接著再次讀取**:對於多個工作階段更改的值,在回呼中 `get` 鍵並從該值建立新值,而不是從您在 `session.start` 時載入的副本。如果另一個工作階段的寫入落在您的 `get` 和 `set` 之間,仍然會丟失。

852 864 

853此按鈕現在新增一個到存放區保持的任何內容,然後更新繪製:865此按鈕將存放區目前保存的任何值加一,然後更新繪製:

854 866 

855```javascript theme={null}867```javascript theme={null}

856onPress: async () => {868onPress: async () => {


862}874}

863```875```

864 876 

865如果第二個工作階段自此工作階段啟動以來按下了其自己的按鈕三次,此按下會顯示並儲存包含這三個的計數。877如果第二個工作階段自此工作階段啟動以來按下了其自己的按鈕三次,此按下會顯示並儲存包含這三次的計數。

866 878 

867<h2 id="next-steps">879<h2 id="next-steps">

868 後續步驟880 後續步驟

Details

30 取得 mod30 取得 mod

31</h2>31</h2>

32 32 

33您可以透過以下三種方式之一開始使用 mod:33若要開始使用 mod:

34 34 

35* **使用您已經擁有的**:Claude Code 的某些功能是 mods,例如 `/diff`。請參閱[內建於 Claude Code 的 Mods](#mods-built-into-claude-code)。35* **使用您已經擁有的**:Claude Code 的某些功能是 mods,例如 `/diff`。請參閱[內建於 Claude Code 的 Mods](#mods-built-into-claude-code)。

36* **建立一個**:在 Claude Code 工作階段中描述您想要的內容,Claude 會編寫 mod。請參閱[向 Claude 要求 mod](/docs/zh-TW/plugins/mods/create#ask-claude-for-a-mod)。若要了解 mod 程式碼的運作方式,[自己編寫一個](/docs/zh-TW/plugins/mods/create#write-a-mod-yourself)。36* **建立一個**:在 Claude Code 工作階段中描述您想要的內容,Claude 會編寫 mod。請參閱[向 Claude 要求 mod](/docs/zh-TW/plugins/mods/create#ask-claude-for-a-mod)。若要了解 mod 程式碼的運作方式,[自己編寫一個](/docs/zh-TW/plugins/mods/create#write-a-mod-yourself)。

37* **安裝一個**:請參閱[安裝或更新 mod](#install-or-update-a-mod)37* **安裝一個**:請參閱[安裝或更新 mod](#install-or-update-a-mod),或[試用範例 mod](#try-a-sample-mod)

38 38 

39<h3 id="install-or-update-a-mod">39<h3 id="install-or-update-a-mod">

40 安裝或更新 mod40 安裝或更新 mod

41</h3>41</h3>

42 42 

43<Warning>43<Warning>

44 Mod 是使用您的權限執行的程式碼。它可以讀取和寫入您的檔案、啟動程序和發出網路請求。僅從您信任的作者和市場安裝 mods。請參閱[決定是否信任 mod](#decide-whether-to-trust-a-mod)。44 Mod 是使用您的權限執行的程式碼。它可以讀取和寫入您的檔案、啟動程序和發出網路請求。僅從您信任的作者和市集安裝 mods。請參閱[決定是否信任 mod](#decide-whether-to-trust-a-mod)。

45</Warning>45</Warning>

46 46 

47Mod 作為外掛程式從市場安裝。提供外掛程式的名稱、`@` 和市場的名稱。這些範例從名為 `your-org` 的市場安裝名為 `token-chart` 的外掛程式:47Mod 作為外掛程式從市集安裝。提供外掛程式的名稱、`@` 和市集的名稱。這些範例從名為 `your-org` 的市集安裝名為 `token-chart` 的外掛程式:

48 48 

49* 在 Claude Code 工作階段中,執行 `/plugin install token-chart@your-org`。49* 在 Claude Code 工作階段中,執行 `/plugin install token-chart@your-org`。

50* 在您的 shell 中,執行 `claude plugin install token-chart@your-org`。50* 在您的 shell 中,執行 `claude plugin install token-chart@your-org`。

51 51 

52[安裝外掛程式](/docs/zh-TW/plugins/install)涵蓋市場、範圍、VS Code 擴充功能和 Desktop 應用程式,以及[保持外掛程式更新](/docs/zh-TW/plugins/install#keep-plugins-updated),所有這些都適用於包含 mod 的外掛程式,無需變更。52[安裝外掛程式](/docs/zh-TW/plugins/install)涵蓋市集、範圍、VS Code 擴充功能和 Desktop 應用程式,以及[保持外掛程式更新](/docs/zh-TW/plugins/install#keep-plugins-updated),所有這些都適用於包含 mod 的外掛程式,無需變更。

53 53 

54如果您在工作階段開啟時從 shell 安裝或更新 mod,請在該工作階段中執行 `/reload-plugins` 以載入它。否則,它會在您下次啟動 Claude Code 時載入。54如果您在工作階段開啟時從 shell 安裝或更新 mod,請在該工作階段中執行 `/reload-plugins` 以載入它。否則,它會在您下次啟動 Claude Code 時載入。

55 55 

56<h3 id="try-a-sample-mod">

57 試用範例 mod

58</h3>

59 

60Anthropic 在 [`claude-code-playground` 儲存庫的 `claude-code/mods` 目錄](https://github.com/anthropics/claude-code-playground/tree/main/claude-code/mods)中分享範例 mods。每一個都是完整的外掛程式,其 README 說明了它的建構方式。該儲存庫按原樣分享這些範例,不提供支援。

61 

62* [`token-weather`](https://github.com/anthropics/claude-code-playground/tree/main/claude-code/mods/token-weather):在提示詞上方繪製您上下文視窗的預報

63* [`blast-radius`](https://github.com/anthropics/claude-code-playground/tree/main/claude-code/mods/blast-radius):暫停有風險的 shell 命令(例如 `rm -rf` 或強制推送),並顯示它會變更的內容,附有繼續或取消的按鈕

64* [`replay-theater`](https://github.com/anthropics/claude-code-playground/tree/main/claude-code/mods/replay-theater):新增 `/replay` 命令,逐步檢視 Claude 在上一個回合中所做的檔案編輯

65 

66範例 mod 會使用您的權限執行。若要在載入之前了解它的作用,請[列出它的 hook 和呼叫](#list-what-a-mod-does-before-you-install-one)。

67 

68若要試用,請複製該儲存庫,並使用 `--plugin-dir` [在單一工作階段中載入 mod 的目錄](/docs/zh-TW/plugins/create#load-a-directory-or-archive-for-one-session)。若要確認 mod 已載入,請[檢查工作階段載入了哪些 mods](#see-which-mods-a-session-loaded)。

69 

70若要保留它,請[將複製的 `claude-code/mods` 目錄新增為市集](/docs/zh-TW/plugins/install#add-a-marketplace),然後從 `claude-code-playground-mods` 安裝該 mod。該市集指向您的複製,因此如果您移動或刪除它,mod 就會停止載入。

71 

56<h2 id="decide-whether-to-trust-a-mod">72<h2 id="decide-whether-to-trust-a-mod">

57 決定是否信任 mod73 決定是否信任 mod

58</h2>74</h2>

59 75 

60Mod 是使用您的權限在 Claude Code 內執行的程式碼。僅從您信任的作者和[市場](/docs/zh-TW/plugins/security)安裝 mods。76Mod 是使用您的權限在 Claude Code 內執行的程式碼。僅從您信任的作者和[市集](/docs/zh-TW/plugins/security)安裝 mods。

61 77 

62<h3 id="what-a-mod-can-reach">78<h3 id="what-a-mod-can-reach">

63 Mod 可以存取什麼79 Mod 可以存取什麼


67 83 

68* **在您的機器上以您的身份行動**:讀取和寫入您的使用者帳戶可以存取的任何地方的檔案、啟動程式和發出網路請求84* **在您的機器上以您的身份行動**:讀取和寫入您的使用者帳戶可以存取的任何地方的檔案、啟動程式和發出網路請求

69* **讀取您的機密**:環境變數和設定檔,包括您保留在任一個中的 API 金鑰85* **讀取您的機密**:環境變數和設定檔,包括您保留在任一個中的 API 金鑰

70* **查看您的工作階段**:您傳送的每個提示和 Claude 進行的每個工具呼叫86* **查看您的工作階段**:您傳送的每個提示詞和 Claude 進行的每個工具呼叫

71* **變更您的工作階段**:重寫提示或工具呼叫、提交提示,就像您輸入的一樣,或傳送訊息到您的另一個工作階段87* **變更您的工作階段**:重寫提示詞或工具呼叫、提交提示詞,就像您輸入的一樣,或傳送訊息到您的另一個工作階段

72* **在不詢問您的情況下行動**:在詢問您之前核准工具呼叫88* **在不詢問您的情況下行動**:在詢問您之前核准工具呼叫

73* **花費您的使用量**:在您的計畫或 API 金鑰上呼叫模型89* **花費您的使用量**:在您的計畫或 API 金鑰上呼叫模型

74 90 

75核准工具呼叫的 mod 可以核准 `ask` 規則會提示的呼叫,或您自己的 `PreToolUse` hooks 阻止的呼叫。[使用 hooks 擴展權限](/docs/zh-TW/permissions#extend-permissions-with-hooks)列出此類 mod 可以核准的內容,包括何時可以核准 `deny` 規則拒絕的呼叫。91Mods 不在沙箱中執行。如果您開啟[沙箱機制](/docs/zh-TW/sandboxing),沙箱會隔離 Claude 執行的 Bash 命令,而 mod 啟動的程序則會在沙箱之外執行。

92 

93核准工具呼叫的 mod 可以核准 `ask` 規則會提示的呼叫,或您自己的 `PreToolUse` hook 阻止的呼叫。[使用 hook 擴展權限](/docs/zh-TW/permissions#extend-permissions-with-hooks)列出此類 mod 可以核准的內容,包括何時可以核准 `deny` 規則拒絕的呼叫。

76 94 

77Mod 可以重新設定 Claude Code 介面的大部分,但不能重新設定權限提示。它無法變更提示顯示給您的內容。95Mod 可以重新設定 Claude Code 介面的大部分,但不能重新設定權限提示。它無法變更提示顯示給您的內容。

78 96 


80 在安裝 mod 之前列出它的功能98 在安裝 mod 之前列出它的功能

81</h3>99</h3>

82 100 

83在您安裝 mod 之前,您可以列出它掛接的事件以及它要求 Claude Code 執行的操作,例如讀取檔案或發出網路請求,而無需執行它。首先取得外掛程式的檔案,例如透過複製其儲存庫。然後,在您的 shell 中,在外掛程式的目錄上執行 `claude plugin validate`:101在您安裝 mod 之前,您可以列出它處理的事件以及它要求 Claude Code 執行的操作,例如讀取檔案或發出網路請求,而無需執行它。首先取得外掛程式的檔案,例如透過複製其儲存庫。然後,在您的 shell 中,在外掛程式的目錄上執行 `claude plugin validate`:

84 102 

85```bash theme={null}103```bash theme={null}

86claude plugin validate ./some-mod104claude plugin validate ./some-mod


97若要關閉 mods,請選擇要停止多少個,以及停止多長時間。若要將它們重新開啟,請撤銷相同的變更:115若要關閉 mods,請選擇要停止多少個,以及停止多長時間。若要將它們重新開啟,請撤銷相同的變更:

98 116 

99* **一個 mod**:從[`/plugin` 中的**已安裝**標籤](/docs/zh-TW/plugins/install#manage-installed-plugins)停用或解除安裝其外掛程式117* **一個 mod**:從[`/plugin` 中的**已安裝**標籤](/docs/zh-TW/plugins/install#manage-installed-plugins)停用或解除安裝其外掛程式

100* **每個已安裝的 mod,一個工作階段**:使用 [`--safe-mode`](/docs/zh-TW/cli-reference#cli-flags) 啟動 Claude Code,這也會排除您的其他自訂118* **每個已安裝的 mod,一個工作階段**:使用 [`--safe-mode`](/docs/zh-TW/cli-reference#cli-flags) 啟動 Claude Code,這也會停用您的其他自訂

101* **您安裝的每個 mod,在每個工作階段中**:在 `~/.claude/settings.json` 中設定 [`"disableAllHooks": true`](/docs/zh-TW/settings-reference#disableallhooks)。您的設定 hooks 和自訂狀態行也會停止。您的組織管理的內容會繼續執行。119* **您安裝的每個 mod,在每個工作階段中**:在 `~/.claude/settings.json` 中設定 [`"disableAllHooks": true`](/docs/zh-TW/settings-reference#disableallhooks)。您的設定 hook 和自訂狀態列也會停止。您的組織管理的內容會繼續執行。

102 120 

103如果您透過組織使用 Claude Code,管理員也可以限制哪些 mods 載入。管理員從[停止使用者安裝的 mods 載入](/docs/zh-TW/plugins/mods/admin#stop-user-installed-mods-from-loading)開始。121如果您透過組織使用 Claude Code,管理員也可以限制哪些 mods 載入。管理員從[停止使用者安裝的 mods 載入](/docs/zh-TW/plugins/mods/admin#stop-user-installed-mods-from-loading)開始。

104 122 

123`disableAllHooks` 和您組織的 `allowManagedModsOnly` 會停止 mod,並保留其外掛的其餘部分:外掛會維持安裝狀態,其 skill、命令、agent 和 MCP 伺服器都會載入。其他設定和旗標的影響範圍更廣。[`disableAllHooks`](/docs/zh-TW/settings-reference#disableallhooks) 和[在 `allowManagedHooksOnly` 下執行的內容](/docs/zh-TW/settings-reference#what-runs-under-allowmanagedhooksonly)列出了每一項對外掛及其設定 hook 的影響。

124 

105若要了解 mods 是否可以為您載入,請參閱[檢查 mods 是否可以載入](/docs/zh-TW/plugins/mods/troubleshoot#check-whether-mods-can-load)。125若要了解 mods 是否可以為您載入,請參閱[檢查 mods 是否可以載入](/docs/zh-TW/plugins/mods/troubleshoot#check-whether-mods-can-load)。

106 126 

107<Note>127<Note>


118 Mod 的運作方式138 Mod 的運作方式

119</h2>139</h2>

120 140 

121Mod 是一個[外掛程式](/docs/zh-TW/plugins/overview),其程式碼註冊事件處理程式,稱為 hooks。Claude Code 在其事件發生時執行 hook,例如當 Claude 呼叫工具或繪製微調器時。一個小 mod 有三個檔案:141Mod 是一個[外掛程式](/docs/zh-TW/plugins/overview),其程式碼註冊事件處理程式,稱為 hook。Claude Code 在其事件發生時執行 hook,例如當 Claude 呼叫工具或繪製微調器時。一個小 mod 有三個檔案:

122 142 

123```text theme={null}143```text theme={null}

124first-mod/144first-mod/


131 151 

132* **`plugin.json`**:外掛程式的[清單](/docs/zh-TW/plugins/manifest-reference)152* **`plugin.json`**:外掛程式的[清單](/docs/zh-TW/plugins/manifest-reference)

133* **`hooks.json`**:[指向您的程式碼檔案](/docs/zh-TW/plugins/mods/reference#files)153* **`hooks.json`**:[指向您的程式碼檔案](/docs/zh-TW/plugins/mods/reference#files)

134* **`register.js`**:[您的程式碼](/docs/zh-TW/plugins/mods/create#write-a-mod-yourself),稱為 hooks 模組。它告訴 Claude Code 在哪些事件上執行您的函式。154* **`register.js`**:[您的程式碼](/docs/zh-TW/plugins/mods/create#write-a-mod-yourself),稱為 hook 模組。它告訴 Claude Code 在哪些事件上執行您的函式。

135 155 

136這是一個完整的 `register.js`。它計算 Claude 進行的工具呼叫,並在 Claude 工作時在微調器旁邊顯示計數,如 `Thinking · tool calls: 3…`。156這是一個完整的 `register.js`。它計算 Claude 進行的工具呼叫,並在 Claude 工作時在微調器旁邊顯示計數,如 `Thinking · tool calls: 3…`。

137 157 


158}178}

159```179```

160 180 

161該檔案註冊了兩個 hooks,兩者都使用頂部的 `calls` 變數:181該檔案註冊了兩個 hook,兩者都使用頂部的 `calls` 變數:

162 182 

163* **[`tool.call`](/docs/zh-TW/plugins/mods/reference#tools) hook** 在 Claude 即將使用工具時執行。它將一個加到 `calls`,要求 Claude Code 再次繪製介面,並讓工具照常執行。183* **[`tool.call`](/docs/zh-TW/plugins/mods/reference#tools) hook** 在 Claude 即將使用工具時執行。它將 `calls` 加一,要求 Claude Code 再次繪製介面,並讓工具照常執行。

164* **[`ui.render`](/docs/zh-TW/plugins/mods/reference#interface) hook** 在 Claude Code 繪製微調器時執行。它保留 Claude Code 自己的微調器,並在單詞後面新增計數。184* **[`ui.render`](/docs/zh-TW/plugins/mods/reference#interface) hook** 在 Claude Code 繪製微調器時執行。它保留 Claude Code 自己的微調器,並在單詞後面新增計數。

165 185 

166此記錄顯示 mod 的運作。觀看提示框上方的微調器行:當 Claude 列出目錄並讀取兩個檔案時,它讀取 `Thinking · tool calls: 1…`,然後 `2…`,然後 `3…`。186此錄影顯示 mod 的運作。觀看提示詞輸入框上方的微調器行:當 Claude 列出目錄並讀取兩個檔案時,它顯示 `Thinking · tool calls: 1…`,然後 `2…`,然後 `3…`。

167 187 

168<Frame>188<Frame>

169 <video autoPlay muted loop playsInline controls className="w-full dark:hidden" src="https://mintcdn.com/claude-code/dgiVO_Od1X1faduV/images/mods-overview-light.mp4?fit=max&auto=format&n=dgiVO_Od1X1faduV&q=85&s=00a18aa0743b59a700f0275ce226e6d1" aria-label="In a Claude Code session, the prompt 'list the files here and read the README' is typed and sent. While Claude works, the spinner reads 'Thinking · tool calls: 1', then 2, then 3, as Claude lists the files and reads two of them." data-path="images/mods-overview-light.mp4" />189 <video autoPlay muted loop playsInline controls className="w-full dark:hidden" src="https://mintcdn.com/claude-code/dgiVO_Od1X1faduV/images/mods-overview-light.mp4?fit=max&auto=format&n=dgiVO_Od1X1faduV&q=85&s=00a18aa0743b59a700f0275ce226e6d1" aria-label="In a Claude Code session, the prompt 'list the files here and read the README' is typed and sent. While Claude works, the spinner reads 'Thinking · tool calls: 1', then 2, then 3, as Claude lists the files and reads two of them." data-path="images/mods-overview-light.mp4" />


175 Hook 可以對事件做什麼195 Hook 可以對事件做什麼

176</h3>196</h3>

177 197 

178Claude Code 在對事件採取行動之前執行您的 hook,因此 hook 決定接下來會發生什麼。它有三個選擇:198Claude Code 在對事件採取行動之前執行您的 hook,因此 hook 決定接下來會發生什麼。它可以:

179 199 

180* **觀察**:注意正在發生的事情並讓它繼續不變,如範例中的 `tool.call` hook 所做的200* **觀察**:注意正在發生的事情並讓它繼續不變,如範例中的 `tool.call` hook 所做的

181* **重寫**:在事件繼續之前變更事件,如 `ui.render` hook 在將計數新增到微調器時所做的201* **重寫**:在事件繼續之前變更事件,如 `ui.render` hook 在將計數新增到微調器時所做的


189 Mods 執行的位置209 Mods 執行的位置

190</h3>210</h3>

191 211 

192Mod 的 hooks 在載入外掛程式的每種工作階段中執行。繪製更窄:只有終端機和 Desktop 應用程式顯示 mod 的窗格、帶狀區域和取代的列。此表列出您可能執行 Claude Code 的每個位置:212Mod 的 hook 在載入外掛程式的每種工作階段中執行。繪製的範圍較窄:只有終端機和 Desktop 應用程式顯示 mod 的窗格、帶狀區域和取代的列。此表列出您可能執行 Claude Code 的每個位置:

193 213 

194| 您執行 Claude Code 的位置 | Hooks 執行 | Mod 繪製的內容出現 |214| 您執行 Claude Code 的位置 | Hook 執行 | Mod 繪製的內容出現 |

195| :- | :- | :- |215| :- | :- | :- |

196| 終端機中的 `claude`,包括編輯器的整合終端機和 JetBrains 外掛程式 | 是 | 是 |216| 終端機中的 `claude`,包括編輯器的整合終端機和 JetBrains 外掛程式 | 是 | 是 |

197| Desktop 應用程式的 Code 標籤,除了 WSL 工作階段外 | 是 | 是,除了[元素表](/docs/zh-TW/plugins/mods/reference#elements)標記為僅限終端機的元素 |217| Desktop 應用程式的 Code 標籤,除了 WSL 工作階段外 | 是 | 是,除了[元素表](/docs/zh-TW/plugins/mods/reference#elements)標記為僅限終端機的元素 |

198| Desktop 應用程式中的 [WSL 工作階段](/docs/zh-TW/desktop-wsl) | 否,因為外掛程式在 WSL 工作階段中不可用 | 否 |218| Desktop 應用程式中的 [WSL 工作階段](/docs/zh-TW/desktop-wsl) | 否,因為外掛程式在 WSL 工作階段中不可用 | 否 |

199| VS Code 擴充功能的聊天面板 | 是 | 否 |219| VS Code 擴充功能的聊天面板 | 是 | 否 |

200| `claude -p` 和 [Agent SDK](/docs/zh-TW/agent-sdk/overview) | 是 | 否 |220| `claude -p` 和 [Agent SDK](/docs/zh-TW/agent-sdk/overview) | 是 | 否 |

201| 從 claude.ai 或行動應用程式的[遠端控制](/docs/zh-TW/remote-control) | 是,在您機器上的工作階段中 | 在您機器上的終端機中 |221| 從 claude.ai 或行動應用程式使用的 [Remote Control](/docs/zh-TW/remote-control) | 是,在您機器上的工作階段中 | 在您機器上的終端機中 |

202| [雲端工作階段](/docs/zh-TW/claude-code-on-the-web) | 是,對於[到達雲端工作階段](/docs/zh-TW/cloud-environments#what-carries-over-from-your-setup)的外掛程式 | 否 |222| [雲端工作階段](/docs/zh-TW/claude-code-on-the-web) | 是,對於[到達雲端工作階段](/docs/zh-TW/cloud-environments#what-carries-over-from-your-setup)的外掛程式 | 否 |

203 223 

204繪製的 mod 可以檢查它執行的應用程式,並在文字記錄中的行或命令的文字回覆中回退,其中沒有任何內容繪製。224會繪製內容的 mod 可以檢查它在哪個應用程式中執行,並在無法繪製的地方改為在逐字稿中顯示一行文字或使用命令的文字回覆。

205 225 

206<h2 id="control-mods-for-your-organization">226<h2 id="control-mods-for-your-organization">

207 為您的組織控制 mods227 為您的組織控制 mods


210管理員透過[受管設定](/docs/zh-TW/managed-settings)決定 mods 是否執行以及哪些執行。[為您的組織管理 mods](/docs/zh-TW/plugins/mods/admin)涵蓋預設情況、如何檢查 mod 以及如何使用您自己的 mod 強制執行原則。230管理員透過[受管設定](/docs/zh-TW/managed-settings)決定 mods 是否執行以及哪些執行。[為您的組織管理 mods](/docs/zh-TW/plugins/mods/admin)涵蓋預設情況、如何檢查 mod 以及如何使用您自己的 mod 強制執行原則。

211 231 

212<h2 id="compare-mods-settings-hooks-skills-and-mcp-servers">232<h2 id="compare-mods-settings-hooks-skills-and-mcp-servers">

213 比較 mods、設定 hooks、skills 和 MCP 伺服器233 比較 mods、設定 hook、skills 和 MCP 伺服器

214</h2>234</h2>

215 235 

216Mods、設定 hooks、skills 和 MCP 伺服器重疊。此表顯示每一個是什麼以及何時選擇它。236Mods、設定 hook、skills 和 MCP 伺服器的功能有所重疊。此表顯示每一個是什麼以及何時選擇它。

217 237 

218| | Mod | 設定 hook | Skill | MCP 伺服器 |238| | Mod | 設定 hook | Skill | MCP 伺服器 |

219| :- | :- | :- | :- | :- |239| :- | :- | :- | :- | :- |

220| 它是什麼 | Claude Code 在其自己的程序中呼叫的外掛程式中的函式 | Claude Code 在生命週期事件上執行的 shell 命令、HTTP 請求或提示 | Claude 讀取的 `SKILL.md` 檔案指令 | 提供 Claude 工具的外部程序或服務 |240| 它是什麼 | Claude Code 在其自己的程序中呼叫的外掛程式中的函式 | Claude Code 在生命週期事件上執行的 shell 命令、HTTP 請求或提示詞 | Claude 讀取的 `SKILL.md` 檔案指令 | 提供 Claude 工具的外部程序或服務 |

221| 它可以變更什麼 | 工具呼叫、提示、命令、回合以及介面繪製的內容 | 工具呼叫或提示是否繼續進行、工具呼叫的引數和結果,以及為 Claude 新增的內容 | Claude 知道和執行的內容 | Claude 擁有的工具 |241| 它可以變更什麼 | 工具呼叫、提示詞、命令、回合以及介面繪製的內容 | 工具呼叫或提示詞是否繼續進行、工具呼叫的引數和結果,以及為 Claude 新增的內容 | Claude 知道和執行的內容 | Claude 擁有的工具 |

222| 它可以在介面中繪製嗎 | 是 | 否 | 否 | 否 |242| 它可以在介面中繪製嗎 | 是 | 否 | 否 | 否 |

223| 您編寫什麼 | JavaScript 或 TypeScript | 指令碼和 `settings.json` 項目 | Markdown | 任何語言的伺服器 |243| 您編寫什麼 | JavaScript 或 TypeScript | 指令碼和 `settings.json` 項目 | Markdown | 任何語言的伺服器 |

224| 在以下情況下選擇它 | 您想要窗格、提示上方的帶狀區域、自訂命令或重寫事件 | 您想要使用您已經擁有的指令碼來阻止、允許或記錄事件 | 您不斷將相同的指令貼到聊天中 | Claude 需要到達外部系統 |244| 在以下情況下選擇它 | 您想要窗格、提示詞上方的帶狀區域、自訂命令或重寫事件 | 您想要使用您已經擁有的指令碼來阻止、允許或記錄事件 | 您不斷將相同的指令貼到聊天中 | Claude 需要存取外部系統 |

225 245 

226其他每一個都有自己的頁面:[Hooks](/docs/zh-TW/hooks)、[Skills](/docs/zh-TW/skills) 和 [MCP](/docs/zh-TW/mcp)。外掛程式可以保留所有四個,因此 mod 可以與 skill 和 MCP 伺服器一起在同一外掛程式中發送。246其他每一個都有自己的頁面:[Hooks](/docs/zh-TW/hooks)、[Skills](/docs/zh-TW/skills) 和 [MCP](/docs/zh-TW/mcp)。外掛程式可以包含上述所有項目,因此 mod 可以與 skill 和 MCP 伺服器一起在同一個外掛程式中發布。

227 247 

228<h2 id="mods-built-into-claude-code">248<h2 id="mods-built-into-claude-code">

229 內建於 Claude Code 的 Mods249 內建於 Claude Code 的 Mods

230</h2>250</h2>

231 251 

232Claude Code 的某些功能是 mods。若要查看您的工作階段擁有的功能,請在 Claude Code 提示處執行 `/plugin` 並前往**已安裝**標籤,該標籤在**內建**下列出它們。您無法更新或解除安裝內建 mod,表格的最後一列說明如何關閉每一個。[`mods active` 行](#see-which-mods-a-session-loaded)排除內建 mods。252Claude Code 的某些功能是 mods。若要查看您的工作階段擁有的功能,請在 Claude Code 提示處執行 `/plugin` 並前往**已安裝**標籤,該標籤在**內建**下列出它們。您無法更新或解除安裝內建 mod,表格的最後一欄說明如何關閉每一個。[`mods active` 行](#see-which-mods-a-session-loaded)排除內建 mods。

233 253 

234此表按 `/plugin` 顯示的名稱列出每個項目:254此表按 `/plugin` 顯示的名稱列出每個項目:

235 255 


240| `cc-plugin-plugin-authoring` | 為 Claude 提供[`plugin-authoring` skill](/docs/zh-TW/plugins/mods/create#ask-claude-for-a-mod)以編寫 mods。它保留 skill 且沒有 mod 程式碼。 | 除非 Anthropic 已遠端關閉已安裝的 mods | 在 `/plugin` 中停用它 |260| `cc-plugin-plugin-authoring` | 為 Claude 提供[`plugin-authoring` skill](/docs/zh-TW/plugins/mods/create#ask-claude-for-a-mod)以編寫 mods。它保留 skill 且沒有 mod 程式碼。 | 除非 Anthropic 已遠端關閉已安裝的 mods | 在 `/plugin` 中停用它 |

241| `cc-plugin-sec-default` | 保護您的組織管理的內容免受使用者安裝的 mods | [保護載入的位置](/docs/zh-TW/plugins/mods/admin#know-what-happens-by-default) | 您無法。管理員在受管設定中[設定順序](/docs/zh-TW/plugins/mods/admin#install-your-organizations-mods) |261| `cc-plugin-sec-default` | 保護您的組織管理的內容免受使用者安裝的 mods | [保護載入的位置](/docs/zh-TW/plugins/mods/admin#know-what-happens-by-default) | 您無法。管理員在受管設定中[設定順序](/docs/zh-TW/plugins/mods/admin#install-your-organizations-mods) |

242| `cc-plugin-telemetry` | 傳送 Claude Code 及其內建 mods 記錄的分析記錄 | 無論 Claude Code 自己的分析在哪裡開啟 | 在 `/plugin` 中停用它,或關閉分析,例如使用 [`DISABLE_TELEMETRY`](/docs/zh-TW/env-vars) |262| `cc-plugin-telemetry` | 傳送 Claude Code 及其內建 mods 記錄的分析記錄 | 無論 Claude Code 自己的分析在哪裡開啟 | 在 `/plugin` 中停用它,或關閉分析,例如使用 [`DISABLE_TELEMETRY`](/docs/zh-TW/env-vars) |

243| `cc-plugin-you-should-know` | 執行一個側邊代理,在 Claude 處理較長的任務時監視您的背景。當它發現值得了解的東西而您可能會錯過時,它會在提示上方顯示一個備註。 | 預設停用。如果可供您的組織使用,列在 `/plugin` -> **已安裝** -> **顯示已停用**。使用 [`/plugin enable cc-plugin-you-should-know@builtin`](/docs/zh-TW/plugins/cli-reference#plugin-in-a-session) 啟用。 | 在 `/plugin` 中停用它 |263| `cc-plugin-you-should-know` | 執行一個側邊 agent,在 Claude 處理較長的任務時監視您的背景。當它發現值得了解的東西而您可能會錯過時,它會在提示上方顯示一個備註。 | 預設停用。如果可供您的組織使用,列在 `/plugin` -> **已安裝** -> **顯示已停用**。使用 [`/plugin enable cc-plugin-you-should-know@builtin`](/docs/zh-TW/plugins/cli-reference#plugin-in-a-session) 啟用。 | 在 `/plugin` 中停用它 |

244 264 

245停止已安裝 mods 的設定和旗標,例如 `disableAllHooks`、`--bare` 和 `--safe-mode`,不會停止內建 mods。265停止已安裝 mods 的設定和旗標,例如 `disableAllHooks`、`--bare` 和 `--safe-mode`,不會停止內建 mods。

246 266 


248 讀取內建 mods 的來源268 讀取內建 mods 的來源

249</h3>269</h3>

250 270 

251這些 mods 中的四個的來源在 [Claude Code 儲存庫的 `mods` 目錄](https://github.com/anthropics/claude-code/tree/main/mods)中是公開的。每一個都是一個完整的外掛程式,具有其 hooks 模組和測試:271這些 mods 中部分 mod 的來源在 [Claude Code 儲存庫的 `mods` 目錄](https://github.com/anthropics/claude-code/tree/main/mods)中是公開的。每一個都是一個完整的外掛程式,具有其 hooks 模組和測試:

252 272 

253* [`diff`](https://github.com/anthropics/claude-code/tree/main/mods/diff):`/diff` 窗格,具有綁定到鍵盤動作的按鈕和 mod 自己處理的捲動273* [`diff`](https://github.com/anthropics/claude-code/tree/main/mods/diff):`/diff` 窗格,具有綁定到鍵盤動作的按鈕和 mod 自己處理的捲動

254* [`agents-md`](https://github.com/anthropics/claude-code/tree/main/mods/agents-md):將 `AGENTS.md` 載入為專案指令,具有 [`userConfig`](/docs/zh-TW/plugins/components#user-configuration) 選項274* [`agents-md`](https://github.com/anthropics/claude-code/tree/main/mods/agents-md):將 `AGENTS.md` 載入為專案指令,具有 [`userConfig`](/docs/zh-TW/plugins/components#user-configuration) 選項


260</h2>280</h2>

261 281 

262* [建立 mod](/docs/zh-TW/plugins/mods/create):建立一個計算工具呼叫、在微調器旁邊顯示計數並新增命令的 mod,並了解編輯和重新載入迴圈282* [建立 mod](/docs/zh-TW/plugins/mods/create):建立一個計算工具呼叫、在微調器旁邊顯示計數並新增命令的 mod,並了解編輯和重新載入迴圈

263* [在介面中繪製](/docs/zh-TW/plugins/mods/interface):窗格、提示上方的帶狀區域、按鈕、文字欄位和狀態283* [在介面中繪製](/docs/zh-TW/plugins/mods/interface):窗格、提示詞上方的帶狀區域、按鈕、文字欄位和狀態

264* [對事件做出反應](/docs/zh-TW/plugins/mods/events):工具呼叫、提示、回合以及 mods 執行的順序284* [對事件做出反應](/docs/zh-TW/plugins/mods/events):工具呼叫、提示詞、回合以及 mods 執行的順序

265* [使用 mods API](/docs/zh-TW/plugins/mods/api):命令、工具、模型呼叫、計時器和檔案285* [使用 mods API](/docs/zh-TW/plugins/mods/api):命令、工具、模型呼叫、計時器和檔案

266* [測試 mod](/docs/zh-TW/plugins/mods/test):在沒有工作階段的情況下執行的自動化測試286* [測試 mod](/docs/zh-TW/plugins/mods/test):在沒有工作階段的情況下執行的自動化測試

267* [對 mod 進行故障排除](/docs/zh-TW/plugins/mods/troubleshoot):mod 不執行任何操作的原因以及偵錯記錄287* [對 mod 進行故障排除](/docs/zh-TW/plugins/mods/troubleshoot):mod 不執行任何操作的原因以及偵錯日誌

268* [為您的組織管理 mods](/docs/zh-TW/plugins/mods/admin):預設值、受管設定、檢查 mod 和原則 mods288* [為您的組織管理 mods](/docs/zh-TW/plugins/mods/admin):預設值、受管設定、檢查 mod 和原則 mods

269* [Mods 參考](/docs/zh-TW/plugins/mods/reference):每個事件、方法、元素和限制289* [Mods 參考](/docs/zh-TW/plugins/mods/reference):事件、方法、元素和限制

plugins/mods/reference.md +326 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# Mods 參考資料

6 

7> Claude Code mod 的完整參考資料:hook 模組配置、事件、mods API 方法、轉譯位置、各使用介面的元素、限制與設定。

8 

9查詢 [mod](/docs/zh-TW/plugins/mods/overview) 可處理的任何事件、可呼叫的任何 mods API 方法,或可繪製的任何轉譯位置,適用於 v2.1.287 版起的 Claude Code CLI 與 Desktop 應用程式。每個項目皆提供名稱與一行說明,若有對應的指南章節,亦會連結至該處。

10 

11<Note>

12 完整的參考資料是 Claude Code 的 [mod TypeScript 宣告](https://github.com/anthropics/claude-code/blob/main/mods/types/claude-code.d.ts),其中以範例描述每個事件、方法與元素。GitHub 上的副本可能比您安裝的 Claude Code 版本更舊。兩者不一致時,請以 [Claude Code 為您的版本寫入的副本](/docs/zh-TW/plugins/mods/create#get-the-types-for-your-build)為準。

13</Note>

14 

15<h2 id="files">

16 檔案

17</h2>

18 

19mod 是包含下列檔案的外掛目錄:

20 

21| 檔案 | 必要 | 內容 |

22| :- | :- | :- |

23| `.claude-plugin/plugin.json` | 是 | 外掛[資訊清單](/docs/zh-TW/plugins/manifest-reference)。mod 不會新增任何必要欄位。 |

24| `hooks/hooks.json` | 是 | `modules`:一個陣列,內含一個相對於此檔案、指向 hook 模組的路徑,例如 `"modules": ["./register.js"]`。也可以在 `hooks` 下存放[設定 hook](/docs/zh-TW/hooks)。 |

25| hook 模組,例如 [`hooks/register.js`](/docs/zh-TW/plugins/mods/create#write-a-mod-yourself) | 是 | mod 的進入點。匯出 `register(on, options)`。檔名為 `.js`、`.mjs`、`.cjs`、`.jsx`、`.ts`、`.mts`、`.cts` 或 `.tsx`。為 ES 模組。 |

26| [`types/index.d.ts`](/docs/zh-TW/plugins/mods/interface#declare-the-values),由資訊清單中的 `types` 指定 | 當 mod 使用 `$.state` 或在 mods API 中新增命名空間時 | 宣告 `PluginState` 值以及 mod 新增的任何命名空間 |

27| 檔名以 `.test.ts` 或 `.test.tsx` 結尾的檔案 | 否 | [`claude plugin test`](/docs/zh-TW/plugins/mods/test#write-a-test) 執行的測試 |

28 

29`register` 會接收 `on` 與 `options`。`options` 存放資訊清單所宣告之 [`userConfig`](/docs/zh-TW/plugins/components#user-configuration) 欄位的值,並已填入預設值。

30 

31<h2 id="the-hook-function">

32 hook 函式

33</h2>

34 

35mod 透過在 `register` 內呼叫 `on` 來註冊其每個 hook(即事件處理常式)。`on` 接受事件名稱、選用的 [matcher](/docs/zh-TW/plugins/mods/events#filter-which-events-a-hook-handles)(針對事件欄位的篩選條件),以及 hook 本身,例如 `on('tool.call', { tool: 'Bash' }, async ($, e, next) => next(e))`。`on` 會回傳一個只有一個方法 `.catch(handler)` 的註冊物件,用來設定 hook 的[錯誤處理常式](/docs/zh-TW/plugins/mods/events#handle-a-hook-that-fails)。

36 

37| 引數 | 說明 |

38| :- | :- |

39| [`$`](/docs/zh-TW/plugins/mods/events#how-a-hook-handles-an-event) | mods API:[mods API 方法](#mods-api-methods)中的每個方法。每次呼叫請完整寫出,先命名空間再方法,例如 `$.fs.read('notes.md')`。 |

40| [`e`](/docs/zh-TW/plugins/mods/events#how-a-hook-handles-an-event) | 事件的輸入,為深度凍結的純資料。若要變更,請將副本傳給 `next`。 |

41| [`next(e)`](/docs/zh-TW/plugins/mods/events#how-a-hook-handles-an-event) | 下一個處理常式,如同中介軟體。會執行此 hook 之後的 hook,接著執行 Claude Code 的行為。解析為事件的結果。 |

42| [`next.signal`](/docs/zh-TW/plugins/mods/api#stop-background-work) | 一個 `AbortSignal`,在事件被放棄時中止 |

43| `next.origin` | 觸發事件者的 `{ plugin, tier }`。Claude Code 本身為 `{ plugin: 'engine', tier: 'core' }`。mod 的 `tier` 是它在 [mod 執行順序](/docs/zh-TW/plugins/mods/events#the-order-mods-run-in)中的優先群組:`prepend`、`user`、`append` 或 `builtin`。 |

44| `next.budget` | hook 的時間限制(毫秒):`next.budget.ms` 為整體限制,`next.budget.remainingMs` 為目前剩餘時間 |

45| `next.to(e, tier)` | 跳至較後面的層級,即 `append`、`builtin` 或 `core`。`next.to(e, 'append')` 會略過使用者安裝的 mod。只有 `prependPlugins` 或 `appendPlugins` 中的 mod 可以呼叫它。 |

46| `next.error`、`next.called` | 僅限 `.catch` 處理常式中。`next.error.kind` 為 `throw` 或 `timeout`,`next.error.message` 為錯誤文字,當失敗的 hook 曾呼叫 `next` 時,`next.called` 為 `true`。 |

47 

48<h2 id="events">

49 事件

50</h2>

51 

52事件依其相關內容分組,並列出每個事件的觸發時機,以及其上的 hook 可回傳的內容。`turn.step` 與 `process.spawn` 上的 hook 是非同步產生器,其他 hook 則是非同步函式。

53 

54每個表格的最後一欄使用簡寫。`next(e)` 會將事件原封不動地傳遞下去。`next({ ...e, text })` 會傳遞變更了指定欄位的副本,例如 `next({ ...e, text: e.text.trim() })`。物件會在不呼叫 `next` 的情況下回應事件,而 `reason` 之類的詞代表您撰寫的字串,例如 `{ deny: 'Use the file tools.' }`。

55 

56<h3 id="tools">

57 工具

58</h3>

59 

60工具事件在 Claude 發出的每個工具呼叫前後觸發,從 Claude 讀取的說明,到是否執行該呼叫的決定:

61 

62| 事件 | 觸發時機 | hook 可回傳 |

63| :- | :- | :- |

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` |

66| `tool.describe` | 每個工具一次,在其說明首次傳送給 Claude 時 | `{ description }` |

67 

68<h3 id="prompts-and-what-claude-reads">

69 提示詞與 Claude 讀取的內容

70</h3>

71 

72提示詞事件涵蓋使用者輸入的文字,以及 Claude Code 自行傳送給 Claude 的文字,例如系統提示詞與提醒:

73 

74| 事件 | 觸發時機 | hook 可回傳 |

75| :- | :- | :- |

76| [`prompt.submit`](/docs/zh-TW/plugins/mods/events#rewrite-or-add-to-a-prompt) | 提交提示詞時 | `next({ ...e, text })`、`next({ ...e, context })` 或 `{ drop: reason }` |

77| `prompt.fill`、`prompt.suggest` | 文字即將以草稿或淡色建議的形式放入提示詞輸入框時 | 變更了文字的 `next(e)` |

78| `prompt.edit` | 使用者編輯提示詞輸入框時 | `next(e)` |

79| `prompt.compose` | Claude Code 轉譯系統提示詞時 | `{ sections }`,即依傳送順序排列的 `{ id, text, scope }` 清單 |

80| [`prompt.section`](/docs/zh-TW/plugins/mods/events#rewrite-or-add-to-a-prompt) | 系統提示詞的每個具名區段各一次。`e.name` 是該區段在 `prompt.compose` 中的 `id`。 | `{ text }`,或以 `{ text: null }` 省略該區段 |

81| [`prompt.context`](/docs/zh-TW/plugins/mods/events#rewrite-or-add-to-a-prompt) | 每個對話一次,針對隨第一則訊息傳送的上下文 | `{ blocks }` |

82| `prompt.attachment` | Claude Code 為 Claude 新增一則自己的訊息時,例如提醒。`e.type` 指出種類,對於型別有宣告的種類,`e.detail` 存放撰寫該文字所依據的事實。 | `{ text }`,或以 `{ text: null }` 省略 |

83| [`skill.prompt`](/docs/zh-TW/plugins/mods/events#rewrite-or-add-to-a-prompt) | skill 的文字為 Claude 展開時 | `{ text }` |

84| `attribution.text` | Claude Code 撰寫提交或 pull request 的歸屬文字時 | `{ text }` |

85 

86<h3 id="commands-and-configuration">

87 命令與設定

88</h3>

89 

90命令與設定事件在命令執行或被列出時,以及 `/config` 列被顯示或變更時觸發:

91 

92| 事件 | 觸發時機 | hook 可回傳 |

93| :- | :- | :- |

94| [`command.run`](/docs/zh-TW/plugins/mods/api#add-a-command) | 命令即將執行時 | `{ text }`、`{}` 或 `next(e)` |

95| `command.describe` | 每個命令一次,用於命令清單 | `{ description, argumentHint, isHidden }` |

96| `config.set` | `/config` 列即將變更時 | `next({ ...e, value })` 或 `{ deny: reason }` |

97| `config.describe` | 每個 `/config` 列一次 | `{ label, description, isHidden }` |

98 

99<h3 id="turns">

100 回合

101</h3>

102 

103回合事件從頭到尾追蹤一次回答,包括其中每個對模型的請求:

104 

105| 事件 | 觸發時機 | hook 可回傳 |

106| :- | :- | :- |

107| [`turn.start`](/docs/zh-TW/plugins/mods/events#follow-a-turn) | 回合開始時 | `next(e)` |

108| [`turn.step`](/docs/zh-TW/plugins/mods/events#follow-a-turn) | 一個請求即將傳送給模型時 | `yield* next(e)`,或 `next({ ...e, model })`、`next({ ...e, effort })` |

109| [`turn.complete`](/docs/zh-TW/plugins/mods/events#follow-a-turn) | 回合結束時 | `next(e)`,或以 `{ text }` 在回答下方顯示一行 |

110 

111<h3 id="session">

112 工作階段

113</h3>

114 

115工作階段事件標示工作階段的開始、結束、壓縮,以及與其他工作階段交換訊息:

116 

117| 事件 | 觸發時機 | hook 可回傳 |

118| :- | :- | :- |

119| [`session.start`](/docs/zh-TW/plugins/mods/api#add-a-command-or-a-tool) | 每個已載入的 mod 一次,在第一個提示詞之前,並在該 mod 重新載入後再次觸發。`/clear`、`/resume` 或 `/branch` 之後不會觸發。 | `next(e)` |

120| `session.end` | 工作階段結束,或執行 `/clear`、`/resume` 或 `/branch` 時。`e.reason` 為 `clear`、`resume`、`logout`、`prompt_input_exit` 或 `other`。`/branch` 會回報 `resume`。 | `next(e)` |

121| `session.compact` | 對話即將被壓縮時 | `{ skip: reason }` |

122| [`session.receive`](/docs/zh-TW/plugins/mods/api#send-and-receive-messages-between-sessions)、[`session.send`](/docs/zh-TW/plugins/mods/api#send-and-receive-messages-between-sessions) | 訊息從另一個 agent 或工作階段送達,或即將傳送至另一個 agent 或工作階段時。請參閱[在工作階段之間傳送與接收訊息](/docs/zh-TW/plugins/mods/api#send-and-receive-messages-between-sessions)。 | `receive` 為 `{ consumed: reason }`,`send` 為 `{ isDelivered: false, reason }` |

123| `session.append` | 對話保留的每一列各一次,例如提示詞、回應區塊、工具結果或通知,在其儲存之前 | 以 `next({ ...e, message })` 改寫該列的 `content` |

124| `session.attach`、`session.detach` | 另一個應用程式連線至工作階段或與其中斷連線時 | `next(e)` |

125| `session.measure` | 每個回合之後,以及方案限制的使用百分比變更時 | `next(e)` |

126 

127<h3 id="subagents">

128 Subagent

129</h3>

130 

131subagent 事件在 subagent 類型提供給 Claude 時,以及 subagent 即將啟動時觸發:

132 

133| 事件 | 觸發時機 | hook 可回傳 |

134| :- | :- | :- |

135| `agent.offer` | subagent 類型提供給 Claude 時 | 以 `{ isOffered: false }` 保留不提供 |

136| `agent.spawn` | subagent 即將啟動時 | `{ model }` 或 `{ deny: reason }` |

137 

138<h3 id="interface">

139 介面

140</h3>

141 

142介面事件在 Claude Code 繪製轉譯位置時,以及使用者使用 mod 所繪製的控制項時觸發。[在介面中繪製](/docs/zh-TW/plugins/mods/interface)說明 `ui.render` hook 回傳的內容:

143 

144| 事件 | 觸發時機 |

145| :- | :- |

146| [`ui.render`](/docs/zh-TW/plugins/mods/interface#pick-where-to-draw) | [轉譯位置](#render-sites)即將被繪製時 |

147| `ui.resolve` | mod 載入時,每個應用程式、轉譯位置與 mod 各一次。結果是 `$.ui.resolve(e)` 讀取的元素表。 |

148| [`ui.press`](/docs/zh-TW/plugins/mods/interface#respond-to-presses-and-typing)、[`ui.input`](/docs/zh-TW/plugins/mods/interface#respond-to-presses-and-typing)、[`ui.select`](/docs/zh-TW/plugins/mods/interface#respond-to-presses-and-typing) | mod 所繪製的 `Button`、`Input` 或 `Select` 被使用時 |

149| `ui.focus`、`ui.scroll` | 焦點所在的控制項,或窗格或橫帶的捲動位置即將變更時 |

150| `ui.close` | 窗格即將關閉時。`e.id` 為該窗格,`e.origin.kind` 為 `plugin`、`person` 或 `unload`。 |

151| [`ui.message`](/docs/zh-TW/plugins/mods/interface#build-a-tree-from-elements) | `Client` 元素將資料傳送給其 mod 時 |

152 

153<h3 id="other-mods">

154 其他 mod

155</h3>

156 

157這些事件讓 mod 能在其他 mod 載入時對其採取行動,例如拒絕某個 mod,或變更它所接收的 mods API:

158 

159| 事件 | 觸發時機 | hook 可回傳 |

160| :- | :- | :- |

161| [`plugin.register`](/docs/zh-TW/plugins/mods/admin#enforce-a-policy-with-a-mod-of-your-own) | hook 模組即將載入時。`e.uses` 列出其事件、mods API 呼叫、環境變數與狀態,與 `claude plugin validate` 印出的內容相同。每個呼叫都不含 `$.` 前綴,例如 `fs.read`。 | `{ refuse: reason }` |

162| `engine.create` | 正在為此 mod 建置 mods API 時 | 變更後的 mods API,用以新增或保留某個命名空間 |

163 

164<h3 id="telemetry">

165 遙測

166</h3>

167 

168遙測事件針對 Claude Code 記錄的使用紀錄觸發:

169 

170| 事件 | 觸發時機 | hook 可回傳 |

171| :- | :- | :- |

172| `telemetry.log`、`telemetry.mark` | 遙測紀錄即將被記錄,或標記某項功能的一次使用時。在您安裝的 mod 中,請為遙測 hook 加上篩選條件 `{ to: 'collector' }`,例如 `on('telemetry.log', { to: 'collector' }, hook)`。若沒有此篩選條件,該 mod 將無法通過 `claude plugin validate`。`*` 不會比對這些事件。 | `next(e)` 或 `{ deny: reason }` |

173 

174<h3 id="settings-hook-events">

175 設定 hook 事件

176</h3>

177 

178每個[設定 hook 事件](/docs/zh-TW/hooks#hook-events)都是名為 `classic.<Event>` 的事件,例如 `classic.Stop` 或 `classic.PostToolUse`。`e` 是該 hook 的 stdin JSON。

179 

180<h3 id="mods-api-calls">

181 mods API 呼叫

182</h3>

183 

184每個 [mods API 方法](#mods-api-methods)也是一個事件,以其命名空間與方法命名,例如 `fs.read`、`model.complete` 或 `ui.open`。其上的 hook 會攔截在它之後執行之 mod 的呼叫,並可回傳 `next(e)`、`{ deny: reason }` 或 `{ value }`。

185 

186<h2 id="mods-api-methods">

187 Mods API 方法

188</h2>

189 

190mods API 是每個 hook 接收的 `$` 引數。其方法依命名空間分組,例如 `$.ui`。此表依名稱列出每個命名空間的方法,因此 `$.ui` 列中的 `open` 即為呼叫 `$.ui.open(...)`。指南會示範常用方法的用法,而[您建置版本的型別](/docs/zh-TW/plugins/mods/create#get-the-types-for-your-build)則以範例記錄每個方法。

191 

192| 命名空間 | 方法 |

193| :- | :- |

194| `$.plugin` | `name`、`root`:此外掛的名稱與目錄 |

195| [`$.ui`](/docs/zh-TW/plugins/mods/interface#pick-where-to-draw) | `resolve`、`invalidate`、`open`、`close`、`panes`、`focus`、`scroll`、`toast`、`status`、`log`、`notice`、`ask`、`copy`、`blit` |

196| [`$.command`](/docs/zh-TW/plugins/mods/api#add-a-command) | `register`、`run`、`list` |

197| [`$.tool`](/docs/zh-TW/plugins/mods/api#add-a-tool) | `register`、`call`、`check`、`list` |

198| `$.agent` | `register`、`spawn`、`list` |

199| [`$.model`](/docs/zh-TW/plugins/mods/api#call-a-model) | `complete`、`fork`、`classify` |

200| [`$.prompt`](/docs/zh-TW/plugins/mods/api#start-a-turn-from-a-background-job) | `submit`、`read`、`fill`、`suggest`、`compose`。Claude 會在一個指明您的 mod 為傳送者的句子之後,讀取來自 `submit({ text })` 的文字。`submit({ text, asUser: true })` 會將文字當作使用者本人的話傳送,不附帶該句子。 |

201| `$.turn` | `abort` |

202| [`$.session`](/docs/zh-TW/plugins/mods/api#send-and-receive-messages-between-sessions) | `messages`、`cwd`、`root`、`model`、`turns`、`id`、`repo`、`surfaces`、`usage`、`version`、`compact`、`send`、`append`、`authorize`。`usage()` 回傳 `{ startedAt, context, rateLimits, cost }`:`context` 包含 `tokens`、`window` 與 `percent`,`rateLimits` 是 `{ kind, percentUsed, resetsAt }` 的清單。 |

203| `$.config` | `list`、`set` |

204| [`$.settings`](/docs/zh-TW/plugins/mods/api#reach-files-processes-and-the-network) | `read` |

205| [`$.env`](/docs/zh-TW/plugins/mods/api#reach-files-processes-and-the-network) | `get`、`set` |

206| [`$.fs`](/docs/zh-TW/plugins/mods/api#reach-files-processes-and-the-network) | `read`、`write`、`list`、`exists`、`stat`、`ancestors`。`write` 不是不可分割的操作:它會就地取代檔案內容,因此其他程序可能讀到寫入一半的檔案。多個工作階段都會變更的資料,請存放在 `$.store` 中。 |

207| [`$.store`](/docs/zh-TW/plugins/mods/interface#keep-state) | `get`、`set`、`delete`、`keys`。由機器上每個工作階段共用的鍵值儲存區。請參閱[從多個工作階段儲存](/docs/zh-TW/plugins/mods/interface#save-from-more-than-one-session)。 |

208| [`$.state`](/docs/zh-TW/plugins/mods/interface#keep-a-value-in-\$-state) | 反應式狀態:`get`、`set`,以及從 `claude-code` 匯入的輔助函式 `atom`、`read`、`update`、`derive` 與 `memberOf` |

209| [`$.clock`](/docs/zh-TW/plugins/mods/api#run-work-in-the-background) | `now`、`sleep`、`after`、`every` |

210| [`$.http`](/docs/zh-TW/plugins/mods/api#reach-files-processes-and-the-network) | `fetch` |

211| [`$.process`](/docs/zh-TW/plugins/mods/api#reach-files-processes-and-the-network) | `run`、`spawn` |

212| [`$.mcp`](/docs/zh-TW/plugins/mods/api#reach-files-processes-and-the-network) | `call`、`connect`。`connect(server)` 會連線至您自己外掛的資訊清單所列出的 MCP 伺服器。 |

213| `$.audio` | `play`、`speak` |

214| `$.telemetry` | `log`、`mark`。只有當 Claude Code 或內建 mod 發出呼叫時,才會傳送紀錄。 |

215 

216<h2 id="render-sites">

217 轉譯位置

218</h2>

219 

220轉譯位置是 Claude Code 介面中的擴充點。每一列都是 `ui.render` hook 中 `e.component` 的一個值,並列出 `e.props` 的欄位以及轉譯它的應用程式。`e.surface` 為 `terminal` 或 `desktop`。[變更 Claude Code 既有的繪製內容](/docs/zh-TW/plugins/mods/interface#change-what-claude-code-already-draws)說明 hook 能在某個位置做什麼,並為每種選擇提供範例。

221 

222| 位置 | `e.props` | `e.requestId` | 轉譯於 |

223| :- | :- | :- | :- |

224| [`Pane`](/docs/zh-TW/plugins/mods/interface#pick-where-to-draw) | `title`、`isFocused`、`bodyColumns`、`placement`、`scroll`、`view` | 窗格的 `id` | 終端機、Desktop |

225| [`AbovePrompt`](/docs/zh-TW/plugins/mods/interface#pick-where-to-draw) | `hasSurvey`、`isWorking`、`maxRows`、`bodyColumns`、`scroll`、`view` | 單一實例 | 終端機、Desktop |

226| `UserMessage` | `text`、`origin`、`isExpanded`,以及依來源而定的 `task` 或 `from` | 訊息 id | 終端機、Desktop |

227| `AssistantMessage` | 回覆的文字 | 訊息 id | 終端機、Desktop |

228| `ToolUse`、`ToolResult`、`ToolGroup` | 工具的名稱、輸入與結果 | 工具呼叫 id | 終端機、Desktop |

229| `CommandOutput` | `command`、`text` | 訊息 id | 終端機、Desktop |

230| [`AskUserQuestion`](/docs/zh-TW/plugins/mods/interface#change-what-claude-code-already-draws) | 問題與選項 | 工具呼叫 id | 終端機、Desktop |

231| `ToolProgress` | `kind` | 工具呼叫 id | 終端機 |

232| [`Spinner`](/docs/zh-TW/plugins/mods/interface#change-what-claude-code-already-draws) | `word`、`message`、`suffix`、`mode` | agent id | 終端機、Desktop |

233| `TurnDuration` | `word`、`durationMs` | 訊息 id | 終端機 |

234| `InfoNotice` | `text`、`command` | 訊息 id | 終端機 |

235| `SessionMode` | `modes` | 單一實例 | 終端機、Desktop |

236| `PromptHint` | `isDraft`、`isWorking`、`hint` | 單一實例 | 終端機、Desktop |

237 

238`e.viewport` 存放 `columns`、`rows` 與 `isFullscreen`。在應用程式量測其視窗之前,它不會存在。其 `rows` 是整個視窗的高度,而非您窗格的高度。

239 

240若要讓樹狀結構符合其位置,請在 hook 中讀取下列 prop:

241 

242* **`Pane` 或橫帶的寬度**:依 `e.props.bodyColumns` 繪製

243* **逐字稿旁 `Pane` 的高度**:當 `e.props.placement` 為 `'dock'` 時,`e.props.scroll.bodyRows` 是窗格擁有的列數

244* **提示詞上方 `Pane` 的高度**:當 `e.props.placement` 為 `'inline'` 時,窗格會隨您的樹狀結構增高,直到上限為止,而 `bodyRows` 只計算目前顯示的列數。[`$.ui.open` 的 `rows` 欄位](/docs/zh-TW/plugins/mods/interface#open-a-pane-at-the-right-time)可要求不同的上限。

245 

246高於窗格的樹狀結構會整體捲動。

247 

248<h2 id="elements">

249 元素

250</h2>

251 

252元素是 `ui.render` hook 所回傳樹狀結構的建構區塊,您可以從 `$.ui.resolve(e)` 取得。[從元素建立樹狀結構](/docs/zh-TW/plugins/mods/interface#build-a-tree-from-elements)會展示常用元素以及終端機如何繪製它們,[介面圖庫](/docs/zh-TW/plugins/mods/gallery)則提供大多數元素的螢幕截圖。勾號表示該應用程式可以繪製此元素。

253 

254| 元素 | 主要 prop | 終端機 | Desktop |

255| :- | :- | :-: | :-: |

256| [`Box`](/docs/zh-TW/plugins/mods/interface#build-a-tree-from-elements) | `key`、flex 版面配置、`gap`、`padding`、`margin`、`width`、`height`、`borderStyle`、`backgroundColor`、`position`、`hover` | ✓ | ✓ |

257| [`Text`](/docs/zh-TW/plugins/mods/interface#build-a-tree-from-elements) | `color`、`backgroundColor`、`bold`、`italic`、`underline`、`dimColor`、`inverse`、`wrap` | ✓ | ✓ |

258| [`Button`](/docs/zh-TW/plugins/mods/interface#respond-to-presses-and-typing) | `key`、`label`、`onPress`、`hotkey`、`plain`、`dimColor`、`autoFocus`、`action` | ✓ | ✓ |

259| `Link` | `href`、`label` | ✓ | ✓ |

260| `Code` | 程式碼,最多 10,000 個字元 | ✓ | ✓ |

261| `Markdown` | `text`(最多 10,000 個字元)、`key`、`dimColor`、`onLinkPress`、`pressableLinks` | ✓ | ✓ |

262| [`Input`](/docs/zh-TW/plugins/mods/interface#take-typed-input-and-draw-a-row-for-each-item) | `key`、`label`、`placeholder`、`value`、`submitLabel`、`onSubmit`、`onInput`、`autoFocus` | ✓ | ✓ |

263| `Select` | `key`、`label`、`options`、`value`、`onSelect`、`autoFocus` | ✓ | ✓ |

264| `Svg` | SVG 文件,最多 131,072 個字元 | | ✓ |

265| [`Client`](/docs/zh-TW/plugins/mods/interface#build-a-tree-from-elements) | `module`、`key` | ✓ | ✓ |

266| [`Raster`](/docs/zh-TW/plugins/mods/interface#draw-a-grid-of-colored-cells) | `key`、最多 512 的 `columns`、最多 256 的 `rows`、`cells`。請參閱[繪製彩色儲存格網格](/docs/zh-TW/plugins/mods/interface#draw-a-grid-of-colored-cells)。 | ✓ | |

267| `Image` | 最多 2 MiB 的 PNG 或 RGBA 位元組,或檔案路徑 | ✓ | |

268 

269更多 `Button` 規則:`action` 指定 Claude Code 本身的某個[快捷鍵動作](/docs/zh-TW/keybindings),當使用者對該動作的綁定為組合鍵或修飾鍵時,該綁定會按下此按鈕。橫帶中按鈕上的數字 `hotkey`,在使用者於空白提示詞中單獨輸入該數字並停頓時也會觸發。當同一次繪製中有兩個按鈕指定相同的 `hotkey` 時,由後者取得。`autoFocus` 在任何控制項上都只接受 `true`,因此若要關閉,請省略此 prop。

270 

271<h2 id="limits">

272 限制

273</h2>

274 

275hook 與 mods API 呼叫都在時間與大小限制下執行。Claude Code 會略過超過時間限制的 hook,並拒絕超過大小限制的呼叫。

276 

277| 限制 | 值 |

278| :- | :- |

279| hook 針對單一事件本身的執行時間,不計入 `next` 內部或 `$.clock.sleep` 以外之 mods API 呼叫內部的時間 | 10 秒 |

280| `.catch` 處理常式的執行時間 | 1 秒 |

281| 所有 `session.end` hook 合計 | 1.5 秒 |

282| `$.process.run` 逾時 | 預設 30 秒,最多 10 分鐘 |

283| `$.model.complete` `maxTokens` | 預設 1024,最多 64,000 或模型的輸出上限 |

284| `$.fs.read` 與 `$.fs.write` | 單一檔案 4 MiB |

285| `Text` 的單一字串子項 | 10,000 個字元 |

286| `$.store` | 總計 4 MiB 的 JSON |

287| `$.session.messages()` | 最新的 4,096 個項目 |

288| `$.ui.invalidate('ui.render')` 重新繪製 | 節流為每秒 10 次,在終端機中針對可見窗格、展開的橫帶與提示詞下方的提示行則為每秒 30 次。更早到來的呼叫會被合併。 |

289| `$.ui.toast` | 顯示 4 秒,除非您傳入 `{ timeoutMs }` |

290| 未經使用者要求而開啟的窗格 | 自 144 個終端機欄寬起放置,使用者開啟過一次後則為 110 |

291| 命令、工具、subagent 類型與窗格名稱 | 字母、數字、`_` 與 `-`,最多 64 個字元 |

292| 單一 `claude plugin test` 測試 | 5 秒,除非測試設定了 `timeoutMs` |

293 

294<h2 id="settings-and-environment-variables">

295 設定與環境變數

296</h2>

297 

298以下是影響 mod 的設定與環境變數。「位置」欄說明每一項是從哪個設定檔或環境讀取:

299 

300| 名稱 | 位置 | 作用 |

301| :- | :- | :- |

302| `CLAUDE_CODE_PLUGIN_DIRS` | 環境,或 `~/.claude/settings.json` 中的 `env` | 以 `--plugin-dir` 的方式載入的外掛目錄,供無法傳入旗標的應用程式使用。以 `:` 分隔的絕對路徑,在 Windows 上則以 `;` 分隔。 |

303| `CLAUDE_CODE_PLUGIN_DIR_WATCH` | 環境 | `1` 會讓長時間執行的非互動式工作階段在儲存時重新載入 `--plugin-dir` mod |

304| `prependPlugins`、`appendPlugins` | 受管設定。僅在沒有受管設定的機器上、且使用者未以 Team 或 Enterprise 方案登入時,才可使用使用者設定。 | 外掛 id 的清單,例如 `acme-guard@acme-tools`。`prependPlugins` 中的 mod 會在使用者安裝的每個 mod 之前執行,`appendPlugins` 中的 mod 則在之後執行,並依列出的順序。請參閱 [mod 執行順序](/docs/zh-TW/plugins/mods/events#the-order-mods-run-in)。 |

305| `allowManagedModsOnly` | 受管設定,作為[內建防護的選項](/docs/zh-TW/plugins/mods/admin#set-options-on-the-built-in-guard) | 只有[屬於您組織的](/docs/zh-TW/plugins/mods/admin#install-your-organizations-mods) mod,以及內建於 Claude Code 的 mod 會載入。使用者的設定 hook 會繼續執行。 |

306| `allowModsToOverrideDenyRules` | 受管設定,作為[內建防護的選項](/docs/zh-TW/plugins/mods/admin#set-options-on-the-built-in-guard) | 允許使用者安裝的 mod 核准遭 `deny` 規則拒絕的工具呼叫 |

307| `allowManagedHooksOnly` | 受管設定 | 封鎖不屬於您組織的 hook 與已安裝的 mod。請參閱[哪些會繼續執行](/docs/zh-TW/settings-reference#what-runs-under-allowmanagedhooksonly)。 |

308| `disableAllHooks` | 任何設定檔 | 在受管設定中,已安裝外掛的任何 mod 或 hook 都不會執行。在您自己的設定中,您組織所管理的內容會繼續執行。請參閱 [`disableAllHooks`](/docs/zh-TW/settings-reference#disableallhooks)。 |

309| `disableSideloadFlags` | 受管設定 | 在啟動時拒絕 `--plugin-dir` 與 `--plugin-url` |

310| `pluginConfigs` | 使用者或受管設定 | 存放 mod 的 `userConfig` 值,以外掛 id 為鍵,例如 `acme-guard@acme-tools`;若是以 `--plugin-dir` 載入的外掛,則以其名稱加上 `@inline` 為鍵,例如 `first-mod@inline` |

311 

312`sec-default@builtin` 是內建於 Claude Code 的防護,在 `/plugin` 與偵錯日誌中列為 `cc-plugin-sec-default`。在具有受管設定的機器上,或對於以 Team 或 Enterprise 方案登入的使用者,它會在使用者安裝的每個 mod 之前載入。若設定了受管 `prependPlugins`,則只有在該清單列出此防護時才會載入,並位於所列的位置。其原始碼位於 [Claude Code 儲存庫的 `mods/sec-default` 目錄](https://github.com/anthropics/claude-code/tree/main/mods/sec-default)。

313 

314<h2 id="commands">

315 命令

316</h2>

317 

318這些命令與旗標用於載入、檢查與測試 mod。`claude` 命令在您的 shell 中執行,`/` 命令則在 Claude Code 提示詞輸入處執行。表格中的 `<directory>` 代表您輸入的路徑,例如 `claude plugin validate ./first-mod`。方括號表示選用的引數。

319 

320| 命令 | 作用 |

321| :- | :- |

322| [`/plugin`](/docs/zh-TW/plugins/mods/overview#see-which-mods-a-session-loaded) | 當非內建的 mod 已載入時,在其分頁下方顯示如 `1 mod active · first-mod` 的一行 |

323| [`claude plugin validate <directory>`](/docs/zh-TW/plugins/mods/create#check-what-claude-code-reads-from-your-mod) | 讀取外掛的資訊清單與 hook 模組,並回報錯誤、其處理的事件,以及其發出的 mods API 呼叫。`--strict` 會將警告視為錯誤,`--json` 會印出機器可讀的報告。 |

324| [`claude plugin test [directory]`](/docs/zh-TW/plugins/mods/test#write-a-test) | 執行該目錄下(未指定時則為目前目錄)所有檔名以 `.test.ts` 或 `.test.tsx` 結尾的檔案。測試失敗時以狀態 1 結束。 |

325| [`claude --plugin-dir <directory>`](/docs/zh-TW/plugins/mods/create#write-a-mod-yourself) | 為單一工作階段載入外掛目錄,並在您儲存時重新載入其 hook 模組。重複使用此旗標可載入多個目錄。 |

326| `/reload-plugins` | 在您執行時重新載入外掛 |

Details

6 6 

7> 為 Claude Code mod 編寫自動化測試,該測試會觸發事件、存根 Claude Code 的答案並按下按鈕,無需工作階段、登入或網路。7> 為 Claude Code mod 編寫自動化測試,該測試會觸發事件、存根 Claude Code 的答案並按下按鈕,無需工作階段、登入或網路。

8 8 

9您可以為 mod 編寫自動化測試,並使用 [`claude plugin test`](/docs/zh-TW/plugins/mods/reference#commands) 從您的 shell 執行它們。測試會觸發您的 hooks 處理的事件,並檢查 hooks 執行了什麼,以便在問題到達工作階段之前捕捉它。第一個範例測試來自 [Create a mod](/docs/zh-TW/plugins/mods/create) 的 mod。9您可以為 mod 編寫自動化測試,並使用 [`claude plugin test`](/docs/zh-TW/plugins/mods/reference#commands) 從您的 shell 執行它們。測試會觸發您的 hook 處理的事件,並檢查 hook 執行了什麼,以便在問題到達工作階段之前捕捉它。第一個範例測試來自[建立 mod](/docs/zh-TW/plugins/mods/create) 的 mod。

10 10 

11<h2 id="write-a-test">11<h2 id="write-a-test">

12 編寫測試12 編寫測試


25 // Answer each tool call in Claude Code's place, so no tool runs25 // Answer each tool call in Claude Code's place, so no tool runs

26 on('tool.call', () => ({ result: 'ok' }))26 on('tool.call', () => ({ result: 'ok' }))

27 27 

28 // Raise two tool calls, which the mod's tool.call hook counts28 // Fire two tool calls, which the mod's tool.call hook counts

29 await $.tool.call({ tool: 'Bash', command: 'ls' })29 await $.tool.call({ tool: 'Bash', command: 'ls' })

30 await $.tool.call({ tool: 'Read', file_path: 'README.md' })30 await $.tool.call({ tool: 'Read', file_path: 'README.md' })

31 31 


105 105 

106測試通過是因為 hook 的 `reply` 是 `value` 下的物件,其 `text` 以 `PASS` 開頭。要檢查另一個分支,請新增第二個測試,其 stub 返回以 `FAIL` 開頭的 `text`,並期望 `Try again`。106測試通過是因為 hook 的 `reply` 是 `value` 下的物件,其 `text` 以 `PASS` 開頭。要檢查另一個分支,請新增第二個測試,其 stub 返回以 `FAIL` 開頭的 `text`,並期望 `Try again`。

107 107 

108mods API 呼叫的 stub 返回一個具有 `value` 欄位的物件,該欄位保存呼叫在您的 mod 中解析的內容:`{ value: 7 }` 使 `$.store.get` 解析為 `7`。Claude Code 事件(例如 [`turn.step`](/docs/zh-TW/plugins/mods/reference#turns) 或 `tool.call`)的 stub 返回該事件自己的結果,例如 `{ result: 'ok' }`。`$.session.send` 和 `$.prompt.fill` 也採用其事件的結果,如表所示。[Look up what a stub returns](#look-up-what-a-stub-returns) 顯示每個常見名稱採用的形式。兩個錯誤意味著 stub 是錯誤的或遺漏的。失敗的測試的輸出包括一個以 `the engine reported:` 開頭的區塊,每個錯誤都出現在那裡:108mods API 呼叫的 stub 返回一個具有 `value` 欄位的物件,該欄位保存呼叫在您的 mod 中解析的內容:`{ value: 7 }` 使 `$.store.get` 解析為 `7`。Claude Code 事件(例如 [`turn.step`](/docs/zh-TW/plugins/mods/reference#turns) 或 `tool.call`)的 stub 返回該事件自己的結果,例如 `{ result: 'ok' }`。`$.session.send` 和 `$.prompt.fill` 也採用其事件的結果,如表所示。[Look up what a stub returns](#look-up-what-a-stub-returns) 顯示每個常見名稱採用的形式。這些錯誤表示 stub 有誤或遺漏。失敗的測試的輸出包括一個以 `the engine reported:` 開頭的區塊,每個錯誤都出現在那裡:

109 109 

110* `returned neither { value } nor { deny }`:mods API 呼叫的 stub 返回了一個裸值110* `returned neither { value } nor { deny }`:mods API 呼叫的 stub 返回了一個裸值

111* `no implementation for` 後跟一個名稱:您的 mod 進行了該呼叫,沒有 stub 回答它111* `no implementation for` 後跟一個名稱:您的 mod 進行了該呼叫,沒有 stub 回答它


127 on('session.start', () => ({ cwd: '/work' }))127 on('session.start', () => ({ cwd: '/work' }))

128 // Answer the $.command.register call your hook makes128 // Answer the $.command.register call your hook makes

129 on('command.register', () => ({ value: undefined }))129 on('command.register', () => ({ value: undefined }))

130 // Raise the event, which runs your session.start hook130 // Fire the event, which runs your session.start hook

131 await $.session.start({ surface: 'terminal', isInteractive: true, cwd: '/work' })131 await $.session.start({ surface: 'terminal', isInteractive: true, cwd: '/work' })

132 ```132 ```

133 133 


152 return { turnId: e.turnId, index: e.index, answer: 'ok', toolUses: [], stopReason: 'end_turn', usage: null }152 return { turnId: e.turnId, index: e.index, answer: 'ok', toolUses: [], stopReason: 'end_turn', usage: null }

153 })153 })

154 154 

155 // Raise one request to the model, which runs your turn.step hook155 // Fire one request to the model, which runs your turn.step hook

156 const stream = $.turn.step({ turnId: 't', index: 0, model: 'claude-test', messageCount: 1 })156 const stream = $.turn.step({ turnId: 't', index: 0, model: 'claude-test', messageCount: 1 })

157 // Read every piece until the stream says it's done157 // Read every piece until the stream says it's done

158 let step = await stream.next()158 let step = await stream.next()


340 // Answer the event after your hook passes it on with next(e)340 // Answer the event after your hook passes it on with next(e)

341 on('classic.SessionStart', () => ({}))341 on('classic.SessionStart', () => ({}))

342 342 

343 // Raise the event that fires after /clear, which runs your hook343 // Fire the event that follows /clear, which runs your hook

344 await $.classic.SessionStart({ source: 'clear' })344 await $.classic.SessionStart({ source: 'clear' })

345 345 

346 const ui = await $.ui.mount({ ...PANE, surface: 'terminal' })346 const ui = await $.ui.mount({ ...PANE, surface: 'terminal' })


353當您的 `classic.SessionStart` hook 在窗格繪製之前將儲存的 `7` 複製到 `$.state` 時,測試通過。如果您的模組中沒有該 hook,窗格會繪製 `Count: 0`,`find` 返回 `undefined`,測試在 `toBeDefined` 處失敗。353當您的 `classic.SessionStart` hook 在窗格繪製之前將儲存的 `7` 複製到 `$.state` 時,測試通過。如果您的模組中沒有該 hook,窗格會繪製 `Count: 0`,`find` 返回 `undefined`,測試在 `toBeDefined` 處失敗。

354 354 

355<h2 id="test-a-mod-that-judges-other-mods">355<h2 id="test-a-mod-that-judges-other-mods">

356 測試判斷其他 mods 的 mod356 測試策略 mod

357</h2>357</h2>

358 358 

359您的組織在 [`prependPlugins`](/docs/zh-TW/plugins/mods/admin) 中列出的 mod 可以在另一個 mod 載入之前拒絕它。要測試一個,請設定您的 mod 的層級,並給測試第二個 mod 供您的 mod 接受或拒絕:359您的組織在 [`prependPlugins`](/docs/zh-TW/plugins/mods/admin) 中列出的 mod 可以在另一個 mod 載入之前拒絕它。要測試一個,請設定您的 mod 的層級,並給測試第二個 mod 供您的 mod 允許或拒絕:

360 360 

361* **`tier`**:在測試檔案的頂部呼叫它一次,如 `tier('prepend')`,以將您的 mod 載入為 `prepend`、`append` 或 `builtin`,其在 [order mods run in](/docs/zh-TW/plugins/mods/events#the-order-mods-run-in) 中的位置。沒有它,您的 mod 會載入為 `user`。361* **`tier`**:在測試檔案的頂部呼叫它一次,如 `tier('prepend')`,以將您的 mod 載入為 `prepend`、`append` 或 `builtin`,其在 [order mods run in](/docs/zh-TW/plugins/mods/events#the-order-mods-run-in) 中的位置。沒有它,您的 mod 會載入為 `user`。

362* **`plugins`**:在測試主體之前將 `test` 傳遞一個選項物件。其 `plugins` 陣列保存您內聯編寫的 mods,每個都有 `name` 和 `register` 函數。要在 `user` 以外的位置載入一個,請將 `tier` 新增到它。362* **`plugins`**:在測試主體之前將 `test` 傳遞一個選項物件。其 `plugins` 陣列保存您內聯編寫的 mods,每個都有 `name` 和 `register` 函數。要在 `user` 以外的位置載入一個,請將 `tier` 新增到它。

363 363 

364此測試檔案首先載入 [policy mod from the admin page](/docs/zh-TW/plugins/mods/admin#enforce-a-policy-with-a-mod-of-your-own)。它檢查策略 mod 是否拒絕啟動程序的 mod,並接受不啟動的 mod:364此測試檔案首先載入[管理頁面中的策略 mod](/docs/zh-TW/plugins/mods/admin#enforce-a-policy-with-a-mod-of-your-own)。它檢查策略 mod 是否拒絕啟動程序的 mod,並允許不啟動程序的 mod:

365 365 

366```typescript acme-guard/tests/guard.test.ts theme={null}366```typescript acme-guard/tests/guard.test.ts theme={null}

367import { expect, test, tier } from 'claude-code/testing'367import { expect, test, tier } from 'claude-code/testing'

Details

12 找出 mod 為什麼沒有作用12 找出 mod 為什麼沒有作用

13</h2>13</h2>

14 14 

15當 mod 沒有作用時,兩項檢查可以找到原因:Claude Code 從 mod 的檔案讀取的內容,以及它在跳過某些內容時寫入的行。對於第一項,在您的 shell 中執行 [`claude plugin validate`](/docs/zh-TW/plugins/mods/create#check-what-claude-code-reads-from-your-mod),並使用 mod 的目錄,例如 `claude plugin validate ./first-mod`。它會捕捉拼寫錯誤的事件、不良的資訊清單和 Claude Code 無法讀取的模組,而無需啟動工作階段。15當 mod 沒有作用時,請檢查 Claude Code 從 mod 的檔案讀取的內容,以及它在跳過某些內容時寫入的那一行。對於第一項,在您的 shell 中執行 [`claude plugin validate`](/docs/zh-TW/plugins/mods/create#check-what-claude-code-reads-from-your-mod),並使用 mod 的目錄,例如 `claude plugin validate ./first-mod`。它會捕捉拼寫錯誤的事件、不良的資訊清單和 Claude Code 無法讀取的模組,而無需啟動工作階段。

16 16 

17當模組未載入、hook 被跳過或另一個 mod 拒絕您的 mod 時,Claude Code 會寫入一行,其中命名您的 mod。您讀取該行的位置取決於工作階段:17當模組未載入、hook 被跳過或另一個 mod 拒絕您的 mod 時,Claude Code 會寫入一行,其中命名您的 mod。您讀取該行的位置取決於工作階段:

18 18 


56 56 

57讀取冒號後的原因。[拒絕訊息](#refusal-messages)部分列出每一個。如果日誌沒有這樣的行,請逐一檢查此群組中的其他項目。57讀取冒號後的原因。[拒絕訊息](#refusal-messages)部分列出每一個。如果日誌沒有這樣的行,請逐一檢查此群組中的其他項目。

58 58 

59部分設定會停用 mod,但讓其外掛的其餘部分繼續運作。[開啟或關閉 mod](/docs/zh-TW/plugins/mods/overview#turn-mods-on-or-off) 列出了這些設定。

60 

59<h3 id="a-claude-p-run-prints-hooks-module-not-loaded">61<h3 id="a-claude-p-run-prints-hooks-module-not-loaded">

60 `claude -p` 執行列印 `hooks module not loaded`62 `claude -p` 執行列印 `hooks module not loaded`

61</h3>63</h3>


110 `options do not fit plugin.json userConfig`112 `options do not fit plugin.json userConfig`

111</h3>113</h3>

112 114 

113該行以 mod 的名稱開頭,然後是 `hooks module did not load: options do not fit plugin.json userConfig:` 和一個原因。選項不符合其 [`userConfig`](/docs/zh-TW/plugins/components#user-configuration) 欄位,例如高於欄位 `max` 的數字,或必填欄位沒有值。115該行以 mod 的名稱開頭,然後是 `hooks module did not load: options do not fit plugin.json userConfig:` 和一個原因。選項未通過其 [`userConfig`](/docs/zh-TW/plugins/components#user-configuration) 欄位的驗證,例如高於欄位 `max` 的數字,或必填欄位沒有值。

114 116 

115設定或變更值。該行的末尾命名其在 `settings.json` 中的 `pluginConfigs` 項目。117設定或變更值。該行的末尾命名其在 `settings.json` 中的 `pluginConfigs` 項目。

116 118 


140 `hook skipped`142 `hook skipped`

141</h3>143</h3>

142 144 

143該行命名 mod 和事件,然後說 `hook skipped:` 和一個原因,例如 `first-mod: tool.call hook skipped: threw Error: boom`。hook 拋出、執行超過其[10 秒時間限制](/docs/zh-TW/plugins/mods/reference#limits),或返回了錯誤形狀的結果。該行針對每個事件和失敗類型出現一次,直到 mod 重新載入。145該行命名 mod 和事件,然後說 `hook skipped:` 和一個原因,例如 `first-mod: tool.call hook skipped: threw Error: boom`。hook 拋出、執行超過其[時間限制](/docs/zh-TW/plugins/mods/reference#limits),或返回了錯誤形狀的結果。該行針對每個事件和失敗類型出現一次,直到 mod 重新載入。

144 146 

145修復錯誤。偵錯日誌對每次發生都有一行。147修復錯誤。偵錯日誌對每次發生都有一行。

146 148 


207 209 

208讀取該行上的原因。常見原因是元素不接受的 prop 和應用程式沒有的元素。210讀取該行上的原因。常見原因是元素不接受的 prop 和應用程式沒有的元素。

209 211 

210<h3 id="ui-open-runs-and-no-pane-appears">212<h3 id="$-ui-open-runs-and-no-pane-appears">

211 `$.ui.open` 執行且沒有窗格出現213 `$.ui.open` 執行且沒有窗格出現

212</h3>214</h3>

213 215 

214呼叫不是來自使用者所做的事情,並且終端機的寬度小於 144 列。216呼叫不是來自使用者所做的操作,並且終端機的寬度小於[該窗格所需的寬度](/docs/zh-TW/plugins/mods/interface#when-a-pane-waits-for-a-wider-terminal)。

215 217 

216從命令或按鈕開啟窗格,或檢查呼叫的 `isPlaced` 結果。請參閱[在正確的時間開啟窗格](/docs/zh-TW/plugins/mods/interface#open-a-pane-at-the-right-time)。218從命令或按鈕開啟窗格,或檢查呼叫的 `isPlaced` 結果。請參閱[在正確的時間開啟窗格](/docs/zh-TW/plugins/mods/interface#open-a-pane-at-the-right-time)。

217 219 


277tail -f ./mod-debug.log | grep first-mod279tail -f ./mod-debug.log | grep first-mod

278```280```

279 281 

280已載入的 mod 有一行,其命名它並列出它掛接的事件。使用 `--plugin-dir` 載入的 mod 出現在其名稱後跟 `@inline` 下:282已載入的 mod 有一行,其命名它並列出它處理的事件。使用 `--plugin-dir` 載入的 mod 出現在其名稱後跟 `@inline` 下:

281 283 

282```text theme={null}284```text theme={null}

283hooks module first-mod@inline loaded (worker, environment 2, tier user); events: session.start,tool.call,command.run,ui.render285hooks module first-mod@inline loaded (worker, environment 2, tier user); events: session.start,tool.call,command.run,ui.render

Details

9Claude Code plugin 是一個目錄,包含 skills、agents、hooks、MCP 伺服器或其他元件,Claude Code 會將其作為一個單位進行安裝和載入。大多數 plugins 來自 marketplace,marketplace 是一個目錄,列出 plugins 及其取得位置。您也可以從某人提供給您的資料夾中載入 plugin,或[建立您自己的](/docs/zh-TW/plugins/create)。9Claude Code plugin 是一個目錄,包含 skills、agents、hooks、MCP 伺服器或其他元件,Claude Code 會將其作為一個單位進行安裝和載入。大多數 plugins 來自 marketplace,marketplace 是一個目錄,列出 plugins 及其取得位置。您也可以從某人提供給您的資料夾中載入 plugin,或[建立您自己的](/docs/zh-TW/plugins/create)。

10 10 

11<Note>11<Note>

12 如果以下任一項描述您的情況,請改為在 claude.com 上開始:12 以下情況在其他頁面中說明:

13 13 

14 * **您使用 claude.ai 聊天或 Cowork,而不是 Claude Code**:請參閱 [claude.ai 和 Cowork 中的 Plugins](https://claude.com/docs/plugins/overview)14 * **您使用 claude.ai 聊天或 Cowork,而不是 Claude Code**:請參閱 [claude.ai 和 Cowork 中的外掛](https://claude.com/docs/plugins/overview)

15 * **您建立了 MCP 伺服器,並希望將其納入 Anthropic 的目錄**:請參閱 [發佈到目錄](https://claude.com/docs/directory/publish)15 * **您建立了 MCP 伺服器,並希望將其納入 Anthropic 的目錄**:請參閱 [發佈到目錄](https://claude.com/docs/directory/publish)

16 * **您想在 VS Code 或 JetBrains IDE 中使用 Claude Code**:這指的是 VS Code 擴充功能或 JetBrains 外掛,而不是 Claude Code 外掛。請參閱 [在 VS Code 中使用 Claude Code](/docs/zh-TW/vs-code) 或 [JetBrains IDEs](/docs/zh-TW/jetbrains)

16</Note>17</Note>

17 18 

18若要立即試用 plugin,請在 Claude Code 終端機工作階段中執行 `/plugin`,並從 **Discover** 標籤安裝一個,該標籤列出來自您的 marketplaces 的 plugins。從那裡:19若要立即試用 plugin,請在 Claude Code 終端機工作階段中執行 `/plugin`,並從 **Discover** 標籤安裝一個,該標籤列出來自您的 marketplaces 的 plugins。從那裡:

Details

37 37 

38Claude Code 的[權限規則](/docs/zh-TW/permissions)和[沙箱](/docs/zh-TW/sandboxing)涵蓋 Claude 進行的工具呼叫,而不是 plugin 自己執行的程式碼:38Claude Code 的[權限規則](/docs/zh-TW/permissions)和[沙箱](/docs/zh-TW/sandboxing)涵蓋 Claude 進行的工具呼叫,而不是 plugin 自己執行的程式碼:

39 39 

40* **Hooks 和伺服器程序**:命令 hooks 使用您的完整使用者權限執行 shell 命令。Claude Code 在沙箱外執行 hooks 和 MCP 伺服器。40* **Hooks 和伺服器程序**:命令 hooks 使用您的完整使用者權限執行 shell 命令。Claude Code 在沙箱外執行 hooks、MCP 伺服器,以及 [mod](/docs/zh-TW/plugins/mods/overview#what-a-mod-can-reach) 啟動的程序。

41* **Claude 的工具呼叫**:對 plugin 的 MCP 工具之一的呼叫,以及執行 plugin 的 `bin/` 中的可執行檔的 Bash 命令,都是工具呼叫,所以您的權限規則適用於它們。如需 mod 可以對工具呼叫執行的操作,請參閱[決定是否信任 mod](/docs/zh-TW/plugins/mods/overview#decide-whether-to-trust-a-mod)。41* **Claude 的工具呼叫**:對 plugin 的 MCP 工具之一的呼叫,以及執行 plugin 的 `bin/` 中的可執行檔的 Bash 命令,都是工具呼叫,所以您的權限規則適用於它們。如需 mod 可以對工具呼叫執行的操作,請參閱[決定是否信任 mod](/docs/zh-TW/plugins/mods/overview#decide-whether-to-trust-a-mod)。

42 42 

43安裝 plugin 也會啟用它,除非其 manifest 或 marketplace 項目設定了 [`defaultEnabled: false`](/docs/zh-TW/plugins/install#choose-an-install-scope),且您自己還沒有啟用它。43安裝 plugin 也會啟用它,除非其 manifest 或 marketplace 項目設定了 [`defaultEnabled: false`](/docs/zh-TW/plugins/install#choose-an-install-scope),且您自己還沒有啟用它。

Details

416 416 

417您為已在使用者範圍或由受管設定安裝的外掛程式執行了 `/plugin install`,Claude Code 拒絕了 `Use '/plugin' to manage existing plugins.`。如果您輸入了沒有 `@<marketplace>` 的外掛程式名稱,訊息會省略 `globally`。417您為已在使用者範圍或由受管設定安裝的外掛程式執行了 `/plugin install`,Claude Code 拒絕了 `Use '/plugin' to manage existing plugins.`。如果您輸入了沒有 `@<marketplace>` 的外掛程式名稱,訊息會省略 `globally`。

418 418 

419外掛程式已在每個專案中可用,因此沒有任何內容要新增。若要變更其 [範圍](/docs/zh-TW/plugins/install)、啟用或停用它,或配置它,請開啟 `/plugin` 並前往 **Installed**。419外掛程式已在每個專案中可用,因此沒有任何內容要新增。若要變更其 [範圍](/docs/zh-TW/plugins/install)、啟用或停用它,或設定它,請開啟 `/plugin` 並前往 **Installed**。

420 420 

421僅在專案或本機範圍安裝的外掛程式不會觸發此訊息。Claude Code 允許您也在使用者範圍安裝它,因此它在其他專案中可用。421僅在專案或本機範圍安裝的外掛程式不會觸發此訊息。Claude Code 允許您也在使用者範圍安裝它,因此它在其他專案中可用。

422 422 


433訊息命名了解決方案:433訊息命名了解決方案:

434 434 

435* **其他外掛程式已安裝**:訊息說 `Only one of the two can be installed.` 並命名 `claude plugin uninstall` 命令或 `/plugin` 中的卸載步驟,以移除其他外掛程式。執行它,然後再次安裝。對於卸載移除的內容,請參閱 [卸載刪除和保留的內容](/docs/zh-TW/plugins/cli-reference#what-an-uninstall-deletes-and-keeps)。435* **其他外掛程式已安裝**:訊息說 `Only one of the two can be installed.` 並命名 `claude plugin uninstall` 命令或 `/plugin` 中的卸載步驟,以移除其他外掛程式。執行它,然後再次安裝。對於卸載移除的內容,請參閱 [卸載刪除和保留的內容](/docs/zh-TW/plugins/cli-reference#what-an-uninstall-deletes-and-keeps)。

436* **兩個 id 在一次安裝中到達**,例如外掛程式及其需要的依賴項:沒有安裝順序可以幫助。只有列出這兩個外掛程式的市集的維護者可以修復它,方法是重新命名其中一個。當兩者來自不同的市集時,任一個的維護者都可以。436* **兩個 id 在一次安裝中到達**,例如外掛程式及其需要的相依套件:沒有安裝順序可以幫助。只有列出這兩個外掛程式的市集的維護者可以修復它,方法是重新命名其中一個。當兩者來自不同的市集時,任一個的維護者都可以。

437 437 

438<h3 id="this-plugin-uses-a-source-type-your-claude-code-version-does-not-suppo">438<h3 id="this-plugin-uses-a-source-type-your-claude-code-version-does-not-suppo">

439 `This plugin uses a source type your Claude Code version does not support`439 `This plugin uses a source type your Claude Code version does not support`


460* **您發佈外掛程式**:重新計算 URL 提供的確切檔案的摘要,並更新市集條目中的 `sha256`。使用 `shasum -a 256 my-plugin.zip` 或 PowerShell 中的 `Get-FileHash -Algorithm SHA256 my-plugin.zip`460* **您發佈外掛程式**:重新計算 URL 提供的確切檔案的摘要,並更新市集條目中的 `sha256`。使用 `shasum -a 256 my-plugin.zip` 或 PowerShell 中的 `Get-FileHash -Algorithm SHA256 my-plugin.zip`

461* **您安裝外掛程式**:在工作階段中執行 `/plugin marketplace update <name>` 以重新整理目錄,以防條目已更正,然後重試安裝。如果重新整理後摘要仍然不同,請詢問市集所有者在安裝前他們釘選了哪個檔案461* **您安裝外掛程式**:在工作階段中執行 `/plugin marketplace update <name>` 以重新整理目錄,以防條目已更正,然後重試安裝。如果重新整理後摘要仍然不同,請詢問市集所有者在安裝前他們釘選了哪個檔案

462 462 

463<h3 id="an-npm-plugin-source-must-name-a-registry-package">

464 `An npm plugin source must name a registry package`

465</h3>

466 

467市集條目使用 [`npm` 來源](/docs/zh-TW/plugins/marketplace-reference#npm-plugin-source) 的外掛程式無法安裝、更新或載入,且訊息包含此句。Claude Code 在擷取任何內容之前檢查了條目的 `package` 值並拒絕了它。訊息會指出該值與原因:

468 

469```text theme={null}

470"github:acme/formatter" was not installed: it is not an http or https link. An npm plugin source must name a registry package (name or name@version) or link to a tarball file. For a plugin in a git repository, use a "github", "url" or "git-subdir" source.

471```

472 

473市集的所有者必須變更該條目:

474 

475* **如果那是您**:將 `package` 變更為 [npm 外掛程式來源參考](/docs/zh-TW/plugins/marketplace-reference#npm-plugin-source) 接受的值,或將條目切換為 `github`、`url` 或 `git-subdir` 來源

476* **如果不是您**:向市集所有者報告訊息

477 

463<h3 id="marketplace-is-registered-from-an-untrusted-source">478<h3 id="marketplace-is-registered-from-an-untrusted-source">

464 `Marketplace "<name>" is registered from an untrusted source`479 `Marketplace "<name>" is registered from an untrusted source`

465</h3>480</h3>


481 496 

482在 v2.1.205 之前,Claude Code 僅在您新增市集時檢查名稱,因此在其名稱變為保留前註冊的條目保持載入。497在 v2.1.205 之前,Claude Code 僅在您新增市集時檢查名稱,因此在其名稱變為保留前註冊的條目保持載入。

483 498 

499<h3 id="marketplace-is-added-but-ignored">

500 `Marketplace "<name>" is added but ignored`

501</h3>

502 

503市集在 `~/.claude/plugins/known_marketplaces.json` 中有條目,但該條目未通過 Claude Code 每次讀取該檔案時執行的檢查,因此市集和從它安裝的外掛程式停止載入。在您的 shell 中,`claude plugin list` 會為每個受影響的外掛程式報告一行,指出原因和修復方式:

504 

505```text theme={null}

506Marketplace team-tools is added but ignored. Its location is on a network drive, has "." or ".." in its path, or couldn't be checked. Re-add the marketplace (one added from a folder or file must be re-added from a copy on this computer), or, to trust a folder on a network drive, declare it under extraKnownMarketplaces in user or managed settings.

507```

508 

509在工作階段中,`/plugin` **Errors** 標籤會將市集名稱放在引號中,在原因之後結束該行,並在其下一行顯示修復方式。

510 

511`is added but ignored` 之後的句子指出條目未通過的檢查:

512 

513* `Its location is on a network drive, has "." or ".." in its path, or couldn't be checked`,或關於 `The folder or file it was added from` 的相同句子:市集的目錄或其新增來源的本機路徑位於網路位置、路徑中有 `.` 或 `..` 區段,或無法檢查

514* `Its git URL can't be used: <reason>` 或 `Its URL can't be read as an https:// or http:// address`:條目記錄的來源 URL 是 Claude Code 拒絕從中複製或擷取的 URL

515* `Its source doesn't match its extraKnownMarketplaces entry in user or managed settings`:條目與同名的 [`extraKnownMarketplaces`](/docs/zh-TW/settings-reference#extraknownmarketplaces) 宣告不符

516 

517當 `(see the debug log)` 取代原因出現在 `is added but ignored` 之後時,表示 Claude Code 拒絕了市集的名稱,例如 [保留名稱的另一種拼寫](/docs/zh-TW/errors#marketplace-name-is-another-spelling-of-a-reserved-name)。[偵錯日誌](/docs/zh-TW/debug-your-config) 會指出該條目。

518 

519**該怎麼做:**

520 

521* 依照訊息中的修復方式。在您的 shell 中,執行 `claude plugin marketplace remove <name>`,然後從支援的來源或本機路徑再次新增市集,並重新安裝其外掛程式(remove 命令會卸載這些外掛程式)。remove 命令對被忽略的條目有效

522* 若要保留位於網路位置的市集,請在您的使用者或受管設定中於 [`extraKnownMarketplaces`](/docs/zh-TW/settings-reference#extraknownmarketplaces) 下宣告它;儲存庫的 `.claude/settings.json` 或 `.claude/settings.local.json` 中的宣告不算數

523* 對於與其設定宣告不同的來源,請從宣告的來源重新新增市集,或變更宣告。`claude plugin marketplace add` 會拒絕相同的不符情況;請參閱 [對應的 `Cannot add marketplace` 條目](#cannot-add-marketplace-source-doesnt-match)

524* 對於被拒絕的名稱,請移除市集,若該行提供了 `Remove it:` 之後的命令,請使用該命令;以相同名稱再次新增會再次被拒絕

525 

526在 v2.1.286 之前,無論原因為何,`claude plugin list` 都會將此類市集報告為 `Marketplace <name> not found`,而 `/plugin` **Errors** 標籤會將其報告為 `Marketplace "<name>" is registered but was refused (see the debug log)`。原因僅出現在偵錯日誌中。在 v2.1.286 中,原因和修復句子使用不同的措辭,例如 `Its recorded location is network-shaped or unclassifiable (never probed)`。

527 

484<h3 id="plugin-has-a-corrupt-manifest-file-or-has-an-invalid-manifest-file">528<h3 id="plugin-has-a-corrupt-manifest-file-or-has-an-invalid-manifest-file">

485 `Plugin <name> has a corrupt manifest file` or `has an invalid manifest file`529 `Plugin <name> has a corrupt manifest file` or `has an invalid manifest file`

486</h3>530</h3>


488Claude Code 擷取了外掛程式,然後無法讀取其 `.claude-plugin/plugin.json`。在 shell 中,此行中的 `<name>` 可以是臨時目錄名稱;`Failed to install plugin "<name>@<marketplace>"` 前綴帶有外掛程式的真實名稱。措辭說明哪個檢查失敗:532Claude Code 擷取了外掛程式,然後無法讀取其 `.claude-plugin/plugin.json`。在 shell 中,此行中的 `<name>` 可以是臨時目錄名稱;`Failed to install plugin "<name>@<marketplace>"` 前綴帶有外掛程式的真實名稱。措辭說明哪個檢查失敗:

489 533 

490* **`corrupt manifest file`,後跟 `JSON parse error:`**:檔案不是有效的 JSON534* **`corrupt manifest file`,後跟 `JSON parse error:`**:檔案不是有效的 JSON

491* **`invalid manifest file`,後跟 `Validation errors:`**:檔案解析但失敗架構,例如 `name: Invalid input` 用於遺失的必需欄位535* **`invalid manifest file`,後跟 `Validation errors:`**:檔案可解析但未通過 schema 驗證,例如 `name: Invalid input` 用於遺失的必需欄位

492 536 

493`claude plugin install` 報告為 `Failed to install plugin "<name>@<marketplace>":` 並以代碼 1 退出。537`claude plugin install` 報告為 `Failed to install plugin "<name>@<marketplace>":` 並以代碼 1 退出。

494 538 


536* **您已新增的市集**:使用 `/plugin install <plugin>@<name>` 按名稱從它安裝580* **您已新增的市集**:使用 `/plugin install <plugin>@<name>` 按名稱從它安裝

537* **新來源**:執行 `/plugin marketplace remove <name>`,然後重試安裝581* **新來源**:執行 `/plugin marketplace remove <name>`,然後重試安裝

538 582 

539<h3 id="cannot-add-marketplace-its-network-source-differs">583<h3 id="cannot-add-marketplace-source-doesnt-match">

540 `Cannot add marketplace "<name>": its network source differs from the one declared for it in settings`584 `Cannot add marketplace "<name>": its source doesn't match its extraKnownMarketplaces entry in user or managed settings`

541</h3>585</h3>

542 586 

543您執行了 `marketplace add`,該來源的目錄與設定檔已在 [`extraKnownMarketplaces`](/docs/zh-TW/settings-reference#extraknownmarketplaces) 下以不同來源宣告的市集具有相同的名稱。Claude Code 拒絕新增並註冊任何內容。587您新增了一個市集,而其 `marketplace.json` 中的 `name` 在您的使用者設定或受管設定中已有 [`extraKnownMarketplaces`](/docs/zh-TW/settings-reference#extraknownmarketplaces) 條目。您提供的來源與該條目列出的來源不同,因此 Claude Code 拒絕新增且不註冊任何內容。

588 

589兩個來源只有在類型相同且每個欄位的值都相同時才相符。設定了您未傳遞之 `ref` 的條目會被視為不同。當您以 `https://github.com/` URL 提供儲存庫時,`github` 條目也會被視為不同,因為 Claude Code 會將該 URL 記錄為 [`git` 來源](/docs/zh-TW/plugins/marketplace-reference#marketplace-sources)。請執行以下其中一項:

590 

591* **使用宣告的來源**:Claude Code 會自行[註冊在設定中宣告的市集](/docs/zh-TW/settings-reference#extraknownmarketplaces),因此請先在工作階段中執行 `/plugin marketplace list`。如果清單顯示該名稱,表示市集已註冊,無需新增任何內容。

544 592 

545訊息以修復結尾:來源必須符合設定中為此名稱宣告的來源,或您變更宣告。將您傳遞的來源與該名稱的 `extraKnownMarketplaces` 條目進行比較,包括其 `ref`、`path` 和 `headers`,然後執行以下其中一項:593 如果清單未顯示該名稱,請依照條目的寫法輸入來源來新增它。對於 `source` 物件為 `{ "source": "github", "repo": "acme-corp/claude-plugins", "ref": "v1.2.0" }` 的條目,請執行:

594 

595 ```text theme={null}

596 /plugin marketplace add acme-corp/claude-plugins#v1.2.0

597 ```

546 598 

547* **使用宣告的來源**:從設定條目命名的來源新增市集

548* **使用新來源**:編輯或移除 `extraKnownMarketplaces` 條目,然後再次新增市集。如果受管設定宣告它,請詢問您的管理員599* **使用新來源**:編輯或移除 `extraKnownMarketplaces` 條目,然後再次新增市集。如果受管設定宣告它,請詢問您的管理員

549 600 

601在 v2.1.287 之前,訊息為 `Cannot add marketplace "<name>": its network source differs from the one declared for it in settings (kind, target, or a fetch-shaping field such as headers / ref / path / sparsePaths)`。

602 

550<h3 id="failed-to-install-from-the-plugin-menu">603<h3 id="failed-to-install-from-the-plugin-menu">

551 `Failed to install: <plugin> (<reason>)`604 `Failed to install: <plugin> (<reason>)`

552</h3>605</h3>


589 Dependency errors642 Dependency errors

590</h3>643</h3>

591 644 

592宣告依賴項的外掛程式在無法滿足依賴項時可能無法安裝或安裝並保持停用。訊息在安裝時或載入時到達您:645宣告相依套件的外掛程式在無法滿足相依套件時可能無法安裝或安裝並保持停用。訊息在安裝時或載入時到達您:

593 646 

594* **在安裝期間**:拒絕作為安裝的錯誤訊息返回647* **在安裝期間**:拒絕作為安裝的錯誤訊息返回

595* **當外掛程式載入時**:問題出現在 `claude plugin list` 和 `/plugin` **Errors** 標籤中,Claude Code 保持受影響的外掛程式停用,直到您解決它648* **當外掛程式載入時**:問題出現在 `claude plugin list` 和 `/plugin` **Errors** 標籤中,Claude Code 保持受影響的外掛程式停用,直到您解決它

596 649 

597下表列出每個訊息及其修復。若要作為作者宣告依賴項,請參閱 [外掛程式依賴項](/docs/zh-TW/plugins/dependencies)。650下表列出每個訊息及其修復。若要作為作者宣告相依套件,請參閱 [外掛程式相依套件](/docs/zh-TW/plugins/dependencies)。

598 651 

599| 訊息 | 含義 | 如何解決 |652| 訊息 | 含義 | 如何解決 |

600| :- | :- | :- |653| :- | :- | :- |

601| `Dependency "<dep>" is not installed` | 宣告的依賴項未安裝。 | 使用 `claude plugin install <dep>@<marketplace>` 在您的 shell 中安裝它,或卸載外掛程式。如果依賴項的市集尚未註冊,請新增它並在您的工作階段中執行 `/reload-plugins`,這會安裝它可以解決的遺失依賴項。 |654| `Dependency "<dep>" is not installed` | 宣告的相依套件未安裝。 | 使用 `claude plugin install <dep>@<marketplace>` 在您的 shell 中安裝它,或卸載外掛程式。如果相依套件的市集尚未註冊,請新增它並在您的工作階段中執行 `/reload-plugins`,這會安裝它可以解決的遺失相依套件。 |

602| `Dependency "<dep>" is disabled` | 依賴項已安裝但已關閉。 | 啟用依賴項,或卸載需要它的外掛程式。 |655| `Dependency "<dep>" is disabled` | 相依套件已安裝但已關閉。 | 啟用相依套件,或卸載需要它的外掛程式。 |

603| `Requires "<dep>" <range>, installed <version>` | 已安裝的依賴項版本超出外掛程式的宣告範圍。 | 將依賴項更新到範圍內的版本,或卸載外掛程式。 |656| `Requires "<dep>" <range>, installed <version>` | 已安裝的相依套件版本超出外掛程式的宣告範圍。 | 將相依套件更新到範圍內的版本,或卸載外掛程式。 |

604| `<Plugin or Dependency> "<name>" has conflicting version requirements` | 沒有版本滿足每個釘選它的範圍。訊息列出範圍。 | 卸載或更新其中一個衝突的外掛程式,或要求上游作者擴大其約束。 |657| `<Plugin or Dependency> "<name>" has conflicting version requirements` | 沒有版本滿足每個釘選它的範圍。訊息列出範圍。 | 卸載或更新其中一個衝突的外掛程式,或要求上游作者擴大其約束。 |

605| `... has version requirements too complex to intersect` 或 `has an invalid version requirement` | 範圍不是有效的 semver,或無法相交組合的範圍。 | 修復無效範圍或簡化長 `\|\|` 鏈。 |658| `... has version requirements too complex to intersect` 或 `has an invalid version requirement` | 範圍不是有效的 semver,或無法相交組合的範圍。 | 修復無效範圍或簡化長 `\|\|` 鏈。 |

606| `... has no git tag satisfying <range>` | 依賴項的儲存庫在範圍內沒有 `<name>--v*` 標籤。 | 檢查上游是否使用該約定標記版本,或放寬範圍。 |659| `... has no git tag satisfying <range>` | 相依套件的儲存庫在範圍內沒有 `<name>--v*` 標籤。 | 檢查上游是否使用該約定標記版本,或放寬範圍。 |

607| `Dependency "<dep>" (required by <plugin>) is in <marketplace>, which is not in the allowlist` | 依賴項在不同的市集中,預設情況下跨市集解析已關閉。 | 在相同範圍自行安裝依賴項,在您的 shell 中使用 `claude plugin install <dep>@<marketplace>` 加上您安裝外掛程式的 `--scope`,然後重試。 |660| `Dependency "<dep>" (required by <plugin>) is in <marketplace>, which is not in the allowlist` | 相依套件在不同的市集中,預設情況下跨市集解析已關閉。 | 在相同範圍自行安裝相依套件,在您的 shell 中使用 `claude plugin install <dep>@<marketplace>` 加上您安裝外掛程式的 `--scope`,然後重試。 |

608 661 

609若要以程式設計方式查看這些,請在您的 shell 中執行 `claude plugin list --json`。有問題的外掛程式帶有 `errors` 欄位及其訊息和 `errorDetails` 欄位,每個都有 `type`:前兩行是 `dependency-unsatisfied`,第三行是 `dependency-version-unsatisfied`。662若要以程式設計方式查看這些,請在您的 shell 中執行 `claude plugin list --json`。有問題的外掛程式帶有 `errors` 欄位及其訊息和 `errorDetails` 欄位,每個都有 `type`:前兩行是 `dependency-unsatisfied`,第三行是 `dependency-version-unsatisfied`。

610 663 


881 934 

882兩個也會影響外掛程式使用者的失敗在[外掛程式已安裝但無法運作](#plugin-installed-but-not-working)下有其項目:935兩個也會影響外掛程式使用者的失敗在[外掛程式已安裝但無法運作](#plugin-installed-but-not-working)下有其項目:

883 936 

884* **未觸發的 hook**:請參閱[未觸發的 hooks](#failed-to-load-hooks-from-and-hooks-that-dont-fire)937* **未觸發的 hook**:請參閱[未觸發的 hook](#failed-to-load-hooks-from-and-hooks-that-dont-fire)

885* **未啟動的 MCP 伺服器**:請參閱[未啟動的 MCP 伺服器](#invalid-mcp-server-config-for-and-mcp-servers-that-dont-start)938* **未啟動的 MCP 伺服器**:請參閱[未啟動的 MCP 伺服器](#invalid-mcp-server-config-for-and-mcp-servers-that-dont-start)

886 939 

887<h3 id="commands-path-not-found">940<h3 id="commands-path-not-found">


898 `--plugin-dir` 在市集根目錄不會載入 `plugins/` 下的外掛程式951 `--plugin-dir` 在市集根目錄不會載入 `plugins/` 下的外掛程式

899</h3>952</h3>

900 953 

901您啟動了 `claude --plugin-dir <path>`,沒有看到錯誤,但外掛程式的 skills、agents 和 hooks 不存在。954您啟動了 `claude --plugin-dir <path>`,沒有看到錯誤,但外掛程式的 skills、agents 和 hook 不存在。

902 955 

903`--plugin-dir` 採用外掛程式的根目錄,即包含 `.claude-plugin/plugin.json` 和元件目錄(例如 `skills/`)的目錄。如果您改為指向市集根目錄,Claude Code 不會讀取 `marketplace.json`,因此 `plugins/` 下的外掛程式不會載入,您也看不到錯誤。在 v2.1.281 之前,Claude Code 將市集根目錄載入為一個以該目錄命名的空外掛程式。將旗標指向外掛程式目錄本身:956`--plugin-dir` 採用外掛程式的根目錄,即包含 `.claude-plugin/plugin.json` 和元件目錄(例如 `skills/`)的目錄。如果您改為指向市集根目錄,Claude Code 不會讀取 `marketplace.json`,因此 `plugins/` 下的外掛程式不會載入,您也看不到錯誤。在 v2.1.281 之前,Claude Code 將市集根目錄載入為一個以該目錄命名的空外掛程式。將旗標指向外掛程式目錄本身:

904 957 


922 975 

923在 Windows 上,外掛程式 hook 接收 `${CLAUDE_PLUGIN_ROOT}` 為 `C:/Users/you/...` 而不是 `C:\Users\you\...`,預期反斜線的指令碼會中斷。976在 Windows 上,外掛程式 hook 接收 `${CLAUDE_PLUGIN_ROOT}` 為 `C:/Users/you/...` 而不是 `C:\Users\you\...`,預期反斜線的指令碼會中斷。

924 977 

925Claude Code 在 Windows 上透過 Git Bash 執行 shell 形式的 hooks,並刻意以正斜線 Win32 形式替換外掛程式根目錄。Bash 內建、MSYS 工具和原生 Windows 二進位檔都接受該形式。978Claude Code 在 Windows 上透過 Git Bash 執行 shell 形式的 hook,並刻意以正斜線 Win32 形式替換外掛程式根目錄。Bash 內建、MSYS 工具和原生 Windows 二進位檔都接受該形式。

926 979 

927如果您的指令碼需要反斜線,請將 hook 切換為保留原生路徑的其中一種形式,如[執行形式和 shell 形式](/docs/zh-TW/hooks#exec-form-and-shell-form)下所述:980如果您的指令碼需要反斜線,請將 hook 切換為保留原生路徑的其中一種形式,如[執行形式和 shell 形式](/docs/zh-TW/hooks#exec-form-and-shell-form)下所述:

928 981 


951* **描述不符合人們的提問方式**:完成[Skill 未觸發](/docs/zh-TW/skills#skill-not-triggering)中的檢查1004* **描述不符合人們的提問方式**:完成[Skill 未觸發](/docs/zh-TW/skills#skill-not-triggering)中的檢查

952* **描述被截斷**:安裝許多 skills 時,Claude Code 會縮短描述以符合列表的字元預算,這可能會去除 Claude 需要匹配請求的關鍵字。請參閱[Skill 描述被截短](/docs/zh-TW/skills#skill-descriptions-are-cut-short)1005* **描述被截斷**:安裝許多 skills 時,Claude Code 會縮短描述以符合列表的字元預算,這可能會去除 Claude 需要匹配請求的關鍵字。請參閱[Skill 描述被截短](/docs/zh-TW/skills#skill-descriptions-are-cut-short)

953 1006 

954若要測量 skill 在現實提示中觸發的頻率,而不是逐一檢查,請使用 [`tool_used: Skill` 評分器](/docs/zh-TW/plugin-evals#create-your-first-eval-suite)撰寫評估案例,並在每次描述變更後使用 `claude plugin eval` 執行它。1007若要測量 skill 在現實提示詞中觸發的頻率,而不是逐一檢查,請使用 [`tool_used: Skill` 評分器](/docs/zh-TW/plugin-evals#create-your-first-eval-suite)撰寫評估案例,並在每次描述變更後使用 `claude plugin eval` 執行它。

955 1008 

956<h3 id="is-not-a-plugin-or-skill-folder">1009<h3 id="is-not-a-plugin-or-skill-folder">

957 `<directory> is not a plugin or skill folder` 來自 `claude plugin eval init`1010 `<directory> is not a plugin or skill folder` 來自 `claude plugin eval init`

958</h3>1011</h3>

959 1012 

960您從不是外掛程式根目錄的目錄(例如您的主目錄或保留外掛程式在子目錄中的儲存庫根目錄)執行了 `claude plugin eval init`。`init` 在工作目錄下寫入套件,因此它會停止,而不是建立外掛程式永遠看不到的 `evals/` 目錄。1013您從不是外掛程式根目錄的目錄(例如您的家目錄或保留外掛程式在子目錄中的儲存庫根目錄)執行了 `claude plugin eval init`。`init` 在工作目錄下寫入套件,因此它會停止,而不是建立外掛程式永遠看不到的 `evals/` 目錄。

961 1014 

962變更到外掛程式的根目錄,即保存 `.claude-plugin/plugin.json` 或 skill 的 `SKILL.md` 的目錄,然後再次執行命令。若要刻意在其他地方搭建套件,請傳遞 `--eval-dir`。請參閱[使用評估測試外掛程式](/docs/zh-TW/plugin-evals)。1015變更到外掛程式的根目錄,即保存 `.claude-plugin/plugin.json` 或 skill 的 `SKILL.md` 的目錄,然後再次執行命令。若要刻意在其他地方搭建套件,請傳遞 `--eval-dir`。請參閱[使用評估測試外掛程式](/docs/zh-TW/plugin-evals)。

963 1016 


1001| :- | :- | :- |1054| :- | :- | :- |

1002| `File not found: <path>` | 路徑沒有資訊清單,或不存在。 | 針對外掛程式或市集根目錄(包含 `.claude-plugin/` 的目錄)執行命令。 |1055| `File not found: <path>` | 路徑沒有資訊清單,或不存在。 | 針對外掛程式或市集根目錄(包含 `.claude-plugin/` 的目錄)執行命令。 |

1003| `No manifest found in directory. Expected .claude-plugin/marketplace.json or .claude-plugin/plugin.json` | 目錄沒有 `.claude-plugin/` 資訊清單。 | 建立資訊清單,或指向正確的目錄。 |1056| `No manifest found in directory. Expected .claude-plugin/marketplace.json or .claude-plugin/plugin.json` | 目錄沒有 `.claude-plugin/` 資訊清單。 | 建立資訊清單,或指向正確的目錄。 |

1004| `Invalid JSON syntax: <parse error>` | 資訊清單或 `hooks/hooks.json` 不是有效的 JSON。 | 修正 JSON。在您修正 `hooks/hooks.json` 之前,工作階段會載入外掛程式而不包含該檔案中的 hooks。 |1057| `Invalid JSON syntax: <parse error>` | 資訊清單或 `hooks/hooks.json` 不是有效的 JSON。 | 修正 JSON。在您修正 `hooks/hooks.json` 之前,工作階段會載入外掛程式而不包含該檔案中的 hook。 |

1005| `Path not found: <path>. The runtime loader will report this as a load failure.` | 資訊清單中的元件路徑不存在。 | 修正路徑或建立目錄。 |1058| `Path not found: <path>. The runtime loader will report this as a load failure.` | 資訊清單中的元件路徑不存在。 | 修正路徑或建立目錄。 |

1006| `Path contains ".." which could be a path traversal attempt: <path>` | 元件路徑逃逸外掛程式目錄。 | 使用外掛程式根目錄內的路徑。 |1059| `Path contains ".." which could be a path traversal attempt: <path>` | 元件路徑逃逸外掛程式目錄。 | 使用外掛程式根目錄內的路徑。 |

1007| `Path is a file; skills entries must be directories containing SKILL.md` | `skills` 項目指向 `SKILL.md` 而不是其目錄。 | 指向父目錄,或 `.` 表示根層級 `SKILL.md`。 |1060| `Path is a file; skills entries must be directories containing SKILL.md` | `skills` 項目指向 `SKILL.md` 而不是其目錄。 | 指向父目錄,或 `.` 表示根層級 `SKILL.md`。 |

1008| `No frontmatter block found` 或 `YAML frontmatter failed to parse: <error>` | Skill、agent 或命令檔案有遺失或無效的 YAML frontmatter。 | 在 `---` 分隔符之間新增或修正 frontmatter。驗證外掛程式目錄時報告。 |1061| `No frontmatter block found` 或 `YAML frontmatter failed to parse: <error>` | Skill、agent 或命令檔案有遺失或無效的 YAML frontmatter。 | 在 `---` 分隔符之間新增或修正 frontmatter。驗證外掛程式目錄時報告。 |

1009| `Plugin name "<name>" is reserved: it passes as one of Anthropic's own` | 外掛程式的 `name` 是其中一個[保留名稱](/docs/zh-TW/plugins/manifest-reference#name)。 | 根據其功能重新命名外掛程式。 |1062| `Plugin name "<name>" is reserved: it passes as one of Anthropic's own` | 外掛程式的 `name` 是其中一個[保留名稱](/docs/zh-TW/plugins/manifest-reference#name)。 | 根據其功能重新命名外掛程式。 |

1010| `Unknown field '<key>'` | 資訊清單有結構描述未定義的欄位。 | 移除它,或使用訊息建議的名稱。Claude Code 在載入時忽略未知欄位。 |1063| `Unknown field '<key>'` | 資訊清單有 schema 未定義的欄位。 | 移除它,或使用訊息建議的名稱。Claude Code 在載入時忽略未知欄位。如需 `plugin.json` 中的 `privacyPolicyUrl` 和其他目錄列表欄位,請參閱[目錄列表欄位](/docs/zh-TW/plugins/manifest-reference#directory-listing-fields)。 |

1011 1064 

1012在每次修正後再次執行命令,直到它不列印任何錯誤。1065在每次修正後再次執行命令,直到它不列印任何錯誤。

1013 1066 

prompt-library.md +288 −65

Details

622 const m = p.slice(base.length).match(/^\/([a-z]{2}(?:-[A-Z]{2})?)\//);622 const m = p.slice(base.length).match(/^\/([a-z]{2}(?:-[A-Z]{2})?)\//);

623 const locale = m ? m[1] : 'en';623 const locale = m ? m[1] : 'en';

624 return href => {624 return href => {

625 if (!href || href[0] !== '/' || href[1] === '/') return href;625 if (!href) return undefined;

626 if (href[0] === '#' || href.startsWith('https://')) return href;

627 if (!(/^\/[A-Za-z0-9]/).test(href)) return undefined;

626 return base + (href.startsWith('/en/') ? '/' + locale + href.slice(3) : href);628 return base + (href.startsWith('/en/') ? '/' + locale + href.slice(3) : href);

627 };629 };

628 }, []);630 }, []);


671 const assemble = p => p.prompt.replace(/\{(\w+)\}/g, (_, k) => fillOf(p, k) || p.slots && p.slots[k] || k);673 const assemble = p => p.prompt.replace(/\{(\w+)\}/g, (_, k) => fillOf(p, k) || p.slots && p.slots[k] || k);

672 const preview = p => p.prompt.replace(/\{(\w+)\}/g, (_, k) => p.slots && p.slots[k] || k);674 const preview = p => p.prompt.replace(/\{(\w+)\}/g, (_, k) => p.slots && p.slots[k] || k);

673 const bodyText = p => preview(p) + ' ' + p.teaches.replace(/\[([^\]]+)\]\([^)]+\)/g, '$1') + ' ' + (p.next || '');675 const bodyText = p => preview(p) + ' ' + p.teaches.replace(/\[([^\]]+)\]\([^)]+\)/g, '$1') + ' ' + (p.next || '');

674 const widthFor = s => (s || '').length + 3 + 'ch';676 const WIDE_RE = /[\u1100-\u115F\u2E80-\uA4CF\uAC00-\uD7A3\uF900-\uFAFF\uFE30-\uFE4F\uFF00-\uFF60\uFFE0-\uFFE6]/g;

677 const widthFor = s => {

678 const t = typeof s === 'string' ? s : '';

679 return t.length + (t.match(WIDE_RE) || []).length + 3 + 'ch';

680 };

675 const ql = q.trim().toLowerCase();681 const ql = q.trim().toLowerCase();

676 const toggleTag = k => {682 const toggleTag = k => {

677 setStart(false);683 setStart(false);


1098 "get-oriented-in-a": {1104 "get-oriented-in-a": {

1099 title: "在新儲存庫中定位",1105 title: "在新儲存庫中定位",

1100 teaches: "描述您想了解的內容,而不是要讀取哪些檔案。Claude 自行探索專案並返回其如何組合在一起的摘要。",1106 teaches: "描述您想了解的內容,而不是要讀取哪些檔案。Claude 自行探索專案並返回其如何組合在一起的摘要。",

1101 next: "執行 `/init` 以設定 `CLAUDE.md`,以便 Claude 在每個工作階段中記住這一點"1107 next: "執行 `/init` 以設定 `CLAUDE.md`,以便 Claude 在每個工作階段中記住這一點",

1108 prompt: "給我這個程式碼庫的概覽:架構、主要目錄,以及各部分如何相互連接"

1102 },1109 },

1103 "explain-unfamiliar-code": {1110 "explain-unfamiliar-code": {

1104 title: "解釋不熟悉的程式碼",1111 title: "解釋不熟悉的程式碼",

1105 teaches: "命名檔案並說出您想要答案的格式。將 HTML 頁面交換為圖表、項目符號或任何適合您學習方式的內容。",1112 teaches: "命名檔案並說出您想要答案的格式。將 HTML 頁面交換為圖表、項目符號或任何適合您學習方式的內容。",

1106 next: "設定輸出樣式,以便 Claude 始終以您偏好的格式進行解釋"1113 next: "設定輸出風格,以便 Claude 始終以您偏好的格式進行解釋",

1114 prompt: "解釋 {path} 的作用以及資料如何在其中流動。以 {format} 的形式寫出來",

1115 slots: {

1116 path: "src/scheduler/queue.ts",

1117 format: "附有圖表的 HTML 頁面,然後在我的瀏覽器中開啟"

1118 }

1107 },1119 },

1108 "find-where-something-happens": {1120 "find-where-something-happens": {

1109 title: "找到某事發生的位置",1121 title: "找到某事發生的位置",

1110 teaches: "按行為而不是按檔案名稱搜尋。即使您不知道檔案的名稱或它位於哪個目錄,搜尋也能運作。"1122 teaches: "按行為而不是按檔案名稱搜尋。即使您不知道檔案的名稱或它位於哪個目錄,搜尋也能運作。",

1123 prompt: "我們在哪裡{behavior}?",

1124 slots: {

1125 behavior: "驗證上傳的檔案類型"

1126 }

1111 },1127 },

1112 "see-what-depends-on": {1128 "see-what-depends-on": {

1113 title: "在刪除前檢查什麼會中斷",1129 title: "在刪除前檢查什麼會中斷",

1114 teaches: "在移除任何內容前先詢問。呼叫者清單和下游效應告訴您是在查看單行清理還是需要協調的變更。"1130 teaches: "在移除任何內容前先詢問。呼叫者清單和下游效應告訴您是在查看單行清理還是需要協調的變更。",

1131 prompt: "如果我刪除 {target},什麼會中斷?",

1132 slots: {

1133 target: "retryWithBackoff 輔助函式"

1134 }

1115 },1135 },

1116 "trace-how-code-evolved": {1136 "trace-how-code-evolved": {

1117 title: "追蹤程式碼如何演變",1137 title: "追蹤程式碼如何演變",

1118 teaches: "當問題是為什麼而不是什麼時,指向提交歷史。Claude 讀取您使用的任何版本控制的日誌和責備,並解釋目前實施背後的決策。"1138 teaches: "當問題是為什麼而不是什麼時,指向提交歷史。Claude 讀取您使用的任何版本控制的日誌和 blame,並解釋目前實作背後的決策。",

1139 prompt: "查看 {path} 的提交歷史,並總結它如何演變以及原因",

1140 slots: {

1141 path: "internal/auth/session.go"

1142 }

1119 },1143 },

1120 "scope-a-change-before": {1144 "scope-a-change-before": {

1121 title: "在開始前確定變更的範圍",1145 title: "在開始前確定變更的範圍",

1122 teaches: "在將其提交到路線圖前調整工作大小。檔案清單告訴您是在查看一個元件還是跨越式變更。"1146 teaches: "在將其提交到路線圖前調整工作大小。檔案清單告訴您是在查看一個元件還是跨越式變更。",

1147 prompt: "若要{change},我需要修改哪些檔案?",

1148 slots: {

1149 change: "在設定中新增深色模式切換"

1150 }

1123 },1151 },

1124 "ask-the-codebase-a": {1152 "ask-the-codebase-a": {

1125 title: "向程式碼庫詢問產品問題",1153 title: "向程式碼庫詢問產品問題",

1126 teaches: "說明您的角色,以便答案在正確的級別上。Claude 從原始程式碼解釋產品實際執行的內容,無需您讀取它。",1154 teaches: "說明您的角色,以便答案在正確的級別上。Claude 從原始程式碼解釋產品實際執行的內容,無需您讀取它。",

1127 next: "設定輸出樣式,以便 Claude 始終在此級別上提供答案"1155 next: "設定輸出風格,以便 Claude 始終在此級別上提供答案",

1156 prompt: "我是 {role}。帶我了解當使用者{action}時會發生什麼,從 UI 一路到結果",

1157 slots: {

1158 role: "PM",

1159 action: "點擊 Export to PDF"

1160 }

1128 },1161 },

1129 "plan-a-multi-file": {1162 "plan-a-multi-file": {

1130 title: "在觸及程式碼前計畫多檔案變更",1163 title: "在觸及程式碼前計畫多檔案變更",

1131 teaches: "新增「暫不編輯」可將探索與變更分開,以便您在任何程式碼移動前看到方法。若要在每個提示詞上將計畫優先設為預設,請按 Shift+Tab 進入[計畫模式](/docs/zh-TW/permission-modes#analyze-before-you-edit-with-plan-mode)。"1164 teaches: "新增「暫不編輯」可將探索與變更分開,以便您在任何程式碼移動前看到方法。若要在每個提示詞上將計畫優先設為預設,請按 Shift+Tab 進入 [plan mode](/docs/zh-TW/permission-modes#analyze-before-you-edit-with-plan-mode)。",

1165 prompt: "規劃如何重構{target}以{goal}。列出您會變更的檔案,但暫時不要編輯任何內容",

1166 slots: {

1167 target: "付款模組",

1168 goal: "支援多種貨幣"

1169 }

1132 },1170 },

1133 "draft-a-spec-by": {1171 "draft-a-spec-by": {

1134 title: "透過訪談草擬規格",1172 title: "透過訪談草擬規格",

1135 teaches: "要求被訪談而不是自己編寫規格。Claude 詢問您結構化問題,直到需求完整,然後將結果寫入檔案。",1173 teaches: "要求被訪談而不是自己編寫規格。Claude 詢問您結構化問題,直到需求完整,然後將結果寫入檔案。",

1136 next: "將您的訪談問題儲存為 `/spec` 技能,以便每個規格都以相同方式開始"1174 next: "將您的訪談問題儲存為 `/spec` skill,以便每個規格都以相同方式開始",

1175 prompt: "我想打造{feature}。針對實作、UX、邊界情況和取捨訪談我,直到我們涵蓋所有內容,然後將規格寫入 SPEC.md",

1176 slots: {

1177 feature: "每個工作區的速率限制"

1178 }

1137 },1179 },

1138 "turn-a-meeting-into": {1180 "turn-a-meeting-into": {

1139 title: "將會議轉換為工單",1181 title: "將會議轉換為工單",

1140 teaches: "跳過轉錄步驟。Claude 從非結構化輸入中提取行動項目,並透過 [MCP](/docs/zh-TW/mcp) 直接將其寫入您的追蹤器,以便您審查工單而不是轉錄。",1182 teaches: "跳過整理逐字稿的步驟。Claude 從非結構化輸入中提取行動項目,並透過 [MCP](/docs/zh-TW/mcp) 直接將其寫入您的追蹤器,以便您審查工單而不是逐字稿。",

1141 next: "將此儲存為 `/tickets` 技能"1183 next: "將此儲存為 `/tickets` skill",

1184 prompt: "閱讀 {input} 並寫出行動項目,然後為每一項建立附有驗收標準的 {tracker} 工單",

1185 slots: {

1186 input: "@meeting-notes.md",

1187 tracker: "Linear"

1188 }

1142 },1189 },

1143 "map-edge-cases-before": {1190 "map-edge-cases-before": {

1144 title: "在建置前對邊界情況進行對應",1191 title: "在建置前對邊界情況進行對應",

1145 teaches: "詢問缺少什麼,而不是存在什麼。Claude 列出錯誤狀態、空狀態和邊界情況,這些是快樂路徑設計傾向於跳過的。"1192 teaches: "詢問缺少什麼,而不是存在什麼。Claude 列出錯誤狀態、空狀態和邊界情況,這些是快樂路徑設計傾向於跳過的。",

1193 prompt: "列出設計需要涵蓋的 {feature} 的錯誤狀態、空狀態和邊界情況",

1194 slots: {

1195 feature: "檔案上傳流程"

1196 }

1146 },1197 },

1147 "turn-a-mockup-into": {1198 "turn-a-mockup-into": {

1148 title: "將模型轉換為可運作的原型",1199 title: "將模型轉換為可運作的原型",

1149 teaches: "可點擊的原型回答靜態模型無法回答的問題。將可運作的程式碼交給工程部門,而不是在文件中解釋互動。"1200 teaches: "可點擊的原型回答靜態模型無法回答的問題。將可運作的程式碼交給工程部門,而不是在文件中解釋互動。",

1201 prompt: "這是一份模型圖。打造一個我可以點擊操作的可運作原型,符合所示的版面配置和狀態"

1150 },1202 },

1151 "implement-from-a-screenshot": {1203 "implement-from-a-screenshot": {

1152 title: "從螢幕截圖實施並自我檢查",1204 title: "從螢幕截圖實施並自我檢查",

1153 teaches: "這為 Claude 提供了驗證迴圈:它呈現、與來源圖像進行比較,並在您指出每個差距前進行迭代。",1205 teaches: "這為 Claude 提供了驗證迴圈:它呈現、與來源圖像進行比較,並在無需您指出每個差距的情況下進行迭代。",

1154 next: "使用 `/goal` 讓 Claude 持續迭代,直到螢幕截圖相符"1206 next: "使用 `/goal` 讓 Claude 持續迭代,直到螢幕截圖相符",

1207 prompt: "實作此設計,然後對結果截圖,與原始設計比較,並修復任何差異"

1155 },1208 },

1156 "follow-an-existing-pattern": {1209 "follow-an-existing-pattern": {

1157 title: "遵循現有模式",1210 title: "遵循現有模式",

1158 teaches: "指向您已經喜歡的程式碼。沒有參考,Claude 預設為一般最佳實踐。有了參考,它就會符合您的程式碼庫實際使用的慣例。",1211 teaches: "指向您已經喜歡的程式碼。沒有參考,Claude 預設為一般最佳實踐。有了參考,它就會符合您的程式碼庫實際使用的慣例。",

1159 next: "要求 Claude 將其遵循的模式寫入 `CLAUDE.md`,以便未來工作階段無需參考即可符合它"1212 next: "要求 Claude 將其遵循的模式寫入 `CLAUDE.md`,以便未來工作階段無需參考即可符合它",

1213 prompt: "查看 {example} 的實作方式以了解其模式,然後以相同方式打造 {new}",

1214 slots: {

1215 example: "GitHub webhook 處理常式",

1216 new: "Stripe webhook 處理常式"

1217 }

1160 },1218 },

1161 "add-a-small-well": {1219 "add-a-small-well": {

1162 title: "新增小型、定義明確的功能",1220 title: "新增小型、定義明確的功能",

1163 teaches: "說明輸入和輸出,而不是如何建置它。Claude 找到類似程式碼所在的位置,並將您的程式碼添加到其旁邊。"1221 teaches: "說明輸入和輸出,而不是如何建置它。Claude 找到類似程式碼所在的位置,並將您的程式碼添加到其旁邊。",

1222 prompt: "新增一個回傳{payload}的 {endpoint} 端點",

1223 slots: {

1224 endpoint: "/health",

1225 payload: "應用程式版本和運作時間"

1226 }

1164 },1227 },

1165 "build-a-small-internal": {1228 "build-a-small-internal": {

1166 title: "從頭開始建置小型內部工具",1229 title: "從頭開始建置小型內部工具",

1167 teaches: "您不需要專案、框架或建置步驟。描述工具並要求 Claude 打開它,以便您立即看到它運作。"1230 teaches: "您不需要專案、框架或建置步驟。描述工具並要求 Claude 打開它,以便您立即看到它運作。",

1231 prompt: "使用 HTML、CSS 和原生 JavaScript 建立一個{tool},然後在我的瀏覽器中開啟",

1232 slots: {

1233 tool: "具有三個欄位的拖放式看板"

1234 }

1168 },1235 },

1169 "work-an-issue-end": {1236 "work-an-issue-end": {

1170 title: "端到端處理問題",1237 title: "端到端處理問題",

1171 teaches: "提供問題編號,而不是摘要。Claude 自行讀取完整工單,因此您會忘記提及的需求會通過,並在報告前驗證變更。"1238 teaches: "提供問題編號,而不是摘要。Claude 自行讀取完整工單,因此您可能忘記提及的需求也會被納入,並在回報前驗證變更。",

1239 prompt: "閱讀 issue #{issue},實作修復,並執行測試",

1240 slots: {

1241 issue: "312"

1242 }

1172 },1243 },

1173 "find-and-update-copy": {1244 "find-and-update-copy": {

1174 title: "在程式碼庫中尋找並更新副本",1245 title: "在程式碼庫中尋找並更新文案",

1175 teaches: "詢問變體並說出要跳過的內容。Claude 找到字面搜尋會遺漏的措辭,並保持測試夾具和歷史記錄不變,以便您只審查使用者實際看到的副本。"1246 teaches: "詢問變體並說出要跳過的內容。Claude 找到字面搜尋會遺漏的措辭,並保持測試夾具和歷史記錄不變,以便您只審查使用者實際看到的文案。",

1247 prompt: "找出我們寫「{copy}」或相近變體的每個地方,逐一在上下文中顯示給我,然後全部更新為「{new}」。不要動測試和變更日誌",

1248 slots: {

1249 copy: "免費註冊",

1250 new: "開始免費試用"

1251 }

1176 },1252 },

1177 "draft-from-past-examples": {1253 "draft-from-past-examples": {

1178 title: "從過去的範例草擬文件",1254 title: "從過去的範例草擬文件",

1179 teaches: "指向已完成工作的資料夾,而不是描述您的風格。Claude 從您已發佈的內容中學習結構和聲音,因此第一稿讀起來像您的其中之一。",1255 teaches: "指向已完成工作的資料夾,而不是描述您的風格。Claude 從您已發佈的內容中學習結構和語氣,因此第一稿讀起來就像您自己寫的。",

1180 next: "將聲音儲存為技能,以便每個草稿都從那裡開始"1256 next: "將語氣儲存為 skill,以便每個草稿都從那裡開始",

1257 prompt: "閱讀 {folder} 中的{examples}以了解其結構和語氣,然後為{topic}草擬一份新的",

1258 slots: {

1259 examples: "隱私影響評估",

1260 folder: "legal/pia/",

1261 topic: "新的分析整合"

1262 }

1181 },1263 },

1182 "write-tests-run-them": {1264 "write-tests-run-them": {

1183 title: "編寫測試、執行測試、修復失敗",1265 title: "編寫測試、執行測試、修復失敗",

1184 teaches: "一起要求編寫、執行和修復,以便 Claude 在不停止以獲取指示的情況下進行迭代。",1266 teaches: "一起要求編寫、執行和修復,以便 Claude 在不停止以獲取指示的情況下進行迭代。",

1185 next: "執行 `/init` 以便 Claude 自動學習您的測試命令"1267 next: "執行 `/init` 以便 Claude 自動學習您的測試命令",

1268 prompt: "為 {path} 撰寫測試,執行它們,並修復任何失敗",

1269 slots: {

1270 path: "app/parsers/feed.py"

1271 }

1186 },1272 },

1187 "drive-implementation-from-tests": {1273 "drive-implementation-from-tests": {

1188 title: "從測試驅動實施",1274 title: "從測試驅動實施",

1189 teaches: "測試驅動開發:測試定義工作何時完成,Claude 在實施上進行迭代,直到它們通過。"1275 teaches: "測試驅動開發:測試定義工作何時完成,Claude 在實施上進行迭代,直到它們通過。",

1276 prompt: "先為{feature}撰寫測試,然後實作直到測試通過",

1277 slots: {

1278 feature: "密碼重設流程"

1279 }

1190 },1280 },

1191 "fill-gaps-from-a": {1281 "fill-gaps-from-a": {

1192 title: "從涵蓋範圍報告填補空白",1282 title: "從涵蓋範圍報告填補空白",

1193 teaches: "指向涵蓋範圍報告,而不是猜測未測試的內容。Claude 讀取實際數字並為最需要的檔案編寫測試。",1283 teaches: "指向涵蓋範圍報告,而不是猜測未測試的內容。Claude 讀取實際數字並為最需要的檔案編寫測試。",

1194 next: "將此設定為 `/goal`,以便 Claude 持續編寫測試,直到涵蓋範圍達到目標"1284 next: "將此設定為 `/goal`,以便 Claude 持續編寫測試,直到涵蓋範圍達到目標",

1285 prompt: "閱讀 {report},並為涵蓋率最低的檔案新增測試,直到每個檔案都超過 {target}%",

1286 slots: {

1287 report: "coverage/coverage-summary.json",

1288 target: "80"

1289 }

1195 },1290 },

1196 "port-code-between-languages": {1291 "port-code-between-languages": {

1197 title: "將程式碼移植到另一種語言",1292 title: "將程式碼移植到另一種語言",

1198 teaches: "說出要保留的內容,而不僅僅是目標語言。命名必須保持相同的 API 或行為,為 Claude 提供了一份合約來檢查移植。"1293 teaches: "說出要保留的內容,而不僅僅是目標語言。命名必須保持相同的 API 或行為,為 Claude 提供了一份合約來檢查移植。",

1294 prompt: "將{source}移植到 {target},並保持相同的{keep}",

1295 slots: {

1296 source: "這個 Python 模組",

1297 target: "Rust",

1298 keep: "公開 API 和測試行為"

1299 }

1199 },1300 },

1200 "generate-docs-for-code": {1301 "generate-docs-for-code": {

1201 title: "為未記錄的程式碼產生文件",1302 title: "為未記錄的程式碼產生文件",

1202 teaches: "命名範圍和格式。Claude 找到缺少的內容並符合檔案中已有的註解樣式,因此新文件讀起來像其餘部分。"1303 teaches: "命名範圍和格式。Claude 找到缺少的內容並符合檔案中已有的註解樣式,因此新文件讀起來像其餘部分。",

1304 prompt: "找出沒有 {format} 註解的{scope}並加上註解,符合檔案中已使用的風格",

1305 slots: {

1306 scope: "src/auth/ 中的公開函式",

1307 format: "JSDoc"

1308 }

1203 },1309 },

1204 "migrate-a-pattern-across": {1310 "migrate-a-pattern-across": {

1205 title: "在程式碼庫中遷移模式",1311 title: "在程式碼庫中遷移模式",

1206 teaches: "描述舊模式和新模式。要求 Claude 首先識別每個位置意味著呼叫網站在回應中列出,以便您可以檢查是否未遺漏任何內容。對於跨許多檔案的遷移,執行 [/batch](/docs/zh-TW/commands)。Claude 將工作分成單位供您批准,然後背景子代理進行變更。"1312 teaches: "描述舊模式和新模式。要求 Claude 首先識別每個位置,意味著呼叫位置會在回應中列出,以便您可以檢查是否有遺漏。對於跨許多檔案的遷移,執行 [/batch](/docs/zh-TW/commands)。Claude 將工作分成單位供您批准,然後背景 subagent 進行變更。",

1313 prompt: "將所有內容從{from}遷移到{to}:找出每個需要變更的地方,然後進行變更",

1314 slots: {

1315 from: "舊的日誌 API",

1316 to: "結構化日誌記錄器"

1317 }

1207 },1318 },

1208 "optimize-against-a-measurable": {1319 "optimize-against-a-measurable": {

1209 title: "針對可測量目標進行最佳化",1320 title: "針對可測量目標進行最佳化",

1210 teaches: "說明指標和目標為 Claude 提供了明確的完成定義。",1321 teaches: "說明指標和目標為 Claude 提供了明確的完成定義。",

1211 next: "將此設定為 `/goal`,以便 Claude 持續測量和迭代,直到達到該數字"1322 next: "將此設定為 `/goal`,以便 Claude 持續測量和迭代,直到達到該數字",

1323 prompt: "最佳化{target},將 {metric} 從 {current} 降到 {goal} 以下",

1324 slots: {

1325 target: "搜尋查詢",

1326 metric: "p95 延遲",

1327 current: "2s",

1328 goal: "500ms"

1329 }

1212 },1330 },

1213 "fix-a-precise-visual": {1331 "fix-a-precise-visual": {

1214 title: "修復精確的視覺錯誤",1332 title: "修復精確的視覺錯誤",

1215 teaches: "精確的視覺回饋會得到精確的修復。說明確切的元素、測量和視埠。",1333 teaches: "精確的視覺回饋會得到精確的修復。說明確切的元素、測量和視埠。",

1216 next: "新增預覽工具,以便 Claude 自行截圖並驗證修復"1334 next: "新增預覽工具,以便 Claude 自行截圖並驗證修復",

1335 prompt: "在{viewport}上,{element}超出{container} {amount}。修復它。",

1336 slots: {

1337 element: "登入按鈕",

1338 amount: "20px",

1339 container: "卡片邊框",

1340 viewport: "行動裝置"

1341 }

1217 },1342 },

1218 "review-your-changes-before": {1343 "review-your-changes-before": {

1219 title: "在提交前審查您的變更",1344 title: "在提交前審查您的變更",

1220 teaches: "在問題仍然便宜時捕捉問題。Claude 完整讀取已變更的檔案,而不僅僅是差異行,因此它會發現快速自我審查會遺漏的問題。",1345 teaches: "在問題仍然便宜時捕捉問題。Claude 完整讀取已變更的檔案,而不僅僅是差異行,因此它會發現快速自我審查會遺漏的問題。",

1221 next: "執行 `/code-review` 以在一個命令中進行相同檢查"1346 next: "執行 `/code-review` 以在一個命令中進行相同檢查",

1347 prompt: "審查我尚未提交的變更,並在我提交前標出任何看起來有風險的地方"

1222 },1348 },

1223 "review-a-pull-request": {1349 "review-a-pull-request": {

1224 title: "審查拉取請求",1350 title: "審查 pull request",

1225 teaches: "Claude 在整個程式碼庫的背景下進行審查,而不僅僅是差異。它讀取已變更的程式碼及其呼叫的內容,因此它會捕捉僅差異審查會遺漏的問題。",1351 teaches: "Claude 在整個程式碼庫的上下文中進行審查,而不僅僅是差異。它讀取已變更的程式碼及其呼叫的內容,因此它會捕捉僅差異審查會遺漏的問題。",

1226 next: "在一個命令中執行 `/code-review <pr#>`,或為每個 PR 開啟程式碼審查"1352 next: "在一個命令中執行 `/code-review <pr#>`,或為每個 PR 開啟 Code Review",

1353 prompt: "審查 PR #{pr} 並總結變更內容,然後列出任何疑慮",

1354 slots: {

1355 pr: "247"

1356 }

1227 },1357 },

1228 "review-infrastructure-changes-before": {1358 "review-infrastructure-changes-before": {

1229 title: "在應用前審查基礎結構變更",1359 title: "在應用前審查基礎結構變更",

1230 teaches: "計畫輸出密集且難以掃描。貼上它會在您應用前獲得對實際要變更內容的純文字摘要。"1360 teaches: "計畫輸出密集且難以掃描。貼上它會在您應用前獲得對實際要變更內容的純文字摘要。",

1361 prompt: "這是我的 Terraform plan 輸出。它會做什麼?這裡有沒有任何內容會造成問題?"

1231 },1362 },

1232 "run-a-security-review": {1363 "run-a-security-review": {

1233 title: "使用子代理執行安全審查",1364 title: "使用 subagent 執行安全審查",

1234 teaches: "[子代理](/docs/zh-TW/sub-agents)在其自己的背景視窗中執行審計並報告摘要,因此冗長的安全審查不會填滿您的主要工作階段。內建的通用子代理無需額外設定即可處理此問題。",1365 teaches: "[subagent](/docs/zh-TW/sub-agents) 在其自己的上下文視窗中執行審計並報告摘要,因此冗長的安全審查不會填滿您的主要工作階段。內建的通用 subagent 無需額外設定即可處理此問題。",

1235 next: "設定專用的安全審查子代理,您的整個團隊都可以使用"1366 next: "設定專用的安全審查 subagent,您的整個團隊都可以使用",

1367 prompt: "使用 subagent 審查 {path} 的安全問題,並回報它的發現",

1368 slots: {

1369 path: "src/api/"

1370 }

1236 },1371 },

1237 "review-content-before-sending": {1372 "review-content-before-sending": {

1238 title: "在正式審查前捕捉問題",1373 title: "在正式審查前捕捉問題",

1239 teaches: "在人類花時間之前進行第一次通過。命名您想檢查的關注點,以便審查集中,然後修復它找到的內容並發送更清潔的草稿。",1374 teaches: "在人類花時間之前進行第一次通過。命名您想檢查的關注點,以便審查集中,然後修復它找到的內容並發送更清潔的草稿。",

1240 next: "將您的審查檢查清單捕捉為您的整個團隊可以執行的技能"1375 next: "將您的審查檢查清單捕捉為您的整個團隊可以執行的 skill",

1376 prompt: "審查 {file} 是否有{concerns},並列出在交給{reviewer}之前我應該修正的任何內容",

1377 slots: {

1378 file: "launch-post.md",

1379 concerns: "無根據的主張、缺少出處標註以及品牌準則問題",

1380 reviewer: "法務"

1381 }

1241 },1382 },

1242 "course-correct-a-wrong": {1383 "course-correct-a-wrong": {

1243 title: "糾正錯誤的方法",1384 title: "糾正錯誤的方法",

1244 teaches: "命名 Claude 遺漏的約束,而不僅僅是它是錯誤的。具體的原因為 Claude 提供了一個具體的約束來在重試時滿足,而不是再次猜測。",1385 teaches: "命名 Claude 遺漏的約束,而不僅僅是它是錯誤的。具體的原因為 Claude 提供了一個具體的約束來在重試時滿足,而不是再次猜測。",

1245 next: "按 `Esc` 兩次以打開倒帶菜單並恢復程式碼和對話,以便重試乾淨開始"1386 next: "按 `Esc` 兩次以打開倒帶選單並還原程式碼和對話,以便重試乾淨開始",

1387 prompt: "這不對:{feedback}。請嘗試不同的方法",

1388 slots: {

1389 feedback: "函式簽章需要保持向後相容"

1390 }

1246 },1391 },

1247 "narrow-the-scope-of": {1392 "narrow-the-scope-of": {

1248 title: "縮小變更的範圍",1393 title: "縮小變更的範圍",

1249 teaches: "當方向正確但變更過於寬泛時,要求 Claude 保留其中一部分,而不是倒帶所有內容。說明的邊界可防止小修復變成重構。"1394 teaches: "當方向正確但變更過於寬泛時,要求 Claude 保留其中一部分,而不是倒帶所有內容。說明的邊界可防止小修復變成重構。",

1395 prompt: "太多了。只保留對 {scope} 的變更,並復原您的其他編輯",

1396 slots: {

1397 scope: "src/forms/ 中的驗證邏輯"

1398 }

1250 },1399 },

1251 "turn-a-correction-into": {1400 "turn-a-correction-into": {

1252 title: "將更正轉換為規則",1401 title: "將更正轉換為規則",

1253 teaches: "聊天中的更正不會與您的團隊共享。專案 [CLAUDE.md](/docs/zh-TW/memory) 中的規則在您提交後共享,Claude 在每個工作階段開始時讀取它。",1402 teaches: "聊天中的更正不會與您的團隊共享。專案 [CLAUDE.md](/docs/zh-TW/memory) 中的規則在您提交後共享,Claude 在每個工作階段開始時讀取它。",

1254 next: "打開 `/memory` 以審查 Claude 編寫的內容"1403 next: "打開 `/memory` 以審查 Claude 編寫的內容",

1404 prompt: "您一直{mistake}。在 CLAUDE.md 中新增一條規則,讓這種情況不再發生",

1405 slots: {

1406 mistake: "使用預設匯出,但此專案使用具名匯出"

1407 }

1255 },1408 },

1256 "resolve-merge-conflicts": {1409 "resolve-merge-conflicts": {

1257 title: "解決合併衝突",1410 title: "解決合併衝突",

1258 teaches: "說出您想要的狀態,而不是要保留哪些標記。要求推理使合併可審查,而不是黑盒。"1411 teaches: "說出您想要的狀態,而不是要保留哪些標記。要求推理使合併可審查,而不是黑盒。",

1412 prompt: "解決此分支中的合併衝突,並說明您從每一邊保留了什麼"

1259 },1413 },

1260 "commit-with-a-generated": {1414 "commit-with-a-generated": {

1261 title: "使用產生的訊息提交",1415 title: "使用產生的訊息提交",

1262 teaches: "讓 Claude 從差異衍生訊息。它符合您儲存庫的現有提交樣式。"1416 teaches: "讓 Claude 從差異衍生訊息。它符合您儲存庫的現有提交樣式。",

1417 prompt: "提交這些變更,並附上總結我所做內容的訊息"

1263 },1418 },

1264 "open-a-pull-request": {1419 "open-a-pull-request": {

1265 title: "從工單打開拉取請求",1420 title: "從工單開啟 pull request",

1266 teaches: "跳過追蹤器、編輯器和 GitHub 之間的背景切換。一個提示詞讀取規格、進行變更並打開 PR。"1421 teaches: "跳過追蹤器、編輯器和 GitHub 之間的情境切換。一個提示詞讀取規格、進行變更並打開 PR。",

1422 prompt: "找到關於{topic}的 {tracker} 工單,並開啟一個實作它的 PR",

1423 slots: {

1424 tracker: "Linear",

1425 topic: "登入逾時"

1426 }

1267 },1427 },

1268 "draft-release-notes-from": {1428 "draft-release-notes-from": {

1269 title: "從 git 歷史草擬發佈說明",1429 title: "從 git 歷史草擬發佈說明",

1270 teaches: "提供兩個參考點和您想要的結構。Claude 讀取它們之間的提交日誌並草擬您可以編輯的變更日誌。",1430 teaches: "提供兩個參考點和您想要的結構。Claude 讀取它們之間的提交日誌並草擬您可以編輯的變更日誌。",

1271 next: "將此儲存為 `/changelog` 技能"1431 next: "將此儲存為 `/changelog` skill",

1432 prompt: "比較 {from} 與 {to},並草擬按功能、修復和破壞性變更分組的發佈說明",

1433 slots: {

1434 from: "v2.3.0",

1435 to: "v2.4.0"

1436 }

1272 },1437 },

1273 "write-a-ci-workflow": {1438 "write-a-ci-workflow": {

1274 title: "編寫 CI 工作流程",1439 title: "編寫 CI 工作流程",

1275 teaches: "描述何時應執行以及應執行的操作;YAML 為您產生,符合您專案的建置和測試命令。"1440 teaches: "描述何時應執行以及應執行的操作;YAML 為您產生,符合您專案的建置和測試命令。",

1441 prompt: "撰寫一個 GitHub Actions 工作流程,在每次推送到 {branch} 時{steps}",

1442 slots: {

1443 steps: "執行測試並部署到 staging",

1444 branch: "main"

1445 }

1276 },1446 },

1277 "find-and-fix-a": {1447 "find-and-fix-a": {

1278 title: "尋找並修復失敗的測試",1448 title: "尋找並修復失敗的測試",

1279 teaches: "描述症狀;您不需要知道哪個檔案已損壞。Claude 執行測試以查看失敗,將其追蹤到來源,並修復它。"1449 teaches: "描述症狀;您不需要知道哪個檔案已損壞。Claude 執行測試以查看失敗,將其追蹤到來源,並修復它。",

1450 prompt: "{test} 測試失敗了,找出原因並修復它",

1451 slots: {

1452 test: "UserAuth"

1453 }

1280 },1454 },

1281 "investigate-a-reported-error": {1455 "investigate-a-reported-error": {

1282 title: "調查報告的錯誤",1456 title: "調查報告的錯誤",

1283 teaches: "描述症狀和位置;Claude 讀取相關程式碼路徑並追蹤可能的原因。如果您有堆疊追蹤或日誌,請貼上它們。",1457 teaches: "描述症狀和位置;Claude 讀取相關程式碼路徑並追蹤可能的原因。如果您有堆疊追蹤或日誌,請貼上它們。",

1284 next: "在您的執行手冊中放置深層連結,以打開預先填入此提示詞的 Claude"1458 next: "在您的執行手冊中放置深層連結,以打開預先填入此提示詞的 Claude",

1459 prompt: "使用者在 {where} 上看到 {symptom}。調查並告訴我發生了什麼事",

1460 slots: {

1461 symptom: "500 錯誤",

1462 where: "/api/settings"

1463 }

1285 },1464 },

1286 "fix-a-build-error": {1465 "fix-a-build-error": {

1287 title: "在根本原因處修復建置錯誤",1466 title: "在根本原因處修復建置錯誤",

1288 teaches: "要求根本原因和驗證可防止表面級修補程式抑制錯誤而不修復它。"1467 teaches: "要求根本原因和驗證可防止表面級修補程式抑制錯誤而不修復它。",

1468 prompt: "這是一個建置錯誤。修復根本原因並確認建置成功"

1289 },1469 },

1290 "investigate-a-production-incident": {1470 "investigate-a-production-incident": {

1291 title: "調查生產事件",1471 title: "調查生產事件",

1292 teaches: "列出要關聯的證據來源,而不是要採取的步驟。Claude 一起讀取日誌、git 歷史和配置以縮小原因。",1472 teaches: "列出要關聯的證據來源,而不是要採取的步驟。Claude 一起讀取日誌、git 歷史和設定以縮小原因。",

1293 next: "透過 MCP 連接 Sentry 或您的日誌存儲"1473 next: "透過 MCP 連接 Sentry 或您的日誌儲存區",

1474 prompt: "{symptom}。檢查日誌、最近的部署和設定變更,然後告訴我最可能的原因",

1475 slots: {

1476 symptom: "結帳端點從一小時前開始回傳 500 錯誤"

1477 }

1294 },1478 },

1295 "query-logs-in-plain": {1479 "query-logs-in-plain": {

1296 title: "用純英文查詢日誌",1480 title: "用純英文查詢日誌",

1297 teaches: "詢問問題而不是編寫 SQL。Claude 建置查詢、針對您連接的日誌執行它,並顯示查詢和結果,以便您可以檢查執行的內容。"1481 teaches: "詢問問題而不是編寫 SQL。Claude 建置查詢、針對您連接的日誌執行它,並顯示查詢和結果,以便您可以檢查執行的內容。",

1482 prompt: "顯示{scope}在{timeframe}內所有的{events}。撰寫查詢、執行它,並告訴我有哪些值得注意的地方",

1483 slots: {

1484 events: "登入失敗",

1485 scope: "驗證服務",

1486 timeframe: "過去 24 小時"

1487 }

1298 },1488 },

1299 "diagnose-from-a-console": {1489 "diagnose-from-a-console": {

1300 title: "從控制台螢幕截圖診斷",1490 title: "從控制台螢幕截圖診斷",

1301 teaches: "雲端控制台向您顯示問題,但不顯示修復它的命令。Claude 讀取螢幕截圖並將儀表板轉換為要執行的 kubectl、gcloud 或 aws 命令。"1491 teaches: "雲端控制台向您顯示問題,但不顯示修復它的命令。Claude 讀取螢幕截圖並將儀表板轉換為要執行的 kubectl、gcloud 或 aws 命令。",

1492 prompt: "這是{console}的螢幕截圖。帶我了解{resource}為什麼失敗,並給我修復它的確切命令",

1493 slots: {

1494 console: "GCP Kubernetes 儀表板",

1495 resource: "這個 pod"

1496 }

1302 },1497 },

1303 "analyze-a-data-file": {1498 "analyze-a-data-file": {

1304 title: "分析資料檔案",1499 title: "分析資料檔案",

1305 teaches: "一次性問題不需要一次性指令碼。指向專案資料夾中的檔案,Claude 直接讀取它、找到模式並在您要求的位置寫入輸出。",1500 teaches: "一次性問題不需要一次性指令碼。指向專案資料夾中的檔案,Claude 直接讀取它、找到模式並在您要求的位置寫入輸出。",

1306 next: "透過 MCP 連接資料來源,而不是匯出檔案"1501 next: "透過 MCP 連接資料來源,而不是匯出檔案",

1502 prompt: "閱讀 {file},總結主要模式,並將結果寫入{output}",

1503 slots: {

1504 file: "@reports/q1-signups.csv",

1505 output: "附有圖表的 HTML 頁面,然後在我的瀏覽器中開啟"

1506 }

1307 },1507 },

1308 "generate-variations-from-performance": {1508 "generate-variations-from-performance": {

1309 title: "從效能資料產生變體",1509 title: "從效能資料產生變體",

1310 teaches: "在開始時說明約束,以便產生保持在限制內。Claude 讀取指標、選擇要替換的內容,並產生符合的替代方案。",1510 teaches: "在開始時說明約束,以便產生保持在限制內。Claude 讀取指標、選擇要替換的內容,並產生符合的替代方案。",

1311 next: "透過 MCP 連接廣告平台,而不是匯出檔案"1511 next: "透過 MCP 連接廣告平台,而不是匯出檔案",

1512 prompt: "閱讀 {file},找出表現不佳的{items},並產生 {n} 個不超過 {limit} 個字元的新變體",

1513 slots: {

1514 file: "@ads-performance.csv",

1515 items: "標題",

1516 n: "20",

1517 limit: "90"

1518 }

1312 },1519 },

1313 "turn-a-recurring-task": {1520 "turn-a-recurring-task": {

1314 title: "將重複任務轉換為技能",1521 title: "將重複任務轉換為 skill",

1315 teaches: "命名步驟一次;將其重複用作命令。Claude 編寫您的團隊中任何人都可以執行的 [技能](/docs/zh-TW/skills)。"1522 teaches: "命名步驟一次;將其重複用作命令。Claude 編寫您的團隊中任何人都可以執行的 [skill](/docs/zh-TW/skills)。",

1523 prompt: "為此專案建立一個 /{name} skill,用來{steps}",

1524 slots: {

1525 name: "ship",

1526 steps: "執行 linter 和測試,然後草擬提交訊息"

1527 }

1316 },1528 },

1317 "add-a-hook-for": {1529 "add-a-hook-for": {

1318 title: "為重複行為新增 hook",1530 title: "為重複行為新增 hook",

1319 teaches: "Hooks 使行為自動進行,而不是您必須記住要求的內容。描述觸發器和操作,Claude 編寫 [hook](/docs/zh-TW/hooks) 配置。"1531 teaches: "hook 使行為自動進行,而不是您必須記住要求的內容。描述觸發器和操作,Claude 編寫 [hook](/docs/zh-TW/hooks) 設定。",

1532 prompt: "撰寫一個 hook,在每次{event}後{action}",

1533 slots: {

1534 action: "執行 prettier",

1535 event: "編輯 .ts 或 .tsx 檔案"

1536 }

1320 },1537 },

1321 "connect-a-tool-with": {1538 "connect-a-tool-with": {

1322 title: "使用 MCP 連接工具",1539 title: "使用 MCP 連接工具",

1323 teaches: "連接來源一次,而不是每個工作階段貼上資料。在 [MCP](/docs/zh-TW/mcp) 設定後,當您詢問它時,Claude 直接從工具讀取。"1540 teaches: "連接來源一次,而不是每個工作階段貼上資料。在 [MCP](/docs/zh-TW/mcp) 設定後,當您詢問它時,Claude 直接從工具讀取。",

1541 prompt: "設定 {server} MCP 伺服器,讓您可以直接讀取我的{data}",

1542 slots: {

1543 server: "Sentry",

1544 data: "錯誤報告"

1545 }

1324 },1546 },

1325 "capture-what-to-remember": {1547 "capture-what-to-remember": {

1326 title: "捕捉下次要記住的內容",1548 title: "捕捉下次要記住的內容",

1327 teaches: "在您忘記前詢問。Claude 知道它在此工作階段中必須弄清楚的內容,並提議 [CLAUDE.md](/docs/zh-TW/memory) 項目,以便下一個工作階段以該背景開始。"1549 teaches: "在您忘記前詢問。Claude 知道它在此工作階段中必須弄清楚的內容,並提議 [CLAUDE.md](/docs/zh-TW/memory) 項目,以便下一個工作階段以該上下文開始。",

1550 prompt: "總結我們在此工作階段做了什麼,並建議要新增到 CLAUDE.md 的內容"

1328 }1551 }

1329};1552};

1330 1553 

remote-control.md +27 −13

Details

220 220 

221這些命令在伺服器停止後約四小時內有效。之後,執行 `claude remote-control` 以啟動新會話。如果您在此期間封存了會話,`--continue` 和 `--session-id` 會在 Claude Code v2.1.228 或更新版本上取消封存它。221這些命令在伺服器停止後約四小時內有效。之後,執行 `claude remote-control` 以啟動新會話。如果您在此期間封存了會話,`--continue` 和 `--session-id` 會在 Claude Code v2.1.228 或更新版本上取消封存它。

222 222 

223要恢復您使用 `claude --remote-control` 或 `/remote-control` 啟動的會話,請使用 `claude --continue` 或 `claude --resume` 恢復對話。如果 Remote Control 無法重新連接,請參閱[無法重新連接到您的 Remote Control 會話](#couldnt-reconnect-to-your-remote-control-session)。223要恢復您使用 `claude --remote-control` 或 `/remote-control` 啟動的工作階段,請使用 `claude --continue` 或 `claude --resume` 恢復對話。關於恢復的對話以哪種權限模式開始,請參閱[恢復時的權限模式](/docs/zh-TW/sessions#permission-mode-on-resume)。如果 Remote Control 無法重新連接,請參閱[無法重新連接到您的 Remote Control 工作階段](#couldnt-reconnect-to-your-remote-control-session)。

224 224 

225如果您在第一個終端機仍然開啟 Remote Control 時在第二個終端機中恢復對話,Claude Code 會在第二個終端機中列印 `Remote Control not started here` 通知並改為在那裡關閉 Remote Control,而不是從第一個終端機奪取會話。在第二個終端機中執行 `/remote-control` 以將 Remote Control 移動到它。225如果您在第一個終端機仍然開啟 Remote Control 時在第二個終端機中恢復對話,Claude Code 會在第二個終端機中列印 `Remote Control not started here` 通知並改為在那裡關閉 Remote Control,而不是從第一個終端機奪取會話。在第二個終端機中執行 `/remote-control` 以將 Remote Control 移動到它。

226 226 


257 257 

258生物識別檢查透過作業系統或瀏覽器在裝置上執行,與通行金鑰登入相同的機制。Anthropic 永遠不會接收或儲存指紋、臉部資料或任何其他生物識別資訊。只有裝置的公鑰和基本中繼資料(例如顯示名稱、平台和註冊時間)會被儲存。258生物識別檢查透過作業系統或瀏覽器在裝置上執行,與通行金鑰登入相同的機制。Anthropic 永遠不會接收或儲存指紋、臉部資料或任何其他生物識別資訊。只有裝置的公鑰和基本中繼資料(例如顯示名稱、平台和註冊時間)會被儲存。

259 259 

260該設定僅適用於 Remote Control。一般 Claude 聊天、終端機中的 Claude Code 和 API 使用不受影響。260該設定同時適用於 Claude Code 和 [Cowork](https://claude.com/docs/cowork/overview) 中的 Remote Control。本頁面說明 Claude Code 的部分。一般 Claude 聊天、終端機中的 Claude Code 和 API 使用不受影響。

261 261 

262<h3 id="enable-trusted-devices-for-your-organization">262<h3 id="enable-trusted-devices-for-your-organization">

263 為 Team 或 Enterprise 組織啟用受信任的裝置263 為 Team 或 Enterprise 組織啟用受信任的裝置


363* **每個互動程序一個遠端工作階段**:在伺服器模式之外,每個 Claude Code 實例一次只支援一個遠端工作階段。使用[伺服器模式](#start-a-remote-control-session)從單一程序執行多個並行工作階段。363* **每個互動程序一個遠端工作階段**:在伺服器模式之外,每個 Claude Code 實例一次只支援一個遠端工作階段。使用[伺服器模式](#start-a-remote-control-session)從單一程序執行多個並行工作階段。

364* **本機程序必須保持執行**:Remote Control 以本機程序的形式執行。如果您關閉終端機、結束 Desktop 應用程式或 VS Code,或以其他方式停止 `claude` 程序,工作階段將離線,直到您[將其恢復](#resume-sessions-after-stopping-the-server)。若要在您從 SSH 中斷連線後讓工作階段在遠端機器上保持執行,請在 `tmux` 或 `screen` 內啟動它。364* **本機程序必須保持執行**:Remote Control 以本機程序的形式執行。如果您關閉終端機、結束 Desktop 應用程式或 VS Code,或以其他方式停止 `claude` 程序,工作階段將離線,直到您[將其恢復](#resume-sessions-after-stopping-the-server)。若要在您從 SSH 中斷連線後讓工作階段在遠端機器上保持執行,請在 `tmux` 或 `screen` 內啟動它。

365* **伺服器模式中的已損毀工作階段**:如果由 `claude remote-control` 提供服務的工作階段損毀,請從已連線的裝置向其傳送訊息。Claude Code 會再次提供服務。您不必重新啟動伺服器。需要 Claude Code v2.1.238 或更新版本。365* **伺服器模式中的已損毀工作階段**:如果由 `claude remote-control` 提供服務的工作階段損毀,請從已連線的裝置向其傳送訊息。Claude Code 會再次提供服務。您不必重新啟動伺服器。需要 Claude Code v2.1.238 或更新版本。

366* **已連線工作階段上的 HTTP 403 拒絕**:一旦互動工作階段已連線,當您的機器與 Anthropic 伺服器之間的某個位置以 HTTP 403 回應時(在 VPN 或網路變更後可能發生),Claude Code 會重試最多三分鐘。如果拒絕持續更久,Claude Code 會中斷連線,原因會指出拒絕的內容:網路邊界,或您自己網路上的代理、VPN 或防火牆。366* **已連線工作階段上的 HTTP 403 拒絕**:一旦互動工作階段已連線,當您的機器與 Anthropic 伺服器之間的某個位置以 HTTP 403 回應時(在 VPN 或網路變更後可能發生),Claude Code 會重試最多三分鐘。如果拒絕持續更久,Claude Code 會中斷連線,原因會指出拒絕的內容:網路邊界,或您自己網路上的代理伺服器、VPN 或防火牆。

367* **延長的網路中斷**:如果您的機器已開啟但無法連線到網路,您接下來的操作取決於模式:367* **延長的網路中斷**:如果您的機器已開啟但無法連線到網路,您接下來的操作取決於模式:

368 * **伺服器模式**:Claude Code 在大約 10 分鐘後放棄,`claude remote-control` 程序退出。再次執行 `claude remote-control` 以啟動新工作階段。368 * **伺服器模式**:Claude Code 在大約 10 分鐘後放棄,`claude remote-control` 程序退出。再次執行 `claude remote-control` 以啟動新工作階段。

369 * **互動工作階段**:繼續在本機工作。Claude Code 會在中斷期間重試,並在網路恢復時自動重新連線。369 * **互動工作階段**:繼續在本機工作。Claude Code 會在中斷期間重試,並在網路恢復時自動重新連線。

370* **無法下載的附件**:如果您從手機或瀏覽器附加的檔案無法下載到您的機器,Claude 仍會收到您的訊息以及已下載的檔案。Claude Code 會在訊息中加入一則附註,例如 `[1 of 3 attachments did not arrive]`,以取代遺失的檔案。

370* **存在心跳失敗**:如果互動工作階段以 `could not reach the Remote Control server for about 30 minutes` 中斷連線,執行 `/remote-control` 以重新連線。371* **存在心跳失敗**:如果互動工作階段以 `could not reach the Remote Control server for about 30 minutes` 中斷連線,執行 `/remote-control` 以重新連線。

371* **轉送的對話框過期**:Claude Code 會保持權限提示和 `AskUserQuestion` 問題開啟,直到您回答。當 Claude Code 將另一種對話框轉送到遠端工作階段時,例如安全拒絕後顯示的模型選擇提示,預設情況下會等待五分鐘,然後關閉對話框並繼續使用對話框的無操作預設值。設定 [`dialogExpiry`](/docs/zh-TW/settings-reference#dialogexpiry) 以調整或停用截止時間。需要 Claude Code v2.1.224 或更新版本。372* **轉送的對話框過期**:Claude Code 會保持權限提示和 `AskUserQuestion` 問題開啟,直到您回答。當 Claude Code 將另一種對話框轉送到遠端工作階段時,例如安全拒絕後顯示的模型選擇提示,預設情況下會等待五分鐘,然後關閉對話框並繼續使用對話框的無操作預設值。設定 [`dialogExpiry`](/docs/zh-TW/settings-reference#dialogexpiry) 以調整或停用截止時間。需要 Claude Code v2.1.224 或更新版本。

372* **Fable 使用額度同意提示未轉送**:Claude Code 只在工作階段執行的位置顯示中途[Fable 使用額度同意提示](/docs/zh-TW/model-config#fable-and-usage-credits),而不是在您的裝置上。當工作階段在終端機中執行,且沒有人在 Claude Code 關閉提示之前回答時,該輪次結束而不傳送請求;請參閱[確認提示未被回答](/docs/zh-TW/errors#the-prompt-to-confirm-went-unanswered)。373* **Fable 用量點數同意提示未轉送**:Claude Code 只在工作階段執行的位置顯示中途[Fable 用量點數同意提示](/docs/zh-TW/model-config#fable-and-usage-credits),而不是在您的裝置上。當工作階段在終端機中執行,且沒有人在 Claude Code 關閉提示之前回答時,該回合結束而不傳送請求;請參閱[確認提示未被回答](/docs/zh-TW/errors#the-prompt-to-confirm-went-unanswered)。

373* **某些命令僅限本機**:僅在終端機介面中執行的命令,例如 `/plugin` 或 `/resume`,只能從本機 CLI 執行,無論您是否傳遞引數。以下命令可從行動裝置和網路使用:374* **某些命令僅限本機**:僅在終端機介面中執行的命令,例如 `/plugin` 或 `/resume`,只能從本機 CLI 執行,無論您是否傳遞引數。從行動裝置或網路輸入 `/claude-api` 時也無法使用。Claude 仍可在那裡[自行載入該 skill](/docs/zh-TW/skills#work-on-claude-api-projects)。以下命令可從行動裝置和網路使用:

374 * 文字輸出命令:`/compact`、`/clear`、`/context`、`/usage`、`/exit`、`/usage-credits`、`/recap` 和 `/reload-plugins`。`/usage-credits` 列印計費 URL 而不是開啟瀏覽器。`/reload-plugins` 僅在工作階段在互動終端機中執行時有效;沒有終端機的工作階段會拒絕它。375 * 文字輸出命令:`/compact`、`/clear`、`/context`、`/usage`、`/exit`、`/usage-credits`、`/recap` 和 `/reload-plugins`。`/usage-credits` 列印計費 URL 而不是開啟瀏覽器。`/reload-plugins` 僅在工作階段在互動終端機中執行時有效;沒有終端機的工作階段會拒絕它。

375 * `/model`、`/effort`、`/fast`、`/color` 和 `/rename`:將值作為引數傳遞,例如 `/model sonnet` 或 `/effort high`。從行動裝置和網路,`/model` 和 `/effort` 會取代終端機選擇器或滑桿來接受引數。376 * `/model`、`/effort`、`/fast`、`/color` 和 `/rename`:將值作為引數傳遞,例如 `/model sonnet` 或 `/effort high`。從行動裝置和網路,`/model` 和 `/effort` 會取代終端機選擇器或滑桿來接受引數。

376 * `/mcp`:從行動應用程式,傳回伺服器狀態的文字摘要而不是開啟選擇器。在網路上,`/mcp` 單獨開啟 [claude.ai 連接器](/docs/zh-TW/mcp#use-mcp-servers-from-claude-ai)的目錄,而不是傳回摘要。`reconnect`、`enable` 和 `disable` [子命令](/docs/zh-TW/commands#all-commands)可從兩者使用。與本機 CLI 不同,不帶伺服器名稱的 `/mcp reconnect` 會重新連線每個已失敗或需要驗證的伺服器。377 * `/mcp`:從行動應用程式,傳回伺服器狀態的文字摘要而不是開啟選擇器。在網路上,`/mcp` 單獨開啟 [claude.ai 連接器](/docs/zh-TW/mcp#use-mcp-servers-from-claude-ai)的目錄,而不是傳回摘要。`reconnect`、`enable` 和 `disable` [子命令](/docs/zh-TW/commands#all-commands)可從兩者使用。不帶伺服器名稱的 `/mcp reconnect` 會重試每個已失敗或需要身分驗證的伺服器。

377 * `/config`:從行動應用程式,傳遞 `key=value` 以設定設定,或不帶引數執行以列出您可以設定的金鑰。在網路上,`/config` 會改為開啟您設定的 Claude Code 部分,並忽略命令後的文字。378 * `/config`:從行動應用程式,傳遞 `key=value` 以設定設定,或不帶引數執行以列出您可以設定的金鑰。在網路上,`/config` 會改為開啟您設定的 Claude Code 部分,並忽略命令後的文字。

378 * 在 Team 和 Enterprise 上,從行動裝置或網路執行的 `/usage-credits` 不會傳送[使用額度請求給您的管理員](/docs/zh-TW/costs#add-usage-credits-to-your-subscription)。傳送需要僅在互動 CLI 中出現的確認,因此命令會告訴您改為在那裡執行它。379 * 在 Team 和 Enterprise 上,從行動裝置或網路執行的 `/usage-credits` 不會傳送[用量點數請求給您的管理員](/docs/zh-TW/costs#add-usage-credits-to-your-subscription)。傳送需要僅在互動 CLI 中出現的確認,因此命令會告訴您改為在那裡執行它。

379 * `/autocompact`,從 v2.1.221:將視窗大小作為引數傳遞,例如 `/autocompact 500k`。不帶引數時,它會列印目前的視窗大小作為文字,而不是開啟命令在終端機工作階段中顯示的對話框。380 * `/autocompact`,從 v2.1.221:將視窗大小作為引數傳遞,例如 `/autocompact 500k`。不帶引數時,它會列印目前的視窗大小作為文字,而不是開啟命令在終端機工作階段中顯示的對話框。

380 * `/advisor`,從 v2.1.260:將模型作為引數傳遞,例如 `/advisor opus`,或傳遞 `off` 以關閉顧問。兩種形式都僅適用於目前工作階段,並保持您儲存的預設值不變。不帶引數時,它會列印目前的顧問作為文字,而不是開啟選擇器。381 * `/advisor`,從 v2.1.260:將模型作為引數傳遞,例如 `/advisor opus`,或傳遞 `off` 以關閉顧問。兩種形式都僅適用於目前工作階段,並保持您儲存的預設值不變。不帶引數時,它會列印目前的顧問作為文字,而不是開啟選擇器。

381 * `/output-style`,從 v2.1.269:將樣式名稱作為引數傳遞,例如 `/output-style concise`,或不帶引數執行以列出樣式。從行動裝置和網路,您只能列出和選擇[內建樣式](/docs/zh-TW/output-styles#built-in-output-styles)。若要使用[自訂樣式](/docs/zh-TW/output-styles#create-a-custom-output-style),請在工作階段本身中選擇它。382 * `/output-style`,從 v2.1.269:將風格名稱作為引數傳遞,例如 `/output-style concise`,或不帶引數執行以列出風格。從行動裝置和網路,您只能列出和選擇[內建風格](/docs/zh-TW/output-styles#built-in-output-styles)。若要使用[自訂風格](/docs/zh-TW/output-styles#create-a-custom-output-style),請在工作階段本身中選擇它。

382 * `/focus`,從 v2.1.281:將 `on` 或 `off` 作為引數傳遞,例如 `/focus on`,或不帶引數執行以切換[焦點檢視](/docs/zh-TW/commands#all-commands)。兩種形式都僅適用於目前工作階段,並保持您儲存的選擇不變。383 * `/focus`,從 v2.1.281:將 `on` 或 `off` 作為引數傳遞,例如 `/focus on`,或不帶引數執行以切換[焦點檢視](/docs/zh-TW/commands#all-commands)。兩種形式都僅適用於目前工作階段,並保持您儲存的選擇不變。

383 384 

384<h2 id="troubleshooting">385<h2 id="troubleshooting">


389 "Remote Control requires a claude.ai subscription"390 "Remote Control requires a claude.ai subscription"

390</h3>391</h3>

391 392 

392您未使用 claude.ai 帳戶登入,或另一個認證方式優先於您的登入。此訊息採用以下其中一種形式:393您未使用 claude.ai 帳戶登入,或另一個憑證優先於您的登入。此訊息採用以下其中一種形式:

393 394 

394* 已登出,來自 `/remote-control` 或 `--remote-control`:`Remote Control requires a claude.ai subscription.` 或 `/remote-control requires a claude.ai subscription.`395* 已登出,來自 `/remote-control` 或 `--remote-control`:`Remote Control requires a claude.ai subscription.` 或 `/remote-control requires a claude.ai subscription.`

395* 已登出,來自 `claude remote-control`:`You must be logged in to use Remote Control. Remote Control is only available with claude.ai subscriptions.`396* 已登出,來自 `claude remote-control`:`You must be logged in to use Remote Control. Remote Control is only available with claude.ai subscriptions.`

396* 已登入,但正在使用 API 金鑰或權杖:`Remote Control requires claude.ai subscription auth.` 後面跟著正在使用的認證方式,例如 `ANTHROPIC_API_KEY is set, so this session is using API-key auth`。`apiKeyHelper` 設定和 `ANTHROPIC_AUTH_TOKEN` 的命名方式相同。397* 已登入,但正在使用 API 金鑰或權杖:`Remote Control requires claude.ai subscription auth.` 後面跟著正在使用的憑證,例如 `ANTHROPIC_API_KEY is set, so this session is using API-key auth`。`apiKeyHelper` 設定和 `ANTHROPIC_AUTH_TOKEN` 的命名方式相同。

397 398 

398執行 `claude auth login` 並選擇 claude.ai 選項。如果訊息提及 `ANTHROPIC_API_KEY` 或 `ANTHROPIC_AUTH_TOKEN`,請在設定的位置移除它:您的 shell 環境或[設定檔](/docs/zh-TW/settings-reference#env)的 `env` 區塊。如果提及 `apiKeyHelper`,請移除該設定。399執行 `claude auth login` 並選擇 claude.ai 選項。如果訊息提及 `ANTHROPIC_API_KEY` 或 `ANTHROPIC_AUTH_TOKEN`,請在設定的位置移除它:您的 shell 環境或[設定檔](/docs/zh-TW/settings-reference#env)的 `env` 區塊。如果提及 `apiKeyHelper`,請移除該設定。

399 400 


442 443 

443訊息會命名將工作階段路由離開 Anthropic API 的內容,例如 `CLAUDE_CODE_USE_BEDROCK` 或自訂 `ANTHROPIC_BASE_URL`。如果您有符合資格的 claude.ai 登入,請取消設定命名的變數,如果您在[設定](/docs/zh-TW/settings)中設定了它,請從 `env` 金鑰中移除它,然後重新啟動工作階段。444訊息會命名將工作階段路由離開 Anthropic API 的內容,例如 `CLAUDE_CODE_USE_BEDROCK` 或自訂 `ANTHROPIC_BASE_URL`。如果您有符合資格的 claude.ai 登入,請取消設定命名的變數,如果您在[設定](/docs/zh-TW/settings)中設定了它,請從 `env` 金鑰中移除它,然後重新啟動工作階段。

444 445 

445<h3 id="remote-control-is-disabled-by-your-organization’s-policy">446<h3 id="remote-control-is-disabled-by-your-organizations-policy">

446 "Remote Control is disabled by your organization's policy"447 "Remote Control is disabled by your organization's policy"

447</h3>448</h3>

448 449 


455 456 

456在 v2.1.281 之前,當 Claude Code 未在此機器上載入您的組織原則時,此訊息也會出現,例如在離線啟動後。更新版本會改為將該狀態報告為 [`Couldn't verify your organization's policy for remote control`](#couldnt-verify-your-organizations-policy-for-remote-control)。457在 v2.1.281 之前,當 Claude Code 未在此機器上載入您的組織原則時,此訊息也會出現,例如在離線啟動後。更新版本會改為將該狀態報告為 [`Couldn't verify your organization's policy for remote control`](#couldnt-verify-your-organizations-policy-for-remote-control)。

457 458 

459<h3 id="remote-control-was-turned-off-by-your-organizations-policy">

460 "Remote Control was turned off by your organization's policy"

461</h3>

462 

463您的組織原則在工作階段連線期間不再允許 Remote Control,因此 Claude Code 中斷了該工作階段的連線。工作階段後續的情況取決於您啟動 Remote Control 的方式:

464 

465* **使用 `/remote-control`、`claude --remote-control` 或[自動連線](#enable-remote-control-for-all-sessions)**:工作階段會在沒有 Remote Control 的情況下繼續執行,且 Claude Code 會在 claude.ai 將其封存

466* **使用 `claude remote-control`**:伺服器會停止並封存其所服務的工作階段,然後結束

467 

468您仍可透過[篩選已封存的工作階段](/docs/zh-TW/claude-code-on-the-web#archive-sessions)找到已封存的工作階段。

469 

470Remote Control 不會自行重新連線。若要在您的組織再次允許後重新開啟它,請在工作階段中執行 `/remote-control`,或在 shell 中執行 `claude remote-control`。在此機器上的 Claude Code 擷取到變更後的原則之前,任一命令都會以 [`Remote Control is disabled by your organization's policy`](#remote-control-is-disabled-by-your-organizations-policy) 失敗。開啟中的工作階段大約每小時擷取一次原則。若要找出阻止 Remote Control 的原因,請將命令輸出的完整文字與該項目進行比對。

471 

458<h3 id="couldnt-verify-your-organizations-policy-for-remote-control">472<h3 id="couldnt-verify-your-organizations-policy-for-remote-control">

459 "Couldn't verify your organization's policy for remote control"473 "Couldn't verify your organization's policy for remote control"

460</h3>474</h3>


474 "Remote credentials fetch failed"488 "Remote credentials fetch failed"

475</h3>489</h3>

476 490 

477Claude Code 無法從 Anthropic API 取得短期認證以建立連線。使用 `--verbose` 重新執行以查看完整錯誤:491Claude Code 無法從 Anthropic API 取得短期憑證以建立連線。使用 `--verbose` 重新執行以查看完整錯誤:

478 492 

479```bash theme={null}493```bash theme={null}

480claude remote-control --verbose494claude remote-control --verbose


506 "Remote Control got an unexpected server response"520 "Remote Control got an unexpected server response"

507</h3>521</h3>

508 522 

509Remote Control 伺服器接受了請求,但以此版本的 Claude Code 無法讀取的形式回覆,同時建立遠端工作階段或擷取其認證。在相同版本上重試會以相同方式失敗。執行 `claude update`,然後執行 `/remote-control` 以重新連線。523Remote Control 伺服器接受了請求,但以此版本的 Claude Code 無法讀取的形式回覆,同時建立遠端工作階段或擷取其憑證。在相同版本上重試會以相同方式失敗。執行 `claude update`,然後執行 `/remote-control` 以重新連線。

510 524 

511<h3 id="your-organization-requires-trusted-devices-for-remote-control-but-this-device-is-not-enrolled">525<h3 id="your-organization-requires-trusted-devices-for-remote-control-but-this-device-is-not-enrolled">

512 "Your organization requires Trusted Devices for Remote Control, but this device is not enrolled"526 "Your organization requires Trusted Devices for Remote Control, but this device is not enrolled"

routines.md +1 −5

Details

365 365 

366您新增的每個存儲庫在每次運行時都會被複製。Claude 從存儲庫的預設分支開始,除非您的提示另有指定。366您新增的每個存儲庫在每次運行時都會被複製。Claude 從存儲庫的預設分支開始,除非您的提示另有指定。

367 367 

368Claude 將其工作推送到以 `claude/` 為前綴的分支,這些分支始終被接受。當您的提示指示 Claude 推送到另一個分支時,Claude Code 會先檢查推送,如果以下任何情況為真,則拒絕它:368除非您的提示詞指示 Claude 推送到其他分支,否則 Claude 會將其工作推送到以 `claude/` 為前綴的分支。若要控制執行可以推送到哪些分支,請在 GitHub 上使用分支保護規則或規則集。對於在 Anthropic 管理的基礎設施上進行的執行,以及透過 [Anthropic 的 git 代理伺服器](/docs/zh-TW/self-hosted-environments-deploy#use-the-anthropic-git-proxy)推送的自行託管執行,GitHub 會將這些規則套用於您所連線的 GitHub 存取權限,因此該存取權限可以略過的規則不會阻擋執行的推送。使用您的部署所提供之 git 憑證進行推送的自行託管執行,則會依照那些憑證進行檢查。請參閱[設定 git](/docs/zh-TW/self-hosted-environments-deploy#configure-git)。

369 

370* 該分支在 GitHub 上受保護

371* 其他人有一個來自該分支的開放拉取請求

372* 該分支包含由您以外的人編寫的提交

373 369 

374<h3 id="connectors">370<h3 id="connectors">

375 Connectors371 Connectors

Details

91 Sandbox runtime91 Sandbox runtime

92</h2>92</h2>

93 93 

94[`@anthropic-ai/sandbox-runtime`](https://github.com/anthropic-experimental/sandbox-runtime) 套件將整個進程包裝在內建 Bash 沙箱使用的相同 Seatbelt 或 bubblewrap 隔離中。通過它執行 Claude Code 會限制會話中的每個工具、hook 和 MCP 伺服器,而不僅僅是 Bash 命令。該 runtime 是測試版研究預覽,其配置格式可能會隨著套件的發展而改變。94[`@anthropic-ai/sandbox-runtime`](https://github.com/anthropics/sandbox-runtime) 套件將整個程序包裝在內建 Bash 沙箱使用的相同 Seatbelt 或 bubblewrap 隔離中。透過該 runtime 執行 Claude Code 會限制工作階段的工具、hook 和 MCP 伺服器,以及 shell 命令。該 runtime 是測試版研究預覽,其設定格式可能會隨著套件的發展而改變。

95 95 

96本節涵蓋您配置的內容以及 runtime 自行強制執行的內容。有關在 Agent SDK 應用程式中部署 runtime,請參閱[安全部署指南](/docs/zh-TW/agent-sdk/secure-deployment#sandbox-runtime)。96本節涵蓋您設定的內容以及 runtime 自行強制執行的內容。有關在 Agent SDK 應用程式中部署 runtime,請參閱[安全部署指南](/docs/zh-TW/agent-sdk/secure-deployment#sandbox-runtime)。

97 97 

98<h3 id="set-up-and-launch-the-runtime">98<h3 id="set-up-and-launch-the-runtime">

99 設定和啟動 runtime99 設定和啟動 runtime


101 101 

102在 Linux 和 WSL2 上,runtime 依賴於內建沙箱使用的相同 `bubblewrap` 和 `socat` 套件,加上 `ripgrep`,Claude Code 會捆綁但獨立 runtime 從您的 PATH 解析。按照[設定 Linux 和 WSL2](/docs/zh-TW/sandboxing#set-up-linux-and-wsl2) 中的說明安裝 `bubblewrap` 和 `socat`,並從您的發行版套件管理員安裝 `ripgrep`。在 macOS 上,您不需要任何額外的套件。runtime 在那裡使用內建的 Seatbelt 沙箱。102在 Linux 和 WSL2 上,runtime 依賴於內建沙箱使用的相同 `bubblewrap` 和 `socat` 套件,加上 `ripgrep`,Claude Code 會捆綁但獨立 runtime 從您的 PATH 解析。按照[設定 Linux 和 WSL2](/docs/zh-TW/sandboxing#set-up-linux-and-wsl2) 中的說明安裝 `bubblewrap` 和 `socat`,並從您的發行版套件管理員安裝 `ripgrep`。在 macOS 上,您不需要任何額外的套件。runtime 在那裡使用內建的 Seatbelt 沙箱。

103 103 

104預設情況下,runtime 拒絕網路存取並將寫入限制在一小組內建 runtime 路徑,因此在通過它啟動 Claude Code 之前配置它。將您的配置放在 `~/.srt-settings.json` 中,或在您使用 `--settings` 傳遞的檔案中。套件 [README](https://github.com/anthropic-experimental/sandbox-runtime) 記錄了完整的配置架構。104預設情況下,runtime 拒絕網路存取並將寫入限制在一小組內建 runtime 路徑,因此在透過它啟動 Claude Code 之前先設定它。將您的設定放在 `~/.srt-settings.json` 中,或在您使用 `--settings` 傳遞的檔案中。套件 [README](https://github.com/anthropics/sandbox-runtime) 記錄了設定 schema。

105 105 

106至少允許寫入存取:106至少允許寫入存取:

107 107 

108* 您的專案目錄。108* 您的專案目錄。

109* Claude Code 的配置路徑 `~/.claude` 和 `~/.claude.json`。109* Claude Code 的設定路徑 `~/.claude` 和 `~/.claude.json`。

110* `/tmp`,Claude Code 在其中寫入 runtime 檔案。110* Claude Code 寫入 runtime 檔案的目錄。除非您設定 [`CLAUDE_CODE_TMPDIR`](/docs/zh-TW/env-vars),否則該目錄為:

111 * **Linux 和 WSL2**:`/tmp`

112 * **macOS**:`/private/tmp`。`/tmp` 是指向該目錄的符號連結,而 Seatbelt 會檢查解析後的路徑。

111 113 

112允許您的會話需要的網路域:114允許您的工作階段需要的網路網域:

113 115 

114* `api.anthropic.com`,或您配置的提供者的端點。在第三方提供者上,也保留 `api.anthropic.com`:WebFetch 域安全檢查預設仍會呼叫它,除非您設定 `skipWebFetchPreflight: true`。116* `api.anthropic.com`,或您設定的提供者的端點。在第三方提供者上,也保留 `api.anthropic.com`:WebFetch 網域安全檢查預設仍會呼叫它,除非您設定 `skipWebFetchPreflight: true`。

115* `claude.ai` 和 `platform.claude.com`,[OAuth 登入和令牌重新整理](/docs/zh-TW/network-config#network-access-requirements)需要這些。使用 API 金鑰進行身份驗證的執行可以捨棄這兩個。117* `claude.ai` 和 `platform.claude.com`,[OAuth 登入和 token 重新整理](/docs/zh-TW/network-config#network-access-requirements)需要這些。使用 API 金鑰進行身分驗證的執行可以捨棄這兩個。

116 118 

117在 Linux 和 WSL2 上,runtime 僅將寫入授予應用於已存在的路徑。在全新環境中,在首次啟動前建立 Claude Code 的配置路徑:119在 Linux 和 WSL2 上,runtime 僅將寫入授予應用於已存在的路徑。在全新環境中,在首次啟動前建立 Claude Code 的設定路徑:

118 120 

119```bash theme={null}121```bash theme={null}

120mkdir -p ~/.claude && { [ -f ~/.claude.json ] || echo '{}' > ~/.claude.json; }122mkdir -p ~/.claude && { [ -f ~/.claude.json ] || echo '{}' > ~/.claude.json; }


126npx @anthropic-ai/sandbox-runtime claude128npx @anthropic-ai/sandbox-runtime claude

127```129```

128 130 

129Claude Code 在沙箱內啟動,具有您配置的檔案系統和網路邊界。相同的命令適用於沙箱化獨立 MCP 伺服器或其他輔助進程。131Claude Code 在沙箱內啟動,具有您設定的檔案系統和網路邊界。相同的命令適用於沙箱化獨立 MCP 伺服器或其他輔助程序。

130 132 

131<h3 id="what-the-runtime-blocks-on-its-own">133<h3 id="what-the-runtime-blocks-on-its-own">

132 Runtime 自行阻止的內容134 Runtime 自行阻止的內容

133</h3>135</h3>

134 136 

135runtime 在沒有您任何配置的情況下阻止最高風險的寫入:137runtime 在沒有您任何設定的情況下阻止最高風險的寫入:

136 138 

137* `denyWrite` 優先於 `allowWrite`。139* `denyWrite` 優先於 `allowWrite`。

138* 在專案根目錄,runtime 拒絕 `.git/hooks`,除非您設定 `filesystem.allowGitConfig: true` 否則拒絕 `.git/config`,並拒絕 `.mcp.json`、`.claude/commands`、`.claude/agents` 和 shell 啟動檔案。140* 在專案根目錄,runtime 拒絕 `.git/hooks`,除非您設定 `filesystem.allowGitConfig: true` 否則拒絕 `.git/config`,並拒絕 `.mcp.json`、`.claude/commands`、`.claude/agents` 和 shell 啟動檔案。

139* 在 macOS 上,這些拒絕在寫入發生時被檢查,因此它們也涵蓋嵌套檔案和在會話期間建立的儲存庫。141* 在 macOS 上,這些拒絕在寫入發生時被檢查,因此它們也涵蓋巢狀檔案和在工作階段期間建立的儲存庫。

140* 在 Linux 和 WSL2 上,runtime 在啟動時建立拒絕清單一次。它可靠地涵蓋專案根目錄,對當時存在的嵌套副本進行最佳努力的淺層掃描,並不涵蓋會話稍後建立的任何內容,例如 `git init`、`git clone` 或腳手架。README 的 `mandatoryDenySearchDepth` 部分描述了掃描的確切語義。142* 在 Linux 和 WSL2 上,runtime 在啟動時建立拒絕清單一次。它可靠地涵蓋專案根目錄,對當時存在的巢狀副本進行盡力而為的淺層掃描,並不涵蓋工作階段稍後建立的任何內容,例如 `git init`、`git clone` 或腳手架。README 的 `mandatoryDenySearchDepth` 部分描述了掃描的確切語義。

141* 如果 `~/.srt-settings.json` 不存在且您沒有傳遞 `--settings`,runtime 仍然啟動。它阻止網路存取並將寫入限制在內建 runtime 路徑,例如 `/tmp/claude`、`~/.npm/_logs` 和 `~/.claude/debug`。不要將乾淨啟動視為您的設定已載入的證明。143* 如果 `~/.srt-settings.json` 不存在且您沒有傳遞 `--settings`,runtime 仍然啟動。它阻止網路存取並將寫入限制在內建 runtime 路徑,例如 `/tmp/claude`、`~/.npm/_logs` 和 `~/.claude/debug`。不要將乾淨啟動視為您的設定已載入的證明。

142* 如果設定檔存在但為空、無法讀取或無效,runtime 拒絕啟動,無論是 `~/.srt-settings.json` 還是您使用 `--settings` 傳遞的檔案。如果 `--settings` 檔案不存在,它也拒絕啟動。144* 如果設定檔存在但為空、無法讀取或無效,runtime 拒絕啟動,無論是 `~/.srt-settings.json` 還是您使用 `--settings` 傳遞的檔案。如果 `--settings` 檔案不存在,它也拒絕啟動。

143 145 

144您的寫入授予仍然包括 Claude Code 載入配置的其他路徑,因此使用 `denyWrite` 拒絕這些路徑。可以寫入它們的沙箱化會話可以持久化 hook、權限規則或 MCP 伺服器,這些在您下次啟動 Claude Code 時以未沙箱化的方式執行。146您的寫入授予仍然包括 Claude Code 載入設定的其他路徑,因此使用 `denyWrite` 拒絕這些路徑。可以寫入它們的沙箱化工作階段可以持久化 hook、權限規則或 MCP 伺服器,這些在您下次啟動 Claude Code 時以未沙箱化的方式執行。

145 147 

146<h3 id="after-unattended-runs">148<h3 id="after-unattended-runs">

147 無人值守執行後149 無人值守執行後

148</h3>150</h3>

149 151 

150檢查您保持可寫入的路徑。在 Linux 和 WSL2 上,也檢查會話建立的任何內容。152檢查您保持可寫入的路徑。在 Linux 和 WSL2 上,也檢查工作階段建立的任何內容。

151 153 

152<h2 id="dev-containers">154<h2 id="dev-containers">

153 Dev containers155 Dev containers


165 167 

166多個託管沙箱和遠端執行服務可以為您託管容器。與您操作的任何容器相同的檢查清單適用:審查掛載為可寫的內容、容器內可到達的認證和令牌,以及網路出站策略允許的內容。168多個託管沙箱和遠端執行服務可以為您託管容器。與您操作的任何容器相同的檢查清單適用:審查掛載為可寫的內容、容器內可到達的認證和令牌,以及網路出站策略允許的內容。

167 169 

168您可以在容器內分層內建 Bash 沙箱以進行每個命令的限制。無特權容器需要 [Sandboxing troubleshooting](/docs/zh-TW/sandboxing#troubleshooting) 中描述的嵌套沙箱設定。170您可以在容器內分層內建 Bash 沙箱以進行每個命令的限制。無特權容器需要 `enableWeakerNestedSandbox`,相關說明請參閱 [Bubblewrap 無法在容器內啟動](/docs/zh-TW/sandboxing#bubblewrap-fails-to-start-inside-a-container)。

169 171 

170<h2 id="virtual-machine">172<h2 id="virtual-machine">

171 Virtual machine173 Virtual machine

sandboxing.md +606 −307

Details

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.3> Use this file to discover all available pages before exploring further.

4 4 

5# 設定沙箱化 Bash 工具5# 設定沙箱化的 Bash 工具

6 6 

7> 了解 Claude Code 的沙箱化 Bash 工具如何提供檔案系統和網路隔離,以實現更安全、更自主的代理執行。7> 使用內建沙箱限制 Claude Code 的 shell 命令可存取的檔案與網路主機。啟用沙箱、設定邊界,並修正它所造成的問題。

8 8 

9Bash 沙箱讓 Claude 執行大多數 shell 命令,而無需停下來請求權限。與其批准每個命令,您可以定義命令可以接觸哪些檔案和網路域,作業系統會為每個 Bash、PowerShell 或 Monitor 命令及其子流程強制執行該邊界。9Bash 沙箱是作業系統在 Claude 於您的電腦上執行的 shell 命令周圍所強制實施的邊界。您可以設定這些命令能存取哪些檔案和網路網域,這些限制適用於 Bash、PowerShell 和 Monitor 命令,以及它們所啟動的程序。由於作業系統會在命令執行期間套用這些限制,Claude Code 可以[執行沙箱化的命令而無需詢問您](#sandbox-modes)是否核准每一個命令。

10 

11沙箱僅涵蓋 shell 命令。Claude 的檔案工具、MCP 伺服器和 hook [在沙箱之外執行](#what-runs-outside-the-sandbox)。

12 

13沙箱可在 macOS、Linux 和 WSL2 上執行。在原生 Windows 上,Claude Code 會以非沙箱化的方式執行命令。若要在 Windows 電腦上使用沙箱,請在 WSL2 發行版中執行 Claude Code。

10 14 

11<Note>15<Note>

12 若要比較其他隔離方法,例如開發容器、自訂容器和虛擬機,請參閱 [Sandbox environments](/docs/zh-TW/sandbox-environments)。若要減少 Bash 以外工具的權限提示,請參閱 [permission modes](/docs/zh-TW/permission-modes)。16 本頁說明您自己電腦上 shell 命令周圍的沙箱。其他頁面涵蓋相關問題:

17 

18 * 關於雲端工作階段如何被隔離,請參閱[安全性與隔離](/docs/zh-TW/claude-code-on-the-web#security-and-isolation)

19 * 若要比較其他隔離方式,例如 dev container、自訂容器和虛擬機器,請參閱[沙箱環境](/docs/zh-TW/sandbox-environments)

20 * 若要減少 Bash 以外工具的權限提示,請參閱[權限模式](/docs/zh-TW/permission-modes)

13</Note>21</Note>

14 22 

23<h2 id="what-the-sandbox-restricts">

24 沙箱限制的範圍

25</h2>

26 

27啟用沙箱時,Claude 執行的 shell 命令會在其邊界內啟動,這些命令所啟動的程序也是如此。沙箱預設為關閉。若要啟用,請如[開始使用](#get-started)所示,在工作階段中執行 `/sandbox`,或在[設定檔](/docs/zh-TW/settings)(例如 `~/.claude/settings.json`)中將 [`sandbox.enabled`](/docs/zh-TW/settings-reference#sandbox-enabled) 設為 `true`。

28 

29下表列出沙箱化命令預設可存取的範圍,以及可變更各項預設值的設定。

30 

31| 存取 | 預設 | 變更方式 |

32| :- | :- | :- |

33| 寫入 | 工作目錄、每位使用者專屬的暫存目錄,以及[您新增的目錄](/docs/zh-TW/permissions#additional-directories-grant-file-access-not-configuration)。[受保護路徑](#protected-paths)仍維持禁止寫入 | [`filesystem.allowWrite`](/docs/zh-TW/settings-reference#sandbox-filesystem-allowwrite)、[`filesystem.denyWrite`](/docs/zh-TW/settings-reference#sandbox-filesystem-denywrite) |

34| 讀取 | 機器上的大部分內容,包括 `~/.ssh` 和 `~/.aws/credentials` 等憑證檔案 | [`filesystem.denyRead`](/docs/zh-TW/settings-reference#sandbox-filesystem-denyread)、[`credentials`](#protect-credentials) |

35| 網路 | 沒有直接對外的路徑。連線會經過您機器上的代理伺服器,由其將每個主機與您允許的網域(初始為空)進行比對。您的權限模式決定[其他主機會如何處理](#hosts-outside-your-allowed-domains) | [`network.allowedDomains`](/docs/zh-TW/settings-reference#sandbox-network-alloweddomains)、[`network.deniedDomains`](/docs/zh-TW/settings-reference#sandbox-network-denieddomains) |

36| 環境變數 | 繼承自 Claude Code,包括其環境中的任何機密 | [`credentials`](#protect-credentials)、[`CLAUDE_CODE_SUBPROCESS_ENV_SCRUB`](/docs/zh-TW/env-vars) |

37 

38Claude Code 的沙箱建置於開放原始碼套件 [`@anthropic-ai/sandbox-runtime`](https://github.com/anthropics/sandbox-runtime) 之上。

39 

40<h3 id="what-runs-outside-the-sandbox">

41 在沙箱外執行的項目

42</h3>

43 

44沙箱包覆的是 shell 命令。以下工具和程序會在沙箱外執行:

45 

46* **內建檔案與網頁工具**:Read、Edit、Write、WebFetch 和 WebSearch 等工具改為遵循[權限規則](/docs/zh-TW/permissions)。`denyRead` 項目不會阻止 Read 工具,`allowedDomains` 也不會限制 WebFetch

47* **Claude Code 啟動的其他程序**:命令 [hook](/docs/zh-TW/hooks)、本機 [MCP 伺服器](/docs/zh-TW/mcp)、[外掛監視器](/docs/zh-TW/plugins/components#monitors)、[LSP 伺服器](/docs/zh-TW/tools-reference#lsp-tool-behavior),以及您的[狀態列](/docs/zh-TW/statusline)命令和 `apiKeyHelper` 等輔助命令,都會以您的完整存取權限執行

48 

49視您的設定而定,部分 shell 命令也會在沙箱外執行:

50 

51* **您自行輸入的命令**:在大多數工作階段中,您在 [`!` shell 模式提示字元](/docs/zh-TW/interactive-mode#shell-mode-with-prefix)輸入的命令會在沙箱外執行。[嚴格沙箱模式](#turn-off-the-retry-with-strict-sandbox-mode)列出了您輸入的命令會在沙箱內執行的工作階段

52* **排除的命令**:符合 [`excludedCommands`](#run-commands-outside-the-sandbox-with-excludedcommands) 的命令會在沙箱外執行

53* **非沙箱重試**:Claude 可以[要求在沙箱外執行命令](#the-unsandboxed-retry-escape-hatch),通常是在命令於沙箱中失敗之後

54 

55若要將本節中的工具、程序和命令置於同一個邊界之後,請在[容器、虛擬機器或沙箱執行環境](/docs/zh-TW/sandbox-environments)中執行 Claude Code 程序本身。

56 

15<h2 id="get-started">57<h2 id="get-started">

16 開始使用58 開始使用

17</h2>59</h2>

18 60 

19sandbox 內建於 Claude Code 中,可在 macOS、Linux 和 WSL2 上執行。不支援原生 Windows。在 Windows 上,請在 WSL2 發行版中執行 Claude Code。61沙箱內建於 Claude Code 中。需要安裝的內容取決於您的平台:

20 62 

21在 macOS 上,無需安裝任何內容:sandboxing 使用內建的 Seatbelt 框架。在 Linux 和 WSL2 上,sandbox 依賴於兩個套件,詳見[設定 Linux 和 WSL2](#set-up-linux-and-wsl2)。即使您尚未安裝這些套件,也可以開始使用 `/sandbox`,因為其面板會顯示是否缺少任何內容。63* **macOS**:沙箱機制使用內建的 Seatbelt 框架,因此可以直接進行下列步驟

64* **Linux 和 WSL2**:沙箱依賴 `bubblewrap` 和 `socat`,請參閱[設定 Linux 和 WSL2](#set-up-linux-and-wsl2)。即使尚未安裝它們,也可以先執行 `/sandbox`,因為其面板會顯示是否有任何缺少的項目

22 65 

23<Steps>66<Steps>

24 <Step title="執行 /sandbox">67 <Step title="執行 /sandbox">


28 /sandbox71 /sandbox

29 ```72 ```

30 73 

31 這會開啟 sandbox 面板,包含三個標籤,以及在 Linux 上缺少選用 seccomp 篩選器時的 Dependencies 標籤:74 這會開啟包含三個分頁的沙箱面板;在 Linux 上,若缺少選用的 seccomp 篩選器,還會多出一個 Dependencies 分頁:

32 75 

33 * **Mode**:選擇如何核准 sandboxed 命令,詳見下一步76 * **Mode**:選擇沙箱化命令的核准方式,詳見下一步

34 * **Overrides**:選擇在 sandbox 下失敗的命令是否可以回退到執行 unsandboxed。這是 [`allowUnsandboxedCommands`](/docs/zh-TW/settings-reference#sandbox-allowunsandboxedcommands) 設定77 * **Overrides**:選擇在沙箱中失敗的命令是否可以退回以非沙箱方式執行。這就是 [`allowUnsandboxedCommands`](/docs/zh-TW/settings-reference#sandbox-allowunsandboxedcommands) 設定

35 * **Config**:檢視已解析的 sandbox 設定78 * **Config**:檢視解析後的沙箱設定

36 79 

37 如果面板只顯示 Dependencies 標籤,表示缺少必需的套件。按照[設定 Linux 和 WSL2](#set-up-linux-and-wsl2) 中的說明安裝它,重新啟動 Claude Code,然後再次執行 `/sandbox`。80 如果面板只顯示 Dependencies 分頁,表示缺少必要的套件。請依照[設定 Linux 和 WSL2](#set-up-linux-and-wsl2) 中的說明安裝,重新啟動 Claude Code,然後再次執行 `/sandbox`。

38 </Step>81 </Step>

39 82 

40 <Step title="選擇一個模式">83 <Step title="選擇模式">

41 在 Mode 標籤上,選擇自動允許或一般權限。自動允許會執行 sandboxed 命令而不提示,一般權限則即使在命令被 sandboxed 時也保持一般權限提示。請參閱[Sandbox 模式](#sandbox-modes),了解在自動允許模式下仍會提示哪些命令。84 在 Mode 分頁上,選擇 auto-allow 或一般權限。Auto-allow 會執行沙箱化命令而不提示,一般權限則即使命令已沙箱化,仍會保留一般的權限提示。關於在 auto-allow 模式下哪些命令仍會提示,請參閱[沙箱模式](#sandbox-modes)。

42 </Step>85 </Step>

43 86 

44 <Step title="執行 Bash 命令">87 <Step title="執行 Bash 命令">

45 要求 Claude 執行命令,例如建置或測試套件。根據預設,sandbox 內的命令可以寫入工作目錄、[每個使用者的暫存目錄](/docs/zh-TW/env-vars),以及任何[您使用 `--add-dir`、`/add-dir` 或 `permissions.additionalDirectories` 新增的目錄](/docs/zh-TW/permissions#additional-directories-grant-file-access-not-configuration)。88 請 Claude 執行一個命令,例如建置或測試套件。預設情況下,沙箱內的命令可以寫入工作目錄、[每位使用者的暫存目錄](/docs/zh-TW/env-vars),以及透過 `--add-dir`、`/add-dir` 或 `permissions.additionalDirectories` [新增的任何目錄](/docs/zh-TW/permissions#additional-directories-grant-file-access-not-configuration)。

46 89 

47 命令首次需要新的網路網域時,Claude Code 會提示核准;在[自動模式](/docs/zh-TW/permission-modes#eliminate-prompts-with-auto-mode)中,Claude 改為在[命令本身](#per-command-allowed-domains-in-auto-mode)上命名命令需要的主機,供分類器與其一起檢閱。90 當命令首次需要新的網路網域時,Claude Code 會提示您核准;在[自動模式](/docs/zh-TW/permission-modes#eliminate-prompts-with-auto-mode)中,Claude 則會[在命令本身上](#per-command-allowed-domains-in-auto-mode)列出該命令所需的主機,供分類器一併審查。

48 91 

49 無法 sandboxed 執行的命令會回退到一般權限流程。Claude Code 將其權限提示標題為「Bash 命令 (unsandboxed)」而不是「Bash 命令」,因此您可以判斷哪些命令在 sandbox 外執行。若要擴大或縮小 sandbox 允許的範圍,請參閱[設定 sandboxing](#configure-sandboxing)。92 若要擴大或縮小沙箱允許的範圍,請參閱[設定沙箱機制](#configure-sandboxing)。

50 93 

51 如果 sandboxed 命令在容器內因 `Operation not permitted` 而失敗,請參閱[疑難排解](#troubleshooting)下的 Bubblewrap 項目。94 如果沙箱化命令在容器內因 `Operation not permitted` 而失敗,請參閱[Bubblewrap 無法在容器內啟動](#bubblewrap-fails-to-start-inside-a-container)。

52 </Step>95 </Step>

53</Steps>96</Steps>

54 97 

55當您在面板中選擇一個模式時,Claude Code 會將其儲存到您專案的本機設定 `.claude/settings.local.json`,該設定適用於目前專案。Claude Code 在那裡儲存設定時會將該檔案新增到您的全域 gitignore。若要在所有專案中啟用 sandbox,請在使用者設定 `~/.claude/settings.json` 中將 [`sandbox.enabled`](/docs/zh-TW/settings-reference#sandbox-enabled) 設定為 `true`。若要為組織中的每個開發人員強制執行 sandboxing,請使用[受管設定](#enforce-sandboxing-with-managed-settings)。98當您在面板中選擇模式時,Claude Code 會將其儲存到專案的本機設定 `.claude/settings.local.json`,該設定適用於目前的專案。Claude Code 在該檔案中儲存設定時,會將其加入您的全域 gitignore。若要在所有專案中啟用沙箱,請在 `~/.claude/settings.json` 的使用者設定中將 [`sandbox.enabled`](/docs/zh-TW/settings-reference#sandbox-enabled) 設為 `true`。若要對組織中的每位開發人員強制執行沙箱機制,請使用[受管設定](#enforce-sandboxing-with-managed-settings)。

56 99 

57若要在一個工作階段中變更 sandbox 而不寫入設定檔,請使用 [`--settings`](/docs/zh-TW/settings#change-a-setting-for-one-session) 啟動 Claude Code。例如,此命令啟動一個 sandboxed 工作階段,其中 Claude 無法在 sandbox 外重試被阻止的命令:100若要在不寫入設定檔的情況下變更單一工作階段的沙箱,請使用 [`--settings`](/docs/zh-TW/settings#change-a-setting-for-one-session) 啟動 Claude Code。例如,下列命令會啟動一個沙箱化工作階段,在其中 Claude 無法在沙箱外重試被封鎖的命令:

58 101 

59```bash theme={null}102```bash theme={null}

60claude --settings '{"sandbox": {"enabled": true, "allowUnsandboxedCommands": false}}'103claude --settings '{"sandbox": {"enabled": true, "allowUnsandboxedCommands": false}}'

61```104```

62 105 

63<Warning>106<Warning>

64 根據預設,如果 sandbox 因缺少相依性或平台不受支援而無法啟動,Claude Code 會顯示警告並執行命令而不進行 sandboxing。若要改為將其設為硬失敗,請將 [`sandbox.failIfUnavailable`](/docs/zh-TW/settings-reference#sandbox-failifunavailable) 設定為 `true`。這適用於需要 sandboxing 作為安全閘道的受管部署。107 預設情況下,如果沙箱因缺少相依套件或平台不受支援而無法啟動,Claude Code 會在沒有沙箱機制的情況下執行命令。若要讓 Claude Code 改為在啟動時結束,請將 [`sandbox.failIfUnavailable`](/docs/zh-TW/settings-reference#sandbox-failifunavailable) 設為 `true`。需要將沙箱機制作為安全關卡的受管部署可以使用此設定。

65</Warning>108</Warning>

66 109 

110<h3 id="confirm-commands-run-inside-the-sandbox">

111 確認命令在沙箱內執行

112</h3>

113 

114若要檢查沙箱是否正常運作,請 Claude 執行表格中的每一行。您在 [`!` 提示字元](#what-runs-outside-the-sandbox)輸入的內容通常會在沙箱外執行,因此自行輸入這些命令並不能測試沙箱。

115 

116| 命令 | 在沙箱內的結果 |

117| :- | :- |

118| `touch ~/sandbox-probe` | 在 macOS 上因 `Operation not permitted` 而失敗,在 Linux 和 WSL2 上因 `Read-only file system` 而失敗 |

119| `curl --noproxy '*' https://example.com` | 因 `Could not resolve host` 而失敗,因為該命令沒有繞過沙箱代理伺服器的路由 |

120 

121如果 Claude 要求在沙箱外重試失敗的命令,請拒絕重試。如果 `touch` 成功,且您的家目錄不屬於沙箱允許命令寫入的目錄之一,請刪除 `~/sandbox-probe`。接著執行 `/sandbox`,檢查沙箱是否已開啟且其相依套件已安裝。

122 

67<h3 id="set-up-linux-and-wsl2">123<h3 id="set-up-linux-and-wsl2">

68 設定 Linux 和 WSL2124 設定 Linux 和 WSL2

69</h3>125</h3>

70 126 

71在 Linux 和 WSL2 上,sandbox 依賴於兩個套件:127在 Linux 和 WSL2 上,沙箱依賴下列套件:

72 128 

73* [`bubblewrap`](https://github.com/containers/bubblewrap):強制檔案系統隔離的無特權 sandboxing 工具129* [`bubblewrap`](https://github.com/containers/bubblewrap):強制執行檔案系統隔離的非特權沙箱工具

74* [`socat`](http://www.dest-unreach.org/socat/):用於透過 sandbox 代理路由網路流量的中繼130* [`socat`](http://www.dest-unreach.org/socat/):用來將網路流量導向沙箱代理伺服器的中繼程式

75 131 

76使用您發行版的套件管理員安裝它們:132使用您發行版的套件管理員安裝它們:

77 133 


89 </Tab>145 </Tab>

90</Tabs>146</Tabs>

91 147 

92當缺少相依性時,`/sandbox` 中的 Dependencies 標籤會列出您的平台缺少 `ripgrep`、`bubblewrap`、`socat` 和 seccomp 篩選器中的哪些。如果安裝並重新啟動 Claude Code 後沒有看到該標籤,表示所有相依性都已存在。148當缺少相依套件時,`/sandbox` 中的 Dependencies 分頁會列出您的平台缺少 `ripgrep`、`bubblewrap`、`socat` 和 seccomp 篩選器中的哪些項目。如果在安裝並重新啟動 Claude Code 後沒有看到該分頁,表示所有相依套件都已就緒。

93 149 

94Ripgrep 與原生 Claude Code 二進位檔案一起打包。seccomp 篩選器是選用的,可新增 Unix 網域套接字阻止。如果缺少,請使用 `npm install -g @anthropic-ai/sandbox-runtime` 安裝它。150Ripgrep 隨附於原生 Claude Code 二進位檔中。seccomp 篩選器為選用項目,可增加 Unix domain socket 封鎖功能。如果缺少,請使用 `npm install -g @anthropic-ai/sandbox-runtime` 安裝。

95 151 

96當缺少必需的相依性時,Dependencies 標籤是唯一顯示的標籤,直到您安裝它。當只缺少選用的 seccomp 篩選器時,Dependencies 標籤會與其他標籤一起出現。相依性檢查在啟動時執行,因此在安裝套件後重新啟動 Claude Code,以便 `/sandbox` 偵測到它們。152當缺少必要的相依套件時,在您安裝之前,Dependencies 分頁會是唯一顯示的分頁。當只缺少選用的 seccomp 篩選器時,Dependencies 分頁會與其他分頁一起顯示。相依性檢查會在啟動時執行,因此安裝套件後請重新啟動 Claude Code,讓 `/sandbox` 偵測到它們。

97 153 

98<AccordionGroup>154<AccordionGroup>

99 <Accordion title="Ubuntu 24.04 及更新版本:允許 bubblewrap 建立使用者命名空間">155 <Accordion title="Ubuntu 24.04 及更新版本:允許 bubblewrap 建立使用者命名空間">

100 在 Ubuntu 24.04 及更新版本上,預設 AppArmor 原則會防止 bubblewrap 建立隔離所需的使用者命名空間。156 在 Ubuntu 24.04 及更新版本上,預設的 AppArmor 原則會阻止 bubblewrap 建立其進行隔離所需的使用者命名空間。

101 157 

102 若要檢查您的環境(包括 WSL2 內)是否強制執行此限制,請執行 `sysctl kernel.apparmor_restrict_unprivileged_userns`。如果命令傳回 `0`,請跳過此步驟。如果列印 `No such file or directory` 錯誤,表示金鑰不存在,您可以跳過此步驟。如果傳回 `1`,請新增授予 `bwrap` 此功能的 AppArmor 設定檔:158 若要檢查您的環境(包括 WSL2 內部)是否強制執行此限制,請執行 `sysctl kernel.apparmor_restrict_unprivileged_userns`。如果命令傳回 `0`,請略過此步驟。如果它顯示 `No such file or directory` 錯誤,表示該鍵不存在,您可以略過此步驟。如果它傳回 `1`,請新增一個授予 `bwrap` 此能力的 AppArmor 設定檔:

103 159 

104 ```bash theme={null}160 ```bash theme={null}

105 sudo tee /etc/apparmor.d/bwrap > /dev/null <<'EOF'161 sudo tee /etc/apparmor.d/bwrap > /dev/null <<'EOF'


113 EOF169 EOF

114 ```170 ```

115 171 

116 該設定檔僅適用於 `bwrap` 本身,不適用於在 sandbox 內執行的命令。重新載入 AppArmor 以套用它:172 此設定檔僅套用於 `bwrap` 本身,而不套用於它在沙箱內執行的命令。重新載入 AppArmor 以套用它:

117 173 

118 ```bash theme={null}174 ```bash theme={null}

119 sudo systemctl reload apparmor175 sudo systemctl reload apparmor


121 </Accordion>177 </Accordion>

122 178 

123 <Accordion title="WSL2 注意事項">179 <Accordion title="WSL2 注意事項">

124 使用 `wsl -l -v` 從 PowerShell 檢查您的 WSL 版本。如果您看到 `Sandboxing requires WSL2`,您的發行版正在執行 WSL1。將其升級到 WSL2 或執行 Claude Code 而不進行 sandboxing。180 在 PowerShell 中使用 `wsl -l -v` 檢查您的 WSL 版本。如果看到 `Sandboxing requires WSL2`,表示您的發行版正在執行 WSL1。請將其升級到 WSL2,或在沒有沙箱機制的情況下執行 Claude Code。

125 181 

126 在 WSL2 上,WSL 會將 Windows 二進位檔案(例如 `cmd.exe`、`powershell.exe` 或 `/mnt/c/` 下的任何內容)的啟動交給 Windows 主機,透過 Unix 套接字進行,因此 sandboxed 命令是否可以啟動一個取決於 sandbox 的 [Unix 套接字設定](/docs/zh-TW/settings-reference#sandbox-network-allowunixsockets):必須安裝選用的 seccomp 篩選器才能首先阻止套接字。若要允許這些啟動,請設定 `allowAllUnixSockets`;若要將它們完全保留在 sandbox 外,請將命令新增到 [`excludedCommands`](/docs/zh-TW/settings-reference#sandbox-excludedcommands)。182 在 WSL2 上,WSL 會透過 Unix socket 將 Windows 二進位檔(例如 `cmd.exe`、`powershell.exe` 或 `/mnt/c/` 下的任何程式)的啟動交給 Windows 主機處理,因此沙箱化命令能否啟動這類程式取決於沙箱的 [Unix socket 設定](/docs/zh-TW/settings-reference#sandbox-network-allowunixsockets):必須先安裝選用的 seccomp 篩選器,才能封鎖該 socket。若要允許這些啟動,請設定 `allowAllUnixSockets`,這會向沙箱化命令開放所有 Unix socket。

127 </Accordion>183 </Accordion>

128</AccordionGroup>184</AccordionGroup>

129 185 

130<h3 id="sandbox-modes">186<h3 id="sandbox-modes">

131 Sandbox 模式187 沙箱模式

132</h3>188</h3>

133 189 

134Claude Code 提供兩種 sandbox 模式。在兩種模式中,sandbox 強制執行相同的檔案系統和網路限制;唯一的區別是 sandboxed 命令是否自動核准或需要明確權限。190Claude Code 提供兩種沙箱模式。在這兩種模式中,沙箱都會強制執行相同的檔案系統和網路限制;差異僅在於沙箱化命令是自動核准還是需要明確的權限。

135 191 

136<h4 id="auto-allow-mode">192<h4 id="auto-allow-mode">

137 自動允許模式193 Auto-allow 模式

138</h4>194</h4>

139 195 

140當命令可以被 sandboxed 時,Claude Code 在 sandbox 內執行它並自動核准,無需詢問您的權限。無法被 sandboxed 的命令(例如需要存取非允許主機的網路存取的命令)會回退到一般權限流程,其中 Claude Code 檢查您的[權限規則](/docs/zh-TW/permissions)並限制這些規則不允許的任何命令,在手動模式下提示。196當命令在沙箱內執行時,Claude Code 會自動核准該命令,不會提示。當命令因為符合 [`excludedCommands`](#run-commands-outside-the-sandbox-with-excludedcommands) 或因為 Claude [以非沙箱方式重試](#the-unsandboxed-retry-escape-hatch)而在沙箱外執行時,該命令會經過一般的[權限流程](/docs/zh-TW/permissions)。

197 

198連線到您尚未允許之主機的沙箱化命令仍會留在沙箱中。[允許網域以外的主機](#hosts-outside-your-allowed-domains)說明了由誰決定該連線是否放行。

141 199 

142即使在自動允許模式下,以下仍然適用:200即使在 auto-allow 模式下,下列規則仍然適用:

143 201 

144* 明確的[拒絕規則](/docs/zh-TW/permissions)始終受到尊重202* 明確的[拒絕規則](/docs/zh-TW/permissions)一律受到遵守

145* 針對[關鍵路徑](/docs/zh-TW/permission-modes#critical-paths)的 `rm` 或 `rmdir` 命令仍會進行一般權限流程203* 以[關鍵路徑](/docs/zh-TW/permission-modes#critical-paths)為目標的 `rm` 或 `rmdir` 命令仍會經過一般的權限流程

146* 內容範圍的[詢問規則](/docs/zh-TW/permissions)(例如 `Bash(git push *)`)仍會強制提示,即使是 sandboxed 命令204* 以內容為範圍的[詢問規則](/docs/zh-TW/permissions)(例如 `Bash(git push *)`)即使對沙箱化命令仍會強制提示

147* 裸 `Bash` 詢問規則或等效的 `Bash(*)` 形式會被跳過以執行 sandboxed 的命令;它仍然適用於回退到一般權限流程的命令。在[計畫模式](/docs/zh-TW/permission-modes#analyze-before-you-edit-with-plan-mode)中,規則不會被跳過:它會提示 sandboxed 命令,包括唯讀命令。在 v2.1.212 之前,跳過也適用於計畫模式205* 單純的 `Bash` 詢問規則,或等效的 `Bash(*)` 形式,對於以沙箱方式執行的命令會被略過;對於退回一般權限流程的命令則仍然適用。在 [plan mode](/docs/zh-TW/permission-modes#analyze-before-you-edit-with-plan-mode) 中,該規則不會被略過:它也會對沙箱化命令(包括唯讀命令)提示

148 206 

149<Info>207<Info>

150 自動允許模式獨立於您的權限模式設定運作,除了[計畫模式](/docs/zh-TW/permission-modes#analyze-before-you-edit-with-plan-mode)、自動模式中帶有[每個命令允許的網域](#per-command-allowed-domains-in-auto-mode)的命令,以及[伺服器端分類器檢閱](/docs/zh-TW/permission-modes#how-the-classifier-evaluates-actions)自動模式中的 sandboxed 命令。即使您不在「接受編輯」模式中,當啟用自動允許時,sandboxed Bash 命令也會自動執行。這表示在 sandbox 邊界內修改檔案的 Bash 命令會執行而不提示,即使在手動模式中,檔案編輯工具也會提示。208 Auto-allow 模式獨立於您的權限模式設定運作,但有三個例外:[plan mode](/docs/zh-TW/permission-modes#analyze-before-you-edit-with-plan-mode)、帶有[每個命令允許網域](#per-command-allowed-domains-in-auto-mode)的自動模式命令,以及自動模式中對沙箱化命令的[伺服器端分類器審查](/docs/zh-TW/permission-modes#how-the-classifier-evaluates-actions)。即使您不在「accept edits」模式中,啟用 auto-allow 時沙箱化的 Bash 命令也會自動執行。這表示在沙箱邊界內修改檔案的 Bash 命令會在不提示的情況下執行,即使在檔案編輯工具會提示的 Manual 模式中也是如此。

151 209 

152 在計畫模式中,自動允許不會擴大核准;請參閱[計畫模式](/docs/zh-TW/permission-modes#analyze-before-you-edit-with-plan-mode),了解 Claude Code 如何在您計畫時限制命令。在 v2.1.212 之前,自動允許在計畫模式中也執行 sandboxed 命令而不提示。210 在 plan mode 中,auto-allow 不會擴大核准範圍;關於 Claude Code 在您規劃時如何管控命令,請參閱 [plan mode](/docs/zh-TW/permission-modes#analyze-before-you-edit-with-plan-mode)。

153</Info>211</Info>

154 212 

155<h4 id="regular-permissions-mode">213<h4 id="regular-permissions-mode">

156 一般權限模式214 一般權限模式

157</h4>215</h4>

158 216 

159所有 Bash 命令都會進行一般權限流程,即使被 sandboxed。這提供了更多控制,但需要更多核准。217所有 Bash 命令都會經過一般的權限流程,即使已沙箱化也是如此。這提供了更多控制,但需要更多核准。

160 218 

161<h4 id="the-unsandboxed-retry-escape-hatch">219<h4 id="the-unsandboxed-retry-escape-hatch">

162 Unsandboxed 重試逃生艙220 非沙箱重試的緊急出口

221</h4>

222 

223非沙箱重試是為在沙箱內失敗的命令(例如與沙箱不相容的工具)所設的緊急出口。當沙箱封鎖網路連線時,Claude Code 會在命令的結果中指出被拒絕的主機,讓 Claude 看到被封鎖的內容。Claude 會分析失敗原因,並可能使用 `dangerouslyDisableSandbox` 參數重試該命令。

224 

225重試的命令會以非沙箱方式執行。在互動式終端機工作階段中,由誰核准取決於您的權限模式:

226 

227* **`bypassPermissions` 模式**:重試會在不提示的情況下執行

228* **Manual 模式和 `acceptEdits` 模式**:您會收到標題為「Bash command (unsandboxed)」的提示

229* **[自動模式](/docs/zh-TW/permission-modes#eliminate-prompts-with-auto-mode)**:由另一個分類器模型評估底層命令

230* **`dontAsk` 模式**:Claude Code 會拒絕重試

231* **Plan mode**:請參閱 [Claude Code 在您規劃時如何管控命令](/docs/zh-TW/permission-modes#analyze-before-you-edit-with-plan-mode)

232 

233下列規則和設定會改變由誰核准重試:

234 

235* **相符的允許規則**:如果允許規則(例如 `Bash(curl *)`)與命令相符,它也會核准重試,因此命令會在沙箱外執行而不提示

236* **針對該參數的詢問規則**:為 `Bash(dangerouslyDisableSandbox:true)` 新增一條[詢問規則](/docs/zh-TW/permissions#match-by-input-parameter),即可在 Bash 重試時收到提示。在自動模式和 `bypassPermissions` 模式中您也會收到提示,且該規則優先於相符的允許規則

237* **[`permissions.blockReadsOutsideWorkingDirectories`](/docs/zh-TW/settings-reference#permissions-blockreadsoutsideworkingdirectories)**:[任何模式都不會自動核准的動作](/docs/zh-TW/permission-modes#actions-no-mode-auto-approves)說明了此設定開啟時會提示的重試

238 

239<h4 id="turn-off-the-retry-with-strict-sandbox-mode">

240 使用嚴格沙箱模式關閉重試

163</h4>241</h4>

164 242 

165某些命令根本無法在 sandbox 內執行,例如與其不相容的工具或需要您未允許的主機的工具。Claude Code 在被阻止命令的結果中報告 sandbox 違規,命名 sandbox 拒絕的路徑或主機,因此 Claude 會看到 sandbox 阻止的內容。Claude Code 不會讓任務失敗或要求您關閉 sandboxing,而是包含一個逃生艙:Claude 分析違規並可能使用 `dangerouslyDisableSandbox` 參數重試命令。243您可以在[沙箱設定](/docs/zh-TW/settings-reference#sandbox-settings)中設定 `"allowUnsandboxedCommands": false` 來停用非沙箱重試。停用重試後,Claude Code 會忽略 `dangerouslyDisableSandbox` 參數。在沙箱執行期間,Claude 執行的命令除非符合 `excludedCommands` 項目,否則都會被沙箱化。若要在沙箱無法啟動時防止 Claude Code 以非沙箱方式執行命令,請同時設定 [`failIfUnavailable`](/docs/zh-TW/settings-reference#sandbox-failifunavailable)。`/sandbox` 的 **Overrides** 分頁會將此設定顯示為 **Strict sandbox mode**。

166 244 

167重試的命令在 sandbox 外執行,因此會進行一般權限流程。在手動模式中,您會收到確認提示。在[自動模式](/docs/zh-TW/permission-modes#eliminate-prompts-with-auto-mode)中,分類器會評估基礎命令。當 [`permissions.blockReadsOutsideWorkingDirectories`](/docs/zh-TW/settings-reference#permissions-blockreadsoutsideworkingdirectories) 開啟時,需要核准才能在 sandbox 外執行的重試會提示您。若要在自動模式中的每次 unsandboxed 重試時都收到提示,請為 `Bash(dangerouslyDisableSandbox:true)` 新增[詢問規則](/docs/zh-TW/permissions#match-by-input-parameter)。245在您的使用者設定、`--settings` 或受管設定中的 `false`,即使專案的設定設為 `true` 也會維持有效。使用者設定中的 `false` 不會讓沙箱成為管理員強制要求,因此專案的其他沙箱設定仍然適用。在 v2.1.285 之前,專案的 `true` 會覆寫您使用者設定中的 `false`。

168 246 

169您可以透過在[sandbox 設定](/docs/zh-TW/settings-reference#sandbox-settings)中設定 `"allowUnsandboxedCommands": false` 來停用此逃生艙。停用逃生艙後,Claude Code 會忽略 `dangerouslyDisableSandbox` 參數,Claude 執行的每個命令都必須 sandboxed 執行,除非您已在 `excludedCommands` 中列出它。`/sandbox` **Overrides** 標籤將此設定顯示為**嚴格 sandbox 模式**。247如果您或您的管理員在受管設定中或透過 `--settings` 旗標停用重試,沙箱就會成為管理員強制要求。Claude Code 接著會忽略儲存庫檔案中放寬沙箱的設定,包括 `excludedCommands` 項目。[管理員強制要求沙箱下的儲存庫設定](#repository-settings-under-an-admin-required-sandbox)列出了這些設定。

170 248 

171嚴格 sandbox 模式適用於 Claude 執行的命令。您在 [`!` shell 模式提示](/docs/zh-TW/interactive-mode#shell-mode-with-prefix)中自己輸入的命令在 sandbox 外執行,除非工作階段是以下之一:249嚴格沙箱模式適用於 Claude 執行的命令。您自行在 [`!` shell 模式提示字元](/docs/zh-TW/interactive-mode#shell-mode-with-prefix)輸入的命令會在沙箱外執行,除非工作階段屬於下列情況之一:

172 250 

173* **[背景工作階段](/docs/zh-TW/agent-view)**:嚴格 sandbox 模式也涵蓋 shell 模式命令251* **[背景工作階段](/docs/zh-TW/agent-view)**:嚴格沙箱模式也涵蓋 shell 模式命令

174* **Linux 工作階段,設定了 [`CLAUDE_CODE_SUBPROCESS_ENV_SCRUB`](/docs/zh-TW/env-vars#variables)**:每個命令都 sandboxed 執行,包括 shell 模式命令252* **設定了 [`CLAUDE_CODE_SUBPROCESS_ENV_SCRUB`](/docs/zh-TW/env-vars#variables) 的 Linux 工作階段**:每個命令都會以沙箱方式執行,包括 shell 模式命令

175 253 

176在 v2.1.260 之前,嚴格 sandbox 模式在每個工作階段中都 sandboxed shell 模式命令。254在 v2.1.260 之前,嚴格沙箱模式會在每個工作階段中將 shell 模式命令沙箱化。

177 255 

178<h4 id="temporary-directories">256<h4 id="temporary-directories">

179 暫存目錄257 暫存目錄

180</h4>258</h4>

181 259 

182工作階段暫存目錄在 sandbox 內預設可寫,與工作目錄一起。除非您[停用檔案系統隔離](#disable-filesystem-isolation),Claude Code 會為 sandboxed 命令設定 `$TMPDIR` 為此目錄,因此寫入暫存檔案的工具無需額外設定即可運作。260預設情況下,除了工作目錄之外,每位使用者的暫存目錄在沙箱內也是可寫入的。除非您[停用檔案系統隔離](#disable-filesystem-isolation),否則 Claude Code 會為沙箱化命令將 `$TMPDIR` 設為此目錄,讓寫入暫存檔案的工具無需額外設定即可運作。

183 261 

184Unsandboxed 命令在設定時會繼承您 shell 的 `$TMPDIR`,因此在檔案系統隔離開啟時,sandboxed 和 unsandboxed 命令會將 `$TMPDIR` 解析為不同的目錄。如果您的 shell 將 `$TMPDIR` 保留為未設定或空白,參考 `$TMPDIR` 的 unsandboxed 命令會收到您的 [`CLAUDE_CODE_TMPDIR`](/docs/zh-TW/env-vars) 覆蓋,或當您未設定一個或覆蓋是長路徑時的作業系統暫存目錄,因此變數不會展開為空字串。若要在兩者之間傳遞暫存檔案,請改為在工作目錄下寫入它們。262非沙箱命令在您的 shell 設定了 `$TMPDIR` 時會繼承該值,因此在檔案系統隔離開啟期間,沙箱化與非沙箱命令會將 `$TMPDIR` 解析為不同的目錄。如果您的 shell 未設定 `$TMPDIR` 或其值為空,引用 `$TMPDIR` 的非沙箱命令會收到您的 [`CLAUDE_CODE_TMPDIR`](/docs/zh-TW/env-vars) 覆寫值;若您尚未設定覆寫值或覆寫值是過長的路徑,則會收到作業系統的暫存目錄,因此該變數不會展開為空字串。若要在兩者之間傳遞暫存檔案,請改為將其寫入工作目錄下。

185 263 

186<h2 id="configure-sandboxing">264<h2 id="configure-sandboxing">

187 設定沙箱265 設定沙箱機制

188</h2>266</h2>

189 267 

190透過 `settings.json` 檔案自訂沙箱行為。請參閱[設定](/docs/zh-TW/settings-reference#sandbox-settings)以取得完整的設定參考。268透過 `settings.json` 檔案自訂沙箱行為。完整的設定參考請參閱[設定](/docs/zh-TW/settings-reference#sandbox-settings)。

191 269 

192根據預設,沙箱化命令可以寫入目前的工作目錄、每個使用者的暫存目錄,以及任何[您已新增](/docs/zh-TW/permissions#additional-directories-grant-file-access-not-configuration)的目錄,使用 `--add-dir`、`/add-dir` 或 `permissions.additionalDirectories`。如果子程序命令(例如 `kubectl`、`terraform` 或 `npm`)需要寫入這些目錄以外的位置,請使用 `sandbox.filesystem.allowWrite` 來授予對特定路徑的存取權限:270預設情況下,沙箱化的命令可以寫入目前的工作目錄、每位使用者專屬的暫存目錄,以及任何透過 `--add-dir`、`/add-dir` 或 `permissions.additionalDirectories` [新增的目錄](/docs/zh-TW/permissions#additional-directories-grant-file-access-not-configuration)。如果 `kubectl`、`terraform` 或 `npm` 等子程序命令需要寫入這些目錄以外的位置,請使用 `sandbox.filesystem.allowWrite` 授予特定路徑的存取權:

193 271 

194```json theme={null}272```json theme={null}

195{273{


202}280}

203```281```

204 282 

205這些路徑在作業系統層級強制執行,因此在沙箱內執行的所有命令(包括其子程序)都會遵守它們。當工具需要對特定位置的寫入存取權限時,這是建議的方法,而不是使用 `excludedCommands` 將工具完全排除在沙箱之外。283這些路徑在作業系統層級強制執行,因此所有在沙箱內執行的命令(包括其子程序)都會遵守這些路徑。當某個工具需要特定位置的寫入權限時,建議採用此方法,而不是使用 `excludedCommands` 將該工具完全排除在沙箱之外。

206 284 

207當您在多個[設定範圍](/docs/zh-TW/settings#settings-precedence)中定義相同的檔案系統陣列時,Claude Code 會合併它們,結合來自每個範圍的路徑,而不是用另一個範圍的陣列取代一個範圍的陣列。285當您在多個[設定範圍](/docs/zh-TW/settings#settings-precedence)中定義相同的檔案系統陣列時,Claude Code 會將它們合併,結合每個範圍中的路徑,而不是以某個範圍的陣列取代另一個範圍的陣列。

208 286 

209如果您在 CLI 上使用 [`--setting-sources`](/docs/zh-TW/cli-reference) 或在 Agent SDK 中使用 [`settingSources`](/docs/zh-TW/agent-sdk/claude-code-features#control-filesystem-settings-with-settingsources) 排除來源,Claude Code 會在建立沙箱設定時忽略其 `sandbox.filesystem` 項目、其 `Edit` 權限規則和其 `Read` 拒絕規則。需要 Claude Code v2.1.246 或更新版本。287如果您在 CLI 上使用 [`--setting-sources`](/docs/zh-TW/cli-reference) 或在 Agent SDK 中使用 [`settingSources`](/docs/zh-TW/agent-sdk/claude-code-features#control-filesystem-settings-with-settingsources) 排除某個來源,Claude Code 在建置沙箱設定時會忽略該來源的 `sandbox.filesystem` 項目、其 `Edit` 權限規則,以及其 `Read` 拒絕規則。需要 Claude Code v2.1.246 或更新版本。

210 288 

211當您在工作階段期間編輯這些檔案系統清單時,Claude Code [將變更套用到執行中的工作階段](/docs/zh-TW/settings#when-edits-take-effect),因此下一個沙箱化命令會在新路徑下執行。289當您在工作階段期間編輯這些檔案系統清單時,Claude Code 會[將變更套用至執行中的工作階段](/docs/zh-TW/settings#when-edits-take-effect),因此下一個沙箱化命令會在新路徑下執行。

212 290 

213路徑前綴控制路徑的解析方式:291沙箱檔案系統路徑使用標準慣例:`/tmp/build` 是絕對路徑,`~/.kube` 則相對於您的家目錄。這與 [Read 和 Edit 權限規則](/docs/zh-TW/permissions#read-and-edit)不同,後者使用 `//path` 表示絕對路徑,使用 `/path` 表示相對於專案的路徑。關於相對路徑、結尾斜線和萬用字元,請參閱[沙箱路徑前綴](/docs/zh-TW/settings-reference#sandbox-path-prefixes)。

214 292 

215| 前綴 | 意義 | 範例 |293您也可以使用 `sandbox.filesystem.denyWrite` 和 `sandbox.filesystem.denyRead` 拒絕寫入或讀取存取,並使用 `sandbox.filesystem.allowRead` 在被拒絕的區域內重新允許特定路徑。當讀取規則重疊時,套用路徑較窄的規則:

216| :- | :- | :- |

217| `/` | 從檔案系統根目錄的絕對路徑 | `/tmp/build` 保持 `/tmp/build` |

218| `~/` | 相對於主目錄 | `~/.kube` 變成 `$HOME/.kube` |

219| `./` 或無前綴 | 相對於專案設定的專案根目錄,或相對於使用者設定的 `~/.claude` | `.claude/settings.json` 中的 `./output` 解析為 `<project-root>/output` |

220 

221此語法不同於[讀取和編輯權限規則](/docs/zh-TW/permissions#read-and-edit),後者使用 `//path` 表示絕對路徑,`/path` 表示專案相對路徑。沙箱檔案系統路徑使用標準慣例:`/tmp/build` 是絕對路徑。關於 Claude Code 如何處理這些路徑中的尾部斜線或萬用字元,請參閱[沙箱路徑前綴](/docs/zh-TW/settings-reference#sandbox-path-prefixes)。

222 

223您也可以使用 `sandbox.filesystem.denyWrite` 和 `sandbox.filesystem.denyRead` 拒絕寫入或讀取存取,並使用 `sandbox.filesystem.allowRead` 重新允許被拒絕區域內的特定路徑。當讀取規則重疊時,路徑較窄的規則適用:

224 294 

225| 範例規則 | 結果 |295| 範例規則 | 結果 |

226| :- | :- |296| :- | :- |

227| `"denyRead": ["~/"]` 搭配 `"allowRead": ["~/projects"]` | `~/projects` 可讀,主目錄的其餘部分保持被阻止。較窄的允許重新開啟被拒絕區域的該部分 |297| `"denyRead": ["~/"]` 搭配 `"allowRead": ["~/projects"]` | `~/projects` 可讀取,家目錄的其餘部分仍被封鎖。較窄的允許規則會重新開放被拒絕區域中的該部分 |

228| `"allowRead": ["~/"]` 搭配 `"denyRead": ["~/.env"]` | `~/.env` 保持被阻止,主目錄的其餘部分可讀。拒絕在較寬的允許內保持,因此廣泛的允許無法無聲地重新暴露機密 |298| `"allowRead": ["~/"]` 搭配 `"denyRead": ["~/.env"]` | `~/.env` 仍被封鎖,家目錄的其餘部分可讀取。拒絕規則在較寬的允許規則內仍然有效,因此廣泛的允許規則無法在不知不覺中重新暴露機密 |

229| `"allowRead": ["~/"]` 搭配 `"denyRead": ["~/**/.env"]` | 主目錄下的每個 `.env` 保持被阻止,其餘部分可讀。[萬用字元拒絕](/docs/zh-TW/settings-reference#sandbox-path-prefixes)在較寬的允許內保持,就像精確路徑一樣 |299| `"allowRead": ["~/"]` 搭配 `"denyRead": ["~/**/.env"]` | 家目錄下的每個 `.env` 都仍被封鎖,其餘部分可讀取。[萬用字元拒絕規則](/docs/zh-TW/settings-reference#sandbox-path-prefixes)在較寬的允許規則內同樣有效,與精確路徑相同 |

230 300 

231下面的範例會阻止從整個主目錄讀取,同時仍允許從目前專案讀取。將其放在您專案的 `.claude/settings.json` 中,因為相對路徑 `.` 只有在設定位於專案設定中時才會解析為專案根目錄:301以下範例封鎖從整個家目錄讀取,同時仍允許從目前專案讀取。請將其放在專案的 `.claude/settings.json` 中,因為只有當設定位於專案設定中時,相對路徑 `.` 才會解析為專案根目錄:

232 302 

233```json theme={null}303```json theme={null}

234{304{


242}312}

243```313```

244 314 

245如果您將相同的設定放在 `~/.claude/settings.json` 中,`.` 會解析為 `~/.claude`,專案檔案將保持被 `denyRead` 規則阻止。315如果您將相同的設定放在 `~/.claude/settings.json` 中,`.` 會改為解析為 `~/.claude`,而專案檔案將仍被 `denyRead` 規則封鎖。

316 

317若要拒絕沙箱化命令讀取家目錄和掛載的磁碟區,同時保持工作目錄可讀取,請設定 [`permissions.blockReadsOutsideWorkingDirectories`](/docs/zh-TW/settings-reference#permissions-blockreadsoutsideworkingdirectories),而不是撰寫路徑規則。

318 

319<h3 id="run-commands-outside-the-sandbox-with-excludedcommands">

320 使用 `excludedCommands` 在沙箱外執行命令

321</h3>

322 

323在 [`sandbox.excludedCommands`](/docs/zh-TW/settings-reference#sandbox-excludedcommands) 中列出命令模式,即可在沙箱外執行相符的命令,這表示沒有檔案系統限制,也沒有網路代理伺服器。請將其用於無法在沙箱內運作、且您信任其擁有您完整存取權的工具。若某個工具只需要多一個目錄或多一個主機,或許可以使用 `allowWrite` 或 `allowedDomains` 運作,這兩者會讓命令保持在沙箱中。

324 

325此範例將 `docker compose` 命令移出沙箱。將其儲存在 `~/.claude/settings.json` 中即可套用至您的所有專案:

326 

327```json theme={null}

328{

329 "sandbox": {

330 "enabled": true,

331 "excludedCommands": ["docker compose *"]

332 }

333}

334```

335 

336Claude Code 會將您的項目與每個 Bash 和 Monitor 呼叫進行比對。一個呼叫是 Claude 傳送的完整命令列,其中可以串接多個命令。以下規則決定呼叫是否離開沙箱:

337 

338* **以 ` *` 結束模式**:項目使用與 `Bash(...)` [權限規則](/docs/zh-TW/permissions#permission-rule-syntax)相同的語法,其中不含萬用字元的模式為精確比對。`docker` 只比對不帶引數的 `docker`。`docker *` 比對帶或不帶引數的 `docker`

339* **呼叫中的每個命令都必須相符**:`npm ci && docker compose build` 會保持在沙箱中,除非另有項目涵蓋 `npm ci`

340* **Claude Code 比對的是呼叫的文字**:在內部呼叫 `docker` 的指令碼或 `make` 目標不會相符,`/usr/local/bin/docker` 也不會相符

341* **某些呼叫會保持在沙箱中**:重新導向至檔案、`cd`,或如 `$(...)` 的命令替換,會讓整個呼叫保持在沙箱中。[參考項目](/docs/zh-TW/settings-reference#sandbox-excludedcommands)列出了更多會保持在沙箱中的呼叫

342* **項目的儲存位置可能有影響**:當沙箱為[管理員要求](#repository-settings-under-an-admin-required-sandbox)時,Claude Code 會忽略 `.claude/settings.json` 和 `.claude/settings.local.json` 中的項目

343 

344被排除的命令會經過一般的權限流程:

246 345 

247若要拒絕沙箱化命令對主目錄和掛載磁碟區的讀取存取,同時保持工作目錄可讀,請改為設定 [`permissions.blockReadsOutsideWorkingDirectories`](/docs/zh-TW/settings-reference#permissions-blockreadsoutsideworkingdirectories),而不是編寫路徑規則。346* [唯讀命令](/docs/zh-TW/permissions#read-only-commands)以及您的允許規則涵蓋的命令會在不顯示提示的情況下執行

347* 在自動模式中,分類器會審查其他被排除的命令

348* 在 `bypassPermissions` 模式中,被排除的命令會在不顯示提示的情況下執行,除非有 ask 規則與之相符

349 

350若要確認項目是否相符,請切換至 Manual 模式,並要求 Claude 執行會變更內容的相符命令,例如 `docker compose up -d`。權限提示的標題為「Bash command (unsandboxed)」。

351 

352<Warning>

353 被排除的命令會以您的完整存取權執行。像 `docker *` 這樣廣泛的項目涵蓋了該工具能做的一切。如果您撰寫的模式涵蓋了直譯器、工作目錄內的指令碼,或作用於該目錄中檔案的工具(就像 `docker compose` 作用於其 compose 檔案一樣),Claude 就可以寫入該檔案,然後在沙箱外執行它。較窄的模式會讓 Claude 能在沙箱外執行的內容更少。

354</Warning>

248 355 

249<h3 id="disable-filesystem-isolation">356<h3 id="disable-filesystem-isolation">

250 停用檔案系統隔離357 停用檔案系統隔離

251</h3>358</h3>

252 359 

253將 `sandbox.filesystem.disabled` 設定為 `true` 以跳過檔案系統隔離,同時保持網路隔離。下面的範例關閉檔案系統隔離,同時保持網路網域的允許清單:360將 `sandbox.filesystem.disabled` 設為 `true`,即可略過檔案系統隔離,同時保留網路隔離。以下範例關閉檔案系統隔離,同時保留網路網域的允許清單:

254 361 

255```json theme={null}362```json theme={null}

256{363{


266}373}

267```374```

268 375 

269沙箱有兩個獨立的層:[檔案系統隔離](#filesystem-isolation)控制沙箱化命令可以讀取和寫入的路徑,[網路隔離](#network-isolation)控制它們可以到達的網域。關閉檔案系統層後,沙箱化命令可以不受限制地讀取和寫入主機檔案系統,同時其網路出口仍限制在您允許的網域。當您沙箱化以控制命令連接的位置而不是它們寫入的內容時,請關閉該層。376沙箱有兩個獨立的層:[檔案系統隔離](#filesystem-isolation)控制沙箱化命令可以讀取和寫入哪些路徑,[網路隔離](#network-isolation)控制它們可以連線到哪些網域。關閉檔案系統層後,沙箱化命令會取得對主機檔案系統不受限制的讀取和寫入存取權,而其網路輸出流量仍限制在您允許的網域內。當您使用沙箱是為了控制命令連線至何處,而非它們寫入什麼內容時,請關閉此層。

270 377 

271該設定預設為關閉,並適用於沙箱執行的平台:macOS、Linux 和 WSL2。需要 Claude Code v2.1.216 或更新版本。378`sandbox.filesystem.disabled` 預設為 `false`。需要 Claude Code v2.1.216 或更新版本。

272 379 

273<Warning>380<Warning>

274 關閉檔案系統隔離且命令自動允許時,沙箱化命令可以寫入稍後命令執行或讀取的檔案,例如 shell 啟動檔案、`$PATH` 上的可執行檔或 `~/.claude/settings.json`,並使用它們在下一次執行時擴大自己的存取權限。只有在您信任工作負載不會擴大自己的存取權限時,才將 `filesystem.disabled` 設定為 `true`。使用 [`allowManagedDomainsOnly`](#keep-developers-from-widening-the-policy) 鎖定網路網域會縮小風險,但不會消除風險,因為該鎖定僅適用於在沙箱內執行的命令。381 在關閉檔案系統隔離且命令自動允許的情況下,沙箱化命令可以寫入之後的命令會執行或讀取的檔案,例如 shell 啟動檔案、`$PATH` 上的可執行檔或 `~/.claude/settings.json`,並利用它們在下次執行時擴大自身的存取權。請僅針對您信任不會自行提升存取權的工作負載,將 `filesystem.disabled` 設為 `true`。使用 [`allowManagedDomainsOnly`](#keep-developers-from-widening-the-policy) 鎖定網路網域可降低風險,但無法消除風險,因為該鎖定僅適用於在沙箱內執行的命令。

275</Warning>382</Warning>

276 383 

277<h4 id="which-settings-can-disable-it">384<h4 id="which-settings-can-disable-it">

278 哪些設定可以停用它385 哪些設定可以停用它

279</h4>386</h4>

280 387 

281因為關閉檔案系統隔離會擴大沙箱化命令可以執行的操作,Claude Code 只從這些設定來源接受 `filesystem.disabled`:388由於關閉檔案系統隔離會擴大沙箱化命令能做的事,Claude Code 僅接受來自以下設定來源的 `filesystem.disabled`:

282 389 

283* 使用者設定、受管設定和 `--settings` CLI 旗標可以設定它。`.claude/settings.json` 和 `.claude/settings.local.json` 中的專案設定不能,因此簽出的專案無法關閉檔案系統隔離。390* 使用者設定、受管設定和 `--settings` CLI 旗標可以設定它。`.claude/settings.json` 和 `.claude/settings.local.json` 中的專案設定則不行,因此簽出的專案無法關閉檔案系統隔離。

284* 當受管設定設定 `sandbox.filesystem` 時,或列出任何 `sandbox.credentials.files` 項目且 `"mode": "deny"` 時,只有受管設定可以設定該金鑰。這會保持管理員部署的檔案系統限制有效;若要放寬此類部署,請在受管設定中設定 `"disabled": true`。391* 當受管設定有設定任何 `sandbox.filesystem`,或列出任何 `"mode": "deny"` 的 `sandbox.credentials.files` 項目時,只有受管設定可以設定此鍵。這可確保管理員部署的檔案系統限制持續生效;若要放寬此類部署,請在受管設定中設定 `"disabled": true`。

285* 當設定 [`CLAUDE_CODE_SUBPROCESS_ENV_SCRUB`](/docs/zh-TW/env-vars) 時,Claude Code 會忽略來自每個來源(包括受管設定)的 `filesystem.disabled`,並保持檔案系統隔離開啟。392* 當設定了 [`CLAUDE_CODE_SUBPROCESS_ENV_SCRUB`](/docs/zh-TW/env-vars) 時,Claude Code 會忽略來自所有來源(包括受管設定)的 `filesystem.disabled`,並保持檔案系統隔離開啟。

286 393 

287受管 `credentials.files` 項目是否固定 `filesystem.disabled`(將金鑰鎖定到受管設定,使開發人員無法關閉檔案系統隔離)取決於項目的 `mode` 以及沙箱啟動時項目發生的情況:394[有效的](/docs/zh-TW/settings-reference#invalid-credential-entries-in-managed-settings) `mask` 項目不會鎖定此鍵,即使 Claude Code 在啟動時對其[退回 `deny`](#mask-credential-files) 也是如此。請將無法遮罩的路徑(例如憑證目錄)在受管設定中列為明確的 `deny` 項目,這樣會鎖定此鍵。

288 

289| 受管項目 | 固定 `filesystem.disabled` | 隔離關閉時保護檔案的內容 |

290| - | - | - |

291| `"mode": "deny"` | 是 | 無:讀取區塊是檔案系統層的一部分 |

292| `"mode": "mask"`,應用為遮罩 | 否 | 遮罩本身:Linux 和 WSL2 上的[哨兵複本和代理](#mask-credential-files),macOS 上沙箱自己的讀取規則 |

293| `"mode": "mask"`,[在設定時回退到 `deny`](#mask-credential-files) | 否 | 無,與 `deny` 相同。將無法遮罩的路徑(例如目錄)列為明確的 `deny` 項目,這會固定該金鑰 |

294| `"mode": "mask"`,[由驗證降級為 `deny`](/docs/zh-TW/managed-settings#invalid-entries-in-managed-settings) | 是,如同明確的 `deny` | 無,與 `deny` 相同 |

295 

296回退發生在沙箱啟動時,在 Claude Code 已讀取設定之後,針對該回退執行的固定檢查,因此回退項目永遠不會固定。驗證在設定載入時將無效項目重寫為 `deny`,因此降級項目的固定方式與您寫成 `deny` 的項目相同。

297 395 

298<h4 id="what-changes-when-filesystem-isolation-is-off">396<h4 id="what-changes-when-filesystem-isolation-is-off">

299 檔案系統隔離關閉時的變更397 關閉檔案系統隔離時的變化

300</h4>398</h4>

301 399 

302設定 `filesystem.disabled` 會解除檔案系統層本身強制執行的保護。其他層強制執行的保護會繼續適用:400設定 `filesystem.disabled` 會解除檔案系統層本身強制執行的保護。其他層強制執行的保護則持續適用:

303 401 

304| 保護 | 檔案系統隔離關閉時 |402| 保護 | 關閉檔案系統隔離時 |

305| - | - |403| - | - |

306| `filesystem.denyRead` 和 [`credentials.files`](#protect-credentials) `deny` 讀取區塊 | 未強制執行。檔案系統層適用兩者 |404| `filesystem.denyRead` 和 [`credentials.files`](#protect-credentials) `deny` 讀取封鎖 | 不強制執行。兩者皆由檔案系統層套用 |

307| `credentials.envVars` `deny` 和 `mask` 項目 | 強制執行。環境變數清理獨立於檔案系統層 |405| `credentials.envVars` `deny` 和 `mask` 項目 | 強制執行。環境變數清除獨立於檔案系統層 |

308| [`credentials.files` `mask` 項目](#mask-credential-files)應用為遮罩 | 強制執行:遮罩獨立於檔案系統層。[回退到 `deny`](#mask-credential-files) 的項目未強制執行,如同任何 `deny` 項目 |406| 以遮罩方式套用的 [`credentials.files` `mask` 項目](#mask-credential-files) | 強制執行:遮罩獨立於檔案系統層。[退回 `deny`](#mask-credential-files) 的項目則不強制執行,與任何 `deny` 項目相同 |

309 407 

310另外兩件事會改變:408另有兩項變化:

311 409 

312* 沙箱化命令繼承您 shell 的 `$TMPDIR`,而不是每個使用者的暫存目錄,因為每個暫存目錄都是可寫的,Claude Code 不再將命令重新導向到每個使用者的暫存目錄。410* 沙箱化命令會繼承您 shell 的 `$TMPDIR`,而非每位使用者專屬的暫存目錄,因為每個暫存目錄都可寫入,Claude Code 不再將命令重新導向至每位使用者專屬的暫存目錄。

313 411 

314 在 Linux 上,該變數在父 shell 中通常未設定。Bash 工具指導告訴 Claude 使用 `mktemp -d` 建立暫存目錄,而不是依賴 `$TMPDIR`。412 在 Linux 上,此變數在父 shell 中通常未設定。Bash 工具指引會告知 Claude 使用 `mktemp -d` 建立暫用目錄,而不是依賴 `$TMPDIR`。

315* [`autoAllowBashIfSandboxed`](/docs/zh-TW/settings-reference#sandbox-autoallowbashifsandboxed) 仍預設為 `true`,因此沙箱化命令繼續執行而不會出現提示。將其設定為 `false` 以提示沙箱化命令。413* [`autoAllowBashIfSandboxed`](/docs/zh-TW/settings-reference#sandbox-autoallowbashifsandboxed) 仍預設為 `true`,因此沙箱化命令會持續在不顯示提示的情況下執行。將其設為 `false` 即可針對沙箱化命令顯示提示。

316 414 

317<h3 id="protect-credentials">415<h3 id="protect-credentials">

318 保護認證416 保護憑證

319</h3>417</h3>

320 418 

321`sandbox.credentials` 設定宣告要從沙箱化命令保護的認證檔案和環境變數。每個項目命名一個檔案路徑或環境變數以及一個 `mode`。專用的 `credentials` 區塊將認證規則分組在一起,並與一般檔案系統規則分開。419`sandbox.credentials` 設定宣告要保護、使其不受沙箱化命令存取的憑證檔案和環境變數。每個項目指定一個檔案路徑或環境變數,以及一個 `mode`。專用的 `credentials` 區塊讓憑證規則集中在一起,並與一般檔案系統規則分開。

322 420 

323對於 `"mode": "deny"` 的項目,檔案路徑在沙箱內被拒絕讀取,與 `filesystem.denyRead` 適用的限制相同,環境變數在每個沙箱化命令執行前被取消設定。檔案保護是檔案系統層的一部分,因此如果您[停用檔案系統隔離](#disable-filesystem-isolation),它不適用;環境變數保護仍然適用。421對於 `"mode": "deny"` 的項目,檔案路徑在沙箱內會被拒絕讀取,這與 `filesystem.denyRead` 套用的限制相同;環境變數則會在每個沙箱化命令執行前取消設定。檔案保護屬於檔案系統層,因此如果您[停用檔案系統隔離](#disable-filesystem-isolation),檔案保護便不適用;環境變數保護則仍然適用。

324 422 

325下面的範例會阻止讀取 AWS 認證檔案和 SSH 目錄,並從沙箱化命令的環境中移除 `GITHUB_TOKEN` 和 `NPM_TOKEN`:423以下範例封鎖讀取 AWS 憑證檔案和 SSH 目錄,並從沙箱化命令的環境中移除 `GITHUB_TOKEN` 和 `NPM_TOKEN`:

326 424 

327```json theme={null}425```json theme={null}

328{426{


342}440}

343```441```

344 442 

345環境變數項目和檔案項目也接受 `"mode": "mask"`,在[遮罩認證](#mask-credentials)下描述。443環境變數項目和檔案項目也接受 `"mode": "mask"`,詳見[遮罩憑證](#mask-credentials)。

346 444 

347檔案路徑遵循與 `sandbox.filesystem.*` 設定相同的[前綴規則](/docs/zh-TW/settings-reference#sandbox-path-prefixes)。445檔案路徑遵循與 `sandbox.filesystem.*` 設定相同的[前綴規則](/docs/zh-TW/settings-reference#sandbox-path-prefixes)。

348 446 

349Claude Code 合併來自工作階段載入的每個[設定範圍](/docs/zh-TW/settings#settings-precedence)的 `deny` 項目。`deny` 項目只會縮小存取,因此任何範圍都可以新增一個,但沒有範圍可以移除另一個範圍新增的項目。447Claude Code 會合併工作階段載入的每個[設定範圍](/docs/zh-TW/settings#settings-precedence)中的 `deny` 項目。`deny` 項目只會縮小存取範圍,因此任何範圍都可以新增,但沒有任何範圍可以移除其他範圍新增的項目。

350 448 

351當您[排除設定來源](#configure-sandboxing)時:449當您[排除某個設定來源](#configure-sandboxing)時:

352 450 

353* **專案或本機設定**:Claude Code 不適用其任何 `credentials` 項目。需要 Claude Code v2.1.246 或更新版本。451* **專案或本機設定**:Claude Code 不會套用其任何 `credentials` 項目。需要 Claude Code v2.1.246 或更新版本。

354* **使用者設定**:Claude Code 仍然適用 `~/.claude/settings.json` 中的 `deny` 項目,並將其[檔案 `mask` 項目](#mask-credential-files)保持為限制,但會捨棄其[環境變數 `mask` 項目](#mask-environment-variables)。452* **使用者設定**:Claude Code 仍會套用 `~/.claude/settings.json` 中的 `deny` 項目,並將其[檔案 `mask` 項目](#mask-credential-files)保留為限制,但這些項目不再授權代理伺服器替換真實值;同時會捨棄其[環境變數 `mask` 項目](#mask-environment-variables)。

355 453 

356沒有內建的認證拒絕清單,因此只有您列出的檔案和變數受到限制。454沒有內建的憑證拒絕清單,因此只有您列出的檔案和變數會受到限制。

357 455 

358`sandbox.credentials` 僅影響沙箱化 Bash 命令。若要從所有子程序中去除認證,無論沙箱化如何,請設定 [`CLAUDE_CODE_SUBPROCESS_ENV_SCRUB`](/docs/zh-TW/env-vars)。456`sandbox.credentials` 僅影響沙箱化的 Bash 命令。若要無論是否使用沙箱都從所有子程序中移除憑證,請設定 [`CLAUDE_CODE_SUBPROCESS_ENV_SCRUB`](/docs/zh-TW/env-vars)。

359 457 

360<h3 id="mask-credentials">458<h3 id="mask-credentials">

361 遮罩認證459 遮罩憑證

362</h3>460</h3>

363 461 

364遮罩比[保護認證](#protect-credentials)下的 `deny` 項目更進一步。Claude Code 不會阻止認證,而是向沙箱化命令顯示預留位置(哨兵),[沙箱代理](#network-isolation)會在對您允許的主機的出站請求上交換真實值。對於檔案,替換是 Linux 和 WSL2 行為;[macOS 改為阻止檔案](#mask-credential-files)。462當您遮罩憑證時,Claude Code 會向沙箱化命令顯示一個每個工作階段專屬的預留位置,稱為哨兵值,而[沙箱代理伺服器](#network-isolation)會在傳送至您允許之主機的外送請求中換入真實值。[保護憑證](#protect-credentials)中的 `deny` 項目則會改為封鎖憑證。對於 macOS 上的檔案,Claude Code 會[改為封鎖該檔案](#mask-credential-files),而非加以遮罩。

365 

366<h4 id="mask-environment-variables">

367 遮罩環境變數

368</h4>

369 

370`"mode": "mask"` 保護認證,同時保持使用它進行驗證的工具正常工作。`deny` 完全移除變數,這也會破壞需要它的工具,例如 `gh` 或 `npm`。需要 Claude Code v2.1.199 或更新版本。

371 463 

372使用 `mask`,沙箱化命令會看到每個工作階段的哨兵值,而不是真實值。每個 `mask` 項目可以列出 `injectHosts`,允許真實值到達的主機。當請求離開沙箱前往其中一個時,[沙箱代理](#network-isolation)會用真實值取代哨兵。命令和它記錄的任何內容都不會保持真實認證,但其請求仍然進行驗證。464遮罩環境變數需要 Claude Code v2.1.199 或更新版本。[`sandbox.credentials`](/docs/zh-TW/settings-reference#sandbox-credentials) 參考列出了每個欄位。

373 465 

374代理在請求內容中替換認證,因此它必須看到它們。設定 [`network.tlsTerminate`](/docs/zh-TW/settings-reference#sandbox-network-tlsterminate) 使代理自己終止 TLS。466遮罩需要以下條件:

375 467 

376沒有它,遮罩會失敗而不暴露任何內容:命令仍然只看到哨兵,但哨兵未變更地到達伺服器,驗證失敗。Claude Code 在啟動時報告此誤設定。468* **TLS 終止**:代理伺服器會在請求內容中替換真實值,因此必須能看到請求內容。請設定 [`network.tlsTerminate`](/docs/zh-TW/settings-reference#sandbox-network-tlsterminate),讓代理伺服器自行終止 TLS。若未設定,遮罩會失敗但不會洩漏任何內容:命令仍只看到哨兵值,但哨兵值會原封不動地送達伺服器,導致身分驗證失敗。Claude Code 會在啟動時回報此設定錯誤。

469* **允許的目的地**:每個 `mask` 項目可以列出 `injectHosts`,即允許真實值送達的主機。代理伺服器只會在[網域允許清單](#network-isolation)允許的連線上注入,因此每個 `injectHosts` 主機也必須能透過 `network.allowedDomains` 連線到。對於沒有 `injectHosts` 的 `mask` 項目,代理伺服器會在傳送至 `network.allowedDomains` 中每個主機的請求中替換真實值。

470* **受信任的設定範圍**:遮罩會授權代理伺服器將您的真實憑證傳送至某處,因此 Claude Code 只接受來自使用者設定、受管設定和 `--settings` 旗標的 `mask` 項目、`network.tlsTerminate`、[`credentials.allowPlaintextInject`](/docs/zh-TW/settings-reference#sandbox-credentials-allowplaintextinject)、`awsPairs` 和 `sigv4`。它會忽略儲存庫的 `.claude/settings.json` 或 `.claude/settings.local.json` 中的這些設定。當您的管理員透過伺服器管理的設定提供 `mask` 項目、`network.tlsTerminate` 或 `credentials.allowPlaintextInject` 時,這些會被視為[需要核准的設定](/docs/zh-TW/server-managed-settings#security-approval-dialogs)。

377 471 

378替換涵蓋標頭和請求主體。使用從認證衍生的簽名而不是認證本身進行驗證的請求需要在代理處重新簽名;[重新簽名 AWS 請求](#re-sign-aws-requests)涵蓋 AWS 如何工作。472<h4 id="mask-environment-variables">

473 遮罩環境變數

474</h4>

379 475 

380代理僅在[網域允許清單](#network-isolation)允許的連接上注入,因此每個 `injectHosts` 目的地也必須可透過 `network.allowedDomains` 到達。476若要遮罩環境變數,請在其 `credentials.envVars` 項目上設定 `"mode": "mask"`。命令及其記錄的任何日誌永遠不會持有真實憑證,但其請求仍能通過身分驗證。當同一個變數在任何範圍中以 `deny` 列出時,`deny` 優先。

381 477 

382下面的範例遮罩兩個令牌。`GH_TOKEN` 僅在對 `api.github.com` 的請求上替換,而 `NPM_TOKEN` 沒有 `injectHosts`,在對 `network.allowedDomains` 中每個主機的請求上替換。478以下範例遮罩兩個 token。`GH_TOKEN` 只會在傳送至 `api.github.com` 的請求中替換,而 `NPM_TOKEN` 沒有 `injectHosts`,因此會在傳送至 `network.allowedDomains` 中每個主機的請求中替換:

383 479 

384```json theme={null}480```json theme={null}

385{481{


399}495}

400```496```

401 497 

402<span id="ipv6-destinations-in-injecthosts" />在兩個清單中以不同方式拼寫 IPv6 目的地,因為每個清單都有自己的匹配器:498遮罩預設會取代整個值。對於具有結構的值,例如 `DATABASE_URL` 連線字串或 JWT,請使用 [`extract`、`decode`、`maskClaims` 和 `onExtractNoMatch` 欄位](/docs/zh-TW/settings-reference#sandbox-credentials-envvars),讓剖析該值的工具持續運作。

403 

404* **`network.allowedDomains`**:[括號形式網域清單使用](#ipv6-addresses-in-domain-lists),例如 `"[::1]"`。代理檢查此清單以允許連接。

405* **`injectHosts`**:其規範壓縮形式中的裸地址,例如 `"::1"` 或 `"2001:db8::1"`。代理將每個項目與連接的裸目的地地址進行比對,忽略連接埠,因此括號、區域 ID 或不同壓縮拼寫永遠不會比對,代理永遠不會在那裡注入認證。

406 

407`claude doctor` 標記無法與警告 `Sandbox credential injectHosts entries can never match their destination` 比對的 `injectHosts` 項目。此檢查需要 Claude Code v2.1.229 或更新版本。

408 

409與 `deny` 不同,遮罩授權代理將您的真實認證傳送到列出的主機,因此 Claude Code 只從您或您的管理員控制的設定中接受它:使用者設定、受管設定和 `--settings` CLI 旗標。Claude Code 忽略存放庫的 `.claude/settings.json` 或 `.claude/settings.local.json` 中的 `mask` 項目。在這些檔案中,它也忽略 `network.tlsTerminate` 和 [`credentials.allowPlaintextInject`](/docs/zh-TW/settings-reference#sandbox-credentials-allowplaintextinject),允許代理將認證注入未加密請求的設定。如果您[排除使用者設定](#configure-sandboxing),Claude Code 也會捨棄 `~/.claude/settings.json` 中的環境變數 `mask` 項目。

410 

411當您的管理員透過伺服器受管設定傳遞 `mask` 項目、`network.tlsTerminate` 或 `credentials.allowPlaintextInject` 時,它們計為[需要核准的設定](/docs/zh-TW/server-managed-settings#security-approval-dialogs)。

412 

413當相同變數在任何範圍中以 `deny` 列出時,`deny` 優先。

414 499 

415遮罩預設會取代變數的整個值,適合裸令牌。可選項目欄位(需要 Claude Code v2.1.224 或更新版本)處理具有結構的值:500<span id="ipv6-destinations-in-injecthosts" />對於 IPv6 目的地,請在兩個清單中以不同方式書寫位址:

416 501 

417* `extract`:Claude Code 在整個值上應用的正規表達式,僅取代每個比對的第 1 組捕獲的文字,因此解析值的工具(例如 `DATABASE_URL` 連接字串)在沙箱內仍然有效。模式必須包含至少一個捕獲群組。502* **`network.allowedDomains`**:方括號形式,例如 `"[::1]"`

418* `onExtractNoMatch` 控制模式不比對任何內容時發生的情況:503* **`injectHosts`**:標準壓縮形式的純位址,例如 `"::1"`

419 * `warn`(預設)警告並不遮罩地傳遞變數

420 * `deny` 在沙箱內取消設定變數

421 * `error` 停止沙箱設定,直到您修正設定

422* `decode: "jwt"`:用於保持 JSON Web Token (JWT) 的變數。Claude Code 驗證值是 JWT 並用結構上有效的假令牌取代它,因此沙箱內解碼令牌的程式碼繼續工作。新增 `maskClaims` 以列出要個別遮罩的頂層承載宣告,而不是取代整個令牌;其他宣告保持可讀。當值未驗證為 JWT 或沒有列出的宣告比對時,Claude Code 會以警告不遮罩地傳遞變數。`decode` 無法與 `extract` 結合。

423 504 

424請參閱[設定參考中的 `credentials.envVars[]` 列](/docs/zh-TW/settings-reference#sandbox-settings)以取得完整欄位清單。505代理伺服器會將每個 `injectHosts` 項目與連線的純目的地位址進行比對,並忽略連接埠,因此帶方括號、帶區域 ID 或以不同方式壓縮的寫法永遠不會相符。`claude doctor` 會以警告 `Sandbox credential injectHosts entries can never match their destination` 標示永遠無法相符的項目。此檢查需要 Claude Code v2.1.229 或更新版本。

425 506 

426<h4 id="re-sign-aws-requests">507<h4 id="re-sign-aws-requests">

427 重新簽名 AWS 請求508 重新簽署 AWS 請求

428</h4>509</h4>

429 510 

430AWS 請求在請求內容上攜帶 SigV4 簽名,因此一起遮罩 `AWS_ACCESS_KEY_ID` 和 `AWS_SECRET_ACCESS_KEY`。代理透過存取金鑰的哨兵偵測 SigV4 請求,並在替換真實值後重新簽名。僅遮罩祕密會使請求以預留位置簽名,代理無法偵測,因此它們在 AWS 處失敗;Claude Code 在啟動時警告此情況,但不會在僅遮罩存取金鑰 ID 時警告。代理無法重新簽名的偵測到的請求(例如缺少其 `x-amz-date` 標頭的請求)會因代理錯誤而失敗,而不是到達伺服器且簽名損壞。511AWS 請求帶有針對請求內容的 SigV4 簽章,因此請同時遮罩 `AWS_ACCESS_KEY_ID` 和 `AWS_SECRET_ACCESS_KEY`。代理伺服器會透過存取金鑰的[哨兵值](#mask-credentials)偵測 SigV4 請求,並以真實值重新簽署請求,此功能需要 Claude Code v2.1.221 或更新版本。如果您只遮罩密鑰,請求會以代理伺服器無法偵測的預留位置簽署,因此會在 AWS 端失敗。

431 512 

432當您遮罩其整個值時,Claude Code 會自動將常規 `AWS_ACCESS_KEY_ID`、`AWS_SECRET_ACCESS_KEY` 和 `AWS_SESSION_TOKEN` 變數連結到一個認證。如果您的 AWS 認證位於具有其他名稱的變數中,請使用 [`credentials.awsPairs`](/docs/zh-TW/settings-reference#sandbox-credentials-awspairs) 自行分組,需要 Claude Code v2.1.224 或更新版本。此範例將配對新增到已遮罩 `MY_KEY_ID`、`MY_SECRET_KEY` 和 `MY_SESSION_TOKEN` 整個值的設定,如上面的[遮罩設定](#mask-environment-variables):513當您遮罩慣用的 `AWS_ACCESS_KEY_ID`、`AWS_SECRET_ACCESS_KEY` 和 `AWS_SESSION_TOKEN` 變數的完整值時,Claude Code 會自動將它們連結為單一憑證。如果您的 AWS 憑證存放在其他名稱的變數中,請使用 [`credentials.awsPairs`](/docs/zh-TW/settings-reference#sandbox-credentials-awspairs) 將它們分組,此功能需要 Claude Code v2.1.224 或更新版本。

433 514 

434```json theme={null}515串流上傳、預先簽署的 URL 和 SigV4A 請求帶有代理伺服器無法重新計算的簽章。當此類請求以已遮罩配對的預留位置簽署時,代理伺服器會讓它失敗,而不是轉送損壞的簽章。以未遮罩憑證簽署的請求不受影響。使用 [`credentials.sigv4`](/docs/zh-TW/settings-reference#sandbox-credentials-sigv4)(需要 Claude Code v2.1.224 或更新版本)可改為轉送這些請求形式之一。AWS 仍會拒絕該請求,因此呼叫的工具會收到 AWS 本身的拒絕回應,而非代理伺服器錯誤。

435{

436 "sandbox": {

437 "credentials": {

438 "awsPairs": [

439 {

440 "accessKeyIdVar": "MY_KEY_ID",

441 "secretAccessKeyVar": "MY_SECRET_KEY",

442 "sessionTokenVar": "MY_SESSION_TOKEN"

443 }

444 ]

445 }

446 }

447}

448```

449 

450每個項目遵循這些規則:

451 

452* `accessKeyIdVar` 和 `secretAccessKeyVar` 命名保持存取金鑰 ID 和祕密金鑰的遮罩 `envVars` 項目。可選的 `sessionTokenVar` 命名保持臨時認證工作階段令牌的項目;設定時,代理在重新簽名的請求上傳送真實令牌作為 `x-amz-security-token`。

453* 每個命名變數必須是遮罩其整個值的 `mask` 項目,沒有 `extract` 或 `decode`。

454* 代理在存取金鑰 ID 項目的 `injectHosts` 中列出的主機上重新簽名請求。

455* 在配對中命名任何常規變數會取代自動配對。

456 

457如同 `mask` 項目,`awsPairs` 只從使用者設定、受管設定和 `--settings` CLI 旗標接受。

458 

459三種 AWS 請求形式攜帶代理無法重新計算的簽名。當此類請求以遮罩配對的預留位置簽名時,代理會失敗它,而不是轉發損壞的簽名;使用未遮罩認證簽名的請求永遠不會受影響。[`credentials.sigv4`](/docs/zh-TW/settings-reference#sandbox-credentials-sigv4) 設定(需要 Claude Code v2.1.224 或更新版本)放寬每種形式:將形式的金鑰設定為 `passthrough` 會轉發具有其預留位置衍生簽名的請求,因此呼叫工具會收到 AWS 自己的拒絕回應,而不是代理錯誤。如同 `awsPairs`,`sigv4` 只從使用者設定、受管設定和 `--settings` CLI 旗標接受。

460 

461| 請求形式 | `sigv4` 金鑰 | 代理無法重新簽名的原因 |

462| :- | :- | :- |

463| aws-chunked 串流上傳 | `streaming` | 每個區塊簽名鏈接到種子簽名,因此重新簽名需要重寫主體 |

464| 預簽名 URL | `presigned` | 簽名位於 URL 本身,沒有 `Authorization` 標頭 |

465| SigV4A 非對稱簽名 | `sigv4a` | 沒有共用金鑰 HMAC 可重新計算 |

466 516 

467<h4 id="mask-credential-files">517<h4 id="mask-credential-files">

468 遮罩認證檔案518 遮罩憑證檔案

469</h4>519</h4>

470 520 

471檔案項目也接受 `"mode": "mask"`,需要 Claude Code v2.1.221 或更新版本。沙箱化命令看到的內容取決於平台:521若要遮罩憑證檔案,請在其 `credentials.files` 項目上設定 `"mode": "mask"`。遮罩檔案需要 Claude Code v2.1.221 或更新版本。沙箱化命令看到的內容取決於平台:

472 

473* **Linux 和 WSL2**:沙箱化命令讀取檔案的哨兵複本,一個替代品,其祕密被取代為預留位置值,[沙箱代理](#network-isolation)在出口上替換真實值。

474* **macOS**:沙箱化命令無法讀取列出的檔案。Claude Code 不建立哨兵複本,不在出口上替換任何內容,因此使用檔案進行驗證的工具在沙箱內不工作,與 `deny` 相同效果。與 `deny` 項目不同,讀取區塊即使在您[停用檔案系統隔離](#disable-filesystem-isolation)時也保持。

475 522 

476在每個平台上,Claude Code 以與[遮罩環境變數](#mask-environment-variables)相同的方式應用 [`network.tlsTerminate`](/docs/zh-TW/settings-reference#sandbox-network-tlsterminate) 要求和 `injectHosts`,並以相同方式忽略存放庫設定。如果您[排除使用者設定](#configure-sandboxing),Claude Code 將 `~/.claude/settings.json` 中的檔案 `mask` 項目保持為限制,但項目不再授權代理替換真實值。523* **Linux 和 WSL2**:沙箱化命令讀取的是檔案的[哨兵值](#mask-credentials)副本,而代理伺服器會在外送請求中替換真實值。

524* **macOS**:沙箱化命令完全無法讀取該檔案。Claude Code 不會建置哨兵副本,因此使用該檔案進行身分驗證的工具無法在沙箱內運作,效果與 `deny` 相同。即使您[停用檔案系統隔離](#disable-filesystem-isolation),讀取封鎖仍然有效。

477 525 

478下面的範例遮罩儲存在 `~/.config/gh/hosts.yml` 中的 GitHub 令牌;`extract` 模式(下面涵蓋)告訴 Claude Code 檔案的哪個部分是祕密。在 Linux 和 WSL2 上,讀取檔案的沙箱化命令會取得令牌位置的哨兵,代理在對 `api.github.com` 的請求上替換真實令牌:526以下範例遮罩存放在 `~/.config/gh/hosts.yml` 中的 GitHub token。`extract` 模式會標示檔案的哪個部分是密鑰,因此在 Linux 和 WSL2 上,`gh` 仍能剖析其設定的其餘部分:

479 527 

480```json theme={null}528```json theme={null}

481{529{


499}547}

500```548```

501 549 

502若要確認遮罩有效,請要求 Claude 在沙箱化命令中執行 `cat ~/.config/gh/hosts.yml`:在 Linux 和 WSL2 上,輸出在令牌位置顯示哨兵值,在 macOS 上,讀取改為失敗。550若要確認遮罩已生效,請要求 Claude 在沙箱化命令中執行 `cat ~/.config/gh/hosts.yml`。在 Linux 和 WSL2 上,輸出會顯示哨兵值來取代 token;在 macOS 上,讀取則會失敗。

503 

504在 Linux 和 WSL2 上,`extract` 模式是保持 `hosts.yml` 其餘部分可讀的內容。Claude Code 在整個檔案上應用正規表達式,僅取代每個比對的第 1 組捕獲的文字,因此 `gh` 仍然解析其設定,只有令牌是預留位置。對任何工具解析的結構化檔案(例如 `.netrc`、JSON 或 YAML)使用 `extract`;模式必須包含至少一個捕獲群組。沒有 `extract`,Claude Code 會用一個哨兵值取代整個檔案內容,適合保持單個裸祕密且沒有其他內容的檔案。

505 

506對於保持 JSON Web Token (JWT) 的檔案,設定 `decode: "jwt"` 而不是或與 `extract` 一起。`decode` 需要 Claude Code v2.1.224 或更新版本。Claude Code 使用內建模式或您的 `extract` 模式(設定時)找到 JWT 候選項,驗證每個候選項是 JWT,並用結構上有效的假令牌取代它,因此在沙箱內解碼令牌的程式碼繼續工作。新增 `maskClaims` 以僅遮罩每個驗證令牌內的命名頂層承載宣告,並保持其他宣告可讀。當沒有候選項驗證或沒有命名宣告比對時,下面的 `onExtractNoMatch` 欄位控制結果,就像模式不比對任何內容時一樣。

507 551 

508兩個可選欄位精化比對行為。兩者僅在 `mode` 是 `mask` 且 `extract` 或 `decode` 設定時適用。在 macOS 上,當檔案系統隔離開啟時,Claude Code 在模式執行前將 `mask` 項目應用為 `deny`,因此這些欄位和下面的不比對結果僅在[檔案系統隔離關閉](#disable-filesystem-isolation)時在那裡生效:552若未使用 `extract` 或 `decode`,Claude Code 會以單一哨兵值取代整個檔案,這適用於只存放單一純密鑰的檔案。請使用 [`extract`、`decode`、`maskClaims`、`onExtractNoMatch` 和 `maskDuplicates` 欄位](/docs/zh-TW/settings-reference#sandbox-credentials-files)來控制部分遮罩,以及模式未相符任何內容時的行為。

509 553 

510* `onExtractNoMatch` 控制比對在檔案中找不到要遮罩的內容時發生的情況:554<Warning>

511 555 當比對找不到任何可遮罩的內容時,預設的 `onExtractNoMatch` 值 `warn` 會略過該項目,因此沙箱化命令可以讀取未遮罩的真實檔案。在 macOS 上,只要檔案系統隔離開啟,Claude Code 就會在模式執行前將 `mask` 項目以 `deny` 套用,因此無相符結果只有在[檔案系統隔離關閉](#disable-filesystem-isolation)時才會在 macOS 上生效。預設值適用於可能合理不存在的憑證。如果密鑰可能存在但模式可能遺漏它,請使用 [`deny`](/docs/zh-TW/settings-reference#mask-fields-for-files)。

512 * `warn`(預設)警告並跳過項目,因此沙箱化命令可以不遮罩地讀取真實檔案。預設適合認證可能合法不存在的情況;如果祕密可能存在但模式可能遺漏它,請使用 `deny`556</Warning>

513 * `deny` 改為使檔案不可讀

514 * `error` 停止沙箱設定,直到您修正設定

515 

516 Claude Code 將 `deny` 視為 `error`,無論何時讀取區塊不會強制執行:當您[停用檔案系統隔離](#disable-filesystem-isolation)時,以及當來自任何設定來源的 `filesystem.allowRead` 項目重新開啟檔案的路徑時。

517* `maskDuplicates` 也取代每個遮罩認證值的逐字複本,在比對跨度外找到的 `extract` 捕獲或 `decode` 驗證令牌,用於在比對無法到達的地方重複的祕密。它比對原始子字串,因此短或常見值會被取代到處出現;為長、高熵祕密保留它。預設:false。

518 557 

519`mask` 適用於單個檔案,因此個別列出每個認證檔案。Claude Code 回退到 `deny` 用於無法安全遮罩的 `mask` 項目:目錄路徑、glob 模式、大於 8 MiB 的檔案或非 UTF-8 文字檔案。改為將目錄寫成明確的 `deny` 項目;[哪些設定可以停用它](#which-settings-can-disable-it)下的表格涵蓋每種形式是否固定 `filesystem.disabled` 以及它在檔案系統隔離關閉時的行為。558`mask` 適用於單一檔案,因此請個別列出每個憑證檔案。對於無法安全遮罩的 `mask` 項目,Claude Code 會退回 `deny`:目錄路徑、glob 模式、大於 8 MiB 的檔案,或非 UTF-8 文字的檔案。

520 559 

521<h2 id="how-sandboxing-works">560<h2 id="how-sandboxing-works">

522 沙箱隔離的運作方式561 沙箱機制的運作方式

523</h2>562</h2>

524 563 

525<h3 id="filesystem-isolation">564<h3 id="filesystem-isolation">

526 檔案系統隔離565 檔案系統隔離

527</h3>566</h3>

528 567 

529沙箱化的 Bash 工具將檔案系統存取限制在特定目錄:568沙箱化的 Bash 工具會將檔案系統存取限制在特定目錄:

530 569 

531* **預設寫入行為**:對目前工作目錄及其子目錄、任何使用 `--add-dir`、`/add-dir` 或 [`permissions.additionalDirectories`](/docs/zh-TW/settings-reference#permissions-additionaldirectories) 新增的目錄,以及 `$TMPDIR` 指向的工作階段暫存目錄具有讀寫存取權限570* **預設寫入行為**:對目前工作目錄及其子目錄、以 `--add-dir`、`/add-dir` 或 [`permissions.additionalDirectories`](/docs/zh-TW/settings-reference#permissions-additionaldirectories) 新增的任何目錄,以及 `$TMPDIR` 所指向的每位使用者暫存目錄,具有讀取和寫入權限

532* **預設讀取行為**:對整個電腦具有讀取存取權限,除了某些被拒絕的目錄。請注意,此預設仍允許讀取認證檔案,例如 `~/.aws/credentials` 和 `~/.ssh/`。使用 [`sandbox.credentials`](#protect-credentials) 來阻止讀取這些檔案並取消設定祕密環境變數,或將路徑新增至 `denyRead`。571* **預設讀取行為**:對整台電腦具有讀取權限,但某些被拒絕的目錄除外。此預設仍允許讀取憑證檔案,因此請[保護憑證](#protect-credentials),避免命令讀取您不希望其讀取的憑證。

533* **讀取阻止**:啟用 [`permissions.blockReadsOutsideWorkingDirectories`](/docs/zh-TW/settings-reference#permissions-blockreadsoutsideworkingdirectories) 時,沙箱化命令也會失去對您主目錄和其他保存使用者檔案的目錄的讀取存取權限,除了 [Sandboxed commands under the block](/docs/zh-TW/settings-reference#sandboxed-commands-under-the-block) 列出的路徑。該部分也說明了此阻止部分何時不適用。572* **讀取封鎖**:開啟 [`permissions.blockReadsOutsideWorkingDirectories`](/docs/zh-TW/settings-reference#permissions-blockreadsoutsideworkingdirectories) 後,沙箱化命令也會失去對您的家目錄及其他存放使用者檔案之目錄的讀取權限,但[封鎖下的沙箱化命令](/docs/zh-TW/settings-reference#sandboxed-commands-under-the-block)所列出的路徑除外。該章節也說明了這部分封鎖何時不適用。

534* **被阻止的存取**:無法修改工作目錄、新增的目錄和工作階段暫存目錄外的檔案,除非有明確的權限,包括 shell 設定檔案(例如 `~/.bashrc`)和 `/bin/` 中的系統二進位檔573* **Git worktree**:當工作目錄是[連結的 git worktree](/docs/zh-TW/worktrees) 時,沙箱也允許寫入主儲存庫共用的 `.git` 目錄,讓 `git commit` 等命令可以更新 refs 和 index。對該目錄內 `hooks/` 和 `config` 的寫入仍會被拒絕。

535* **Git worktrees**:當工作目錄是[連結的 git worktree](/docs/zh-TW/worktrees) 時,沙箱也允許寫入主儲存庫的共用 `.git` 目錄,以便 `git commit` 等命令可以更新參考和索引。對該目錄內的 `hooks/` 和 `config` 的寫入仍被拒絕。

536* **可設定**:透過設定定義自訂允許和拒絕的路徑

537 574 

538若要完全跳過檔案系統隔離,同時保持網路隔離,請設定 [`sandbox.filesystem.disabled`](#disable-filesystem-isolation)。575若要完全略過檔案系統隔離,同時保留網路隔離,請設定 [`sandbox.filesystem.disabled`](#disable-filesystem-isolation)。

539 576 

540<h3 id="protected-paths">577<h3 id="protected-paths">

541 受保護的路徑578 受保護的路徑

542</h3>579</h3>

543 580 

544在沙箱化命令可以寫入的目錄內,沙箱仍然拒絕寫入 Claude Code 載入設定和程式碼的檔案。可以編輯這些檔案的命令可能會授予自己權限,或新增 Claude Code 在沙箱外執行的 hook 或 MCP 伺服器。權限系統有自己的[受保護路徑](/docs/zh-TW/permission-modes#protected-paths),控制 Claude Code 在工具執行前批准的內容;沙箱的清單適用於已在執行的命令。它涵蓋四組路徑:581在沙箱化命令可以寫入的目錄中,沙箱仍會拒絕寫入 Claude Code 載入設定和程式碼的檔案。能夠編輯這些檔案的命令可能會自行授予權限,或新增由 Claude Code 在沙箱外執行的 hook 或 MCP 伺服器。權限系統有其自己的[受保護路徑](/docs/zh-TW/permission-modes#protected-paths),用來控制 Claude Code 在工具執行前核准的內容;沙箱的清單則適用於已在執行中的命令。它涵蓋四組路徑:

545 582 

546* **在您的工作目錄及其上方的目錄中**:`.claude` 設定檔案、`.claude/skills`、`.claude/agents`、`.claude/commands` 和 `.claude/hooks` 目錄、`.mcp.json`,以及 Claude Code 自行執行的檔案,例如 `.claude/workflows` 和 `.claude/scheduled_tasks.json`583* **在您的工作目錄及其上層目錄中**:`.claude` 設定檔、`.claude/skills`、`.claude/agents`、`.claude/commands` 和 `.claude/hooks` 目錄、`.mcp.json`,以及 Claude Code 自行執行的檔案,例如 `.claude/workflows` 和 `.claude/scheduled_tasks.json`

547* **僅在您的工作目錄中**:shell 啟動檔案,例如 `.bashrc` 和 `.zshrc`、`.gitconfig`、`.vscode` 和 `.idea` 目錄,以及 `.git` 內的 `hooks` 和 `config`584* **僅在您的工作目錄中**:shell 啟動檔案,例如 `.bashrc` 和 `.zshrc`、`.gitconfig`、`.vscode` 和 `.idea` 目錄,以及 `.git` 內的 `hooks` 和 `config`

548* **會將您的工作目錄轉變為裸 git 儲存庫的檔案**:頂層的 `HEAD`、`objects` 和 `refs`,加上 `HEAD` 旁邊的 `config` 和 `hooks`。即使沒有 `HEAD`,名為 `config` 的檔案也被拒絕。在 Linux 和 WSL2 上,當沙箱化命令執行時,沙箱會刪除出現的頂層 `HEAD` 檔案或 `objects` 或 `refs` 目錄585* **會將您的工作目錄變成 bare git 儲存庫的檔案**:頂層的 `HEAD`、`objects` 和 `refs`,以及當旁邊有 `HEAD` 時,該處既有的 `config` 和 `hooks` 項目。名為 `config` 的檔案即使沒有 `HEAD` 也會被拒絕。在 Linux 和 WSL2 上,沙箱會刪除沙箱化命令執行期間出現的頂層 `HEAD` 檔案或 `objects` 或 `refs` 目錄

549* **在 `~/.claude` 中,或 `CLAUDE_CONFIG_DIR` 指向的目錄中**:其大部分內容,加上 `~/.claude.json` 和 `.credentials.json` 認證存放區586* **在 `~/.claude` 或 `CLAUDE_CONFIG_DIR` 所指向的目錄中**:其大部分內容,加上 `~/.claude.json` 和 `.credentials.json` 憑證儲存區

550 587 

551如果在工作階段期間在受保護設定檔案的路徑出現符號連結,沙箱也會拒絕寫入它指向的檔案,從下一個命令開始。588如果在工作階段期間,受保護設定檔的路徑上出現符號連結,沙箱也會從下一個命令開始,拒絕寫入該符號連結所指向的檔案。

552 589 

553無法豁免這些路徑之一:涵蓋該路徑的 `allowWrite` 項目或 `Edit` 允許規則不會解除保護。關閉保護的唯一方法是 [`filesystem.disabled`](#disable-filesystem-isolation),它會關閉每個路徑的檔案系統隔離。若要查看為您的機器解析的大部分這些路徑,請執行 `/sandbox` 並開啟 **Config** 標籤,該標籤在 **Denied within allowed** 下列出它們,混合您自己的 `denyWrite` 項目。590無法豁免這些路徑中的任何一個:涵蓋該路徑的 `allowWrite` 項目或 `Edit` 允許規則不會解除保護。關閉保護的唯一方式是 [`filesystem.disabled`](#disable-filesystem-isolation),它會關閉所有路徑的檔案系統隔離。若要查看這些路徑在您電腦上解析後的大部分結果,請執行 `/sandbox` 並開啟 **Config** 分頁,其中會將它們列在 **Denied within allowed** 下,並與您自己的 `denyWrite` 項目混在一起。

554 591 

555如果 `git merge` 或 `git checkout` 在這些路徑之一上失敗並出現 `unable to unlink old`,請參閱[疑難排解](#troubleshooting)。592如果 `git merge` 或 `git checkout` 在其中某個路徑上因 `unable to unlink old` 而失敗,請參閱[git 命令因 `unable to unlink old` 而失敗](#a-git-command-fails-with-unable-to-unlink-old)。

556 593 

557<h3 id="network-isolation">594<h3 id="network-isolation">

558 網路隔離595 網路隔離

559</h3>596</h3>

560 597 

561網路存取透過在沙箱外執行的代理伺服器進行控制:598沙箱化命令沒有直接連到網路的路徑:

599 

600* **Linux 和 WSL2**:命令會在一個與您的網路沒有連線的獨立網路命名空間中執行

601* **macOS**:Seatbelt 沙箱框架預設會封鎖除了連到沙箱代理伺服器以外的連線

602 

603Claude Code 會在您的電腦上、沙箱之外執行沙箱代理伺服器,並透過 `HTTP_PROXY`、`HTTPS_PROXY`、`ALL_PROXY` 及相關環境變數將命令導向它。代理伺服器會根據您允許和拒絕的網域檢查每個連線的主機名稱。

604 

605工具可以連到哪裡,取決於它是否使用代理伺服器:

562 606 

563* **網域限制**:Claude Code 預設不預先允許任何網域。命令首次需要新網域時,Claude Code 會提示批准;在[自動模式](/docs/zh-TW/permission-modes#eliminate-prompts-with-auto-mode)中,Claude 改為在命令本身上命名命令需要的主機,根據[每個命令允許的網域](#per-command-allowed-domains-in-auto-mode)。607* **會讀取代理伺服器變數的工具**:`curl`、`npm`、透過 HTTPS 的 `git` 及類似工具,在其主機被允許後即可連線。沒有指定連接埠的 `allowedDomains` 項目會允許該主機上的所有連接埠

564* **批准選擇**:如果您在提示時選擇「是」,Claude Code 會在目前工作階段的其餘時間允許該主機,並且不會再次提示稍後連線到同一主機。如果您選擇「是,以後不要再問」,Claude Code 會將 `WebFetch(domain:...)` 允許規則儲存到您的[本機設定](/docs/zh-TW/permissions#permission-system),以便該主機在未來工作階段中保持允許。608* **會忽略代理伺服器變數的工具**:純 `ssh`、大多數資料庫驅動程式及類似工具無法連線,即使是連到被允許的主機也一樣。請參閱[資料庫用戶端或其他非 HTTP 工具無法連到被允許的主機](#a-database-client-or-other-non-http-tool-fails-to-reach-an-allowed-host)

565* **預先允許的網域**:使用 [`allowedDomains`](/docs/zh-TW/settings-reference#sandbox-network-alloweddomains) 預先允許網域以完全避免提示。Claude Code 也預先允許來自 `WebFetch(domain:...)` 允許規則的網域,如[權限規則](#permission-rules)中所述。609* **任何非 TCP 的流量**:UDP、透過 QUIC 的 HTTP/3,以及 `ping` 等 ICMP 工具都無法離開沙箱

566* **嚴格允許清單**:如果您在使用者、受管理或 CLI `--settings` 設定中將 [`strictAllowlist`](/docs/zh-TW/settings-reference#sandbox-network-strictallowlist) 設定為 `true`,Claude Code 會拒絕沙箱化命令存取允許清單外的任何主機,而不是提示。允許清單與沙箱以其他方式提示的清單相同:`allowedDomains` 加上來自 `WebFetch(domain:...)` 允許規則的網域,或當設定 `allowManagedDomainsOnly` 時僅受管理設定項目。Claude Code 僅對沙箱化命令強制執行此操作;進程內工具(例如 `WebFetch`)仍遵循其[權限規則](#permission-rules)。在儲存庫的 `.claude/settings.json` 或 `.claude/settings.local.json` 中設定它沒有效果。需要 Claude Code v2.1.219 或更新版本。

567* **受管理的鎖定**:如果在受管理設定中設定了 [`allowManagedDomainsOnly`](/docs/zh-TW/settings-reference#sandbox-network-allowmanageddomainsonly),非允許的網域會自動被阻止而不是提示,並且僅受管理設定中的 `allowedDomains` 和 `WebFetch(domain:...)` 允許規則被接受。

568* **公司代理**:當您的網路要求出站流量通過公司代理時,請在設定的 `env` 區塊中設定 `HTTPS_PROXY`、`HTTP_PROXY` 和 `NO_PROXY`,如[代理設定](/docs/zh-TW/network-config#proxy-configuration)所述,以便[背景代理](/docs/zh-TW/network-config#set-network-variables-in-settings-not-the-shell)也能取得它們,或在您啟動 Claude Code 的環境中設定。Claude Code 強制執行網域允許清單,然後透過該上游代理隧道允許的連線。

569* **自訂代理支援**:進階使用者可以在出站流量上實施自訂規則

570* **全面涵蓋**:限制適用於命令產生的所有指令碼、程式和子程序

571 610 

572在 `WebFetch(domain:...)` 規則中,沙箱接受兩種萬用字元形式:前導 `*.`(例如 `*.example.com`)和裸 `*`。裸 `*` 形式需要 Claude Code v2.1.186 或更新版本。任何其他位置的萬用字元(例如 `WebFetch(domain:example.*)`)仍會符合擷取但對沙箱化命令沒有效果。611下列設定和行為控制代理伺服器允許哪些主機:

612 

613* **網域限制**:您允許的網域一開始是空的。[您允許網域以外的主機](#hosts-outside-your-allowed-domains)說明了命令第一次需要新網域時會發生什麼事。

614* **核准選擇**:如果您在出現提示時選擇 Yes,Claude Code 會在目前工作階段的剩餘時間內允許該主機。如果您選擇「Yes, and don't ask again」,Claude Code 會將 `WebFetch(domain:...)` 允許規則儲存到您的[本機設定](/docs/zh-TW/permissions#permission-system),讓該主機在未來的工作階段中仍被允許。當沙箱為[管理員強制](#repository-settings-under-an-admin-required-sandbox)時,Claude Code 會將規則儲存到您的使用者設定,並套用於每個專案。

615* **預先允許的網域**:使用 [`allowedDomains`](/docs/zh-TW/settings-reference#sandbox-network-alloweddomains) 預先允許網域,即可完全避免提示。Claude Code 也會預先允許來自 `WebFetch(domain:...)` 允許規則的網域,如[權限規則](#permission-rules)所述。

616* **嚴格允許清單**:如果您在使用者設定、受管設定或 CLI `--settings` 設定中將 [`strictAllowlist`](/docs/zh-TW/settings-reference#sandbox-network-strictallowlist) 設為 `true`,Claude Code 會拒絕沙箱化命令存取允許清單以外的任何主機,而不是顯示提示。允許清單為 `allowedDomains` 加上來自 `WebFetch(domain:...)` 允許規則的網域;若設定了 `allowManagedDomainsOnly`,則僅為受管設定中的項目。[不需管理員強制沙箱即可套用的鎖定](#locks-that-apply-without-an-admin-required-sandbox)說明了儲存庫的項目。Claude Code 僅對沙箱化命令強制執行此設定;`WebFetch` 等程序內工具仍遵循其[權限規則](#permission-rules)。在儲存庫的 `.claude/settings.json` 或 `.claude/settings.local.json` 中設定此項目沒有作用。需要 Claude Code v2.1.219 或更新版本。

617* **受管鎖定**:如果在受管設定中設定了 [`allowManagedDomainsOnly`](/docs/zh-TW/settings-reference#sandbox-network-allowmanageddomainsonly),未被允許的網域會自動被封鎖,而不是顯示提示,且僅會採用受管設定中的 `allowedDomains` 和 `WebFetch(domain:...)` 允許規則。

618* **企業代理伺服器**:當您的網路要求對外流量必須經過企業代理伺服器時,請依照[代理伺服器設定](/docs/zh-TW/network-config#proxy-configuration)的說明設定 `HTTPS_PROXY`、`HTTP_PROXY` 和 `NO_PROXY`,設定位置可以是您設定中的 `env` 區塊(讓[背景 agent](/docs/zh-TW/network-config#set-network-variables-in-settings-not-the-shell) 也能取得),或是您啟動 Claude Code 的環境。Claude Code 會強制執行網域允許清單,然後將被允許的連線透過該上游代理伺服器建立通道。`http://` 和 `https://` 代理伺服器 URL 皆可使用,如有需要,可在 URL 中加入基本身分驗證。

619 

620在 `WebFetch(domain:...)` 規則中,沙箱支援兩種萬用字元形式:開頭的 `*.`(例如 `*.example.com`)以及單獨的 `*`。單獨的 `*` 形式需要 Claude Code v2.1.186 或更新版本。位於其他位置的萬用字元(例如 `WebFetch(domain:example.*)`)仍會比對擷取請求,但對沙箱化命令沒有作用。

573 621 

574<Note>622<Note>

575 內建代理根據請求的主機名稱強制執行允許清單,預設情況下不會終止或檢查 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)。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)。

576</Note>624</Note>

577 625 

626<h4 id="hosts-outside-your-allowed-domains">

627 您允許網域以外的主機

628</h4>

629 

630當沙箱化命令連線到不在您允許網域中的主機時,命令會留在沙箱中並等待決定。在互動式終端機工作階段中,決定取決於您的權限模式:

631 

632| 權限模式 | 連線會如何處理 |

633| :- | :- |

634| `bypassPermissions` 模式,以及[可使用略過權限](/docs/zh-TW/permission-modes#skip-all-checks-with-bypasspermissions-mode)時的 plan mode | 不經提示即允許 |

635| 手動模式、`acceptEdits` 模式,以及其他情況下的 plan mode | 您會收到提示 |

636| 自動模式 | 除非命令[列出了該主機](#per-command-allowed-domains-in-auto-mode)且分類器核准了該清單,否則拒絕 |

637| `dontAsk` 模式 | 拒絕 |

638 

639開啟 [`strictAllowlist`](/docs/zh-TW/settings-reference#sandbox-network-strictallowlist) 或 [`allowManagedDomainsOnly`](/docs/zh-TW/settings-reference#sandbox-network-allowmanageddomainsonly) 時,內建沙箱代理伺服器在每種權限模式下都會拒絕該連線。在 `bypassPermissions` 模式中,除非開啟了其中之一,否則您允許網域以外的主機都會被允許。[非沙箱重試的逃生口](#the-unsandboxed-retry-escape-hatch)說明了命令在該模式下何時可以離開沙箱。連到 [`deniedDomains`](/docs/zh-TW/settings-reference#sandbox-network-denieddomains) 中主機的連線,在每種權限模式下也都會被拒絕。

640 

641<h4 id="hostnames-that-resolve-to-local-addresses">

642 解析為本機位址的主機名稱

643</h4>

644 

645主機名稱通過允許清單後,沙箱代理伺服器會解析它,並在該名稱僅解析為本機位址時拒絕連線。本機位址包括 `127.0.0.1` 等迴路位址、`169.254.169.254` 雲端中繼資料端點等鏈路本機位址,以及指派給您自己電腦的位址。名稱 `localhost` 和 `*.localhost` 可以解析為迴路位址。

646 

647被允許的內部網路主機名稱若解析為 `10.0.0.0/8` 等私有範圍,則可以連線。若要讓某個名稱解析為會被拒絕的位址,請將該 IP 位址加入 `allowedDomains`,例如 `"127.0.0.1:8080"`。

648 

649此檢查適用於主機名稱。連到 IP 位址的連線由您允許的網域和權限模式決定。對於透過上游企業代理伺服器送出的連線,代理伺服器也會略過此檢查,因為由該代理伺服器解析名稱。

650 

578<h4 id="per-command-allowed-domains-in-auto-mode">651<h4 id="per-command-allowed-domains-in-auto-mode">

579 自動模式中的每個命令允許的網域652 自動模式中的每個命令允許網域

580</h4>653</h4>

581 654 

582在啟用沙箱的[自動模式](/docs/zh-TW/permission-modes#eliminate-prompts-with-auto-mode)中,Claude 在命令本身上命名命令需要的主機,而不是為每個連線觸發網路批准。在沙箱中執行的每個 Bash、PowerShell 或[監視器](/docs/zh-TW/tools-reference#monitor-tool)命令都可以攜帶超出沙箱允許清單的主機清單:網域(例如 `registry.npmjs.org`)、萬用字元(例如 `*.pythonhosted.org`)或 IP 位址,每個都帶有可選的 `:port`。分類器將主機與命令一起審查。需要 Claude Code v2.1.271 或更新版本。655在開啟沙箱機制的[自動模式](/docs/zh-TW/permission-modes#eliminate-prompts-with-auto-mode)中,Claude 會在命令本身上指名該命令所需的主機,而不是為每個連線觸發網路核准。每個在沙箱中執行的 Bash、PowerShell 或 [Monitor](/docs/zh-TW/tools-reference#monitor-tool) 命令,都可以攜帶一份超出沙箱允許清單的主機清單:例如 `registry.npmjs.org` 這樣的網域、`*.pythonhosted.org` 這樣的萬用字元,或 IP 位址,每一項都可以選擇性加上 `:port`。分類器會將這些主機與命令一起審查。需要 Claude Code v2.1.271 或更新版本。

583 656 

584批准的清單僅為該一個命令開啟這些主機,只要它執行。沒有任何內容被新增到您的工作階段允許的主機或您的設定;下一個命令命名其自己的主機。657獲得核准的清單只會在該單一命令執行期間為其開放這些主機。不會將任何內容加入您工作階段的允許主機或您的設定;下一個命令會指名它自己的主機。

585 658 

586攜帶主機的命令會進入分類器,而不是由權限規則或沙箱的[自動允許模式](#sandbox-modes)批准。如果[詢問規則](/docs/zh-TW/permissions#manage-permissions)強制提示命令,您終端中的權限對話會在其旁邊列出主機,在那裡批准涵蓋兩者。659攜帶主機的命令會交由分類器處理,而不是由權限規則或沙箱的[自動允許模式](#sandbox-modes)核准。如果 [ask 規則](/docs/zh-TW/permissions#manage-permissions)強制對該命令顯示提示,您終端機中的權限對話框會在命令旁列出這些主機,在該處核准即同時涵蓋兩者。

587 660 

588每個命令清單僅擴大沙箱預設拒絕的內容。[`deniedDomains`](/docs/zh-TW/settings-reference#sandbox-network-denieddomains) 項目仍會阻止。當 [`strictAllowlist`](/docs/zh-TW/settings-reference#sandbox-network-strictallowlist) 或 [`allowManagedDomainsOnly`](/docs/zh-TW/settings-reference#sandbox-network-allowmanageddomainsonly) 鎖定允許清單時,Claude Code 拒絕每個命令清單。661每個命令的清單只會放寬沙箱預設拒絕的內容。[`deniedDomains`](/docs/zh-TW/settings-reference#sandbox-network-denieddomains) 項目仍會封鎖。當 [`strictAllowlist`](/docs/zh-TW/settings-reference#sandbox-network-strictallowlist) 或 [`allowManagedDomainsOnly`](/docs/zh-TW/settings-reference#sandbox-network-allowmanageddomainsonly) 鎖定允許清單時,Claude Code 會拒絕每個命令的清單。

589 662 

590當每個命令清單適用時,Claude Code 拒絕連線到沒有批准命令列出的主機,沒有提示或分類器檢查。拒絕在命令的結果中命名主機,Claude 使用新增的主機重新執行命令。663當每個命令的清單生效時,Claude Code 會拒絕連到任何未被已核准命令列出的主機,且不會顯示提示或進行分類器檢查。拒絕訊息會在命令結果中指名該主機,Claude 會將該主機加入後重新執行命令。

591 664 

592<h4 id="ipv6-addresses-in-domain-lists">665<h4 id="ipv6-addresses-in-domain-lists">

593 網域清單中的 IPv6 位址666 網域清單中的 IPv6 位址

594</h4>667</h4>

595 668 

596沙箱的網域清單是 `allowedDomains`、`deniedDomains` 和提供它們的 `WebFetch(domain:...)` 規則。若要符合其中任何一個中的 IPv6 位址,請在括號中寫入文字:`"[::1]"` 符合該位址在每個連接埠上,`"[::1]:443"` 僅在連接埠 443 上符合它。將連接埠寫成 1 到 65535 之間的數字,不帶前導零。括號形式需要 Claude Code v2.1.229 或更新版本。在 v2.1.229 之前,當未括號項目最後一個冒號後的文字是連接埠號時,Claude Code 將其讀為一個,所以 `::1:443` 命名位址 `::1` 在連接埠 443 上。669若要在 `allowedDomains`、`deniedDomains` 或 `WebFetch(domain:...)` 規則中比對 IPv6 位址,請將位址寫在方括號中:`"[::1]"` 會比對該位址的所有連接埠,而 `"[::1]:443"` 只會比對其連接埠 443。方括號形式需要 Claude Code v2.1.229 或更新版本。

597 670 

598當您在 IPv6 位址的網路批准提示中選擇「是,以後不要再問」時,Claude Code 會使用括號的位址儲存 `WebFetch(domain:...)` 規則,以便規則在未來工作階段中保持符合位址。671未加方括號的項目(例如 `::1:443`)具有歧義,既可能是一個位址,也可能是一個加上連接埠的位址:

599 672 

600帶有兩個或更多冒號的未括號項目是模稜兩可的:`::1:443` 既是完整的 IPv6 位址,也是位址後跟連接埠。Claude Code 保守地強制執行模稜兩可的拼寫,而不是猜測您的意思是哪個讀法:673* **拒絕清單**:Claude Code 會拒絕該項目可解析出的每一種解讀,因此無論您想要的是哪一種解讀都會被封鎖。對於無法解析出任何解讀的項目,Claude Code 不會封鎖任何內容

674* **允許清單**:Claude Code 絕不會允許超出您所寫的內容。當有歧義的項目可以乾淨地解析為主機加連接埠的解讀時,Claude Code 會將其改寫為該解讀,並且可能會完全捨棄該項目,而不是放寬允許清單

601 675 

602* **拒絕清單**:Claude Code 拒絕項目解析為的每個讀法,所以無論您的意思是哪個讀法都被阻止。對於沒有可解析讀法的項目,Claude Code 不阻止任何內容。676若要找出有歧義的項目,請在您的終端機中執行 `claude doctor`,並尋找 `Sandbox network domain entries have unreliable spellings` 警告。將每個有歧義的項目改寫為方括號形式。

603* **允許清單**:Claude Code 永遠不允許超過您寫的內容。當該讀法乾淨地解析時,它會將模稜兩可的項目重寫為其主機和連接埠讀法,並可能完全刪除項目,而不是擴大允許清單。

604 

605在您的終端中執行 `claude doctor` 以找到受影響的項目:`Sandbox network domain entries have unreliable spellings` 警告命名最多三個並計算其餘的。將每個重寫為括號形式以清除警告。警告也命名拼寫不可靠的項目,原因包括 `@`、路徑或查詢字元,或括號內的萬用字元。

606 677 

607<h3 id="os-level-enforcement">678<h3 id="os-level-enforcement">

608 作業系統層級強制執行679 作業系統層級的強制執行

609</h3>680</h3>

610 681 

611沙箱化的 Bash 工具使用作業系統安全原語:682沙箱化的 Bash 工具使用作業系統的安全原語:

612 683 

613* **macOS**:使用 Seatbelt 進行沙箱強制執行684* **macOS**:使用 Seatbelt 強制執行沙箱

614* **Linux**:使用 [bubblewrap](https://github.com/containers/bubblewrap) 進行隔離685* **Linux**:使用 [bubblewrap](https://github.com/containers/bubblewrap) 進行隔離

615* **WSL2**:使用 bubblewrap,與 Linux 相同686* **WSL2**:使用 bubblewrap,與 Linux 相同

616 687 

617不支援 WSL1,因為 bubblewrap 需要僅在 WSL2 中可用的核心功能。688您也可以單獨執行 [`@anthropic-ai/sandbox-runtime`](https://github.com/anthropics/sandbox-runtime) 套件來包裝 Claude Code 程序。請參閱[沙箱執行環境](/docs/zh-TW/sandbox-environments#sandbox-runtime)。

618 

619這些相同的原語可作為獨立的 [`@anthropic-ai/sandbox-runtime`](https://github.com/anthropic-experimental/sandbox-runtime) 套件使用,[沙箱環境](/docs/zh-TW/sandbox-environments#sandbox-runtime)頁面涵蓋作為包裝整個 Claude Code 程序的單獨方法。

620 689 

621<h2 id="how-sandboxing-relates-to-permissions-and-permission-modes">690<h2 id="how-sandboxing-relates-to-permissions-and-permission-modes">

622 沙箱隔離如何與權限和權限模式相關691 沙箱隔離如何與權限和權限模式相關


671 為您的組織設定沙箱740 為您的組織設定沙箱

672</h2>741</h2>

673 742 

674管理員可以為每個使用者要求沙箱化,防止開發人員擴大策略,並通過公司代理路由沙箱流量。743管理員可以為每個使用者要求沙箱機制,防止開發人員擴大策略,並透過公司代理伺服器路由沙箱流量。

675 744 

676<h3 id="enforce-sandboxing-with-managed-settings">745<h3 id="enforce-sandboxing-with-managed-settings">

677 使用受管設定強制執行沙箱化746 使用受管設定強制執行沙箱化

678</h3>747</h3>

679 748 

680若要為每個開發人員要求沙箱,通過 [managed settings](/docs/zh-TW/managed-settings#delivery-mechanisms) 傳遞 `sandbox` 金鑰,可以是由您的 MDM 管理的檔案,也可以是通過 claude.ai 上的 [server-managed settings](/docs/zh-TW/server-managed-settings)。749若要為每個開發人員要求沙箱,請透過[受管設定](/docs/zh-TW/managed-settings#delivery-mechanisms)傳遞 `sandbox` 鍵,可以是由您的 MDM 管理的檔案,也可以是透過 claude.ai 上的[伺服器受管設定](/docs/zh-TW/server-managed-settings)。

681 750 

682以下受管設定配置啟用沙箱,如果沙箱無法初始化則拒絕啟動 Claude Code,並防止模型在沙箱外重試命令:751以下受管設定組態會啟用沙箱,在平台不受支援或缺少相依性時拒絕啟動 Claude Code,並防止模型在沙箱外重試命令:

683 752 

684```json theme={null}753```json theme={null}

685{754{


691}760}

692```761```

693 762 

694超過 `enabled` 的兩個金鑰控制沙箱無法執行命令時會發生什麼:763除了 `enabled` 之外的兩個鍵控制沙箱無法執行命令時會發生什麼:

695 764 

696* **`failIfUnavailable`**:缺少的依賴項(例如 Linux 上的 bubblewrap)會阻止 Claude Code 啟動,而不是顯示警告並回退到未沙箱化執行765* **`failIfUnavailable`**:缺少相依性(例如 Linux 上的 bubblewrap)會阻止 Claude Code 啟動,而不是回退到未沙箱化執行

697* **`allowUnsandboxedCommands: false`**:Claude Code 忽略 `dangerouslyDisableSandbox` 逃生艙,因此在沙箱下失敗的命令無法在其外重試766* **`allowUnsandboxedCommands: false`**:Claude Code 會忽略 `dangerouslyDisableSandbox` 逃生艙,因此當命令在沙箱下失敗時,Claude 無法在未沙箱化的情況下重試

698 767 

699值得考慮與它們一起的兩個補充。為任何必須在沒有隔離的情況下執行的組織批准的工具新增 `excludedCommands`。為認證目錄(例如 `~/.aws` 和 `~/.ssh`)和祕密環境變數新增 [`sandbox.credentials`](#protect-credentials) 項目,因為預設讀取策略仍允許這些。768請考慮同時加入以下項目:

700 769 

701此配置沙箱化 Claude 執行的命令。開發人員仍然可以在 [`!` shell 模式提示](/docs/zh-TW/interactive-mode#shell-mode-with-prefix)輸入命令並在沙箱外執行它,具有他們在 Claude Code 外任何終端中已有的相同存取權限。請參閱 [The unsandboxed retry escape hatch](#the-unsandboxed-retry-escape-hatch) 以了解輸入的命令在沙箱中執行的工作階段。770* 為任何必須在沒有隔離的情況下執行的組織核准工具新增 `excludedCommands`,因為此設定[會阻止儲存庫的設定將命令移出沙箱](#repository-settings-under-an-admin-required-sandbox)

771* 為憑證目錄(例如 `~/.aws` 和 `~/.ssh`)和祕密環境變數新增 [`sandbox.credentials`](#protect-credentials) 項目,因為預設讀取策略仍允許這些

702 772 

703沙箱不在原生 Windows 上執行,因此如果您的機隊包括 Windows 主機,請將此配置限制在 macOS 和 Linux,或讓這些使用者在 WSL2 或容器內執行 Claude Code。773此設定會將 Claude 執行的命令沙箱化。開發人員仍然可以在 [`!` shell 模式提示字元](/docs/zh-TW/interactive-mode#shell-mode-with-prefix)輸入命令並在沙箱外執行,具有與他們在 Claude Code 外任何終端機中已有的相同存取權限。請參閱[嚴格沙箱模式](#turn-off-the-retry-with-strict-sandbox-mode),了解輸入的命令在沙箱中執行的工作階段。

774 

775沙箱無法在原生 Windows 上執行,因此設定 `failIfUnavailable` 時,Claude Code 會在這些機器上於啟動時結束。如果您的機隊包括 Windows 主機,您可以:

776 

777* **依作業系統傳遞設定**:僅在 macOS 和 Linux 機器上透過您的 MDM 或以[受管設定檔](/docs/zh-TW/managed-settings#delivery-mechanisms)部署。[伺服器受管設定](/docs/zh-TW/server-managed-settings#current-limitations)會套用至組織中的所有使用者

778* **將 Windows 使用者移至受支援的環境**:讓他們在 WSL2 或容器內執行 Claude Code

704 779 

705<h3 id="keep-developers-from-widening-the-policy">780<h3 id="keep-developers-from-widening-the-policy">

706 防止開發人員擴大策略781 防止開發人員擴大策略

707</h3>782</h3>

708 783 

709對於布林金鑰(例如 `enabled` 和 `failIfUnavailable`),Claude Code 使用受管值並忽略開發人員在本地設定的任何內容。對於陣列金鑰(例如 `excludedCommands` 和 `allowRead`),Claude Code 合併來自工作階段載入的每個範圍的項目,因此開發人員可以附加擴大策略的項目。784當受管設定設定了布林鍵(例如 `enabled` 或 `failIfUnavailable`)時,Claude Code 會使用受管值並忽略開發人員在本機設定的任何內容。對於陣列鍵(例如 `allowRead`),Claude Code 會合併來自工作階段載入之範圍的項目,因此除非有鎖定涵蓋該鍵,否則開發人員可以附加擴大策略的項目。

785 

786除非受管設定已設定這些鍵,否則開發人員的使用者設定或 `--settings` 可以開啟下列鍵。儲存庫的 `.claude/settings.json` 也可以,除非沙箱是[管理員要求的](#repository-settings-under-an-admin-required-sandbox)。每一個鍵都會削弱沙箱,因此如果您不希望使用它,請在受管設定中將其設定為 `false`:

787 

788* [`enableWeakerNestedSandbox`](/docs/zh-TW/settings-reference#sandbox-enableweakernestedsandbox)

789* [`enableWeakerNetworkIsolation`](/docs/zh-TW/settings-reference#sandbox-enableweakernetworkisolation)

790* [`network.allowAllUnixSockets`](/docs/zh-TW/settings-reference#sandbox-network-allowallunixsockets)

791* [`network.allowLocalBinding`](/docs/zh-TW/settings-reference#sandbox-network-allowlocalbinding)

792* [`allowAppleEvents`](/docs/zh-TW/settings-reference#sandbox-allowappleevents),儲存庫無法開啟此鍵

710 793 

711在受管設定中將 `allowManagedReadPathsOnly` 設定為 `true`,以便只有來自受管設定的 `allowRead` 項目被尊重。這防止開發人員擴大讀取存取超過組織批准的路徑。若要以相同方式將網路域鎖定到受管值,請設定 [`allowManagedDomainsOnly`](/docs/zh-TW/settings-reference#sandbox-network-allowmanageddomainsonly)。794在受管設定中將 `allowManagedReadPathsOnly` 設定為 `true`,以便只有來自受管設定的 `allowRead` 項目被尊重。這防止開發人員擴大讀取存取超過組織核准的路徑。

712 795 

713當受管設定配置 `sandbox.filesystem` 或列出任何具有 `"mode": "deny"` 的 `sandbox.credentials.files` 項目時,只有受管設定可以設定 [`filesystem.disabled`](#disable-filesystem-isolation),因此開發人員無法關閉管理員部署的檔案系統限制。`mask` 項目是否固定金鑰取決於它如何解析;[Which settings can disable it](#which-settings-can-disable-it) 下的表格涵蓋四種情況。796若要以相同方式將網路網域鎖定到受管值,請設定 [`allowManagedDomainsOnly`](/docs/zh-TW/settings-reference#sandbox-network-allowmanageddomainsonly)。開啟此鎖定後,只有受管設定可以設定[代理伺服器連接埠](#custom-proxy-configuration)。

714 797 

715`excludedCommands` 沒有等效的受管專用鎖定,因此開發人員總是可以附加在沙箱外執行其他命令的項目。保持受管清單狹窄。798當受管設定設定 `sandbox.filesystem` 或列出任何具有 `"mode": "deny"` 的 `sandbox.credentials.files` 項目時,只有受管設定可以設定 [`filesystem.disabled`](#disable-filesystem-isolation),因此開發人員無法關閉管理員部署的檔案系統限制。[有效的](/docs/zh-TW/settings-reference#invalid-credential-entries-in-managed-settings) `mask` 項目不會鎖定該鍵。請參閱[哪些設定可以停用它](#which-settings-can-disable-it)。

799 

800<h4 id="repository-settings-under-an-admin-required-sandbox">

801 管理員要求沙箱時的儲存庫設定

802</h4>

803 

804當下列任一設定生效時,沙箱即為管理員要求的:

805 

806* [`allowUnsandboxedCommands`](/docs/zh-TW/settings-reference#sandbox-allowunsandboxedcommands) 在受管設定中設定為 `false`,或透過 `--settings` 旗標設定為 `false`(除非受管設定將其設定為 `true`)

807* [`allowManagedDomainsOnly`](/docs/zh-TW/settings-reference#sandbox-network-allowmanageddomainsonly) 在受管設定中設定為 `true`

808 

809這些設定不會開啟沙箱,因此也請設定 `enabled`。

810 

811當沙箱為管理員要求時,Claude Code 只會從受管設定、`--settings` 旗標以及每位開發人員的 `~/.claude/settings.json` 採用放寬沙箱的設定。它會忽略儲存庫的 `.claude/settings.json` 和 `.claude/settings.local.json` 中的這些設定:

812 

813| 儲存庫設定 | Claude Code 忽略的內容 |

814| :- | :- |

815| `excludedCommands`、`ignoreViolations`、`network.allowedDomains`、`network.allowUnixSockets`、`network.allowMachLookup`、`network.httpProxyPort`、`network.socksProxyPort` | 每個項目 |

816| `filesystem.allowWrite`、`Edit(...)` 允許規則、`permissions.additionalDirectories` | 每個項目為沙箱化命令提供的寫入存取權限。Claude 的檔案工具仍會遵循 `Edit(...)` 規則和額外目錄 |

817| `WebFetch(domain:...)` 允許規則 | 每條規則新增至沙箱允許清單的主機。WebFetch 工具仍會遵循該規則 |

818| `enableWeakerNestedSandbox`、`enableWeakerNetworkIsolation`、`network.allowAllUnixSockets`、`network.allowLocalBinding` | `true`。`false` 仍會套用 |

819| `enabled`、`failIfUnavailable` | `false`,當開發人員的 `~/.claude/settings.json` 設定為 `true` 時 |

820| `filesystem.allowRead` | 位於受管設定、`--settings` 或使用者設定拒絕讀取的路徑或其下的項目,或可能與其相符的 glob |

821 

822當沙箱為管理員要求時,這些設定仍會套用:

823 

824* **在儲存庫的檔案中**:拒絕項目和 `autoAllowBashIfSandboxed` 值。在受管設定中設定該鍵,以防止儲存庫變更它

825* **在開發人員自己的設定中**:表格中的設定仍會從 `~/.claude/settings.json` 或 `--settings` 套用,除非有僅限受管的鎖定(例如 `allowManagedDomainsOnly`)涵蓋它們。其中大多數(例如 `excludedCommands` 和 `filesystem.allowWrite`)沒有僅限受管的鎖定

826 

827[使用受管設定強制執行沙箱化](#enforce-sandboxing-with-managed-settings)下的設定會使沙箱成為管理員要求的。請將您核准的工具所需的 `excludedCommands`、`allowWrite` 和通訊端項目新增至受管設定,因為儲存庫無法提供它們。

828 

829需要 Claude Code v2.1.285 或更新版本。從 v2.1.282 到 v2.1.284,相同的設定會使 Claude Code 忽略儲存庫的 `excludedCommands` 項目。

830 

831<h4 id="locks-that-apply-without-an-admin-required-sandbox">

832 不需管理員要求沙箱即套用的鎖定

833</h4>

834 

835某些設定會使 Claude Code 忽略直接覆寫某項限制的儲存庫鍵,即使沙箱不是管理員要求的。每個設定只有在您於其所在列指名的檔案中設定時才有此效果,且儲存庫的其他沙箱設定仍會套用。需要 Claude Code v2.1.285 或更新版本。

836 

837| 設定 | 設定位置 | Claude Code 在儲存庫設定中忽略的內容 |

838| :- | :- | :- |

839| `network.deniedDomains` 或 `WebFetch(domain:...)` 拒絕規則 | 受管設定、`--settings` | `httpProxyPort` 和 `socksProxyPort` |

840| `network.strictAllowlist` | 受管設定、`--settings`、使用者設定 | 代理伺服器連接埠、`allowedDomains` 和 `WebFetch(domain:...)` 允許規則 |

841| `filesystem.denyRead`、`Read(...)` 拒絕規則或 `credentials.files` 項目 | 受管設定、`--settings` | 位於受管設定、`--settings` 或使用者設定拒絕讀取的路徑或其下的 `allowRead`、`allowWrite`、`Edit(...)` 允許或 `additionalDirectories` 項目,或可能與其相符的 glob |

842 

843這些鎖定會改變沙箱化命令可以存取的範圍。WebFetch 工具和 Claude 的檔案工具仍會遵循儲存庫的規則和額外目錄。

716 844 

717<h3 id="custom-proxy-configuration">845<h3 id="custom-proxy-configuration">

718 自訂代理配置846 自訂代理伺服器設定

719</h3>847</h3>

720 848 

721對於需要進階網路安全的組織,您可以實施自訂代理以:849若要使用您自己的工具檢查、過濾沙箱流量或將其記錄至日誌,請以您在同一台機器上執行的代理伺服器取代內建的沙箱代理伺服器。

722 850 

723* 解密和檢查 HTTPS 流量851若要透過網路上其他位置的公司代理伺服器路由沙箱流量,請改為設定 `HTTPS_PROXY`,如[網路隔離](#network-isolation)下的**公司代理伺服器**項目所述。如此一來,Claude Code 的允許清單仍會套用。

724* 應用自訂過濾規則

725* 記錄所有網路請求

726* 與現有安全基礎設施整合

727 852 

728若要將 Claude Code 指向您的代理,請在 [sandbox settings](/docs/zh-TW/settings-reference#sandbox-settings) 中設定代理連接埠:853若要將沙箱化命令導向您的代理伺服器,請在[沙箱設定](/docs/zh-TW/settings-reference#sandbox-settings)中設定其監聽的 localhost 連接埠:

729 854 

730```json theme={null}855```json theme={null}

731{856{


738}863}

739```864```

740 865 

866如果您設定了連接埠,同時也設定了 `HTTPS_PROXY` 或 `HTTP_PROXY`,Claude Code 不會將沙箱化命令傳送至您代理伺服器的內容再轉送至這些變數所指名的代理伺服器。若要連線至公司代理伺服器,請設定您自己的代理伺服器轉送至該伺服器。

867 

868哪些檔案可以設定連接埠取決於您的其他沙箱設定:

869 

870* **`allowManagedDomainsOnly` 已開啟**:僅限受管設定

871* **沙箱是[管理員要求的](#repository-settings-under-an-admin-required-sandbox),或套用了[較窄的網路鎖定](#locks-that-apply-without-an-admin-required-sandbox)**:受管設定、`--settings` 和使用者設定

872* **其他情況**:任何設定檔

873 

874Claude Code 會忽略在其他任何位置設定的連接埠。在 v2.1.285 之前,任何設定檔都可以設定連接埠。

875 

876<Warning>

877 一旦任一連接埠生效,您的代理伺服器就負責過濾傳送至它的所有內容。Claude Code 自身的網路控制(例如 `allowedDomains`、`deniedDomains`、`strictAllowlist`、核准提示和[本機位址檢查](#hostnames-that-resolve-to-local-addresses))將不再套用於該流量。沙箱化命令可以連線至任一代理伺服器,因此如果您只設定一個連接埠,Claude Code 在另一個代理伺服器上的網域清單並不會限制該命令透過您的代理伺服器所能存取的內容。

878</Warning>

879 

741<h2 id="troubleshooting">880<h2 id="troubleshooting">

742 故障排除881 疑難排解

743</h2>882</h2>

744 883 

745某些命令在沙箱內失敗,即使它們在沙箱外工作。下面的修復涵蓋最常見的情況。884某些命令在沙箱內會失敗,即使它們在沙箱外可以正常運作。請找出與您的症狀或錯誤訊息相符的標題。

885 

886如果您組織的沙箱是[管理員強制要求的](#repository-settings-under-an-admin-required-sandbox),Claude Code 會忽略專案設定檔中這些修正所提到的設定,因此請將它們儲存在 `~/.claude/settings.json` 中,這樣它們會套用於每個專案。如果某項修正仍然沒有效果,可能是您組織的受管設定設定了該設定鍵。

887 

888新增 `excludedCommands` 模式的修正,會讓該模式所比對的命令脫離沙箱。請參閱[被排除的命令可以做什麼](#run-commands-outside-the-sandbox-with-excludedcommands)。

746 889 

747* **命令因主機不允許錯誤而失敗**:許多 CLI 工具需要到達特定主機。在提示時授予權限會將主機新增到您的允許清單,以便工具在將來在沙箱內執行。890<h3 id="commands-fail-with-a-host-not-allowed-error">

748* **`jest` 掛起或失敗**:`watchman` 與沙箱不相容。改為執行 `jest --no-watchman`。891 命令因主機不允許錯誤而失敗

749* **Go 型 CLI 在 macOS 上 TLS 驗證失敗**:`gh`、`gcloud` 和 `terraform` 等工具在 Seatbelt 下可能無法進行 TLS 驗證。在 [`excludedCommands`](/docs/zh-TW/settings-reference#sandbox-excludedcommands) 中列出這些工具。如果您使用 `httpProxyPort` 與 MITM 代理和自訂 CA,請改為將 [`enableWeakerNetworkIsolation`](/docs/zh-TW/settings-reference#sandbox-enableweakernetworkisolation) 設定為 `true`。892</h3>

750* **`open`、`osascript` 或瀏覽器型驗證流程在 macOS 上因錯誤 `-600` 而失敗**:沙箱預設會阻止 Apple Events。在您的使用者、受管理或 CLI 設定中將 [`allowAppleEvents`](/docs/zh-TW/settings-reference#sandbox-allowappleevents) 設定為 `true` 以允許它們。專案設定會被忽略此金鑰。啟用它會移除程式碼執行隔離,因為沙箱化命令之後可以啟動其他應用程式而不進行沙箱化,無需使用者提示,並向執行中的應用程式傳送 AppleScript 命令,受限於 macOS 自動化同意提示 (TCC)。或者,將命令新增到 [`excludedCommands`](/docs/zh-TW/settings-reference#sandbox-excludedcommands)。893 

751* **`docker` 命令失敗**:`docker` 與沙箱不相容。將 `docker *` 新增到 [`excludedCommands`](/docs/zh-TW/settings-reference#sandbox-excludedcommands)。894許多 CLI 工具需要連線到特定主機。在出現提示時核准該主機,或將其新增到 [`allowedDomains`](/docs/zh-TW/settings-reference#sandbox-network-alloweddomains)。如果您的組織使用 `allowManagedDomainsOnly` 鎖定允許清單,則不會出現提示,因此請要求您的管理員新增該主機。

752* **`pbcopy`、`xclip` 或 `wl-copy` 不會更新剪貼簿**:這些剪貼簿公用程式可能無法從沙箱內到達系統剪貼簿,在這種情況下,傳送給它們的文字不會到達。

753 895 

754 若要將 Claude 的輸出放在您的剪貼簿上,請要求 Claude 在其回應中列印它,然後執行 [`/copy`](/docs/zh-TW/commands)。`/copy` 從 Claude Code 程序而不是從沙箱化命令寫入剪貼簿。896<h3 id="jest-hangs-or-fails">

897 `jest` 掛起或失敗

898</h3>

755 899 

756 當 Claude 將文字傳送給這些工具之一時,將工具新增到 [`excludedCommands`](/docs/zh-TW/settings-reference#sandbox-excludedcommands) 本身不會將該呼叫從沙箱中取出。900`watchman` 與沙箱不相容。改為執行 `jest --no-watchman`。

757* **git 命令因 `unable to unlink old` 而失敗**:`git merge`、`git checkout` 和類似命令在需要取代沙箱拒絕寫入的檔案時以這種方式失敗,無論該檔案是在 [受保護路徑](#protected-paths) 下(例如 `.claude/skills`)、在您的 `denyWrite` 項目之一下,還是完全在沙箱允許命令寫入的目錄之外。在 Linux 和 WSL2 上,錯誤以 `Read-only file system` 結尾。

758 901 

759 失敗後,Claude 可能會 [提供在沙箱外重新執行命令](#the-unsandboxed-retry-escape-hatch);批准該重試,或在另一個終端中自己執行 git 命令。如果您已將 `allowUnsandboxedCommands` 設定為 `false`,Claude 無法提供重試,因此請自己執行命令。如果相同的 git 命令經常失敗,請將其新增到 [`excludedCommands`](/docs/zh-TW/settings-reference#sandbox-excludedcommands)。902<h3 id="go-based-clis-fail-tls-verification-on-macos">

760* **Bubblewrap 在容器內啟動失敗**:在無特權容器中,bubblewrap 無法掛載新的 `/proc` 檔案系統,因此沙箱化命令失敗,出現 `bwrap` 錯誤,例如 `Can't mount proc on /newroot/proc: Operation not permitted`。將 [`enableWeakerNestedSandbox`](/docs/zh-TW/settings-reference#sandbox-enableweakernestedsandbox) 設定為 `true`,以便內部沙箱綁定掛載容器的現有 `/proc`。僅在外部容器已提供您需要的隔離邊界時使用此設定,因為它向沙箱化命令公開程序資訊,新的 `/proc` 掛載會隱藏。903 Go 型 CLI 在 macOS 上 TLS 驗證失敗

761* **0 位元組唯讀檔案出現在 `.claude` 設定路徑,且「是,不要再問」不會儲存**:在 Linux 和 WSL2 上,沙箱在沙箱化命令執行時透過在該處建立 0 位元組唯讀預留位置來保持對尚不存在的檔案的寫入拒絕。沙箱在之後移除預留位置。如果在該清理執行之前會話被終止,例如透過 SIGKILL,預留位置會保留下來。稍後的會話在每次啟動時再次將它們綁定為唯讀,因此設定寫入(例如儲存權限選擇)在其中一個位置失敗。904</h3>

905 

906`gh`、`gcloud` 和 `terraform` 等工具在 [Seatbelt](#os-level-enforcement) 下可能無法通過 TLS 驗證。若要在沙箱外執行這些工具,請為每個工具新增一個模式(例如 `gh *`)到 [`excludedCommands`](#run-commands-outside-the-sandbox-with-excludedcommands)。該工具隨後會以您的完整存取權限及其已儲存的憑證執行。如果您將 `httpProxyPort` 與 MITM 代理伺服器和自訂 CA 搭配使用,請改為將 [`enableWeakerNetworkIsolation`](/docs/zh-TW/settings-reference#sandbox-enableweakernetworkisolation) 設定為 `true`。

907 

908<h3 id="open-osascript-or-browser-based-auth-flows-fail-with-error-600-on-macos">

909 `open`、`osascript` 或瀏覽器型驗證流程在 macOS 上因錯誤 `-600` 而失敗

910</h3>

911 

912沙箱預設會阻止 Apple Events。在您的使用者、受管理或 CLI 設定中將 [`allowAppleEvents`](/docs/zh-TW/settings-reference#sandbox-allowappleevents) 設定為 `true` 以允許它們。Claude Code 會忽略專案設定中的此設定鍵。

913 

914啟用 `allowAppleEvents` 會移除程式碼執行隔離,因為沙箱化命令之後可以在未經沙箱化且無使用者提示的情況下啟動其他應用程式,並向執行中的應用程式傳送 AppleScript 命令,受限於 macOS 自動化同意提示 (TCC)。或者,將 `open *` 之類的模式新增到 [`excludedCommands`](#run-commands-outside-the-sandbox-with-excludedcommands)。這樣每次 `open` 呼叫都會經過權限流程,而 `open` 可以啟動任何檔案或應用程式,包括 Claude 所寫的檔案或應用程式。

915 

916<h3 id="docker-commands-fail">

917 `docker` 命令失敗

918</h3>

762 919 

763 執行 `claude doctor` 以列出剩餘的預留位置檔案。[`Stale sandbox mask files left by a killed session`](/docs/zh-TW/errors#stale-sandbox-mask-files-left-by-a-killed-session) 警告命名最多三個,並計算其餘的。在該專案中沒有其他 Claude Code 會話執行時,使用 `rm` 刪除每個檔案。在 v2.1.257 之前,Claude Code 留下相同的預留位置而不標記它們。920`docker` 與沙箱不相容。使用 `excludedCommands` 模式(例如 `docker compose *`)將您需要的 `docker` 命令移出沙箱。[使用 `excludedCommands` 在沙箱外執行命令](#run-commands-outside-the-sandbox-with-excludedcommands)說明被排除的 `docker` 命令可以存取什麼。範圍較窄的模式會讓較少的命令脫離沙箱。

764* **`--dangerously-skip-permissions` 以 root 身份失敗**:在 Linux 和 macOS 上以 root 身份或透過 sudo 執行時,此旗標被阻止,因為 root 存取加上沒有權限提示可以修改系統上的任何檔案或服務。檢查在識別的沙箱內自動跳過。若要在容器中自主執行,請使用 [dev container](/docs/zh-TW/devcontainer) 配置,它以非 root 使用者身份執行 Claude Code。921 

922<h3 id="pbcopy-xclip-or-wl-copy-doesn’t-update-the-clipboard">

923 `pbcopy`、`xclip` 或 `wl-copy` 不會更新剪貼簿

924</h3>

925 

926`pbcopy`、`xclip` 和 `wl-copy` 剪貼簿公用程式可能無法從沙箱內到達系統剪貼簿,在這種情況下,傳送給它們的文字不會到達。

927 

928若要將 Claude 的輸出放在您的剪貼簿上,請要求 Claude 在其回應中列印它,然後執行 [`/copy`](/docs/zh-TW/commands)。`/copy` 從 Claude Code 程序而不是從沙箱化命令寫入剪貼簿。

929 

930當 Claude 將文字傳送給這些工具之一時,將工具新增到 [`excludedCommands`](/docs/zh-TW/settings-reference#sandbox-excludedcommands) 本身不會將該呼叫從沙箱中取出。

931 

932<h3 id="a-git-command-fails-with-unable-to-unlink-old">

933 git 命令因 `unable to unlink old` 而失敗

934</h3>

935 

936`git merge`、`git checkout` 和類似命令在需要取代沙箱拒絕寫入的檔案時,會因 `unable to unlink old` 而失敗。在 Linux 和 WSL2 上,錯誤以 `Read-only file system` 結尾。該檔案可能位於以下其中一處:

937 

938* 在[受保護路徑](#protected-paths)下,例如 `.claude/skills`

939* 在您的 `denyWrite` 項目之一下

940* 完全在沙箱允許命令寫入的目錄之外

941 

942失敗後,Claude 可能會[提供在沙箱外重新執行命令](#the-unsandboxed-retry-escape-hatch)。核准該重試,或在另一個終端機中自己執行 git 命令。如果您已將 `allowUnsandboxedCommands` 設定為 `false`,Claude 無法提供重試,因此請自己執行命令。

943 

944<h3 id="bubblewrap-fails-to-start-inside-a-container">

945 Bubblewrap 在容器內啟動失敗

946</h3>

947 

948在無特權容器中,[bubblewrap](#os-level-enforcement) 無法掛載新的 `/proc` 檔案系統,因此沙箱化命令失敗,出現 `bwrap` 錯誤,例如 `Can't mount proc on /newroot/proc: Operation not permitted`。將 [`enableWeakerNestedSandbox`](/docs/zh-TW/settings-reference#sandbox-enableweakernestedsandbox) 設定為 `true`,以便沙箱改為綁定掛載容器的現有 `/proc`。僅在外部容器已提供您需要的隔離邊界時使用此設定,因為此設定會向沙箱化命令公開新的 `/proc` 掛載原本會隱藏的程序資訊。

949 

950<h3 id="0-byte-read-only-files-appear-at-claude-settings-paths-and-yes-and-don’t-ask-again-doesn’t-save">

951 0 位元組唯讀檔案出現在 `.claude` 設定路徑,且「是,不要再問」不會儲存

952</h3>

953 

954在 Linux 和 WSL2 上,沙箱在沙箱化命令執行時透過在該處建立 0 位元組唯讀預留位置來保持對尚不存在的檔案的寫入拒絕。沙箱在之後移除預留位置。如果在該清理執行之前工作階段被終止,例如透過 SIGKILL,預留位置會保留下來。稍後的工作階段在每次啟動時再次將這些預留位置綁定為唯讀,因此設定寫入(例如儲存權限選擇)會在預留位置所在之處失敗。

955 

956在您的終端機中執行 `claude doctor` 以列出剩餘的預留位置檔案。[`Stale sandbox mask files left by a killed session`](/docs/zh-TW/errors#stale-sandbox-mask-files-left-by-a-killed-session) 警告會列出其中一部分,並計算其餘的數量。在該專案中沒有其他 Claude Code 工作階段執行時,使用 `rm` 刪除每個檔案。在 v2.1.257 之前,Claude Code 會留下相同的預留位置而不標記它們。

957 

958<h3 id="git-over-ssh-fails-with-the-sandbox-on">

959 啟用沙箱時透過 SSH 執行 `git` 失敗

960</h3>

961 

962在 macOS 上,針對 SSH 遠端執行的 `git fetch`、`git pull` 和 `git push` 即使在主機已被允許的情況下,也會在沙箱內失敗。在 Linux 和 WSL2 上,只要主機被允許,它們就能正常運作。Claude Code 會透過[沙箱代理伺服器](#network-isolation)為 git 的 SSH 連線建立通道,而 macOS 的通道無法向該代理伺服器進行身分驗證。

963 

964在 Linux 和 WSL2 上,如果連線仍然失敗,請檢查以下項目:

965 

966* **主機在連接埠 22 上被允許**:不含連接埠的 `allowedDomains` 項目(例如 `"git.example.com"`)即涵蓋此情況

967* **您的企業代理伺服器允許連接埠 22**:如果您的網路需要上游代理伺服器,通道也會經過它

968* **金鑰可以作為檔案讀取**:沙箱可能會封鎖 `ssh-agent` socket,而針對 `~/.ssh` 的 `denyRead` 或 `credentials` 項目會隱藏您的金鑰檔案

969 

970在 macOS 上,請將遠端切換為 HTTPS,這需要 HTTPS 憑證,例如個人存取 token:

971 

972```bash theme={null}

973git remote set-url origin https://git.example.com/example-org/example-repo.git

974```

975 

976如果您必須保留 SSH 遠端,請使用 [`excludedCommands`](#run-commands-outside-the-sandbox-with-excludedcommands) 將 git 的網路命令移出沙箱:

977 

978```json theme={null}

979{

980 "sandbox": {

981 "excludedCommands": ["git fetch *", "git pull *", "git push *"]

982 }

983}

984```

985 

986這些項目會比對 `git push origin main`。加上 `cd`、使用 `git -C` 或包含命令替換的呼叫會保持在沙箱中。被排除的 git 命令可以連線到任何主機,而不僅限於 `allowedDomains` 中的主機。

987 

988透過 SSH 執行的一般 `ssh`、`scp` 和 `rsync` 失敗的原因,與[資料庫用戶端項目](#a-database-client-or-other-non-http-tool-fails-to-reach-an-allowed-host)所述的原因相同。

989 

990<h3 id="a-database-client-or-other-non-http-tool-fails-to-reach-an-allowed-host">

991 資料庫用戶端或其他非 HTTP 工具無法連線到允許的主機

992</h3>

993 

994忽略代理伺服器環境變數的工具無法從沙箱內進行連線,即使目標是 `allowedDomains` 中的主機也一樣。沙箱化命令[沒有直接通往網路的路徑](#network-isolation),因此自行開啟連線的工具會失敗。大多數資料庫驅動程式、一般的 `ssh`,以及使用 UDP 的工具都是如此。

995 

996此失敗看起來像是網路或名稱解析錯誤:

997 

998* **macOS**:`Operation not permitted`,或名稱解析錯誤,例如 `Could not resolve host`

999* **Linux 和 WSL2**:`Network is unreachable`,或名稱解析錯誤,例如 `Temporary failure in name resolution`

1000 

1001使用代理伺服器的工具在其主機未被允許時,會以不同的方式失敗。您會收到網路提示,或者工具會收到來自代理伺服器的 `403` 回應。

1002 

1003若要讓工具能夠連線,請使用 [`excludedCommands`](#run-commands-outside-the-sandbox-with-excludedcommands) 在沙箱外執行需要它的命令。此範例排除了一個指令碼,並新增一條 [ask 規則](/docs/zh-TW/permissions),讓您核准每次執行:

1004 

1005```json theme={null}

1006{

1007 "sandbox": {

1008 "excludedCommands": ["python scripts/load_orders.py *"]

1009 },

1010 "permissions": {

1011 "ask": ["Bash(python scripts/load_orders.py *)"]

1012 }

1013}

1014```

1015 

1016該指令碼會以您的完整存取權限執行,而 Claude 可以編輯位於您工作目錄內的指令碼,因此請在提示出現時檢查它。

1017 

1018<h3 id="a-command-fails-to-reach-a-server-on-localhost">

1019 命令無法連線到 localhost 上的伺服器

1020</h3>

1021 

1022預設情況下,沙箱化命令無法直接連線到在您機器上、於沙箱外執行的伺服器,例如開發伺服器或容器中的資料庫。您可以變更的內容取決於您的平台:

1023 

1024* **macOS**:將 [`network.allowLocalBinding`](/docs/zh-TW/settings-reference#sandbox-network-allowlocalbinding) 設定為 `true`。沙箱化命令之後就可以在網路連接埠上監聽,並連線到 localhost 上的任何連接埠,包括在該處監聽的所有其他服務。不需要身分驗證的 localhost 服務(例如偵錯工具)就可以在沙箱外代替該命令執行動作,而在非 loopback 位址上監聽的命令會接受來自其他機器的連線

1025* **Linux 和 WSL2**:沙箱化命令的 `localhost` 為該命令所私有。該命令可以在連接埠上監聽,並連線到它自己啟動的伺服器。直接連線到 `localhost` 或 `127.0.0.1` 無法到達主機上的伺服器,且 `allowLocalBinding` 沒有效果。請使用 [`excludedCommands`](#run-commands-outside-the-sandbox-with-excludedcommands) 在沙箱外執行需要主機伺服器的命令,在那裡它不受任何檔案系統或網路限制。關於經過沙箱代理伺服器的連線,請參閱[解析為本機位址的主機名稱](#hostnames-that-resolve-to-local-addresses)

1026 

1027此範例為 macOS 開啟該設定:

1028 

1029```json theme={null}

1030{

1031 "sandbox": {

1032 "network": {

1033 "allowLocalBinding": true

1034 }

1035 }

1036}

1037```

1038 

1039針對 `localhost` 的 `allowedDomains` 項目適用於經過代理伺服器的連線,因此不會改變直接連線。Claude Code 會為沙箱化命令設定 `NO_PROXY`,讓它們直接連線到 `localhost`,而不是經過代理伺服器。該項目也會將您機器 localhost 上的每個連接埠公開給確實使用代理伺服器的命令。關於指向 `127.0.0.1` 的開發用主機名稱,請參閱[允許的主機名稱因 `resolved to a loopback address` 而被拒絕](#an-allowed-hostname-is-refused-with-resolved-to-a-loopback-address)。

1040 

1041<h3 id="an-allowed-hostname-is-refused-with-resolved-to-a-loopback-address">

1042 允許的主機名稱因 `resolved to a loopback address` 而被拒絕

1043</h3>

1044 

1045沙箱代理伺服器會拒絕[解析為本機位址](#hostnames-that-resolve-to-local-addresses)的允許主機名稱,這會影響指向 `127.0.0.1` 的開發用名稱,例如 `myapp.test`。命令會看到一個 `403` 回應,其內文會指出位址的類型,例如 `Connection to myapp.test blocked: resolved to a loopback address`。

1046 

1047請在 `allowedDomains` 中將該名稱所解析到的 IP 位址與主機名稱一併新增,並各自附上您伺服器所監聽的連接埠:

1048 

1049```json theme={null}

1050{

1051 "sandbox": {

1052 "network": {

1053 "allowedDomains": ["myapp.test:3000", "127.0.0.1:3000"]

1054 }

1055 }

1056}

1057```

1058 

1059不含連接埠的 IP 位址項目會讓沙箱化命令能夠連線到在該位址上監聽的每個服務。

1060 

1061在 v2.1.284 之前,代理伺服器會連線到允許的主機名稱所解析到的任何位址。

1062 

1063<h3 id="/sandbox-fails-with-sandbox-settings-are-overridden-by-a-higher-priority-configuration">

1064 `/sandbox` 因 `Sandbox settings are overridden by a higher-priority configuration` 而失敗

1065</h3>

1066 

1067當較高的[設定層級](/docs/zh-TW/settings#settings-precedence)設定了 `sandbox.enabled`、`sandbox.autoAllowBashIfSandboxed` 或 `sandbox.allowUnsandboxedCommands` 時,`/sandbox` 會印出 `Error: Sandbox settings are overridden by a higher-priority configuration and cannot be changed locally.`,而不會開啟其面板。該面板會將您的選擇儲存到 `.claude/settings.local.json`,而儲存在那裡的值無法覆寫那些層級。

1068 

1069受管設定和 `--settings` 的優先順序高於本機設定。若要查看此工作階段載入了哪些設定,請執行 `/status` 並閱讀 `Setting sources` 這一行:

1070 

1071* **`Command line arguments`**:如果您使用 [`--settings`](/docs/zh-TW/settings#change-a-setting-for-one-session) 啟動 Claude Code,請檢查您傳入的檔案或 JSON 是否設定了上述其中一個設定鍵。如果是,請在那裡變更該值,或在不使用這些設定鍵的情況下重新啟動 Claude Code。

1072* **`Enterprise managed settings`**:已載入您組織的受管設定。如果它們設定了上述其中一個設定鍵,您就無法從 `/sandbox` 或從您所控制的任何設定檔變更該設定鍵,因此請詢問您的管理員。

765 1073 

766<h2 id="limitations">1074<h2 id="limitations">

767 限制1075 限制

768</h2>1076</h2>

769 1077 

770沙箱化減少風險,但不是完整的隔離邊界。在依賴它作為硬安全控制之前,請檢查下面的限制。1078沙箱機制可降低風險,但不是完整的隔離邊界。在依賴它作為硬安全控制之前,請檢查下面的限制。

771 1079 

772<h3 id="security-limitations">1080<h3 id="security-limitations">

773 安全限制1081 安全限制

774</h3>1082</h3>

775 1083 

776* **網路過濾**:沙箱限制流程可以連接的域名。預設情況下,內建代理不終止或檢查出站流量上的 TLS,因此加密連接的內容不被檢查。實驗性的 [`network.tlsTerminate`](/docs/zh-TW/settings-reference#sandbox-network-tlsterminate) 設定在代理處終止 TLS 以進行 [`mask` 認證替換](#mask-credentials),但不添加內容過濾。您負責確保只有受信任的域名在您的策略中被允許。1084* **網路過濾**:沙箱限制程序可以連接的域名。預設情況下,內建代理伺服器不終止或檢查出站流量上的 TLS,因此加密連接的內容不被檢查。實驗性的 [`network.tlsTerminate`](/docs/zh-TW/settings-reference#sandbox-network-tlsterminate) 設定在代理伺服器處終止 TLS 以進行 [`mask` 憑證替換](#mask-credentials),但不添加內容過濾。您負責確保只有受信任的域名在您的策略中被允許。

777 1085 

778<Warning>1086<Warning>

779 允許廣泛域名(例如 `github.com`)可能會為資料洩露建立路徑。因為代理根據用戶端提供的主機名進行允許決定而不檢查 TLS,在沙箱內執行的程式碼可能可以使用 [domain fronting](https://en.wikipedia.org/wiki/Domain_fronting) 或類似技術到達允許清單外的主機。如果您的威脅模型需要更強的保證,請配置 [custom proxy](#custom-proxy-configuration),它終止 TLS 並檢查流量,並在沙箱內安裝其 CA 憑證。更強的 TLS 感知網路隔離是一個活躍的開發領域。1087 允許廣泛域名(例如 `github.com`)可能會為資料洩露建立路徑。因為代理伺服器根據用戶端提供的主機名進行允許決定而不檢查 TLS,在沙箱內執行的程式碼可能可以使用 [domain fronting](https://en.wikipedia.org/wiki/Domain_fronting) 或類似技術到達允許清單外的主機。如果您的威脅模型需要更強的保證,請設定 [custom proxy](#custom-proxy-configuration),它終止 TLS 並檢查流量,並在沙箱內安裝其 CA 憑證。更強的 TLS 感知網路隔離是一個活躍的開發領域。

780</Warning>1088</Warning>

781 1089 

782* **通過 Unix 套接字的特權提升**:`allowUnixSockets` 配置可能會無意中授予對系統服務的存取,這可能導致沙箱繞過。例如,允許存取 `/var/run/docker.sock` 有效地通過 Docker 套接字授予對主機系統的存取。仔細考慮您通過沙箱允許的任何 Unix 套接字。1090* **通過 Unix 套接字的特權提升**:`allowUnixSockets` 設定可能會無意中授予對系統服務的存取,這可能導致沙箱繞過。例如,允許存取 `/var/run/docker.sock` 有效地通過 Docker 套接字授予對主機系統的存取。仔細考慮您通過沙箱允許的任何 Unix 套接字。

783* **檔案系統權限提升**:過於寬泛的檔案系統寫入權限可能導致特權提升攻擊。允許寫入包含 `$PATH` 中可執行檔案的目錄、系統配置目錄或使用者 shell 配置檔案(例如 `.bashrc` 或 `.zshrc`)可能導致當其他使用者或系統流程存取這些檔案時在不同安全上下文中執行程式碼。1091* **檔案系統權限提升**:過於寬泛的檔案系統寫入權限可能導致特權提升攻擊。允許寫入包含 `$PATH` 中可執行檔案的目錄、系統設定目錄或使用者 shell 設定檔(例如 `.bashrc` 或 `.zshrc`)可能導致當其他使用者或系統程序存取這些檔案時在不同安全上下文中執行程式碼。

784* **Linux 沙箱強度**:Linux 實現提供強大的檔案系統和網路隔離,但包含一個 `enableWeakerNestedSandbox` 模式,使其能夠在 Docker 環境中工作而無需特權命名空間,或在 Linux 主機上禁用無特權使用者命名空間的情況下。此選項大大削弱了安全性,應僅在其他隔離被強制執行時使用。1092* **Linux 沙箱強度**:Linux 實現提供強大的檔案系統和網路隔離,但包含一個 `enableWeakerNestedSandbox` 模式,使其能夠在 Docker 環境中工作而無需特權命名空間。此選項大大削弱了安全性,應僅在其他隔離被強制執行時使用。

785* **macOS 上的 Apple Events**:macOS 沙箱預設阻止 Apple Events。`allowAppleEvents` 設定解除此限制,使 `open` 和 `osascript` 等工具能夠運作,但它移除了程式碼執行隔離:沙箱化命令可以啟動其他應用程式而不進行沙箱化,無需使用者提示,並可以向執行中的應用程式傳送 AppleScript 命令,受限於每個應用程式的 macOS 自動化同意提示 (TCC)。它僅從使用者、受管或 CLI 設定中被接受。專案設定無法啟用它。1093* **macOS 上的 Apple Events**:macOS 沙箱預設阻止 Apple Events。`allowAppleEvents` 設定解除此限制,使 `open` 和 `osascript` 等工具能夠運作,但它移除了程式碼執行隔離:沙箱化命令可以啟動其他應用程式而不進行沙箱化,無需使用者提示,並可以向執行中的應用程式傳送 AppleScript 命令,受限於每個應用程式的 macOS 自動化同意提示 (TCC)。它僅從使用者、受管或 CLI 設定中被接受。專案設定無法啟用它。

786 1094 

787<h3 id="platform-and-tool-compatibility">

788 平台和工具相容性

789</h3>

790 

791* **平台支援**:支援 macOS、Linux 和 WSL2。不支援 WSL1 和原生 Windows。

792* **效能開銷**:最小,但某些檔案系統操作可能稍慢。

793* **工具相容性**:某些需要特定系統存取模式的工具可能需要配置調整,或可能需要在沙箱外執行。

794 

795<h3 id="scope">1095<h3 id="scope">

796 範圍1096 範圍

797</h3>1097</h3>

798 1098 

799沙箱隔離 Bash 子流程。其他工具在不同的邊界下運作:1099沙箱隔離 shell 命令及其子程序。[在沙箱外執行的內容](#what-runs-outside-the-sandbox)列出了它未涵蓋的工具和輔助程序。電腦使用和 subagents 與沙箱的關係如下:

800 1100 

801* **內建檔案工具**:Read、Edit 和 Write 直接使用權限系統,而不是通過沙箱執行。請參閱 [permissions](/docs/zh-TW/permissions)。

802* **電腦使用**:當 Claude 打開應用程式並控制您的螢幕時,它在您的實際桌面上執行,而不是在隔離環境中。每個應用程式的權限提示控制每個應用程式。請參閱 [CLI 中的電腦使用](/docs/zh-TW/computer-use) 或 [Desktop 中的電腦使用](/docs/zh-TW/desktop#let-claude-use-your-computer)。1101* **電腦使用**:當 Claude 打開應用程式並控制您的螢幕時,它在您的實際桌面上執行,而不是在隔離環境中。每個應用程式的權限提示控制每個應用程式。請參閱 [CLI 中的電腦使用](/docs/zh-TW/computer-use) 或 [Desktop 中的電腦使用](/docs/zh-TW/desktop#let-claude-use-your-computer)。

803* **環境變數**:沙箱化 Bash 命令預設繼承父流程環境,包括在那裡設定的任何認證。使用 [`sandbox.credentials`](#protect-credentials) 為沙箱化命令取消設定或遮罩特定變數,或設定 [`CLAUDE_CODE_SUBPROCESS_ENV_SCRUB`](/docs/zh-TW/env-vars) 以從所有子流程中去除認證。1102* **Subagents**:[subagents](/docs/zh-TW/sub-agents) 在與父工作階段相同的程序中執行,並使用相同的沙箱設定。當在父工作階段中啟用沙箱機制時,subagent 內的 Bash 命令會被沙箱化。

804* **子代理**:[subagents](/docs/zh-TW/sub-agents) 在與父工作階段相同的流程中執行,並使用相同的沙箱配置。當在父工作階段中啟用沙箱化時,子代理內的 Bash 命令被沙箱化。1103* **Mods**:[mod](/docs/zh-TW/plugins/mods/overview) 是在 Claude Code 內執行其自有程式碼的外掛,而 mod 啟動的程序會在沙箱外執行。請參閱 [mod 可以存取的範圍](/docs/zh-TW/plugins/mods/overview#what-a-mod-can-reach)。

805 1104 

806<Warning>1105<Warning>

807 有效的沙箱化需要同時進行檔案系統和網路隔離。沒有網路隔離,受損的代理可能會洩露敏感檔案,如 SSH 金鑰。沒有檔案系統隔離,無論是來自寬鬆的策略還是來自 [disabling the filesystem layer](#disable-filesystem-isolation),受損的代理可能會後門系統資源以獲得網路存取。當您擴大預設值時,檢查 `allowWrite` 路徑、廣泛的 `allowedDomains` 項目或 `excludedCommands` 例外是否不會撤銷另一側的限制。1106 有效的沙箱機制需要同時進行檔案系統和網路隔離。沒有網路隔離,受損的 agent 可能會洩露敏感檔案,如 SSH 金鑰。沒有檔案系統隔離,無論是來自寬鬆的策略還是來自 [disabling the filesystem layer](#disable-filesystem-isolation),受損的 agent 可能會後門系統資源以獲得網路存取。當您擴大預設值時,檢查 `allowWrite` 路徑、廣泛的 `allowedDomains` 項目或 `excludedCommands` 例外是否不會撤銷另一側的限制。

808</Warning>1107</Warning>

809 1108 

810<h2 id="see-also">1109<h2 id="see-also">

security.md +16 −20

Details

20 基於權限的架構20 基於權限的架構

21</h3>21</h3>

22 22 

23在手動模式中,Claude Code 以唯讀權限開始。當 Claude Code 需要編輯檔案、執行測試或執行命令時,它會先詢問您,您可以選擇批准該操作一次或從此允許該操作。23工作階段的權限模式決定了 Claude 可以在不先詢問您的情況下採取哪些操作。自動模式是互動式終端機和 VS Code 工作階段的內建起始權限模式。[工作階段以哪種模式開始](/docs/zh-TW/permission-modes#which-mode-a-session-starts-in)涵蓋了較早的版本、其他使用介面,以及會變更起始權限模式的設定。

24 24 

25在手動模式中,Claude Code 也會在執行可以修改您系統的 Bash 命令前詢問。它執行內建的一組[唯讀命令](/docs/zh-TW/permissions#read-only-commands)(例如 `ls`、`cat` 和 `git status`)無需詢問。您和您的組織可以直接配置這些權限。25* **自動模式**:一個單獨的分類器模型會代替您審查操作,並阻止它判斷為不安全的操作。[分類器如何評估操作](/docs/zh-TW/permission-modes#how-the-classifier-evaluates-actions)列出了 Claude Code 直接核准的操作、它發送給分類器的操作,以及 Claude Code 仍然詢問您的操作。您明確設定的 ask 和 deny 規則仍然適用,您的組織可以[關閉自動模式](/docs/zh-TW/permission-modes#eliminate-prompts-with-auto-mode)

26* **手動模式**:Claude Code 以唯讀權限開始。當它需要編輯檔案、執行測試或執行命令時,它會先詢問您,您可以選擇核准該操作一次或從此允許該操作。它執行內建的一組[唯讀命令](/docs/zh-TW/permissions#read-only-commands)(例如 `ls`、`cat` 和 `git status`)無需詢問

26 27 

27在[自動模式](/docs/zh-TW/permission-modes#eliminate-prompts-with-auto-mode)中,一個單獨的分類器模型會審查操作而不是您,並阻止它判斷為不安全的操作。[分類器如何評估操作](/docs/zh-TW/permission-modes#how-the-classifier-evaluates-actions)列出了 Claude Code 直接批准的操作、它發送給分類器的操作,以及 Claude Code 仍然詢問您的操作。您明確設定的 ask 和 deny 規則仍然適用,您的組織可以[關閉自動模式](/docs/zh-TW/permission-modes#eliminate-prompts-with-auto-mode)。28您和您的組織可以直接設定這些權限。有關詳細的權限設定,請參閱 [Permissions](/docs/zh-TW/permissions)。

28 

29工作階段開始時使用的權限模式取決於您的計畫、您啟動它的介面,以及您的設定和您的組織的設定;請參閱[權限模式](/docs/zh-TW/permission-modes#which-mode-a-session-starts-in)。

30 

31有關詳細的權限配置,請參閱 [Permissions](/docs/zh-TW/permissions)。

32 29 

33<h3 id="built-in-protections">30<h3 id="built-in-protections">

34 內建保護31 內建保護


37為了降低代理系統中的風險:34為了降低代理系統中的風險:

38 35 

39* **沙箱化 bash 工具**:[Sandbox](/docs/zh-TW/sandboxing) bash 命令具有檔案系統和網路隔離,減少權限提示同時保持安全性。使用 `/sandbox` 進行配置以定義 Claude Code 可以自主工作的邊界36* **沙箱化 bash 工具**:[Sandbox](/docs/zh-TW/sandboxing) bash 命令具有檔案系統和網路隔離,減少權限提示同時保持安全性。使用 `/sandbox` 進行配置以定義 Claude Code 可以自主工作的邊界

40* **工作目錄邊界**:在手動模式中,Claude Code 只能寫入啟動它的資料夾及其子資料夾,無法在沒有明確權限的情況下修改父目錄中的檔案。在手動模式中,Claude Code 也會在使用 Read、Grep 和 Glob 工具讀取此邊界外的路徑前詢問您。使用[額外目錄](/docs/zh-TW/permissions#working-directories)擴展邊界以跳過提示,或使用 [sandbox `denyRead` 規則](/docs/zh-TW/sandboxing#filesystem-isolation)限制唯讀 Bash 命令可用的更廣泛讀取存取(這些規則僅在啟用沙箱化時適用)37* **工作目錄邊界**:在手動模式中,Claude Code 的檔案工具在讀取或寫入啟動它的資料夾及其子資料夾以外的位置前,會先詢問您。此邊界是一種權限提示,因此您核准的 Bash 命令仍可寫入您的使用者帳戶可寫入的任何位置

38 * 若要在沒有提示的情況下讀取某個資料夾,請將其新增為[額外目錄](/docs/zh-TW/permissions#working-directories)

39 * 若要在作業系統層級限制 Bash 命令,請開啟[沙箱機制](/docs/zh-TW/sandboxing#filesystem-isolation)

41* **提示疲勞緩解**:支援按使用者、按程式碼庫或按組織允許列表常用的安全命令40* **提示疲勞緩解**:支援按使用者、按程式碼庫或按組織允許列表常用的安全命令

42* **Accept Edits 模式**:自動批准檔案編輯和一組固定的檔案系統 Bash 命令,如 `mkdir`、`touch`、`rm`、`mv`、`cp` 和 `sed`,適用於工作目錄中的路徑。其他 Bash 命令和超出範圍的路徑仍會提示41* **Accept Edits 模式**:自動批准檔案編輯和一組固定的檔案系統 Bash 命令,如 `mkdir`、`touch`、`rm`、`mv`、`cp` 和 `sed`,適用於工作目錄中的路徑。其他 Bash 命令和超出範圍的路徑仍會提示

43 42 


45 使用者責任44 使用者責任

46</h3>45</h3>

47 46 

48Claude Code 只擁有您授予它的權限。您負責在批准前審查建議的程式碼和命令的安全性。47您負責在核准前審查建議的程式碼和命令的安全性。

49 48 

50<h2 id="protect-against-prompt-injection">49<h2 id="protect-against-prompt-injection">

51 防止提示注入50 防止提示注入


58</h3>57</h3>

59 58 

60* **權限系統**:在手動模式中,敏感操作需要明確批准59* **權限系統**:在手動模式中,敏感操作需要明確批准

61* **上下文感知分析**:通過分析完整請求來檢測潛在有害的指令

62* **輸入淨化**:通過處理使用者輸入來防止命令注入

63* **網路命令批准**:從網路獲取內容的命令,例如 `curl` 和 `wget`,預設不會自動批准。在手動模式中,它們會像任何其他非唯讀 Bash 命令一樣提示,因此您仍然可以批准一次或添加明確的允許規則,例如 `Bash(curl *)`。若要停止 Claude 執行它們,請將它們添加到 [`permissions.deny`](/docs/zh-TW/permissions#tool-specific-permission-rules)。拒絕規則會匹配[如所寫的](/docs/zh-TW/permissions#bash-rule-limits)命令;對於不依賴於命令文本的網路強制執行,請參閱[沙箱網路隔離](/docs/zh-TW/sandboxing#network-isolation)60* **網路命令批准**:從網路獲取內容的命令,例如 `curl` 和 `wget`,預設不會自動批准。在手動模式中,它們會像任何其他非唯讀 Bash 命令一樣提示,因此您仍然可以批准一次或添加明確的允許規則,例如 `Bash(curl *)`。若要停止 Claude 執行它們,請將它們添加到 [`permissions.deny`](/docs/zh-TW/permissions#tool-specific-permission-rules)。拒絕規則會匹配[如所寫的](/docs/zh-TW/permissions#bash-rule-limits)命令;對於不依賴於命令文本的網路強制執行,請參閱[沙箱網路隔離](/docs/zh-TW/sandboxing#network-isolation)

64 61 

65<h3 id="privacy-safeguards">62<h3 id="privacy-safeguards">


79</h3>76</h3>

80 77 

81* **網路請求批准**:在手動模式中,進行網路請求的大多數工具預設需要使用者批准78* **網路請求批准**:在手動模式中,進行網路請求的大多數工具預設需要使用者批准

82* **隔離的上下文視窗**:Web fetch 使用單獨的上下文視窗以避免注入潛在的惡意提示79* **網頁摘要**:對於大多數擷取,WebFetch 會針對該頁面執行一次獨立的模型呼叫,Claude 接收的是該呼叫的回答,而非原始頁面。請參閱 [WebFetch 工具行為](/docs/zh-TW/tools-reference#webfetch-tool-behavior)

83* **信任驗證**:首次程式碼庫執行和新的 MCP servers 需要信任驗證80* **信任驗證**:在互動式工作階段中,當您在尚未信任的資料夾中啟動 Claude Code 時,Claude Code 會顯示工作區信任對話框。專案 `.mcp.json` 中的伺服器有其各自的核准提示,而[專案範圍](/docs/zh-TW/mcp#project-scope)列出了會略過該提示的工作階段

84 * 注意:使用 `-p` 旗標以非互動方式執行時,信任驗證被禁用81 * 注意:`-p` 工作階段不會顯示上述任何一種提示。[在您信任資料夾之前會執行什麼](/docs/zh-TW/permissions#what-runs-before-you-trust-a-folder)列出了儲存庫的檔案在該情況下可以執行的內容

85 * 注意:當您直接在主目錄中啟動 Claude Code 時,信任接受僅在當前會話期間保持,不會寫入磁碟,因此提示在每次啟動時都會重新出現。沒有設定可以持久化它。改為從專案子目錄啟動 Claude Code,其中信任接受按目錄保存82 * 注意:當您直接在家目錄中啟動 Claude Code 時,信任接受僅在當前工作階段期間保持,不會寫入磁碟,因此提示在每次啟動時都會重新出現。沒有設定可以持久化它。改為從專案子目錄啟動 Claude Code,其中信任接受按目錄保存

86* **命令注入檢測**:在手動模式中,即使之前已允許列表,可疑的 bash 命令也需要手動批准83* **命令注入偵測**:在手動模式中,Claude Code 在執行無法完全分析的 Bash 命令之前會先詢問。針對命令一部分的允許規則(例如 `Bash(git *)`)不會略過該提示。[沙箱化的命令](/docs/zh-TW/permissions#how-permissions-interact-with-sandboxing)可以在沒有該提示的情況下執行

87* **故障關閉匹配**:在手動模式中,不匹配的命令預設需要批准84* **故障關閉匹配**:在手動模式中,不匹配的命令預設需要批准

88* **自然語言描述**:複雜的 bash 命令包括使用者理解的說明85* **安全的憑證儲存**:API 金鑰和 token 在可用時儲存於 macOS Keychain 中。在 Linux 上,它們儲存在模式為 `0600` 的檔案中;在 Windows 上,則儲存在繼承您使用者設定檔目錄存取控制的檔案中。請參閱 [Credential Management](/docs/zh-TW/authentication#credential-management)

89* **安全的認證儲存**:API 金鑰和令牌儲存在可用時的 macOS Keychain 中,並在 Windows 和 Linux 上受檔案權限保護。請參閱 [Credential Management](/docs/zh-TW/authentication#credential-management)

90 86 

91<Warning>87<Warning>

92 **Windows WebDAV 安全風險**:在 Windows 上執行 Claude Code 時,我們建議不要啟用 WebDAV 或允許 Claude Code 存取可能包含 WebDAV 子目錄的路徑,如 `\\*`。[WebDAV 已被 Microsoft 棄用](https://learn.microsoft.com/en-us/windows/whats-new/deprecated-features#:~:text=The%20Webclient%20\(WebDAV\)%20service%20is%20deprecated),原因是安全風險。啟用 WebDAV 可能允許 Claude Code 觸發對遠端主機的網路請求,繞過權限系統。88 **Windows WebDAV 安全風險**:在 Windows 上執行 Claude Code 時,我們建議不要啟用 WebDAV 或允許 Claude Code 存取可能包含 WebDAV 子目錄的路徑,如 `\\*`。[WebDAV 已被 Microsoft 棄用](https://learn.microsoft.com/en-us/windows/whats-new/deprecated-features#:~:text=The%20Webclient%20\(WebDAV\)%20service%20is%20deprecated),原因是安全風險。啟用 WebDAV 可能允許 Claude Code 觸發對遠端主機的網路請求,繞過權限系統。


108 MCP 安全性104 MCP 安全性

109</h2>105</h2>

110 106 

111Claude Code 允許使用者配置 Model Context Protocol (MCP) servers。允許的 MCP servers 列表在您的原始程式碼中配置,作為 Claude Code 設定的一部分,工程師將其簽入原始碼控制。107您可以將 Claude Code 連接至 Model Context Protocol (MCP) 伺服器。專案範圍的伺服器定義於 `.mcp.json` 中,您可以將其簽入原始碼控制。位於[其他範圍](/docs/zh-TW/mcp#mcp-installation-scopes)的伺服器與 [claude.ai 連接器](/docs/zh-TW/mcp#how-connectors-reach-claude-code)是在儲存庫之外設定的,外掛也可以新增伺服器,因此檢查 `.mcp.json` 並不會顯示工作階段可載入的所有伺服器。若要限制組織中可執行哪些伺服器,請參閱[受管理的 MCP 設定](/docs/zh-TW/managed-mcp)。

112 108 

113我們鼓勵編寫您自己的 MCP servers 或使用來自您信任的提供者的 MCP servers。您能夠為 MCP servers 配置 Claude Code 權限。Anthropic 在將連接器新增至 [Anthropic Directory](https://claude.ai/directory) 之前,會根據其 [列表標準](https://claude.com/docs/connectors/building/review-criteria) 審查連接器,但不會對任何 MCP server 進行安全審計或管理。109我們鼓勵編寫您自己的 MCP servers 或使用來自您信任的提供者的 MCP servers。您能夠為 MCP servers 配置 Claude Code 權限。Anthropic 在將連接器新增至 [Anthropic Directory](https://claude.ai/directory) 之前,會根據其 [列表標準](https://claude.com/docs/connectors/building/review-criteria) 審查連接器,但不會對任何 MCP server 進行安全審計或管理。

114 110 


127* **隔離的虛擬機器**:每個雲端會話在隔離的、由 Anthropic 管理的 VM 中執行123* **隔離的虛擬機器**:每個雲端會話在隔離的、由 Anthropic 管理的 VM 中執行

128* **網路存取控制**:網路存取預設受限,可以配置為禁用或僅允許特定網域124* **網路存取控制**:網路存取預設受限,可以配置為禁用或僅允許特定網域

129* **認證保護**:GitHub 認證在 Anthropic 的伺服器上以加密方式儲存,永遠不會進入會話 VM。VM 持有一個範圍限定於該會話的短期認證,GitHub 流量通過 [Anthropic 代理](/docs/zh-TW/cloud-environments#github-proxy) 進行,該代理在伺服器端附加 GitHub 認證。請參閱 [GitHub 驗證選項](/docs/zh-TW/claude-code-on-the-web#github-authentication-options) 以了解如何授予存取權限125* **認證保護**:GitHub 認證在 Anthropic 的伺服器上以加密方式儲存,永遠不會進入會話 VM。VM 持有一個範圍限定於該會話的短期認證,GitHub 流量通過 [Anthropic 代理](/docs/zh-TW/cloud-environments#github-proxy) 進行,該代理在伺服器端附加 GitHub 認證。請參閱 [GitHub 驗證選項](/docs/zh-TW/claude-code-on-the-web#github-authentication-options) 以了解如何授予存取權限

130* **分支限制**:Git push 操作限制在目前工作分支126* **推送限制**:[GitHub 代理伺服器](/docs/zh-TW/cloud-environments#github-proxy) 會拒絕分支刪除,以及推送分支以外的任何內容(例如標籤)。GitHub 會將您儲存庫的分支保護規則和規則集套用至您所連接的 GitHub 存取權限,藉此決定工作階段可以更新哪些分支。若某條規則可被該存取權限略過,則不會阻擋工作階段的推送

131* **審計日誌**:雲端會話中的所有操作都被記錄以用於合規和審計目的127* **審計日誌**:雲端會話中的所有操作都被記錄以用於合規和審計目的

132* **自動清理**:會話 VM 在一段時間無活動後會被回收128* **自動清理**:會話 VM 在一段時間無活動後會被回收

133* **刪除**:您可以隨時 [刪除會話](/docs/zh-TW/claude-code-on-the-web#delete-sessions)。請參閱 [雲端執行資料流](/docs/zh-TW/data-usage#cloud-execution-data-flow-and-dependencies) 以了解 Anthropic 為雲端會話儲存的內容129* **刪除**:您可以隨時 [刪除會話](/docs/zh-TW/claude-code-on-the-web#delete-sessions)。請參閱 [雲端執行資料流](/docs/zh-TW/data-usage#cloud-execution-data-flow-and-dependencies) 以了解 Anthropic 為雲端會話儲存的內容

Details

1001. 具有可用容量的執行器認領工作階段並持有其租約。1001. 具有可用容量的執行器認領工作階段並持有其租約。

1012. 執行器將儲存庫複製到其工作目錄並生成子 Claude Code 程序。1012. 執行器將儲存庫複製到其工作目錄並生成子 Claude Code 程序。

1023. 子程序在執行器保持輪詢時透過 HTTPS 流回事件;每次輪詢都會刷新租約並充當心跳。1023. 子程序在執行器保持輪詢時透過 HTTPS 流回事件;每次輪詢都會刷新租約並充當心跳。

1034. 如果執行器停止輪詢約 60 秒,伺服器會將工作階段重新佇列到另一個執行器。1034. 如果執行器停止輪詢,其租約會在約 60 秒後失效,伺服器會在幾分鐘內將工作階段重新佇列到另一個執行器。

104 104 

105執行器為每個輪詢請求提供 10 秒。當請求超時、丟失或執行器無法解析的回應時,執行器會繼續為其活躍工作階段服務,並在一兩秒後重試,而不是等待下一個排程的輪詢。例如,用自己的頁面回答輪詢的攔截代理會產生執行器無法解析的回應。每次另一個請求以其中一種方式失敗時,執行器會將下一次重試前的間隔加倍,最多 20 秒,並在租約即將過期時縮短間隔。105執行器為每個輪詢請求提供 10 秒。當請求超時、丟失或執行器無法解析的回應時,執行器會繼續為其活躍工作階段服務,並在一兩秒後重試,而不是等待下一個排程的輪詢。例如,用自己的頁面回答輪詢的攔截代理會產生執行器無法解析的回應。每次另一個請求以其中一種方式失敗時,執行器會將下一次重試前的間隔加倍,最多 20 秒,並在租約即將過期時縮短間隔。

106 106 


118您的基礎設施停止執行器的方式決定您是否需要 `--retire-at`。傳遞 `SIGTERM` 的終止不需要標誌:執行器按照[關閉時序](/docs/zh-TW/self-hosted-environments-deploy#shutdown-timing)所述進行排水,或當您設定 [`--defer-shutdown-max-min`](/docs/zh-TW/self-hosted-environments-deploy#defer-the-drain-past-the-first-signal) 時保持為其已持有的工作階段服務。如果您的基礎設施改為在已知的掛鐘時間銷毀主機而不發送信號,或寬限期太短而無法排水,例如沙箱生命週期上限或現貨實例回收,請傳遞 `--retire-at <epoch-seconds>` 設定為該時間前幾分鐘。在退休時間:118您的基礎設施停止執行器的方式決定您是否需要 `--retire-at`。傳遞 `SIGTERM` 的終止不需要標誌:執行器按照[關閉時序](/docs/zh-TW/self-hosted-environments-deploy#shutdown-timing)所述進行排水,或當您設定 [`--defer-shutdown-max-min`](/docs/zh-TW/self-hosted-environments-deploy#defer-the-drain-past-the-first-signal) 時保持為其已持有的工作階段服務。如果您的基礎設施改為在已知的掛鐘時間銷毀主機而不發送信號,或寬限期太短而無法排水,例如沙箱生命週期上限或現貨實例回收,請傳遞 `--retire-at <epoch-seconds>` 設定為該時間前幾分鐘。在退休時間:

119 119 

1201. 執行器停止接受新工作。1201. 執行器停止接受新工作。

1212. 執行器透過 [`--release-idle-session-min`](/docs/zh-TW/self-hosted-environments-reference#runner-cli-flags) 標誌使用的相同發佈路徑發佈每個活躍工作階段,因此當使用者發送下一條訊息時,工作階段在新執行器上恢復。執行器何時發佈每個工作階段取決於其狀態:1212. 執行器透過 [`--release-idle-session-min`](/docs/zh-TW/self-hosted-environments-reference#runner-cli-flags) 旗標使用的相同發佈路徑發佈每個活躍工作階段,因此當使用者發送下一條訊息時,工作階段在新執行器上恢復。執行器何時發佈每個工作階段取決於其狀態:

122 * 執行器在工作階段進行中時立即發佈該工作階段,一旦該輪次完成。122 * 對於處於回合進行中的工作階段,執行器會在該回合完成後發佈它。執行器會先等待工作階段的程序向 Anthropic 回報該回合的結束,等待時間不超過 [`SELF_HOSTED_RUNNER_POST_TURN_SETTLE_MS`](/docs/zh-TW/self-hosted-environments-reference#environment-variable-only-settings)。在 v2.1.280 之前,執行器會在回合完成後立即發佈工作階段。

123 * 當輪次完成並留下執行中的背景任務時,執行器最多等待 60 秒,然後發佈工作階段,即使它們仍在執行中。如果任務已完成但讀取其結果的後續輪次尚未執行,執行器會保持工作階段直到該輪次完成,並等待不超過 [`SELF_HOSTED_RUNNER_BG_RESULT_GRACE_MS`](/docs/zh-TW/self-hosted-environments-reference#environment-variable-only-settings) 以便該輪次開始。123 * 當回合完成並留下執行中的背景任務時,執行器最多等待 60 秒,然後發佈工作階段,即使它們仍在執行中。如果任務已完成但讀取其結果的後續回合尚未執行,執行器會保持工作階段直到該回合完成,並等待不超過 [`SELF_HOSTED_RUNNER_BG_RESULT_GRACE_MS`](/docs/zh-TW/self-hosted-environments-reference#environment-variable-only-settings) 以便該回合開始。

1243. 執行器在所有工作階段都被發佈後以 0 退出。1243. 執行器在所有工作階段都被發佈後以 0 退出。

125 125 

126超過終止的輪次仍然會丟失;[關閉時序](/docs/zh-TW/self-hosted-environments-deploy#shutdown-timing)涵蓋了調整邊距的大小。沒有 `--retire-at`,無信號主機終止與崩潰無法區分:控制平面記錄丟失的工作者而不是乾淨的發佈,工作階段重新佇列到另一個執行器。126超過終止的輪次仍然會丟失;[關閉時序](/docs/zh-TW/self-hosted-environments-deploy#shutdown-timing)涵蓋了調整邊距的大小。沒有 `--retire-at`,無信號主機終止與崩潰無法區分:控制平面記錄丟失的工作者而不是乾淨的發佈,工作階段重新佇列到另一個執行器。

Details

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.3> Use this file to discover all available pages before exploring further.

4 4 

5# 在自託管環境中自訂會話5# 在自託管環境中自訂工作階段

6 6 

7> 使用包裝指令碼在自託管環境會話中自訂每個會話的認證、生命週期掛鉤和按需執行器生成。7> 使用包裝指令碼在自託管環境工作階段中自訂每個工作階段的憑證、生命週期 hook 和按需執行器生成。

8 8 

9<Note>9<Note>

10 自託管環境在 Team 和 Enterprise 方案上處於公開測試版;[擁有者](/docs/zh-TW/cloud-environments#organization-shared-environments)可以在[**雲端環境**管理頁面](https://claude.ai/admin-settings/cloud-environments)上開啟**允許自託管環境**來啟用它們。本頁面假設您已有一個可運作的執行器;請參閱[快速入門](/docs/zh-TW/self-hosted-environments-quickstart)以了解設定,以及[部署到生產環境](/docs/zh-TW/self-hosted-environments-deploy)以了解艦隊配方。10 自託管環境在 Team 和 Enterprise 方案上處於公開測試版;[擁有者](/docs/zh-TW/cloud-environments#organization-shared-environments)可以在[**雲端環境**管理頁面](https://claude.ai/admin-settings/cloud-environments)上開啟**允許自託管環境**來啟用它們。本頁面假設您已有一個可運作的執行器;請參閱[快速入門](/docs/zh-TW/self-hosted-environments-quickstart)以了解設定,以及[部署到生產環境](/docs/zh-TW/self-hosted-environments-deploy)以了解艦隊配方。


18 包裝指令碼18 包裝指令碼

19</h2>19</h2>

20 20 

21當每個會話需要執行器無法自行完成的設定時,請使用包裝指令碼:佈建限定於會話建立者的短期認證、匯出環境特定的祕密、準備語言工具鏈,或在子程序周圍應用資源限制。執行器每個會話啟動一次您的包裝指令碼,而不是 Claude Code 二進位檔案。透過 `exec` 進入 `$CLAUDE_RUNNER_CLAUDE_BIN`(執行器自己的二進位檔案)來結束包裝指令碼,以便訊號和結束代碼正確傳播。21當每個工作階段需要執行器無法自行完成的設定時,請使用包裝指令碼:佈建限定於工作階段建立者的短期憑證、匯出環境特定的祕密、準備語言工具鏈,或在子程序周圍套用資源限制。執行器每個工作階段啟動一次您的包裝指令碼,以取代 Claude Code 二進位檔案。透過 `exec` 進入 `$CLAUDE_RUNNER_CLAUDE_BIN`(執行器自己的二進位檔案)來結束包裝指令碼,以便訊號和退出碼正確傳播。

22 22 

23在啟動執行器時,將 `--exec-path` 或 `SELF_HOSTED_RUNNER_EXEC_PATH` 指向包裝指令碼:23在啟動執行器時,將 `--exec-path` 或 `SELF_HOSTED_RUNNER_EXEC_PATH` 指向包裝指令碼:

24 24 


30 30 

31| 變數 | 說明 |31| 變數 | 說明 |

32| :- | :- |32| :- | :- |

33| `CLAUDE_CODE_SESSION_ACCESS_TOKEN` | 會話 JWT,前綴為 `sk-ant-cc-`。其 `act` 聲明識別會話建立者,包含建立者的電子郵件和上游身份提供者主體(如果建立表面記錄了它們)。該值是生成時的權杖;重新整理會透過子程序的 stdin 到達,因此包裝指令碼只會看到初始值。請參閱[驗證會話身份](/docs/zh-TW/self-hosted-environments-identity)。 |33| `CLAUDE_CODE_SESSION_ACCESS_TOKEN` | 工作階段 JWT,前綴為 `sk-ant-cc-`。其 `act` 聲明識別工作階段建立者,並在建立的使用介面有記錄時包含建立者的電子郵件。該值是生成時的 token;重新整理會透過子程序的 stdin 到達,因此包裝指令碼只會看到初始值。請參閱[驗證工作階段身分](/docs/zh-TW/self-hosted-environments-identity)。 |

34| `CCR_SESSION_ACCOUNT_EMAIL` | 會話建立者的電子郵件,由執行器從權杖的 `act.email` 聲明中預先提取,無需簽名驗證。適合用於標籤,例如提交預告片。當電子郵件限制認證發行時,驗證權杖並從中讀取聲明;請參閱[佈建限定於會話建立者的認證](#provision-credentials-scoped-to-the-session-creator)。當權杖不包含建立者電子郵件時未設定。視為個人可識別資訊。 |34| `CCR_SESSION_ACCOUNT_EMAIL` | 工作階段建立者的電子郵件,由執行器從 token 的 `act.email` 聲明中預先提取,未經簽章驗證。適合用於標籤,例如提交尾註。當電子郵件限制憑證發行時,請改為驗證 token 並從中讀取聲明;請參閱[佈建限定於工作階段建立者的憑證](#provision-credentials-scoped-to-the-session-creator)。當 token 不包含建立者電子郵件時未設定。請視為個人可識別資訊。 |

35| `CLAUDE_RUNNER_CLIENT_PLATFORM` | 建立會話的用戶端表面,例如 `web_claude_ai`、`desktop_app`、`ios`、`claude_code_cli` 或 `scheduled_trigger`。Anthropic 在會話建立時記錄該值一次,因此包裝指令碼和每個生命週期掛鉤都會看到相同的值。僅將其用於採用分析和標籤,不用作授權訊號。當會話沒有記錄或識別的表面時未設定,因此在 `set -u` 下將其參考為 `${CLAUDE_RUNNER_CLIENT_PLATFORM:-}`。需要 Claude Code v2.1.229 或更新版本。 |35| `CLAUDE_RUNNER_CLIENT_PLATFORM` | 建立工作階段的用戶端使用介面,例如 `web_claude_ai`、`desktop_app`、`ios`、`claude_code_cli` 或 `scheduled_trigger`。Anthropic 在工作階段建立時記錄該值一次,因此包裝指令碼和每個生命週期 hook 都會看到相同的值。僅將其用於採用分析和標籤,不要用作授權訊號。當工作階段沒有已記錄或可識別的使用介面時未設定,因此在 `set -u` 下請以 `${CLAUDE_RUNNER_CLIENT_PLATFORM:-}` 參照它。需要 Claude Code v2.1.229 或更新版本。 |

36| `CLAUDE_RUNNER_CLAUDE_BIN` | 執行器自己的 Claude Code 二進位檔案的絕對路徑。以 `exec "$CLAUDE_RUNNER_CLAUDE_BIN" "$@"` 結束您的包裝指令碼,以移交給固定的二進位檔案,而無需硬編碼安裝路徑。 |36| `CLAUDE_RUNNER_CLAUDE_BIN` | 執行器自己的 Claude Code 二進位檔案的絕對路徑。以 `exec "$CLAUDE_RUNNER_CLAUDE_BIN" "$@"` 結束您的包裝指令碼,以移交給固定的二進位檔案,而無需硬編碼安裝路徑。 |

37| `CLAUDE_CODE_REMOTE_SESSION_ID` | 標記形式為 `cse_...` 的會話 ID。這是[生命週期掛鉤](#lifecycle-hooks)以 `CLAUDE_RUNNER_SESSION_ID`(`session_...` 形式)看到的相同會話;UUID 變數在兩者之間匹配,將 `cse_` 前綴替換為 `session_` 會產生會話 URL 中顯示的 ID。 |37| `CLAUDE_CODE_REMOTE_SESSION_ID` | 標記形式為 `cse_...` 的工作階段 ID。這與[生命週期 hook](#lifecycle-hooks) 以 `CLAUDE_RUNNER_SESSION_ID`(`session_...` 形式)看到的是相同工作階段;UUID 變數在兩者之間相符,將 `cse_` 前綴替換為 `session_` 會產生工作階段 URL 中顯示的 ID。 |

38| `CLAUDE_CODE_REMOTE_SESSION_UUID` | 規範 UUID 形式的相同會話 ID,適用於以 UUID 為鍵的系統。 |38| `CLAUDE_CODE_REMOTE_SESSION_UUID` | 標準 UUID 形式的相同工作階段 ID,適用於以 UUID 為鍵的系統。 |

39| `CLAUDE_SESSION_INGRESS_TOKEN_FILE` | 保存目前會話 JWT 的每個會話檔案的絕對路徑,在權杖重新整理時保持最新。Shell 子程序在下載使用者新增到會話的附件時從中讀取其 `Authorization` 標頭。`exec` 會自動保留該變數;重建子程序環境的包裝指令碼必須帶上該變數,否則附件下載會無聲地停止工作。 |39| `CLAUDE_SESSION_INGRESS_TOKEN_FILE` | 保存目前工作階段 JWT 的每個工作階段檔案的絕對路徑,在 token 重新整理時保持最新。Shell 子程序在下載使用者新增到工作階段的附件時從中讀取其 `Authorization` 標頭。`exec` 會自動保留該變數;重建子程序環境的包裝指令碼必須帶上該變數,否則附件下載會無聲地停止運作。 |

40| `CLAUDE_CONFIG_DIR` | 每個會話的 Claude 設定目錄,在會話開始時從執行器在啟動時擷取的執行器主機設定快照中寫入;請參閱[權限和工具核准](#permissions-and-tool-approval)。此處的寫入隔離到此會話。會話結束後,該目錄保留在 `<base-dir>/_sessions/` 下,除非您使用 [`--remove-session-state`](/docs/zh-TW/self-hosted-environments-reference#runner-cli-flags) 啟動執行器;請參閱[重複使用預先準備的簽出](/docs/zh-TW/self-hosted-environments-deploy#reuse-a-pre-warmed-checkout)。 |40| `CLAUDE_CONFIG_DIR` | 每個工作階段的 Claude 設定目錄,在工作階段開始時從執行器在啟動時擷取的執行器主機設定快照中寫入;請參閱[權限和工具核准](#permissions-and-tool-approval)。此處的寫入隔離於此工作階段。工作階段結束後,該目錄會保留在 `<base-dir>/_sessions/` 下,除非您使用 [`--remove-session-state`](/docs/zh-TW/self-hosted-environments-reference#runner-cli-flags) 啟動執行器;請參閱[重複使用預先準備的簽出](/docs/zh-TW/self-hosted-environments-deploy#reuse-a-pre-warmed-checkout)。 |

41| `ANTHROPIC_BASE_URL` | 子程序將使用的 API 基礎 URL,由控制平面按會話傳遞,通常為 `https://api.anthropic.com`。不要覆蓋它:會話的推理認證是 Anthropic 發行的 OAuth 權杖,其他提供者不接受,因此自託管環境中的推理無法路由到其他地方。 |41| `ANTHROPIC_BASE_URL` | 子程序將使用的 API 基礎 URL,由控制平面按工作階段傳遞,通常為 `https://api.anthropic.com`。不要覆寫它:工作階段的推理憑證是 Anthropic 發行的 OAuth token,其他提供者不接受,因此自託管環境中的推理無法路由到其他地方。 |

42| `CLAUDE_CODE_OAUTH_TOKEN` | 子程序用於模型推理的短期 OAuth 存取權杖,限定於模型推理和檔案上傳,生命週期約為 30 分鐘。執行器在過期前重新鑄造它,並透過子程序的 stdin 傳遞輪換,因此不[保持 stdin 連接](#keep-stdin-and-file-descriptor-3-attached)的包裝指令碼只會看到初始值。不要依賴您的組織 IP 允許清單來限制此權杖的使用:將其視為持有人認證,如果洩露,大約 30 分鐘內仍可使用,不要記錄它、將其寫入磁碟或在會話容器外轉發它。 |42| `CLAUDE_CODE_OAUTH_TOKEN` | 子程序用於模型推理的短期 OAuth 存取 token,限定於模型推理和檔案上傳,生命週期約為 30 分鐘。執行器在過期前重新鑄造它,並透過子程序的 stdin 傳遞輪換,因此未[保持 stdin 連接](#keep-stdin-and-file-descriptor-3-attached)的包裝指令碼只會看到初始值。不要依賴您組織的 IP 允許清單來限制此 token 的使用:請將其視為持有人憑證,如果洩露,大約 30 分鐘內仍可使用,不要將其寫入日誌、寫入磁碟或在工作階段容器外轉發它。 |

43 43 

44包裝指令碼也會繼承子程序的其餘受管環境,包括任何伺服器提供的環境變數。`exec` 會自動傳播所有內容;如果您的包裝指令碼以另一種方式生成子程序,請轉發完整環境。44包裝指令碼也會繼承子程序的其餘受管環境,包括任何伺服器提供的環境變數。`exec` 會自動傳播所有內容;如果您的包裝指令碼以另一種方式生成子程序,請轉發完整環境。

45 45 


47 保持 stdin 和檔案描述符 3 連接47 保持 stdin 和檔案描述符 3 連接

48</h3>48</h3>

49 49 

50子程序的 stdin 是執行器的控制通道。權杖輪換和會話結束訊號會在其上到達。執行器也會在檔案描述符 3 上開啟一個管道,並從中讀取子程序的活動訊號以驅動閒置和啟動逾時。純 `exec "$CLAUDE_RUNNER_CLAUDE_BIN" "$@"` 會自動保留兩者。50子程序的 stdin 是執行器的控制通道。token 輪換和工作階段結束訊號會在其上到達。執行器也會在檔案描述符 3 上開啟一個管道,並從中讀取子程序的活動訊號以驅動閒置和啟動逾時。單純的 `exec "$CLAUDE_RUNNER_CLAUDE_BIN" "$@"` 會自動保留兩者。

51 51 

52如果您的包裝指令碼使用裸 `&` 在背景中執行子程序,它會切斷子程序的 stdin:會話看起來健康,直到初始 OAuth 權杖的大約 30 分鐘生命週期過期,然後每個 API 呼叫都會失敗,並出現 `401 authentication_error`。如果您的包裝指令碼必須在背景中執行子程序,例如保持拆卸陷阱活著,請在檔案描述符 4 或更高版本上儲存 stdin,並明確重新連接它:52如果您的包裝指令碼使用單獨的 `&` 在背景中執行子程序,它會切斷子程序的 stdin:工作階段看起來健康,直到初始 OAuth token 大約 30 分鐘的生命週期過期,然後每個 API 呼叫都會失敗,並出現 `401 authentication_error`。如果您的包裝指令碼必須在背景中執行子程序,例如為了讓拆卸 trap 保持作用,請將 stdin 儲存在檔案描述符 4 或更高的編號上,並明確重新連接它:

53 53 

54```bash theme={null}54```bash theme={null}

55exec 4<&055exec 4<&0


59wait "$CHILD"59wait "$CHILD"

60```60```

61 61 

62不要在包裝指令碼中關閉或重複使用檔案描述符 3。重定向子程序的 stdout 和 stderr 是可以的。62不要在包裝指令碼中關閉或重複使用檔案描述符 3。重新導向子程序的 stdout 和 stderr 是可以的。

63 

64<h3 id="pass-the-system-prompt-flags-through">

65 傳遞系統提示詞旗標

66</h3>

67 

68Anthropic 控制平面為工作階段傳送的系統提示詞和附加系統提示詞,會以檔案路徑而非內嵌文字的形式傳到您的包裝指令碼。執行器會將每個提示詞寫入工作階段設定目錄 `CLAUDE_CONFIG_DIR` 中的檔案,並在您的包裝指令碼接收的引數中傳遞其路徑,形式為 [`--system-prompt-file <path>` 或 `--append-system-prompt-file <path>`](/docs/zh-TW/cli-reference#system-prompt-flags)。

69 

70Claude Code v2.1.281 或更新版本上的執行器會以檔案形式傳遞提示詞。在 v2.1.281 之前,執行器以 `--system-prompt <text>` 和 `--append-system-prompt <text>` 傳遞它們。

71 

72在您的包裝指令碼或 [`command` hook](#command) 中,請依下列方式處理這些旗標:

73 

74* **原樣傳遞它們**:以 `exec "$CLAUDE_RUNNER_CLAUDE_BIN" "$@"` 結束包裝指令碼,這會將檔案旗標連同其他所有引數一起轉發。不要捨棄或改寫它們。如果工作階段遺失了提示詞檔案旗標,它將在缺少控制平面為其傳送之指令的情況下執行。

75* **在 v2.1.281 或更新版本的執行器上,您附加的檔案旗標會取代伺服器的旗標,而不會與其疊加**:每個提示詞檔案旗標只接受單一值,且 Claude Code 會保留最後一次出現的值,因此如果您在 `"$@"` 之後附加 `--append-system-prompt-file <path>`,您檔案的內容會取代伺服器的附加指令。若要在伺服器的指令之上新增指令,請將它們放入執行器映像的 `CLAUDE.md` 中,執行器會將其[植入每個工作階段的使用者層級設定](#how-each-session’s-config-is-assembled)。

63 76 

64<h3 id="provision-credentials-scoped-to-the-session-creator">77<h3 id="provision-credentials-scoped-to-the-session-creator">

65 佈建限定於會話建立者的認證78 佈建限定於工作階段建立者的憑證

66</h3>79</h3>

67 80 

68使用 `decode-token` 子命令從會話 JWT 讀取聲明。它從引數、`CLAUDE_CODE_SESSION_ACCESS_TOKEN` 或 stdin 讀取權杖,按該順序;請參閱[驗證會話內的權杖](/docs/zh-TW/self-hosted-environments-identity#verify-the-token-inside-the-session)以了解它檢查的內容。下面的範例解碼建立者身份,將其交換為短期 AWS 認證,並執行進入 Claude Code:81使用 `decode-token` 子命令從工作階段 JWT 讀取聲明。它依序從引數、`CLAUDE_CODE_SESSION_ACCESS_TOKEN` 或 stdin 讀取 token;請參閱[驗證工作階段內的 token](/docs/zh-TW/self-hosted-environments-identity#verify-the-token-inside-the-session) 以了解它檢查的內容。下面的範例解碼建立者身分,將其交換為短期 AWS 憑證,並透過 exec 進入 Claude Code:

69 82 

70```bash theme={null}83```bash theme={null}

71#!/bin/bash84#!/bin/bash


81exec "$CLAUDE_RUNNER_CLAUDE_BIN" "$@"94exec "$CLAUDE_RUNNER_CLAUDE_BIN" "$@"

82```95```

83 96 

84在提取的聲明限制授權決定時,使用 `jq -re` 而不是 `jq -r`,以便缺少的聲明以非零狀態退出,而不是將字面字串 `null` 傳遞到下游。由組織服務身份(例如機器人和代理會話)建立的會話帶有 `agent:` 主體而不是 `user:`,因此此範例拒絕它們;如果您的環境提供這些會話,請明確決定包裝指令碼是否為它們回退到預設認證,而不是退出。當您的認證交換需要 SSO 主體或電子郵件時,讀取 `.act.attested_by.sub` 或 `.act.email` 並處理它們的缺失:權杖只在建立表面記錄它們時才帶有它們,[CLI 分派的會話](/docs/zh-TW/self-hosted-environments-testing#run-the-test-loop)可能兩者都缺少。有關完整的聲明參考和來自執行器外部服務的驗證,請參閱[驗證會話身份](/docs/zh-TW/self-hosted-environments-identity)。97在提取的聲明限制授權決定時,使用 `jq -re` 而不是 `jq -r`,以便缺少的聲明以非零狀態退出,而不是將字面字串 `null` 傳遞到下游。由組織服務身分(例如機器人和 agent 工作階段)建立的工作階段帶有 `agent:` 主體而不是 `user:`,因此此範例會拒絕它們;如果您的環境服務這些工作階段,請明確決定包裝指令碼是否為它們回退到預設憑證,而不是退出。當您的憑證交換改為需要電子郵件時,請讀取 `.act.email` 並處理其缺失的情況:token 只在建立的使用介面有記錄時才帶有它,而 [CLI 分派的工作階段](/docs/zh-TW/self-hosted-environments-testing#run-the-test-loop)可能缺少它。有關完整的聲明參考以及從執行器外部服務進行的驗證,請參閱[驗證工作階段身分](/docs/zh-TW/self-hosted-environments-identity)。

85 98 

86<h2 id="lifecycle-hooks">99<h2 id="lifecycle-hooks">

87 生命週期掛鉤100 生命週期掛鉤


95 checkout108 checkout

96</h3>109</h3>

97 110 

98每個儲存庫執行一次,代替執行器的內建複製和擷取。使用掛鉤從讀取通過鏡像複製、從存檔植入工作樹,或應用每個會話的 git 驗證。執行器設定:111每個儲存庫執行一次,取代執行器內建的複製與擷取。使用此 hook 從直讀式鏡像複製、從封存檔植入工作樹,或套用每個工作階段的 git 身分驗證。執行器會設定下列變數,也可能設定表格未列出的其他 `CLAUDE_RUNNER_` 變數:

99 112 

100| 變數 | 說明 |113| 變數 | 說明 |

101| :- | :- |114| :- | :- |


107| `CLAUDE_RUNNER_API_BASE_URL` | 用於會話範圍呼叫的 Anthropic API 基礎 URL |120| `CLAUDE_RUNNER_API_BASE_URL` | 用於會話範圍呼叫的 Anthropic API 基礎 URL |

108| `CLAUDE_RUNNER_CLIENT_PLATFORM` | 建立會話的用戶端表面,例如 `web_claude_ai`、`desktop_app` 或 `ios`。當會話沒有記錄或識別的表面時未設定。 |121| `CLAUDE_RUNNER_CLIENT_PLATFORM` | 建立會話的用戶端表面,例如 `web_claude_ai`、`desktop_app` 或 `ios`。當會話沒有記錄或識別的表面時未設定。 |

109| `CLAUDE_CODE_SESSION_ACCESS_TOKEN` | 會話存取權杖,用於會話範圍的 API 呼叫 |122| `CLAUDE_CODE_SESSION_ACCESS_TOKEN` | 會話存取權杖,用於會話範圍的 API 呼叫 |

123| `GIT_CONFIG_COUNT`、`GIT_CONFIG_KEY_n`、`GIT_CONFIG_VALUE_n` | 執行器為您的 hook 所執行之 git 固定的 Git 設定。[生命週期 hook 內的 Git 設定](#git-configuration-inside-lifecycle-hooks)說明了這些設定。需要 Claude Code v2.1.280 或更新版本。 |

110 124 

111指令碼必須在 `CLAUDE_RUNNER_CHECKOUT_PATH` 留下一個工作樹,簽出在要求的修訂版本。分離的 HEAD 是可以的;執行器在頂部建立會話的工作分支。執行器之後驗證路徑包含 `.git`;如果您的掛鉤具體化非 git 來源(例如 Perforce 或解包的 tarball),請在執行器的環境中設定 `CLAUDE_RUNNER_SKIP_GIT_VERIFY=1` 以跳過該檢查。基於 Git 的流程(例如工作分支建立和推送結果)需要 git 簽出,因此使用 [`post-session` 掛鉤](#post-session)從非 git 樹匯出結果。125指令碼必須在 `CLAUDE_RUNNER_CHECKOUT_PATH` 留下一個工作樹,簽出在要求的修訂版本。分離的 HEAD 是可以的;執行器在頂部建立會話的工作分支。執行器之後驗證路徑包含 `.git`;如果您的掛鉤具體化非 git 來源(例如 Perforce 或解包的 tarball),請在執行器的環境中設定 `CLAUDE_RUNNER_SKIP_GIT_VERIFY=1` 以跳過該檢查。基於 Git 的流程(例如工作分支建立和推送結果)需要 git 簽出,因此使用 [`post-session` 掛鉤](#post-session)從非 git 樹匯出結果。

112 126 


139| `CLAUDE_RUNNER_API_BASE_URL` | 用於會話範圍呼叫的 Anthropic API 基礎 URL |153| `CLAUDE_RUNNER_API_BASE_URL` | 用於會話範圍呼叫的 Anthropic API 基礎 URL |

140| `CLAUDE_RUNNER_CLIENT_PLATFORM` | 建立會話的用戶端表面,例如 `web_claude_ai`、`desktop_app` 或 `ios`。當會話沒有記錄或識別的表面時未設定。需要 Claude Code v2.1.229 或更新版本。 |154| `CLAUDE_RUNNER_CLIENT_PLATFORM` | 建立會話的用戶端表面,例如 `web_claude_ai`、`desktop_app` 或 `ios`。當會話沒有記錄或識別的表面時未設定。需要 Claude Code v2.1.229 或更新版本。 |

141| `CLAUDE_CODE_SESSION_ACCESS_TOKEN` | 會話存取權杖,用於會話範圍的 API 呼叫 |155| `CLAUDE_CODE_SESSION_ACCESS_TOKEN` | 會話存取權杖,用於會話範圍的 API 呼叫 |

156| `GIT_CONFIG_COUNT`、`GIT_CONFIG_KEY_n`、`GIT_CONFIG_VALUE_n` | 執行器為您的 hook 所執行之 git 固定的 Git 設定。[生命週期 hook 內的 Git 設定](#git-configuration-inside-lifecycle-hooks)說明了這些設定。需要 Claude Code v2.1.280 或更新版本。 |

142 157 

143`CLAUDE_RUNNER_EXIT_REASON` 採用四個值之一:158`CLAUDE_RUNNER_EXIT_REASON` 採用四個值之一:

144 159 


155#!/usr/bin/env bash170#!/usr/bin/env bash

156set -u171set -u

157IFS=':'172IFS=':'

158# Pin config the session could have planted in the checkout's .git/config:

159# -c overrides beat repo-local settings, blocking session-written fsmonitor,173# -c overrides beat repo-local settings, blocking session-written fsmonitor,

160# hook-path, and gpg-program config from executing code with the hook's174# hook-path, and gpg-program config from executing code with the hook's

161# privileges. Repo-local credential.helper, core.sshCommand, and pushurl175# privileges. -c commit.gpgsign=false also leaves these rescue commits

162# still apply; if the hook holds credentials the session didn't, pin the176# unsigned under --configure-git.

163# push URL and helper too (see the note below the script).177# Repo-local credential.helper and pushurl still apply, and on a runner

178# before v2.1.280 so does core.sshCommand; if the hook holds credentials

179# the session didn't, see the note below the script.

164g() { git -c core.fsmonitor=false -c core.hooksPath=/dev/null \180g() { git -c core.fsmonitor=false -c core.hooksPath=/dev/null \

165 -c commit.gpgsign=false "$@"; }181 -c commit.gpgsign=false "$@"; }

166for ws in $CLAUDE_RUNNER_WORKSPACE_PATHS; do182for ws in $CLAUDE_RUNNER_WORKSPACE_PATHS; do


172done188done

173```189```

174 190 

175掛鉤使用執行器主機自己環境中可用的任何 git 認證進行推送。在[映像中無認證的姿態](/docs/zh-TW/self-hosted-environments-deploy#configure-git)下,包括內建複製通過 Anthropic git 代理時,沒有任何認證,因此在推送前在掛鉤內鑄造短期推送認證:將掛鉤在 `CLAUDE_CODE_SESSION_ACCESS_TOKEN` 中接收的會話權杖與您自己的權杖服務交換,如[驗證會話身份](/docs/zh-TW/self-hosted-environments-identity)所述進行驗證。當掛鉤持有會話沒有的認證時,也要固定它推送的位置:將 `origin` 替換為操作員提供的 URL,並傳遞 `-c credential.helper=` 加上您自己的助手,以便會話寫入的儲存庫本地設定無法重定向經過認證的推送。191hook 會使用執行器主機上其自身環境中可用的任何 git 憑證進行推送。在[映像中不含憑證的做法](/docs/zh-TW/self-hosted-environments-deploy#configure-git)下,包括內建複製經由 Anthropic git 代理伺服器進行時,都不會有任何憑證,因此請在推送前於 hook 內產生短期推送憑證:將 hook 在 `CLAUDE_CODE_SESSION_ACCESS_TOKEN` 中收到的工作階段 token 與您自己的 token 服務交換,並依照[驗證工作階段身分](/docs/zh-TW/self-hosted-environments-identity)所述進行驗證。當 hook 持有工作階段所沒有的憑證時,請將 `origin` 替換為由操作人員提供的 URL,並傳遞 `-c credential.helper=` 加上您自己的輔助程式。[生命週期 hook 內的 Git 設定](#git-configuration-inside-lifecycle-hooks)說明了工作階段寫入的設定仍可能影響哪些部分。

176 192 

177<h4 id="hook-timing-when-the-runner-releases-a-session">193<h4 id="hook-timing-when-the-runner-releases-a-session">

178 執行器釋放會話時的掛鉤計時194 執行器釋放會話時的掛鉤計時


187 203 

188在 `SIGTERM` 排水期間,執行器持有會話租約直到掛鉤完成;請參閱[關閉計時](/docs/zh-TW/self-hosted-environments-deploy#shutdown-timing)。204在 `SIGTERM` 排水期間,執行器持有會話租約直到掛鉤完成;請參閱[關閉計時](/docs/zh-TW/self-hosted-environments-deploy#shutdown-timing)。

189 205 

206<h3 id="git-configuration-inside-lifecycle-hooks">

207 生命週期 hook 內的 Git 設定

208</h3>

209 

210`checkout` 與 `post-session` hook 執行時,其環境中帶有工作階段的存取 token,而它們執行的 git 會讀取工作階段可寫入的設定檔,例如 `~/.gitconfig` 與簽出中的 `.git/config`。在任一 hook 執行前,執行器會在 hook 的環境中設定 git 設定(包括下列各項),形式為 `GIT_CONFIG_COUNT`/`GIT_CONFIG_KEY_n`/`GIT_CONFIG_VALUE_n` 配對以及 git 環境變數。Git 會將這些設定的優先順序排在所有設定檔之上,且它們只套用於您的 hook 所執行的 git,不套用於工作階段本身的 git。啟動時,執行器會印出一行 `[runner:git] lifecycle hooks:`,顯示目前生效的 hook 路徑、允許的協定、gpg 程式與簽署模式。需要 Claude Code v2.1.280 或更新版本。

211 

212* **Git hook**:除非您提供值,否則 `core.hooksPath` 為 `/dev/null`,因此 git 會略過儲存庫 `.git/hooks` 中的 hook,以及 `~/.gitconfig` 所指定的任何 hook 目錄。若要提供值,請在執行器的環境中將 `core.hooksPath` 匯出為 `GIT_CONFIG_KEY_n`/`GIT_CONFIG_VALUE_n` 配對。執行器也會從系統 git 設定讀取 `core.hooksPath`,但僅在執行器的使用者無法寫入該檔案、其指定的目錄或其中的 hook 檔案時才使用。當執行器忽略某個值時,啟動時會有一行 `[runner:warn]` 指出該值與原因。

213* **檔案系統監視器**:`core.fsmonitor` 為空值,因此您 hook 中的 git 不會執行設定檔所指定的監視器程式。

214* **遠端協定**:`GIT_ALLOW_PROTOCOL` 為 `https:http:ssh`。使用本機路徑、`file://` URL 或 `git://` URL 的複製、擷取或推送,會以 `fatal: transport 'file' not allowed` 或 `fatal: transport 'git' not allowed` 失敗。

215* **SSH 命令與憑證提示**:您 hook 中的 git 會忽略設定檔中的 `core.sshCommand` 與 `core.askPass`。若要使用您自己的 SSH 命令,請在執行器的環境中設定 `GIT_SSH_COMMAND`。若要使用憑證提示程式,請在該處設定 `GIT_ASKPASS`。工作階段會繼承執行器的環境,因此這兩個變數也會傳到工作階段本身的 git。請勿在其中任一變數中放入憑證。

216* **gpg 程式**:`gpg.program`、`gpg.openpgp.program`、`gpg.x509.program` 與 `gpg.ssh.program` 是執行器設定的路徑,絕不會取自設定檔中的值。

217* **提交簽署**:使用 [`--configure-git`](/docs/zh-TW/self-hosted-environments-deploy#let-the-runner-configure-git) 時,您從 hook 建立的提交會以工作階段的身分簽署。未使用此旗標時,`commit.gpgsign` 與 `tag.gpgsign` 為 `false`。

218 

219若要變更其中某項設定,請使用執行器的環境,或在 hook 內使用 `git -c` 選項:

220 

221* **設定配對**:您在執行器環境中匯出的 `GIT_CONFIG_KEY_n`/`GIT_CONFIG_VALUE_n` 配對,會取代執行器對相同鍵的值。請從 `0` 開始為配對編號,並將 `GIT_CONFIG_COUNT` 設為配對數量。當計數所宣告的最後一個配對不存在時,執行器會忽略您所有的配對,並在啟動時記錄一行 `[runner:warn]`。

222* **Git 環境變數**:執行器會保留您在其環境中設定的 `GIT_ALLOW_PROTOCOL`、`GIT_SSH_COMMAND` 與 `GIT_ASKPASS`。

223* **`git -c` 選項**:hook 內的 `git -c` 選項會覆寫 `GIT_CONFIG_KEY_n` 配對,無論是執行器的還是您的。它不會變更 `GIT_ALLOW_PROTOCOL`、`GIT_SSH_COMMAND` 或 `GIT_ASKPASS`,因為 git 會先於任何設定讀取這些變數。

224 

225您 hook 中的 git 仍會從所有設定檔(包括工作階段可寫入的設定檔)讀取執行器未設定的每項設定,例如憑證輔助程式、`url.*.insteadOf` 重寫與篩選驅動程式。這些檔案之一所指定的憑證輔助程式或篩選驅動程式,會以您 hook 的權限作為程式執行,而這些檔案中的設定仍可改變您 hook 推送的目的地,包括推送到您在命令列上傳入的 URL。

226 

227在 v2.1.280 之前,執行器不會設定上述任何設定,且在 `--configure-git` 下,從 hook 建立的提交會失敗,除非 hook 傳入 `-c commit.gpgsign=false`。

228 

190<h3 id="command">229<h3 id="command">

191 command230 command

192</h3>231</h3>


416 權限和工具核准455 權限和工具核准

417</h2>456</h2>

418 457 

419自託管會話沒有連接的終端,因此未回答的權限提示會延遲轉換,直到使用者在 UI 中回應。Anthropic 的控制平面使用工作負載發送每個會話的工具清單和權限規則;預設設定預先核准常規工具呼叫(包括 `Bash`),雲端會話[預先核准檔案編輯,無論模式如何](/docs/zh-TW/permission-modes#switch-permission-modes)。沒有任何東西預先核准的呼叫會透過會話 UI 提示。458自託管工作階段沒有連接的終端機,因此未回應的權限提示會使回合停滯,直到使用者在 UI 中回應。Anthropic 的控制平面會隨工作 payload 傳送每個工作階段的工具清單和權限規則;預設設定會預先核准例行的工具呼叫(包括 `Bash`),而雲端工作階段[無論模式為何都會預先核准檔案編輯](/docs/zh-TW/permission-modes#switch-permission-modes)。未被任何規則預先核准的呼叫會透過工作階段 UI 提示。

420 459 

421<Note>460<Note>

422 僅在環境的會話容器執行[預設拒絕網路出口](/docs/zh-TW/self-hosted-environments-deploy#default-deny-egress)和[強化部分](/docs/zh-TW/self-hosted-environments-deploy#harden-your-deployment)中其餘部分的環境上固定自動模式。常規工具呼叫(包括 `Bash` 網路請求)在預設預先核准的工具集和自動模式中都無需人工干預執行,因此網路邊界是限制這些呼叫可以到達的位置。461 僅在工作階段容器以[預設拒絕網路出口](/docs/zh-TW/self-hosted-environments-deploy#default-deny-egress)執行,且已套用[強化部分](/docs/zh-TW/self-hosted-environments-deploy#harden-your-deployment)其餘措施的環境上固定自動模式。無論是在預設預先核准的工具集還是自動模式下,例行工具呼叫(包括 `Bash` 網路請求)都會在無人工介入的情況下執行,因此網路邊界是限制這些呼叫可到達位置的關鍵。

423</Note>462</Note>

424 463 

425要無論控制平面發送什麼都將提示保持在最低限度,請從您的包裝指令碼或 [`command` 掛鉤](#command)固定[自動模式](/docs/zh-TW/permission-modes#eliminate-prompts-with-auto-mode)。自動模式讓會話無需常規權限提示執行:單獨的分類器模型在它們執行前審查操作並阻止它拒絕的操作,明確的詢問規則仍然強制提示;權限模式頁面涵蓋分類器檢查的內容。執行器在呼叫包裝指令碼前附加伺服器計算的旗標,對於單值旗標(例如 `--permission-mode`),解析器尊重最後出現的旗標,因此您在 `"$@"` 後附加的旗標覆蓋伺服器發送的值:464若要無論控制平面傳送什麼都將提示降到最低,請從您的包裝指令碼或 [`command` hook](#command) 固定[自動模式](/docs/zh-TW/permission-modes#eliminate-prompts-with-auto-mode)。自動模式讓工作階段無需例行權限提示即可執行:一個獨立的分類器模型會在操作執行前進行審查,並阻擋其拒絕的操作,而明確的詢問規則仍會強制提示;權限模式頁面說明了分類器檢查的內容。執行器在呼叫包裝指令碼前會附加伺服器計算的旗標,而對於單值旗標(例如 `--permission-mode`),解析器會採用最後一次出現的值,因此您在 `"$@"` 之後附加的旗標會覆寫伺服器傳送的值:

426 465 

427```bash theme={null}466```bash theme={null}

428#!/bin/bash467#!/bin/bash

429exec "$CLAUDE_RUNNER_CLAUDE_BIN" "$@" --permission-mode auto468exec "$CLAUDE_RUNNER_CLAUDE_BIN" "$@" --permission-mode auto

430```469```

431 470 

432要改為預先核准特定工具,請附加 `--allowed-tools` 和您的規則,例如 `--allowed-tools "Bash(bazel *) Bash(yarn *) mcp__internal__*"`。列表旗標(例如 `--allowed-tools` 和 `--disallowed-tools`)在出現時累積而不是覆蓋,因此您的規則應用在控制平面發送的任何規則之上。要縮小,請附加 `--disallowed-tools`,即使另一個規則允許工具也會拒絕工具。471若要改為預先核准特定工具,請附加 `--allowed-tools` 及您的規則,例如 `--allowed-tools "Bash(bazel *) Bash(yarn *) mcp__internal__*"`。清單旗標(例如 `--allowed-tools` 和 `--disallowed-tools`)會在多次出現時累加,而非覆寫,因此您的規則會套用在控制平面傳送的任何規則之上。若要縮小範圍,請附加 `--disallowed-tools`,即使其他規則允許某工具,它也會拒絕該工具。

433 472 

434<h3 id="how-each-session’s-config-is-assembled">473<h3 id="how-each-session’s-config-is-assembled">

435 如何組合每個會話的設定474 如何組合每個工作階段的設定

436</h3>475</h3>

437 476 

438執行器為每個會話提供自己的設定目錄,從執行器在啟動時擷取的主機 `~/.claude/` 的記憶體內快照植入:`settings.json`、`CLAUDE.md`、掛鉤、代理、命令和技能在您的執行器映像中應用於每個會話作為使用者級基線。因為快照在啟動時進行,執行中主機上的設定變更僅在執行器重新啟動後生效。設定 `SELF_HOSTED_RUNNER_HOST_CONFIG_DIR` 以從不同路徑植入,或將其指向空目錄以禁用植入。477執行器為每個工作階段提供其專屬的設定目錄,並以執行器在啟動時擷取一次的主機 `~/.claude/` 快照植入:您執行器映像中的 `settings.json`、`CLAUDE.md`、hook、agent、命令和 skill 會作為使用者層級基準套用至每個工作階段。如果您在執行中的主機上變更設定,變更僅在您重新啟動執行器後生效。

478 

479設定 `SELF_HOSTED_RUNNER_HOST_CONFIG_DIR` 以從不同路徑植入,或將其指向空目錄以停用植入。

480 

481儲存庫提交的 `.claude/settings.json` 會作為專案設定疊加於其上。工作階段也會從執行器映像中的標準系統路徑讀取 [`managed-settings.json`](/docs/zh-TW/settings#where-settings-live)。其設定鍵是否與[伺服器受管設定](/docs/zh-TW/server-managed-settings)一併套用,取決於 [Claude Code 如何組合受管來源](/docs/zh-TW/managed-settings#how-claude-code-combines-managed-sources):預設情況下,當您的組織傳遞任何伺服器受管設定鍵時,工作階段會忽略執行器映像的檔案,但 [Claude Code 從每個管理來源讀取的設定鍵](/docs/zh-TW/managed-settings#keys-read-from-every-admin-source)除外,例如 `env` 區塊、沙箱鎖定、沙箱二進位檔路徑和 `forceRemoteSettingsRefresh`。請參閱[設定優先順序](/docs/zh-TW/settings#settings-precedence)。

482 

483當 Anthropic 的控制平面為工作階段提供 [Claude Code hook](/docs/zh-TW/hooks) 時,執行器會將其與您自己的設定並存安裝,而非覆寫您的設定。需要 Claude Code v2.1.229 或更新版本。

439 484 

440儲存庫提交的 `.claude/settings.json` 作為專案設定分層。會話也從執行器映像中的標準系統路徑讀取 [`managed-settings.json`](/docs/zh-TW/settings#where-settings-live)。其鍵是否與[伺服器受管設定](/docs/zh-TW/server-managed-settings)一起應用遵循 [Claude Code 如何組合受管來源](/docs/zh-TW/managed-settings#how-claude-code-combines-managed-sources):預設情況下,當您的組織傳遞任何伺服器受管鍵時,會話忽略執行器映像的檔案,除了 [Claude Code 從每個管理來源讀取的鍵](/docs/zh-TW/managed-settings#keys-read-from-every-admin-source),例如 `env` 塊、沙箱鎖、沙箱二進位路徑和 `forceRemoteSettingsRefresh`。請參閱[設定優先順序](/docs/zh-TW/settings#settings-precedence)。485* **放置位置**:執行器會將每個提供的 hook 指令碼寫入工作階段設定目錄中保留的 `hooks/.ccr-launcher/` 子目錄,並在一個獨立的設定檔中註冊這些指令碼,再透過 `--settings` 將該檔案傳遞給工作階段,而植入的 `settings.json` 和您位於 `hooks/<name>` 的指令碼則保持不變。執行器會為每個工作階段重新建立該保留子目錄,且不會將主機上 `~/.claude/hooks/.ccr-launcher/` 的內容植入工作階段。

486* **撰寫者**:控制平面以其自身部署中的固定常數填入這些指令碼,絕不來自個別工作階段或第三方輸入。

487* **仍受何者管控**:透過 `--settings` 傳遞的 hook 會進入一般的合併 hook 設定,而非受管層級,因此您的受管設定仍然適用。`disableAllHooks` 會停用它們,且它們不屬於 [`allowManagedHooksOnly`](/docs/zh-TW/settings-reference#allowmanagedhooksonly) 保持載入的類別。

441 488 

442當 Anthropic 的控制平面為會話提供 [Claude Code 掛鉤](/docs/zh-TW/hooks)時,執行器將它們安裝在旁邊,而不是在您自己的設定上。需要 Claude Code v2.1.229 或更新版本。489在 [Claude Tag](https://claude.com/docs/claude-tag/overview) 工作階段以外,自託管環境中的工作階段預設會關閉[自動記憶](/docs/zh-TW/memory#auto-memory)。若有應跨工作階段延續的指令,請使用執行器映像或儲存庫中的 `CLAUDE.md`。

443 490 

444* **它們著陸的位置**:執行器將每個提供的掛鉤指令碼寫入會話設定目錄的保留 `hooks/.ccr-launcher/` 子目錄,並在單獨的設定檔案中註冊指令碼,該檔案使用 `--settings` 傳遞給會話,保留植入的 `settings.json` 和您自己的指令碼在 `hooks/<name>` 不變。執行器為每個會話重建保留子目錄,不將主機內容在 `~/.claude/hooks/.ccr-launcher/` 植入會話。491執行器對主機 `~/.claude/` 的快照不包含 `projects/` 目錄。自動記憶的預設儲存位置就位於該目錄下。如果您將記憶檔案放在那裡,執行器不會將其植入工作階段,這些檔案也不會開啟自動記憶。

445* **誰編寫它們**:控制平面從其自己部署中的固定常數填充指令碼,永遠不從每個會話或第三方輸入。

446* **什麼仍然管理它們**:透過 `--settings` 傳遞的掛鉤進入普通合併掛鉤設定,而不是受管層,因此您的受管設定仍然適用。`disableAllHooks` 禁用它們,它們不在 [`allowManagedHooksOnly`](/docs/zh-TW/settings-reference#allowmanagedhooksonly) 保持載入的類別中。

447 492 

448<h3 id="repository-committed-permission-rules">493<h3 id="repository-committed-permission-rules">

449 儲存庫提交的權限規則494 儲存庫提交的權限規則

450</h3>495</h3>

451 496 

452不要在儲存庫提交的 `permissions.allow` 中放置裸 `"Edit"`、`"Write"` 或 `"NotebookEdit"` 條目。裸檔案工具規則匹配工具,無論路徑如何,授予主機上任何地方的寫入,而不僅僅是工作區,因此執行器的寫入範圍限制保護標誌會話;使用 [`--confine-repo-settings enforce`](/docs/zh-TW/self-hosted-environments-reference#runner-cli-flags) 它拒絕生成會話而不是記錄並繼續。請參閱[強化部分](/docs/zh-TW/self-hosted-environments-deploy#harden-your-deployment)。497請勿在儲存庫提交的 `permissions.allow` 中放入單獨的 `"Edit"`、`"Write"` 或 `"NotebookEdit"` 項目。單獨的檔案工具規則會不論路徑地比對該工具,授予主機上任何位置的寫入權,而不僅限於工作區,因此執行器的寫入範圍限制防護會對該工作階段發出警示;若使用 [`--confine-repo-settings enforce`](/docs/zh-TW/self-hosted-environments-reference#runner-cli-flags),它會拒絕啟動該工作階段,而非記錄後繼續。請參閱[強化部分](/docs/zh-TW/self-hosted-environments-deploy#harden-your-deployment)。

453 498 

454儲存庫根本不需要檔案工具規則:雲端會話[預先核准檔案編輯,無論模式如何](/docs/zh-TW/permission-modes#switch-permission-modes)。如果您確實提交規則,請將其限定於工作區,例如 `"Edit(/**)"`;單個前導斜杠相對於專案根目錄,這是會話的工作區。裸檔案工具規則在操作員的主機級 `settings.json` 中很好,因為該檔案不是儲存庫提交的。499儲存庫完全不需要檔案工具規則:雲端工作階段[無論模式為何都會預先核准檔案編輯](/docs/zh-TW/permission-modes#switch-permission-modes)。如果您確實提交了規則,請將其範圍限定於工作區,例如 `"Edit(/**)"`;單一前導斜線是相對於專案根目錄,也就是工作階段的工作區。單獨的檔案工具規則可以放在操作員的主機層級 `settings.json` 中,因為該檔案並非由儲存庫提交。

455 500 

456`defaultMode` 為 `auto` 僅從映像寬或使用者級設定檔案中尊重,因此簽出的儲存庫無法授予自己自動模式。有關雲端會話接受的模式和完整規則語法,請參閱[權限模式](/docs/zh-TW/permission-modes)。501`defaultMode` 為 `auto` 的設定僅在映像層級或使用者層級設定檔中才會生效,因此簽出的儲存庫無法自行授予自動模式。有關雲端工作階段接受的模式及完整規則語法,請參閱[權限模式](/docs/zh-TW/permission-modes)。

457 502 

458<h2 id="what’s-next">503<h2 id="what’s-next">

459 接下來504 接下來

Details

140 140 

141提交簽名需要 Git 2.34 或更新版本;執行器在啟動時檢查並在您的 Git 較舊時以錯誤退出。此旗標不配置推送認證,您仍在映像中提供。141提交簽名需要 Git 2.34 或更新版本;執行器在啟動時檢查並在您的 Git 較舊時以錯誤退出。此旗標不配置推送認證,您仍在映像中提供。

142 142 

143在 v2.1.280 或更新版本的執行器上,您從 `checkout` 或 `post-session` 生命週期 hook 所建立的提交也會以工作階段身分簽署,但不會加上 `Co-authored-by:` trailer。[生命週期 hook 內的 Git 設定](/docs/zh-TW/self-hosted-environments-configuration#git-configuration-inside-lifecycle-hooks)說明了執行器在這些 hook 內固定的 Git 設定。

144 

143<h3 id="ship-git-config-in-your-image">145<h3 id="ship-git-config-in-your-image">

144 在映像中提供 Git 配置146 在映像中提供 Git 配置

145</h3>147</h3>


435 437 

436給您的主機停止超時至少三個部分的總和:您配置的 `n` 分鐘、發佈後寬限期和[關閉時序](#shutdown-timing)描述的完整清空路徑。使用預設設定發佈後寬限期為 75 秒,清空路徑為 80 秒,因此允許 `n` 分鐘加 155 秒。執行器在設定 `--defer-shutdown-max-min` 時在啟動時列印此總和。438給您的主機停止超時至少三個部分的總和:您配置的 `n` 分鐘、發佈後寬限期和[關閉時序](#shutdown-timing)描述的完整清空路徑。使用預設設定發佈後寬限期為 75 秒,清空路徑為 80 秒,因此允許 `n` 分鐘加 155 秒。執行器在設定 `--defer-shutdown-max-min` 時在啟動時列印此總和。

437 439 

438如果停止超時在執行器完成之前用完,主機會殺死執行器。它仍然持有的工作階段不會獲得 `post-session` 鉤子。執行器不取消註冊,控制平面約一分鐘後重新排隊工作階段。如果您無法給停止超時該總和,請保留 `--defer-shutdown-max-min` 未設定,以便執行器改為在第一個信號上清空。440如果停止逾時在執行器完成之前用完,主機會終止執行器。它仍然持有的工作階段不會執行 `post-session` hook。執行器不會取消註冊,控制平面會在幾分鐘內重新排隊這些工作階段。如果您無法給停止逾時該總和,請保留 `--defer-shutdown-max-min` 不設定,讓執行器改為在第一個信號時清空。

439 441 

440<h3 id="what-reaches-a-running-post-session-hook">442<h3 id="what-reaches-a-running-post-session-hook">

441 什麼到達執行中的 post-session 鉤子443 什麼到達執行中的 post-session 鉤子


543 其他限制545 其他限制

544</h3>546</h3>

545 547 

546* **恢復的工作階段丟失未推送的工作**:當工作階段被釋放或其執行器重新啟動,使用者發送另一條訊息時,工作階段在新執行器上恢復,該執行器從其啟動分支再次複製儲存庫,因此工作階段未推送的工作消失。設定 [`--push-outcome-on-release`](/docs/zh-TW/self-hosted-environments-reference#runner-cli-flags) 以使執行器在釋放之前進行最佳努力推送工作階段的結果分支,以便恢復的工作階段從這些提交開始;這保留已提交的工作,而不是髒工作樹。在啟用它之前,限制誰可以推送到源遠端上的 `claude/*` refs,例如使用分支規則集:在恢復時,執行器提取先前推送的分支而不驗證誰推送了它,因此任何有權推送到這些 refs 的人都可以將內容放入恢復的工作區。執行器也在恢復時丟棄每個工作階段的配置,意味著工作階段的 Claude 配置目錄和工作階段寫入的任何 shell 狀態;`--push-outcome-on-release` 不涵蓋這些。548* **恢復的工作階段丟失未推送的工作**:新的執行器會從其起始分支再次複製儲存庫,因此工作階段未推送的工作會消失。

547* **私有儲存庫無法在工作階段中途添加**:在自託管執行器上,在工作階段啟動後添加到工作階段的儲存庫不會使用認證複製,因此添加失敗。在建立工作階段時選擇工作階段需要的每個儲存庫。549 * **若要保留已提交的工作**:設定 [`--push-outcome-on-release`](/docs/zh-TW/self-hosted-environments-reference#runner-cli-flags)。執行器會在釋放之前盡力推送工作階段的結果分支,恢復的工作階段便會從這些提交開始。未提交的變更仍會遺失。

550 * **啟用旗標之前**:限制誰可以推送到來源遠端上的 `claude/*` refs。在恢復時,執行器會提取先前推送的分支,而不驗證是誰推送的。

551* **工作階段中途新增的儲存庫可能無法複製**:Claude 透過 HTTPS 使用 `git clone` 複製它。在未使用 [`--use-anthropic-git-proxy`](#use-the-anthropic-git-proxy) 的執行器上,如果主機上沒有任何項目能讀取該儲存庫,複製會因 git 身分驗證錯誤而失敗。在可行的情況下,請在建立工作階段時選擇工作階段需要的每個儲存庫。

548* **某些連接器不出現在自託管工作階段中**:您在 claude.ai Settings 中尚未連接的連接器不在自託管工作階段中列出,工作階段不會提示您連接它。首先在 Settings 中連接它,然後啟動新工作階段。將連接器添加到已執行的工作階段也不會使其工具可用於 Claude;啟動新工作階段以拾取新添加的連接器。552* **某些連接器不出現在自託管工作階段中**:您在 claude.ai Settings 中尚未連接的連接器不在自託管工作階段中列出,工作階段不會提示您連接它。首先在 Settings 中連接它,然後啟動新工作階段。將連接器添加到已執行的工作階段也不會使其工具可用於 Claude;啟動新工作階段以拾取新添加的連接器。

549 553 

550<h3 id="report-an-issue">554<h3 id="report-an-issue">

Details

187 187 

188[包裝指令碼](/docs/zh-TW/self-hosted-environments-configuration#wrapper-scripts)在工作階段內執行,在 Claude 啟動之前。它們可以執行執行者二進位檔案的 `self-hosted-runner decode-token` 子命令,而不是呼叫 JWT 程式庫。子命令從位置引數、`CLAUDE_CODE_SESSION_ACCESS_TOKEN` 或管道 stdin 讀取令牌(按該順序),然後移除前綴、根據 JWKS 端點驗證簽名、檢查過期,並將聲明列印為 JSON。子命令僅執行簽名和過期檢查;它不檢查 `iss`、`aud` 或 `ccr:role`。當您的包裝器的驗證決定取決於這些聲明時,從列印的 JSON 讀取它們並明確比較它們。188[包裝指令碼](/docs/zh-TW/self-hosted-environments-configuration#wrapper-scripts)在工作階段內執行,在 Claude 啟動之前。它們可以執行執行者二進位檔案的 `self-hosted-runner decode-token` 子命令,而不是呼叫 JWT 程式庫。子命令從位置引數、`CLAUDE_CODE_SESSION_ACCESS_TOKEN` 或管道 stdin 讀取令牌(按該順序),然後移除前綴、根據 JWKS 端點驗證簽名、檢查過期,並將聲明列印為 JSON。子命令僅執行簽名和過期檢查;它不檢查 `iss`、`aud` 或 `ccr:role`。當您的包裝器的驗證決定取決於這些聲明時,從列印的 JSON 讀取它們並明確比較它們。

189 189 

190此命令提取建立者身份,優先選擇 SSO 提供者的主體,然後是電子郵件地址,然後是建立者的 `act.sub` 主體 `user:<id>` 或 `agent:<id>`:190此命令提取建立者身份,優先選擇電子郵件地址,然後是建立者的 `act.sub` 主體 `user:<id>` 或 `agent:<id>`:

191 191 

192```bash theme={null}192```bash theme={null}

193"$CLAUDE_RUNNER_CLAUDE_BIN" self-hosted-runner decode-token | jq -re '.act.attested_by.sub // .act.email // .act.sub'193"$CLAUDE_RUNNER_CLAUDE_BIN" self-hosted-runner decode-token | jq -re '.act.email // .act.sub'

194```194```

195 195 

196包裝器在 `CLAUDE_RUNNER_CLAUDE_BIN` 中接收執行者自身二進位檔案的絕對路徑;使用該路徑而不是 PATH 解析的 `claude`,以便解碼在執行者本身使用的相同二進位檔案上執行。196包裝器在 `CLAUDE_RUNNER_CLAUDE_BIN` 中接收執行者自身二進位檔案的絕對路徑;使用該路徑而不是 PATH 解析的 `claude`,以便解碼在執行者本身使用的相同二進位檔案上執行。


231| :- | :- |231| :- | :- |

232| `act.sub` | 建立使用者的 Anthropic 使用者 ID,形式為 `user:<id>`,或當您組織的服務身份建立工作階段時為 `agent:<id>`,就像它對 Claude Tag 頻道工作階段所做的那樣。 |232| `act.sub` | 建立使用者的 Anthropic 使用者 ID,形式為 `user:<id>`,或當您組織的服務身份建立工作階段時為 `agent:<id>`,就像它對 Claude Tag 頻道工作階段所做的那樣。 |

233| `act.email` | 建立使用者的電子郵件地址,當在工作階段建立時記錄了一個時。不要要求它;根據 `act.sub` 識別。 |233| `act.email` | 建立使用者的電子郵件地址,當在工作階段建立時記錄了一個時。不要要求它;根據 `act.sub` 識別。 |

234| `act.attested_by` | 上游身份提供者對建立使用者的證明,當可用時。`act.attested_by.sub` 是您的 SSO 提供者(例如 Google 或 Okta)簽發的主體。在對應到您自己系統中的身份時,優先選擇這個而不是 `act.email`。 |234| `act.attested_by` | 保留給上游身份提供者對建立使用者的證明。預期此欄位不存在,且不要依賴它。根據 `act.sub` 識別。若您需要地址,請在 `act.email` 存在時讀取它。 |

235| `act.act` | 生成工作階段的執行者。`act.act.sub` 是 `ccr:runner:<runner_id>`。 |235| `act.act` | 生成工作階段的執行者。`act.act.sub` 是 `ccr:runner:<runner_id>`。 |

236| `act.act.act` | 環境。`act.act.act.sub` 是 `ccr:pool:<pool_id>`。 |236| `act.act.act` | 環境。`act.act.act.sub` 是 `ccr:pool:<pool_id>`。 |

237| `act.act.act.act` | 建立執行者註冊的環境祕密的身份。鏈在此結束。 |237| `act.act.act.act` | 建立執行者註冊的環境祕密的身份。鏈在此結束。 |

Details

189 "Read(./secrets/**)"189 "Read(./secrets/**)"

190 ]190 ]

191 },191 },

192 // 在每個 Bash 命令前,執行版本庫中可以阻止它的指令碼192 // 在每個 Bash 命令前,執行儲存庫中可以阻止它的指令碼

193 "hooks": {193 "hooks": {

194 "PreToolUse": [194 "PreToolUse": [

195 {195 {


212 }212 }

213 }213 }

214 },214 },

215 // 啟用該市集中的一個外掛程式;來自外部來源(例如 GitHub 版本庫)的外掛程式仍需要每個人安裝一次215 // 啟用該市集中的一個外掛程式;來自外部來源(例如 GitHub 儲存庫)的外掛程式仍需要每個人安裝一次

216 "enabledPlugins": {216 "enabledPlugins": {

217 "code-formatter@acme-tools": true217 "code-formatter@acme-tools": true

218 },218 },

219 // 沙箱命令:可寫的建置目錄;npm 和 example.com 預先允許,其他主機仍會提示219 // 沙箱命令:可寫的建置目錄;npm 和 example.com 預先允許

220 "sandbox": {220 "sandbox": {

221 "enabled": true,221 "enabled": true,

222 "filesystem": {222 "filesystem": {


231 ]231 ]

232 }232 }

233 },233 },

234 // 將計畫檔案保留在版本庫內234 // 將計畫檔案保留在儲存庫內

235 "plansDirectory": "./plans"235 "plansDirectory": "./plans"

236 }236 }

237 ```237 ```


250* [`allowManagedPermissionRulesOnly`](/docs/zh-TW/settings-reference#allowmanagedpermissionrulesonly) 和 [`allowManagedMcpServersOnly`](/docs/zh-TW/settings-reference#allowmanagedmcpserversonly) 使受管權限和 MCP 允許清單成為唯一適用的清單250* [`allowManagedPermissionRulesOnly`](/docs/zh-TW/settings-reference#allowmanagedpermissionrulesonly) 和 [`allowManagedMcpServersOnly`](/docs/zh-TW/settings-reference#allowmanagedmcpserversonly) 使受管權限和 MCP 允許清單成為唯一適用的清單

251* `allowedMcpServers` 透過 URL 固定 MCP 伺服器251* `allowedMcpServers` 透過 URL 固定 MCP 伺服器

252* `strictKnownMarketplaces` 允許一個外掛程式市集252* `strictKnownMarketplaces` 允許一個外掛程式市集

253* `sandbox` 沙箱化命令,具有固定的網路允許清單且無沙箱外重試253* `sandbox` 沙箱化命令,具有固定的網路允許清單且無沙箱外重試。其 `failIfUnavailable` 鍵會[在沙箱無法執行的環境中阻止 Claude Code 啟動](/docs/zh-TW/sandboxing#enforce-sandboxing-with-managed-settings)

254* `requiredMinimumVersion` 設定最低 Claude Code 版本254* `requiredMinimumVersion` 設定最低 Claude Code 版本

255* `cleanupPeriodDays` 將工作階段記錄和其他本機資料的保留期縮短至七天255* `cleanupPeriodDays` 將工作階段記錄和其他本機資料的保留期縮短至七天

256* `companyAnnouncements` 在啟動時顯示訊息256* `companyAnnouncements` 在啟動時顯示訊息

settings-reference.md +660 −627

Details

577 設定索引577 設定索引

578</h2>578</h2>

579 579 

580下方的每個鍵都連結到其條目。範圍列出了[檔案](/docs/zh-TW/settings#settings-files-and-who-they-affect),其中可以使用該設定:`User` 是 `~/.claude/settings.json`、`Project` 是 `.claude/settings.json`、`Local` 是 `.claude/settings.local.json`,以及 `Managed` 是[您的組織部署的內容](/docs/zh-TW/managed-settings)。`Any file` 表示全部四個,`Global config` 表示 [`~/.claude.json`](#global-config-settings)。580下方的每個鍵都連結到其條目。範圍列出了可以放置該設定的[檔案](/docs/zh-TW/settings#settings-files-and-who-they-affect):`User` 是 `~/.claude/settings.json`、`Project` 是 `.claude/settings.json`、`Local` 是 `.claude/settings.local.json`,而 `Managed` 是[您的組織部署的內容](/docs/zh-TW/managed-settings)。`Any file` 表示全部四個,`Global config` 表示 [`~/.claude.json`](#global-config-settings)。

581 581 

582<ReferenceFilter582<ReferenceFilter

583 noun="settings"583 noun="settings"


591 591 

592| 鍵 | 說明 | 主題 | 範圍 |592| 鍵 | 說明 | 主題 | 範圍 |

593| :- | :- | :- | :- |593| :- | :- | :- | :- |

594| [`advisorModel`](#advisormodel) | 選擇當 Claude 詢問[顧問工具](/docs/zh-TW/advisor)時哪個模型回答 | 模型和回應 | Any file |594| [`advisorModel`](#advisormodel) | 選擇當 Claude 詢問[顧問工具](/docs/zh-TW/advisor)時由哪個模型回答 | 模型和回應 | Any file |

595| [`agent`](#agent) | 以命名的[子代理](/docs/zh-TW/sub-agents)及其提示、工具和模型開始每個工作階段 | 代理、工作階段和 worktrees | Any file |595| [`agent`](#agent) | 以具名的 [subagent](/docs/zh-TW/sub-agents) 及其提示詞、工具和模型開始每個工作階段 | Agent、工作階段和 worktree | Any file |

596| [`agentPushNotifEnabled`](#agentpushnotifenabled) | 讓 Claude 在決定時傳送[推播通知到您的手機](/docs/zh-TW/remote-control#mobile-push-notifications) | 遠端、桌面和通知 | Any file |596| [`agentPushNotifEnabled`](#agentpushnotifenabled) | 讓 Claude 在其決定時傳送[推播通知到您的手機](/docs/zh-TW/remote-control#mobile-push-notifications) | 遠端、桌面和通知 | Any file |

597| [`allowAllClaudeAiMcps`](#allowallclaudeaimcps) | 載入 Claude Code 自行擷取的 [claude.ai 連接器](/docs/zh-TW/mcp),以及已部署的 [`managed-mcp.json`](/docs/zh-TW/managed-mcp#exclusive-control-with-managed-mcp-json) | MCP | Managed |597| [`allowAllClaudeAiMcps`](#allowallclaudeaimcps) | 在已部署的 [`managed-mcp.json`](/docs/zh-TW/managed-mcp#exclusive-control-with-managed-mcp-json) 之外,同時載入 Claude Code 自行擷取的 [claude.ai 連接器](/docs/zh-TW/mcp) | MCP | Managed |

598| [`allowClaudeInChromeWithManagedMcp`](#allowclaudeinchromewithmanagedmcp) | 讓內建的[Chrome 中的 Claude](/docs/zh-TW/chrome) 伺服器與已部署的 [`managed-mcp.json`](/docs/zh-TW/managed-mcp#exclusive-control-with-managed-mcp-json) 並行執行 | MCP | Managed |598| [`allowClaudeInChromeWithManagedMcp`](#allowclaudeinchromewithmanagedmcp) | 讓內建的 [Claude in Chrome](/docs/zh-TW/chrome) 伺服器與已部署的 [`managed-mcp.json`](/docs/zh-TW/managed-mcp#exclusive-control-with-managed-mcp-json) 並行執行 | MCP | Managed |

599| [`allowedChannelPlugins`](#allowedchannelplugins) | 取代[頻道外掛程式](/docs/zh-TW/channels#restrict-which-channel-plugins-can-run)的預設允許清單,該清單可以推送訊息 | 外掛程式和技能 | Managed |599| [`allowedChannelPlugins`](#allowedchannelplugins) | 取代可推送訊息的[頻道外掛](/docs/zh-TW/channels#restrict-which-channel-plugins-can-run)預設允許清單 | 外掛和 skill | Managed |

600| [`allowedHttpHookUrls`](#allowedhttphookurls) | 限制[HTTP hooks](/docs/zh-TW/hooks)可以針對的 URL | Hooks 和自動化 | Any file |600| [`allowedHttpHookUrls`](#allowedhttphookurls) | 限制 [HTTP hook](/docs/zh-TW/hooks) 可以指向的 URL | Hook 和自動化 | Any file |

601| [`allowedMcpServers`](#allowedmcpservers) | 允許清單,其中列出使用者可以新增的 [MCP 伺服器](/docs/zh-TW/mcp) | MCP | Any file |601| [`allowedMcpServers`](#allowedmcpservers) | 以允許清單列出使用者可以新增的 [MCP 伺服器](/docs/zh-TW/mcp) | MCP | Any file |

602| [`allowedProviders`](#allowedproviders) | 限制[API 提供者](/docs/zh-TW/third-party-integrations)機器可以使用的 | 驗證和提供者 | Managed |602| [`allowedProviders`](#allowedproviders) | 限制機器可以使用的 [API 提供者](/docs/zh-TW/third-party-integrations) | 身分驗證和提供者 | Managed |

603| [`allowManagedHooksOnly`](#allowmanagedhooksonly) | 僅執行您的組織部署的 [hooks](/docs/zh-TW/hooks) | Hooks 和自動化 | Managed |603| [`allowManagedHooksOnly`](#allowmanagedhooksonly) | 僅執行您的組織部署的 [hook](/docs/zh-TW/hooks) | Hook 和自動化 | Managed |

604| [`allowManagedMcpServersOnly`](#allowmanagedmcpserversonly) | 使受管理的 [MCP](/docs/zh-TW/mcp) 允許清單成為唯一適用的清單 | MCP | Managed |604| [`allowManagedMcpServersOnly`](#allowmanagedmcpserversonly) | 使受管的 [MCP](/docs/zh-TW/mcp) 允許清單成為唯一適用的清單 | MCP | Managed |

605| [`allowManagedPermissionRulesOnly`](#allowmanagedpermissionrulesonly) | 使[受管理的設定](/docs/zh-TW/managed-settings)成為[權限規則](/docs/zh-TW/permissions#managed-settings)的唯一設定來源 | 權限設定 | Managed |605| [`allowManagedPermissionRulesOnly`](#allowmanagedpermissionrulesonly) | 使[受管設定](/docs/zh-TW/managed-settings)成為[權限規則](/docs/zh-TW/permissions#managed-settings)的唯一設定來源 | 權限設定 | Managed |

606| [`alwaysThinkingEnabled`](#alwaysthinkingenabled) | 為每個工作階段關閉[延伸思考](/docs/zh-TW/model-config#extended-thinking) | 模型和回應 | Any file |606| [`alwaysThinkingEnabled`](#alwaysthinkingenabled) | 為每個工作階段關閉[延伸思考](/docs/zh-TW/model-config#extended-thinking) | 模型和回應 | Any file |

607| [`apiKeyHelper`](#apikeyhelper) | 使用您自己的命令產生 [API 認證](/docs/zh-TW/authentication#credential-management) | 驗證和提供者 | Any file |607| [`apiKeyHelper`](#apikeyhelper) | 使用您自己的命令產生 [API 憑證](/docs/zh-TW/authentication#credential-management) | 身分驗證和提供者 | Any file |

608| [`askUserQuestionTimeout`](#askuserquestiontimeout) | 讓未回答的問題在閒置時間後[自動繼續](/docs/zh-TW/tools-reference#question-auto-continue-timeout) | 介面和終端 | User or managed |608| [`askUserQuestionTimeout`](#askuserquestiontimeout) | 讓未回答的問題在閒置一段時間後[自動繼續](/docs/zh-TW/tools-reference#question-auto-continue-timeout) | 介面和終端機 | User or managed |

609| [`appendPlugins`](#appendplugins) | 在使用者安裝的每個 mod 之後執行您的組織的 [mods](/docs/zh-TW/plugins/mods/admin) | 外掛程式和技能 | User or managed |609| [`appendPlugins`](#appendplugins) | 在使用者安裝的每個 mod 之後執行您組織的 [mod](/docs/zh-TW/plugins/mods/admin) | 外掛和 skill | User or managed |

610| [`attribution`](#attribution) | 自訂 Claude Code 新增到提交和提取請求的歸屬 | Git 和歸屬 | Any file |610| [`attribution`](#attribution) | 自訂 Claude Code 新增到提交和 pull request 的歸屬 | Git 和歸屬 | Any file |

611| [`attribution.commit`](#attribution-commit) | 變更或隱藏 Claude Code 新增到提交的預告片 | Git 和歸屬 | Any file |611| [`attribution.commit`](#attribution-commit) | 變更或隱藏 Claude Code 新增到提交的 trailer | Git 和歸屬 | Any file |

612| [`attribution.pr`](#attribution-pr) | 變更或隱藏提取請求說明中的歸屬行 | Git 和歸屬 | Any file |612| [`attribution.pr`](#attribution-pr) | 變更或隱藏 pull request 說明中的歸屬行 | Git 和歸屬 | Any file |

613| [`attribution.sessionUrl`](#attribution-sessionurl) | 從[雲端](/docs/zh-TW/claude-code-on-the-web)和[遠端控制](/docs/zh-TW/remote-control)提交中省略 claude.ai 工作階段連結 | Git 和歸屬 | Any file |613| [`attribution.sessionUrl`](#attribution-sessionurl) | 從[雲端](/docs/zh-TW/claude-code-on-the-web)和 [Remote Control](/docs/zh-TW/remote-control) 提交中省略 claude.ai 工作階段連結 | Git 和歸屬 | Any file |

614| [`autoCompactEnabled`](#autocompactenabled) | 關閉或開啟[自動壓縮](/docs/zh-TW/context-window) | 記憶和內容 | Any file |614| [`autoCompactEnabled`](#autocompactenabled) | 關閉或開啟[自動壓縮](/docs/zh-TW/context-window) | 記憶和上下文 | Any file |

615| [`autoCompactWindow`](#autocompactwindow) | 設定在 Claude Code [壓縮](/docs/zh-TW/context-window)之前內容有多滿 | 記憶和內容 | Any file |615| [`autoCompactWindow`](#autocompactwindow) | 設定上下文達到多滿時 Claude Code 才進行[壓縮](/docs/zh-TW/context-window) | 記憶和上下文 | Any file |

616| [`autoConnectIde`](#autoconnectide) | 從外部終端自動連線到執行中的 [VS Code](/docs/zh-TW/vs-code) 或 [JetBrains](/docs/zh-TW/jetbrains#from-external-terminals) IDE | 全域設定設定 | Global config |616| [`autoConnectIde`](#autoconnectide) | 從外部終端機自動連線到執行中的 [VS Code](/docs/zh-TW/vs-code) 或 [JetBrains](/docs/zh-TW/jetbrains#from-external-terminals) IDE | 全域組態設定 | Global config |

617| [`autoContinueAtUsageLimit`](#autocontinueatusagelimit) | 在開啟的工作階段中等待,並在 claude.ai 使用限制重設後[自動繼續工作](/docs/zh-TW/interactive-mode#wait-for-a-usage-limit-to-reset) | 介面和終端 | User or managed |617| [`autoContinueAtUsageLimit`](#autocontinueatusagelimit) | 在開啟的工作階段中等待,並在 claude.ai 用量上限重設後[自動繼續工作](/docs/zh-TW/interactive-mode#wait-for-a-usage-limit-to-reset) | 介面和終端機 | User or managed |

618| [`autoInstallIdeExtension`](#autoinstallideextension) | 關閉從 VS Code 終端自動安裝 [IDE 擴充功能](/docs/zh-TW/vs-code#install-the-extension) | 全域設定設定 | Global config |618| [`autoInstallIdeExtension`](#autoinstallideextension) | 關閉從 VS Code 終端機自動安裝 [IDE 擴充功能](/docs/zh-TW/vs-code#install-the-extension) | 全域組態設定 | Global config |

619| [`autoMemoryDirectory`](#automemorydirectory) | 在您選擇的目錄中儲存[自動記憶](/docs/zh-TW/memory#auto-memory) | 記憶和內容 | Any file |619| [`autoMemoryDirectory`](#automemorydirectory) | 將[自動記憶](/docs/zh-TW/memory#auto-memory)儲存在您選擇的目錄中 | 記憶和上下文 | Any file |

620| [`autoMemoryEnabled`](#automemoryenabled) | 關閉或開啟[自動記憶](/docs/zh-TW/memory#auto-memory) | 記憶和內容 | Any file |620| [`autoMemoryEnabled`](#automemoryenabled) | 關閉或開啟[自動記憶](/docs/zh-TW/memory#auto-memory) | 記憶和上下文 | Any file |

621| [`autoMode`](#automode) | 將您自己的允許和拒絕規則新增到[自動模式](/docs/zh-TW/permission-modes#eliminate-prompts-with-auto-mode)分類器 | 權限設定 | User or managed |621| [`autoMode`](#automode) | 將您自己的允許和拒絕規則新增到[自動模式](/docs/zh-TW/permission-modes#eliminate-prompts-with-auto-mode)分類器 | 權限設定 | User or managed |

622| [`autoMode.classifyAllShell`](#automode-classifyallshell) | 透過[自動模式分類器](/docs/zh-TW/permission-modes#what-the-classifier-blocks-by-default)傳送每個 shell 命令,即使是狹隘允許規則相符的命令 | 權限設定 | User or managed |622| [`autoMode.classifyAllShell`](#automode-classifyallshell) | 將每個 shell 命令都送交[自動模式分類器](/docs/zh-TW/permission-modes#what-the-classifier-blocks-by-default),即使是符合狹窄允許規則的命令 | 權限設定 | User or managed |

623| [`autoScrollEnabled`](#autoscrollenabled) | 在全螢幕呈現中[跟隨新輸出](/docs/zh-TW/fullscreen#auto-follow)到底部 | 介面和終端 | Any file |623| [`autoScrollEnabled`](#autoscrollenabled) | 在全螢幕呈現中[跟隨新輸出](/docs/zh-TW/fullscreen#auto-follow)捲動到底部 | 介面和終端機 | Any file |

624| [`autoUpdatesChannel`](#autoupdateschannel) | 遵循穩定[發行頻道](/docs/zh-TW/setup#configure-release-channel)而不是最新版本 | 更新和版本控制 | Any file |624| [`autoUpdatesChannel`](#autoupdateschannel) | 遵循 stable [發布通道](/docs/zh-TW/setup#configure-release-channel)而非 latest | 更新和版本控制 | Any file |

625| [`availableModels`](#availablemodels) | [限制人員可以選擇的模型](/docs/zh-TW/model-config#restrict-model-selection) | 模型和回應 | Any file |625| [`availableModels`](#availablemodels) | [限制人員可以選擇的模型](/docs/zh-TW/model-config#restrict-model-selection) | 模型和回應 | Any file |

626| [`availableModelsMatch`](#availablemodelsmatch) | 讓每個 `availableModels` 模型 ID 條目[僅允許它命名的版本](/docs/zh-TW/model-config#block-specific-models-or-versions) | 模型和回應 | Managed |626| [`availableModelsMatch`](#availablemodelsmatch) | 讓每個 `availableModels` 模型 ID 條目[僅允許其指定的版本](/docs/zh-TW/model-config#block-specific-models-or-versions) | 模型和回應 | Managed |

627| [`awaySummaryEnabled`](#awaysummaryenabled) | 關閉當您回到終端時顯示的[工作階段摘要](/docs/zh-TW/interactive-mode#session-recap) | 遠端、桌面和通知 | Any file |627| [`awaySummaryEnabled`](#awaysummaryenabled) | 關閉您回到終端機時顯示的[工作階段回顧](/docs/zh-TW/interactive-mode#session-recap) | 遠端、桌面和通知 | Any file |

628| [`awsAuthRefresh`](#awsauthrefresh) | 使用您自己的命令重新整理 `.aws` 中過期的 [Bedrock 認證](/docs/zh-TW/amazon-bedrock#advanced-credential-configuration) | 驗證和提供者 | Any file |628| [`awsAuthRefresh`](#awsauthrefresh) | 使用您自己的命令重新整理 `.aws` 中過期的 [Bedrock 憑證](/docs/zh-TW/amazon-bedrock#advanced-credential-configuration) | 身分驗證和提供者 | Any file |

629| [`awsCredentialExport`](#awscredentialexport) | 從您自己的命令以 JSON 形式提供 [Bedrock 認證](/docs/zh-TW/amazon-bedrock#advanced-credential-configuration) | 驗證和提供者 | Any file |629| [`awsCredentialExport`](#awscredentialexport) | 從您自己的命令以 JSON 形式提供 [Bedrock 憑證](/docs/zh-TW/amazon-bedrock#advanced-credential-configuration) | 身分驗證和提供者 | Any file |

630| [`axScreenReader`](#axscreenreader) | 呈現[螢幕閱讀器友善的輸出](/docs/zh-TW/accessibility) | 介面和終端 | Any file |630| [`axScreenReader`](#axscreenreader) | 呈現[對螢幕閱讀器友善的輸出](/docs/zh-TW/accessibility) | 介面和終端機 | Any file |

631| [`bashEditDiffEnabled`](#basheditdiffenabled) | 在每個權限模式中記錄 [Bash 命令變更的檔案](/docs/zh-TW/hooks#bash) | 介面和終端 | User or managed |631| [`bashEditDiffEnabled`](#basheditdiffenabled) | 在每個權限模式中記錄 [Bash 命令執行期間變更的檔案](/docs/zh-TW/hooks#bash) | 介面和終端機 | User or managed |

632| [`bashOutputMaxChars`](#bashoutputmaxchars) | 設定成功命令的[輸出](/docs/zh-TW/tools-reference#output-limits)有多少 Claude 內聯接收 | 記憶和內容 | Any file |632| [`bashOutputMaxChars`](#bashoutputmaxchars) | 設定 Claude 以內嵌方式接收成功命令[輸出](/docs/zh-TW/tools-reference#output-limits)的多少內容 | 記憶和上下文 | Any file |

633| [`blockedMarketplaces`](#blockedmarketplaces) | 為您的組織封鎖[外掛程式市集](/docs/zh-TW/plugins/overview)來源 | 外掛程式和技能 | Managed |633| [`blockedMarketplaces`](#blockedmarketplaces) | 為您的組織封鎖[外掛市集](/docs/zh-TW/plugins/overview)來源 | 外掛和 skill | Managed |

634| [`browserExternalPageTools`](#browserexternalpagetools) | 在[桌面](/docs/zh-TW/desktop)瀏覽器窗格中的外部頁面上關閉 Claude 的工具 | 工具 | Managed |634| [`browserExternalPageTools`](#browserexternalpagetools) | 讓 Claude 的工具不在[桌面版](/docs/zh-TW/desktop)瀏覽器窗格的外部頁面上運作 | 工具 | Managed |

635| [`channelsEnabled`](#channelsenabled) | 為您的組織允許[頻道](/docs/zh-TW/channels#enable-channels-for-your-organization) | 外掛程式和技能 | Managed |635| [`channelsEnabled`](#channelsenabled) | 為您的組織允許[頻道](/docs/zh-TW/channels#enable-channels-for-your-organization) | 外掛和 skill | Managed |

636| [`claudeInChromeDefaultEnabled`](#claudeinchromedefaultenabled) | 在每個互動式 CLI 工作階段中開啟 [Chrome 整合](/docs/zh-TW/chrome),無需傳遞 `--chrome` | 全域設定設定 | Global config |636| [`claudeInChromeDefaultEnabled`](#claudeinchromedefaultenabled) | 在每個互動式 CLI 工作階段中開啟 [Chrome 整合](/docs/zh-TW/chrome),無需傳遞 `--chrome` | 全域組態設定 | Global config |

637| [`claudeMd`](#claudemd) | 從受管理的設定注入組織範圍的 [CLAUDE.md](/docs/zh-TW/memory#deploy-organization-wide-claude-md) 指示 | 記憶和內容 | Managed |637| [`claudeMd`](#claudemd) | 從受管設定注入組織範圍的 [CLAUDE.md](/docs/zh-TW/memory#deploy-organization-wide-claude-md) 指示 | 記憶和上下文 | Managed |

638| [`claudeMdExcludes`](#claudemdexcludes) | 在記憶載入時跳過特定的 [CLAUDE.md](/docs/zh-TW/memory#exclude-specific-claude-md-files) 檔案 | 記憶和內容 | Any file |638| [`claudeMdExcludes`](#claudemdexcludes) | 在記憶載入時跳過特定的 [CLAUDE.md](/docs/zh-TW/memory#exclude-specific-claude-md-files) 檔案 | 記憶和上下文 | Any file |

639| [`cleanupPeriodDays`](#cleanupperioddays) | 選擇 Claude Code 在刪除[文字記錄](/docs/zh-TW/data-usage#data-retention)之前保留多少天 | 隱私和遙測 | Any file |639| [`cleanupPeriodDays`](#cleanupperioddays) | 選擇 Claude Code 在刪除[逐字稿](/docs/zh-TW/data-usage#data-retention)之前保留多少天 | 隱私和遙測 | Any file |

640| [`companyAnnouncements`](#companyannouncements) | 在啟動時顯示您組織的公告 | 介面和終端 | Any file |640| [`companyAnnouncements`](#companyannouncements) | 在啟動時顯示您組織的公告 | 介面和終端機 | Any file |

641| [`copyFullResponse`](#copyfullresponse) | 讓 [`/copy`](/docs/zh-TW/commands) 複製完整回應,無需顯示程式碼區塊選擇器 | 全域設定設定 | Global config |641| [`copyFullResponse`](#copyfullresponse) | 讓 [`/copy`](/docs/zh-TW/commands) 複製完整回應,不顯示程式碼區塊選擇器 | 全域組態設定 | Global config |

642| [`copyOnSelect`](#copyonselect) | 關閉在[全螢幕呈現](/docs/zh-TW/fullscreen#use-the-mouse)和代理檢視中使用滑鼠選擇的文字自動複製 | 全域設定設定 | Global config |642| [`copyOnSelect`](#copyonselect) | 關閉在[全螢幕呈現](/docs/zh-TW/fullscreen#use-the-mouse)和 agent 檢視中以滑鼠選取文字時的自動複製 | 全域組態設定 | Global config |

643| [`crossSessionInbound`](#crosssessioninbound) | 選擇 Claude Code 是否傳遞[來自您其他工作階段的訊息](/docs/zh-TW/cross-session-messaging#control-inbound-messages)、顯示通知而不傳遞訊息,或拒絕訊息 | 代理、工作階段和 worktrees | Any file |643| [`crossSessionInbound`](#crosssessioninbound) | 選擇 Claude Code 是否傳遞[來自您其他工作階段的訊息](/docs/zh-TW/cross-session-messaging#control-inbound-messages)、只顯示通知而不傳遞,或拒絕這些訊息 | Agent、工作階段和 worktree | Any file |

644| [`defaultShell`](#defaultshell) | 選擇 Bash 或 PowerShell 執行您使用 [`!` 前置詞](/docs/zh-TW/interactive-mode#shell-mode-with-prefix)輸入的 shell 命令 | 介面和終端 | Any file |644| [`defaultShell`](#defaultshell) | 選擇由 Bash 或 PowerShell 執行您以 [`!` 前綴](/docs/zh-TW/interactive-mode#shell-mode-with-prefix)輸入的 shell 命令 | 介面和終端機 | Any file |

645| [`defaultToAgentsView`](#defaulttoagentsview) | 當您執行不帶引數的 `claude` 時,開啟[代理檢視](/docs/zh-TW/agent-view)而不是新對話 | 全域設定設定 | Global config |645| [`defaultToAgentsView`](#defaulttoagentsview) | 當您不帶引數執行 `claude` 時,開啟 [agent 檢視](/docs/zh-TW/agent-view)而非新對話 | 全域組態設定 | Global config |

646| [`deniedMcpServers`](#deniedmcpservers) | 按 URL、命令或名稱封鎖特定的 [MCP 伺服器](/docs/zh-TW/mcp) | MCP | Any file |646| [`deniedMcpServers`](#deniedmcpservers) | 依 URL、命令或名稱封鎖特定的 [MCP 伺服器](/docs/zh-TW/mcp) | MCP | Any file |

647| [`deniedModels`](#deniedmodels) | [封鎖特定模型](/docs/zh-TW/model-config#block-specific-models-or-versions),即使是 `availableModels` 允許的模型 | 模型和回應 | Managed |647| [`deniedModels`](#deniedmodels) | [封鎖特定模型](/docs/zh-TW/model-config#block-specific-models-or-versions),即使 `availableModels` 允許這些模型 | 模型和回應 | Managed |

648| [`desktopSessionCleanupPeriodDays`](#desktopsessioncleanupperioddays) | 為[Claude Desktop 和 Cowork 文字記錄](/docs/zh-TW/claude-directory#cleaned-up-automatically)設定天數年齡限制 | 隱私和遙測 | User or managed |648| [`desktopSessionCleanupPeriodDays`](#desktopsessioncleanupperioddays) | 為 [Claude Desktop 和 Cowork 逐字稿](/docs/zh-TW/claude-directory#cleaned-up-automatically)設定以天為單位的保存期限 | 隱私和遙測 | User or managed |

649| [`dialogExpiry`](#dialogexpiry) | 設定 Claude Code 在取消對話之前等待[遠端控制](/docs/zh-TW/remote-control)或 SDK 主機回答轉送對話的時間 | 介面和終端 | User or managed |649| [`dialogExpiry`](#dialogexpiry) | 設定 Claude Code 在取消轉送的對話框之前,等待 [Remote Control](/docs/zh-TW/remote-control) 或 SDK 主機回應的時間 | 介面和終端機 | User or managed |

650| [`diffTool`](#difftool) | 選擇 Claude 提議的檔案變更是否在 [VS Code](/docs/zh-TW/vs-code) 或 [JetBrains](/docs/zh-TW/jetbrains#features) diff 檢視器中開啟,或保留在終端中 | 全域設定設定 | Global config |650| [`diffTool`](#difftool) | 選擇 Claude 提議的檔案變更是在 [VS Code](/docs/zh-TW/vs-code) 或 [JetBrains](/docs/zh-TW/jetbrains#features) 差異檢視器中開啟,還是保留在終端機中 | 全域組態設定 | Global config |

651| [`disableAgentView`](#disableagentview) | 關閉背景代理和[代理檢視](/docs/zh-TW/agent-view) | 代理、工作階段和 worktrees | Any file |651| [`disableAgentView`](#disableagentview) | 關閉背景 agent 和 [agent 檢視](/docs/zh-TW/agent-view) | Agent、工作階段和 worktree | Any file |

652| [`disableAllHooks`](#disableallhooks) | 一次關閉 [hooks](/docs/zh-TW/hooks)、自訂[狀態行](/docs/zh-TW/statusline)和自訂 [`@` 檔案建議](/docs/zh-TW/interactive-mode#quick-commands)命令 | Hooks 和自動化 | Any file |652| [`disableAllHooks`](#disableallhooks) | 一次關閉 [hook](/docs/zh-TW/hooks)、自訂[狀態列](/docs/zh-TW/statusline)和自訂 [`@` 檔案建議](/docs/zh-TW/interactive-mode#quick-commands)命令 | Hook 和自動化 | Any file |

653| [`disableArtifact`](#disableartifact) | 已棄用;使用 `enableArtifact` 關閉 [Artifact 工具](/docs/zh-TW/artifacts) | 遠端、桌面和通知 | Any file |653| [`disableArtifact`](#disableartifact) | 已棄用;請使用 `enableArtifact` 關閉 [Artifact 工具](/docs/zh-TW/artifacts) | 遠端、桌面和通知 | Any file |

654| [`disableAutoMode`](#disableautomode) | 從權限模式循環中移除[自動模式](/docs/zh-TW/permission-modes#eliminate-prompts-with-auto-mode) | 權限設定 | Any file |654| [`disableAutoMode`](#disableautomode) | 從權限模式循環中移除[自動模式](/docs/zh-TW/permission-modes#eliminate-prompts-with-auto-mode) | 權限設定 | Any file |

655| [`disableBrowserExternalNavigation`](#disablebrowserexternalnavigation) | 將[桌面](/docs/zh-TW/desktop)瀏覽器窗格限制為人員和 Claude 的 localhost | 工具 | Managed |655| [`disableBrowserExternalNavigation`](#disablebrowserexternalnavigation) | 將[桌面版](/docs/zh-TW/desktop)瀏覽器窗格限制為僅限 localhost,適用於人員和 Claude | 工具 | Managed |

656| [`disableBundledSkills`](#disablebundledskills) | 關閉 Claude Code 包含的[技能](/docs/zh-TW/skills#bundled-skills)和[工作流程](/docs/zh-TW/workflows) | 外掛程式和技能 | Any file |656| [`disableBundledSkills`](#disablebundledskills) | 關閉 Claude Code 隨附的 [skill](/docs/zh-TW/skills#bundled-skills) 和[工作流程](/docs/zh-TW/workflows) | 外掛和 skill | Any file |

657| [`disableClaudeAiConnectors`](#disableclaudeaiconnectors) | 關閉 [claude.ai 連接器](/docs/zh-TW/mcp#disable-claude-ai-connectors),使 Claude Code 不會擷取它們 | MCP | Any file |657| [`disableClaudeAiConnectors`](#disableclaudeaiconnectors) | 關閉 [claude.ai 連接器](/docs/zh-TW/mcp#disable-claude-ai-connectors),讓 Claude Code 不擷取它們 | MCP | Any file |

658| [`disableCommandPluginSources`](#disablecommandpluginsources) | 封鎖透過執行市集宣告的命令安裝的[外掛程式](/docs/zh-TW/plugins/overview) | 外掛程式和技能 | Managed |658| [`disableCommandPluginSources`](#disablecommandpluginsources) | 封鎖透過執行市集宣告之命令來安裝的[外掛](/docs/zh-TW/plugins/overview) | 外掛和 skill | Managed |

659| [`disableDeepLinkRegistration`](#disabledeeplinkregistration) | 停止 Claude Code 註冊 [`claude-cli://` 處理器](/docs/zh-TW/deep-links) | 遠端、桌面和通知 | Any file |659| [`disableDeepLinkRegistration`](#disabledeeplinkregistration) | 讓 Claude Code 不註冊 [`claude-cli://` 處理常式](/docs/zh-TW/deep-links) | 遠端、桌面和通知 | Any file |

660| [`disableDesktopLocalSessions`](#disabledesktoplocalsessions) | 關閉在裝置上執行的[桌面代碼工作階段](/docs/zh-TW/desktop#local-sessions-on-managed-devices),只留下 SSH 到其他主機和雲端 | 遠端、桌面和通知 | Managed |660| [`disableDesktopLocalSessions`](#disabledesktoplocalsessions) | 關閉在裝置上執行的 [Desktop Code 工作階段](/docs/zh-TW/desktop#local-sessions-on-managed-devices),只保留透過 SSH 連到其他主機和雲端 | 遠端、桌面和通知 | Managed |

661| [`disabledMcpjsonServers`](#disabledmcpjsonservers) | 拒絕來自專案 [`.mcp.json`](/docs/zh-TW/mcp#project-scope) 的特定伺服器 | MCP | Any file |661| [`disabledMcpjsonServers`](#disabledmcpjsonservers) | 拒絕專案 [`.mcp.json`](/docs/zh-TW/mcp#project-scope) 中的特定伺服器 | MCP | Any file |

662| [`disableMobileSimulatorTools`](#disablemobilesimulatortools) | 在[桌面](/docs/zh-TW/desktop) iOS 模擬器窗格中封鎖 Claude 的工具 | 工具 | Managed |662| [`disableMobileSimulatorTools`](#disablemobilesimulatortools) | 在[桌面版](/docs/zh-TW/desktop) iOS Simulator 窗格中封鎖 Claude 的工具 | 工具 | Managed |

663| [`disableRemoteControl`](#disableremotecontrol) | 在可以啟動的任何地方關閉[遠端控制](/docs/zh-TW/remote-control) | 遠端、桌面和通知 | Any file |663| [`disableRemoteControl`](#disableremotecontrol) | 在所有可啟動的地方關閉 [Remote Control](/docs/zh-TW/remote-control) | 遠端、桌面和通知 | Any file |

664| [`disableSideloadFlags`](#disablesideloadflags) | 拒絕側載[外掛程式](/docs/zh-TW/plugins/overview)、[子代理](/docs/zh-TW/sub-agents)和 [MCP 伺服器](/docs/zh-TW/mcp)的 CLI 旗標 | 企業和受管理的設定 | Managed |664| [`disableSideloadFlags`](#disablesideloadflags) | 拒絕用於側載[外掛](/docs/zh-TW/plugins/overview)、[subagent](/docs/zh-TW/sub-agents) 和 [MCP 伺服器](/docs/zh-TW/mcp)的 CLI 旗標 | 企業和受管設定 | Managed |

665| [`disableSkillShellExecution`](#disableskillshellexecution) | 停止[技能](/docs/zh-TW/skills)和自訂命令執行內聯 shell | 外掛程式和技能 | Any file |665| [`disableSkillShellExecution`](#disableskillshellexecution) | 禁止 [skill](/docs/zh-TW/skills) 和自訂命令執行內嵌 shell | 外掛和 skill | Any file |

666| [`disableWorkflows`](#disableworkflows) | 為所有人關閉[動態工作流程](/docs/zh-TW/workflows);使用 `enableWorkflows` 自行使用 | Hooks 和自動化 | Any file |666| [`disableWorkflows`](#disableworkflows) | 為所有人關閉[動態工作流程](/docs/zh-TW/workflows);若只針對自己,請使用 `enableWorkflows` | Hook 和自動化 | Any file |

667| [`editorMode`](#editormode) | 在輸入提示中使用 [vim 快捷鍵](/docs/zh-TW/interactive-mode#vim-editor-mode) | 介面和終端 | Any file |667| [`editorMode`](#editormode) | 在輸入提示詞時使用 [vim 按鍵綁定](/docs/zh-TW/interactive-mode#vim-editor-mode) | 介面和終端機 | Any file |

668| [`effortLevel`](#effortlevel) | 為沒有已儲存等級的模型設定預設[努力等級](/docs/zh-TW/model-config#adjust-effort-level) | 模型和回應 | Any file |668| [`effortLevel`](#effortlevel) | 為沒有已儲存等級的模型設定預設 [effort 等級](/docs/zh-TW/model-config#adjust-effort-level) | 模型和回應 | Any file |

669| [`emojiCompletionEnabled`](#emojicompletionenabled) | 在提示輸入中關閉 [`:shortcode:` emoji 建議和取代](/docs/zh-TW/interactive-mode#emoji-shortcodes) | 介面和終端 | Any file |669| [`emojiCompletionEnabled`](#emojicompletionenabled) | 在提示詞輸入中關閉 [`:shortcode:` emoji 建議和取代](/docs/zh-TW/interactive-mode#emoji-shortcodes) | 介面和終端機 | Any file |

670| [`enableAllProjectMcpServers`](#enableallprojectmcpservers) | 批准專案 [`.mcp.json`](/docs/zh-TW/mcp#project-server-approvals-and-workspace-trust) 檔案中的每個伺服器,無需提示 | MCP | Any file |670| [`enableAllProjectMcpServers`](#enableallprojectmcpservers) | 核准專案 [`.mcp.json`](/docs/zh-TW/mcp#project-server-approvals-and-workspace-trust) 檔案中的每個伺服器,無需提示 | MCP | Any file |

671| [`enableArtifact`](#enableartifact) | 使用任何檔案中的 `false` 關閉 [Artifact 工具](/docs/zh-TW/artifacts);沒有檔案可以將其重新開啟 | 遠端、桌面和通知 | Any file |671| [`enableArtifact`](#enableartifact) | 在任何檔案中設為 `false` 即可關閉 [Artifact 工具](/docs/zh-TW/artifacts);任何檔案都無法將其重新開啟 | 遠端、桌面和通知 | Any file |

672| [`enabledMcpjsonServers`](#enabledmcpjsonservers) | 批准來自專案 [`.mcp.json`](/docs/zh-TW/mcp#project-server-approvals-and-workspace-trust) 的特定伺服器 | MCP | Any file |672| [`enabledMcpjsonServers`](#enabledmcpjsonservers) | 核准專案 [`.mcp.json`](/docs/zh-TW/mcp#project-server-approvals-and-workspace-trust) 中的特定伺服器 | MCP | Any file |

673| [`enabledPlugins`](#enabledplugins) | 按範圍開啟或關閉個別[外掛程式](/docs/zh-TW/plugins/overview) | 外掛程式和技能 | Any file |673| [`enabledPlugins`](#enabledplugins) | 依範圍開啟或關閉個別[外掛](/docs/zh-TW/plugins/overview) | 外掛和 skill | Any file |

674| [`enableWorkflows`](#enableworkflows) | 根據您的計畫預設開啟或關閉[動態工作流程](/docs/zh-TW/workflows) | Hooks 和自動化 | Any file |674| [`enableWorkflows`](#enableworkflows) | 相對於您方案的預設值開啟或關閉[動態工作流程](/docs/zh-TW/workflows) | Hook 和自動化 | Any file |

675| [`enforceAvailableModels`](#enforceavailablemodels) | 將 [`/model` 預設選擇](/docs/zh-TW/model-config#enforce-the-allowlist-for-the-default-model)保留在您的 `availableModels` 允許清單內 | 模型和回應 | Any file |675| [`enforceAvailableModels`](#enforceavailablemodels) | 將 [`/model` 的 Default 選項](/docs/zh-TW/model-config#enforce-the-allowlist-for-the-default-model)限制在您的 `availableModels` 允許清單內 | 模型和回應 | Any file |

676| [`env`](#env) | 為每個工作階段及其子程序設定[環境變數](/docs/zh-TW/env-vars#in-settings-files) | 記憶和內容 | Any file |676| [`env`](#env) | 為每個工作階段及其子程序設定[環境變數](/docs/zh-TW/env-vars#in-settings-files) | 記憶和上下文 | Any file |

677| [`externalEditorContext`](#externaleditorcontext) | 當您按下 [Ctrl+G](/docs/zh-TW/interactive-mode#general-controls) 編輯時,將 Claude 的最後回應顯示為註解 | 全域設定設定 | Global config |677| [`externalEditorContext`](#externaleditorcontext) | 當您按下 [Ctrl+G](/docs/zh-TW/interactive-mode#general-controls) 編輯時,將 Claude 的最後回應顯示為註解 | 全域組態設定 | Global config |

678| [`extraKnownMarketplaces`](#extraknownmarketplaces) | 為存放庫或組織註冊[市集](/docs/zh-TW/plugins/overview) | 外掛程式和技能 | Any file |678| [`extraKnownMarketplaces`](#extraknownmarketplaces) | 為儲存庫或組織註冊[市集](/docs/zh-TW/plugins/overview) | 外掛和 skill | Any file |

679| [`fallbackModel`](#fallbackmodel) | 為主要模型過載時命名[備份模型](/docs/zh-TW/model-config#fallback-model-chains) | 模型和回應 | Any file |679| [`fallbackModel`](#fallbackmodel) | 指定主要模型過載時使用的[備用模型](/docs/zh-TW/model-config#fallback-model-chains) | 模型和回應 | Any file |

680| [`fastMode`](#fastmode) | 為可用的工作階段開啟[快速模式](/docs/zh-TW/fast-mode) | 模型和回應 | Any file |680| [`fastMode`](#fastmode) | 在可用的工作階段中開啟[快速模式](/docs/zh-TW/fast-mode) | 模型和回應 | Any file |

681| [`fastModePerSessionOptIn`](#fastmodepersessionoptin) | 要求人員在每個工作階段中開啟[快速模式](/docs/zh-TW/fast-mode) | 模型和回應 | Any file |681| [`fastModePerSessionOptIn`](#fastmodepersessionoptin) | 要求人員在每個工作階段中自行開啟[快速模式](/docs/zh-TW/fast-mode) | 模型和回應 | Any file |

682| [`feedbackDrafts`](#feedbackdrafts) | 控制 Claude 是否為您排隊[回饋草稿](/docs/zh-TW/tools-reference#sendfeedback-tool-behavior)以供審查 | 隱私和遙測 | User or managed |682| [`feedbackDrafts`](#feedbackdrafts) | 控制 Claude 是否將[回饋草稿](/docs/zh-TW/tools-reference#sendfeedback-tool-behavior)排入佇列供您審閱 | 隱私和遙測 | User or managed |

683| [`feedbackSurveyRate`](#feedbacksurveyrate) | 變更[工作階段品質調查](/docs/zh-TW/data-usage#session-quality-surveys)出現的頻率 | 隱私和遙測 | Any file |683| [`feedbackSurveyRate`](#feedbacksurveyrate) | 變更[工作階段品質調查](/docs/zh-TW/data-usage#session-quality-surveys)出現的頻率 | 隱私和遙測 | Any file |

684| [`fileCheckpointingEnabled`](#filecheckpointingenabled) | 關閉或開啟 [`/rewind`](/docs/zh-TW/checkpointing) 還原的檔案快照 | 記憶和內容 | Any file |684| [`fileCheckpointingEnabled`](#filecheckpointingenabled) | 關閉或開啟 [`/rewind`](/docs/zh-TW/checkpointing) 所還原的檔案快照 | 記憶和上下文 | Any file |

685| [`fileSuggestion`](#filesuggestion) | 從您自己的命令提供 [`@` 檔案自動完成](/docs/zh-TW/interactive-mode#quick-commands) | 介面和終端 | Any file |685| [`fileSuggestion`](#filesuggestion) | 以您自己的命令提供 [`@` 檔案自動完成](/docs/zh-TW/interactive-mode#quick-commands) | 介面和終端機 | Any file |

686| [`footerLinksRegexes`](#footerlinksregexes) | 將輸出中的問題或審查 ID 變成[可點擊的連結](/docs/zh-TW/statusline#clickable-links),位於輸入框下方 | 介面和終端 | User or managed |686| [`footerLinksRegexes`](#footerlinksregexes) | 將輸出中的 issue 或審查 ID 轉為輸入框下方的[可點擊連結](/docs/zh-TW/statusline#clickable-links) | 介面和終端機 | User or managed |

687| [`forceLoginGatewayUrl`](#forcelogingatewayurl) | 設定登入畫面連線到的[閘道 URL](/docs/zh-TW/claude-apps-gateway#set-the-gateway-url) | 驗證和提供者 | Managed |687| [`forceLoginGatewayUrl`](#forcelogingatewayurl) | 設定登入畫面所連線的[閘道 URL](/docs/zh-TW/claude-apps-gateway#set-the-gateway-url) | 身分驗證和提供者 | Managed |

688| [`forceLoginMethod`](#forceloginmethod) | [限制登入](/docs/zh-TW/authentication#restrict-login-to-your-organization)到 claude.ai、Claude Console 或[雲端閘道](/docs/zh-TW/claude-apps-gateway) | 驗證和提供者 | Any file |688| [`forceLoginMethod`](#forceloginmethod) | 將[登入限制](/docs/zh-TW/authentication#restrict-login-to-your-organization)為 claude.ai、Claude Console 或[雲端閘道](/docs/zh-TW/claude-apps-gateway) | 身分驗證和提供者 | Any file |

689| [`forceLoginOrgUUID`](#forceloginorguuid) | [將 claude.ai 登入釘選到您的組織](/docs/zh-TW/authentication#restrict-login-to-your-organization);只有受管理的來源才能強制執行 | 驗證和提供者 | Any file |689| [`forceLoginOrgUUID`](#forceloginorguuid) | [將 claude.ai 登入限定於您的組織](/docs/zh-TW/authentication#restrict-login-to-your-organization);只有受管來源會強制執行 | 身分驗證和提供者 | Any file |

690| [`forceRemoteSettingsRefresh`](#forceremotesettingsrefresh) | 阻止啟動,直到[伺服器受管理的設定](/docs/zh-TW/server-managed-settings)被新鮮擷取 | 企業和受管理的設定 | Managed |690| [`forceRemoteSettingsRefresh`](#forceremotesettingsrefresh) | 在重新擷取[伺服器受管設定](/docs/zh-TW/server-managed-settings)之前阻止啟動 | 企業和受管設定 | Managed |

691| [`gatewayInternalNetworks`](#gatewayinternalnetworks) | 讓 `/login` 到達您的組織在內部使用的公開 IPv4 空間上的[雲端閘道](/docs/zh-TW/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own) | 驗證和提供者 | Managed |691| [`gatewayInternalNetworks`](#gatewayinternalnetworks) | 讓 `/login` 能連到位於您組織內部使用之公用 IPv4 空間上的[雲端閘道](/docs/zh-TW/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own) | 身分驗證和提供者 | Managed |

692| [`gcpAuthRefresh`](#gcpauthrefresh) | 使用您自己的命令重新整理 [Google Cloud 認證](/docs/zh-TW/google-vertex-ai#advanced-credential-configuration) | 驗證和提供者 | Any file |692| [`gcpAuthRefresh`](#gcpauthrefresh) | 使用您自己的命令重新整理 [Google Cloud 憑證](/docs/zh-TW/google-vertex-ai#advanced-credential-configuration) | 身分驗證和提供者 | Any file |

693| [`hooks`](#hooks) | 在 Claude Code 生命週期中的點執行您自己的命令作為 [hooks](/docs/zh-TW/hooks) | Hooks 和自動化 | Any file |693| [`hooks`](#hooks) | 在 Claude Code 生命週期的各個時間點,將您自己的命令作為 [hook](/docs/zh-TW/hooks) 執行 | Hook 和自動化 | Any file |

694| [`httpHookAllowedEnvVars`](#httphookallowedenvvars) | 限制 [HTTP hooks](/docs/zh-TW/hooks) 可以在標頭中放入的環境變數 | Hooks 和自動化 | Any file |694| [`httpHookAllowedEnvVars`](#httphookallowedenvvars) | 限制 [HTTP hook](/docs/zh-TW/hooks) 可以放入標頭的環境變數 | Hook 和自動化 | Any file |

695| [`includeCoAuthoredBy`](#includecoauthoredby) | 已棄用;使用 `attribution` 隱藏或變更提交和 PR 歸屬 | Git 和歸屬 | Any file |695| [`includeCoAuthoredBy`](#includecoauthoredby) | 已棄用;請使用 `attribution` 隱藏或變更提交和 PR 歸屬 | Git 和歸屬 | Any file |

696| [`includeGitInstructions`](#includegitinstructions) | 從 Claude 的內容中移除內建的提交和 PR 指示 | Git 和歸屬 | Any file |696| [`includeGitInstructions`](#includegitinstructions) | 從 Claude 的上下文中移除內建的提交和 PR 指示 | Git 和歸屬 | Any file |

697| [`inputNeededNotifEnabled`](#inputneedednotifenabled) | 當 Claude 在等待您時取得[推播通知](/docs/zh-TW/remote-control#mobile-push-notifications) | 遠端、桌面和通知 | Any file |697| [`inputNeededNotifEnabled`](#inputneedednotifenabled) | 當 Claude 在等待您時收到[推播通知](/docs/zh-TW/remote-control#mobile-push-notifications) | 遠端、桌面和通知 | Any file |

698| [`isolatePeerMachines`](#isolatepeermachines) | 在 Claude [傳訊另一台機器上的其中一個工作階段](/docs/zh-TW/cross-session-messaging#require-approval-for-cross-machine-messages)之前詢問您 | 代理、工作階段和 worktrees | Any file |698| [`isolatePeerMachines`](#isolatepeermachines) | 在 Claude [傳訊給您在另一台機器上的工作階段](/docs/zh-TW/cross-session-messaging#require-approval-for-cross-machine-messages)之前先詢問您 | Agent、工作階段和 worktree | Any file |

699| [`keybindingFlavor`](#keybindingflavor) | 已棄用且無效;字詞編輯快捷鍵始終[遵循 readline 慣例](/docs/zh-TW/interactive-mode#make-ctrl-w-delete-back-to-whitespace) | 介面和終端 | Any file |699| [`keybindingFlavor`](#keybindingflavor) | 已棄用且無作用;字詞編輯快捷鍵一律[遵循 readline 慣例](/docs/zh-TW/interactive-mode#make-ctrl-w-delete-back-to-whitespace) | 介面和終端機 | Any file |

700| [`language`](#language) | 讓 Claude 以英文以外的語言回應 | 模型和回應 | Any file |700| [`language`](#language) | 讓 Claude 以英文以外的語言回應 | 模型和回應 | Any file |

701| [`leftArrowOpensAgents`](#leftarrowopensagents) | 關閉 `←` 快捷鍵,該快捷鍵[背景化工作階段並開啟代理檢視](/docs/zh-TW/agent-view#switch-sessions-without-leaving-the-terminal) | 全域設定設定 | Global config |701| [`leftArrowOpensAgents`](#leftarrowopensagents) | 關閉可[將工作階段移至背景並開啟 agent 檢視](/docs/zh-TW/agent-view#switch-sessions-without-leaving-the-terminal)的 `←` 快捷鍵 | 全域組態設定 | Global config |

702| [`managedMcpServers`](#managedmcpservers) | 為每個使用者提供遠端 [MCP 伺服器](/docs/zh-TW/managed-mcp#provide-servers-through-managed-settings),以及他們新增的伺服器 | MCP | Managed |702| [`managedMcpServers`](#managedmcpservers) | 在使用者自行新增的伺服器之外,為每位使用者提供遠端 [MCP 伺服器](/docs/zh-TW/managed-mcp#provide-servers-through-managed-settings) | MCP | Managed |

703| [`managedSourcesBehavior`](#managedsourcesbehavior) | 組合您部署的每個[受管理的來源](/docs/zh-TW/managed-settings#how-claude-code-combines-managed-sources),而不是單獨使用最高優先順序的來源 | 企業和受管理的設定 | Managed |703| [`managedSourcesBehavior`](#managedsourcesbehavior) | 組合您部署的每個[受管來源](/docs/zh-TW/managed-settings#how-claude-code-combines-managed-sources),而非只使用優先順序最高的來源 | 企業和受管設定 | Managed |

704| [`maxEffortLevel`](#maxeffortlevel) | 在每個提供者上為每個模型或每個模型上限[努力等級](/docs/zh-TW/model-config#adjust-effort-level) | 模型和回應 | Any file |704| [`maxEffortLevel`](#maxeffortlevel) | 在每個提供者上,為所有模型或個別模型設定 [effort 等級](/docs/zh-TW/model-config#adjust-effort-level)上限 | 模型和回應 | Any file |

705| [`maxProseWidth`](#maxprosewidth) | 在寬終端中限制 Claude 回應中的散文執行寬度 | 介面和終端 | Any file |705| [`maxProseWidth`](#maxprosewidth) | 在寬終端機中限制 Claude 回應文字的最大寬度 | 介面和終端機 | Any file |

706| [`minimumVersion`](#minimumversion) | 保持[自動更新](/docs/zh-TW/setup#pin-a-minimum-version)不安裝低於版本的任何內容 | 更新和版本控制 | Any file |706| [`minimumVersion`](#minimumversion) | 防止[自動更新](/docs/zh-TW/setup#pin-a-minimum-version)安裝低於某版本的任何內容 | 更新和版本控制 | Any file |

707| [`model`](#model) | 變更 Claude Code 開始使用的[模型](/docs/zh-TW/model-config#set-a-default-model-for-new-sessions) | 模型和回應 | Any file |707| [`model`](#model) | 變更 Claude Code 啟動時使用的[模型](/docs/zh-TW/model-config#set-a-default-model-for-new-sessions) | 模型和回應 | Any file |

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) | 為每個模型保留已儲存的[努力等級](/docs/zh-TW/model-config#adjust-effort-level),或上限一個模型的努力 | 模型和回應 | Any file |711| [`modelSettings`](#modelsettings) | 為每個模型保留已儲存的 [effort 等級](/docs/zh-TW/model-config#adjust-effort-level),或為單一模型設定 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) | 應用或放棄[SDK 或 IDE 主機](/docs/zh-TW/managed-settings#let-an-embedding-host-add-policy)在您部署[受管理的設定](/docs/zh-TW/managed-settings)時傳遞的限制 | 企業和受管理的設定 | Managed |714| [`parentSettingsBehavior`](#parentsettingsbehavior) | 在您部署[受管設定](/docs/zh-TW/managed-settings)時,套用或捨棄 [SDK 或 IDE 主機](/docs/zh-TW/managed-settings#let-an-embedding-host-add-policy)傳遞的限制 | 企業和受管設定 | Managed |

715| [`permissionExplainerEnabled`](#permissionexplainerenabled) | 在 v2.1.257 中移除,以及 shell 權限提示上的 `Ctrl+E` 命令說明 | 全域設定設定 | Global config |715| [`permissionExplainerEnabled`](#permissionexplainerenabled) | 已於 v2.1.257 移除,連同 shell 權限提示上的 `Ctrl+E` 命令說明一併移除 | 全域組態設定 | Global config |

716| [`permissions`](#permissions) | 設定允許、詢問和拒絕規則以及啟動[權限模式](/docs/zh-TW/permission-modes) | 權限設定 | Any file |716| [`permissions`](#permissions) | 設定允許、詢問和拒絕規則,以及起始的[權限模式](/docs/zh-TW/permission-modes) | 權限設定 | Any file |

717| [`permissions.additionalDirectories`](#permissions-additionaldirectories) | 給予 Claude 檔案存取權限到[目前目錄外的目錄](/docs/zh-TW/permissions#working-directories) | 權限設定 | Any file |717| [`permissions.additionalDirectories`](#permissions-additionaldirectories) | 讓 Claude 能存取[目前目錄以外的目錄](/docs/zh-TW/permissions#working-directories)中的檔案 | 權限設定 | Any file |

718| [`permissions.allow`](#permissions-allow) | 批准列出的[工具使用](/docs/zh-TW/permissions#permission-rule-syntax),無需提示 | 權限設定 | Any file |718| [`permissions.allow`](#permissions-allow) | 核准列出的[工具使用](/docs/zh-TW/permissions#permission-rule-syntax),無需提示 | 權限設定 | Any file |

719| [`permissions.ask`](#permissions-ask) | 在列出的[工具使用](/docs/zh-TW/permissions#permission-rule-syntax)之前始終提示 | 權限設定 | Any file |719| [`permissions.ask`](#permissions-ask) | 在列出的[工具使用](/docs/zh-TW/permissions#permission-rule-syntax)之前一律提示 | 權限設定 | Any file |

720| [`permissions.blockReadsOutsideWorkingDirectories`](#permissions-blockreadsoutsideworkingdirectories) | 使檔案工具在每個權限模式中拒絕在[工作目錄](/docs/zh-TW/permissions#working-directories)外的讀取 | 權限設定 | Any file |720| [`permissions.blockReadsOutsideWorkingDirectories`](#permissions-blockreadsoutsideworkingdirectories) | 讓檔案工具在每個權限模式中拒絕讀取[工作目錄](/docs/zh-TW/permissions#working-directories)以外的內容 | 權限設定 | Any file |

721| [`permissions.defaultMode`](#permissions-defaultmode) | 設定新工作階段開始的[權限模式](/docs/zh-TW/permission-modes#which-mode-a-session-starts-in) | 權限設定 | Any file |721| [`permissions.defaultMode`](#permissions-defaultmode) | 設定新工作階段啟動時的[權限模式](/docs/zh-TW/permission-modes#which-mode-a-session-starts-in) | 權限設定 | Any file |

722| [`permissions.deny`](#permissions-deny) | 封鎖列出的[工具使用](/docs/zh-TW/permissions#permission-rule-syntax),包括保存秘密的檔案的讀取 | 權限設定 | Any file |722| [`permissions.deny`](#permissions-deny) | 封鎖列出的[工具使用](/docs/zh-TW/permissions#permission-rule-syntax),包括讀取存有機密的檔案 | 權限設定 | Any file |

723| [`permissions.disableBypassPermissionsMode`](#permissions-disablebypasspermissionsmode) | 防止任何人進入 [bypassPermissions 模式](/docs/zh-TW/permission-modes#skip-all-checks-with-bypasspermissions-mode) | 權限設定 | Any file |723| [`permissions.disableBypassPermissionsMode`](#permissions-disablebypasspermissionsmode) | 防止任何人進入 [bypassPermissions 模式](/docs/zh-TW/permission-modes#skip-all-checks-with-bypasspermissions-mode) | 權限設定 | Any file |

724| [`plansDirectory`](#plansdirectory) | 選擇 [Plan Mode](/docs/zh-TW/permission-modes#analyze-before-you-edit-with-plan-mode) 寫入計畫檔案的位置 | 記憶和內容 | Any file |724| [`plansDirectory`](#plansdirectory) | 選擇 [plan mode](/docs/zh-TW/permission-modes#analyze-before-you-edit-with-plan-mode) 寫入計畫檔案的位置 | 記憶和上下文 | Any file |

725| [`pluginConfigs`](#pluginconfigs) | 儲存您提供給[外掛程式](/docs/zh-TW/plugins/overview)設定對話的答案 | 外掛程式和技能 | User or managed |725| [`pluginConfigs`](#pluginconfigs) | 儲存您在[外掛](/docs/zh-TW/plugins/overview)設定對話框中提供的答案 | 外掛和 skill | User or managed |

726| [`pluginSuggestionMarketplaces`](#pluginsuggestionmarketplaces) | 選擇哪些[市集](/docs/zh-TW/plugins/org#restrict-what-users-can-install)可以在 `/plugin` 中顯示外掛程式安裝建議 | 外掛程式和技能 | Managed |726| [`pluginSuggestionMarketplaces`](#pluginsuggestionmarketplaces) | 選擇哪些[市集](/docs/zh-TW/plugins/org#restrict-what-users-can-install)可以在 `/plugin` 中顯示外掛安裝建議 | 外掛和 skill | Managed |

727| [`pluginTrustMessage`](#plugintrustmessage) | 將您自己的文字新增到[外掛程式](/docs/zh-TW/plugins/overview)信任警告 | 外掛程式和技能 | Managed |727| [`pluginTrustMessage`](#plugintrustmessage) | 將您自己的文字新增到[外掛](/docs/zh-TW/plugins/overview)信任警告 | 外掛和 skill | Managed |

728| [`policyHelper`](#policyhelper) | 執行在啟動時計算[受管理的設定](/docs/zh-TW/managed-settings#compute-the-policy-with-a-helper-program)的可執行檔 | 企業和受管理的設定 | Managed |728| [`policyHelper`](#policyhelper) | 執行在啟動時計算[受管設定](/docs/zh-TW/managed-settings#compute-the-policy-with-a-helper-program)的可執行檔 | 企業和受管設定 | Managed |

729| [`policyHelper.path`](#policyhelper-path) | 命名 Claude Code 執行的[協助程式可執行檔](/docs/zh-TW/managed-settings#compute-the-policy-with-a-helper-program) | 企業和受管理的設定 | Managed |729| [`policyHelper.path`](#policyhelper-path) | 指定 Claude Code 執行的[輔助可執行檔](/docs/zh-TW/managed-settings#compute-the-policy-with-a-helper-program) | 企業和受管設定 | Managed |

730| [`policyHelper.refreshIntervalMs`](#policyhelper-refreshintervalms) | 在背景中按間隔重新執行[協助程式](/docs/zh-TW/managed-settings#compute-the-policy-with-a-helper-program) | 企業和受管理的設定 | Managed |730| [`policyHelper.refreshIntervalMs`](#policyhelper-refreshintervalms) | 在背景中按間隔重新執行[輔助程式](/docs/zh-TW/managed-settings#compute-the-policy-with-a-helper-program) | 企業和受管設定 | Managed |

731| [`policyHelper.timeoutMs`](#policyhelper-timeoutms) | 設定 Claude Code 等待[協助程式](/docs/zh-TW/managed-settings#compute-the-policy-with-a-helper-program)的時間 | 企業和受管理的設定 | Managed |731| [`policyHelper.timeoutMs`](#policyhelper-timeoutms) | 設定 Claude Code 等待[輔助程式](/docs/zh-TW/managed-settings#compute-the-policy-with-a-helper-program)的時間 | 企業和受管設定 | Managed |

732| [`preferredNotifChannel`](#preferrednotifchannel) | 為工作完成選擇[終端鈴聲或桌面通知](/docs/zh-TW/terminal-config#get-a-terminal-bell-or-notification) | 遠端、桌面和通知 | Any file |732| [`preferredNotifChannel`](#preferrednotifchannel) | 為工作完成選擇[終端機鈴聲或桌面通知](/docs/zh-TW/terminal-config#get-a-terminal-bell-or-notification) | 遠端、桌面和通知 | Any file |

733| [`prefersReducedMotion`](#prefersreducedmotion) | [減少或關閉](/docs/zh-TW/accessibility#accessibility-settings)微調、閃爍和閃光動畫 | 介面和終端 | Any file |733| [`prefersReducedMotion`](#prefersreducedmotion) | [減少或關閉](/docs/zh-TW/accessibility#accessibility-settings)旋轉指示器、微光和閃爍動畫 | 介面和終端機 | Any file |

734| [`prependPlugins`](#prependplugins) | 在使用者安裝的每個 mod 之前執行您的組織的 [mods](/docs/zh-TW/plugins/mods/admin) | 外掛程式和技能 | User or managed |734| [`prependPlugins`](#prependplugins) | 在使用者安裝的每個 mod 之前執行您組織的 [mod](/docs/zh-TW/plugins/mods/admin) | 外掛和 skill | User or managed |

735| [`processWrapper`](#processwrapper) | 在 macOS 和 Linux 上透過[公司啟動器](/docs/zh-TW/corporate-launcher)執行 Claude Code 的背景程序 | 代理、工作階段和 worktrees | User or managed |735| [`processWrapper`](#processwrapper) | 在 macOS 和 Linux 上透過[企業啟動器](/docs/zh-TW/corporate-launcher)執行 Claude Code 的背景程序 | Agent、工作階段和 worktree | User or managed |

736| [`promptCacheTtl`](#promptcachettl) | 選擇主要對話的[提示快取生命週期](/docs/zh-TW/prompt-caching#cache-lifetime) | 模型和回應 | Any file |736| [`promptCacheTtl`](#promptcachettl) | 選擇主要對話的[提示快取生命週期](/docs/zh-TW/prompt-caching#cache-lifetime) | 模型和回應 | Any file |

737| [`promptSuggestionEnabled`](#promptsuggestionenabled) | 隱藏輸入框中灰顯的[提示建議](/docs/zh-TW/interactive-mode#prompt-suggestions) | 介面和終端 | Any file |737| [`promptSuggestionEnabled`](#promptsuggestionenabled) | 隱藏輸入框中灰色的[提示詞建議](/docs/zh-TW/interactive-mode#prompt-suggestions) | 介面和終端機 | Any file |

738| [`prStatusFooterEnabled`](#prstatusfooterenabled) | 關閉提示頁尾的 [PR 審查狀態](/docs/zh-TW/interactive-mode#pr-review-status)徽章和其後的提取請求檢查 | 全域設定設定 | Global config |738| [`prStatusFooterEnabled`](#prstatusfooterenabled) | 關閉提示詞頁尾的 [PR 審查狀態](/docs/zh-TW/interactive-mode#pr-review-status)徽章及其背後的 pull request 檢查 | 全域組態設定 | Global config |

739| [`prUrlTemplate`](#prurltemplate) | 將 PR 連結指向內部程式碼審查工具而不是 github.com | Git 和歸屬 | Any file |739| [`prUrlTemplate`](#prurltemplate) | 將 PR 連結指向內部程式碼審查工具,而非 github.com | Git 和歸屬 | Any file |

740| [`remote.defaultEnvironmentId`](#remote-defaultenvironmentid) | 為 `claude --cloud` 選擇預設[雲端環境](/docs/zh-TW/cloud-environments);自託管 `ccpool_` ID 僅從使用者和受管理的設定以及 `--settings` 讀取 | 遠端、桌面和通知 | Any file |740| [`remote.defaultEnvironmentId`](#remote-defaultenvironmentid) | 為 `claude --cloud` 選擇預設的[雲端環境](/docs/zh-TW/cloud-environments);自架的 `ccpool_` ID 僅從使用者和受管設定以及 `--settings` 讀取 | 遠端、桌面和通知 | Any file |

741| [`remoteControlAtStartup`](#remotecontrolatstartup) | 當工作階段開始時自動連線[遠端控制](/docs/zh-TW/remote-control#enable-remote-control-for-all-sessions) | 遠端、桌面和通知 | Any file |741| [`remoteControlAtStartup`](#remotecontrolatstartup) | 在工作階段開始時自動連線 [Remote Control](/docs/zh-TW/remote-control#enable-remote-control-for-all-sessions) | 遠端、桌面和通知 | Any file |

742| [`requiredMaximumVersion`](#requiredmaximumversion) | [拒絕在](/docs/zh-TW/setup#pin-a-minimum-version)您的組織允許的版本更新的版本上啟動 | 更新和版本控制 | Managed |742| [`requiredMaximumVersion`](#requiredmaximumversion) | 在版本比您組織允許的更新時[拒絕啟動](/docs/zh-TW/setup#pin-a-minimum-version) | 更新和版本控制 | Managed |

743| [`requiredMinimumVersion`](#requiredminimumversion) | [拒絕在](/docs/zh-TW/setup#pin-a-minimum-version)您的組織要求的版本更舊的版本上啟動 | 更新和版本控制 | Managed |743| [`requiredMinimumVersion`](#requiredminimumversion) | 在版本比您組織要求的更舊時[拒絕啟動](/docs/zh-TW/setup#pin-a-minimum-version) | 更新和版本控制 | Managed |

744| [`respectGitignore`](#respectgitignore) | 將 gitignored 檔案保留在 [`@` 檔案選擇器](/docs/zh-TW/interactive-mode#quick-commands)之外 | 介面和終端 | Any file |744| [`respectGitignore`](#respectgitignore) | 讓被 gitignore 的檔案不出現在 [`@` 檔案選擇器](/docs/zh-TW/interactive-mode#quick-commands)中 | 介面和終端機 | Any file |

745| [`respondToBashCommands`](#respondtobashcommands) | 停止 Claude 在 [`!` shell 命令](/docs/zh-TW/interactive-mode#shell-mode-with-prefix)執行後回應 | 介面和終端 | Any file |745| [`respondToBashCommands`](#respondtobashcommands) | 讓 Claude 在 [`!` shell 命令](/docs/zh-TW/interactive-mode#shell-mode-with-prefix)執行後不回應 | 介面和終端機 | Any file |

746| [`sandbox`](#sandbox) | 在 macOS、Linux 和 WSL2 上[隔離 Bash 命令](/docs/zh-TW/sandboxing)與您的檔案系統和網路 | 沙箱設定 | Any file |746| [`sandbox`](#sandbox) | 在 macOS、Linux 和 WSL2 上將 [Bash 命令與您的檔案系統和網路隔離](/docs/zh-TW/sandboxing) | 沙箱設定 | Any file |

747| [`sandbox.allowAppleEvents`](#sandbox-allowappleevents) | 讓[沙箱化](/docs/zh-TW/sandboxing)命令在 macOS 上傳送 Apple Events | 沙箱設定 | User or managed |747| [`sandbox.allowAppleEvents`](#sandbox-allowappleevents) | 讓[沙箱中](/docs/zh-TW/sandboxing)的命令在 macOS 上傳送 Apple Events | 沙箱設定 | User or managed |

748| [`sandbox.allowUnsandboxedCommands`](#sandbox-allowunsandboxedcommands) | 讓 Claude 在[沙箱](/docs/zh-TW/sandboxing#the-unsandboxed-retry-escape-hatch)外重試被封鎖的命令,或禁止它 | 沙箱設定 | Any file |748| [`sandbox.allowUnsandboxedCommands`](#sandbox-allowunsandboxedcommands) | 讓 Claude 在[沙箱](/docs/zh-TW/sandboxing#the-unsandboxed-retry-escape-hatch)外重試被封鎖的命令,或禁止此行為 | 沙箱設定 | Any file |

749| [`sandbox.autoAllowBashIfSandboxed`](#sandbox-autoallowbashifsandboxed) | 執行[沙箱化](/docs/zh-TW/sandboxing#auto-allow-mode)命令,無需權限提示 | 沙箱設定 | Any file |749| [`sandbox.autoAllowBashIfSandboxed`](#sandbox-autoallowbashifsandboxed) | 執行[沙箱中](/docs/zh-TW/sandboxing#auto-allow-mode)的命令時不顯示權限提示 | 沙箱設定 | Any file |

750| [`sandbox.bwrapPath`](#sandbox-bwrappath) | 將[沙箱](/docs/zh-TW/sandboxing)指向 `PATH` 外的 bubblewrap 二進位檔 | 沙箱設定 | Managed |750| [`sandbox.bwrapPath`](#sandbox-bwrappath) | 將[沙箱](/docs/zh-TW/sandboxing)指向 `PATH` 以外的 bubblewrap 二進位檔 | 沙箱設定 | Managed |

751| [`sandbox.credentials`](#sandbox-credentials) | 在[沙箱](/docs/zh-TW/sandboxing#protect-credentials)內隱藏或遮罩認證檔案和變數 | 沙箱設定 | Any file |751| [`sandbox.credentials`](#sandbox-credentials) | 在[沙箱](/docs/zh-TW/sandboxing#protect-credentials)內隱藏或遮罩憑證檔案和變數 | 沙箱設定 | Any file |

752| [`sandbox.credentials.allowPlaintextInject`](#sandbox-credentials-allowplaintextinject) | 讓[遮罩的認證](/docs/zh-TW/sandboxing#mask-credentials)到達受信任的測試網路上的純 HTTP 服務 | 沙箱設定 | User or managed |752| [`sandbox.credentials.allowPlaintextInject`](#sandbox-credentials-allowplaintextinject) | 讓[遮罩的憑證](/docs/zh-TW/sandboxing#mask-credentials)能送達受信任測試網路上的純 HTTP 服務 | 沙箱設定 | User or managed |

753| [`sandbox.credentials.awsPairs`](#sandbox-credentials-awspairs) | 將自訂命名的 AWS 金鑰變數連結到一個認證中,以進行[重新簽署](/docs/zh-TW/sandboxing#re-sign-aws-requests) | 沙箱設定 | User or managed |753| [`sandbox.credentials.awsPairs`](#sandbox-credentials-awspairs) | 將自訂名稱的 AWS 金鑰變數連結為一組憑證,以進行[重新簽署](/docs/zh-TW/sandboxing#re-sign-aws-requests) | 沙箱設定 | User or managed |

754| [`sandbox.credentials.envVars`](#sandbox-credentials-envvars) | 在[沙箱](/docs/zh-TW/sandboxing#mask-environment-variables)內取消設定或遮罩環境變數 | 沙箱設定 | Any file |754| [`sandbox.credentials.envVars`](#sandbox-credentials-envvars) | 在[沙箱](/docs/zh-TW/sandboxing#mask-environment-variables)內取消設定或遮罩環境變數 | 沙箱設定 | Any file |

755| [`sandbox.credentials.files`](#sandbox-credentials-files) | 在[沙箱](/docs/zh-TW/sandboxing#mask-credential-files)內封鎖或遮罩認證檔案的讀取 | 沙箱設定 | Any file |755| [`sandbox.credentials.files`](#sandbox-credentials-files) | 在[沙箱](/docs/zh-TW/sandboxing#mask-credential-files)內封鎖或遮罩對憑證檔案的讀取 | 沙箱設定 | Any file |

756| [`sandbox.credentials.sigv4`](#sandbox-credentials-sigv4) | 選擇串流、預簽署或[SigV4A AWS 請求](/docs/zh-TW/sandboxing#re-sign-aws-requests)是否失敗或通過 | 沙箱設定 | User or managed |756| [`sandbox.credentials.sigv4`](#sandbox-credentials-sigv4) | 選擇串流、預先簽署或 [SigV4A AWS 請求](/docs/zh-TW/sandboxing#re-sign-aws-requests)要失敗還是直接通過 | 沙箱設定 | User or managed |

757| [`sandbox.enabled`](#sandbox-enabled) | 在 macOS、Linux 和 WSL2 上開啟 [Bash 沙箱化](/docs/zh-TW/sandboxing#get-started) | 沙箱設定 | Any file |757| [`sandbox.enabled`](#sandbox-enabled) | 在 macOS、Linux 和 WSL2 上開啟 [Bash 沙箱機制](/docs/zh-TW/sandboxing#get-started) | 沙箱設定 | Any file |

758| [`sandbox.enableWeakerNestedSandbox`](#sandbox-enableweakernestedsandbox) | 在無特權容器內執行 Linux [沙箱](/docs/zh-TW/sandboxing) | 沙箱設定 | Any file |758| [`sandbox.enableWeakerNestedSandbox`](#sandbox-enableweakernestedsandbox) | 在無特權容器內執行 Linux [沙箱](/docs/zh-TW/sandboxing) | 沙箱設定 | Any file |

759| [`sandbox.enableWeakerNetworkIsolation`](#sandbox-enableweakernetworkisolation) | 讓 `gh`、`gcloud` 和 `terraform` 在[沙箱](/docs/zh-TW/sandboxing#troubleshooting)內的 MITM 代理後面驗證 TLS | 沙箱設定 | Any file |759| [`sandbox.enableWeakerNetworkIsolation`](#sandbox-enableweakernetworkisolation) | 在 macOS 上讓 `gh`、`gcloud` 和 `terraform` 在[沙箱](/docs/zh-TW/sandboxing#go-based-clis-fail-tls-verification-on-macos)內於 MITM 代理伺服器後方驗證 TLS | 沙箱設定 | Any file |

760| [`sandbox.excludedCommands`](#sandbox-excludedcommands) | 命名始終在[沙箱](/docs/zh-TW/sandboxing)外執行的命令 | 沙箱設定 | Any file |760| [`sandbox.excludedCommands`](#sandbox-excludedcommands) | 指定 Claude Code 可以在[沙箱](/docs/zh-TW/sandboxing)外執行的命令 | 沙箱設定 | Any file |

761| [`sandbox.failIfUnavailable`](#sandbox-failifunavailable) | 當[沙箱](/docs/zh-TW/sandboxing)無法使用時拒絕啟動,而不是執行未沙箱化的命令 | 沙箱設定 | Any file |761| [`sandbox.failIfUnavailable`](#sandbox-failifunavailable) | 當[沙箱](/docs/zh-TW/sandboxing)無法啟動時拒絕啟動,而非在沙箱外執行 | 沙箱設定 | Any file |

762| [`sandbox.filesystem`](#sandbox-filesystem) | 控制[沙箱化](/docs/zh-TW/sandboxing#filesystem-isolation)命令可以讀取和寫入的路徑 | 沙箱設定 | Any file |762| [`sandbox.filesystem`](#sandbox-filesystem) | 控制[沙箱中](/docs/zh-TW/sandboxing#filesystem-isolation)的命令可以讀取和寫入的路徑 | 沙箱設定 | Any file |

763| [`sandbox.filesystem.allowManagedReadPathsOnly`](#sandbox-filesystem-allowmanagedreadpathsonly) | 停止開發人員重新開啟[您的組織封鎖的讀取路徑](/docs/zh-TW/sandboxing#keep-developers-from-widening-the-policy) | 沙箱設定 | Managed |763| [`sandbox.filesystem.allowManagedReadPathsOnly`](#sandbox-filesystem-allowmanagedreadpathsonly) | 防止開發人員重新開放[您的組織已封鎖的讀取路徑](/docs/zh-TW/sandboxing#keep-developers-from-widening-the-policy) | 沙箱設定 | Managed |

764| [`sandbox.filesystem.allowRead`](#sandbox-filesystem-allowread) | 重新開啟在 [`denyRead`](#sandbox-filesystem-denyread) 封鎖的區域內讀取 | 沙箱設定 | Any file |764| [`sandbox.filesystem.allowRead`](#sandbox-filesystem-allowread) | 在 [`denyRead`](#sandbox-filesystem-denyread) 封鎖的區域內重新開放讀取 | 沙箱設定 | Any file |

765| [`sandbox.filesystem.allowWrite`](#sandbox-filesystem-allowwrite) | 新增[沙箱化](/docs/zh-TW/sandboxing)命令可以寫入的路徑 | 沙箱設定 | Any file |765| [`sandbox.filesystem.allowWrite`](#sandbox-filesystem-allowwrite) | 新增[沙箱中](/docs/zh-TW/sandboxing)的命令可以寫入的路徑 | 沙箱設定 | Any file |

766| [`sandbox.filesystem.denyRead`](#sandbox-filesystem-denyread) | 封鎖[沙箱化](/docs/zh-TW/sandboxing)命令從讀取特定路徑 | 沙箱設定 | Any file |766| [`sandbox.filesystem.denyRead`](#sandbox-filesystem-denyread) | 封鎖[沙箱中](/docs/zh-TW/sandboxing)的命令讀取特定路徑 | 沙箱設定 | Any file |

767| [`sandbox.filesystem.denyWrite`](#sandbox-filesystem-denywrite) | 封鎖[沙箱化](/docs/zh-TW/sandboxing)命令寫入特定路徑 | 沙箱設定 | Any file |767| [`sandbox.filesystem.denyWrite`](#sandbox-filesystem-denywrite) | 封鎖[沙箱中](/docs/zh-TW/sandboxing)的命令寫入特定路徑 | 沙箱設定 | Any file |

768| [`sandbox.filesystem.disabled`](#sandbox-filesystem-disabled) | [關閉檔案系統隔離](/docs/zh-TW/sandboxing#disable-filesystem-isolation),同時保持網路隔離 | 沙箱設定 | User or managed |768| [`sandbox.filesystem.disabled`](#sandbox-filesystem-disabled) | [關閉檔案系統隔離](/docs/zh-TW/sandboxing#disable-filesystem-isolation),同時保留網路隔離 | 沙箱設定 | User or managed |

769| [`sandbox.ignoreViolations`](#sandbox-ignoreviolations) | 沉默違規報告,以取得命令預期探測的路徑 | 沙箱設定 | Any file |769| [`sandbox.ignoreViolations`](#sandbox-ignoreviolations) | 對於命令預期會探測的路徑,隱藏其違規報告 | 沙箱設定 | Any file |

770| [`sandbox.network`](#sandbox-network) | 控制[沙箱化](/docs/zh-TW/sandboxing#network-isolation)命令到達的主機、連接埠和通訊端 | 沙箱設定 | Any file |770| [`sandbox.network`](#sandbox-network) | 控制[沙箱中](/docs/zh-TW/sandboxing#network-isolation)的命令可以連線的主機、連接埠和通訊端 | 沙箱設定 | Any file |

771| [`sandbox.network.allowAllUnixSockets`](#sandbox-network-allowallunixsockets) | 讓[沙箱化](/docs/zh-TW/sandboxing)命令連線到每個 Unix 通訊端 | 沙箱設定 | Any file |771| [`sandbox.network.allowAllUnixSockets`](#sandbox-network-allowallunixsockets) | 讓[沙箱中](/docs/zh-TW/sandboxing)的命令連線到所有 Unix 通訊端 | 沙箱設定 | Any file |

772| [`sandbox.network.allowedDomains`](#sandbox-network-alloweddomains) | 預先允許網域,使[沙箱化](/docs/zh-TW/sandboxing)命令不會提示它們 | 沙箱設定 | Any file |772| [`sandbox.network.allowedDomains`](#sandbox-network-alloweddomains) | 預先允許網域,讓[沙箱中](/docs/zh-TW/sandboxing)的命令不會針對這些網域提示 | 沙箱設定 | Any file |

773| [`sandbox.network.allowLocalBinding`](#sandbox-network-allowlocalbinding) | 讓[沙箱化](/docs/zh-TW/sandboxing)命令在 macOS 上繫結到 localhost 連接埠 | 沙箱設定 | Any file |773| [`sandbox.network.allowLocalBinding`](#sandbox-network-allowlocalbinding) | 在 macOS 上讓[沙箱中](/docs/zh-TW/sandboxing)的命令監聽網路連接埠並連線到 localhost | 沙箱設定 | Any file |

774| [`sandbox.network.allowMachLookup`](#sandbox-network-allowmachlookup) | 讓 macOS [沙箱化](/docs/zh-TW/sandboxing)工具(如 iOS 模擬器或 Playwright)到達其 XPC 服務 | 沙箱設定 | Any file |774| [`sandbox.network.allowMachLookup`](#sandbox-network-allowmachlookup) | 讓 macOS 上[沙箱中](/docs/zh-TW/sandboxing)的工具(例如 iOS Simulator 或 Playwright)連線到其 XPC 服務 | 沙箱設定 | Any file |

775| [`sandbox.network.allowManagedDomainsOnly`](#sandbox-network-allowmanageddomainsonly) | 將網路允許清單鎖定到[受管理的設定](/docs/zh-TW/sandboxing#keep-developers-from-widening-the-policy) | 沙箱設定 | Managed |775| [`sandbox.network.allowManagedDomainsOnly`](#sandbox-network-allowmanageddomainsonly) | 將網路允許清單鎖定為[受管設定](/docs/zh-TW/sandboxing#keep-developers-from-widening-the-policy) | 沙箱設定 | Managed |

776| [`sandbox.network.allowUnixSockets`](#sandbox-network-allowunixsockets) | 列出[沙箱化](/docs/zh-TW/sandboxing)命令可以在 macOS 上使用的 Unix 通訊端路徑 | 沙箱設定 | Any file |776| [`sandbox.network.allowUnixSockets`](#sandbox-network-allowunixsockets) | 列出[沙箱中](/docs/zh-TW/sandboxing)的命令在 macOS 上可以使用的 Unix 通訊端路徑 | 沙箱設定 | Any file |

777| [`sandbox.network.deniedDomains`](#sandbox-network-denieddomains) | 為[沙箱化](/docs/zh-TW/sandboxing)命令封鎖網域,即使在允許的萬用字元內 | 沙箱設定 | Any file |777| [`sandbox.network.deniedDomains`](#sandbox-network-denieddomains) | 為[沙箱中](/docs/zh-TW/sandboxing)的命令封鎖網域,即使該網域位於允許的萬用字元範圍內 | 沙箱設定 | Any file |

778| [`sandbox.network.httpProxyPort`](#sandbox-network-httpproxyport) | 透過您自己的代理路由[沙箱](/docs/zh-TW/sandboxing#custom-proxy-configuration) HTTP 流量 | 沙箱設定 | Any file |778| [`sandbox.network.httpProxyPort`](#sandbox-network-httpproxyport) | 將[沙箱](/docs/zh-TW/sandboxing#custom-proxy-configuration)的 HTTP 流量透過您自己的代理伺服器路由 | 沙箱設定 | Any file |

779| [`sandbox.network.socksProxyPort`](#sandbox-network-socksproxyport) | 透過您自己的代理路由[沙箱](/docs/zh-TW/sandboxing#custom-proxy-configuration) SOCKS 流量 | 沙箱設定 | Any file |779| [`sandbox.network.socksProxyPort`](#sandbox-network-socksproxyport) | 將[沙箱](/docs/zh-TW/sandboxing#custom-proxy-configuration)的 SOCKS 流量透過您自己的代理伺服器路由 | 沙箱設定 | Any file |

780| [`sandbox.network.strictAllowlist`](#sandbox-network-strictallowlist) | 拒絕[允許清單](/docs/zh-TW/sandboxing#network-isolation)外的主機,而不是提示 | 沙箱設定 | User or managed |780| [`sandbox.network.strictAllowlist`](#sandbox-network-strictallowlist) | 拒絕[允許清單](/docs/zh-TW/sandboxing#network-isolation)以外的主機,而非提示 | 沙箱設定 | User or managed |

781| [`sandbox.network.tlsTerminate`](#sandbox-network-tlsterminate) | 讓[沙箱](/docs/zh-TW/sandboxing#network-isolation)代理終止 TLS,以便它可以讀取 HTTPS 請求 | 沙箱設定 | User or managed |781| [`sandbox.network.tlsTerminate`](#sandbox-network-tlsterminate) | 讓[沙箱](/docs/zh-TW/sandboxing#network-isolation)代理伺服器終止 TLS,以便讀取 HTTPS 請求 | 沙箱設定 | User or managed |

782| [`sandbox.ripgrep`](#sandbox-ripgrep) | 在[沙箱](/docs/zh-TW/sandboxing)內使用您自己的 ripgrep 二進位檔 | 沙箱設定 | User or managed |782| [`sandbox.ripgrep`](#sandbox-ripgrep) | 在[沙箱](/docs/zh-TW/sandboxing)內使用您自己的 ripgrep 二進位檔 | 沙箱設定 | User or managed |

783| [`sandbox.socatPath`](#sandbox-socatpath) | 將[沙箱](/docs/zh-TW/sandboxing)代理指向 `PATH` 外的 `socat` 二進位檔 | 沙箱設定 | Managed |783| [`sandbox.socatPath`](#sandbox-socatpath) | 將[沙箱](/docs/zh-TW/sandboxing)代理伺服器指向 `PATH` 以外的 `socat` 二進位檔 | 沙箱設定 | Managed |

784| [`showClearContextOnPlanAccept`](#showclearcontextonplanaccept) | 在 [Plan Mode 接受畫面](/docs/zh-TW/permission-modes#review-and-approve-a-plan)上顯示「清除內容」選項 | 介面和終端 | Any file |784| [`showClearContextOnPlanAccept`](#showclearcontextonplanaccept) | 在[計畫接受畫面](/docs/zh-TW/permission-modes#review-and-approve-a-plan)上顯示「清除上下文」選項 | 介面和終端機 | Any file |

785| [`showThinkingSummaries`](#showthinkingsummaries) | 查看 Claude [思考](/docs/zh-TW/model-config#extended-thinking)的摘要,而不是摺疊的存根 | 模型和回應 | Any file |785| [`showThinkingSummaries`](#showthinkingsummaries) | 查看 Claude [思考](/docs/zh-TW/model-config#extended-thinking)的摘要,而非摺疊的簡短占位內容 | 模型和回應 | Any file |

786| [`showTurnDuration`](#showturnduration) | 隱藏每個回應後的「Cooked for」持續時間 | 介面和終端 | Any file |786| [`showTurnDuration`](#showturnduration) | 隱藏每個回應後的「Cooked for」持續時間 | 介面和終端機 | Any file |

787| [`skillListingBudgetFraction`](#skilllistingbudgetfraction) | 為[技能清單](/docs/zh-TW/skills#skill-descriptions-are-cut-short)保留更多或更少的內容 | 記憶和內容 | Any file |787| [`skillListingBudgetFraction`](#skilllistingbudgetfraction) | 為 [skill 清單](/docs/zh-TW/skills#skill-descriptions-are-cut-short)保留更多或更少的上下文 | 記憶和上下文 | Any file |

788| [`skillListingMaxDescChars`](#skilllistingmaxdescchars) | 在[技能清單](/docs/zh-TW/skills#skill-descriptions-are-cut-short)中上限每個技能的說明長度 | 記憶和內容 | Any file |788| [`skillListingMaxDescChars`](#skilllistingmaxdescchars) | 在 [skill 清單](/docs/zh-TW/skills#skill-descriptions-are-cut-short)中限制每個 skill 的說明長度上限 | 記憶和上下文 | Any file |

789| [`skillOverrides`](#skilloverrides) | [隱藏或摺疊技能](/docs/zh-TW/skills#override-skill-visibility-from-settings),無需編輯其 SKILL.md | 外掛程式和技能 | Any file |789| [`skillOverrides`](#skilloverrides) | [隱藏或摺疊 skill](/docs/zh-TW/skills#override-skill-visibility-from-settings),無需編輯其 SKILL.md | 外掛和 skill | Any file |

790| [`skipAutoPermissionPrompt`](#skipautopermissionprompt) | 跳過 Claude Code 在您自己進入[自動模式](/docs/zh-TW/permission-modes#eliminate-prompts-with-auto-mode)而不是透過內建預設時顯示的一次性通知 | 權限設定 | User or managed |790| [`skipAutoPermissionPrompt`](#skipautopermissionprompt) | 跳過您首次自行進入[自動模式](/docs/zh-TW/permission-modes#eliminate-prompts-with-auto-mode)(而非透過內建預設)時 Claude Code 顯示的一次性通知 | 權限設定 | User or managed |

791| [`skipDangerousModePermissionPrompt`](#skipdangerousmodepermissionprompt) | 在 [bypassPermissions 模式](/docs/zh-TW/permission-modes#skip-all-checks-with-bypasspermissions-mode)之前跳過確認對話 | 權限設定 | User, local, or managed |791| [`skipDangerousModePermissionPrompt`](#skipdangerousmodepermissionprompt) | 跳過進入 [bypassPermissions 模式](/docs/zh-TW/permission-modes#skip-all-checks-with-bypasspermissions-mode)前的確認對話框 | 權限設定 | User, local, or managed |

792| [`skipWebFetchPreflight`](#skipwebfetchpreflight) | 當 Anthropic 無法到達時跳過 [WebFetch 主機名稱檢查](/docs/zh-TW/tools-reference#webfetch-tool-behavior) | 隱私和遙測 | Any file |792| [`skipWebFetchPreflight`](#skipwebfetchpreflight) | 當無法連線到 Anthropic 時跳過 [WebFetch 主機名稱檢查](/docs/zh-TW/tools-reference#webfetch-tool-behavior) | 隱私和遙測 | Any file |

793| [`spellcheck`](#spellcheck) | 在提示輸入中用您安裝的[拼字檢查器](/docs/zh-TW/interactive-mode#check-spelling-as-you-type)為拼寫錯誤的單字加底線 | 介面和終端 | User or managed |793| [`spellcheck`](#spellcheck) | 使用您安裝的[拼字檢查器](/docs/zh-TW/interactive-mode#check-spelling-as-you-type),在提示詞輸入中為拼錯的單字加上底線 | 介面和終端機 | User or managed |

794| [`spinnerTipsEnabled`](#spinnertipsenabled) | 在 Claude 工作時隱藏微調中的提示 | 介面和終端 | Any file |794| [`spinnerTipsEnabled`](#spinnertipsenabled) | 在 Claude 工作時隱藏旋轉指示器中的提示 | 介面和終端機 | Any file |

795| [`spinnerTipsOverride`](#spinnertipsoverride) | 將您自己的提示新增到微調輪換,或取代內建提示 | 介面和終端 | Any file |795| [`spinnerTipsOverride`](#spinnertipsoverride) | 將您自己的提示新增到旋轉指示器的輪播中,或取代內建提示 | 介面和終端機 | Any file |

796| [`spinnerVerbs`](#spinnerverbs) | 新增或取代轉身執行時顯示的動詞 | 介面和終端 | Any file |796| [`spinnerVerbs`](#spinnerverbs) | 新增或取代回合執行期間顯示的動詞 | 介面和終端機 | Any file |

797| [`sshConfigs`](#sshconfigs) | 將 [SSH 連線](/docs/zh-TW/desktop#pre-configure-ssh-connections-for-your-team)新增到桌面環境下拉式清單 | 遠端、桌面和通知 | User or managed |797| [`sshConfigs`](#sshconfigs) | 將 [SSH 連線](/docs/zh-TW/desktop#pre-configure-ssh-connections-for-your-team)新增到 Desktop 環境下拉式選單 | 遠端、桌面和通知 | User or managed |

798| [`sshHostAllowlist`](#sshhostallowlist) | 限制[桌面 SSH 工作階段](/docs/zh-TW/desktop#restrict-which-ssh-hosts-users-can-connect-to)可以到達的主機 | 遠端、桌面和通知 | Managed |798| [`sshHostAllowlist`](#sshhostallowlist) | 限制 [Desktop SSH 工作階段](/docs/zh-TW/desktop#restrict-which-ssh-hosts-users-can-connect-to)可以連線的主機 | 遠端、桌面和通知 | Managed |

799| [`statusLine`](#statusline) | 執行您自己的命令以在提示下方呈現[狀態行](/docs/zh-TW/statusline) | 介面和終端 | Any file |799| [`statusLine`](#statusline) | 執行您自己的命令,在提示詞下方呈現[狀態列](/docs/zh-TW/statusline) | 介面和終端機 | Any file |

800| [`strictKnownMarketplaces`](#strictknownmarketplaces) | 允許清單[市集](/docs/zh-TW/plugins/overview)來源使用者可以新增和安裝 | 外掛程式和技能 | Managed |800| [`strictKnownMarketplaces`](#strictknownmarketplaces) | 以允許清單列出使用者可以新增並從中安裝的[市集](/docs/zh-TW/plugins/overview)來源 | 外掛和 skill | Managed |

801| [`strictPluginOnlyCustomization`](#strictpluginonlycustomization) | 從使用者和專案來源封鎖[技能](/docs/zh-TW/skills)、[代理](/docs/zh-TW/sub-agents)、[hooks](/docs/zh-TW/hooks) 和 [MCP 伺服器](/docs/zh-TW/mcp) | 外掛程式和技能 | Managed |801| [`strictPluginOnlyCustomization`](#strictpluginonlycustomization) | 封鎖來自使用者和專案來源的 [skill](/docs/zh-TW/skills)、[agent](/docs/zh-TW/sub-agents)、[hook](/docs/zh-TW/hooks) 和 [MCP 伺服器](/docs/zh-TW/mcp) | 外掛和 skill | Managed |

802| [`strictPluginOnlyCustomization.agents`](#strictpluginonlycustomization-agents) | 將[代理](/docs/zh-TW/sub-agents)鎖定到外掛程式和受管理的來源 | 外掛程式和技能 | Managed |802| [`strictPluginOnlyCustomization.agents`](#strictpluginonlycustomization-agents) | 將 [agent](/docs/zh-TW/sub-agents) 限定為外掛和受管來源 | 外掛和 skill | Managed |

803| [`strictPluginOnlyCustomization.hooks`](#strictpluginonlycustomization-hooks) | 將 [hooks](/docs/zh-TW/hooks) 鎖定到外掛程式和受管理的來源 | 外掛程式和技能 | Managed |803| [`strictPluginOnlyCustomization.hooks`](#strictpluginonlycustomization-hooks) | 將 [hook](/docs/zh-TW/hooks) 限定為外掛和受管來源 | 外掛和 skill | Managed |

804| [`strictPluginOnlyCustomization.mcp`](#strictpluginonlycustomization-mcp) | 將 [MCP 伺服器](/docs/zh-TW/mcp)鎖定到外掛程式和受管理的來源 | 外掛程式和技能 | Managed |804| [`strictPluginOnlyCustomization.mcp`](#strictpluginonlycustomization-mcp) | 將 [MCP 伺服器](/docs/zh-TW/mcp)限定為外掛和受管來源 | 外掛和 skill | Managed |

805| [`strictPluginOnlyCustomization.skills`](#strictpluginonlycustomization-skills) | 將[技能](/docs/zh-TW/skills)鎖定到外掛程式和受管理的來源 | 外掛程式和技能 | Managed |805| [`strictPluginOnlyCustomization.skills`](#strictpluginonlycustomization-skills) | 將 [skill](/docs/zh-TW/skills) 限定為外掛和受管來源 | 外掛和 skill | Managed |

806| [`subagentPromptCacheTtl`](#subagentpromptcachettl) | 選擇子代理和主要對話外其他請求的[提示快取生命週期](/docs/zh-TW/prompt-caching#cache-lifetime) | 模型和回應 | Any file |806| [`subagentPromptCacheTtl`](#subagentpromptcachettl) | 選擇 subagent 和主要對話以外其他請求的[提示快取生命週期](/docs/zh-TW/prompt-caching#cache-lifetime) | 模型和回應 | Any file |

807| [`subagentStatusLine`](#subagentstatusline) | 使用您自己的命令重寫[子代理](/docs/zh-TW/sub-agents)工作顯示中的列 | 介面和終端 | Any file |807| [`subagentStatusLine`](#subagentstatusline) | 使用您自己的命令改寫 [subagent](/docs/zh-TW/sub-agents) 工作顯示中的列 | 介面和終端機 | Any file |

808| [`switchModelsOnFlag`](#switchmodelsonflag) | 自動切換模型或在[安全分類器](/docs/zh-TW/model-config#ask-before-switching)標記請求時暫停 | 模型和回應 | Any file |808| [`switchModelsOnFlag`](#switchmodelsonflag) | 當[安全分類器](/docs/zh-TW/model-config#ask-before-switching)標記請求時,自動切換模型或暫停 | 模型和回應 | Any file |

809| [`syncClaudeAiPlugins`](#syncclaudeaiplugins) | 停止載入[在您的 claude.ai 帳戶上啟用的外掛程式](/docs/zh-TW/plugins/loading#synced-plugins)並停止下載新的外掛程式 | 外掛程式和技能 | User, local, or managed |809| [`syncClaudeAiPlugins`](#syncclaudeaiplugins) | 停止載入[在您的 claude.ai 帳戶上啟用的外掛](/docs/zh-TW/plugins/loading#synced-plugins),並停止下載新的外掛 | 外掛和 skill | User, local, or managed |

810| [`syncClaudeAiSkills`](#syncclaudeaiskills) | 停止載入[在您的 claude.ai 帳戶上啟用的技能](/docs/zh-TW/skills#how-synced-skills-behave)並停止下載新的技能 | 外掛程式和技能 | User, local, or managed |810| [`syncClaudeAiSkills`](#syncclaudeaiskills) | 停止載入[在您的 claude.ai 帳戶上啟用的 skill](/docs/zh-TW/skills#how-synced-skills-behave),並停止下載新的 skill | 外掛和 skill | User, local, or managed |

811| [`syntaxHighlightingDisabled`](#syntaxhighlightingdisabled) | 在 diffs 和程式碼區塊中關閉語法醒目提示 | 介面和終端 | Any file |811| [`syntaxHighlightingDisabled`](#syntaxhighlightingdisabled) | 關閉差異和程式碼區塊中的語法醒目提示 | 介面和終端機 | Any file |

812| [`taskOutputMaxChars`](#taskoutputmaxchars) | 在 v2.1.277 中移除,以及它調整大小的 `TaskOutput` 工具 | 記憶和內容 | Any file |812| [`taskOutputMaxChars`](#taskoutputmaxchars) | 已於 v2.1.277 移除,連同其所設定大小的 `TaskOutput` 工具一併移除 | 記憶和上下文 | Any file |

813| [`teammateDefaultModel`](#teammatedefaultmodel) | 在 v2.1.234 中移除;請參閱[指定隊友和模型](/docs/zh-TW/agent-teams#specify-teammates-and-models)以了解 Claude Code 如何選擇隊友的模型 | 全域設定設定 | Global config |813| [`teammateDefaultModel`](#teammatedefaultmodel) | 已於 v2.1.234 移除;請參閱[指定隊員和模型](/docs/zh-TW/agent-teams#specify-teammates-and-models),了解 Claude Code 如何選擇隊員的模型 | 全域組態設定 | Global config |

814| [`teammateMode`](#teammatemode) | 選擇[代理團隊隊友顯示](/docs/zh-TW/agent-teams#choose-a-display-mode)的方式 | 代理、工作階段和 worktrees | Any file |814| [`teammateMode`](#teammatemode) | 選擇 [agent team 隊員的顯示方式](/docs/zh-TW/agent-teams#choose-a-display-mode) | Agent、工作階段和 worktree | Any file |

815| [`terminalProgressBarEnabled`](#terminalprogressbarenabled) | 在支援它的終端中隱藏終端進度列 | 介面和終端 | Any file |815| [`terminalProgressBarEnabled`](#terminalprogressbarenabled) | 在支援的終端機中隱藏終端機進度列 | 介面和終端機 | Any file |

816| [`terminalTitleFromRename`](#terminaltitlefromrename) | 停止 [`/rename`](/docs/zh-TW/sessions#name-your-sessions) 和 `--name` 變更終端標籤標題 | 介面和終端 | Any file |816| [`terminalTitleFromRename`](#terminaltitlefromrename) | 讓 [`/rename`](/docs/zh-TW/sessions#name-your-sessions) 和 `--name` 不變更終端機分頁標題 | 介面和終端機 | Any file |

817| [`theme`](#theme) | 選擇介面[色彩主題](/docs/zh-TW/terminal-config#match-the-color-theme),內建或自訂 | 介面和終端 | Any file |817| [`theme`](#theme) | 選擇介面的[色彩主題](/docs/zh-TW/terminal-config#match-the-color-theme),內建或自訂皆可 | 介面和終端機 | Any file |

818| [`timeFormat`](#timeformat) | 在 12 小時或 24 小時時鐘、UTC 或 strftime 模式中顯示介面中的時間 | 介面和終端 | Any file |818| [`timeFormat`](#timeformat) | 以 12 小時制或 24 小時制、UTC,或 strftime 格式顯示介面中的時間 | 介面和終端機 | Any file |

819| [`timeZone`](#timezone) | 在時區中顯示介面中的時間,而不是您的系統時區 | 介面和終端 | Any file |819| [`timeZone`](#timezone) | 以系統時區以外的時區顯示介面中的時間 | 介面和終端機 | Any file |

820| [`tui`](#tui) | 選擇[全螢幕](/docs/zh-TW/fullscreen)或經典終端呈現器 | 介面和終端 | Any file |820| [`tui`](#tui) | 選擇[全螢幕](/docs/zh-TW/fullscreen)或傳統終端機呈現器 | 介面和終端機 | Any file |

821| [`ultracode`](#ultracode) | 讓 Claude 為每個實質性工作規劃[工作流程](/docs/zh-TW/workflows#let-claude-decide-with-ultracode),無需被要求 | 模型和回應 | Any file |821| [`ultracode`](#ultracode) | 讓 Claude 在未被要求的情況下,為每個實質性工作規劃[工作流程](/docs/zh-TW/workflows#let-claude-decide-with-ultracode) | 模型和回應 | Any file |

822| [`useAutoModeDuringPlan`](#useautomodeduringplan) | 讓[自動模式](/docs/zh-TW/permission-modes#eliminate-prompts-with-auto-mode)分類器在 [Plan Mode](/docs/zh-TW/permission-modes#analyze-before-you-edit-with-plan-mode) 中審查 shell 命令;設定 `false` 以改為取得提示 | 權限設定 | User, local, or managed |822| [`useAutoModeDuringPlan`](#useautomodeduringplan) | 讓[自動模式](/docs/zh-TW/permission-modes#eliminate-prompts-with-auto-mode)分類器在 [plan mode](/docs/zh-TW/permission-modes#analyze-before-you-edit-with-plan-mode) 中審查 shell 命令;設為 `false` 則改為顯示提示 | 權限設定 | User, local, or managed |

823| [`verbose`](#verbose) | 顯示[完整工具輸出](/docs/zh-TW/cli-reference#cli-flags)而不是截斷的摘要;當兩者都設定時,`viewMode` 優先 | 介面和終端 | Any file |823| [`verbose`](#verbose) | 顯示[完整工具輸出](/docs/zh-TW/cli-reference#cli-flags)而非截斷的摘要;兩者都設定時,`viewMode` 優先 | 介面和終端機 | Any file |

824| [`viewMode`](#viewmode) | 在[預設、詳細或焦點檢視](/docs/zh-TW/cli-reference#cli-flags)中開始每個工作階段 | 介面和終端 | Any file |824| [`viewMode`](#viewmode) | 以[預設、詳細或專注檢視](/docs/zh-TW/cli-reference#cli-flags)開始每個工作階段 | 介面和終端機 | Any file |

825| [`vimInsertModeRemaps`](#viminsertmoderemaps) | 將兩鍵 [INSERT 模式序列](/docs/zh-TW/interactive-mode#remap-insert-mode-key-sequences)(例如 `jj`)對應到 Escape | 介面和終端 | User or managed |825| [`vimInsertModeRemaps`](#viminsertmoderemaps) | 將雙鍵 [INSERT 模式序列](/docs/zh-TW/interactive-mode#remap-insert-mode-key-sequences)(例如 `jj`)對應到 Escape | 介面和終端機 | User or managed |

826| [`voice`](#voice) | 開啟[語音聽寫](/docs/zh-TW/voice-dictation)並選擇按住或點選模式 | 介面和終端 | Any file |826| [`voice`](#voice) | 開啟[語音聽寫](/docs/zh-TW/voice-dictation)並選擇按住或點按模式 | 介面和終端機 | Any file |

827| [`voiceEnabled`](#voiceenabled) | 使用較舊的單鍵形式開啟[語音聽寫](/docs/zh-TW/voice-dictation) | 介面和終端 | Any file |827| [`voiceEnabled`](#voiceenabled) | 以較舊的單鍵形式開啟[語音聽寫](/docs/zh-TW/voice-dictation) | 介面和終端機 | Any file |

828| [`wheelScrollAccelerationEnabled`](#wheelscrollaccelerationenabled) | 在全螢幕呈現中關閉[滑鼠滾輪加速](/docs/zh-TW/fullscreen#mouse-wheel-scrolling) | 介面和終端 | Any file |828| [`wheelScrollAccelerationEnabled`](#wheelscrollaccelerationenabled) | 在全螢幕呈現中關閉[滑鼠滾輪加速](/docs/zh-TW/fullscreen#mouse-wheel-scrolling) | 介面和終端機 | Any file |

829| [`workflowKeywordTriggerEnabled`](#workflowkeywordtriggerenabled) | 讓提示中的字詞 `ultracode` 啟動[工作流程](/docs/zh-TW/workflows);設定 `false` 以輸入它而不啟動一個 | Hooks 和自動化 | Any file |829| [`workflowKeywordTriggerEnabled`](#workflowkeywordtriggerenabled) | 讓提示詞中的 `ultracode` 字詞啟動[工作流程](/docs/zh-TW/workflows);設為 `false` 則可輸入該字詞而不啟動工作流程 | Hook 和自動化 | Any file |

830| [`workflowSizeGuideline`](#workflowsizeguideline) | 設定 Claude 在[動態工作流程](/docs/zh-TW/workflows)中的目標代理計數 | Hooks 和自動化 | Any file |830| [`workflowSizeGuideline`](#workflowsizeguideline) | 設定 Claude 在[動態工作流程](/docs/zh-TW/workflows)中的目標 agent 數量 | Hook 和自動化 | Any file |

831| [`worktree`](#worktree) | 設定 Claude Code 如何建立 git [worktrees](/docs/zh-TW/worktrees) | 代理、工作階段和 worktrees | Any file |831| [`worktree`](#worktree) | 設定 Claude Code 如何建立 git [worktree](/docs/zh-TW/worktrees) | Agent、工作階段和 worktree | Any file |

832| [`worktree.baseRef`](#worktree-baseref) | 從遠端預設分支或您的本機 HEAD 分支新 [worktrees](/docs/zh-TW/worktrees) | 代理、工作階段和 worktrees | Any file |832| [`worktree.baseRef`](#worktree-baseref) | 從遠端預設分支或您的本機 HEAD 建立新 [worktree](/docs/zh-TW/worktrees) 的分支 | Agent、工作階段和 worktree | Any file |

833| [`worktree.bgIsolation`](#worktree-bgisolation) | 讓背景工作階段編輯工作副本,無需 [worktree](/docs/zh-TW/worktrees) | 代理、工作階段和 worktrees | Any file |833| [`worktree.bgIsolation`](#worktree-bgisolation) | 讓背景工作階段不透過 [worktree](/docs/zh-TW/worktrees) 直接編輯工作副本 | Agent、工作階段和 worktree | Any file |

834| [`worktree.sparsePaths`](#worktree-sparsepaths) | 在每個 [worktree](/docs/zh-TW/worktrees) 中只簽出您需要的目錄 | 代理、工作階段和 worktrees | Any file |834| [`worktree.sparsePaths`](#worktree-sparsepaths) | 在每個 [worktree](/docs/zh-TW/worktrees) 中只簽出您需要的目錄 | Agent、工作階段和 worktree | Any file |

835| [`worktree.symlinkDirectories`](#worktree-symlinkdirectories) | 將大型目錄符號連結到每個 [worktree](/docs/zh-TW/worktrees),而不是複製它們 | 代理、工作階段和 worktrees | Any file |835| [`worktree.symlinkDirectories`](#worktree-symlinkdirectories) | 以符號連結將大型目錄連到每個 [worktree](/docs/zh-TW/worktrees),而非複製它們 | Agent、工作階段和 worktree | Any file |

836| [`wslInheritsWindowsSettings`](#wslinheritswindowssettings) | 讓 WSL 從 Windows 原則鏈讀取[受管理的設定](/docs/zh-TW/managed-settings) | 企業和受管理的設定 | Managed |836| [`wslInheritsWindowsSettings`](#wslinheritswindowssettings) | 讓 WSL 從 Windows 原則鏈讀取[受管設定](/docs/zh-TW/managed-settings) | 企業和受管設定 | Managed |

837 837 

838<h2 id="model-and-responses">838<h2 id="model-and-responses">

839 模型和回應839 模型和回應


1441 1441 

1442使受管設定成為權限規則的唯一設定來源。Claude Code 隨後會忽略使用者、專案、本機和 `--settings` 檔案中的 `allow`、`ask` 和 `deny` 規則,忽略 `--allowedTools`,隱藏權限提示中的永遠允許選項,並停止儲存新規則。1442使受管設定成為權限規則的唯一設定來源。Claude Code 隨後會忽略使用者、專案、本機和 `--settings` 檔案中的 `allow`、`ask` 和 `deny` 規則,忽略 `--allowedTools`,隱藏權限提示中的永遠允許選項,並停止儲存新規則。

1443 1443 

1444當[來自嵌入主機的父設定](/docs/zh-TW/managed-settings#let-an-embedding-host-add-policy)適用時,Claude Code 會將其視為受管層級的一部分。它捨棄其 `allow` 規則和 `additionalDirectories`,並保留其 `deny` 和 `ask` 規則,除了模式以 `!` 開頭的 `Read` 和 `Edit` 規則。主機無法使用 `!` 規則從受管規則中切割出路徑,無論您是否設定此金鑰。1444當[來自嵌入主機的父設定](/docs/zh-TW/managed-settings#let-an-embedding-host-add-policy)適用時,Claude Code 會將其視為受管層級的一部分。它捨棄其 `allow` 規則和 `additionalDirectories`,並保留其 `deny` 和 `ask` 規則,除了模式以 `!` 開頭的 `Read` 和 `Edit` 規則。主機無法使用 `!` 規則從受管規則中切割出路徑,無論您是否設定此設定鍵。

1445 1445 

1446`--disallowedTools` 規則和目前工作階段的 `deny` 和 `ask` 規則仍然適用,包括在 Claude Code 於工作階段中途重新載入設定之後。它們只會限制,因此無法擴大受管規則授予的權限。在 v2.1.257 之前,Claude Code 在第一次設定重新載入時會捨棄這些命令列和工作階段規則。1446`--disallowedTools` 規則和目前工作階段的 `deny` 和 `ask` 規則仍然適用,包括在 Claude Code 於工作階段中途重新載入設定之後。它們只會限制,因此無法擴大受管規則授予的權限。在 v2.1.257 之前,Claude Code 在第一次設定重新載入時會捨棄這些命令列和工作階段規則。

1447 1447 

1448如需 `--disallowedTools` 或工作階段規則中的 `!` 模式可以切割出什麼,請參閱 [Read 和 Edit 規則](/docs/zh-TW/permissions#read-and-edit)。1448如需 `--disallowedTools` 或工作階段規則中的 `!` 模式可以切割出什麼,請參閱 [Read 和 Edit 規則](/docs/zh-TW/permissions#read-and-edit)。

1449 1449 

1450設定此設定鍵時,Claude Code v2.1.282 或更新版本也會忽略來自下列來源的 skill 和 `.claude/commands/` 檔案中的 [`allowed-tools`](/docs/zh-TW/skills#pre-approve-tools-for-a-skill) frontmatter:

1451 

1452* 儲存庫的 `.claude/` 目錄

1453* 您的 `~/.claude/skills/` 和 `~/.claude/commands/` 目錄,包括[從 claude.ai 同步的 skill](/docs/zh-TW/skills#where-synced-skills-load)

1454* `--add-dir` 目錄

1455* 位於 `~/.claude/skills/` 或專案的 `.claude/skills/` 內、[以 `.claude-plugin` 資訊清單宣告的外掛](/docs/zh-TW/plugins/loading#plugins-shared-through-a-repository)

1456 

1457來自受管設定的 skill 和隨附 skill 會保留其 `allowed-tools`。skill 的 `disallowed-tools` 仍然適用。如需 Claude Code 忽略此欄位時開發人員會看到的內容,請參閱[僅套用受管權限規則時](/docs/zh-TW/skills#when-only-managed-permission-rules-apply)。

1458 

1450* **範圍**:[`Managed`](#scopes)1459* **範圍**:[`Managed`](#scopes)

1451* **類型**:布林值1460* **類型**:布林值

1452 * `true`:受管設定成為權限規則的唯一設定來源1461 * `true`:受管設定成為權限規則的唯一設定來源


1459}1468}

1460```1469```

1461 1470 

1462此金鑰不會鎖定 MCP 伺服器允許清單;若要執行此操作,請設定 [`allowManagedMcpServersOnly`](#allowmanagedmcpserversonly)。請參閱[僅受管設定](/docs/zh-TW/managed-settings#managed-only-settings)。1471此設定鍵不會鎖定 MCP 伺服器允許清單;若要執行此操作,請設定 [`allowManagedMcpServersOnly`](#allowmanagedmcpserversonly)。請參閱[僅受管設定](/docs/zh-TW/managed-settings#managed-only-settings)。

1463 1472 

1464<h3 id="automode">1473<h3 id="automode">

1465 `autoMode`1474 `autoMode`


1487 `autoMode.classifyAllShell`1496 `autoMode.classifyAllShell`

1488</h3>1497</h3>

1489 1498 

1490在自動模式啟用時,將每個 Bash 和 PowerShell 命令傳送到自動模式分類器。根據預設,自動模式只會暫停可能執行任意程式碼的允許規則:工具範圍和萬用字元規則(例如 `Bash(*)`)以及解譯器或 shell 包裝器前綴(例如 `Bash(python *)`)。與其他允許規則相符的命令(例如 `Bash(npm test)`)會跳過分類器,除非它帶有[每個命令允許的網域](/docs/zh-TW/sandboxing#per-command-allowed-domains-in-auto-mode)。當它跳過時,規則的前綴未預期的破壞性引數可能會通過而不被看到。設定此金鑰會暫停工作階段的每個 shell 允許規則,以便分類器看到每個命令。需要 Claude Code v2.1.193 或更新版本。1499在自動模式啟用時,將每個 Bash 和 PowerShell 命令傳送到自動模式分類器。根據預設,自動模式只會暫停可能執行任意程式碼的允許規則:工具範圍和萬用字元規則(例如 `Bash(*)`)以及解譯器或 shell 包裝器前綴(例如 `Bash(python *)`)。與其他允許規則相符的命令(例如 `Bash(npm test)`)會跳過分類器,除非它帶有[每個命令允許的網域](/docs/zh-TW/sandboxing#per-command-allowed-domains-in-auto-mode)。當它跳過時,規則的前綴未預期的破壞性引數可能會通過而不被看到。設定此設定鍵會暫停工作階段的每個 shell 允許規則,以便分類器看到每個命令。需要 Claude Code v2.1.193 或更新版本。

1491 1500 

1492* **範圍**:[`User or managed`](#scopes)。讀取位置與 [`autoMode`](#automode) 相同。1501* **範圍**:[`User or managed`](#scopes)。讀取位置與 [`autoMode`](#automode) 相同。

1493* **類型**:布林值1502* **類型**:布林值


1525 `permissions`1534 `permissions`

1526</h3>1535</h3>

1527 1536 

1528控制 Claude 可以在不詢問的情況下使用哪些工具、哪些工具始終提示,以及哪些工具被封鎖,並設定工作階段啟動時的[權限模式](/docs/zh-TW/permission-modes)。下面的每個 `permissions.*` 金鑰都巢狀在此物件下。1537控制 Claude 可以在不詢問的情況下使用哪些工具、哪些工具始終提示,以及哪些工具被封鎖,並設定工作階段啟動時的[權限模式](/docs/zh-TW/permission-modes)。下面的每個 `permissions.*` 設定鍵都巢狀在此物件下。

1529 1538 

1530* **範圍**:[`Any file`](#scopes)1539* **範圍**:[`Any file`](#scopes)

1531* **類型**:物件,包含 `allow`、`ask`、`deny`、`additionalDirectories`、`blockReadsOutsideWorkingDirectories`、`defaultMode`、`disableBypassPermissionsMode` 和 `disableAutoMode`1540* **類型**:物件,包含 `allow`、`ask`、`deny`、`additionalDirectories`、`blockReadsOutsideWorkingDirectories`、`defaultMode`、`disableBypassPermissionsMode` 和 `disableAutoMode`


1544}1553}

1545```1554```

1546 1555 

1547三個規則陣列共享一個語法;請參閱 `permissions.allow` 下的[權限規則語法](#permission-rule-syntax)。如需來自不同檔案的權限規則如何組合,請參閱[權限規則如何跨範圍合併](/docs/zh-TW/permissions#settings-precedence);如需設定金鑰的一般組合方式,請參閱設定指南上的[設定優先順序](/docs/zh-TW/settings#settings-precedence)。1556三個規則陣列共享一個語法;請參閱 `permissions.allow` 下的[權限規則語法](#permission-rule-syntax)。如需來自不同檔案的權限規則如何組合,請參閱[權限規則如何跨範圍合併](/docs/zh-TW/permissions#settings-precedence);如需設定鍵的一般組合方式,請參閱設定指南上的[設定優先順序](/docs/zh-TW/settings#settings-precedence)。

1548 1557 

1549<h3 id="useautomodeduringplan">1558<h3 id="useautomodeduringplan">

1550 `useAutoModeDuringPlan`1559 `useAutoModeDuringPlan`

1551</h3>1560</h3>

1552 1561 

1553選擇 Claude Code 是否在計畫模式中使用自動模式分類器來檢查 shell 命令。使用預設值 `true`,分類器在計畫期間檢查每個命令(當自動模式可用且您看不到提示時),除了[關鍵路徑移除](/docs/zh-TW/permission-modes#critical-paths)。設定 `false` 以針對內建唯讀集之外的每個命令獲得權限提示。在 `/config` 中顯示為**在計畫期間使用自動模式**。1562選擇 Claude Code 是否在 plan mode 中使用自動模式分類器來檢查 shell 命令。使用預設值 `true`,分類器在規劃期間檢查每個命令(當自動模式可用且您看不到提示時),除了[關鍵路徑移除](/docs/zh-TW/permission-modes#critical-paths)。設定 `false` 以針對內建唯讀集之外的每個命令獲得權限提示。在 `/config` 中顯示為**在計畫期間使用自動模式**。

1554 1563 

1555* **範圍**:[`User, local, or managed`](#scopes)。儲存庫無法為您關閉它。1564* **範圍**:[`User, local, or managed`](#scopes)。儲存庫無法為您關閉它。

1556* **類型**:布林值1565* **類型**:布林值

1557 * `true`:與未設定相同;當自動模式可用時,分類器在計畫期間檢查每個 shell 命令,而不是提示您,除了[關鍵路徑移除](/docs/zh-TW/permission-modes#critical-paths)。任何這些檔案中的 `false` 仍然會關閉它1566 * `true`:與未設定相同;當自動模式可用時,分類器在規劃期間檢查每個 shell 命令,而不是提示您,除了[關鍵路徑移除](/docs/zh-TW/permission-modes#critical-paths)。任何這些檔案中的 `false` 仍然會關閉它

1558 * `false`:您會針對內建唯讀集之外的每個命令獲得權限提示1567 * `false`:您會針對內建唯讀集之外的每個命令獲得權限提示

1559* **預設值**:`true`1568* **預設值**:`true`

1560 1569 


1635* **範圍**:[`Any file`](#scopes)1644* **範圍**:[`Any file`](#scopes)

1636* **類型**:權限規則字串陣列1645* **類型**:權限規則字串陣列

1637* **預設值**:未設定1646* **預設值**:未設定

1638* **每個工作階段的覆寫**:`--disallowedTools` 在此金鑰旁邊為一個工作階段新增拒絕規則1647* **每個工作階段的覆寫**:`--disallowedTools` 在此設定鍵之外為一個工作階段新增拒絕規則

1639 1648 

1640此範例拒絕讀取 `.env` 檔案、`secrets` 目錄和認證檔案,並封鎖 `curl` 命令:1649此範例拒絕讀取 `.env` 檔案、`secrets` 目錄和憑證檔案,並封鎖 `curl` 命令:

1641 1650 

1642```json settings.json theme={null}1651```json settings.json theme={null}

1643{1652{


1653}1662}

1654```1663```

1655 1664 

1656工具名稱接受 glob 模式,因此 `"*"` 拒絕每個工具,`"mcp__*"` 拒絕每個 MCP 工具。只要任何其他工具仍然可供 Claude 使用,Claude Code 就會忽略 [`EndConversation`](/docs/zh-TW/tools-reference#endconversation-tool-behavior) 工具的拒絕規則。`Bash` 拒絕規則與 Claude 寫入的命令相符,因此 `Bash(curl *)` 不會停止 `/usr/bin/curl` 或 `sh -c 'curl …'`;請參閱[Bash 規則不相符的內容](/docs/zh-TW/permissions#bash-rule-limits)。此金鑰取代已棄用的 `ignorePatterns` 設定。1665工具名稱接受 glob 模式,因此 `"*"` 拒絕每個工具,`"mcp__*"` 拒絕每個 MCP 工具。只要任何其他工具仍然可供 Claude 使用,Claude Code 就會忽略 [`EndConversation`](/docs/zh-TW/tools-reference#endconversation-tool-behavior) 工具的拒絕規則。`Bash` 拒絕規則與 Claude 寫入的命令相符,因此 `Bash(curl *)` 不會停止 `/usr/bin/curl` 或 `sh -c 'curl …'`;請參閱[Bash 規則不相符的內容](/docs/zh-TW/permissions#bash-rule-limits)。此設定鍵取代已棄用的 `ignorePatterns` 設定。

1657 1666 

1658<h3 id="permissions-additionaldirectories">1667<h3 id="permissions-additionaldirectories">

1659 `permissions.additionalDirectories`1668 `permissions.additionalDirectories`


1661 1670 

1662給予 Claude 檔案存取權限,以存取您啟動的目錄之外的目錄,作為額外的[工作目錄](/docs/zh-TW/permissions#working-directories)。大多數 `.claude/` 設定[未從這些目錄探索](/docs/zh-TW/permissions#additional-directories-grant-file-access-not-configuration)。1671給予 Claude 檔案存取權限,以存取您啟動的目錄之外的目錄,作為額外的[工作目錄](/docs/zh-TW/permissions#working-directories)。大多數 `.claude/` 設定[未從這些目錄探索](/docs/zh-TW/permissions#additional-directories-grant-file-access-not-configuration)。

1663 1672 

1664* **範圍**:[`Any file`](#scopes)1673* **範圍**:[`Any file`](#scopes),專案和本機項目所給予的[沙箱寫入存取權有其限制](/docs/zh-TW/sandboxing#repository-settings-under-an-admin-required-sandbox)

1665* **類型**:目錄路徑陣列1674* **類型**:目錄路徑陣列

1666* **預設值**:未設定1675* **預設值**:未設定

1667* **每個工作階段的覆寫**:`--add-dir` 和 `/add-dir` 在此金鑰旁邊為一個工作階段新增目錄1676* **每個工作階段的覆寫**:`--add-dir` 和 `/add-dir` 在此設定鍵之外為一個工作階段新增目錄

1668 1677 

1669```json settings.json theme={null}1678```json settings.json theme={null}

1670{1679{


1680 `permissions.blockReadsOutsideWorkingDirectories`1689 `permissions.blockReadsOutsideWorkingDirectories`

1681</h3>1690</h3>

1682 1691 

1683使 Claude 的檔案工具在每個權限模式(包括 `bypassPermissions`)中拒絕讀取您的[工作目錄](/docs/zh-TW/permissions#working-directories)之外的路徑。Claude Code 拒絕對這些路徑的 `Read`、`Grep`、`Glob` 和 `LSP` 呼叫,並告訴 Claude 要求您使用 `/add-dir` 新增目錄。Claude Code 本身需要的檔案保持可讀,例如您的技能、外掛程式、規則、代理、命令以及 `~/.claude/` 下的 `CLAUDE.md` 記憶檔案。需要 Claude Code v2.1.257 或更新版本。1692使 Claude 的檔案工具在每個權限模式(包括 `bypassPermissions`)中拒絕讀取您的[工作目錄](/docs/zh-TW/permissions#working-directories)之外的路徑。Claude Code 拒絕對這些路徑的 `Read`、`Grep`、`Glob` 和 `LSP` 呼叫,並告訴 Claude 要求您使用 `/add-dir` 新增目錄。Claude Code 本身需要的檔案保持可讀,例如您的 skill、外掛、規則、agent、命令以及 `~/.claude/` 下的 `CLAUDE.md` 記憶檔案。需要 Claude Code v2.1.257 或更新版本。

1684 1693 

1685Claude Code 不會以相同方式拒絕 shell 命令:1694Claude Code 不會以相同方式拒絕 shell 命令:

1686 1695 

1687* [沒有任何模式自動核准的操作](/docs/zh-TW/permission-modes#actions-no-mode-auto-approves)涵蓋讀取此類路徑的 shell 命令何時提示您1696* [沒有任何模式自動核准的操作](/docs/zh-TW/permission-modes#actions-no-mode-auto-approves)涵蓋讀取此類路徑的 shell 命令何時提示您

1688* [區塊下的沙箱化命令](#sandboxed-commands-under-the-block)涵蓋沙箱化命令可以讀取的內容1697* [區塊下的沙箱化命令](#sandboxed-commands-under-the-block)涵蓋沙箱化命令可以讀取的內容

1689 1698 

1690shell 解析器無法追蹤的 Bash 命令(例如多次變更目錄或執行子 shell 的命令)會在自動模式和 `bypassPermissions` 模式中提示您。即使命令未命名工作目錄外的任何路徑,提示仍然會出現。當命令在[沙箱](/docs/zh-TW/sandboxing)中執行且沙箱強制執行封鎖時,此提示不適用。1699shell 解析器無法追蹤的 Bash 命令(例如多次變更目錄或執行子 shell 的命令)即使在自動模式和 `bypassPermissions` 模式中也會提示您。即使命令未命名工作目錄外的任何路徑,提示仍然會出現。當命令在[沙箱](/docs/zh-TW/sandboxing)中執行且沙箱強制執行封鎖時,此提示不適用。

1691 1700 

1692Claude Code 也會在此處寫入 `true`,當您選擇在[自動模式的提示中封鎖此類讀取(在第一次讀取工作目錄外之前)](/docs/zh-TW/permission-modes#first-read-outside-the-working-directories)時。1701Claude Code 也會在此處寫入 `true`,當您選擇在[自動模式的提示中封鎖此類讀取(在第一次讀取工作目錄外之前)](/docs/zh-TW/permission-modes#first-read-outside-the-working-directories)時。

1693 1702 


1709 1718 

1710當 [`autoMemoryDirectory`](#automemorydirectory) 來自專案的 `.claude/settings.json`,或來自被[視為儲存庫提供](/docs/zh-TW/permissions#when-your-local-settings-file-needs-trust)的 `.claude/settings.local.json` 時,Claude Code 不會從該目錄載入任何[自動記憶](/docs/zh-TW/memory#storage-location),也不會將任何儲存到其中。1719當 [`autoMemoryDirectory`](#automemorydirectory) 來自專案的 `.claude/settings.json`,或來自被[視為儲存庫提供](/docs/zh-TW/permissions#when-your-local-settings-file-needs-trust)的 `.claude/settings.local.json` 時,Claude Code 不會從該目錄載入任何[自動記憶](/docs/zh-TW/memory#storage-location),也不會將任何儲存到其中。

1711 1720 

1712若要解除區塊,請從設定它的每個設定檔中移除金鑰,然後啟動新工作階段。1721若要解除區塊,請從設定它的每個設定檔中移除此設定鍵,然後啟動新工作階段。

1713 1722 

1714<h4 id="sandboxed-commands-under-the-block">1723<h4 id="sandboxed-commands-under-the-block">

1715 區塊下的沙箱化命令1724 區塊下的沙箱化命令

1716</h4>1725</h4>

1717 1726 

1718當[沙箱](/docs/zh-TW/sandboxing)開啟時,區塊也涵蓋沙箱化命令。Claude Code 拒絕它們對您的主目錄和保存使用者檔案的其他根目錄的讀取存取:`/Users`、`/home`、`/root`、`/Volumes`、`/mnt`、`/media`、`/run/media` 和 `/srv`。然後它重新開啟工作目錄、[Claude Code 在工作階段中建立的 worktrees](/docs/zh-TW/worktrees)、工作階段暫存目錄,以及 `~/.claude` 的命令需要的部分,例如技能和外掛程式。當區塊生效時,來自儲存庫設定的 `allowRead` 和 `allowWrite` 項目不計。1727當[沙箱機制](/docs/zh-TW/sandboxing)開啟時,區塊也涵蓋沙箱化命令。Claude Code 拒絕它們對您的家目錄和保存使用者檔案的其他根目錄的讀取存取:`/Users`、`/home`、`/root`、`/Volumes`、`/mnt`、`/media`、`/run/media` 和 `/srv`。然後它重新開啟工作目錄、[Claude Code 在工作階段中建立的 worktree](/docs/zh-TW/worktrees)、工作階段暫存目錄,以及 `~/.claude` 中命令需要的部分,例如 skill 和外掛。當區塊生效時,來自儲存庫設定的 `allowRead` 和 `allowWrite` 項目不計。

1719 1728 

1720當工作階段的工作目錄是連結的 [git worktree](/docs/zh-TW/worktrees)(包括 Claude Code 在工作階段中途進入的)時,儲存庫的通用 `.git` 目錄對沙箱化命令保持可讀和可寫,因此 git 在該處保持運作。1729當工作階段的工作目錄是連結的 [git worktree](/docs/zh-TW/worktrees)(包括 Claude Code 在工作階段中途進入的)時,儲存庫的通用 `.git` 目錄對沙箱化命令保持可讀和可寫,因此 git 在該處保持運作。

1721 1730 


1735 1744 

1736在 Linux 和 WSL2 上,作為符號連結的設定檔可以在其自己的路徑上保持不可讀,然後 `git` 在沒有它的情況下執行。`~/.git-credentials` 和 `$XDG_CONFIG_HOME/git/credentials` 保持被區塊。1745在 Linux 和 WSL2 上,作為符號連結的設定檔可以在其自己的路徑上保持不可讀,然後 `git` 在沒有它的情況下執行。`~/.git-credentials` 和 `$XDG_CONFIG_HOME/git/credentials` 保持被區塊。

1737 1746 

1738如果重新開啟的檔案保存機密,例如 `http.extraHeader` 令牌,請將其路徑新增到 [`sandbox.filesystem.denyRead`](#sandbox-filesystem-denyread)。涵蓋檔案的 `denyRead` 項目始終優先於此重新開啟。1747如果重新開啟的檔案保存機密,例如 `http.extraHeader` token,請將其路徑新增到 [`sandbox.filesystem.denyRead`](#sandbox-filesystem-denyread)。涵蓋檔案的 `denyRead` 項目始終優先於此重新開啟。

1739 1748 

1740<h3 id="permissions-defaultmode">1749<h3 id="permissions-defaultmode">

1741 `permissions.defaultMode`1750 `permissions.defaultMode`

1742</h3>1751</h3>

1743 1752 

1744設定新工作階段啟動時的[權限模式](/docs/zh-TW/permission-modes)。當您將其保留為未設定時,工作階段會以您的計畫和表面的[內建預設值](/docs/zh-TW/permission-modes#which-mode-a-session-starts-in)啟動。1753設定新工作階段啟動時的[權限模式](/docs/zh-TW/permission-modes)。當您將其保留為未設定時,工作階段會以您的使用介面的[內建預設值](/docs/zh-TW/permission-modes#which-mode-a-session-starts-in)啟動。

1745 1754 

1746* **範圍**:[`Any file`](#scopes)。`auto` 和 `bypassPermissions` 不會從專案或本機設定生效,因此請改為在 `~/.claude/settings.json` 中設定它們。在 v2.1.257 之前,`bypassPermissions` 會從任何檔案生效。對於 VS Code 擴充功能啟動的對話,Claude Code 只讀取使用者、受管和 `--settings` 值。1755* **範圍**:[`Any file`](#scopes)。`auto` 和 `bypassPermissions` 不會從專案或本機設定生效,因此請改為在 `~/.claude/settings.json` 中設定它們。在 v2.1.257 之前,`bypassPermissions` 會從任何檔案生效。對於 VS Code 擴充功能啟動的對話,Claude Code 只讀取使用者、受管和 `--settings` 值。

1747* **類型**:字串,其中之一:1756* **類型**:字串,其中之一:

1748 * `"default"`:Claude Code 只在不詢問的情況下執行讀取1757 * `"default"`:Claude Code 只在不詢問的情況下執行讀取

1749 * `"acceptEdits"`:Claude Code 也在不詢問的情況下執行檔案編輯和常見的檔案系統命令,例如 `mkdir` 和 `mv`1758 * `"acceptEdits"`:Claude Code 也在不詢問的情況下執行檔案編輯和常見的檔案系統命令,例如 `mkdir` 和 `mv`

1750 * `"plan"`:Claude Code 讀取和計畫,但在您核准計畫之前封鎖編輯1759 * `"plan"`:Claude Code 讀取和計畫,但在您核准計畫之前封鎖編輯

1751 * `"auto"`:Claude Code 執行所有操作,具有背景安全檢查1760 * `"auto"`:Claude Code 在沒有例行提示的情況下執行;在 shell 命令和網路請求等操作執行之前,背景分類器會檢查它們是否符合您的請求

1752 * `"dontAsk"`:Claude Code 自動拒絕每個原本會提示的呼叫;讀取、不需要核准的其他操作以及預先核准的工具仍然執行1761 * `"dontAsk"`:Claude Code 自動拒絕每個原本會提示的呼叫;讀取、不需要核准的其他操作以及預先核准的工具仍然執行

1753 * `"bypassPermissions"`:Claude Code 在不詢問的情況下執行所有操作1762 * `"bypassPermissions"`:Claude Code 在不詢問的情況下執行所有操作

1754 * `"manual"`:`"default"` 的別名,在 Claude Code v2.1.200 或更新版本中1763 * `"manual"`:`"default"` 的別名,在 Claude Code v2.1.200 或更新版本中

1755* **預設值**:未設定1764* **預設值**:未設定

1756* **每個工作階段的覆寫**:`--permission-mode` 及其 `bypassPermissions` 的等效項 `--dangerously-skip-permissions` 對一個工作階段優先於此金鑰1765* **每個工作階段的覆寫**:`--permission-mode` 及其 `bypassPermissions` 的等效項 `--dangerously-skip-permissions` 對一個工作階段優先於此設定鍵

1757 1766 

1758```json settings.json theme={null}1767```json settings.json theme={null}

1759{1768{


1763}1772}

1764```1773```

1765 1774 

1766權限規則分層在每個模式之上:`deny` 規則在每個模式中封鎖,包括 `bypassPermissions`。請參閱[權限模式](/docs/zh-TW/permission-modes)。`manual` 命名 CLI 和 VS Code 擴充功能中標記為「Manual」的權限模式;別名需要 Claude Code v2.1.200 或更新版本。在雲端工作階段中,Claude Code 只從此金鑰中接受 `acceptEdits`、`plan`、`default` 和 `auto`。對於 VS Code 擴充功能啟動的對話,請參閱[擴充功能為啟動權限模式讀取的設定](/docs/zh-TW/permission-modes#switch-permission-modes)。1775權限規則分層在每個模式之上:`deny` 規則在每個模式中封鎖,包括 `bypassPermissions`。請參閱[權限模式](/docs/zh-TW/permission-modes)。`manual` 命名 CLI 和 VS Code 擴充功能中標記為「Manual」的權限模式;別名需要 Claude Code v2.1.200 或更新版本。在雲端工作階段中,Claude Code 只從此設定鍵中接受 `acceptEdits`、`plan`、`default` 和 `auto`。對於 VS Code 擴充功能啟動的對話,請參閱[擴充功能為啟動權限模式讀取的設定](/docs/zh-TW/permission-modes#switch-permission-modes)。

1767 1776 

1768<h3 id="permissions-disablebypasspermissionsmode">1777<h3 id="permissions-disablebypasspermissionsmode">

1769 `permissions.disableBypassPermissionsMode`1778 `permissions.disableBypassPermissionsMode`

1770</h3>1779</h3>

1771 1780 

1772防止任何人進入 `bypassPermissions` 模式。Claude Code 隨後會拒絕 `--dangerously-skip-permissions` 旗標,並忽略[代理定義](/docs/zh-TW/sub-agents#permission-modes)中的 `permissionMode: bypassPermissions`,因此子代理會以父工作階段的權限模式執行。1781防止任何人進入 `bypassPermissions` 模式。Claude Code 隨後會拒絕 `--dangerously-skip-permissions` 旗標,並忽略 [agent 定義](/docs/zh-TW/sub-agents#permission-modes)中的 `permissionMode: bypassPermissions`,因此 subagent 會以父工作階段的權限模式執行。

1773 1782 

1774* **範圍**:[`Any file`](#scopes)。通常在[受管設定](/docs/zh-TW/managed-settings)中設定以強制執行組織原則。1783* **範圍**:[`Any file`](#scopes)。通常在[受管設定](/docs/zh-TW/managed-settings)中設定以強制執行組織原則。

1775* **類型**:字串 `"disable"`1784* **類型**:字串 `"disable"`

1776* **預設值**:未設定1785* **預設值**:未設定

1777* **每個工作階段的覆寫**:此金鑰優先於 `--dangerously-skip-permissions`,在設定此金鑰時 Claude Code 會拒絕它1786* **每個工作階段的覆寫**:此設定鍵優先於 `--dangerously-skip-permissions`,在設定此設定鍵時 Claude Code 會拒絕它

1778 1787 

1779```json settings.json theme={null}1788```json settings.json theme={null}

1780{1789{


1790 `skipAutoPermissionPrompt`1799 `skipAutoPermissionPrompt`

1791</h3>1800</h3>

1792 1801 

1793跳過 Claude Code 在您自己進入自動模式時顯示的一次性通知,描述[自動模式](/docs/zh-TW/permission-modes#eliminate-prompts-with-auto-mode),例如透過您自己的設定或模式選擇器,而不是當內建預設值在其中啟動工作階段時。Claude Code 顯示該通知一次,然後記錄它已顯示,因此此金鑰只在通知尚未出現的地方重要。1802跳過 Claude Code 在您自己進入自動模式時顯示的一次性通知,描述[自動模式](/docs/zh-TW/permission-modes#eliminate-prompts-with-auto-mode),例如透過您自己的設定或模式選擇器,而不是當內建預設值在其中啟動工作階段時。Claude Code 顯示該通知一次,然後記錄它已顯示,因此此設定鍵只在通知尚未出現的地方重要。

1794 1803 

1795* **範圍**:[`User or managed`](#scopes)。儲存庫無法為您設定它。1804* **範圍**:[`User or managed`](#scopes)。儲存庫無法為您設定它。

1796* **類型**:布林值1805* **類型**:布林值


1823```1832```

1824 1833 

1825<h2 id="sandbox-settings">1834<h2 id="sandbox-settings">

1826 Sandbox 設定1835 沙箱設定

1827</h2>1836</h2>

1828 1837 

1829將 Claude 執行的命令與您的檔案系統、網路和認證隔離。如需了解沙箱如何運作和平台要求,請參閱 [Sandboxing](/docs/zh-TW/sandboxing)。1838將 Claude 執行的命令與您的檔案系統、網路和憑證隔離。關於沙箱機制的運作方式和平台需求,請參閱[沙箱機制](/docs/zh-TW/sandboxing)。

1830 1839 

1831<h3 id="sandbox">1840<h3 id="sandbox">

1832 `sandbox`1841 `sandbox`

1833</h3>1842</h3>

1834 1843 

1835使用 [sandboxing](/docs/zh-TW/sandboxing) 將 Claude 執行的 Bash 命令與您的檔案系統和網路隔離。使用 `enabled` 開啟沙箱,然後使用 `filesystem`、`network` 和 `credentials` 子物件縮小或擴大沙箱化命令可以接觸的內容。沙箱在 macOS、Linux 和 WSL2 上執行。1844透過[沙箱機制](/docs/zh-TW/sandboxing)將 Claude 執行的 Bash 命令與您的檔案系統和網路隔離。使用 `enabled` 開啟沙箱,再透過 `filesystem`、`network` 和 `credentials` 子物件縮小或擴大沙箱化命令可存取的範圍。沙箱可在 macOS、Linux 和 WSL2 上執行。

1836 1845 

1837* **Scope**: [`Any file`](#scopes)1846* **範圍**:[`Any file`](#scopes)

1838* **Type**: 物件,包含 `enabled`、`failIfUnavailable`、`autoAllowBashIfSandboxed`、`excludedCommands`、`allowUnsandboxedCommands`、`enableWeakerNestedSandbox`、`enableWeakerNetworkIsolation`、`allowAppleEvents`、`bwrapPath`、`socatPath`、`ignoreViolations` 和 `ripgrep`,加上 `filesystem`、`network` 和 `credentials` 物件1847* **類型**:包含 `enabled`、`failIfUnavailable`、`autoAllowBashIfSandboxed`、`excludedCommands`、`allowUnsandboxedCommands`、`enableWeakerNestedSandbox`、`enableWeakerNetworkIsolation`、`allowAppleEvents`、`bwrapPath`、`socatPath`、`ignoreViolations` 和 `ripgrep` 的物件,另加 `filesystem`、`network` 和 `credentials` 物件

1839* **Default**: 未設定,所以 Claude Code 執行命令時不使用沙箱1848* **預設值**:未設定,因此 Claude Code 會在沒有沙箱的情況下執行命令

1840 1849 

1841這會開啟沙箱、跳過沙箱化命令的權限提示、在沙箱外執行 `docker`、開啟兩個額外的寫入路徑、隱藏您的 AWS 認證檔案,並預先允許 GitHub 和 npm:1850以下設定會開啟沙箱、略過沙箱化命令的權限提示、在沙箱外執行 `docker`、開放兩個額外的寫入路徑、隱藏您的 AWS 憑證檔案,並預先允許 GitHub 和 npm:

1842 1851 

1843```json settings.json theme={null}1852```json settings.json theme={null}

1844{1853{


1857}1866}

1858```1867```

1859 1868 

1860Claude Code 從優先順序最高的設定範圍取得布林值鍵的值,所以受管的 `enabled` 或 `failIfUnavailable` 會覆蓋開發人員設定的任何內容。它會在工作階段載入的每個設定範圍中合併陣列鍵,所以開發人員可以附加項目;請參閱 [Keep developers from widening the policy](/docs/zh-TW/sandboxing#keep-developers-from-widening-the-policy) 以了解僅受管的鎖定。若要為組織要求沙箱,請參閱 [Enforce sandboxing with managed settings](/docs/zh-TW/sandboxing#enforce-sandboxing-with-managed-settings)。1869當受管設定設定了 `enabled` 或 `failIfUnavailable` 等布林值鍵時,該值會覆寫開發人員所設定的任何值。Claude Code 會在工作階段載入的所有設定範圍之間合併陣列鍵,因此開發人員可以附加項目;關於僅限受管設定的鎖定,請參閱[防止開發人員擴大政策](/docs/zh-TW/sandboxing#keep-developers-from-widening-the-policy)。若要為組織強制要求沙箱,請參閱[使用受管設定強制執行沙箱機制](/docs/zh-TW/sandboxing#enforce-sandboxing-with-managed-settings)。

1861 1870 

1862<h3 id="sandbox-enabled">1871<h3 id="sandbox-enabled">

1863 `sandbox.enabled`1872 `sandbox.enabled`

1864</h3>1873</h3>

1865 1874 

1866為 Bash 命令開啟 [sandboxing](/docs/zh-TW/sandboxing)。當您在 `/sandbox` 面板中選擇模式時,Claude Code 會將此鍵寫入目前專案的 `.claude/settings.local.json`;在 `~/.claude/settings.json` 中設定它以沙箱化每個專案。1875為 Bash 命令開啟[沙箱機制](/docs/zh-TW/sandboxing)。當您在 `/sandbox` 面板中選擇模式時,Claude Code 會將此鍵寫入目前專案的 `.claude/settings.local.json`;若要讓每個專案都使用沙箱,請在 `~/.claude/settings.json` 中設定。

1867 1876 

1868* **Scope**: [`Any file`](#scopes)1877* **範圍**:[`Any file`](#scopes),但[對專案和本機設定有所限制](/docs/zh-TW/sandboxing#repository-settings-under-an-admin-required-sandbox)

1869* **Type**: 布林值1878* **類型**:布林值

1870 * `true`: Claude Code 沙箱化 Bash 命令1879 * `true`:Claude Code 會將 Bash 命令沙箱化

1871 * `false`: Bash 命令執行時不使用沙箱1880 * `false`:Bash 命令在沙箱外執行

1872* **Default**: `false`1881* **預設值**:`false`

1873 1882 

1874```json settings.json theme={null}1883```json settings.json theme={null}

1875{1884{


1879}1888}

1880```1889```

1881 1890 

1882在 Linux 和 WSL2 上,沙箱需要 `bubblewrap` 和 `socat`;請參閱 [Set up Linux and WSL2](/docs/zh-TW/sandboxing#set-up-linux-and-wsl2)。當沙箱無法啟動時,Claude Code 會顯示警告並執行不使用沙箱的命令,除非您也設定了 [`failIfUnavailable`](#sandbox-failifunavailable)。1891在 Linux 和 WSL2 上,沙箱需要 `bubblewrap` 和 `socat`;請參閱[設定 Linux 和 WSL2](/docs/zh-TW/sandboxing#set-up-linux-and-wsl2)。當沙箱無法啟動時,Claude Code 會在沙箱外執行命令,除非您也設定了 [`failIfUnavailable`](#sandbox-failifunavailable)。

1883 1892 

1884<h3 id="sandbox-failifunavailable">1893<h3 id="sandbox-failifunavailable">

1885 `sandbox.failIfUnavailable`1894 `sandbox.failIfUnavailable`

1886</h3>1895</h3>

1887 1896 

1888當 `sandbox.enabled` 為 `true` 但沙箱無法啟動時(因為缺少相依性或不支援該平台),使 Claude Code 在啟動時以錯誤退出。沒有它,Claude Code 會顯示警告並執行不使用沙箱的命令。在您的組織要求沙箱作為硬性閘道的受管設定中使用它。1897當 `sandbox.enabled` 為 `true`,但因缺少相依套件或平台不受支援而導致沙箱無法啟動時,讓 Claude Code 在啟動時以錯誤結束。若未設定此鍵,Claude Code 會在沙箱外執行命令。將沙箱機制視為安全關卡的受管部署可以使用此設定。

1889 1898 

1890* **Scope**: [`Any file`](#scopes)1899在沙箱不支援的平台上,開啟此鍵時 Claude Code 不會啟動。請參閱[使用受管設定強制執行沙箱機制](/docs/zh-TW/sandboxing#enforce-sandboxing-with-managed-settings)。

1891* **Type**: 布林值1900 

1892 * `true`: 當 `sandbox.enabled` 為 `true` 但沙箱無法啟動時,Claude Code 在啟動時以錯誤退出1901* **範圍**:[`Any file`](#scopes),但[對專案和本機設定有所限制](/docs/zh-TW/sandboxing#repository-settings-under-an-admin-required-sandbox)

1893 * `false`: Claude Code 顯示警告並執行不使用沙箱的命令1902* **類型**:布林值

1894* **Default**: `false`1903 * `true`:當 `sandbox.enabled` 為 `true` 但沙箱無法啟動時,Claude Code 會在啟動時以錯誤結束

1904 * `false`:當沙箱無法啟動時,Claude Code 會在沙箱外執行命令

1905* **預設值**:`false`

1895 1906 

1896這使每台受管機器沙箱化命令或拒絕啟動:1907以下設定會讓每台受管機器都將命令沙箱化,否則拒絕啟動:

1897 1908 

1898```json managed-settings.json theme={null}1909```json managed-settings.json theme={null}

1899{1910{


1904}1915}

1905```1916```

1906 1917 

1907請參閱 [Enforce sandboxing with managed settings](/docs/zh-TW/sandboxing#enforce-sandboxing-with-managed-settings)。1918請參閱[使用受管設定強制執行沙箱機制](/docs/zh-TW/sandboxing#enforce-sandboxing-with-managed-settings)。

1908 1919 

1909<h3 id="sandbox-autoallowbashifsandboxed">1920<h3 id="sandbox-autoallowbashifsandboxed">

1910 `sandbox.autoAllowBashIfSandboxed`1921 `sandbox.autoAllowBashIfSandboxed`

1911</h3>1922</h3>

1912 1923 

1913讓 Claude Code 執行沙箱化 Bash 命令而不需要權限提示。無法在沙箱中執行的命令仍會經過常規權限流程,`deny` 規則和內容範圍的 `ask` 規則(例如 `Bash(git push *)` )仍然適用;對於沙箱化命令,會跳過裸 `Bash` ask 規則。將其設定為 `false` 以也透過常規權限流程傳送沙箱化命令,`/sandbox` **Mode** 標籤稱之為常規權限模式。1924讓 Claude Code 在不顯示權限提示的情況下執行沙箱化的 Bash 命令。無法在沙箱中執行的命令仍會經過一般權限流程,且 `deny` 規則和限定內容的 `ask` 規則(例如 `Bash(git push *)`)仍然適用;單純的 `Bash` ask 規則則會對沙箱化命令略過。將其設為 `false` 可讓沙箱化命令也經過一般權限流程,`/sandbox` 的 **Mode** 分頁將此稱為一般權限模式。

1914 1925 

1915* **Scope**: [`Any file`](#scopes)1926* **範圍**:[`Any file`](#scopes)

1916* **Type**: 布林值1927* **類型**:布林值

1917 * `true`: Claude Code 執行沙箱化 Bash 命令而不需要權限提示,受 `deny` 規則和內容範圍的 `ask` 規則限制;`CLAUDE_CODE_SUBPROCESS_ENV_SCRUB` 關閉自動允許1928 * `true`:Claude Code 會在不顯示權限提示的情況下執行沙箱化的 Bash 命令,但仍受 `deny` 規則和限定內容的 `ask` 規則約束;`CLAUDE_CODE_SUBPROCESS_ENV_SCRUB` 會關閉自動允許

1918 * `false`: 沙箱化命令經過常規權限流程,所以您的允許規則和權限模式決定。`/sandbox` **Mode** 標籤稱之為常規權限模式1929 * `false`:沙箱化命令會經過一般權限流程,因此由您的允許規則和權限模式決定。`/sandbox` 的 **Mode** 分頁將此稱為一般權限模式

1919* **Default**: `true`1930* **預設值**:`true`

1920 1931 

1921這保持沙箱開啟並透過常規權限流程傳送沙箱化命令:1932以下設定會保持沙箱開啟,並讓沙箱化命令經過一般權限流程:

1922 1933 

1923```json settings.json theme={null}1934```json settings.json theme={null}

1924{1935{


1929}1940}

1930```1941```

1931 1942 

1932請參閱 [Sandbox modes](/docs/zh-TW/sandboxing#sandbox-modes) 以了解自動允許模式仍會提示什麼以及它在計畫模式中的行為。1943關於自動允許模式仍會針對哪些情況提示,以及它在 plan mode 中的行為,請參閱[沙箱模式](/docs/zh-TW/sandboxing#sandbox-modes)。

1933 1944 

1934<h3 id="sandbox-excludedcommands">1945<h3 id="sandbox-excludedcommands">

1935 `sandbox.excludedCommands`1946 `sandbox.excludedCommands`

1936</h3>1947</h3>

1937 1948 

1938命名 Claude Code 始終在沙箱外執行的命令,例如在沙箱下不起作用的工具。每個項目使用與 `Bash(...)` [permission rule](/docs/zh-TW/permissions#permission-rule-syntax) 內容相同的語法:精確命令、前綴(例如 `docker *`)或萬用字元模式。1949指定 Claude Code 要在沙箱外執行的命令,例如無法在沙箱下運作的工具。每個項目使用與 `Bash(...)` [權限規則](/docs/zh-TW/permissions#permission-rule-syntax)內容相同的語法:確切的命令、前綴(例如 `docker *`)或萬用字元模式。不含萬用字元的模式為確切比對,因此 `docker` 只會比對不帶任何引數的 `docker`。

1939 1950 

1940您的項目僅當它們涵蓋複合命令中的每個命令時才將 Bash 呼叫從沙箱中取出,某些呼叫形式即使如此仍保持沙箱化。單獨的 `docker *` 項目不會將 `npm ci && docker build .` 從沙箱中取出。1951只有當您的項目涵蓋某個 Bash 呼叫中的每一個命令時,才會將該呼叫移出沙箱,而且即使如此,某些呼叫形式仍會保持沙箱化。僅有 `docker *` 項目並不會將 `npm ci && docker build .` 移出沙箱。

1941 1952 

1942* **Scope**: [`Any file`](#scopes)1953* **範圍**:[`Any file`](#scopes),但[對專案和本機設定有所限制](/docs/zh-TW/sandboxing#repository-settings-under-an-admin-required-sandbox)

1943* **Type**: 命令模式陣列1954* **類型**:命令模式的陣列

1944* **Default**: 未設定,所以沒有命令被排除1955* **預設值**:未設定,因此不排除任何命令

1945 1956 

1946```json settings.json theme={null}1957```json settings.json theme={null}

1947{1958{


1951}1962}

1952```1963```

1953 1964 

1954Claude Code 在這些形式中保持 Bash 呼叫沙箱化,以及其他形式:1965當 Bash 呼叫具有下列形式之一(以及其他形式)時,Claude Code 會將其保持沙箱化:

1955 1966 

1956* 以 `sudo`、`eval` 或 `xargs` 開頭的命令1967* 以 `sudo`、`eval` 或 `xargs` 開頭的命令

1957* `cd`、`pushd` 或 `popd`,無論它在呼叫中的任何地方出現1968* `cd`、`pushd` 或 `popd`,無論出現在呼叫中的何處

1958* 命令替換、子殼層或控制流程區塊,例如 `if` 或 `for`1969* 命令替換、子 shell,或 `if`、`for` 等控制流程區塊

1959* 重新導向,例如 `docker build . > build.log`,除了僅複製檔案描述符的重新導向,如 `2>&1` 所做的1970* 重新導向,例如 `docker build . > build.log`,但僅複製檔案描述元的重新導向(如 `2>&1`)除外

1960* 來自變數的命令名稱1971* 命令名稱來自變數

1972* 帶有絕對路徑、以 `~` 開頭或包含 `..` 區段之路徑引數的 `git clone`、`git init`、`git worktree add`、`git worktree move` 或 `git bundle create`

1973 

1974例如,在 `docker *` 項目下,`cd build && docker compose up` 仍會保持沙箱化,而新增 `cd` 項目也不會改變這一點。在 `git *` 項目下,`git clone <url> vendor/lib` 會在沙箱外執行,但 `git clone <url> ~/tools` 會保持沙箱化。複製操作會在目的地路徑所指之處寫入整個檔案樹,其中可能包含可執行檔。

1961 1975 

1962例如,`cd build && docker compose up` 在 `docker *` 項目下保持沙箱化,新增 `cd` 項目不會改變這一點。1976被排除的命令仍會經過一般權限流程。排除只是為了方便,而非安全邊界:當工具只需要寫入特定位置時,[`filesystem.allowWrite`](#sandbox-filesystem-allowwrite) 可讓它保持沙箱化。

1963 1977 

1964排除的命令仍會經過常規權限流程。排除是一種便利,不是安全邊界:當工具只需要在特定位置寫入時,優先使用 [`filesystem.allowWrite`](#sandbox-filesystem-allowwrite)。Claude Code 合併工作階段載入的每個設定範圍中的項目,此清單沒有僅受管的鎖定,所以保持受管清單狹窄。1978除非沙箱為[管理員強制要求](/docs/zh-TW/sandboxing#repository-settings-under-an-admin-required-sandbox),否則來自工作階段載入之各設定範圍的項目會合併為單一清單。在管理員強制要求的情況下,Claude Code 會忽略 `.claude/settings.json` 和 `.claude/settings.local.json` 中的項目,因此複製下來的儲存庫無法將命令移出沙箱。受管設定、`--settings` 和您的 `~/.claude/settings.json` 中的項目仍然適用,且此清單沒有僅限受管設定的鎖定。

1965 1979 

1966<h3 id="sandbox-allowunsandboxedcommands">1980<h3 id="sandbox-allowunsandboxedcommands">

1967 `sandbox.allowUnsandboxedCommands`1981 `sandbox.allowUnsandboxedCommands`

1968</h3>1982</h3>

1969 1983 

1970在沙箱阻止命令後,讓 Claude 使用 `dangerouslyDisableSandbox` 參數在沙箱外重試命令。將其設定為 `false` 以便 Claude Code 完全忽略該參數,每個 Claude 執行的命令必須沙箱化或出現在 [`excludedCommands`](#sandbox-excludedcommands) 中。`/sandbox` **Overrides** 標籤將該狀態顯示為 **Strict sandbox mode**。在要求嚴格沙箱化的受管設定中使用 `false`。1984讓 Claude 在沙箱封鎖命令後,使用 `dangerouslyDisableSandbox` 參數在沙箱外重試該命令。設為 `false` 時,Claude Code 會忽略該參數。此時在沙箱執行期間,Claude 執行的命令都會沙箱化,除非它們符合 [`excludedCommands`](#sandbox-excludedcommands) 項目。`/sandbox` 的 **Overrides** 分頁會將此狀態顯示為 **Strict sandbox mode**。受管設定中的 `false` 會為其涵蓋的開發人員開啟嚴格沙箱模式。

1971 1985 

1972* **Scope**: [`Any file`](#scopes)1986* **範圍**:[`Any file`](#scopes),但[對專案和本機設定有所限制](/docs/zh-TW/sandboxing#turn-off-the-retry-with-strict-sandbox-mode)

1973* **Type**: 布林值1987* **類型**:布林值

1974 * `true`: 在沙箱阻止命令後,Claude 可以使用 `dangerouslyDisableSandbox` 參數在沙箱外重試命令1988 * `true`:Claude 可在沙箱封鎖命令後,使用 `dangerouslyDisableSandbox` 參數在沙箱外重試該命令

1975 * `false`: Claude Code 忽略該參數,所以每個 Claude 執行的命令都沙箱化或出現在 `excludedCommands` 中1989 * `false`:Claude Code 會忽略該參數,因此在沙箱執行期間,Claude 執行的命令都會沙箱化,除非它們符合 `excludedCommands` 項目

1976* **Default**: `true`1990* **預設值**:`true`

1977 1991 

1978這為受管設定涵蓋的所有人強制執行嚴格沙箱模式:1992以下設定會為受管設定涵蓋的所有人強制執行嚴格沙箱模式:

1979 1993 

1980```json managed-settings.json theme={null}1994```json managed-settings.json theme={null}

1981{1995{


1986}2000}

1987```2001```

1988 2002 

1989不使用沙箱的重試會經過常規權限流程,在手動模式中會出現提示。請參閱 [The unsandboxed retry escape hatch](/docs/zh-TW/sandboxing#the-unsandboxed-retry-escape-hatch)。2003來自受管設定或 `--settings` 的 `false` 也會讓沙箱成為[管理員強制要求](/docs/zh-TW/sandboxing#repository-settings-under-an-admin-required-sandbox)。您使用者設定中的 `false` 會優先於專案的 `true`,但不會讓沙箱成為管理員強制要求。優先於專案值的行為需要 Claude Code v2.1.285 或更新版本。

1990 2004 

1991若要查看您在 [`!` shell-mode prompt](/docs/zh-TW/interactive-mode#shell-mode-with-prefix) 自己輸入的命令何時執行沙箱化,請參閱 [strict sandbox mode](/docs/zh-TW/sandboxing#the-unsandboxed-retry-escape-hatch)。2005由誰核准在沙箱外重試,取決於您的權限模式和允許規則。請參閱[在沙箱外重試的逃生出口](/docs/zh-TW/sandboxing#the-unsandboxed-retry-escape-hatch)。

2006 

2007若要了解您自己在 [`!` shell 模式提示字元](/docs/zh-TW/interactive-mode#shell-mode-with-prefix)中輸入的命令何時會沙箱化執行,請參閱[嚴格沙箱模式](/docs/zh-TW/sandboxing#turn-off-the-retry-with-strict-sandbox-mode)。

1992 2008 

1993<h3 id="sandbox-filesystem">2009<h3 id="sandbox-filesystem">

1994 `sandbox.filesystem`2010 `sandbox.filesystem`

1995</h3>2011</h3>

1996 2012 

1997控制沙箱化命令可以讀取和寫入的路徑。預設情況下,它們可以寫入工作目錄、工作階段臨時目錄以及您使用 `--add-dir`、`/add-dir` 或 `permissions.additionalDirectories` 新增的目錄,並可以讀取檔案系統的其餘部分,包括認證檔案。使用四個路徑清單擴大或縮小該範圍,或使用 `disabled` 關閉檔案系統層。請參閱 [Filesystem isolation](/docs/zh-TW/sandboxing#filesystem-isolation) 以了解預設邊界。2013控制沙箱化命令可以讀取和寫入哪些路徑。預設情況下,它們可以寫入工作目錄、每位使用者的暫存目錄,以及您透過 `--add-dir`、`/add-dir` 或 `permissions.additionalDirectories` 新增的目錄,並且可以讀取檔案系統的其餘部分,包括憑證檔案。您可以使用四個路徑清單擴大或縮小此範圍,或使用 `disabled` 關閉檔案系統層。關於預設邊界,請參閱[檔案系統隔離](/docs/zh-TW/sandboxing#filesystem-isolation)。

1998 2014 

1999* **Scope**: [`Any file`](#scopes)2015* **範圍**:[`Any file`](#scopes)

2000* **Type**: 物件,包含 `allowWrite`、`denyWrite`、`denyRead` 和 `allowRead` 陣列,加上 `allowManagedReadPathsOnly` 和 `disabled` 布林值2016* **類型**:包含 `allowWrite`、`denyWrite`、`denyRead` 和 `allowRead` 陣列,以及 `allowManagedReadPathsOnly` 和 `disabled` 布林值的物件

2001* **Default**: 未設定,所以預設讀取和寫入邊界適用2017* **預設值**:未設定,因此套用預設的讀取和寫入邊界

2002 2018 

2003這讓沙箱化命令寫入建置目錄和您的 kubeconfig,並隱藏您的 AWS 認證檔案:2019以下設定讓沙箱化命令可以寫入建置目錄和您的 kubeconfig,並隱藏您的 AWS 憑證檔案:

2004 2020 

2005```json settings.json theme={null}2021```json settings.json theme={null}

2006{2022{


2013}2029}

2014```2030```

2015 2031 

2016Claude Code 在 OS 沙箱邊界強制執行這些清單,所以它們適用於沙箱化命令啟動的每個子程序,例如 `kubectl`、`terraform` 或 `npm`。Claude Code 將您的 [permission rules](/docs/zh-TW/sandboxing#permission-rules) 新增到相同的清單:`Edit` 允許和拒絕規則到 `allowWrite` 和 `denyWrite`、`Read` 拒絕規則到 `denyRead`,以及 `WebFetch(domain:...)` 允許和拒絕規則到 [`network`](#sandbox-network) 網域清單。2032Claude Code 在作業系統沙箱邊界上強制執行這些清單,因此它們適用於沙箱化命令所啟動的每個子程序,例如 `kubectl`、`terraform` 或 `npm`。Claude Code 會將您的[權限規則](/docs/zh-TW/sandboxing#permission-rules)加入相同的清單:`Edit` 允許和拒絕規則加入 `allowWrite` 和 `denyWrite`,`Read` 拒絕規則加入 `denyRead`,而 `WebFetch(domain:...)` 允許和拒絕規則則加入 [`network`](#sandbox-network) 網域清單。

2017 2033 

2018除非設定了僅受管的鎖定,Claude Code 合併工作階段載入的設定檔案中的每個清單。[`allowManagedReadPathsOnly`](#sandbox-filesystem-allowmanagedreadpathsonly) 將 `allowRead` 限制為受管設定中的項目,[`allowManagedDomainsOnly`](#sandbox-network-allowmanageddomainsonly) 對允許的網域執行相同操作。2034除非有鎖定適用,否則 Claude Code 會在工作階段載入的所有設定檔之間合併這些清單。[`allowManagedReadPathsOnly`](#sandbox-filesystem-allowmanagedreadpathsonly) 會將 `allowRead` 限制為來自受管設定的項目,而 [`allowManagedDomainsOnly`](#sandbox-network-allowmanageddomainsonly) 則對允許的網域執行相同的限制。[儲存庫鎖定](/docs/zh-TW/sandboxing#repository-settings-under-an-admin-required-sandbox)會排除來自儲存庫設定檔的項目。

2019 2035 

2020[Configure sandboxing](/docs/zh-TW/sandboxing#configure-sandboxing) 涵蓋您使用 `--setting-sources` 排除的來源。當您在工作階段期間編輯清單時,Claude Code [applies the change to the running session](/docs/zh-TW/settings#when-edits-take-effect)。2036[設定沙箱機制](/docs/zh-TW/sandboxing#configure-sandboxing)涵蓋您使用 `--setting-sources` 排除的來源。當您在工作階段期間編輯清單時,Claude Code 會[將變更套用至執行中的工作階段](/docs/zh-TW/settings#when-edits-take-effect)。

2021 2037 

2022<h4 id="sandbox-path-prefixes">2038<h4 id="sandbox-path-prefixes">

2023 Sandbox 路徑前綴2039 沙箱路徑前綴

2024</h4>2040</h4>

2025 2041 

2026`allowWrite`、`denyWrite`、`denyRead`、`allowRead` 和 [`credentials.files`](#sandbox-credentials-files) 中的路徑按其前綴解析:2042`allowWrite`、`denyWrite`、`denyRead`、`allowRead` 和 [`credentials.files`](#sandbox-credentials-files) 中的路徑會依其前綴解析:

2027 2043 

2028| 前綴 | 含義 | 範例 |2044| 前綴 | 意義 | 範例 |

2029| :- | :- | :- |2045| :- | :- | :- |

2030| `/` | 從檔案系統根目錄的絕對路徑 | `/tmp/build` 保持 `/tmp/build` |2046| `/` | 從檔案系統根目錄起算的絕對路徑 | `/tmp/build` 維持為 `/tmp/build` |

2031| `~/` | 相對於主目錄 | `~/.kube` 變成 `$HOME/.kube` |2047| `~/` | 相對於家目錄 | `~/.kube` 變成 `$HOME/.kube` |

2032| `./` 或無前綴 | 相對於專案根目錄(用於專案設定)或 `~/.claude`(用於使用者設定) | `.claude/settings.json` 中的 `./output` 解析為 `<project-root>/output` |2048| `./` 或無前綴 | 在專案設定中相對於專案根目錄,在使用者設定中相對於 `~/.claude` | `.claude/settings.json` 中的 `./output` 解析為 `<project-root>/output` |

2033 2049 

2034絕對路徑的 `//path` 前綴也有效。如果您使用單斜線 `/path` 期望專案相對解析,請切換到 `./path`。此語法不同於 [Read and Edit permission rules](/docs/zh-TW/permissions#read-and-edit),後者使用 `//path` 表示絕對路徑,`/path` 表示專案相對路徑:沙箱檔案系統路徑使用標準慣例,所以 `/tmp/build` 是絕對路徑。2050絕對路徑使用 `//path` 前綴也可以。如果您使用單斜線 `/path` 並期望以專案相對方式解析,請改用 `./path`。此語法與 [Read 和 Edit 權限規則](/docs/zh-TW/permissions#read-and-edit)不同,後者使用 `//path` 表示絕對路徑,`/path` 表示專案相對路徑:沙箱檔案系統路徑使用標準慣例,因此 `/tmp/build` 是絕對路徑。

2035 2051 

2036Claude Code 從目錄路徑中去除尾部斜線,所以 `~/.aws` 和 `~/.aws/` 符合相同的目錄。在 v2.1.224 之前,Claude Code 將尾部斜線傳遞給沙箱,Claude 仍然可以讀取或寫入以帶有尾部斜線的 `denyRead` 或 `denyWrite` 項目寫入的路徑下的路徑。2052Claude Code 會移除目錄路徑結尾的斜線,因此 `~/.aws` 和 `~/.aws/` 會比對到相同的目錄。在 v2.1.224 之前,Claude Code 會將結尾斜線原樣傳給沙箱,因此對於以結尾斜線撰寫的 `denyRead` 或 `denyWrite` 項目,Claude 仍可讀取或寫入其下的路徑。

2037 2053 

2038Claude Code 也移除尾部 `/**`,所以 `~/build/**` 和 `~/build` 涵蓋相同的目錄。萬用字元(例如 `*`)是否有效取決於項目所在的清單和平台:2054Claude Code 也會移除結尾的 `/**`,因此 `~/build/**` 和 `~/build` 涵蓋相同的目錄。`*` 等萬用字元是否有效,取決於項目所在的清單及平台:

2039 2055 

2040* **`allowWrite` 和 `denyWrite`**: 在 macOS 上,萬用字元有效。在 Linux 和 WSL2 上,沙箱掛載具體路徑,所以 Claude Code 在移除尾部 `/**` 後跳過包含 `*`、`?` 或 `[` 的項目,該項目無效。Claude Code 將您的 `Edit` 權限規則中的路徑新增到這些清單,所以相同的限制適用於它們,`/sandbox` 的 **Config** 標籤警告包含萬用字元的 `Edit` 和 `Read` 權限規則。2056* **`allowWrite` 和 `denyWrite`**:在 macOS 上,萬用字元有效。在 Linux 和 WSL2 上,沙箱會掛載具體路徑,因此在移除結尾的 `/**` 後,若項目仍包含 `*`、`?` 或 `[`,Claude Code 會略過該項目,而該項目不會產生任何效果。Claude Code 會將您 `Edit` 權限規則中的路徑加入這些清單,因此同樣的限制也適用於它們,且 `/sandbox` 的 **Config** 分頁會針對包含萬用字元的 `Edit` 和 `Read` 權限規則發出警告。

2041* **`denyRead` 和 `allowRead`**: 萬用字元在每個平台上都有效。在 Linux 和 WSL2 上,Claude Code 將讀取項目擴展到它符合的具體路徑,它不對寫入清單執行此操作。2057* **`denyRead` 和 `allowRead`**:萬用字元在所有平台上都有效。在 Linux 和 WSL2 上,Claude Code 會將讀取項目展開為其所比對到的具體路徑,而寫入清單則不會這樣處理。

2042 2058 

2043<h3 id="sandbox-filesystem-allowwrite">2059<h3 id="sandbox-filesystem-allowwrite">

2044 `sandbox.filesystem.allowWrite`2060 `sandbox.filesystem.allowWrite`

2045</h3>2061</h3>

2046 2062 

2047新增沙箱化命令可以寫入的路徑,超出工作目錄、工作階段臨時目錄以及您使用 `--add-dir`、`/add-dir` 或 `permissions.additionalDirectories` 新增的目錄。當子程序(例如 `kubectl` 或建置工具)需要在專案外寫入時使用它。2063新增沙箱化命令可以寫入的路徑,範圍超出工作目錄、每位使用者的暫存目錄,以及您透過 `--add-dir`、`/add-dir` 或 `permissions.additionalDirectories` 新增的目錄。當 `kubectl` 或建置工具等子程序需要寫入專案外部時,請使用此項。

2048 2064 

2049* **Scope**: [`Any file`](#scopes)2065* **範圍**:[`Any file`](#scopes),但[對專案和本機設定有所限制](/docs/zh-TW/sandboxing#repository-settings-under-an-admin-required-sandbox)

2050* **Type**: 路徑字串陣列,使用 [sandbox path prefixes](#sandbox-path-prefixes)2066* **類型**:路徑字串的陣列,使用[沙箱路徑前綴](#sandbox-path-prefixes)

2051* **Default**: 未設定,所以沙箱化命令可以寫入工作目錄、工作階段臨時目錄、您使用 `--add-dir` 或 `/add-dir` 新增的目錄,以及 [`permissions.additionalDirectories`](#permissions-additionaldirectories) 中的目錄2067* **預設值**:未設定,因此沙箱化命令可以寫入工作目錄、每位使用者的暫存目錄、您透過 `--add-dir` 或 `/add-dir` 新增的目錄,以及 [`permissions.additionalDirectories`](#permissions-additionaldirectories) 中的目錄

2052 2068 

2053這讓建置在 `/tmp/build` 下寫入,讓 `kubectl` 更新您的 kubeconfig:2069以下設定讓建置可以寫入 `/tmp/build` 底下,並讓 `kubectl` 更新您的 kubeconfig:

2054 2070 

2055```json settings.json theme={null}2071```json settings.json theme={null}

2056{2072{


2062}2078}

2063```2079```

2064 2080 

2065Claude Code 合併工作階段載入的每個設定範圍中的 `allowWrite` 項目和您的 `Edit(...)` 允許權限規則中的路徑,在 [`permissions.blockReadsOutsideWorkingDirectories`](#sandboxed-commands-under-the-block) 開啟時留出儲存庫設定中的項目。`allowWrite` 項目無法提升 [protected path](/docs/zh-TW/sandboxing#protected-paths)。2081Claude Code 會在工作階段載入的所有設定範圍之間合併 `allowWrite` 項目,以及您 `Edit(...)` 允許權限規則中的路徑;當 [`permissions.blockReadsOutsideWorkingDirectories`](#sandboxed-commands-under-the-block) 開啟時,會排除來自儲存庫設定的項目。[儲存庫鎖定](/docs/zh-TW/sandboxing#repository-settings-under-an-admin-required-sandbox)也可能排除儲存庫的項目。`allowWrite` 項目無法解除[受保護路徑](/docs/zh-TW/sandboxing#protected-paths)的限制。

2066 2082 

2067<h3 id="sandbox-filesystem-denywrite">2083<h3 id="sandbox-filesystem-denywrite">

2068 `sandbox.filesystem.denyWrite`2084 `sandbox.filesystem.denyWrite`

2069</h3>2085</h3>

2070 2086 

2071阻止沙箱化命令寫入特定路徑,包括在其他可寫入的目錄內的路徑。2087封鎖沙箱化命令寫入特定路徑,包括原本可寫入之目錄內的路徑。

2072 2088 

2073* **Scope**: [`Any file`](#scopes)2089* **範圍**:[`Any file`](#scopes)

2074* **Type**: 路徑字串陣列,使用 [sandbox path prefixes](#sandbox-path-prefixes)2090* **類型**:路徑字串的陣列,使用[沙箱路徑前綴](#sandbox-path-prefixes)

2075* **Default**: 未設定2091* **預設值**:未設定

2076 2092 

2077這防止沙箱化命令更改系統設定或安裝二進位檔案:2093以下設定可防止沙箱化命令變更系統設定或安裝二進位檔:

2078 2094 

2079```json settings.json theme={null}2095```json settings.json theme={null}

2080{2096{


2086}2102}

2087```2103```

2088 2104 

2089Claude Code 合併工作階段載入的每個設定範圍中的項目,並新增您的 `Edit(...)` 拒絕權限規則中的路徑。2105Claude Code 會在工作階段載入的所有設定範圍之間合併項目,並加入您 `Edit(...)` 拒絕權限規則中的路徑。

2090 2106 

2091<h3 id="sandbox-filesystem-denyread">2107<h3 id="sandbox-filesystem-denyread">

2092 `sandbox.filesystem.denyRead`2108 `sandbox.filesystem.denyRead`

2093</h3>2109</h3>

2094 2110 

2095阻止沙箱化命令讀取特定路徑,例如預設讀取原則會公開的認證檔案。若要保護認證檔案並保持其可透過沙箱代理使用,請改為參閱 [`sandbox.credentials`](#sandbox-credentials)。2111封鎖沙箱化命令讀取特定路徑,例如預設讀取政策原本會公開的憑證檔案。若要保護憑證檔案,同時讓它仍可透過沙箱代理伺服器使用,請改為參閱 [`sandbox.credentials`](#sandbox-credentials)。

2096 2112 

2097* **Scope**: [`Any file`](#scopes)2113* **範圍**:[`Any file`](#scopes)

2098* **Type**: 路徑字串陣列,使用 [sandbox path prefixes](#sandbox-path-prefixes)2114* **類型**:路徑字串的陣列,使用[沙箱路徑前綴](#sandbox-path-prefixes)

2099* **Default**: 未設定,所以沙箱化命令保持 [default read access](/docs/zh-TW/sandboxing#filesystem-isolation),包括認證檔案,例如 `~/.aws/credentials`2115* **預設值**:未設定,因此沙箱化命令保有[預設讀取存取權](/docs/zh-TW/sandboxing#filesystem-isolation),其中包括 `~/.aws/credentials` 等憑證檔案

2100 2116 

2101```json settings.json theme={null}2117```json settings.json theme={null}

2102{2118{


2108}2124}

2109```2125```

2110 2126 

2111Claude Code 合併工作階段載入的每個設定範圍中的項目,並新增您的 `Read(...)` 拒絕權限規則中的路徑。當 [`filesystem.disabled`](#sandbox-filesystem-disabled) 為 `true` 時,Claude Code 不強制執行這些項目。2127Claude Code 會在工作階段載入的所有設定範圍之間合併項目,並加入您 `Read(...)` 拒絕權限規則中的路徑。當 [`filesystem.disabled`](#sandbox-filesystem-disabled) 為 `true` 時,Claude Code 不會強制執行這些項目。

2112 2128 

2113<h3 id="sandbox-filesystem-allowread">2129<h3 id="sandbox-filesystem-allowread">

2114 `sandbox.filesystem.allowRead`2130 `sandbox.filesystem.allowRead`

2115</h3>2131</h3>

2116 2132 

2117重新開啟 [`denyRead`](#sandbox-filesystem-denyread) 阻止的區域內特定路徑的讀取,以建置僅工作區讀取存取。精確或萬用字元 `denyRead` 項目在更廣泛的 `allowRead` 內保持被阻止,如 [overlap table](/docs/zh-TW/sandboxing#configure-sandboxing) 所示。當萬用字元 `denyRead` 項目(例如 `~/**/.env`)符合目錄時,Claude Code 也會阻止讀取其內容。在 v2.1.236 之前的 macOS 上,Claude Code 在更廣泛的 `allowRead` 項目涵蓋它們的任何地方重新開啟萬用字元 `denyRead` 項目符合的路徑,並保持符合目錄的內容可讀。2133在 [`denyRead`](#sandbox-filesystem-denyread) 封鎖的區域內重新開放特定路徑的讀取,以建立僅限工作區的讀取存取權。確切或萬用字元形式的 `denyRead` 項目即使位於範圍更廣的 `allowRead` 內,仍會保持封鎖,如[重疊表](/docs/zh-TW/sandboxing#configure-sandboxing)所示。當 `~/**/.env` 等萬用字元 `denyRead` 項目比對到某個目錄時,Claude Code 也會封鎖對其內容的讀取。在 v2.1.236 之前的 macOS 上,只要範圍更廣的 `allowRead` 項目涵蓋了萬用字元 `denyRead` 項目所比對到的路徑,Claude Code 就會重新開放這些路徑,並讓被比對到之目錄的內容保持可讀取。

2118 2134 

2119* **Scope**: [`Any file`](#scopes)2135* **範圍**:[`Any file`](#scopes),但[對專案和本機設定有所限制](/docs/zh-TW/sandboxing#repository-settings-under-an-admin-required-sandbox)

2120* **Type**: 路徑字串陣列,使用 [sandbox path prefixes](#sandbox-path-prefixes)2136* **類型**:路徑字串的陣列,使用[沙箱路徑前綴](#sandbox-path-prefixes)

2121* **Default**: 未設定2137* **預設值**:未設定

2122 2138 

2123這阻止讀取您的主目錄,除了專案本身:2139以下設定會封鎖對家目錄的讀取,但專案本身除外:

2124 2140 

2125```json settings.json theme={null}2141```json settings.json theme={null}

2126{2142{


2133}2149}

2134```2150```

2135 2151 

2136Claude Code 在專案設定中將 `.` 項目解析為專案根目錄,在使用者設定中解析為 `~/.claude`。Claude Code 合併工作階段載入的每個設定檔案中的項目,除非設定了 [`allowManagedReadPathsOnly`](#sandbox-filesystem-allowmanagedreadpathsonly),並在 [`permissions.blockReadsOutsideWorkingDirectories`](#sandboxed-commands-under-the-block) 開啟時留出儲存庫設定中的項目。2152Claude Code 在專案設定中會將 `.` 項目解析為專案根目錄,在使用者設定中則解析為 `~/.claude`。除非設定了 [`allowManagedReadPathsOnly`](#sandbox-filesystem-allowmanagedreadpathsonly),否則 Claude Code 會在工作階段載入的所有設定檔之間合併項目;當 [`permissions.blockReadsOutsideWorkingDirectories`](#sandboxed-commands-under-the-block) 開啟時,會排除來自儲存庫設定的項目。[儲存庫鎖定](/docs/zh-TW/sandboxing#repository-settings-under-an-admin-required-sandbox)也可能排除儲存庫的項目。

2137 2153 

2138<h3 id="sandbox-filesystem-allowmanagedreadpathsonly">2154<h3 id="sandbox-filesystem-allowmanagedreadpathsonly">

2139 `sandbox.filesystem.allowManagedReadPathsOnly`2155 `sandbox.filesystem.allowManagedReadPathsOnly`

2140</h3>2156</h3>

2141 2157 

2142僅接受來自受管設定的 [`allowRead`](#sandbox-filesystem-allowread) 項目,所以開發人員無法重新開啟您的組織阻止的路徑的讀取存取。Claude Code 仍然合併工作階段載入的每個設定範圍中的 `denyRead` 項目。2158僅採用來自受管設定的 [`allowRead`](#sandbox-filesystem-allowread) 項目,讓開發人員無法重新開放您組織已封鎖之路徑的讀取存取權。Claude Code 仍會合併工作階段載入之所有設定範圍中的 `denyRead` 項目。

2143 2159 

2144* **Scope**: [`Managed`](#scopes)2160* **範圍**:[`Managed`](#scopes)

2145* **Type**: 布林值2161* **類型**:布林值

2146 * `true`: Claude Code 僅接受來自受管設定的 `allowRead` 項目2162 * `true`:Claude Code 僅採用來自受管設定的 `allowRead` 項目

2147 * `false`: `allowRead` 項目合併自工作階段載入的每個設定範圍2163 * `false`:來自其他設定檔的 `allowRead` 項目可以合併進來

2148* **Default**: `false`2164* **預設值**:`false`

2149 2165 

2150這阻止讀取主目錄,重新開啟 `~/work`,並防止開發人員重新開啟任何其他內容:2166以下設定會封鎖對家目錄的讀取、重新開放 `~/work`,並阻止開發人員重新開放任何其他路徑:

2151 2167 

2152```json managed-settings.json theme={null}2168```json managed-settings.json theme={null}

2153{2169{


2161}2177}

2162```2178```

2163 2179 

2164請參閱 [Keep developers from widening the policy](/docs/zh-TW/sandboxing#keep-developers-from-widening-the-policy)。2180請參閱[防止開發人員擴大政策](/docs/zh-TW/sandboxing#keep-developers-from-widening-the-policy)。

2165 2181 

2166<h3 id="sandbox-filesystem-disabled">2182<h3 id="sandbox-filesystem-disabled">

2167 `sandbox.filesystem.disabled`2183 `sandbox.filesystem.disabled`

2168</h3>2184</h3>

2169 2185 

2170跳過檔案系統隔離,同時保持網路隔離。沙箱化命令獲得對主機檔案系統的不受限制的讀取和寫入存取,其網路出口保持限制在 [`network.allowedDomains`](#sandbox-network-alloweddomains)。當您沙箱化以控制命令連接的位置而不是它們寫入的內容時使用它。需要 Claude Code v2.1.216 或更新版本。2186略過檔案系統隔離,同時保留網路隔離。沙箱化命令會取得對主機檔案系統不受限制的讀取和寫入存取權,而其網路輸出流量仍限制在 [`network.allowedDomains`](#sandbox-network-alloweddomains) 內。當您使用沙箱是為了控制命令連線的目的地,而非它們寫入的內容時,請使用此項。需要 Claude Code v2.1.216 或更新版本。

2171 2187 

2172* **Scope**: [`User or managed`](#scopes)。當受管設定配置 `sandbox.filesystem` 時,或列出帶有 `"mode": "deny"` 的 `sandbox.credentials.files` 項目時,只有受管設定可以設定它。2188* **範圍**:[`User or managed`](#scopes)。當受管設定有任何 `sandbox.filesystem` 設定,或列出 `"mode": "deny"` 的 `sandbox.credentials.files` 項目時,只有受管設定能設定此項。

2173* **Type**: 布林值2189* **類型**:布林值

2174 * `true`: Claude Code 跳過檔案系統隔離並保持網路隔離2190 * `true`:Claude Code 略過檔案系統隔離,並保留網路隔離

2175 * `false`: 檔案系統隔離保持開啟2191 * `false`:檔案系統隔離保持開啟

2176* **Default**: `false`,所以檔案系統隔離保持開啟2192* **預設值**:`false`,因此檔案系統隔離保持開啟

2177 2193 

2178這使檔案系統開放並將網路出口限制在 GitHub 和 npm:2194以下設定會讓檔案系統保持開放,並將網路輸出流量限制在 GitHub 和 npm:

2179 2195 

2180```json settings.json theme={null}2196```json settings.json theme={null}

2181{2197{


2191}2207}

2192```2208```

2193 2209 

2194關閉該層後,Claude Code 不強制執行 `denyRead` 或 `credentials.files` `deny` 項目,而 `credentials.envVars` 項目和應用的 `mask` 項目保持工作。[`autoAllowBashIfSandboxed`](#sandbox-autoallowbashifsandboxed) 仍預設為 `true`,所以將其設定為 `false` 以保持提示。請參閱 [Disable filesystem isolation](/docs/zh-TW/sandboxing#disable-filesystem-isolation) 以了解可以設定它的完整來源清單以及隔離關閉時的變化。需要 Claude Code v2.1.216 或更新版本。2210關閉此層時,Claude Code 不會強制執行 `denyRead` 或 `credentials.files` 的 `deny` 項目,而 `credentials.envVars` 項目和已套用的 `mask` 項目則會繼續運作。[`autoAllowBashIfSandboxed`](#sandbox-autoallowbashifsandboxed) 的預設值仍為 `true`,因此若要繼續顯示提示,請將其設為 `false`。關於可設定此項的完整來源清單,以及關閉隔離後會有哪些變化,請參閱[停用檔案系統隔離](/docs/zh-TW/sandboxing#disable-filesystem-isolation)。需要 Claude Code v2.1.216 或更新版本。

2195 2211 

2196<h3 id="sandbox-ignoreviolations">2212<h3 id="sandbox-ignoreviolations">

2197 `sandbox.ignoreViolations`2213 `sandbox.ignoreViolations`

2198</h3>2214</h3>

2199 2215 

2200沉默沙箱違規報告,針對您期望命令探測並被拒絕的路徑,例如在啟動時檢查 `/etc/hosts` 的工具,所以這些拒絕不會顯示為違規或在 Claude 看到的內容中。沙箱仍然阻止存取;只有報告被抑制。鍵是要與命令相符的子字串,`*` 符合每個命令,值是要為該命令忽略的違規的子字串,例如檔案系統路徑。2216針對您預期命令會探測並遭拒的路徑(例如在啟動時檢查 `/etc/hosts` 的工具),隱藏沙箱違規報告,讓這些拒絕不會顯示為違規,也不會出現在 Claude 看到的內容中。沙箱仍會封鎖該存取;只有報告會被隱藏。鍵是用來比對命令的子字串,`*` 會比對所有命令;值則是該命令要忽略之違規的子字串,例如檔案系統路徑。

2201 2217 

2202* **Scope**: [`Any file`](#scopes)2218* **範圍**:[`Any file`](#scopes),但[對專案和本機設定有所限制](/docs/zh-TW/sandboxing#repository-settings-under-an-admin-required-sandbox)

2203* **Type**: 物件,將命令子字串對應到違規子字串陣列,通常是路徑2219* **類型**:將命令子字串對應到違規子字串(通常為路徑)陣列的物件

2204* **Default**: 未設定,所以每個違規都被報告2220* **預設值**:未設定,因此會回報每個違規

2205 2221 

2206```json settings.json theme={null}2222```json settings.json theme={null}

2207{2223{


2217 `sandbox.enableWeakerNestedSandbox`2233 `sandbox.enableWeakerNestedSandbox`

2218</h3>2234</h3>

2219 2235 

2220在無特權 Docker 容器內執行 Linux 沙箱,其中 bubblewrap 無法掛載新的 `/proc`。相反,內部沙箱綁定掛載容器的現有 `/proc`,這公開了新掛載會隱藏的程序資訊。這降低了安全性;僅當外部容器已提供您需要的隔離時才使用它。2236在無特權的 Docker 容器內執行 Linux 沙箱,在這種環境中 bubblewrap 無法掛載新的 `/proc`。取而代之的是,內層沙箱會 bind-mount 容器現有的 `/proc`,這會公開新掛載原本會隱藏的程序資訊。這會降低安全性;請僅在外層容器已提供您所需的隔離時使用。

2221 2237 

2222* **Scope**: [`Any file`](#scopes)2238* **範圍**:[`Any file`](#scopes),但[對專案和本機設定有所限制](/docs/zh-TW/sandboxing#repository-settings-under-an-admin-required-sandbox)

2223* **Type**: 布林值2239* **類型**:布林值

2224 * `true`: 內部沙箱綁定掛載容器的現有 `/proc` 而不是掛載新的2240 * `true`:內層沙箱會 bind-mount 容器現有的 `/proc`,而不是掛載新的 `/proc`

2225 * `false`: 沙箱掛載新的 `/proc`,在無特權 Docker 容器中不起作用2241 * `false`:沙箱會掛載新的 `/proc`,這在無特權的 Docker 容器中無法運作

2226* **Default**: `false`2242* **預設值**:`false`

2227 2243 

2228```json settings.json theme={null}2244```json settings.json theme={null}

2229{2245{


2234}2250}

2235```2251```

2236 2252 

2237僅限 Linux 和 WSL2。請參閱 [Bubblewrap fails to start inside a container](/docs/zh-TW/sandboxing#troubleshooting)。2253僅限 Linux 和 WSL2。請參閱[Bubblewrap 無法在容器內啟動](/docs/zh-TW/sandboxing#bubblewrap-fails-to-start-inside-a-container)。

2238 2254 

2239<h3 id="sandbox-enableweakernetworkisolation">2255<h3 id="sandbox-enableweakernetworkisolation">

2240 `sandbox.enableWeakerNetworkIsolation`2256 `sandbox.enableWeakerNetworkIsolation`

2241</h3>2257</h3>

2242 2258 

2243讓 macOS 上的沙箱化命令到達系統 TLS 信任服務 `com.apple.trustd.agent`。基於 Go 的工具(例如 `gh`、`gcloud` 和 `terraform`)在您使用帶有 MITM 代理和自訂 CA 的 [`network.httpProxyPort`](#sandbox-network-httpproxyport) 時需要它來驗證 TLS 憑證。這通過信任服務開啟潛在的資料洩露路徑來降低安全性。2259讓 macOS 上的沙箱化命令可以存取系統 TLS 信任服務 `com.apple.trustd.agent`。當您將 [`network.httpProxyPort`](#sandbox-network-httpproxyport) 與 MITM 代理伺服器和自訂 CA 搭配使用時,`gh`、`gcloud` 和 `terraform` 等以 Go 撰寫的工具需要此項才能驗證 TLS 憑證。這會透過信任服務開啟潛在的資料外洩途徑,因而降低安全性。

2244 2260 

2245* **Scope**: [`Any file`](#scopes)2261* **範圍**:[`Any file`](#scopes),但[對專案和本機設定有所限制](/docs/zh-TW/sandboxing#repository-settings-under-an-admin-required-sandbox)

2246* **Type**: 布林值2262* **類型**:布林值

2247 * `true`: macOS 上的沙箱化命令可以到達 `com.apple.trustd.agent`2263 * `true`:macOS 上的沙箱化命令可以存取 `com.apple.trustd.agent`

2248 * `false`: macOS 上的沙箱化命令無法到達系統 TLS 信任服務2264 * `false`:macOS 上的沙箱化命令無法存取系統 TLS 信任服務

2249* **Default**: `false`2265* **預設值**:`false`

2250 2266 

2251```json settings.json theme={null}2267```json settings.json theme={null}

2252{2268{


2257}2273}

2258```2274```

2259 2275 

2260如果您不使用 MITM 代理,請改為在 [`excludedCommands`](#sandbox-excludedcommands) 中列出失敗的工具;請參閱 [Go-based CLIs fail TLS verification on macOS](/docs/zh-TW/sandboxing#troubleshooting)。2276如果您沒有使用 MITM 代理伺服器,請改為將失敗的工具列於 [`excludedCommands`](#sandbox-excludedcommands) 中;請參閱[以 Go 撰寫的 CLI 在 macOS 上 TLS 驗證失敗](/docs/zh-TW/sandboxing#go-based-clis-fail-tls-verification-on-macos)。

2261 2277 

2262<h3 id="sandbox-allowappleevents">2278<h3 id="sandbox-allowappleevents">

2263 `sandbox.allowAppleEvents`2279 `sandbox.allowAppleEvents`

2264</h3>2280</h3>

2265 2281 

2266讓 macOS 上的沙箱化命令傳送 Apple Events,`open`、`osascript` 和在瀏覽器中開啟 URL 的工具需要它;沒有它們會失敗,錯誤為 `-600`。這移除了程式碼執行隔離:沙箱化命令可以在沒有使用者提示的情況下啟動其他應用程式不使用沙箱,並可以向執行中的應用程式(例如終端機)傳送 AppleScript 命令,受每個應用程式 macOS 自動化同意提示 (TCC) 的限制。2282讓 macOS 上的沙箱化命令可以傳送 Apple Events,`open`、`osascript` 以及在瀏覽器中開啟 URL 的工具都需要此功能;若未設定,它們會以錯誤 `-600` 失敗。這會移除程式碼執行隔離:沙箱化命令可以在沒有使用者提示的情況下於沙箱外啟動其他應用程式,並可以向執行中的應用程式(例如 Terminal)傳送 AppleScript 命令,但仍受各應用程式的 macOS 自動化同意提示(TCC)約束。

2267 2283 

2268* **Scope**: [`User or managed`](#scopes)2284* **範圍**:[`User or managed`](#scopes)

2269* **Type**: 布林值2285* **類型**:布林值

2270 * `true`: macOS 上的沙箱化命令可以傳送 Apple Events2286 * `true`:macOS 上的沙箱化命令可以傳送 Apple Events

2271 * `false`: macOS 上的沙箱化命令無法傳送 Apple Events,所以 `open` 和 `osascript` 失敗,錯誤為 `-600`2287 * `false`:macOS 上的沙箱化命令無法傳送 Apple Events,因此 `open` 和 `osascript` 會以錯誤 `-600` 失敗

2272* **Default**: `false`2288* **預設值**:`false`

2273 2289 

2274```json settings.json theme={null}2290```json settings.json theme={null}

2275{2291{


2280}2296}

2281```2297```

2282 2298 

2283若要保持隔離並仍然執行一個這樣的工具,請改為將其新增到 [`excludedCommands`](#sandbox-excludedcommands)。請參閱 [Apple Events on macOS](/docs/zh-TW/sandboxing#security-limitations)。2299若要保留隔離,同時仍能執行某個此類工具,請改為將其加入 [`excludedCommands`](#sandbox-excludedcommands)。請參閱[macOS 上的 Apple Events](/docs/zh-TW/sandboxing#security-limitations)。

2284 2300 

2285<h3 id="sandbox-ripgrep">2301<h3 id="sandbox-ripgrep">

2286 `sandbox.ripgrep`2302 `sandbox.ripgrep`

2287</h3>2303</h3>

2288 2304 

2289將沙箱指向您自己的 ripgrep 二進位檔案,而不是 Claude Code 使用的,例如當您的平台需要不同建置的 `rg` 時。2305讓沙箱使用您自己的 ripgrep 二進位檔,而非 Claude Code 使用的那一個,例如當您的平台需要以不同方式建置的 `rg` 時。

2290 2306 

2291* **Scope**: [`User or managed`](#scopes)2307* **範圍**:[`User or managed`](#scopes)

2292* **Type**: 物件,包含 `command`(ripgrep 二進位檔案的路徑)和可選的 `args`(要前置的引數陣列)2308* **類型**:包含 `command`(ripgrep 二進位檔的路徑)和選用 `args`(要前置的引數陣列)的物件

2293* **Default**: 未設定,所以沙箱使用與 Claude Code 相同的 ripgrep 二進位檔案。那是捆綁的二進位檔案,除非您將 [`USE_BUILTIN_RIPGREP`](/docs/zh-TW/env-vars) 設定為 `0`2309* **預設值**:未設定,因此沙箱使用與 Claude Code 相同的 ripgrep 二進位檔。除非您將 [`USE_BUILTIN_RIPGREP`](/docs/zh-TW/env-vars) 設為 `0`,否則即為內建的二進位檔

2294 2310 

2295```json settings.json theme={null}2311```json settings.json theme={null}

2296{2312{


2306 `sandbox.bwrapPath`2322 `sandbox.bwrapPath`

2307</h3>2323</h3>

2308 2324 

2309將沙箱指向安裝在 `PATH` 外的 bubblewrap 二進位檔案,例如在氣隙主機上的供應商副本。Claude Code 將路徑用於啟動相依性檢查和包裝每個沙箱化命令時。2325讓沙箱使用安裝在 `PATH` 以外的 bubblewrap 二進位檔,例如離線主機上的內附副本。Claude Code 在啟動時的相依性檢查以及包裝每個沙箱化命令時都會使用此路徑。

2310 2326 

2311* **Scope**: [`Managed`](#scopes)。Claude Code 僅從受管設定讀取它,以便使用者、專案或本機檔案無法將沙箱指向不同的二進位檔案。2327* **範圍**:[`Managed`](#scopes)。Claude Code 只從受管設定讀取此項,使使用者、專案或本機檔案無法讓沙箱指向不同的二進位檔。

2312* **Type**: 字串,絕對路徑;Claude Code 丟棄相對路徑並回退到 `PATH` 查詢2328* **類型**:字串,必須是絕對路徑;Claude Code 會捨棄相對路徑並改用 `PATH` 查找

2313* **Default**: 未設定,所以 Claude Code 在 `PATH` 上找到 `bwrap`2329* **預設值**:未設定,因此 Claude Code 會在 `PATH` 上尋找 `bwrap`

2314 2330 

2315```json managed-settings.json theme={null}2331```json managed-settings.json theme={null}

2316{2332{


2327 `sandbox.socatPath`2343 `sandbox.socatPath`

2328</h3>2344</h3>

2329 2345 

2330將沙箱網路代理指向安裝在 `PATH` 外的 `socat` 二進位檔案。2346讓沙箱網路代理伺服器使用安裝在 `PATH` 以外的 `socat` 二進位檔。

2331 2347 

2332* **Scope**: [`Managed`](#scopes)2348* **範圍**:[`Managed`](#scopes)

2333* **Type**: 字串,絕對路徑;Claude Code 丟棄相對路徑並回退到 `PATH` 查詢2349* **類型**:字串,必須是絕對路徑;Claude Code 會捨棄相對路徑並改用 `PATH` 查找

2334* **Default**: 未設定,所以 Claude Code 在 `PATH` 上找到 `socat`2350* **預設值**:未設定,因此 Claude Code 會在 `PATH` 上尋找 `socat`

2335 2351 

2336```json managed-settings.json theme={null}2352```json managed-settings.json theme={null}

2337{2353{


2348 `sandbox.credentials`2364 `sandbox.credentials`

2349</h3>2365</h3>

2350 2366 

2351宣告認證檔案和環境變數以 [protect from sandboxed commands](/docs/zh-TW/sandboxing#protect-credentials)。每個項目命名檔案 `path` 或變數 `name` 和 `mode`:`deny` 在沙箱內隱藏認證,`mask` 向沙箱化命令顯示佔位符,同時 [sandbox proxy](/docs/zh-TW/sandboxing#mask-credentials) 在出站請求上替換真實值。Claude Code 僅保護您列出的項目;沒有內建認證拒絕清單。2367宣告要[防止沙箱化命令存取](/docs/zh-TW/sandboxing#protect-credentials)的憑證檔案和環境變數。每個項目指定一個檔案 `path` 或變數 `name` 以及一個 `mode`:`deny` 會在沙箱內隱藏該憑證,而 `mask` 會向沙箱化命令顯示預留位置值,並由[沙箱代理伺服器](/docs/zh-TW/sandboxing#mask-credentials)在外送請求中替換為真實值。Claude Code 只會保護您列出的項目;沒有內建的憑證拒絕清單。

2352 2368 

2353* **Scope**: [`Any file`](#scopes)。Claude Code 僅從使用者設定、受管設定和 `--settings` 旗標接受 `mask` 項目、`allowPlaintextInject`、`awsPairs` 和 `sigv4`。2369* **範圍**:[`Any file`](#scopes)。Claude Code 只會採用來自使用者設定、受管設定和 `--settings` 旗標的 `mask` 項目、`allowPlaintextInject`、`awsPairs` 和 `sigv4`。

2354* **Type**: 物件,包含 `files`、`envVars`、`allowPlaintextInject`、`awsPairs` 和 `sigv4`2370* **類型**:包含 `files`、`envVars`、`allowPlaintextInject`、`awsPairs` 和 `sigv4` 的物件

2355* **Default**: 未設定,所以沒有認證被保護2371* **預設值**:未設定,因此不保護任何憑證

2356 2372 

2357這隱藏您的 AWS 認證檔案並從沙箱化命令中移除 `GITHUB_TOKEN`:2373以下設定會隱藏您的 AWS 憑證檔案,並從沙箱化命令中移除 `GITHUB_TOKEN`:

2358 2374 

2359```json settings.json theme={null}2375```json settings.json theme={null}

2360{2376{


2367}2383}

2368```2384```

2369 2385 

2370`deny` 檔案保護是檔案系統層的一部分,所以當您 [disable filesystem isolation](/docs/zh-TW/sandboxing#disable-filesystem-isolation) 時不適用;環境變數保護仍然適用。2386`deny` 檔案保護屬於檔案系統層,因此當您[停用檔案系統隔離](/docs/zh-TW/sandboxing#disable-filesystem-isolation)時不適用;環境變數保護則仍然適用。

2371 2387 

2372<h4 id="invalid-credential-entries-in-managed-settings">2388<h4 id="invalid-credential-entries-in-managed-settings">

2373 受管設定中的無效認證項目2389 受管設定中的無效憑證項目

2374</h4>2390</h4>

2375 2391 

2376當受管 `sandbox.credentials` 項目驗證失敗時,Claude Code 盡可能保持保護認證:2392當受管的 `sandbox.credentials` 項目未通過驗證時,Claude Code 會盡可能持續保護該憑證:

2377 2393 

2378* `files` 或 `envVars` 中仍有有效 `path` 或 `name` 和 `mode` 為 `mask` 或 `deny` 的項目(例如其 `extract` 模式沒有捕獲群組的項目)降級為 `mode: "deny"` 並帶有警告,所以認證保持被阻止而不是被遮罩,直到您修復項目。降級的 `files` 項目像明確 `deny` 項目一樣固定 [`filesystem.disabled`](/docs/zh-TW/sandboxing#disable-filesystem-isolation),警告指出如果受管設定關閉檔案系統隔離,其讀取塊不被強制執行。2394* `files` 或 `envVars` 中仍具有有效 `path` 或 `name`,且 `mode` 為 `mask` 或 `deny` 的項目(例如其 `extract` 模式沒有擷取群組),會被降級為 `mode: "deny"` 並顯示警告,因此在您修正該項目之前,憑證會保持封鎖而非遮罩。降級的 `files` 項目會像明確的 `deny` 項目一樣鎖定 [`filesystem.disabled`](/docs/zh-TW/sandboxing#disable-filesystem-isolation),且警告會註明,若受管設定關閉檔案系統隔離,其讀取封鎖將不會強制執行。

2379* 帶有未知 `mode` 或無效 `path` 或 `name` 的項目被去除。2395* 具有未知 `mode` 或無效 `path` 或 `name` 的項目會被移除。

2380* 每種情況都警告;無論項目是降級還是去除,其餘有效項目仍然被強制執行,完全無效的 `credentials` 值被丟棄,同時 `sandbox` 的其餘部分仍然適用。2396* 每種情況都會發出警告;無論項目是被降級或移除,其餘有效項目仍會強制執行,而完全無效的 `credentials` 值會被捨棄,`sandbox` 的其餘部分仍然適用。

2381 2397 

2382適用於 v2.1.191 及更新版本;在 v2.1.221 之前,每個無效項目都被去除。對於具有每個欄位處理的其他受管鍵,請參閱 [Invalid entries in managed settings](/docs/zh-TW/managed-settings#invalid-entries-in-managed-settings)。2398適用於 v2.1.191 及更新版本;在 v2.1.221 之前,每個無效項目都會被移除。關於其他具有逐欄位處理方式的受管鍵,請參閱[受管設定中的無效項目](/docs/zh-TW/managed-settings#invalid-entries-in-managed-settings)。

2383 2399 

2384<h3 id="sandbox-credentials-files">2400<h3 id="sandbox-credentials-files">

2385 `sandbox.credentials.files`2401 `sandbox.credentials.files`

2386</h3>2402</h3>

2387 2403 

2388保護認證檔案或目錄免受沙箱化命令。使用 `"mode": "deny"`,Claude Code 在沙箱內阻止路徑的讀取,與 [`sandbox.filesystem.denyRead`](#sandbox-filesystem-denyread) 相同的讀取塊。使用 `"mode": "mask"`,Linux 和 WSL2 上的沙箱化命令讀取檔案的哨兵副本,沙箱代理在該項目的 `injectHosts` 的出站請求上替換真實值;在 macOS 上,檔案在沙箱內不可讀。`"mode": "mask"` 需要 Claude Code v2.1.221 或更新版本。2404保護憑證檔案或目錄,使沙箱化命令無法存取。使用 `"mode": "deny"` 時,Claude Code 會在沙箱內封鎖對該路徑的讀取,與 [`sandbox.filesystem.denyRead`](#sandbox-filesystem-denyread) 的讀取封鎖相同。使用 `"mode": "mask"` 時,Linux 和 WSL2 上的沙箱化命令會讀取該檔案的哨兵副本,並由沙箱代理伺服器在送往該項目 `injectHosts` 的外送請求中替換為真實值;在 macOS 上,該檔案在沙箱內則無法讀取。`"mode": "mask"` 需要 Claude Code v2.1.221 或更新版本。

2389 2405 

2390* **Scope**: [`Any file`](#scopes)。Claude Code 從專案 `.claude/settings.json` 和本機 `.claude/settings.local.json` 丟棄 `mask` 項目。2406* **範圍**:[`Any file`](#scopes)。Claude Code 會捨棄來自專案 `.claude/settings.json` 和本機 `.claude/settings.local.json` 的 `mask` 項目。

2391* **Type**: 物件陣列,每個包含 `path` 和 `"deny"` 或 `"mask"` 的 `mode`,加上可選的 [mask fields for files](#mask-fields-for-files)2407* **類型**:物件陣列,每個物件包含 `path` 和值為 `"deny"` 或 `"mask"` 的 `mode`,以及選用的[檔案遮罩欄位](#mask-fields-for-files)

2392* **Default**: 未設定,所以沒有認證檔案被保護2408* **預設值**:未設定,因此不保護任何憑證檔案

2393 2409 

2394這隱藏您的 AWS 認證檔案並遮罩 `gh` hosts 檔案,僅在對 `api.github.com` 的請求上替換真實值:2410以下設定會隱藏您的 AWS 憑證檔案並遮罩 `gh` hosts 檔案,僅在送往 `api.github.com` 的請求中替換為真實值:

2395 2411 

2396```json settings.json theme={null}2412```json settings.json theme={null}

2397{2413{


2406}2422}

2407```2423```

2408 2424 

2409路徑使用與 `sandbox.filesystem.*` 設定相同的 [prefixes](#sandbox-path-prefixes),Claude Code 合併工作階段載入的每個設定範圍中的陣列。[Protect credentials](/docs/zh-TW/sandboxing#protect-credentials) 涵蓋您使用 `--setting-sources` 排除的來源仍然適用的內容。`mask` 項目需要 Claude Code v2.1.221 或更新版本。2425路徑使用與 `sandbox.filesystem.*` 設定相同的[前綴](#sandbox-path-prefixes),且 Claude Code 會合併工作階段載入之所有設定範圍中的陣列。[保護憑證](/docs/zh-TW/sandboxing#protect-credentials)說明了對於您使用 `--setting-sources` 排除的來源,哪些設定仍然適用。`mask` 項目需要 Claude Code v2.1.221 或更新版本。

2410 2426 

2411`mask` 替換僅透過沙箱代理執行,所以設定 [`sandbox.network.tlsTerminate`](#sandbox-network-tlsterminate) 或 [`allowPlaintextInject`](#sandbox-credentials-allowplaintextinject) 用於純 HTTP 測試網路。`mask` 適用於單個檔案,所以單獨列出每個認證檔案。Claude Code 接受但忽略 `deny` 項目上的 `mask` 欄位。[Mask credential files](/docs/zh-TW/sandboxing#mask-credential-files) 涵蓋接受哪些設定來源以及項目何時回退到 `deny`。2427`mask` 替換只會透過沙箱代理伺服器執行,因此請設定 [`sandbox.network.tlsTerminate`](#sandbox-network-tlsterminate),或針對純 HTTP 測試網路設定 [`allowPlaintextInject`](#sandbox-credentials-allowplaintextinject)。`mask` 適用於單一檔案,因此請個別列出每個憑證檔案。Claude Code 接受但會忽略 `deny` 項目上的 `mask` 欄位。[遮罩憑證](/docs/zh-TW/sandboxing#mask-credentials)說明了會採用哪些設定來源,而[遮罩憑證檔案](/docs/zh-TW/sandboxing#mask-credential-files)說明了項目何時會退回為 `deny`。

2412 2428 

2413<span id="sandbox-credentials-files-extract" />2429<span id="sandbox-credentials-files-extract" />

2414 2430 


2423<span id="sandbox-credentials-files-injecthosts" />2439<span id="sandbox-credentials-files-injecthosts" />

2424 2440 

2425<h4 id="mask-fields-for-files">2441<h4 id="mask-fields-for-files">

2426 檔案的遮罩欄位2442 檔案遮罩欄位

2427</h4>2443</h4>

2428 2444 

2429`mask` 項目接受這些可選欄位。沒有 `extract` 或 `decode`,Claude Code 將整個檔案內容替換為一個哨兵。在 macOS 上啟用檔案系統隔離,Claude Code 在 `extract` 或 `decode` 執行前將 `mask` 項目應用為 `deny`;請參閱 [Mask credential files](/docs/zh-TW/sandboxing#mask-credential-files)。2445`mask` 項目接受下列選用欄位。若沒有 `extract` 或 `decode`,Claude Code 會以單一哨兵值取代整個檔案內容。在開啟檔案系統隔離的 macOS 上,Claude Code 會在 `extract` 或 `decode` 執行之前將 `mask` 項目當作 `deny` 套用;請參閱[遮罩憑證檔案](/docs/zh-TW/sandboxing#mask-credential-files)。

2430 2446 

2431| 欄位 | 類型 | 它做什麼 |2447| 欄位 | 類型 | 作用 |

2432| :- | :- | :- |2448| :- | :- | :- |

2433| `extract` | 字串,至少有一個捕獲群組的正規表達式 | 僅遮罩每個符合的群組 1 捕獲的文字,所以檔案的其餘部分保持可解析。設定 `decode` 時,Claude Code 檢查每個捕獲作為可能的 JWT,而不是直接替換它。需要 v2.1.221 或更新版本 |2449| `extract` | 字串,至少包含一個擷取群組的正規表示式 | 只遮罩每個比對中群組 1 擷取到的文字,讓檔案的其餘部分仍可剖析。若同時設定了 `decode`,Claude Code 會檢查每個擷取內容是否可能是 JWT,而非直接取代。需要 v2.1.221 或更新版本 |

2434| `onExtractNoMatch` | `"warn"`、`"deny"` 或 `"error"`;預設 `"warn"` | 當 `extract` 或 `decode` 找不到要遮罩的內容時會發生什麼。`warn` 在沙箱內保持檔案可讀,`deny` 使其不可讀,`error` 停止沙箱設定直到您修復設定。當讀取塊不被強制執行時,Claude Code 將 `deny` 視為 `error`,因為您 [disable filesystem isolation](/docs/zh-TW/sandboxing#disable-filesystem-isolation) 或 [`sandbox.filesystem.allowRead`](#sandbox-filesystem-allowread) 項目重新開啟路徑。需要 v2.1.221 或更新版本;`decode` 情況需要 v2.1.224 或更新版本 |2450| `onExtractNoMatch` | `"warn"`、`"deny"` 或 `"error"`;預設為 `"warn"` | 當 `extract` 或 `decode` 找不到要遮罩的內容時會發生什麼。`warn` 會讓檔案在沙箱內維持原樣可讀取,`deny` 會讓檔案無法讀取,而 `error` 會停止沙箱設定,直到您修正設定為止。當讀取封鎖不會被強制執行時(因為您[停用檔案系統隔離](/docs/zh-TW/sandboxing#disable-filesystem-isolation),或 [`sandbox.filesystem.allowRead`](#sandbox-filesystem-allowread) 項目重新開放了該路徑),Claude Code 會將 `deny` 視為 `error`。需要 v2.1.221 或更新版本;`decode` 的情況需要 v2.1.224 或更新版本 |

2435| `decode` | 字串 `"jwt"` | 在檔案中找到 JSON Web Tokens (JWTs),使用內建模式或設定 `extract` 時,驗證每個候選,並將其替換為結構上有效的假令牌,所以沙箱內解碼令牌的程式碼保持工作。當沒有候選驗證時,`onExtractNoMatch` 管理結果。需要 v2.1.224 或更新版本 |2451| `decode` | 字串 `"jwt"` | 使用內建模式(或在設定時使用 `extract`)在檔案中尋找 JSON Web Token(JWT),驗證每個候選項目,並以結構有效的假 token 取代,讓沙箱內解碼該 token 的程式碼能繼續運作。當沒有任何候選項目通過驗證時,由 `onExtractNoMatch` 決定結果。需要 v2.1.224 或更新版本 |

2436| `maskClaims` | 字串陣列,至少一個聲明名稱;需要 `decode` | 僅遮罩每個驗證 JWT 內的命名頂級有效負載聲明並在修改的有效負載周圍重建令牌,所以其他聲明保持可讀。當沒有命名聲明符合時,`onExtractNoMatch` 管理結果。需要 v2.1.224 或更新版本 |2452| `maskClaims` | 字串陣列,至少包含一個 claim 名稱;需要 `decode` | 只遮罩每個已驗證 JWT 中指定的頂層 payload claim,並以修改後的 payload 重建 token,讓其他 claim 保持可讀。當沒有任何指定的 claim 符合時,由 `onExtractNoMatch` 決定結果。需要 v2.1.224 或更新版本 |

2437| `maskDuplicates` | 布林值,預設 `false` | 也替換每個遮罩值在檔案中其他地方的逐字副本,例如貼到註解中的秘密。Claude Code 符合原始子字串,所以為長的、高熵秘密保留它。僅在設定 `extract` 或 `decode` 時查詢。需要 v2.1.221 或更新版本 |2453| `maskDuplicates` | 布林值,預設為 `false` | 同時取代檔案中其他位置每個遮罩值的逐字副本,例如貼在註解中的密鑰。Claude Code 比對的是原始子字串,因此請僅將其用於長且高熵的密鑰。僅在設定了 `extract` 或 `decode` 時才會參考。需要 v2.1.221 或更新版本 |

2438| `injectHosts` | 字串陣列,每個是 [`sandbox.network.allowedDomains`](#sandbox-network-alloweddomains) 也允許的主機 | 縮小沙箱代理替換真實值的主機。未設定時,代理在 `sandbox.network.allowedDomains` 中的每個主機上的請求上替換它。需要 v2.1.221 或更新版本 |2454| `injectHosts` | 字串陣列,每個都是 [`sandbox.network.allowedDomains`](#sandbox-network-alloweddomains) 也允許的主機 | 縮小沙箱代理伺服器替換為真實值的主機範圍。未設定時,代理伺服器會在送往 `sandbox.network.allowedDomains` 中每個主機的請求中進行替換。需要 v2.1.221 或更新版本 |

2439 2455 

2440這僅遮罩 `gh` hosts 檔案中的 `oauth_token` 值,替換檔案中它的每個其他副本,如果模式不符合任何內容則使檔案不可讀,並僅在對 `api.github.com` 的請求上替換真實令牌:2456以下設定只會遮罩 `gh` hosts 檔案中的 `oauth_token` 值、取代檔案中它的所有其他副本、在模式比對不到任何內容時讓檔案無法讀取,並僅在送往 `api.github.com` 的請求中替換為真實 token:

2441 2457 

2442```json settings.json theme={null}2458```json settings.json theme={null}

2443{2459{


2462 `sandbox.credentials.envVars`2478 `sandbox.credentials.envVars`

2463</h3>2479</h3>

2464 2480 

2465保護環境變數免受沙箱化命令。使用 `"mode": "deny"`,Claude Code 從沙箱化命令的環境中移除變數。使用 `"mode": "mask"`,沙箱化命令看到每個工作階段的哨兵值,沙箱代理在該項目的 `injectHosts` 的出站請求上替換真實值,所以 `gh` 和 `npm` 等工具保持驗證而不會持有真實認證。`"mode": "mask"` 需要 Claude Code v2.1.199 或更新版本。2481保護環境變數,使沙箱化命令無法存取。使用 `"mode": "deny"` 時,Claude Code 會從沙箱化命令的環境中移除該變數。使用 `"mode": "mask"` 時,沙箱化命令會看到每個工作階段專屬的哨兵值,並由沙箱代理伺服器在送往該項目 `injectHosts` 的外送請求中替換為真實值,因此 `gh` 和 `npm` 等工具可以在從不持有真實憑證的情況下持續通過驗證。`"mode": "mask"` 需要 Claude Code v2.1.199 或更新版本。

2466 2482 

2467* **Scope**: [`Any file`](#scopes)。Claude Code 從專案 `.claude/settings.json` 和本機 `.claude/settings.local.json` 丟棄 `mask` 項目。2483* **範圍**:[`Any file`](#scopes)。Claude Code 會捨棄來自專案 `.claude/settings.json` 和本機 `.claude/settings.local.json` 的 `mask` 項目。

2468* **Type**: 物件陣列,每個包含 `name` 和 `"deny"` 或 `"mask"` 的 `mode`,加上可選的 [mask fields for environment variables](#mask-fields-for-environment-variables)2484* **類型**:物件陣列,每個物件包含 `name` 和值為 `"deny"` 或 `"mask"` 的 `mode`,以及選用的[環境變數遮罩欄位](#mask-fields-for-environment-variables)

2469* **Default**: 未設定,所以沒有環境變數被保護2485* **預設值**:未設定,因此不保護任何環境變數

2470 2486 

2471這從沙箱化命令中移除 `NPM_TOKEN` 並遮罩 `GITHUB_TOKEN`,僅在對 `api.github.com` 的請求上替換真實值:2487以下設定會從沙箱化命令中移除 `NPM_TOKEN` 並遮罩 `GITHUB_TOKEN`,僅在送往 `api.github.com` 的請求中替換為真實值:

2472 2488 

2473```json settings.json theme={null}2489```json settings.json theme={null}

2474{2490{


2483}2499}

2484```2500```

2485 2501 

2486`name` 必須以字母或底線開頭,並僅包含字母、數字和底線。Claude Code 合併工作階段載入的每個設定範圍中的陣列,當相同變數同時出現兩種模式時應用 `deny`。[Protect credentials](/docs/zh-TW/sandboxing#protect-credentials) 涵蓋您使用 `--setting-sources` 排除的來源仍然適用的內容。`mask` 項目需要 Claude Code v2.1.199 或更新版本。2502`name` 必須以字母或底線開頭,且只能包含字母、數字和底線。Claude Code 會合併工作階段載入之所有設定範圍中的陣列,當同一個變數同時以兩種模式出現時,會套用 `deny`。[保護憑證](/docs/zh-TW/sandboxing#protect-credentials)說明了對於您使用 `--setting-sources` 排除的來源,哪些設定仍然適用。`mask` 項目需要 Claude Code v2.1.199 或更新版本。

2487 2503 

2488`mask` 替換僅透過沙箱代理執行,所以設定 [`sandbox.network.tlsTerminate`](#sandbox-network-tlsterminate) 或 [`allowPlaintextInject`](#sandbox-credentials-allowplaintextinject) 用於純 HTTP 測試網路;請參閱 [Mask environment variables](/docs/zh-TW/sandboxing#mask-environment-variables)。Claude Code 接受但忽略 `deny` 項目上的 `mask` 欄位。2504`mask` 替換只會透過沙箱代理伺服器執行,因此請設定 [`sandbox.network.tlsTerminate`](#sandbox-network-tlsterminate),或針對純 HTTP 測試網路設定 [`allowPlaintextInject`](#sandbox-credentials-allowplaintextinject);請參閱[遮罩憑證](/docs/zh-TW/sandboxing#mask-credentials)。Claude Code 接受但會忽略 `deny` 項目上的 `mask` 欄位。

2489 2505 

2490<span id="sandbox-credentials-envvars-extract" />2506<span id="sandbox-credentials-envvars-extract" />

2491 2507 


2498<span id="sandbox-credentials-envvars-injecthosts" />2514<span id="sandbox-credentials-envvars-injecthosts" />

2499 2515 

2500<h4 id="mask-fields-for-environment-variables">2516<h4 id="mask-fields-for-environment-variables">

2501 環境變數的遮罩欄位2517 環境變數遮罩欄位

2502</h4>2518</h4>

2503 2519 

2504`mask` 項目接受這些可選欄位。沒有 `extract` 或 `decode`,Claude Code 將整個值替換為一個哨兵。`extract` 和 `decode` 無法在同一項目上結合。2520`mask` 項目接受下列選用欄位。若沒有 `extract` 或 `decode`,Claude Code 會以單一哨兵值取代整個值。`extract` 和 `decode` 不能在同一個項目上合併使用。

2505 2521 

2506| 欄位 | 類型 | 它做什麼 |2522| 欄位 | 類型 | 作用 |

2507| :- | :- | :- |2523| :- | :- | :- |

2508| `extract` | 字串,至少有一個捕獲群組的正規表達式 | 僅遮罩每個符合的群組 1 捕獲的文字,例如 `DATABASE_URL` 連接字串內的密碼,所以值的其餘部分保持可解析。需要 v2.1.224 或更新版本 |2524| `extract` | 字串,至少包含一個擷取群組的正規表示式 | 只遮罩每個比對中群組 1 擷取到的文字,例如 `DATABASE_URL` 連線字串中的密碼,讓值的其餘部分仍可剖析。需要 v2.1.224 或更新版本 |

2509| `onExtractNoMatch` | `"warn"`、`"deny"` 或 `"error"`;預設 `"warn"`。在帶有 `decode` 的項目上,僅接受 `"warn"` | 當 `extract` 不符合任何內容時會發生什麼。`warn` 不遮罩地傳遞變數,`deny` 在沙箱內取消設定它,`error` 停止沙箱設定直到您修復設定。需要 v2.1.224 或更新版本 |2525| `onExtractNoMatch` | `"warn"`、`"deny"` 或 `"error"`;預設為 `"warn"`。在具有 `decode` 的項目上,只接受 `"warn"` | 當 `extract` 比對不到任何內容時會發生什麼。`warn` 會讓變數未經遮罩直接傳遞,`deny` 會在沙箱內取消設定該變數,而 `error` 會停止沙箱設定,直到您修正設定為止。需要 v2.1.224 或更新版本 |

2510| `decode` | 字串 `"jwt"` | 驗證整個值是 JWT 並將其替換為結構上有效的假令牌,所以沙箱內解碼令牌的程式碼保持工作;代理在出口上替換整個真實令牌。不驗證的值不遮罩地傳遞並帶有警告。需要 v2.1.224 或更新版本 |2526| `decode` | 字串 `"jwt"` | 驗證整個值是否為 JWT,並以結構有效的假 token 取代,讓沙箱內解碼該 token 的程式碼能繼續運作;代理伺服器會在輸出時替換為完整的真實 token。未通過驗證的值會未經遮罩直接傳遞並顯示警告。需要 v2.1.224 或更新版本 |

2511| `maskClaims` | 字串陣列,至少一個聲明名稱;需要 `decode` | 僅遮罩解碼 JWT 內的命名頂級有效負載聲明並在修改的有效負載周圍重建令牌,所以其他聲明保持可讀。當沒有命名聲明符合時,變數不遮罩地傳遞並帶有警告。需要 v2.1.224 或更新版本 |2527| `maskClaims` | 字串陣列,至少包含一個 claim 名稱;需要 `decode` | 只遮罩解碼後 JWT 中指定的頂層 payload claim,並以修改後的 payload 重建 token,讓其他 claim 保持可讀。當沒有任何指定的 claim 符合時,變數會未經遮罩直接傳遞並顯示警告。需要 v2.1.224 或更新版本 |

2512| `injectHosts` | 字串陣列,每個是 [`sandbox.network.allowedDomains`](#sandbox-network-alloweddomains) 也允許的主機 | 縮小沙箱代理替換真實值的主機。未設定時,代理在 `sandbox.network.allowedDomains` 中的每個主機上的請求上替換它。將 IPv6 目的地寫為裸壓縮位址,例如 `"::1"`,而不是括號形式;請參閱 [IPv6 destinations in `injectHosts`](/docs/zh-TW/sandboxing#ipv6-destinations-in-injecthosts)。需要 v2.1.199 或更新版本 |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 或更新版本 |

2513 2529 

2514這僅遮罩 `DATABASE_URL` 內的密碼,如果模式不符合任何內容則取消設定變數,並遮罩 `SERVICE_JWT` 中的 JWT,同時保持除 `api_key` 外的每個聲明可讀:2530以下設定只會遮罩 `DATABASE_URL` 中的密碼、在模式比對不到任何內容時取消設定該變數,並遮罩 `SERVICE_JWT` 中的 JWT,同時讓 `api_key` 以外的所有 claim 保持可讀:

2515 2531 

2516```json settings.json theme={null}2532```json settings.json theme={null}

2517{2533{


2540 `sandbox.credentials.allowPlaintextInject`2556 `sandbox.credentials.allowPlaintextInject`

2541</h3>2557</h3>

2542 2558 

2543允許 `mask` 替換在純 HTTP 請求以及 TLS 終止 HTTPS 上。在純 HTTP 上,上游身份未驗證,認證以明文形式傳輸,所以在受信任的測試網路外保持關閉。需要 Claude Code v2.1.199 或更新版本。2559除了 TLS 終止的 HTTPS 之外,也允許在純 HTTP 請求上進行 `mask` 替換。在純 HTTP 上,上游身分未經驗證,且憑證會以明文傳輸,因此在受信任的測試網路以外請保持關閉。需要 Claude Code v2.1.199 或更新版本。

2544 2560 

2545* **Scope**: [`User or managed`](#scopes)2561* **範圍**:[`User or managed`](#scopes)

2546* **Type**: 布林值2562* **類型**:布林值

2547 * `true`: Claude Code 允許 `mask` 替換在純 HTTP 請求以及 TLS 終止 HTTPS 上2563 * `true`:Claude Code 除了 TLS 終止的 HTTPS 之外,也允許在純 HTTP 請求上進行 `mask` 替換

2548 * `false`: Claude Code 允許 `mask` 替換僅在 TLS 終止 HTTPS 上2564 * `false`:Claude Code 僅允許在 TLS 終止的 HTTPS 上進行 `mask` 替換

2549* **Default**: `false`2565* **預設值**:`false`

2550 2566 

2551```json settings.json theme={null}2567```json settings.json theme={null}

2552{2568{


2564 `sandbox.credentials.awsPairs`2580 `sandbox.credentials.awsPairs`

2565</h3>2581</h3>

2566 2582 

2567分組遮罩環境變數,形成一個 AWS 認證用於 [SigV4 re-signing](/docs/zh-TW/sandboxing#re-sign-aws-requests),當您的認證存在於具有非標準名稱的變數中時。Claude Code 在您遮罩其整個值時自動連結常規 `AWS_ACCESS_KEY_ID`、`AWS_SECRET_ACCESS_KEY` 和 `AWS_SESSION_TOKEN` 三元組,所以您僅在其他名稱時需要此鍵。需要 Claude Code v2.1.224 或更新版本。2583當您的憑證存放在非標準名稱的變數中時,將構成一組 AWS 憑證的遮罩環境變數組合起來,以進行 [SigV4 重新簽署](/docs/zh-TW/sandboxing#re-sign-aws-requests)。當您遮罩傳統的 `AWS_ACCESS_KEY_ID`、`AWS_SECRET_ACCESS_KEY` 和 `AWS_SESSION_TOKEN` 三者的完整值時,Claude Code 會自動將它們連結,因此只有在使用其他名稱時才需要此鍵。需要 Claude Code v2.1.224 或更新版本。

2568 2584 

2569* **Scope**: [`User or managed`](#scopes)2585* **範圍**:[`User or managed`](#scopes)

2570* **Type**: 物件陣列,每個包含 `accessKeyIdVar`、`secretAccessKeyVar` 和可選的 `sessionTokenVar`,命名 `sandbox.credentials.envVars` 項目2586* **類型**:物件陣列,每個物件包含 `accessKeyIdVar`、`secretAccessKeyVar` 和選用的 `sessionTokenVar`,指定 `sandbox.credentials.envVars` 項目

2571* **Default**: 未設定,所以僅常規三元組被配對2587* **預設值**:未設定,因此只會配對傳統的三者

2572 2588 

2573這將三個自訂命名變數連結到一個 AWS 認證用於重新簽署:2589以下設定會將三個自訂名稱的變數連結成一組 AWS 憑證以進行重新簽署:

2574 2590 

2575```json settings.json theme={null}2591```json settings.json theme={null}

2576{2592{


2588}2604}

2589```2605```

2590 2606 

2591每個命名變數必須是 [`sandbox.credentials.envVars`](#sandbox-credentials-envvars) 中的整個值 `mask` 項目,沒有 `extract` 或 `decode`,並且只能填充所有配對中的一個槽位。2607每個指定的變數都必須是 [`sandbox.credentials.envVars`](#sandbox-credentials-envvars) 中不含 `extract` 或 `decode` 的完整值 `mask` 項目,且在所有配對中只能填入一個欄位。以下規則也適用:

2608 

2609* 代理伺服器會在存取金鑰 ID 項目的 `injectHosts` 所列出的主機上重新簽署請求

2610* 設定 `sessionTokenVar` 時,代理伺服器會在重新簽署的請求中以 `x-amz-security-token` 傳送真實 token

2611* 在配對中指定任何傳統變數,都會取代自動配對

2592 2612 

2593<h3 id="sandbox-credentials-sigv4">2613<h3 id="sandbox-credentials-sigv4">

2594 `sandbox.credentials.sigv4`2614 `sandbox.credentials.sigv4`

2595</h3>2615</h3>

2596 2616 

2597選擇沙箱代理對 AWS 請求形式執行的操作,它 [can't re-sign](/docs/zh-TW/sandboxing#re-sign-aws-requests):`streaming` 用於 aws-chunked 串流上傳,`presigned` 用於預簽署 URL,`sigv4a` 用於 SigV4A 非對稱簽名。這僅適用於使用遮罩配對的佔位符存取金鑰 ID 簽署的請求。需要 Claude Code v2.1.224 或更新版本。2617選擇沙箱代理伺服器如何處理其[無法重新簽署](/docs/zh-TW/sandboxing#re-sign-aws-requests)的 AWS 請求形式:`streaming` 用於 aws-chunked 串流上傳,`presigned` 用於預先簽署的 URL,`sigv4a` 用於 SigV4A 非對稱簽章。這只適用於以遮罩配對之預留位置存取金鑰 ID 簽署的請求。需要 Claude Code v2.1.224 或更新版本。

2598 2618 

2599* **Scope**: [`User or managed`](#scopes)2619* **範圍**:[`User or managed`](#scopes)

2600* **Type**: 物件,包含 `streaming`、`presigned` 和 `sigv4a`,每個為以下之一:2620* **類型**:包含 `streaming`、`presigned` 和 `sigv4a` 的物件,每個值為下列其中之一:

2601 * `"deny"`: 代理失敗請求2621 * `"deny"`:代理伺服器讓請求失敗

2602 * `"passthrough"`: 代理使用遮罩佔位符簽署的請求轉發,所以工具接收 AWS 自己的拒絕2622 * `"passthrough"`:代理伺服器轉送以遮罩預留位置值簽署的請求,因此工具會收到 AWS 本身的拒絕回應

2603* **Default**: 未設定,所以每個形式為 `"deny"`2623* **預設值**:未設定,因此每種形式都是 `"deny"`

2604 2624 

2605這轉發串流上傳而不是在代理失敗它們:2625以下設定會轉送串流上傳,而不是在代理伺服器讓它們失敗:

2606 2626 

2607```json settings.json theme={null}2627```json settings.json theme={null}

2608{2628{


2616}2636}

2617```2637```

2618 2638 

2619使用 `deny`,代理失敗請求。使用 `passthrough`,代理使用從遮罩佔位符計算的簽名轉發請求,所以 AWS 拒絕它,呼叫工具接收 AWS 自己的回應而不是代理錯誤。2639使用 `deny` 時,代理伺服器會讓請求失敗。使用 `passthrough` 時,代理伺服器會轉送以遮罩預留位置值計算簽章的請求,因此 AWS 會拒絕它,呼叫端工具會收到 AWS 本身的回應,而不是代理伺服器錯誤。

2620 2640 

2621<h3 id="sandbox-network">2641<h3 id="sandbox-network">

2622 `sandbox.network`2642 `sandbox.network`

2623</h3>2643</h3>

2624 2644 

2625控制沙箱化命令可以到達的主機、連接埠和通訊端。沙箱透過代理路由出站流量,強制執行這些清單;請參閱 [Network isolation](/docs/zh-TW/sandboxing#network-isolation) 以了解代理如何決定以及何時提示。2645控制沙箱化命令可以存取哪些主機、連接埠和 socket。沙箱會將外送流量透過強制執行這些清單的代理伺服器轉送;關於代理伺服器如何決定以及何時提示,請參閱[網路隔離](/docs/zh-TW/sandboxing#network-isolation)。

2626 2646 

2627* **Scope**: [`Any file`](#scopes)。`strictAllowlist`、`allowManagedDomainsOnly` 和 `tlsTerminate` 從較少的來源讀取,如其項目所述。2647* **範圍**:[`Any file`](#scopes)。`strictAllowlist`、`allowManagedDomainsOnly` 和 `tlsTerminate` 讀取的來源較少,如其各自項目所述。

2628* **Type**: 物件,包含下面的子鍵2648* **類型**:包含下列子鍵的物件

2629* **Default**: 未設定,所以沒有網域被預先允許,沙箱為每個新主機提示2649* **預設值**:未設定,因此不預先允許任何網域,並由您的權限模式決定[每個新主機的處理方式](/docs/zh-TW/sandboxing#hosts-outside-your-allowed-domains)

2630 2650 

2631這預先允許 GitHub 和 npm,阻止 `uploads.github.com`,並讓命令綁定到 localhost:2651以下設定會預先允許 GitHub 和 npm、封鎖 `uploads.github.com`,並讓命令可以繫結到 localhost:

2632 2652 

2633```json settings.json theme={null}2653```json settings.json theme={null}

2634{2654{


2642}2662}

2643```2663```

2644 2664 

2645Claude Code 合併設定範圍中的陣列子鍵並去重,所以專案可以將網域新增到您的使用者清單。`WebFetch(domain:...)` 允許和拒絕 [permission rules](/docs/zh-TW/sandboxing#permission-rules) 饋送相同的允許和拒絕清單。2665Claude Code 會在設定範圍之間合併陣列子鍵,因此除非有[儲存庫鎖定](/docs/zh-TW/sandboxing#repository-settings-under-an-admin-required-sandbox)適用,否則專案可以將網域加入您的使用者清單。`WebFetch(domain:...)` 允許和拒絕[權限規則](/docs/zh-TW/sandboxing#permission-rules)會加入相同的允許和拒絕清單。

2646 2666 

2647<h3 id="sandbox-network-allowunixsockets">2667<h3 id="sandbox-network-allowunixsockets">

2648 `sandbox.network.allowUnixSockets`2668 `sandbox.network.allowUnixSockets`

2649</h3>2669</h3>

2650 2670 

2651列出 macOS 上沙箱化命令可以連接的 Unix 通訊端路徑。Claude Code 在 Linux 和 WSL2 上忽略此清單,其中 seccomp 篩選器無法檢查通訊端路徑;改為在那裡使用 [`allowAllUnixSockets`](#sandbox-network-allowallunixsockets)。2671列出 macOS 上沙箱化命令可以連線的 Unix socket 路徑。Claude Code 在 Linux 和 WSL2 上會忽略此清單,因為 seccomp 篩選器無法檢查 socket 路徑;在這些平台上請改用 [`allowAllUnixSockets`](#sandbox-network-allowallunixsockets)。

2652 2672 

2653* **Scope**: [`Any file`](#scopes)2673* **範圍**:[`Any file`](#scopes),但[對專案和本機設定有所限制](/docs/zh-TW/sandboxing#repository-settings-under-an-admin-required-sandbox)

2654* **Type**: 字串陣列,每個通訊端路徑2674* **類型**:字串陣列,每個都是 socket 路徑

2655* **Default**: 未設定,所以 macOS 沙箱阻止每個 Unix 通訊端2675* **預設值**:未設定,因此 macOS 沙箱會封鎖每個 Unix socket

2656 2676 

2657```json settings.json theme={null}2677```json settings.json theme={null}

2658{2678{


2664}2684}

2665```2685```

2666 2686 

2667通訊端路徑可以授予廣泛存取:例如允許 `/var/run/docker.sock` 讓沙箱化命令控制 Docker 守護程序。請參閱 [Security limitations](/docs/zh-TW/sandboxing#security-limitations)。2687socket 路徑可能授予廣泛的存取權:例如,允許 `/var/run/docker.sock` 會讓沙箱化命令能夠控制 Docker daemon。請參閱[安全性限制](/docs/zh-TW/sandboxing#security-limitations)。

2668 2688 

2669<h3 id="sandbox-network-allowallunixsockets">2689<h3 id="sandbox-network-allowallunixsockets">

2670 `sandbox.network.allowAllUnixSockets`2690 `sandbox.network.allowAllUnixSockets`

2671</h3>2691</h3>

2672 2692 

2673讓沙箱化命令連接到每個 Unix 通訊端。在 Linux 和 WSL2 上,沙箱的 [seccomp filter](/docs/zh-TW/sandboxing#set-up-linux-and-wsl2) 阻止 `socket(AF_UNIX, ...)` 呼叫,所以這是在那裡允許 Unix 通訊端的唯一方式。當篩選器遺失時,`/sandbox` 在其 Dependencies 標籤上報告,沙箱不阻止 Unix 通訊端呼叫。請參閱 [Set up Linux and WSL2](/docs/zh-TW/sandboxing#set-up-linux-and-wsl2) 以了解篩選器來自何處。2693讓沙箱化命令可以連線到每個 Unix socket。在 Linux 和 WSL2 上,沙箱的 [seccomp 篩選器](/docs/zh-TW/sandboxing#set-up-linux-and-wsl2)會封鎖 `socket(AF_UNIX, ...)` 呼叫,因此這是在這些平台上允許 Unix socket 的唯一方式。當篩選器不存在時(`/sandbox` 會在其 Dependencies 分頁中回報),沙箱不會封鎖 Unix socket 呼叫。關於篩選器的來源,請參閱[設定 Linux 和 WSL2](/docs/zh-TW/sandboxing#set-up-linux-and-wsl2)。

2674 2694 

2675* **Scope**: [`Any file`](#scopes)2695* **範圍**:[`Any file`](#scopes),但[對專案和本機設定有所限制](/docs/zh-TW/sandboxing#repository-settings-under-an-admin-required-sandbox)

2676* **Type**: 布林值2696* **類型**:布林值

2677 * `true`: 沙箱化命令可以連接到每個 Unix 通訊端2697 * `true`:沙箱化命令可以連線到每個 Unix socket

2678 * `false`: 沙箱阻止 Unix 通訊端連接:在 macOS 上除了 `allowUnixSockets` 中的路徑,在 Linux 和 WSL2 上透過 seccomp 篩選器(當它存在時)2698 * `false`:沙箱會封鎖 Unix socket 連線:在 macOS 上,`allowUnixSockets` 中的路徑除外;在 Linux 和 WSL2 上,則在 seccomp 篩選器存在時透過它封鎖

2679* **Default**: `false`2699* **預設值**:`false`

2680 2700 

2681```json settings.json theme={null}2701```json settings.json theme={null}

2682{2702{


2688}2708}

2689```2709```

2690 2710 

2691在 WSL2 上,`true` 也重新開啟啟動 Windows 二進位檔案(例如 `cmd.exe` 和 `powershell.exe`)的 interop 通訊端。2711在 WSL2 上,`true` 也會重新開放用來啟動 `cmd.exe` 和 `powershell.exe` 等 Windows 二進位檔的 interop socket。

2692 2712 

2693<h3 id="sandbox-network-allowlocalbinding">2713<h3 id="sandbox-network-allowlocalbinding">

2694 `sandbox.network.allowLocalBinding`2714 `sandbox.network.allowLocalBinding`

2695</h3>2715</h3>

2696 2716 

2697讓 macOS 上的沙箱化命令綁定到 localhost 連接埠,例如啟動開發伺服器。2717讓 macOS 上的沙箱化命令可以監聽網路連接埠(例如用來啟動開發伺服器),並連線到 localhost 上的任何連接埠。在非 loopback 位址上監聽的命令會接受來自其他機器的連線。此鍵在 Linux 和 WSL2 上沒有作用,因為在這些平台上每個沙箱化命令都有自己的 loopback 介面。若要從 Linux 或 WSL2 存取主機上的伺服器,請參閱[命令無法存取 localhost 上的伺服器](/docs/zh-TW/sandboxing#a-command-fails-to-reach-a-server-on-localhost)。

2698 2718 

2699* **Scope**: [`Any file`](#scopes)2719* **範圍**:[`Any file`](#scopes),但[對專案和本機設定有所限制](/docs/zh-TW/sandboxing#repository-settings-under-an-admin-required-sandbox)

2700* **Type**: 布林值2720* **類型**:布林值

2701 * `true`: macOS 上的沙箱化命令可以綁定到 localhost 連接埠2721 * `true`:macOS 上的沙箱化命令可以在任何本機位址上監聽,並連線到 localhost 上的任何連接埠

2702 * `false`: macOS 上的沙箱化命令無法綁定到 localhost 連接埠2722 * `false`:macOS 上的沙箱化命令無法監聽連接埠,也無法直接連線到 localhost 上的伺服器

2703* **Default**: `false`2723* **預設值**:`false`

2704 2724 

2705```json settings.json theme={null}2725```json settings.json theme={null}

2706{2726{


2716 `sandbox.network.allowMachLookup`2736 `sandbox.network.allowMachLookup`

2717</h3>2737</h3>

2718 2738 

2719列出 macOS 沙箱可能查詢的其他 XPC 和 Mach 服務名稱。透過 XPC 通訊的工具(例如 iOS 模擬器或 Playwright)需要在此列出其服務。2739列出 macOS 沙箱可以查找的其他 XPC 和 Mach 服務名稱。透過 XPC 通訊的工具(例如 iOS Simulator 或 Playwright)需要在此列出其服務。

2720 2740 

2721* **Scope**: [`Any file`](#scopes)2741* **範圍**:[`Any file`](#scopes),但[對專案和本機設定有所限制](/docs/zh-TW/sandboxing#repository-settings-under-an-admin-required-sandbox)

2722* **Type**: 字串陣列,每個服務名稱;單個尾部 `*` 符合前綴,`"*"` 單獨符合每個服務2742* **類型**:字串陣列,每個都是服務名稱;單一結尾的 `*` 會比對前綴,單獨的 `"*"` 則會比對所有服務

2723* **Default**: 未設定2743* **預設值**:未設定

2724 2744 

2725這允許 `com.apple.coresimulator.` 前綴下的每個服務:2745以下設定允許 `com.apple.coresimulator.` 前綴下的每個服務:

2726 2746 

2727```json settings.json theme={null}2747```json settings.json theme={null}

2728{2748{


2738 `sandbox.network.allowedDomains`2758 `sandbox.network.allowedDomains`

2739</h3>2759</h3>

2740 2760 

2741預先允許沙箱化命令的出站流量網域,所以沙箱不為它們提示。萬用字元(例如 `*.example.com`)符合子網域,可選的 `:port` 尾碼將項目限制為一個連接埠;沒有連接埠的項目符合每個連接埠。2761預先允許沙箱化命令外送流量的網域,使沙箱不會針對這些網域顯示提示。`*.example.com` 等萬用字元會比對子網域,選用的 `:port` 後綴會將項目限制在單一連接埠;沒有連接埠的項目會比對所有連接埠。

2742 2762 

2743* **Scope**: [`Any file`](#scopes)。僅當設定 [`allowManagedDomainsOnly`](#sandbox-network-allowmanageddomainsonly) 時的受管設定。2763* **範圍**:[`Any file`](#scopes),但[對專案和本機設定有所限制](/docs/zh-TW/sandboxing#repository-settings-under-an-admin-required-sandbox)。設定了 [`allowManagedDomainsOnly`](#sandbox-network-allowmanageddomainsonly) 時,僅限受管設定。

2744* **Type**: 字串陣列,每個網域、萬用字元模式或 IP 字面,帶有可選的 `:port` 尾碼2764* **類型**:字串陣列,每個都是網域、萬用字元模式或 IP 常值,可附加選用的 `:port` 後綴

2745* **Default**: 未設定,所以沙箱在命令首次到達新主機時提示2765* **預設值**:未設定,因此由您的權限模式決定[每個新主機的處理方式](/docs/zh-TW/sandboxing#hosts-outside-your-allowed-domains)

2746 2766 

2747這預先允許 GitHub 在每個連接埠、每個 npm 子網域和一個 API 主機僅在連接埠 443 上:2767以下設定會在所有連接埠上預先允許 GitHub、每個 npm 子網域,以及僅在連接埠 443 上的一個 API 主機:

2748 2768 

2749```json settings.json theme={null}2769```json settings.json theme={null}

2750{2770{


2756}2776}

2757```2777```

2758 2778 

2759將 IPv6 字面寫為括號,帶有可選連接埠:`"[::1]"` 允許每個連接埠,`"[::1]:443"` 一個連接埠。括號形式需要 Claude Code v2.1.229 或更新版本。請參閱 [IPv6 addresses in domain lists](/docs/zh-TW/sandboxing#ipv6-addresses-in-domain-lists)。2779IPv6 常值請以括號包住,並可附加選用的連接埠:`"[::1]"` 允許所有連接埠,`"[::1]:443"` 則允許單一連接埠。加括號的形式需要 Claude Code v2.1.229 或更新版本。請參閱[網域清單中的 IPv6 位址](/docs/zh-TW/sandboxing#ipv6-addresses-in-domain-lists)。

2760 2780 

2761<h3 id="sandbox-network-denieddomains">2781<h3 id="sandbox-network-denieddomains">

2762 `sandbox.network.deniedDomains`2782 `sandbox.network.deniedDomains`

2763</h3>2783</h3>

2764 2784 

2765阻止沙箱化命令的出站流量網域,使用與 [`allowedDomains`](#sandbox-network-alloweddomains) 相同的萬用字元、連接埠和 IPv6 語法。被拒絕的網域即使 `allowedDomains` 項目也符合它仍保持被阻止。2785封鎖沙箱化命令外送流量的網域,使用與 [`allowedDomains`](#sandbox-network-alloweddomains) 相同的萬用字元、連接埠和 IPv6 語法。即使 `allowedDomains` 項目也比對到某個被拒絕的網域,該網域仍會保持封鎖。

2766 2786 

2767* **Scope**: [`Any file`](#scopes)2787* **範圍**:[`Any file`](#scopes)

2768* **Type**: 字串陣列,每個網域、萬用字元模式或 IP 字面,帶有可選的 `:port` 尾碼2788* **類型**:字串陣列,每個都是網域、萬用字元模式或 IP 常值,可附加選用的 `:port` 後綴

2769* **Default**: 未設定2789* **預設值**:未設定

2770 2790 

2771```json settings.json theme={null}2791```json settings.json theme={null}

2772{2792{


2778}2798}

2779```2799```

2780 2800 

2781Claude Code 合併工作階段載入的每個設定來源中的此清單,即使設定 `allowManagedDomainsOnly` 時,所以開發人員可以始終收緊拒絕清單。對於 IPv6 字面,請參閱 [IPv6 addresses in domain lists](/docs/zh-TW/sandboxing#ipv6-addresses-in-domain-lists)。2801即使設定了 `allowManagedDomainsOnly`,Claude Code 仍會合併工作階段載入之所有設定來源中的此清單,因此開發人員始終可以收緊拒絕清單。關於 IPv6 常值,請參閱[網域清單中的 IPv6 位址](/docs/zh-TW/sandboxing#ipv6-addresses-in-domain-lists)。

2782 2802 

2783以標記完全合格網域名稱的尾部點寫入的項目,例如 `example.com.`,阻止與 `example.com` 相同的連接。2803以標示完整網域名稱的結尾句點撰寫的項目(例如 `example.com.`),會封鎖與 `example.com` 相同的連線。

2784 2804 

2785<h3 id="sandbox-network-strictallowlist">2805<h3 id="sandbox-network-strictallowlist">

2786 `sandbox.network.strictAllowlist`2806 `sandbox.network.strictAllowlist`

2787</h3>2807</h3>

2788 2808 

2789拒絕沙箱化命令存取允許清單外的主機,而不是提示批准。允許清單是 [`allowedDomains`](#sandbox-network-alloweddomains) 加上來自 `WebFetch(domain:...)` 允許規則的網域,或僅當設定 [`allowManagedDomainsOnly`](#sandbox-network-allowmanageddomainsonly) 時的受管設定項目。需要 Claude Code v2.1.219 或更新版本。2809拒絕沙箱化命令存取允許清單以外的主機,而不是提示要求核准。允許清單為 [`allowedDomains`](#sandbox-network-alloweddomains) 加上來自 `WebFetch(domain:...)` 允許規則的網域;設定了 [`allowManagedDomainsOnly`](#sandbox-network-allowmanageddomainsonly) 時,則僅為受管設定中的項目。[不需管理員強制要求沙箱即適用的鎖定](/docs/zh-TW/sandboxing#locks-that-apply-without-an-admin-required-sandbox)說明了儲存庫項目的處理方式。需要 Claude Code v2.1.219 或更新版本。

2790 2810 

2791* **Scope**: [`User or managed`](#scopes)。儲存庫無法開啟或關閉它。2811* **範圍**:[`User or managed`](#scopes)。儲存庫無法開啟或關閉此項。

2792* **Type**: 布林值2812* **類型**:布林值

2793 * `true`: Claude Code 拒絕沙箱化命令存取允許清單外的主機2813 * `true`:Claude Code 拒絕沙箱化命令存取允許清單以外的主機

2794 * `false`: 除非另一個受信任的設定檔案設定 `true`,Claude Code 根據權限模式而不是直接拒絕決定允許清單外的主機:它在自動模式中檢查主機對命令的 [per-command allowed domains](/docs/zh-TW/sandboxing#per-command-allowed-domains-in-auto-mode),在 `dontAsk` 模式中拒絕,在 `bypassPermissions` 模式中允許,在計畫模式中當旁路可用時允許,否則詢問您2814 * `false`:除非另一個受信任的設定檔設定了 `true`,否則 Claude Code 會依權限模式決定允許清單以外的主機,而不是直接拒絕:在自動模式中,它會依據命令的[每個命令允許的網域](/docs/zh-TW/sandboxing#per-command-allowed-domains-in-auto-mode)檢查該主機;在 `dontAsk` 模式中會拒絕;在 `bypassPermissions` 模式以及可使用略過功能的互動式終端機 plan mode 工作階段中會允許;其他情況則會詢問您

2795* **Default**: `false`2815* **預設值**:`false`

2796 2816 

2797```json settings.json theme={null}2817```json settings.json theme={null}

2798{2818{


2804}2824}

2805```2825```

2806 2826 

2807Claude Code 僅對沙箱化命令強制執行此;進程內工具(例如 `WebFetch`)仍然遵循其 [permission rules](/docs/zh-TW/sandboxing#permission-rules)。當任何接受的來源將其設定為 `true` 時,它保持開啟。請參閱 [Network isolation](/docs/zh-TW/sandboxing#network-isolation)。需要 Claude Code v2.1.219 或更新版本。2827Claude Code 僅對沙箱化命令強制執行此項;`WebFetch` 等程序內工具仍遵循其[權限規則](/docs/zh-TW/sandboxing#permission-rules)。當任何被採用的來源將其設為 `true` 時,它就會保持開啟。請參閱[網路隔離](/docs/zh-TW/sandboxing#network-isolation)。需要 Claude Code v2.1.219 或更新版本。

2808 2828 

2809<h3 id="sandbox-network-allowmanageddomainsonly">2829<h3 id="sandbox-network-allowmanageddomainsonly">

2810 `sandbox.network.allowManagedDomainsOnly`2830 `sandbox.network.allowManagedDomainsOnly`

2811</h3>2831</h3>

2812 2832 

2813將網路允許清單鎖定到受管設定定義的內容。Claude Code 然後僅接受來自受管設定的 `allowedDomains` 和 `WebFetch(domain:...)` 允許規則,忽略來自使用者、專案、本機和 `--settings` 設定的網域,並自動阻止非允許的網域而不是提示。2833將網路允許清單鎖定為受管設定所定義的內容。此時 Claude Code 僅採用來自受管設定的 `allowedDomains` 和 `WebFetch(domain:...)` 允許規則,忽略來自使用者、專案、本機和 `--settings` 設定的網域,並自動封鎖未允許的網域而不顯示提示。

2814 2834 

2815* **Scope**: [`Managed`](#scopes)2835* **範圍**:[`Managed`](#scopes)

2816* **Type**: 布林值2836* **類型**:布林值

2817 * `true`: Claude Code 僅接受來自受管設定的 `allowedDomains` 和 `WebFetch(domain:...)` 允許規則,並自動阻止非允許的網域而不是提示2837 * `true`:Claude Code 僅採用來自受管設定的 `allowedDomains` 和 `WebFetch(domain:...)` 允許規則,並封鎖未允許的網域而不顯示提示

2818 * `false`: 來自使用者、專案、本機和 `--settings` 設定的網域合併到允許清單2838 * `false`:來自其他設定檔的網域可以合併到允許清單中

2819* **Default**: `false`2839* **預設值**:`false`

2820 2840 

2821這將允許清單鎖定到 GitHub 和 npm,並忽略開發人員新增的任何網域:2841以下設定會將允許清單鎖定為 GitHub 和 npm,並忽略開發人員新增的任何網域:

2822 2842 

2823```json managed-settings.json theme={null}2843```json managed-settings.json theme={null}

2824{2844{


2831}2851}

2832```2852```

2833 2853 

2834被拒絕的網域仍然合併自工作階段載入的每個來源。請參閱 [Keep developers from widening the policy](/docs/zh-TW/sandboxing#keep-developers-from-widening-the-policy)。2854當此鍵為 `true` 時,沙箱為[管理員強制要求](/docs/zh-TW/sandboxing#repository-settings-under-an-admin-required-sandbox),且只有受管設定能設定[代理伺服器連接埠](#sandbox-network-httpproxyport)。

2855 

2856被拒絕的網域仍會從工作階段載入的所有來源合併。請參閱[防止開發人員擴大政策](/docs/zh-TW/sandboxing#keep-developers-from-widening-the-policy)。

2835 2857 

2836<h3 id="sandbox-network-httpproxyport">2858<h3 id="sandbox-network-httpproxyport">

2837 `sandbox.network.httpProxyPort`2859 `sandbox.network.httpProxyPort`

2838</h3>2860</h3>

2839 2861 

2840將沙箱指向您自己的 HTTP 代理而不是 Claude Code 執行的。組織執行此操作以檢查 HTTPS 流量、應用其自己的篩選規則或記錄每個請求。未設定時,Claude Code 為 HTTP 流量啟動其自己的代理。2862讓沙箱使用您自己的 HTTP 代理伺服器,而非 Claude Code 執行的代理伺服器。組織會這麼做來檢查 HTTPS 流量、套用自己的篩選規則,或記錄請求。您的代理伺服器會接手篩選工作,而 Claude Code 會停止對送往該處的流量套用其網域清單和網路提示。未設定時,Claude Code 會為 HTTP 流量啟動自己的代理伺服器。

2841 2863 

2842* **Scope**: [`Any file`](#scopes)2864* **範圍**:[`Any file`](#scopes),除非[其他沙箱設定限制了哪些檔案可以設定連接埠](/docs/zh-TW/sandboxing#custom-proxy-configuration)

2843* **Type**: 數字,本機 TCP 連接埠2865* **類型**:數字,本機 TCP 連接埠

2844* **Default**: 未設定,所以 Claude Code 執行其自己的代理2866* **預設值**:未設定,因此 Claude Code 會執行自己的代理伺服器

2845 2867 

2846```json settings.json theme={null}2868```json settings.json theme={null}

2847{2869{


2853}2875}

2854```2876```

2855 2877 

2856如果您的代理也應該攜帶 SOCKS 流量,也設定 [`socksProxyPort`](#sandbox-network-socksproxyport);僅設定其中一個時,Claude Code 仍然為另一個協議執行其自己的代理。請參閱 [Custom proxy configuration](/docs/zh-TW/sandboxing#custom-proxy-configuration)。2878如果您的代理伺服器也應承載 SOCKS 流量,請一併設定 [`socksProxyPort`](#sandbox-network-socksproxyport);若只設定其中一個,Claude Code 仍會為另一種協定執行自己的代理伺服器。請參閱[自訂代理伺服器設定](/docs/zh-TW/sandboxing#custom-proxy-configuration)。

2857 2879 

2858<h3 id="sandbox-network-socksproxyport">2880<h3 id="sandbox-network-socksproxyport">

2859 `sandbox.network.socksProxyPort`2881 `sandbox.network.socksProxyPort`

2860</h3>2882</h3>

2861 2883 

2862將沙箱指向您自己的 SOCKS5 代理而不是 Claude Code 執行的。未設定時,Claude Code 為 SOCKS 流量啟動其自己的代理。2884讓沙箱使用您自己的 SOCKS5 代理伺服器,而非 Claude Code 執行的代理伺服器。您的代理伺服器會接手篩選工作,而 Claude Code 會停止對送往該處的流量套用其網域清單和網路提示。未設定時,Claude Code 會為 SOCKS 流量啟動自己的代理伺服器。

2863 2885 

2864* **Scope**: [`Any file`](#scopes)2886* **範圍**:[`Any file`](#scopes),除非[其他沙箱設定限制了哪些檔案可以設定連接埠](/docs/zh-TW/sandboxing#custom-proxy-configuration)

2865* **Type**: 數字,本機 TCP 連接埠2887* **類型**:數字,本機 TCP 連接埠

2866* **Default**: 未設定,所以 Claude Code 執行其自己的代理2888* **預設值**:未設定,因此 Claude Code 會執行自己的代理伺服器

2867 2889 

2868```json settings.json theme={null}2890```json settings.json theme={null}

2869{2891{


2875}2897}

2876```2898```

2877 2899 

2878請參閱 [Custom proxy configuration](/docs/zh-TW/sandboxing#custom-proxy-configuration)。2900請參閱[自訂代理伺服器設定](/docs/zh-TW/sandboxing#custom-proxy-configuration)。

2879 2901 

2880<h3 id="sandbox-network-tlsterminate">2902<h3 id="sandbox-network-tlsterminate">

2881 `sandbox.network.tlsTerminate`2903 `sandbox.network.tlsTerminate`

2882</h3>2904</h3>

2883 2905 

2884使沙箱代理終止 TLS,以便它可以讀取 HTTPS 請求的內容。這是實驗性的,`mask` [credential substitution](/docs/zh-TW/sandboxing#mask-credentials) 需要它。設定 `{}` 為工作階段生成臨時憑證授權單位,或設定 `caCertPath` 和 `caKeyPath` 以使用您自己的。2906讓沙箱代理伺服器終止 TLS,以便讀取 HTTPS 請求的內容。這是實驗性功能,且 `mask` [憑證替換](/docs/zh-TW/sandboxing#mask-credentials)需要此功能。設定 `{}` 可為工作階段產生臨時的憑證授權單位,或設定 `caCertPath` 和 `caKeyPath` 以使用您自己的憑證授權單位。

2885 2907 

2886* **Scope**: [`User or managed`](#scopes)。儲存庫無法開啟它或提供憑證授權單位。2908* **範圍**:[`User or managed`](#scopes)。儲存庫無法開啟此項或提供憑證授權單位。

2887* **Type**: 物件,包含可選的 `caCertPath` 和 `caKeyPath` 字串,每個檔案路徑2909* **類型**:包含選用 `caCertPath` 和 `caKeyPath` 字串(每個都是檔案路徑)的物件

2888* **Default**: 未設定,所以代理不終止或檢查 TLS2910* **預設值**:未設定,因此代理伺服器不會終止或檢查 TLS

2889 2911 

2890```json settings.json theme={null}2912```json settings.json theme={null}

2891{2913{


2897}2919}

2898```2920```

2899 2921 

2900當多個接受的來源設定它時,Claude Code 使用來自優先順序最高的來源的值:受管設定、然後 `--settings` 旗標、然後使用者設定。需要 Claude Code v2.1.199 或更新版本。2922當有多個被採用的來源設定此項時,Claude Code 會使用優先順序最高之來源的值:受管設定,其次是 `--settings` 旗標,再來是使用者設定。需要 Claude Code v2.1.199 或更新版本。

2901 2923 

2902<span id="context-and-memory" />2924<span id="context-and-memory" />

2903 2925 


4258<span id="hook-and-skill-settings" />4280<span id="hook-and-skill-settings" />

4259 4281 

4260<h2 id="hooks-and-automation">4282<h2 id="hooks-and-automation">

4261 Hooks 和自動化4283 Hook 和自動化

4262</h2>4284</h2>

4263 4285 

4264註冊 hooks、限制哪些 hooks 執行,以及控制工作流程。如需 hook 事件和承載資料,請參閱 [hooks 參考](/docs/zh-TW/hooks)。4286註冊 hook、限制哪些 hook 執行,以及控制工作流程。如需 hook 事件和 payload,請參閱 [hooks 參考](/docs/zh-TW/hooks)。

4265 4287 

4266<h3 id="allowedhttphookurls">4288<h3 id="allowedhttphookurls">

4267 `allowedHttpHookUrls`4289 `allowedHttpHookUrls`

4268</h3>4290</h3>

4269 4291 

4270限制 [HTTP hooks](/docs/zh-TW/hooks#http-hook-fields) 可以目標的 URL。當您定義此金鑰時,Claude Code 只有在 HTTP hook 的 URL 符合其中一個模式時才會執行該 hook,並阻止其餘的而不執行它們;空陣列會阻止每個 HTTP hook。4292限制 [HTTP hook](/docs/zh-TW/hooks#http-hook-fields) 可以指向的 URL。當您定義此設定鍵時,Claude Code 只有在 HTTP hook 的 URL 符合其中一個模式時才會執行該 hook,並阻止其餘的而不執行它們;空陣列會阻止每個 HTTP hook。

4271 4293 

4272* **範圍**:[`Any file`](#scopes)。陣列在設定檔中合併。4294* **範圍**:[`Any file`](#scopes)。陣列會跨設定檔合併。

4273* **類型**:URL 模式陣列,`*` 作為萬用字元4295* **類型**:URL 模式陣列,以 `*` 作為萬用字元

4274* **預設**:未設定,因此允許任何 URL4296* **預設**:未設定,因此允許任何 URL

4275 4297 

4276此範例允許 `https://hooks.example.com/` 下的任何 URL 和任何 `http://localhost` URL:4298此範例允許 `https://hooks.example.com/` 下的任何 URL 和任何 `http://localhost` URL:


4281}4303}

4282```4304```

4283 4305 

4284主機名稱比對不區分大小寫,並將 `hooks.example.com.`(標記完全合格網域名稱的尾部點)視為與 `hooks.example.com` 相同,這是 DNS 的處理方式。允許清單適用於來自每個來源的 hooks,包括受管設定。4306主機名稱比對不區分大小寫,並將 `hooks.example.com.`(帶有標記完整網域名稱的尾端點)視為與 `hooks.example.com` 相同,這與 DNS 的處理方式一致。允許清單適用於來自每個來源的 hook,包括受管設定。

4285 4307 

4286<h3 id="allowmanagedhooksonly">4308<h3 id="allowmanagedhooksonly">

4287 `allowManagedHooksOnly`4309 `allowManagedHooksOnly`

4288</h3>4310</h3>

4289 4311 

4290限制 hook 執行為您的組織部署的 hooks。4312將 hook 執行限制為您的組織部署的 hook。

4291 4313 

4292* **範圍**:[`Managed`](#scopes)4314* **範圍**:[`Managed`](#scopes)

4293* **類型**:布林值4315* **類型**:布林值

4294 * `true`:只有受管 hooks 執行,加上 Agent SDK hooks 和您的受管設定強制啟用的外掛程式中的 hooks。請參閱 [在 `allowManagedHooksOnly` 下執行的內容](#what-runs-under-allowmanagedhooksonly)4316 * `true`:只有受管 hook 執行,加上 Agent SDK hook 和您的受管設定強制啟用的外掛中的 hook。請參閱 [在 `allowManagedHooksOnly` 下執行的內容](#what-runs-under-allowmanagedhooksonly)

4295 * `false`:來自每個設定範圍和外掛程式的 hooks 執行4317 * `false`:來自每個設定範圍和外掛的 hook 都會執行

4296* **預設**:未設定,因此來自每個設定範圍和外掛程式的 hooks 執行4318* **預設**:未設定,因此來自每個設定範圍和外掛的 hook 都會執行

4297 4319 

4298```json managed-settings.json theme={null}4320```json managed-settings.json theme={null}

4299{4321{


4305 在 `allowManagedHooksOnly` 下執行的內容4327 在 `allowManagedHooksOnly` 下執行的內容

4306</h4>4328</h4>

4307 4329 

4308當您將其設定為 `true` 時,Claude Code 會變更哪些 hooks 和類似 hook 的命令載入:4330當您將其設定為 `true` 時,Claude Code 會變更載入哪些 hook 和類似 hook 的命令:

4309 4331 

4310* **受管和 SDK hooks 執行**:來自受管設定的 hooks 和 [Agent SDK](/docs/zh-TW/agent-sdk/overview) 在程序中註冊的 hooks4332* **受管和 SDK hook 執行**:來自受管設定的 hook,以及 [Agent SDK](/docs/zh-TW/agent-sdk/overview) 在程序中註冊的 hook

4311* **強制啟用的外掛程式 hooks 執行**:來自您的受管設定透過 [`enabledPlugins`](#enabledplugins) 強制啟用的外掛程式的 hooks。Claude Code 在完整的 `plugin@marketplace` ID 上比對,因此來自不同市場的同名外掛程式保持被阻止。這讓您可以透過組織市場分發經過驗證的 hooks,同時阻止其他所有內容。[mod](/docs/zh-TW/plugins/mods/overview) 在此類外掛程式中只有在它[計為您的組織的](/docs/zh-TW/plugins/mods/admin#install-your-organizations-mods)時才會載入4333* **強制啟用的外掛 hook 執行**:來自您的受管設定透過 [`enabledPlugins`](#enabledplugins) 強制啟用之外掛的 hook。Claude Code 以完整的 `plugin@marketplace` ID 進行比對,因此來自不同市集的同名外掛仍會被阻止。這讓您可以透過組織市集分發經過審核的 hook,同時阻止其他所有內容。此類外掛中的 [mod](/docs/zh-TW/plugins/mods/overview) 只有在[被視為您組織的 mod](/docs/zh-TW/plugins/mods/admin#install-your-organizations-mods) 時才會載入

4312* **其他所有內容被阻止**:使用者、專案和本機 hooks、來自其他已安裝外掛程式的 hooks,以及在代理程式 frontmatter 中宣告的 hooks。[內建於 Claude Code 的 Mods](/docs/zh-TW/plugins/mods/overview#mods-built-into-claude-code) 保持執行。若要只阻止使用者的 mods,請改為設定 [`allowManagedModsOnly`](/docs/zh-TW/plugins/mods/admin#set-options-on-the-built-in-guard)4334* **其他所有內容被阻止**:使用者、專案和本機 hook、來自其他已安裝外掛的 hook 和 mod,以及在 agent frontmatter 中宣告的 hook。[內建於 Claude Code 的 mod](/docs/zh-TW/plugins/mods/overview#mods-built-into-claude-code) 會繼續執行。若只要阻止使用者的 mod,請改為設定 [`allowManagedModsOnly`](/docs/zh-TW/plugins/mods/admin#set-options-on-the-built-in-guard)。

4313* **命令來源的外掛程式被停用**:Claude Code 也停用具有 [`command` 來源](/docs/zh-TW/plugins/marketplace-reference#command-plugin-source) 的外掛程式,包括在受管 `enabledPlugins` 中強制啟用的外掛程式,除非您明確將 [`disableCommandPluginSources`](#disablecommandpluginsources) 設定為 `false`4335* **命令來源的外掛被停用**:Claude Code 也會停用具有 [`command` 來源](/docs/zh-TW/plugins/marketplace-reference#command-plugin-source)的外掛,包括在受管 `enabledPlugins` 中強制啟用的外掛,除非您明確將 [`disableCommandPluginSources`](#disablecommandpluginsources) 設定為 `false`

4314* **市場 `headersHelper` 命令被阻止**:Claude Code 也阻止市場 [`headersHelper` 命令](/docs/zh-TW/plugins/host-marketplace#authenticate-archive-downloads),除非 [`disableCommandPluginSources`](#disablecommandpluginsources) 明確設定為 `false`,受管設定本身宣告的市場除外。需要 Claude Code v2.1.238 或更新版本4336* **市集 `headersHelper` 命令被阻止**:Claude Code 也會阻止市集 [`headersHelper` 命令](/docs/zh-TW/plugins/host-marketplace#authenticate-archive-downloads),除非 [`disableCommandPluginSources`](#disablecommandpluginsources) 明確設定為 `false`,但受管設定本身宣告的市集除外。需要 Claude Code v2.1.238 或更新版本

4315* **狀態行和檔案建議縮小到受管設定**:Claude Code 只從受管設定讀取 [`statusLine`](/docs/zh-TW/statusline)、[`fileSuggestion`](#filesuggestion) 和 [`subagentStatusLine`](/docs/zh-TW/statusline#subagent-status-lines),遵循 [狀態行和檔案建議閘道](#status-line-and-file-suggestion-gates)4337* **狀態列和檔案建議縮限為受管設定**:Claude Code 只從受管設定讀取 [`statusLine`](/docs/zh-TW/statusline)、[`fileSuggestion`](#filesuggestion) 和 [`subagentStatusLine`](/docs/zh-TW/statusline#subagent-status-lines),遵循[狀態列和檔案建議閘道](#status-line-and-file-suggestion-gates)

4316 4338 

4317當此金鑰設定時,[`/goal`](/docs/zh-TW/goal) 命令無法執行,因為它依賴於 hooks。4339設定此設定鍵時,[`/goal`](/docs/zh-TW/goal) 命令無法執行,因為它依賴於 hook。

4318 4340 

4319<h3 id="disableallhooks">4341<h3 id="disableallhooks">

4320 `disableAllHooks`4342 `disableAllHooks`

4321</h3>4343</h3>

4322 4344 

4323關閉 [hooks](/docs/zh-TW/hooks#disable-or-remove-hooks)、任何自訂 [狀態行](/docs/zh-TW/statusline) 和任何自訂 [檔案建議](#filesuggestion) 命令。使用它可以暫時關閉所有這些,而無需從您的設定中刪除它們。4345關閉 [hook](/docs/zh-TW/hooks#disable-or-remove-hooks)、任何自訂[狀態列](/docs/zh-TW/statusline)和任何自訂[檔案建議](#filesuggestion)命令。使用它可以暫時關閉所有這些項目,而無需從您的設定中刪除它們。

4324 4346 

4325* **範圍**:[`Any file`](#scopes)。只有受管設定可以停用受管 hooks。4347* **範圍**:[`Any file`](#scopes)。只有受管設定可以停用受管 hook。

4326* **類型**:布林值4348* **類型**:布林值

4327 * `true`:Claude Code 關閉 hooks、任何自訂狀態行和任何自訂檔案建議命令4349 * `true`:Claude Code 關閉 hook、任何自訂狀態列和任何自訂檔案建議命令

4328 * `false`:hooks、狀態行和檔案建議命令執行4350 * `false`:hook、狀態列和檔案建議命令都會執行

4329* **預設**:未設定,因此 hooks 執行4351* **預設**:未設定,因此 hook 會執行

4330 4352 

4331```json settings.json theme={null}4353```json settings.json theme={null}

4332{4354{


4334}4356}

4335```4357```

4336 4358 

4337範圍取決於哪個檔案攜帶該金鑰:4359影響範圍取決於哪個檔案包含此設定鍵:

4338 4360 

4339* **在受管設定中**:Claude Code 停用每個已設定的 hook,包括受管的,並保持執行 [Agent SDK](/docs/zh-TW/agent-sdk/overview) 在程序中註冊的 hooks4361* **在受管設定中**:Claude Code 停用每個已設定的 hook,包括受管 hook,並繼續執行 [Agent SDK](/docs/zh-TW/agent-sdk/overview) 在程序中註冊的 hook

4340* **在任何其他設定檔中**:Claude Code 停用使用者、專案、本機和外掛程式 hooks;受管 hooks、Agent SDK hooks 和來自在受管 [`enabledPlugins`](#enabledplugins) 中強制啟用的外掛程式的 hooks 保持執行4362* **在任何其他設定檔中**:Claude Code 停用使用者、專案、本機和外掛 hook;受管 hook、Agent SDK hook,以及在受管 [`enabledPlugins`](#enabledplugins) 中強制啟用之外掛的 hook 會繼續執行

4341 4363 

4342當受管設定設定此金鑰時保持 Agent SDK hooks 執行需要 Claude Code v2.1.242 或更新版本。4364此設定鍵也會停止 [mod](/docs/zh-TW/plugins/mods/overview),也就是其程式碼會註冊 hook 的外掛:

4343 4365 

4344當 hooks 被停用時,[`/goal`](/docs/zh-TW/goal) 命令無法執行,`/hooks` 功能表顯示通知而不是您的 hooks。4366* **在受管設定中**:每個已安裝外掛中的 mod 都會停止,包括您組織的 mod

4367* **在任何其他設定檔中**:您安裝的 mod 會停止,而[您組織的 mod](/docs/zh-TW/plugins/mods/admin#install-your-organizations-mods) 會繼續執行

4368 

4369在這兩種情況下,內建於 Claude Code 的 mod 都會繼續執行。每個內建 mod 都有[各自的開關](/docs/zh-TW/plugins/mods/overview#mods-built-into-claude-code)。

4370 

4371當受管設定設定此設定鍵時,要讓 Agent SDK hook 繼續執行需要 Claude Code v2.1.242 或更新版本。

4372 

4373當 hook 被停用時,[`/goal`](/docs/zh-TW/goal) 命令無法執行,且 `/hooks` 選單會顯示通知,而不是您的 hook。

4345 4374 

4346<h4 id="status-line-and-file-suggestion-gates">4375<h4 id="status-line-and-file-suggestion-gates">

4347 狀態行和檔案建議閘道4376 狀態列和檔案建議閘道

4348</h4>4377</h4>

4349 4378 

4350Claude Code 為 `statusLine`、`fileSuggestion` 和 `subagentStatusLine` 做出兩個決定,按此順序:4379Claude Code 會依下列順序,為 `statusLine`、`fileSuggestion` 和 `subagentStatusLine` 做出兩項決定:

4351 4380 

4352* **完全關閉**:當受管設定設定 `disableAllHooks` 時,或當資料夾在與 [設定檔中的 hooks 相同的工作區信任規則](/docs/zh-TW/permissions#what-runs-before-you-trust-a-folder) 下不受信任時4381* **完全關閉**:當受管設定設定了 `disableAllHooks` 時,或當資料夾在與[設定檔中的 hook 相同的工作區信任規則](/docs/zh-TW/permissions#what-runs-before-you-trust-a-folder)下不受信任時

4353* **縮小到受管設定**:當設定 [`allowManagedHooksOnly`](#allowmanagedhooksonly) 時,當在應用 [設定優先順序](/docs/zh-TW/hooks#disable-or-remove-hooks) 後 `disableAllHooks` 在受管設定外為 `true` 時,或當您使用 `--safe-mode` 啟動 Claude Code 時4382* **縮限為受管設定**:當設定了 [`allowManagedHooksOnly`](#allowmanagedhooksonly) 時、當套用[設定優先順序](/docs/zh-TW/hooks#disable-or-remove-hooks)後 `disableAllHooks` 在受管設定以外為 `true` 時,或當您使用 `--safe-mode` 啟動 Claude Code 時

4354 4383 

4355在縮小下,如果部署了受管值,Claude Code 執行該值。否則它會跳過您的值而不發出警告:狀態行被停用,`@` 自動完成回退到內建檔案建議。4384在縮限情況下,如果部署了受管值,Claude Code 會執行該值。否則它會跳過您的值而不發出警告:狀態列會被停用,`@` 自動完成會退回使用內建的檔案建議。

4356 4385 

4357<h3 id="disableworkflows">4386<h3 id="disableworkflows">

4358 `disableWorkflows`4387 `disableWorkflows`

4359</h3>4388</h3>

4360 4389 

4361為您的設定到達的每個人(例如透過受管設定的組織)關閉 [動態工作流程](/docs/zh-TW/workflows#turn-workflows-off) 和捆綁的工作流程命令。若要只為自己開啟或關閉工作流程,請改用 [`enableWorkflows`](#enableworkflows),**動態工作流程** 切換在 `/config` 中寫入您的使用者設定。4390為您的設定所涵蓋的每個人(例如透過受管設定涵蓋的組織)關閉[動態工作流程](/docs/zh-TW/workflows#turn-workflows-off)和內建的工作流程命令。若只要為自己開啟或關閉工作流程,請改用 [`enableWorkflows`](#enableworkflows),`/config` 中的 **Dynamic workflows** 切換開關會將其寫入您的使用者設定。

4362 4391 

4363* **範圍**:[`Any file`](#scopes)4392* **範圍**:[`Any file`](#scopes)

4364* **類型**:布林值4393* **類型**:布林值

4365 * `true`:Claude Code 為您的設定到達的每個人關閉動態工作流程和捆綁的工作流程命令4394 * `true`:Claude Code 為您的設定所涵蓋的每個人關閉動態工作流程和內建的工作流程命令

4366 * `false`:與未設定相同;工作流程是否開啟然後遵循 [`enableWorkflows`](#enableworkflows) 和您的計畫預設4395 * `false`:與未設定相同;工作流程是否開啟則取決於 [`enableWorkflows`](#enableworkflows) 和您方案的預設值

4367* **預設**:`false`4396* **預設**:`false`

4368* **每個工作階段覆蓋**:[`CLAUDE_CODE_DISABLE_WORKFLOWS`](/docs/zh-TW/env-vars) 為一個工作階段關閉工作流程;無論兩者中的哪一個關閉它們,另一個無法將它們打開4397* **每個工作階段覆寫**:[`CLAUDE_CODE_DISABLE_WORKFLOWS`](/docs/zh-TW/env-vars) 會為單一工作階段關閉工作流程;無論兩者中哪一個關閉了工作流程,另一個都無法將其重新開啟

4369 4398 

4370```json settings.json theme={null}4399```json settings.json theme={null}

4371{4400{


4377 `enableWorkflows`4406 `enableWorkflows`

4378</h3>4407</h3>

4379 4408 

4380當您的計畫預設不是您想要的時,為自己開啟或關閉 [動態工作流程](/docs/zh-TW/workflows)。在 `/config` 中顯示為 **動態工作流程**,它將此金鑰寫入您的使用者設定,並在您切換回計畫預設時再次移除它。若要從受管設定為每個人關閉工作流程,請改用 [`disableWorkflows`](#disableworkflows)。4409當您方案的預設值不符合您的需求時,為自己開啟或關閉[動態工作流程](/docs/zh-TW/workflows)。在 `/config` 中顯示為 **Dynamic workflows**,它會將此設定鍵寫入您的使用者設定,並在您切換回方案預設值時再次移除它。若要從受管設定為每個人關閉工作流程,請改用 [`disableWorkflows`](#disableworkflows)。

4381 4410 

4382* **範圍**:[`Any file`](#scopes)4411* **範圍**:[`Any file`](#scopes)

4383* **類型**:布林值4412* **類型**:布林值

4384 * `true`:Claude Code 為您開啟動態工作流程4413 * `true`:Claude Code 為您開啟動態工作流程

4385 * `false`:Claude Code 為您關閉動態工作流程4414 * `false`:Claude Code 為您關閉動態工作流程

4386* **預設**:未設定,因此工作流程開啟,除非您在 Pro 計畫上,其中它們關閉4415* **預設**:未設定,因此工作流程為開啟,除非您使用 Pro 方案,此時為關閉

4387* **每個工作階段覆蓋**:[`CLAUDE_CODE_DISABLE_WORKFLOWS`](/docs/zh-TW/env-vars) 為一個工作階段關閉工作流程,此處的 `true` 在設定時無法將它們打開4416* **每個工作階段覆寫**:[`CLAUDE_CODE_DISABLE_WORKFLOWS`](/docs/zh-TW/env-vars) 會為單一工作階段關閉工作流程,在其設定期間,此處的 `true` 無法將工作流程重新開啟

4388 4417 

4389```json settings.json theme={null}4418```json settings.json theme={null}

4390{4419{


4392}4421}

4393```4422```

4394 4423 

4395[`disableWorkflows`](#disableworkflows) 和您的組織工作流程政策也優先:`enableWorkflows: true` 在任何來源關閉工作流程時無法將它們打開。當設定檔中的來源(而不是您的使用者設定)設定 `enableWorkflows` 或將 `disableWorkflows` 設定為 `true` 時,Claude Code 隱藏 `/config` 列。4424[`disableWorkflows`](#disableworkflows) 和您組織的工作流程政策也優先於此設定:只要有任何來源關閉工作流程,`enableWorkflows: true` 就無法將其重新開啟。當您的使用者設定以外的來源設定了 `enableWorkflows`,或將 `disableWorkflows` 設定為 `true` 時,Claude Code 會隱藏 `/config` 中的該列。

4396 4425 

4397<h3 id="hooks">4426<h3 id="hooks">

4398 `hooks`4427 `hooks`

4399</h3>4428</h3>

4400 4429 

4401在 Claude Code 的生命週期中的點(例如在工具呼叫之前或工作階段啟動時)執行您自己的命令、提示、代理程式、HTTP 請求或 MCP 工具作為 [hooks](/docs/zh-TW/hooks);[hooks 參考](/docs/zh-TW/hooks#hook-events) 列出每個事件、其承載資料和其結束代碼。每個事件對應到一個匹配器群組清單,每個群組列出當匹配器適用時執行的處理程式。4430在 Claude Code 生命週期中的特定時點(例如工具呼叫之前或工作階段啟動時),以 [hook](/docs/zh-TW/hooks) 的形式執行您自己的命令、提示詞、agent、HTTP 請求或 MCP 工具;[hooks 參考](/docs/zh-TW/hooks#hook-events)列出了每個事件、其 payload 和其退出碼。每個事件對應到一個 matcher 群組清單,每個群組列出當 matcher 適用時要執行的處理程式。

4402 4431 

4403* **範圍**:[`Any file`](#scopes)。Hooks 在檔案中合併而不是相互替換,來自受管設定的 hooks 無法從其他檔案中移除。4432* **範圍**:[`Any file`](#scopes)。Hook 會跨檔案合併而非相互取代,且來自受管設定的 hook 無法從其他檔案中移除。

4404* **類型**:由 [hook 事件](/docs/zh-TW/hooks#hook-events) 鍵入的物件;每個值是 `{ "matcher", "hooks" }` 群組的陣列,其 `hooks` 項目的 `type` 為 `"command"`、`"prompt"`、`"agent"`、`"http"` 或 `"mcp_tool"`4433* **類型**:以 [hook 事件](/docs/zh-TW/hooks#hook-events)為鍵的物件;每個值都是 `{ "matcher", "hooks" }` 群組的陣列,其 `hooks` 項目的 `type` 為 `"command"`、`"prompt"`、`"agent"`、`"http"` 或 `"mcp_tool"`

4405* **預設**:未設定,因此沒有 hooks 執行4434* **預設**:未設定,因此不會執行任何 hook

4406 4435 

4407此範例在每個 Bash 工具呼叫之前執行指令碼:4436此範例在每次 Bash 工具呼叫之前執行一個指令碼:

4408 4437 

4409```json settings.json theme={null}4438```json settings.json theme={null}

4410{4439{


4421}4450}

4422```4451```

4423 4452 

4424對於每個事件、匹配器模式和處理程式欄位,請參閱 [hooks 參考](/docs/zh-TW/hooks#configuration)。若要關閉 hooks,請參閱 [`disableAllHooks`](#disableallhooks);若要將 hooks 限制為您的組織部署的 hooks,請參閱 [`allowManagedHooksOnly`](#allowmanagedhooksonly)。4453如需每個事件、matcher 模式和處理程式欄位,請參閱 [hooks 參考](/docs/zh-TW/hooks#configuration)。若要關閉 hook,請參閱 [`disableAllHooks`](#disableallhooks);若要將 hook 限制為您的組織部署的 hook,請參閱 [`allowManagedHooksOnly`](#allowmanagedhooksonly)。

4425 4454 

4426<h3 id="httphookallowedenvvars">4455<h3 id="httphookallowedenvvars">

4427 `httpHookAllowedEnvVars`4456 `httpHookAllowedEnvVars`

4428</h3>4457</h3>

4429 4458 

4430[HTTP hook](/docs/zh-TW/hooks#http-hook-fields) 可以將環境變數的值放入請求標頭中,例如 `Authorization: Bearer $HOOK_TOKEN` 標頭,但僅適用於 hook 在其自己的 `allowedEnvVars` 中列出的變數。此金鑰為每個 HTTP hook 的該清單設定外部限制:hook 只有在其自己的 `allowedEnvVars` 和此金鑰都命名它時才能使用變數。使用它可以防止 hook 讀取它不應該讀取的祕密,即使 hook 的定義要求它。4459[HTTP hook](/docs/zh-TW/hooks#http-hook-fields) 可以將環境變數的值放入請求標頭中,例如 `Authorization: Bearer $HOOK_TOKEN` 標頭,但僅限於該 hook 在其自己的 `allowedEnvVars` 中列出的變數。此設定鍵為每個 HTTP hook 的該清單設定外部限制:只有當 hook 自己的 `allowedEnvVars` 和此設定鍵都列出某個變數時,hook 才能使用該變數。使用它可以防止 hook 讀取不應讀取的祕密,即使 hook 的定義要求讀取也一樣。

4431 4460 

4432* **範圍**:[`Any file`](#scopes)。陣列在設定檔中合併。4461* **範圍**:[`Any file`](#scopes)。陣列會跨設定檔合併。

4433* **類型**:環境變數名稱陣列4462* **類型**:環境變數名稱陣列

4434* **預設**:未設定,因此每個 hook 自己的 `allowedEnvVars` 清單適用4463* **預設**:未設定,因此套用每個 hook 自己的 `allowedEnvVars` 清單

4435 4464 

4436此範例將標頭插值限制為 `MY_TOKEN` 和 `HOOK_SECRET`:4465此範例將標頭插值限制為 `MY_TOKEN` 和 `HOOK_SECRET`:

4437 4466 


4441}4470}

4442```4471```

4443 4472 

4444允許清單適用於來自每個來源的 hooks,包括受管設定。4473允許清單適用於來自每個來源的 hook,包括受管設定。

4445 4474 

4446<h3 id="workflowkeywordtriggerenabled">4475<h3 id="workflowkeywordtriggerenabled">

4447 `workflowKeywordTriggerEnabled`4476 `workflowKeywordTriggerEnabled`

4448</h3>4477</h3>

4449 4478 

4450選擇在提示中輸入關鍵字 `ultracode` 是否觸發 [動態工作流程](/docs/zh-TW/workflows#ask-for-a-workflow-in-your-prompt)。將其設定為 `false` 以輸入該字而不觸發一個。4479選擇在提示詞中輸入關鍵字 `ultracode` 是否會觸發[動態工作流程](/docs/zh-TW/workflows#ask-for-a-workflow-in-your-prompt)。將其設定為 `false`,即可輸入該字而不觸發工作流程。

4451 4480 

4452* **範圍**:[`Any file`](#scopes)。在 `/config` 中顯示為 **Ultracode 關鍵字觸發**。4481* **範圍**:[`Any file`](#scopes)。在 `/config` 中顯示為 **Ultracode keyword trigger**。

4453* **類型**:布林值4482* **類型**:布林值

4454 * `true`:在提示中輸入 `ultracode` 觸發動態工作流程4483 * `true`:在提示詞中輸入 `ultracode` 會觸發動態工作流程

4455 * `false`:您可以輸入該字而不觸發一個4484 * `false`:您可以輸入該字而不觸發工作流程

4456* **預設**:`true`4485* **預設**:`true`

4457 4486 

4458```json settings.json theme={null}4487```json settings.json theme={null}


4461}4490}

4462```4491```

4463 4492 

4464`ultracode` 努力設定、`/workflows` 和已儲存的工作流程命令不受影響。4493`ultracode` effort 設定、`/workflows` 和已儲存的工作流程命令不受影響。

4465 4494 

4466<h3 id="workflowsizeguideline">4495<h3 id="workflowsizeguideline">

4467 `workflowSizeGuideline`4496 `workflowSizeGuideline`

4468</h3>4497</h3>

4469 4498 

4470設定 [Claude 在其編寫的動態工作流程中目標的代理程式計數](/docs/zh-TW/workflows#set-a-size-guideline)。Claude Code 將值作為建議而不是強制上限發送給 Claude:`"small"` 要求少於 5 個代理程式,`"medium"` 少於 10 個,`"large"` 少於 50 個。當您想要限制工作流程花費時選擇 `"small"`。需要 Claude Code v2.1.219 或更新版本。4499設定 [Claude 在其撰寫的動態工作流程中所瞄準的 agent 數量](/docs/zh-TW/workflows#set-a-size-guideline)。Claude Code 將此值作為建議而非強制上限傳送給 Claude:`"small"` 要求少於 5 個 agent,`"medium"` 少於 10 個,`"large"` 少於 50 個。當您想要限制工作流程的花費時,請選擇 `"small"`。需要 Claude Code v2.1.219 或更新版本。

4471 4500 

4472* **範圍**:[`Any file`](#scopes)。那裡的值優先於 `/config` 中的 **動態工作流程大小** 選擇,Claude Code 將其儲存在 `~/.claude.json` 中,當設定檔設定金鑰時 Claude Code 隱藏該列。4501* **範圍**:[`Any file`](#scopes)。設定檔中的值優先於 `/config` 中的 **Dynamic workflow size** 選項(Claude Code 將其儲存在 `~/.claude.json` 中),且當設定檔設定此設定鍵時,Claude Code 會隱藏該列。

4473* **類型**:字串,其中之一:4502* **類型**:字串,為下列其中之一:

4474 * `"unrestricted"`:無指南,因此 Claude 根據任務調整工作流程大小4503 * `"unrestricted"`:無指引,因此 Claude 會依任務調整工作流程規模

4475 * `"small"`:Claude 目標少於 5 個代理程式4504 * `"small"`:Claude 以少於 5 個 agent 為目標

4476 * `"medium"`:Claude 目標少於 10 個代理程式4505 * `"medium"`:Claude 以少於 10 個 agent 為目標

4477 * `"large"`:Claude 目標少於 50 個代理程式4506 * `"large"`:Claude 以少於 50 個 agent 為目標

4478* **預設**:`"medium"`,或 當您在 Pro 計畫上簽入且使用 Claude Code v2.1.271 或更新版本時為 `"small"`4507* **預設**:`"medium"`,或 當您以 Pro 方案登入且使用 Claude Code v2.1.271 或更新版本時為 `"small"`

4479 4508 

4480```json settings.json theme={null}4509```json settings.json theme={null}

4481{4510{


4483}4512}

4484```4513```

4485 4514 

4486需要 Claude Code v2.1.219 或更新版本;在 v2.1.202 到 v2.1.218 上,改為在 `/config` 中設定指南。4515需要 Claude Code v2.1.219 或更新版本;在 v2.1.202 到 v2.1.218 上,請改為在 `/config` 中設定指引。

4487 4516 

4488<span id="plugin-configuration" />4517<span id="plugin-configuration" />

4489 4518 


5921<span id="authentication-and-login" />5950<span id="authentication-and-login" />

5922 5951 

5923<h2 id="authentication-and-providers">5952<h2 id="authentication-and-providers">

5924 驗證和提供者5953 身分驗證和提供者

5925</h2>5954</h2>

5926 5955 

5927透過協助指令碼提供認證,對於組織,強制執行登入方法或組織。請參閱[驗證](/docs/zh-TW/authentication)。5956透過協助指令碼提供憑證,對於組織,強制執行登入方法或組織。請參閱[身分驗證](/docs/zh-TW/authentication)。

5928 5957 

5929<h3 id="allowedproviders">5958<h3 id="allowedproviders">

5930 `allowedProviders`5959 `allowedProviders`


5969* **機器上的管理員來源設定清單**:僅機器自己的管理員來源的 `env` 區塊計為固定5998* **機器上的管理員來源設定清單**:僅機器自己的管理員來源的 `env` 區塊計為固定

5970* **僅伺服器受管設定設定清單**:這些伺服器受管設定中的 `env` 值也計為固定5999* **僅伺服器受管設定設定清單**:這些伺服器受管設定中的 `env` 值也計為固定

5971 6000 

5972清單不判斷雲端提供者的認證和租賃變數或網路路徑,例如 `HTTPS_PROXY` 和憑證設定。在受管 `env` 區塊中為整個機隊設定這些。6001清單不判斷雲端提供者的憑證和租賃變數或網路路徑,例如 `HTTPS_PROXY` 和 TLS 憑證設定。在受管 `env` 區塊中為整個機隊設定這些。

5973 6002 

5974<h3 id="apikeyhelper">6003<h3 id="apikeyhelper">

5975 `apiKeyHelper`6004 `apiKeyHelper`

5976</h3>6005</h3>

5977 6006 

5978執行您自己的命令來產生 Claude Code 隨著模型請求傳送的認證。Claude Code 透過系統 shell 執行命令,在 macOS 和 Linux 上為 `/bin/sh`,在 Windows 上為 `cmd`,並將其輸出作為 `X-Api-Key` 和 `Authorization: Bearer` 標頭傳送。將其用於動態或輪換認證,例如從保管庫擷取的短期權杖。6007執行您自己的命令來產生 Claude Code 隨著模型請求傳送的憑證。Claude Code 透過系統 shell 執行命令,在 macOS 和 Linux 上為 `/bin/sh`,在 Windows 上為 `cmd`,並將其輸出作為 `X-Api-Key` 和 `Authorization: Bearer` 標頭傳送。將其用於動態或輪換憑證,例如從保管庫擷取的短期權杖。

5979 6008 

5980* **範圍**:[`任何檔案`](#scopes)6009* **範圍**:[`任何檔案`](#scopes)

5981* **類型**:字串,shell 命令列6010* **類型**:字串,shell 命令列


5990Claude Code 快取該值,並在以下情況下重新執行命令:6019Claude Code 快取該值,並在以下情況下重新執行命令:

5991 6020 

5992* 在快取生命週期之後,預設為五分鐘,或您使用 [`CLAUDE_CODE_API_KEY_HELPER_TTL_MS`](/docs/zh-TW/env-vars) 設定的間隔。6021* 在快取生命週期之後,預設為五分鐘,或您使用 [`CLAUDE_CODE_API_KEY_HELPER_TTL_MS`](/docs/zh-TW/env-vars) 設定的間隔。

5993* 當對 Anthropic API 的請求(直接或透過 [LLM gateway](/docs/zh-TW/llm-gateway))失敗並出現 `401` 或 `403` 時。6022* 當對 Anthropic API 的請求(直接或透過 [LLM 閘道](/docs/zh-TW/llm-gateway))失敗並出現 `401` 或 `403` 時。

5994* 在傳送對 Anthropic API 的請求之前(直接或透過 LLM gateway),當快取的輸出是協助程式產生後過期的 JWT 時。需要 Claude Code v2.1.246 或更新版本。6023* 在傳送對 Anthropic API 的請求之前(直接或透過 LLM 閘道),當快取的輸出是協助程式產生後過期的 JWT 時。需要 Claude Code v2.1.246 或更新版本。

5995 6024 

5996最後兩種情況僅在協助程式的輸出是 Claude Code 傳送的認證且未設定 `ANTHROPIC_AUTH_TOKEN` 時適用。6025最後兩種情況僅在協助程式的輸出是 Claude Code 傳送的憑證且未設定 `ANTHROPIC_AUTH_TOKEN` 時適用。

5997 6026 

5998在互動式工作階段中,當命令來自專案或本機設定時,Claude Code 在您接受工作區信任提示之前不會執行它。請參閱[認證管理](/docs/zh-TW/authentication#credential-management)。6027在互動式工作階段中,當命令來自專案或本機設定時,Claude Code 在您接受工作區信任提示之前不會執行它。請參閱[憑證管理](/docs/zh-TW/authentication#credential-management)。

5999 6028 

6000<h3 id="awsauthrefresh">6029<h3 id="awsauthrefresh">

6001 `awsAuthRefresh`6030 `awsAuthRefresh`

6002</h3>6031</h3>

6003 6032 

6004執行您自己的命令(例如 `aws sso login`),以在 Claude Code 對 [Amazon Bedrock](/docs/zh-TW/amazon-bedrock) 的認證停止運作時重新整理 `.aws` 目錄中的認證。Claude Code 首先根據 STS 檢查目前認證,僅在該檢查失敗時執行命令,然後讀取重新整理的 `.aws` 目錄。6033執行您自己的命令(例如 `aws sso login`),以在 Claude Code 對 [Amazon Bedrock](/docs/zh-TW/amazon-bedrock) 的憑證停止運作時重新整理 `.aws` 目錄中的憑證。Claude Code 首先根據 STS 檢查目前憑證,僅在該檢查失敗時執行命令,然後讀取重新整理的 `.aws` 目錄。

6034 

6035當使用相同命令和憑證的多個 Claude Code 程序(例如不同的終端機或 IDE 視窗)同時檢查失敗時,由一個程序執行命令,其餘程序會等待該次執行,而不會各自啟動自己的執行。已等待 60 秒且有請求待處理的程序會自行執行命令。若要關閉此行為,請將 [`CLAUDE_CODE_DISABLE_AUTH_REFRESH_LOCK`](/docs/zh-TW/env-vars) 設定為 `1`。

6005 6036 

6006* **範圍**:[`任何檔案`](#scopes)6037* **範圍**:[`任何檔案`](#scopes)

6007* **類型**:字串,shell 命令列6038* **類型**:字串,shell 命令列

6008* **預設**:未設定,所以 Claude Code 不為您重新整理 AWS 認證6039* **預設**:未設定,所以 Claude Code 不為您重新整理 AWS 憑證

6009 6040 

6010```json settings.json theme={null}6041```json settings.json theme={null}

6011{6042{


6013}6044}

6014```6045```

6015 6046 

6016當您的重新整理流程寫入 `.aws` 時使用此金鑰;當它改為列印認證時使用 [`awsCredentialExport`](#awscredentialexport)。請參閱[進階認證設定](/docs/zh-TW/amazon-bedrock#advanced-credential-configuration)。6047當您的重新整理流程寫入 `.aws` 時使用此金鑰;當它改為列印憑證時使用 [`awsCredentialExport`](#awscredentialexport)。請參閱[進階憑證設定](/docs/zh-TW/amazon-bedrock#advanced-credential-configuration)。

6017 6048 

6018<h3 id="awscredentialexport">6049<h3 id="awscredentialexport">

6019 `awsCredentialExport`6050 `awsCredentialExport`

6020</h3>6051</h3>

6021 6052 

6022執行您自己的命令,該命令將 AWS 認證列印為 JSON,以便 Claude Code 可以使用不存在於 `.aws` 目錄中的認證呼叫 [Amazon Bedrock](/docs/zh-TW/amazon-bedrock)。Claude Code 接受 `aws sts` 輸出形狀和平面 `aws configure export-credentials` 形狀,並將認證範圍限定於其自己的 Bedrock 用戶端,因此 Claude Code 執行的 shell 命令仍然會看到您的環境認證。6053執行您自己的命令,該命令將 AWS 憑證列印為 JSON,以便 Claude Code 可以使用不存在於 `.aws` 目錄中的憑證呼叫 [Amazon Bedrock](/docs/zh-TW/amazon-bedrock)。Claude Code 接受 `aws sts` 輸出形狀和平面 `aws configure export-credentials` 形狀,並將憑證範圍限定於其自己的 Bedrock 用戶端,因此 Claude 執行的 shell 命令仍然會看到您的環境憑證。

6023 6054 

6024* **範圍**:[`任何檔案`](#scopes)6055* **範圍**:[`任何檔案`](#scopes)

6025* **類型**:字串,shell 命令列6056* **類型**:字串,shell 命令列

6026* **預設**:未設定,所以 Claude Code 使用環境 AWS 認證鏈6057* **預設**:未設定,所以 Claude Code 使用環境 AWS 憑證鏈

6027 6058 

6028```json settings.json theme={null}6059```json settings.json theme={null}

6029{6060{


6031}6062}

6032```6063```

6033 6064 

6034與 [`awsAuthRefresh`](#awsauthrefresh) 不同,Claude Code 在設定此命令時總是執行它,而不先檢查環境認證。請參閱[進階認證設定](/docs/zh-TW/amazon-bedrock#advanced-credential-configuration)。6065與 [`awsAuthRefresh`](#awsauthrefresh) 不同,Claude Code 在設定此命令時總是執行它,而不先檢查環境憑證。請參閱[進階憑證設定](/docs/zh-TW/amazon-bedrock#advanced-credential-configuration)。

6035 6066 

6036<h3 id="forceloginmethod">6067<h3 id="forceloginmethod">

6037 `forceLoginMethod`6068 `forceLoginMethod`


6052}6083}

6053```6084```

6054 6085 

6055每個第一方登入路徑都適用限制,包括 [VS Code 擴充功能](/docs/zh-TW/vs-code)、Agent SDK、`claude setup-token` 和 `/install-github-app`,除了終端機的互動式登入畫面(透過 `/login` 或首次執行上線到達),它預先選擇方法而不強制執行。在 v2.1.212 之前,僅終端機登入適用它。請參閱[限制登入到您的組織](/docs/zh-TW/authentication#restrict-login-to-your-organization),了解每個登入路徑、環境認證和第三方提供者的處理方式。6086每個第一方登入路徑都適用限制,包括 [VS Code 擴充功能](/docs/zh-TW/vs-code)、Agent SDK、`claude setup-token` 和 `/install-github-app`,除了終端機的互動式登入畫面(透過 `/login` 或首次執行上線到達),它預先選擇方法而不強制執行。在 v2.1.212 之前,僅終端機登入適用它。請參閱[限制登入到您的組織](/docs/zh-TW/authentication#restrict-login-to-your-organization),了解每個登入路徑、環境憑證和第三方提供者的處理方式。

6056 6087 

6057當機器上的受管來源設定 `"gateway"` 時,Claude Code 不使用剩餘登入、API 金鑰或 `apiKeyHelper` 認證。請參閱[管理員原則需要 Cloud gateway 登入](/docs/zh-TW/errors#administrator-policy-requires-a-cloud-gateway-sign-in),了解每個原則產生的訊息。如果您透過 `CLAUDE_CODE_USE_BEDROCK` 或類似環境變數選擇 cloud 提供者,工作階段不需要 gateway 登入。在 v2.1.261 之前,Claude Code 在這些機器上使用剩餘登入。6088當機器上的受管來源設定 `"gateway"` 時,Claude Code 不使用剩餘登入、API 金鑰或 `apiKeyHelper` 憑證。請參閱[管理員原則需要 Cloud gateway 登入](/docs/zh-TW/errors#administrator-policy-requires-a-cloud-gateway-sign-in),了解每一種情況產生的訊息。如果您透過 `CLAUDE_CODE_USE_BEDROCK` 或類似環境變數選擇 cloud 提供者,工作階段不需要 gateway 登入。在 v2.1.261 之前,Claude Code 在這些機器上使用剩餘登入。

6058 6089 

6059<h3 id="forcelogingatewayurl">6090<h3 id="forcelogingatewayurl">

6060 `forceLoginGatewayUrl`6091 `forceLoginGatewayUrl`


6062 6093 

6063設定 `/login` Cloud gateway 畫面連線到的 gateway URL,以便人員可以到達您的 [cloud gateway](/docs/zh-TW/claude-apps-gateway) 而無需輸入其位址。該畫面沒有 URL 欄位:設定此金鑰時,它會顯示您的 gateway URL,並在人員按下 Enter 時連線;不設定時,它會告訴他們聯絡其 IT 管理員。6094設定 `/login` Cloud gateway 畫面連線到的 gateway URL,以便人員可以到達您的 [cloud gateway](/docs/zh-TW/claude-apps-gateway) 而無需輸入其位址。該畫面沒有 URL 欄位:設定此金鑰時,它會顯示您的 gateway URL,並在人員按下 Enter 時連線;不設定時,它會告訴他們聯絡其 IT 管理員。

6064 6095 

6065此金鑰或 `forceLoginMethod: "gateway"` 中的任一個都會使機器僅限 gateway,因此 `/login` 在 Cloud gateway 畫面上開啟,沒有登入方法選擇器。請參閱[管理員原則需要 Cloud gateway 登入](/docs/zh-TW/errors#administrator-policy-requires-a-cloud-gateway-sign-in),了解剩餘第一方登入或 API 金鑰會發生什麼。設定兩個金鑰,以便畫面連線而不是顯示錯誤。6096此金鑰或 `forceLoginMethod: "gateway"` 中的任一個都會使機器僅限 gateway,但使用 `CLAUDE_CODE_USE_*` 選擇雲端提供者的工作階段除外。`/login` 接著會在 Cloud gateway 畫面上開啟,沒有登入方法選擇器。請參閱[管理員原則需要 Cloud gateway 登入](/docs/zh-TW/errors#administrator-policy-requires-a-cloud-gateway-sign-in),了解剩餘第一方登入或 API 金鑰會發生什麼。設定兩個金鑰,以便畫面連線而不是顯示錯誤。

6066 6097 

6067* **範圍**:[`受管`](#scopes)。僅從機器上的來源讀取:`managed-settings.json`、macOS plist 或 Windows HKLM 登錄,或原則協助程式。Claude Code 在 HKCU 和伺服器受管設定中忽略它。6098* **範圍**:[`受管`](#scopes)。僅從機器上的來源讀取:`managed-settings.json`、macOS plist 或 Windows HKLM 登錄,或原則協助程式。Claude Code 在 HKCU 和伺服器受管設定中忽略它。

6068* **類型**:字串,包括配置的完整 URL6099* **類型**:字串,包括協定(scheme)的完整 URL

6069* **預設**:未設定,所以 Cloud gateway 畫面顯示錯誤,告訴人員聯絡其 IT 管理員6100* **預設**:未設定,所以 Cloud gateway 畫面顯示錯誤,告訴人員聯絡其 IT 管理員

6070 6101 

6071```json managed-settings.json theme={null}6102```json managed-settings.json theme={null}


6080 `forceLoginOrgUUID`6111 `forceLoginOrgUUID`

6081</h3>6112</h3>

6082 6113 

6083從受管來源,要求 claude.ai 帳戶登入屬於一個 Anthropic 組織(以單一 UUID 給定)或屬於多個組織(以陣列給定)。從任何設定檔,Claude Code 也使用單一 UUID 在 claude.ai 或 Claude Console 登入期間預先選擇該組織,並為陣列預先選擇任何內容。如果您在任何設定檔中設定金鑰,Claude Code 也會停止在該檔案適用的工作階段中提供[無金鑰 Console 登入](/docs/zh-TW/authentication#sign-in-without-an-api-key),並改為建立 API 金鑰。6114從受管來源,要求 claude.ai 帳戶登入屬於一個 Anthropic 組織(以單一 UUID 給定)或屬於多個組織(以陣列給定)。從任何設定檔,Claude Code 也使用單一 UUID 在 claude.ai 或 Claude Console 登入期間預先選擇該組織,而對於陣列則不預先選擇任何組織。如果您在任何設定檔中設定金鑰,Claude Code 也會停止在該檔案適用的工作階段中提供[無金鑰 Console 登入](/docs/zh-TW/authentication#sign-in-without-an-api-key),並改為建立 API 金鑰。

6084 6115 

6085* **範圍**:[`任何檔案`](#scopes)。僅受管來源強制執行限制;任何其他設定檔中的單一 UUID 在登入期間預先選擇組織而不限制它。6116* **範圍**:[`任何檔案`](#scopes)。僅受管來源強制執行限制;任何其他設定檔中的單一 UUID 在登入期間預先選擇組織而不限制它。

6086* **類型**:字串,一個 UUID,或字串陣列,多個 UUID6117* **類型**:字串,一個 UUID,或字串陣列,多個 UUID


6096 6127 

6097如果受管來源設定空陣列或 Claude Code 無法解析的值,Claude Code 會使用誤設定訊息阻止每個登入。6128如果受管來源設定空陣列或 Claude Code 無法解析的值,Claude Code 會使用誤設定訊息阻止每個登入。

6098 6129 

6099請參閱[限制登入到您的組織](/docs/zh-TW/authentication#restrict-login-to-your-organization),了解 Claude Code 如何處理 Claude Console 登入、其他登入路徑和環境認證。6130請參閱[限制登入到您的組織](/docs/zh-TW/authentication#restrict-login-to-your-organization),了解 Claude Code 如何處理 Claude Console 登入、其他登入路徑和環境憑證。

6100 6131 

6101<h3 id="gatewayinternalnetworks">6132<h3 id="gatewayinternalnetworks">

6102 `gatewayInternalNetworks`6133 `gatewayInternalNetworks`


6126 6157 

6127執行您自己的命令,以在 Claude Code 發現 Google Cloud Application Default Credentials 已過期或無法載入時重新整理它們,以便 [Google Cloud 的 Agent Platform](/docs/zh-TW/google-vertex-ai) 請求在您不手動重新驗證的情況下繼續運作。6158執行您自己的命令,以在 Claude Code 發現 Google Cloud Application Default Credentials 已過期或無法載入時重新整理它們,以便 [Google Cloud 的 Agent Platform](/docs/zh-TW/google-vertex-ai) 請求在您不手動重新驗證的情況下繼續運作。

6128 6159 

6160當使用相同命令和憑證的多個 Claude Code 程序(例如不同的終端機或 IDE 視窗)同時發現憑證已過期時,由一個程序執行命令,其餘程序會等待該次執行,而不會各自啟動自己的執行。已等待 60 秒且有請求待處理的程序會自行執行命令。若要關閉此行為,請將 [`CLAUDE_CODE_DISABLE_AUTH_REFRESH_LOCK`](/docs/zh-TW/env-vars) 設定為 `1`。

6161 

6129* **範圍**:[`任何檔案`](#scopes)6162* **範圍**:[`任何檔案`](#scopes)

6130* **類型**:字串,shell 命令列6163* **類型**:字串,shell 命令列

6131* **預設**:未設定,所以 Claude Code 的認證錯誤會告訴您自己執行 `gcloud auth application-default login`6164* **預設**:未設定,所以 Claude Code 的憑證錯誤會告訴您自己執行 `gcloud auth application-default login`

6132 6165 

6133```json settings.json theme={null}6166```json settings.json theme={null}

6134{6167{


6136}6169}

6137```6170```

6138 6171 

6139請參閱[進階認證設定](/docs/zh-TW/google-vertex-ai#advanced-credential-configuration)。6172請參閱[進階憑證設定](/docs/zh-TW/google-vertex-ai#advanced-credential-configuration)。

6140 6173 

6141<h3 id="otelheadershelper">6174<h3 id="otelheadershelper">

6142 `otelHeadersHelper`6175 `otelHeadersHelper`


6154}6187}

6155```6188```

6156 6189 

6157使用 [`CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS`](/docs/zh-TW/env-vars) 設定重新整理間隔。請參閱[動態標頭](/docs/zh-TW/monitoring-usage#dynamic-headers),了解指令碼需求以及 Claude Code 報告失敗協助程式的位置。6190使用 [`CLAUDE_CODE_OTEL_HEADERS_HELPER_DEBOUNCE_MS`](/docs/zh-TW/env-vars) 設定重新整理間隔。請參閱[動態標頭](/docs/zh-TW/monitoring-usage#dynamic-headers),了解指令碼需求以及協助程式失敗時會發生什麼。

6158 6191 

6159<h2 id="updates-and-versioning">6192<h2 id="updates-and-versioning">

6160 更新和版本控制6193 更新和版本控制

setup.md +16 −1

Details

316 進階安裝選項316 進階安裝選項

317</h2>317</h2>

318 318 

319這些選項適用於版本固定、Linux 套件管理員、npm 和驗證二進位檔案完整性。319這些選項適用於版本固定、Linux 套件管理員、npm、網路儲存裝置和驗證二進位檔案完整性。

320 320 

321<h3 id="install-a-specific-version">321<h3 id="install-a-specific-version">

322 安裝特定版本322 安裝特定版本


512 請勿使用 `sudo npm install -g`,因為這可能導致權限問題和安全風險。如果您遇到權限錯誤,請參閱[疑難排解權限錯誤](/docs/zh-TW/troubleshoot-install#permission-errors-during-installation)。512 請勿使用 `sudo npm install -g`,因為這可能導致權限問題和安全風險。如果您遇到權限錯誤,請參閱[疑難排解權限錯誤](/docs/zh-TW/troubleshoot-install#permission-errors-during-installation)。

513</Warning>513</Warning>

514 514 

515<h3 id="install-on-network-storage">

516 在網路儲存裝置上安裝

517</h3>

518 

519執行中的工作階段在運作時會從磁碟讀取 Claude Code 可執行檔的部分內容,而不僅是在啟動時讀取。如果該檔案在工作階段期間變得無法讀取,例如因為它在網路儲存裝置上被截斷或刪除,工作階段就會當機。在 Linux 上,您的 shell 會將此回報為 `Bus error`。

520 

521當家目錄位於網路儲存裝置上時,例如掛載在多台機器上的 NFS 家目錄,請妥善規劃安裝方式,讓每個工作階段的可執行檔在工作階段結束前都保持可讀取:

522 

523* **安裝在本機磁碟上**:將二進位檔案放在每台機器的本機檔案系統上,例如使用 [Linux 套件管理員](#install-with-linux-package-managers)或您自己的部署工具。個別使用者的 npm prefix 和原生安裝程式的預設 `~/.local/share/claude/versions/` 目錄都位於家目錄中。

524* **將每個版本保存在各自的目錄中**:使用 `npm install -g` 就地升級 npm 安裝會刪除先前的二進位檔案。在多台機器共用的儲存裝置上,這會移除其他機器上的工作階段仍在執行的檔案。請將每個新版本安裝在舊版本旁邊,再將使用者移至新版本。

525* **僅在沒有任何機器可能仍在執行舊版本時才將其刪除**:一台機器無法看到在其他機器上執行的程序,因此在刪除前檢查執行中的程序並不足夠。

526* **關閉 Claude Code 本身的更新**:設定 [`DISABLE_UPDATES`](/docs/zh-TW/env-vars),並使用您自己的工具安裝新版本。否則,某台機器上 npm 安裝的自動更新會執行相同的就地升級,並移除其他機器上工作階段正在執行的二進位檔案。僅設定 `DISABLE_AUTOUPDATER` 並不足夠,因為使用者仍可執行 `claude update` 和 `claude install`。請參閱[停用自動更新](#disable-auto-updates)。

527 

528原生安裝程式會自行從 `~/.local/share/claude/versions/` 刪除舊版本,當該目錄位於共用儲存裝置上時,這一點很重要。除了啟動器指向的版本以及同一台機器上任何工作階段正在執行的版本之外,它會保留最新的兩個版本並刪除其餘版本。另一台機器上正在執行已刪除版本的工作階段會失去其二進位檔案。使用[自訂啟動器](#auto-updates)時,Claude Code 會保留每個已安裝的版本,並將清理工作交由您處理。

529 

515<h3 id="binary-integrity-and-code-signing">530<h3 id="binary-integrity-and-code-signing">

516 二進位檔案完整性和程式碼簽署531 二進位檔案完整性和程式碼簽署

517</h3>532</h3>

skills.md +23 −5

Details

56 56 

57Claude 只有在引導執行出錯時(例如失敗的命令或缺少的步驟)才會編輯記錄的檔案,因此您可以提交檔案而無需每個工作階段的差異。在 v2.1.205 之前,捆綁技能告訴 Claude 要折疊執行學到的任何內容,這導致頻繁的合併衝突。57Claude 只有在引導執行出錯時(例如失敗的命令或缺少的步驟)才會編輯記錄的檔案,因此您可以提交檔案而無需每個工作階段的差異。在 v2.1.205 之前,捆綁技能告訴 Claude 要折疊執行學到的任何內容,這導致頻繁的合併衝突。

58 58 

59<h3 id="run-your-checks-before-each-commit">

60 在每次提交前執行檢查

61</h3>

62 

63當工作階段開始時已有名為 `verify` 或 `simplify` 的 skill,Claude Code 的提交指示會告訴 Claude 在每次提交之前執行它,但文件或測試的變更除外。這需要 Claude Code v2.1.286 或更新版本。當工作階段開始時符合以下條件,Claude 就會收到該指示:

64 

65* **位置**:該 skill 從企業、個人、專案或額外目錄[位置](#where-skills-live)載入,或來自具有該名稱的 `.claude/commands/` 檔案。`/verify` 在您儲存庫根目錄記錄的配方是專案 skill,因此算在內。隨附的 `/verify` 和 `/simplify`、外掛 skill,以及來自您 claude.ai 帳戶的 skill 不算在內。

66* **調用**:Claude 可以調用該 skill。如果您已[阻止 Claude 調用它](#control-who-invokes-a-skill),例如使用 `disable-model-invocation: true`,Claude 就不會收到該指示。

67* **Git 指示**:您尚未關閉 [`includeGitInstructions`](/docs/zh-TW/settings-reference#includegitinstructions)。關閉它會將此指示連同其餘內建的提交和 PR 指示一併移除。

68 

59<h3 id="work-on-claude-api-projects">69<h3 id="work-on-claude-api-projects">

60 在 Claude API 專案上工作70 在 Claude API 專案上工作

61</h3>71</h3>


290 300 

291Claude Code 對同步技能的前置資料應用兩個規則:301Claude Code 對同步技能的前置資料應用兩個規則:

292 302 

293* Claude Code 在每種工作階段中都遵守前置資料,因此 `allowed-tools` 授予會通過正常的[權限流程](/docs/zh-TW/permissions)。303* frontmatter 在每種工作階段中都會生效,因此 `allowed-tools` 授予會經過正常的[權限流程](/docs/zh-TW/permissions)。如果您的組織設定了 `allowManagedPermissionRulesOnly`,該授予[不會生效](#when-only-managed-permission-rules-apply)。

294* Claude Code 清理技能提供的顯示文字,例如其描述。它移除控制字元,在到達 Claude 的文字(例如描述)中,它也會逸出角括號,以便文字無法模仿 Claude Code 的內部格式。此清理需要 Claude Code v2.1.228 或更新版本。304* Claude Code 清理技能提供的顯示文字,例如其描述。它移除控制字元,在到達 Claude 的文字(例如描述)中,它也會逸出角括號,以便文字無法模仿 Claude Code 的內部格式。此清理需要 Claude Code v2.1.228 或更新版本。

295 305 

296<h4 id="how-claude-code-handles-the-body-of-a-synced-skill">306<h4 id="how-claude-code-handles-the-body-of-a-synced-skill">


603 613 

604`allowed-tools` 欄位在調用 skill 的回合中授予列出的工具的許可,因此 Claude 可以使用它們而無需提示您批准。當您發送下一條訊息時,授予清除,即使 skill 內容[保持在上下文中](#skill-content-lifecycle);再次調用 skill 為該回合重新應用它。它不限制哪些工具可用:每個工具保持可呼叫,您的[許可設定](/docs/zh-TW/permissions)仍然管理未列出的工具。要為整個工作階段而不是單個回合預先批准工具,請改為向這些許可設定添加允許規則。614`allowed-tools` 欄位在調用 skill 的回合中授予列出的工具的許可,因此 Claude 可以使用它們而無需提示您批准。當您發送下一條訊息時,授予清除,即使 skill 內容[保持在上下文中](#skill-content-lifecycle);再次調用 skill 為該回合重新應用它。它不限制哪些工具可用:每個工具保持可呼叫,您的[許可設定](/docs/zh-TW/permissions)仍然管理未列出的工具。要為整個工作階段而不是單個回合預先批准工具,請改為向這些許可設定添加允許規則。

605 615 

606工作區信任不限制此欄位。Claude Code 在您或 Claude 調用 skill 時應用專案 skill 的 `allowed-tools`,包括在您從未信任的資料夾中的 `-p` 運行中。Skill 可以授予自己廣泛的工具訪問,因此在您在那裡運行 Claude Code 之前檢查簽入到儲存庫的 skills 的 `allowed-tools`。616工作區信任不限制此欄位。即使在您從未信任的資料夾中的 `-p` 運行中,Claude Code 也會應用專案 skill 的 `allowed-tools`。Skill 可以授予自己廣泛的工具存取權,因此在您在那裡運行 Claude Code 之前,請檢查簽入到儲存庫的 skills 的 `allowed-tools`。若要在整個組織中對儲存庫 skills 停用此欄位,請參閱[僅套用受管權限規則時](#when-only-managed-permission-rules-apply)。

607 617 

608此 skill 讓 Claude 在您調用它時運行 git 命令而無需每次使用批准:618此 skill 讓 Claude 在您調用它時運行 git 命令而無需每次使用批准:

609 619 


618 628 

619要在 skill 處於活動狀態時從 Claude 的可用工具池中移除工具,在 skill 的 frontmatter 中的 `disallowed-tools` 中列出它們。當您發送下一條訊息時,限制清除。與拒絕規則一樣,當任何其他工具保持時,該欄位無法移除 [`EndConversation`](/docs/zh-TW/tools-reference#endconversation-tool-behavior)。要在所有 skills 和提示中阻止工具,在您的[許可設定](/docs/zh-TW/permissions)中添加拒絕規則。629要在 skill 處於活動狀態時從 Claude 的可用工具池中移除工具,在 skill 的 frontmatter 中的 `disallowed-tools` 中列出它們。當您發送下一條訊息時,限制清除。與拒絕規則一樣,當任何其他工具保持時,該欄位無法移除 [`EndConversation`](/docs/zh-TW/tools-reference#endconversation-tool-behavior)。要在所有 skills 和提示中阻止工具,在您的[許可設定](/docs/zh-TW/permissions)中添加拒絕規則。

620 630 

631<h4 id="when-only-managed-permission-rules-apply">

632 僅套用受管權限規則時

633</h4>

634 

635當您的組織在受管設定中設定 `allowManagedPermissionRulesOnly` 時,Claude Code 會忽略專案和個人 skills 中的 `allowed-tools`,以及[該設定項目所列的其他來源](/docs/zh-TW/settings-reference#allowmanagedpermissionrulesonly)中的 `allowed-tools`。這需要 Claude Code v2.1.282 或更新版本。

636 

637受影響的 skill 所列出的工具會改為經過您組織的受管規則和一般權限提示。執行 `/status` 可列出在此工作階段中至今 Claude Code 已忽略其 `allowed-tools` 的每個 skill。Skill 中沒有任何受管規則允許的注入命令,會遵循[注入命令的權限檢查](#permission-checks-on-injected-commands)。

638 

621<h3 id="pass-arguments-to-skills">639<h3 id="pass-arguments-to-skills">

622 將引數傳遞給 skills640 將引數傳遞給 skills

623</h3>641</h3>


766 784 

767注入命令在技能呈現時永遠不會提示權限。Claude Code 首先根據您的[權限規則](/docs/zh-TW/permissions)檢查每一個。拒絕規則匹配的命令會中止呼叫,顯示 `Shell command permission check failed for pattern "..."`。785注入命令在技能呈現時永遠不會提示權限。Claude Code 首先根據您的[權限規則](/docs/zh-TW/permissions)檢查每一個。拒絕規則匹配的命令會中止呼叫,顯示 `Shell command permission check failed for pattern "..."`。

768 786 

769在[自動模式](/docs/zh-TW/permission-modes#eliminate-prompts-with-auto-mode)之外,當命令的權限檢查返回除允許以外的任何內容時,Claude Code 會中止呼叫。這包括通常會詢問您的規則。若要防止不匹配的命令在此處中止,請使用 [`allowed-tools`](#pre-approve-tools-for-a-skill) 預先批准它。拒絕和詢問規則仍會覆寫 `allowed-tools`。請參閱[管理權限](/docs/zh-TW/permissions#manage-permissions)。787在[自動模式](/docs/zh-TW/permission-modes#eliminate-prompts-with-auto-mode)之外,當命令的權限檢查返回除允許以外的任何內容時,Claude Code 會以相同的錯誤中止呼叫。這包括通常會詢問您的規則。若要防止不匹配的命令在此處中止,請使用 [`allowed-tools`](#pre-approve-tools-for-a-skill) 預先核准它。如果您的組織將權限規則限制於受管設定,請參閱[僅套用受管權限規則時](#when-only-managed-permission-rules-apply)。拒絕和詢問規則仍會覆寫 `allowed-tools`。請參閱[管理權限](/docs/zh-TW/permissions#manage-permissions)。

770 788 

771在自動模式中,原本需要您批准的命令不會中止呼叫。技能會載入一個指示,告訴 Claude 先執行命令,然後 Claude 自己的呼叫會通過[自動模式的常規檢查](/docs/zh-TW/permission-modes#how-the-classifier-evaluates-actions)。在設定 `agent` 的[分叉技能](#run-skills-in-a-subagent)中,以及在 Claude 沒有[執行注入命令的 shell 工具](#how-injected-commands-run)的工作階段中,呼叫仍會中止。789在自動模式中,原本需要您批准的命令不會中止呼叫。技能會載入一個指示,告訴 Claude 先執行命令,然後 Claude 自己的呼叫會通過[自動模式的常規檢查](/docs/zh-TW/permission-modes#how-the-classifier-evaluates-actions)。在設定 `agent` 的[分叉技能](#run-skills-in-a-subagent)中,以及在 Claude 沒有[執行注入命令的 shell 工具](#how-injected-commands-run)的工作階段中,呼叫仍會中止。

772 790 


840 限制 Claude 的技能存取858 限制 Claude 的技能存取

841</h3>859</h3>

842 860 

843預設情況下,Claude 可以呼叫任何沒有設定 `disable-model-invocation: true` 的技能。定義 `allowed-tools` 的技能會授予 Claude 在呼叫技能的回合期間存取這些工具而無需逐次批准的權限;當您傳送下一條訊息時,授予會清除。您的[權限設定](/docs/zh-TW/permissions)仍然控制所有其他工具的基線批准行為。一些內建命令也可透過 Skill 工具使用,包括 `/init` 和 `/security-review`。其他內建命令如 `/compact` 則不可用。861預設情況下,Claude 可以呼叫任何沒有設定 `disable-model-invocation: true` 的 skill。定義 [`allowed-tools`](#pre-approve-tools-for-a-skill) 的 skill 會授予 Claude 在呼叫 skill 的回合期間存取這些工具而無需逐次核准的權限;當您傳送下一條訊息時,授予會清除。您的[權限設定](/docs/zh-TW/permissions)仍然控制所有其他工具的基線核准行為。一些內建命令也可透過 Skill 工具使用,包括 `/init` 和 `/security-review`。其他內建命令如 `/compact` 則不可用。

844 862 

845控制 Claude 可以呼叫哪些技能的三種方式:863控制 Claude 可以呼叫哪些技能的三種方式:

846 864 


953 使用 skill-creator 運行評估971 使用 skill-creator 運行評估

954</h3>972</h3>

955 973 

956[`skill-creator` 外掛](https://github.com/anthropics/claude-plugins-official/tree/main/plugins/skill-creator)在 Claude Code 內自動化比較迴圈。從官方市場安裝它:974[`skill-creator` 外掛](https://github.com/anthropics/claude-plugins-official/tree/main/plugins/skill-creator)在 Claude Code 內自動化比較迴圈。在 VS Code 擴充功能或桌面應用程式中,請依照[安裝外掛](/docs/zh-TW/plugins/install#install-a-plugin)從官方市集安裝它。在終端機中,執行 `claude` 啟動 Claude Code,然後在其提示字元中輸入:

957 975 

958```text theme={null}976```text theme={null}

959/plugin install skill-creator@claude-plugins-official977/plugin install skill-creator@claude-plugins-official

sub-agents.md +15 −10

Details

38 <Tab title="Explore">38 <Tab title="Explore">

39 一個快速、唯讀的代理,針對搜尋和分析程式碼庫進行最佳化。39 一個快速、唯讀的代理,針對搜尋和分析程式碼庫進行最佳化。

40 40 

41 * **Model**:繼承自主要對話,在 Claude API 上限制為 Opus,因此 Explore 永遠不會在比您已為工作階段選擇的模型更昂貴的模型上執行,除非您設定 `CLAUDE_CODE_SUBAGENT_MODEL` 並[強制將其套用至每個 subagent](#run-every-subagent-on-one-model)41 * **Model**:主要對話的模型。當主要對話在 Fable 上執行時,Explore 的模型取決於您的連線方式:

42 * 使用 Claude 訂閱、Anthropic Console 帳戶,或透過 `ANTHROPIC_BASE_URL` 連線的 [LLM 閘道](/docs/zh-TW/llm-gateway)時,Explore 會在 [`opus` 別名](/docs/zh-TW/model-config#model-aliases)所解析的 Opus 模型上執行。

43 * 在 Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry、[AWS 上的 Claude Platform](/docs/zh-TW/claude-platform-on-aws) 或 [Claude apps 閘道](/docs/zh-TW/claude-apps-gateway)上,Explore 會維持使用主要對話的模型。

42 * **Tools**:唯讀工具;Write 和 Edit 被拒絕44 * **Tools**:唯讀工具;Write 和 Edit 被拒絕

43 * **Purpose**:檔案發現、程式碼搜尋、程式碼庫探索45 * **Purpose**:檔案發現、程式碼搜尋、程式碼庫探索

44 46 

45 自 v2.1.198 起,Explore 繼承主要對話的模型,而不是始終在 Haiku 上執行。在 Claude API 上,繼承的模型限制為 Opus:主要對話在更高層級上會在 Opus 上執行 Explore,而主要對話在 Sonnet 或 Haiku 上會在相同模型上執行 Explore。在任何其他提供者上,例如 [Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 或 AWS 上的 Claude Platform](/docs/zh-TW/third-party-integrations),Explore 直接繼承主要對話的模型。47 一個名為 `Explore` 的[使用者或專案 subagent](#choose-the-subagent-scope) 會覆寫內建的,並保留其自己的 `model` 欄位,因此定義一個具有 `model: haiku` 的 subagent,即可在較低成本的模型上執行探索。若要將單一模型強制套用至每個 subagent(包括 Explore),請參閱[在一個模型上執行每個 subagent](#run-every-subagent-on-one-model)。

46 

47 一個名為 `Explore` 的[使用者或專案 subagent](#choose-the-subagent-scope) 會覆蓋內建的,並保留其自己的 `model` 欄位,因此定義一個具有 `model: haiku` 的以保持探索在較低成本的模型上。

48 48 

49 當 Claude 需要搜尋或理解程式碼庫而不進行更改時,它會委派給 Explore。這樣可以將探索結果保持在主要對話上下文之外。49 當 Claude 需要搜尋或理解程式碼庫而不進行更改時,它會委派給 Explore。這樣可以將探索結果保持在主要對話上下文之外。

50 50 


245**Plugin 子代理**來自您已安裝的 [plugins](/docs/zh-TW/plugins/overview)。它們會自動與您的自訂子代理一起載入,並在 @-mention 預輸入中以其範圍名稱出現。有關建立 plugin 子代理的詳細資訊,請參閱 [plugin 元件參考](/docs/zh-TW/plugins/components#agents)。245**Plugin 子代理**來自您已安裝的 [plugins](/docs/zh-TW/plugins/overview)。它們會自動與您的自訂子代理一起載入,並在 @-mention 預輸入中以其範圍名稱出現。有關建立 plugin 子代理的詳細資訊,請參閱 [plugin 元件參考](/docs/zh-TW/plugins/components#agents)。

246 246 

247<Note>247<Note>

248 出於安全原因,plugin 子代理不支援 `hooks`、`mcpServers` 或 `permissionMode` frontmatter 欄位。從 plugin 載入代理時,這些欄位被忽略。如果您需要它們,請將代理檔案複製到 `.claude/agents/` 或 `~/.claude/agents/`。您也可以在 `settings.json` 或 `settings.local.json` 中新增規則到 [`permissions.allow`](/docs/zh-TW/settings-reference#permissions-allow),但這些規則適用於整個工作階段,而不僅僅是 plugin 子代理。248 基於安全考量,外掛 subagent 不支援 `hooks`、`mcpServers` 或 `permissionMode` frontmatter 欄位。從外掛載入 agent 時,這些欄位會被忽略。如果您需要它們,請將 agent 檔案複製到 `.claude/agents/` 或 `~/.claude/agents/`。您也可以在 `settings.json` 或 `settings.local.json` 中將規則新增到 [`permissions.allow`](/docs/zh-TW/settings-reference#permissions-allow),但這些規則會套用於整個工作階段,而不僅是外掛 subagent。

249 

250 如果您是該外掛的作者,請改為將 hook 放在外掛的 [`hooks/hooks.json`](/docs/zh-TW/plugins/components#hooks) 中,並將 MCP 伺服器放在其 [`.mcp.json`](/docs/zh-TW/plugins/components#mcp-servers) 中一併發布。只要外掛處於啟用狀態,它們就會套用,而不僅限於 subagent 內部。

249</Note>251</Note>

250 252 

251來自任何這些範圍的子代理定義也可用於[代理團隊](/docs/zh-TW/agent-teams#use-subagent-definitions-for-teammates):當生成隊友時,您可以參考子代理類型,Claude Code 會將該定義的部分應用於隊友。請參閱[代理團隊](/docs/zh-TW/agent-teams#use-subagent-definitions-for-teammates)以了解在每個顯示模式中應用哪些部分。253來自任何這些範圍的子代理定義也可用於[代理團隊](/docs/zh-TW/agent-teams#use-subagent-definitions-for-teammates):當生成隊友時,您可以參考子代理類型,Claude Code 會將該定義的部分應用於隊友。請參閱[代理團隊](/docs/zh-TW/agent-teams#use-subagent-definitions-for-teammates)以了解在每個顯示模式中應用哪些部分。


411`CLAUDE_CODE_SUBAGENT_MODEL` 是預設值,因此子代理的定義或 Claude 傳遞的模型仍然優先於它。若要將一個模型應用於每個子代理、[隊友](/docs/zh-TW/agent-teams#specify-teammates-and-models) 和[工作流代理](/docs/zh-TW/workflows),也設定 `CLAUDE_CODE_SUBAGENT_MODEL_FORCE` 為 `1`。需要 Claude Code v2.1.257 或更新版本。413`CLAUDE_CODE_SUBAGENT_MODEL` 是預設值,因此子代理的定義或 Claude 傳遞的模型仍然優先於它。若要將一個模型應用於每個子代理、[隊友](/docs/zh-TW/agent-teams#specify-teammates-and-models) 和[工作流代理](/docs/zh-TW/workflows),也設定 `CLAUDE_CODE_SUBAGENT_MODEL_FORCE` 為 `1`。需要 Claude Code v2.1.257 或更新版本。

412 414 

413* 如果您設定兩個變數,子代理在 `CLAUDE_CODE_SUBAGENT_MODEL` 中的模型上執行。415* 如果您設定兩個變數,子代理在 `CLAUDE_CODE_SUBAGENT_MODEL` 中的模型上執行。

414* 如果您僅設定 `CLAUDE_CODE_SUBAGENT_MODEL_FORCE`,子代理在主對話的模型上執行。416* 如果您只設定 `CLAUDE_CODE_SUBAGENT_MODEL_FORCE`,subagent 會在主對話的模型上執行,但內建的 Explore subagent 例外,它會在[內建 subagent 中為其列出的模型](#built-in-subagents)上執行。

415 417 

416例如,若要在 Haiku 上執行每個子代理,在[設定檔](/docs/zh-TW/settings)的 `env` 區塊中設定兩個變數:418例如,若要在 Haiku 上執行每個子代理,在[設定檔](/docs/zh-TW/settings)的 `env` 區塊中設定兩個變數:

417 419 


426 428 

427若要檢查設定是否生效,在子代理執行時執行 [`/tasks`](/docs/zh-TW/commands)。子代理的列顯示它執行的模型。429若要檢查設定是否生效,在子代理執行時執行 [`/tasks`](/docs/zh-TW/commands)。子代理的列顯示它執行的模型。

428 430 

429當 `CLAUDE_CODE_SUBAGENT_MODEL_FORCE` [開啟](/docs/zh-TW/env-vars)時,Claude Code 忽略每個子代理定義的 `model` 欄位,包括內建 Explore 和 Plan 子代理,Claude 無法在啟動子代理時傳遞模型。兩種子代理仍在主對話的模型上執行:431當 `CLAUDE_CODE_SUBAGENT_MODEL_FORCE` [開啟](/docs/zh-TW/env-vars)時,Claude Code 會忽略 subagent 定義中的 `model` 欄位,且 Claude 在啟動 subagent 時無法傳遞模型。以下 subagent 仍會在主對話的模型上執行:

430 432 

431* [分叉](#fork-the-current-conversation)433* [分叉](#fork-the-current-conversation)

432* [在子代理中執行的技能](/docs/zh-TW/skills#run-skills-in-a-subagent),具有 `model: inherit`434* [在子代理中執行的技能](/docs/zh-TW/skills#run-skills-in-a-subagent),具有 `model: inherit`

433 435 

434當您僅設定 `CLAUDE_CODE_SUBAGENT_MODEL_FORCE` 時,內建 Explore 子代理保持其[模型上限](#built-in-subagents)。

435 

436<h3 id="control-subagent-capabilities">436<h3 id="control-subagent-capabilities">

437 控制子代理功能437 控制子代理功能

438</h3>438</h3>


1255| `x` | 停止執行中的選定 fork,或如果不再執行則關閉其行。在主工作階段行或使用 `Enter` 開啟其文字記錄的 fork 行上,`x` 會改為輸入到提示中 |1255| `x` | 停止執行中的選定 fork,或如果不再執行則關閉其行。在主工作階段行或使用 `Enter` 開啟其文字記錄的 fork 行上,`x` 會改為輸入到提示中 |

1256| `Esc` | 將焦點返回到提示輸入 |1256| `Esc` | 將焦點返回到提示輸入 |

1257 1257 

1258使用 fork 或 subagent 的文字記錄開啟時,後續訊息和 [skills](/docs/zh-TW/skills) 會傳送到該代理,但內建命令仍在您的主要對話中執行。從 v2.1.199 開始,在該檢視中輸入 `/model` 或 `/fast` 會顯示通知,表示它會變更主要對話的模型或快速模式,而不是檢視的代理,而不是以無聲方式執行。1258開啟 fork 或 subagent 的逐字稿時,後續訊息和 [skills](/docs/zh-TW/skills) 會傳送到該 agent,內建命令則會傳送到您的主要對話,並具有以下保護措施:

1259 

1260* `/compact`、`/clear` 和 `/rewind` 會作用於主要對話,因此從此檢視執行其中任一命令之前,Claude Code 會要求您確認。

1261* `/model` 和 `/fast` 會設定主要對話的模型和快速模式,而不是所檢視 agent 的,因此無法從此檢視執行。系統會顯示通知說明原因。

1262 

1263若要讓所檢視的 agent 在其等待的工作完成之前讀取您的訊息,請使用 [`Ctrl+Enter` 或 `Ctrl+X Ctrl+S`](/docs/zh-TW/keybindings#chat-actions) 傳送。該 agent 正在等待的任何可移至[背景](/docs/zh-TW/tools-reference#background-commands)的 shell 命令或 subagent 都會移至背景並繼續執行。當 agent 正在撰寫回應,或正在等待無法移至背景的工作時,它會繼續進行,並在該工作完成後讀取您的訊息。需要 Claude Code v2.1.286 或更新版本。

1259 1264 

1260<h3 id="how-forks-differ-from-other-subagents">1265<h3 id="how-forks-differ-from-other-subagents">

1261 Forks 與其他 subagents 的區別1266 Forks 與其他 subagents 的區別

Details

231 231 

232當前景命令在未完成的情況下達到其逾時時,Claude Code 會將其移至背景而不是停止它,除非命令以 `sleep` 開頭。移動的命令的[時間限制](#time-limit-for-background-commands)從移動時開始計算,前景子代理的移動命令仍然在該子代理的執行結束時停止。232當前景命令在未完成的情況下達到其逾時時,Claude Code 會將其移至背景而不是停止它,除非命令以 `sleep` 開頭。移動的命令的[時間限制](#time-limit-for-background-commands)從移動時開始計算,前景子代理的移動命令仍然在該子代理的執行結束時停止。

233 233 

234設定 [`CLAUDE_CODE_DISABLE_BACKGROUND_TASKS=1`](/docs/zh-TW/env-vars#variables) 會停用自動背景化以及其餘的背景工作功能。234設定 [`CLAUDE_CODE_DISABLE_BACKGROUND_TASKS=1`](/docs/zh-TW/env-vars#variables) 或在 [bare 模式](/docs/zh-TW/headless#start-faster-with-bare-mode)中執行,會停用自動背景化以及其餘的背景任務功能,因此達到逾時的命令會改為停止。

235 235 

236移至背景的命令的結果說明發生了什麼:236移至背景的命令的結果說明發生了什麼:

237 237 


661 661 

662`deny`、`ask` 或 `allow` 中的明確 `WebFetch(domain:...)` 規則優先於預先批准的集合,所以您可以阻止預先批准的域名或要求提示。662`deny`、`ask` 或 `allow` 中的明確 `WebFetch(domain:...)` 規則優先於預先批准的集合,所以您可以阻止預先批准的域名或要求提示。

663 663 

664當 URL 是 claude.ai [artifact](/docs/zh-TW/artifacts) 連結時,Claude Code 也可能會請求核准以讀取 artifact 本身。關於會請求核准的情況,請參閱[讀取與您共用的 artifact](/docs/zh-TW/artifacts#read-an-artifact-shared-with-you)。

665 

664WebFetch 設定一個以 `Claude-User` 開頭的 `User-Agent` 標頭,以及一個 `Accept` 標頭,優先使用 Markdown 而不是 HTML,以便支援內容協商的伺服器可以直接返回 Markdown。666WebFetch 設定一個以 `Claude-User` 開頭的 `User-Agent` 標頭,以及一個 `Accept` 標頭,優先使用 Markdown 而不是 HTML,以便支援內容協商的伺服器可以直接返回 Markdown。

665 667 

666沙箱化命令不會繼承 WebFetch 的內建預先批准文件域名集合。若要讓沙箱化命令無提示地到達域名,請將域名新增到 [`allowedDomains`](/docs/zh-TW/settings-reference#sandbox-network-alloweddomains) 或使用 `WebFetch(domain:...)` 規則允許它,[沙箱也會遵守](/docs/zh-TW/sandboxing#network-isolation)。WebFetch 不會反過來讀取沙箱允許清單,所以將域名新增到沙箱或組織網路允許清單不會阻止 WebFetch 提示它。668沙箱化命令不會繼承 WebFetch 的內建預先批准文件域名集合。若要讓沙箱化命令無提示地到達域名,請將域名新增到 [`allowedDomains`](/docs/zh-TW/settings-reference#sandbox-network-alloweddomains) 或使用 `WebFetch(domain:...)` 規則允許它,[沙箱也會遵守](/docs/zh-TW/sandboxing#network-isolation)。WebFetch 不會反過來讀取沙箱允許清單,所以將域名新增到沙箱或組織網路允許清單不會阻止 WebFetch 提示它。

Details

22| `curl: (23)` 或 `curl: (56) Failure writing output to destination` | [檢查連線或使用替代安裝程式](#curl-56-failure-writing-output-to-destination) |22| `curl: (23)` 或 `curl: (56) Failure writing output to destination` | [檢查連線或使用替代安裝程式](#curl-56-failure-writing-output-to-destination) |

23| Linux 上安裝期間 `Killed`,或 `Installation was killed before it could finish (exit code 137)` | [釋放記憶體或新增交換空間](#install-killed-on-low-memory-linux-servers) |23| Linux 上安裝期間 `Killed`,或 `Installation was killed before it could finish (exit code 137)` | [釋放記憶體或新增交換空間](#install-killed-on-low-memory-linux-servers) |

24| `Raw mode is not supported` 安裝期間 | [重新執行安裝程式](#raw-mode-is-not-supported-during-install) |24| `Raw mode is not supported` 安裝期間 | [重新執行安裝程式](#raw-mode-is-not-supported-during-install) |

25| 安裝期間出現 `EACCES: permission denied` | [修復安裝目錄的權限](#permission-errors-during-installation) |

25| `TLS connect error` 或 `SSL/TLS secure channel` | [更新 CA 憑證](#tls-or-ssl-connection-errors) |26| `TLS connect error` 或 `SSL/TLS secure channel` | [更新 CA 憑證](#tls-or-ssl-connection-errors) |

26| `Failed to fetch version` 或無法連線到下載伺服器 | [檢查網路和代理設定](#check-network-connectivity) |27| `Failed to fetch version` 或無法連線到下載伺服器 | [檢查網路和代理設定](#check-network-connectivity) |

27| `irm is not recognized` 或 `The token '&&' is not a valid statement separator` | [在您的 shell 上使用正確的命令](#wrong-install-command-on-windows) |28| `irm is not recognized` 或 `The token '&&' is not a valid statement separator` | [在您的 shell 上使用正確的命令](#wrong-install-command-on-windows) |


34| `Error loading shared library` | [您的系統的二進位變體錯誤](#linux-musl-or-glibc-binary-mismatch) |35| `Error loading shared library` | [您的系統的二進位變體錯誤](#linux-musl-or-glibc-binary-mismatch) |

35| `Illegal instruction` | [架構或 CPU 指令集不相符](#illegal-instruction) |36| `Illegal instruction` | [架構或 CPU 指令集不相符](#illegal-instruction) |

36| WSL 中的 `cannot execute binary file: Exec format error` | [WSL1 原生二進位回歸](#exec-format-error-on-wsl1) |37| WSL 中的 `cannot execute binary file: Exec format error` | [WSL1 原生二進位回歸](#exec-format-error-on-wsl1) |

38| 工作階段執行期間出現 `Bus error` 或 `oh no: Bun has crashed` | [保持可執行檔可讀取](#bus-error-while-a-session-is-running) |

37| PowerShell 安裝程式完成但找不到 `claude` 或顯示舊版本 | [新增安裝目錄到您的 PATH](#verify-your-path),然後開啟新的終端 |39| PowerShell 安裝程式完成但找不到 `claude` 或顯示舊版本 | [新增安裝目錄到您的 PATH](#verify-your-path),然後開啟新的終端 |

38| macOS 上的 `dyld: Symbol not found`、`dyld: cannot load` 或 `Abort trap` | [二進位不相容](#dyld-cannot-load-on-macos) |40| macOS 上的 `dyld: Symbol not found`、`dyld: cannot load` 或 `Abort trap` | [二進位不相容](#dyld-cannot-load-on-macos) |

39| `claude update` 在 `Checking for updates` 後掛起,或 `claude doctor` 掛起且無輸出 | [移動 shell 設定路徑上的目錄](#claude-update-or-claude-doctor-hangs) |41| `claude update` 在 `Checking for updates` 後掛起,或 `claude doctor` 掛起且無輸出 | [移動 shell 設定路徑上的目錄](#claude-update-or-claude-doctor-hangs) |


295 檢查目錄權限297 檢查目錄權限

296</h3>298</h3>

297 299 

298安裝程式需要對 macOS 和 Linux 上的 `~/.local/bin/` 和 `~/.claude/` 的寫入存取權。在 Windows 上,安裝位置在 `%USERPROFILE%` 下,預設情況下您的使用者可以寫入,所以此部分在那裡很少適用。300因權限而失敗的安裝會指出它無法建立或寫入的路徑。在 Windows 上,安裝會寫入 `%USERPROFILE%` 下,預設情況下您的使用者可以寫入,所以此部分在那裡很少適用。

301 

302在 macOS 和 Linux 上,安裝會寫入以下位置:

303 

304* `~/.claude/downloads/`:安裝命令放置下載的二進位檔的位置

305* `~/.local/bin/`:`claude` 啟動程式

306* `~/.local/share/claude/`:它下載的每個版本

307* `~/.local/state/claude/`:其鎖定檔案

308* `~/.cache/claude/`:暫存的下載

309* [`~/.claude.json`](/docs/zh-TW/claude-directory):您的全域設定檔,安裝程式會在其中記錄安裝方式

310 

311如果您設定了 `XDG_DATA_HOME`、`XDG_STATE_HOME` 或 `XDG_CACHE_HOME`,安裝會改用這些位置來取代 `~/.local/share`、`~/.local/state` 和 `~/.cache`。如果您設定了 [`CLAUDE_CONFIG_DIR`](/docs/zh-TW/env-vars),全域設定檔會位於該目錄下,而不是您的家目錄。

299 312 

300檢查目錄是否可寫入:313檢查目錄是否可寫入:

301 314 


381 394 

382這些都表示安裝 URL 傳回了 HTML 頁面或錯誤狀態,而非安裝指令碼。如果 HTML 頁面顯示「App unavailable in region」,Claude Code 在您的國家/地區不可用。請參閱[支援的國家/地區](https://www.anthropic.com/supported-countries)。395這些都表示安裝 URL 傳回了 HTML 頁面或錯誤狀態,而非安裝指令碼。如果 HTML 頁面顯示「App unavailable in region」,Claude Code 在您的國家/地區不可用。請參閱[支援的國家/地區](https://www.anthropic.com/supported-countries)。

383 396 

384沒有主體的單純 403 通常有相同的原因,但也可能來自公司代理或防火牆阻止下載。如果您在支援的國家/地區但仍然看到 403,在嘗試下面的替代安裝程式前,請先完成[檢查網路連線](#check-network-connectivity),因為這些會連線到相同的主機。397沒有主體的單純 403 通常有相同的原因,但也可能來自公司代理伺服器或防火牆阻止下載。如果您在支援的國家/地區但仍然看到 403,在嘗試下面的替代安裝程式前,請先完成[檢查網路連線](#check-network-connectivity),因為這些會連線到相同的主機。

385 398 

386否則,這可能由於網路問題、區域路由或暫時服務中斷而發生。399否則,這可能由於網路問題、區域路由或暫時服務中斷而發生。

387 400 


401 winget install Anthropic.ClaudeCode414 winget install Anthropic.ClaudeCode

402 ```415 ```

403 416 

404 然後執行 `claude --version` 以確認:命令列印版本號,例如 `2.1.211 (Claude Code)`。如果 shell 報告找不到 `claude`,開啟新的終端視窗並重試:您安裝的工作階段保留其舊的 `PATH`。417 然後執行 `claude --version` 以確認:命令列印版本號,例如 `2.1.211 (Claude Code)`。如果 shell 報告找不到 `claude`,開啟新的終端機視窗並重試:您安裝的工作階段保留其舊的 `PATH`。

405 418 

4062. **幾分鐘後重試**:問題通常是暫時的。等待並再次嘗試原始命令。4192. **幾分鐘後重試**:問題通常是暫時的。等待並再次嘗試原始命令。

407 420 


424 `curl: (56) Failure writing output to destination`437 `curl: (56) Failure writing output to destination`

425</h3>438</h3>

426 439 

427`curl ... | bash` 命令下載指令碼並將其傳送到 Bash 以執行。此錯誤以及相關的 `curl: (23) Failure writing output to destination` 表示 Bash 未收到完整的指令碼。結束代碼 56 表示下載本身被中斷,結束代碼 23 表示 curl 無法將其收到的內容寫入管道,通常是因為 Bash 提前結束。440`curl ... | bash` 命令下載指令碼並將其傳送到 Bash 以執行。此錯誤以及相關的 `curl: (23) Failure writing output to destination` 表示 Bash 未收到完整的指令碼。退出碼 56 表示下載本身被中斷,退出碼 23 表示 curl 無法將其收到的內容寫入管道,通常是因為 Bash 提前結束。

428 441 

429測試您是否可以連線到 `downloads.claude.ai`,請參閱[檢查網路連線](#check-network-connectivity)中的檢查。如果您連線到伺服器,原始失敗可能是間歇性的;重試安裝命令。您也可以[嘗試替代安裝方法](/docs/zh-TW/setup#install-claude-code)。442測試您是否可以連線到 `downloads.claude.ai`,請參閱[檢查網路連線](#check-network-connectivity)中的檢查。如果您連線到伺服器,原始失敗可能是間歇性的;重試安裝命令。您也可以[嘗試替代安裝方法](/docs/zh-TW/setup#install-claude-code)。

430 443 


439brew install --cask claude-code452brew install --cask claude-code

440```453```

441 454 

442如果 Homebrew 安裝的 Claude Code 版本比您預期的舊,通常是相同的過時索引導致的。`claude-code` cask 追蹤穩定通道,通常比最新版本晚約一週;若要取得最新版本,請改為執行 `brew install --cask claude-code@latest`。請參閱[設定發行通道](/docs/zh-TW/setup#configure-release-channel) 以了解兩個 cask 之間的差異。455如果 Homebrew 安裝的 Claude Code 版本比您預期的舊,通常是相同的過時索引導致的。`claude-code` cask 追蹤穩定通道,通常比最新版本晚約一週;若要取得最新版本,請改為執行 `brew install --cask claude-code@latest`。請參閱[設定發布通道](/docs/zh-TW/setup#configure-release-channel) 以了解兩個 cask 之間的差異。

443 456 

444<h3 id="tls-or-ssl-connection-errors">457<h3 id="tls-or-ssl-connection-errors">

445 TLS 或 SSL 連線錯誤458 TLS 或 SSL 連線錯誤

446</h3>459</h3>

447 460 

448錯誤如 `curl: (35) TLS connect error`、`schannel: next InitializeSecurityContext failed`、PowerShell 的 `Could not create SSL/TLS secure channel` 或 PowerShell 的 `Could not establish trust relationship for the SSL/TLS secure channel` 表示 TLS 握手失敗。461以下這類錯誤表示 TLS 握手失敗:

462 

463* `curl: (35) TLS connect error`

464* `schannel: next InitializeSecurityContext failed`

465* PowerShell 的 `Could not create SSL/TLS secure channel`

466* PowerShell 的 `Could not establish trust relationship for the SSL/TLS secure channel`

449 467 

450**解決方案:**468**解決方案:**

451 469 


465 irm https://claude.ai/install.ps1 | iex483 irm https://claude.ai/install.ps1 | iex

466 ```484 ```

467 485 

4683. **檢查代理或防火牆干擾**:執行 TLS 檢查的公司代理可能導致這些錯誤,包括 `unable to get local issuer certificate` 和 `SELF_SIGNED_CERT_IN_CHAIN`。對於安裝步驟,使 install 下載信任您的公司代理的 CA:4863. **檢查代理伺服器或防火牆干擾**:執行 TLS 檢查的公司代理伺服器可能導致這些錯誤,包括 `unable to get local issuer certificate` 和 `SELF_SIGNED_CERT_IN_CHAIN`。對於安裝步驟,使 install 下載信任您的公司代理伺服器的 CA:

469 487 

470 <Tabs>488 <Tabs>

471 <Tab title="macOS/Linux">489 <Tab title="macOS/Linux">


475 </Tab>493 </Tab>

476 494 

477 <Tab title="Windows PowerShell">495 <Tab title="Windows PowerShell">

478 PowerShell 安裝程式透過 .NET 下載,該 .NET 針對 Windows 憑證存放區驗證 TLS。如果代理的 CA 憑證尚未在 Windows 存放區中,請要求您的 IT 團隊新增它,然後執行安裝程式:496 PowerShell 安裝程式透過 .NET 下載,該 .NET 針對 Windows 憑證存放區驗證 TLS。如果代理伺服器的 CA 憑證尚未在 Windows 存放區中,請要求您的 IT 團隊新增它,然後執行安裝程式:

479 497 

480 ```powershell theme={null}498 ```powershell theme={null}

481 irm https://claude.ai/install.ps1 | iex499 irm https://claude.ai/install.ps1 | iex


499 </Tab>517 </Tab>

500 </Tabs>518 </Tabs>

501 519 

502 如果您沒有憑證檔案,請詢問您的 IT 團隊。您也可以嘗試直接連線以確認代理是原因。520 如果您沒有憑證檔案,請詢問您的 IT 團隊。您也可以嘗試直接連線以確認代理伺服器是原因。

503 521 

5044. **在 Windows 上,解決被阻止的撤銷檢查**。錯誤 `CRYPT_E_NO_REVOCATION_CHECK (0x80092012)` 和 `CRYPT_E_REVOCATION_OFFLINE (0x80092013)` 表示 curl 已連線到伺服器,但您的網路阻止了憑證撤銷查詢,這在公司防火牆後面很常見。如果失敗的命令是下載 `install.cmd` 的 `curl`,從命令提示字元重新執行它,並新增 `--ssl-revoke-best-effort`:5224. **在 Windows 上,解決被阻止的撤銷檢查**。錯誤 `CRYPT_E_NO_REVOCATION_CHECK (0x80092012)` 和 `CRYPT_E_REVOCATION_OFFLINE (0x80092013)` 表示 curl 已連線到伺服器,但您的網路阻止了憑證撤銷查詢,這在公司防火牆後面很常見。如果失敗的命令是下載 `install.cmd` 的 `curl`,從命令提示字元重新執行它,並新增 `--ssl-revoke-best-effort`:

505 ```batch theme={null}523 ```batch theme={null}


537 curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd555 curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd

538 ```556 ```

539 557 

540* **`&&` 無效**:您在 PowerShell 中但執行了 CMD 安裝程式命令。使用 PowerShell 安裝程式:558* **`&&` 不是有效的陳述式分隔符號**:您在 PowerShell 中但執行了 CMD 安裝程式命令。使用 PowerShell 安裝程式:

541 ```powershell theme={null}559 ```powershell theme={null}

542 irm https://claude.ai/install.ps1 | iex560 irm https://claude.ai/install.ps1 | iex

543 ```561 ```


552 irm https://claude.ai/install.ps1 | iex570 irm https://claude.ai/install.ps1 | iex

553 ```571 ```

554 572 

555* **命令列印指令碼文字而不是安裝**:您執行了命令的下載部分,但沒有執行它的部分。`irm https://claude.ai/install.ps1` 單獨會將下載的指令碼列印到終端。將其傳送到 `iex` 以執行它:573* **命令列印指令碼文字而不是安裝**:您執行了命令的下載部分,但沒有執行它的部分。`irm https://claude.ai/install.ps1` 單獨會將下載的指令碼列印到終端機。將其傳送到 `iex` 以執行它:

556 574 

557 ```powershell theme={null}575 ```powershell theme={null}

558 irm https://claude.ai/install.ps1 | iex576 irm https://claude.ai/install.ps1 | iex


564 curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd582 curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd

565 ```583 ```

566 584 

567無論您使用哪個安裝程式,確認它有效:開啟新的終端並執行 `claude --version`,它列印版本號,例如 `2.1.211 (Claude Code)`。585無論您使用哪個安裝程式,確認它有效:開啟新的終端機並執行 `claude --version`,它列印版本號,例如 `2.1.211 (Claude Code)`。

568 586 

569<h3 id="running-scripts-is-disabled-on-this-system">587<h3 id="running-scripts-is-disabled-on-this-system">

570 `running scripts is disabled on this system`588 `running scripts is disabled on this system`


606 Windows 上更新後 `claude.exe` 遺失624 Windows 上更新後 `claude.exe` 遺失

607</h3>625</h3>

608 626 

609如果您的終端在 Claude Code 在 Windows 上更新後報告 `'claude' is not recognized`,請檢查 `%USERPROFILE%\.local\bin` 是否仍然包含 `claude.exe`。如果該目錄根本不在您的 PATH 上,請改為參閱[修復您的 PATH](#command-not-found-claude-after-installation)。若要在 Windows 上更新,Claude Code 會將現有的 `claude.exe` 重新命名為備份,並將新版本移動到其位置。如果將新版本移動到位置失敗,Claude Code 也無法重新命名備份,該目錄會保留備份但沒有 `claude.exe`。627如果您的終端機在 Claude Code 在 Windows 上更新後報告 `'claude' is not recognized`,請檢查 `%USERPROFILE%\.local\bin` 是否仍然包含 `claude.exe`。如果該目錄根本不在您的 PATH 上,請改為參閱[修復您的 PATH](#command-not-found-claude-after-installation)。若要在 Windows 上更新,Claude Code 會將現有的 `claude.exe` 重新命名為備份,並將新版本移動到其位置。如果將新版本移動到位置失敗,Claude Code 也無法重新命名備份,該目錄會保留備份但沒有 `claude.exe`。

610 628 

611備份是同一目錄中的檔案,其名稱以 `claude.exe.old.` 開頭,後跟數字時間戳。在 PowerShell 中執行以下命令,將最新的備份重新命名回 `claude.exe`:629備份是同一目錄中的檔案,其名稱以 `claude.exe.old.` 開頭,後跟數字時間戳。在 PowerShell 中執行以下命令,將最新的備份重新命名回 `claude.exe`:

612 630 


682 安裝期間的 `Raw mode is not supported`700 安裝期間的 `Raw mode is not supported`

683</h3>701</h3>

684 702 

685當您的組織的[伺服器管理的設定](/docs/zh-TW/server-managed-settings)包含需要[安全性核准](/docs/zh-TW/server-managed-settings#security-approval-dialogs)的變更時,Claude Code 2.1.246 之前的版本嘗試在 `claude install` 期間顯示核准對話方塊。對話方塊需要 stdin 上的終端。當安裝程式從管道執行 `claude install` 時,如 `curl -fsSL https://claude.ai/install.sh | bash` 所做的,stdin 是管道而不是終端,因此安裝因包含 `Raw mode is not supported` 的錯誤而失敗。703當您的組織的[伺服器管理的設定](/docs/zh-TW/server-managed-settings)包含需要[安全性核准](/docs/zh-TW/server-managed-settings#security-approval-dialogs)的變更時,Claude Code 2.1.246 之前的版本嘗試在 `claude install` 期間顯示核准對話方塊。對話方塊需要 stdin 上的終端機。當安裝程式從管道執行 `claude install` 時,如 `curl -fsSL https://claude.ai/install.sh | bash` 所做的,stdin 是管道而不是終端機,因此安裝因包含 `Raw mode is not supported` 的錯誤而失敗。

686 704 

687Claude Code v2.1.246 及更新版本在 `claude install` 或 `claude update` 期間不顯示對話方塊。命令使用您上次核准的設定執行,Claude Code 在您的下一個互動工作階段中顯示對話方塊。如果您的組織的啟動設定[等待設定擷取](/docs/zh-TW/server-managed-settings#enforce-fail-closed-startup),例如當它設定 `forceRemoteSettingsRefresh` 時,對話方塊仍會在這些命令期間出現,從管道執行的安裝仍會失敗。705Claude Code v2.1.246 及更新版本在 `claude install` 或 `claude update` 期間不顯示對話方塊。命令使用您上次核准的設定執行,Claude Code 在您的下一個互動工作階段中顯示對話方塊。如果您的組織的啟動設定[等待設定擷取](/docs/zh-TW/server-managed-settings#enforce-fail-closed-startup),例如當它設定 `forceRemoteSettingsRefresh` 時,對話方塊仍會在這些命令期間出現,從管道執行的安裝仍會失敗。

688 706 


719將目錄移到一邊,或更新到 v2.1.214 或更新版本。由於 `claude update` 在受影響的版本上掛起,改為透過重新執行[安裝指令碼](/docs/zh-TW/setup#install-claude-code)進行更新。737將目錄移到一邊,或更新到 v2.1.214 或更新版本。由於 `claude update` 在受影響的版本上掛起,改為透過重新執行[安裝指令碼](/docs/zh-TW/setup#install-claude-code)進行更新。

720 738 

721<h3 id="claude-desktop-overrides-the-claude-command-on-windows">739<h3 id="claude-desktop-overrides-the-claude-command-on-windows">

722 Claude Desktop 在 Windows 上覆蓋 `claude` 命令740 Claude Desktop 在 Windows 上覆寫 `claude` 命令

723</h3>741</h3>

724 742 

725如果您安裝了舊版本的 Claude Desktop,它可能在 `WindowsApps` 目錄中註冊 `Claude.exe`,其 PATH 優先級高於 Claude Code CLI。執行 `claude` 會開啟 Desktop 應用程式而非 CLI。743如果您安裝了舊版本的 Claude Desktop,它可能在 `WindowsApps` 目錄中註冊 `Claude.exe`,其 PATH 優先級高於 Claude Code CLI。執行 `claude` 會開啟 Desktop 應用程式而非 CLI。


734 752 

735**如果 PowerShell 不在您的 PATH 中**,其預設位置是 `C:\Windows\System32\WindowsPowerShell\v1.0\`。將該目錄新增到您的 `PATH`,或安裝 [PowerShell 7](https://aka.ms/powershell),它提供 `pwsh`。753**如果 PowerShell 不在您的 PATH 中**,其預設位置是 `C:\Windows\System32\WindowsPowerShell\v1.0\`。將該目錄新增到您的 `PATH`,或安裝 [PowerShell 7](https://aka.ms/powershell),它提供 `pwsh`。

736 754 

737**若要改為安裝 Git for Windows**,請從 [git-scm.com/downloads/win](https://git-scm.com/downloads/win) 下載。在設定期間,選擇「Add to PATH」。安裝後重新啟動您的終端。安裝它會啟用 Bash 工具,在使用基於 Bash 的指令碼和工具時很有用。755**若要改為安裝 Git for Windows**,請從 [git-scm.com/downloads/win](https://git-scm.com/downloads/win) 下載。在設定期間,選擇「Add to PATH」。安裝後重新啟動您的終端機。安裝它會啟用 Bash 工具,在使用基於 Bash 的指令碼和工具時很有用。

738 756 

739**如果 Git 已安裝**但 Claude Code 找不到它,請比較其位置與 Claude Code 檢查的位置。當 `CLAUDE_CODE_GIT_BASH_PATH` 未設定時,Claude Code 按此順序尋找 `bash.exe`:757**如果 Git 已安裝**但 Claude Code 找不到它,請比較其位置與 Claude Code 檢查的位置。當 `CLAUDE_CODE_GIT_BASH_PATH` 未設定時,Claude Code 按此順序尋找 `bash.exe`:

740 758 


753}771}

754```772```

755 773 

756**如果 `CLAUDE_CODE_GIT_BASH_PATH` 設定為正確的路徑且檔案存在**但 Claude Code 仍然不使用它,請先檢查檔案的名稱。Claude Code 僅接受名為 `bash.exe`、`sh.exe`、`bash` 或 `sh` 的檔案;使用任何其他名稱(例如 Git for Windows 的 `git-bash.exe` 啟動器),它會忽略變數並自動偵測 Git Bash,就像它未設定一樣,記錄可透過 `--debug` 看到的警告。不存在的路徑會得到相同的後備和警告。在 v2.1.219 之前,Claude Code 使用任何現有檔案作為 shell,而不檢查其名稱,當路徑不存在時在啟動時以 `Claude Code was unable to find CLAUDE_CODE_GIT_BASH_PATH path` 結束。774**如果 `CLAUDE_CODE_GIT_BASH_PATH` 設定為正確的路徑且檔案存在**但 Claude Code 仍然不使用它,請先檢查檔案的名稱。Claude Code 僅接受名為 `bash.exe`、`sh.exe`、`bash` 或 `sh` 的檔案;使用任何其他名稱(例如 Git for Windows 的 `git-bash.exe` 啟動器),它會忽略變數並自動偵測 Git Bash,就像它未設定一樣,記錄可透過 `--debug` 看到的警告。不存在的路徑會得到相同的備援和警告。在 v2.1.219 之前,Claude Code 使用任何現有檔案作為 shell,而不檢查其名稱,當路徑不存在時在啟動時以 `Claude Code was unable to find CLAUDE_CODE_GIT_BASH_PATH path` 結束。

757 775 

758如果檔案的名稱正確,端點安全軟體(例如 AppLocker、群組原則軟體限制原則或 EDR 代理)可能正在干擾。要求您的 IT 團隊在您的端點保護原則中將 `claude.exe` 和它生成的程序(包括 `cmd.exe` 和 `bash.exe`)加入允許清單。776如果檔案的名稱正確,端點安全軟體(例如 AppLocker、群組原則軟體限制原則或 EDR agent)可能正在干擾。要求您的 IT 團隊在您的端點保護原則中將 `claude.exe` 和它生成的程序(包括 `cmd.exe` 和 `bash.exe`)加入允許清單。

759 777 

760<h3 id="claude-code-does-not-support-32-bit-windows">778<h3 id="claude-code-does-not-support-32-bit-windows">

761 Claude Code 不支援 32 位元 Windows779 Claude Code 不支援 32 位元 Windows


842 860 

8432. **更新 macOS**(如果您在舊版本上)。二進位檔使用舊 macOS 版本不支援的載入命令和系統程式庫。Homebrew 等替代安裝方法下載相同的二進位檔,不會解決此錯誤。8612. **更新 macOS**(如果您在舊版本上)。二進位檔使用舊 macOS 版本不支援的載入命令和系統程式庫。Homebrew 等替代安裝方法下載相同的二進位檔,不會解決此錯誤。

844 862 

863<h3 id="bus-error-while-a-session-is-running">

864 工作階段執行期間出現 `Bus error`

865</h3>

866 

867如果正在執行的工作階段結束,且您的 shell 列印 `Bus error`,其中一個原因是 Claude Code 無法再從磁碟讀取其自身的可執行檔。例如,該檔案在工作階段執行期間被截斷,或在網路儲存空間上被刪除。

868 

869在 shell 的訊息之前,Claude Code 的執行階段可能會列印一份當機報告,其中包含 `panic(main thread): Bus error at address` 和 `oh no: Bun has crashed. This indicates a bug in Bun, not your code.`。當可執行檔變得無法讀取時,當機來自無法讀取的檔案,而非 Bun 中的錯誤。如果執行階段也無法讀取列印報告的程式碼,報告也可能不會出現。

870 

871啟動新的工作階段以繼續。如果 Claude Code 安裝在網路儲存空間上,請遵循[在網路儲存空間上安裝](/docs/zh-TW/setup#install-on-network-storage),讓升級不會移除執行中的工作階段仍需要的二進位檔。

872 

845<h3 id="exec-format-error-on-wsl1">873<h3 id="exec-format-error-on-wsl1">

846 WSL1 上的 `Exec format error`874 WSL1 上的 `Exec format error`

847</h3>875</h3>


854wsl --set-version <DistroName> 2882wsl --set-version <DistroName> 2

855```883```

856 884 

857如果您需要留在 WSL1 上,透過動態連結器叫用二進位檔。將此函數新增到 WSL 內的 `~/.bashrc`,如果您的主目錄不同,請替換路徑:885如果您需要留在 WSL1 上,透過動態連結器叫用二進位檔。將此函數新增到 WSL 內的 `~/.bashrc`,如果您的家目錄不同,請替換路徑:

858 886 

859```bash theme={null}887```bash theme={null}

860claude() {888claude() {


914 npm 安裝後找不到原生二進位檔942 npm 安裝後找不到原生二進位檔

915</h3>943</h3>

916 944 

917`@anthropic-ai/claude-code` npm 套件透過每個平台的可選相依性(如 `@anthropic-ai/claude-code-darwin-arm64`)拉入原生二進位檔。npm 然後執行套件的 postinstall 指令碼,該指令碼將該二進位檔複製到位置作為 `claude` 命令;在它執行之前,`claude` 是佔位符指令碼。如果下載或 postinstall 步驟被跳過,佔位符保留在位置,在 macOS 和 Linux 上執行 `claude` 列印:945`@anthropic-ai/claude-code` npm 套件以每個平台的可選相依性(如 `@anthropic-ai/claude-code-darwin-arm64`)下載原生二進位檔。npm 然後執行套件的 postinstall 指令碼,該指令碼將該二進位檔複製到位置作為 `claude` 命令;在它執行之前,`claude` 是佔位符指令碼。如果下載或 postinstall 步驟被跳過,佔位符保留在位置,在 macOS 和 Linux 上執行 `claude` 列印:

918 946 

919```text theme={null}947```text theme={null}

920Error: claude native binary not installed.948Error: claude native binary not installed.


933 961 

934檢查以下原因:962檢查以下原因:

935 963 

936* **可選相依性已停用。** 從您的 npm 安裝命令中移除 `--omit=optional`、從 pnpm 移除 `--no-optional` 或從 yarn 移除 `--ignore-optional`,並檢查 `.npmrc` 是否未設定 `optional=false`。然後重新安裝。原生二進位檔僅作為可選相依性提供,因此如果跳過它,沒有 JavaScript 後備,重新執行 `install.cjs` 無法放置從未下載的二進位檔。964* **可選相依性已停用。** 從您的 npm 安裝命令中移除 `--omit=optional`、從 pnpm 移除 `--no-optional` 或從 yarn 移除 `--ignore-optional`,並檢查 `.npmrc` 是否未設定 `optional=false`。然後重新安裝。原生二進位檔僅作為可選相依性提供,因此如果跳過它,沒有 JavaScript 備援,重新執行 `install.cjs` 無法放置從未下載的二進位檔。

937* **安裝指令碼已停用。** `--ignore-scripts` 和某些 pnpm 設定跳過 postinstall 步驟,但仍然下載平台套件。執行 `node node_modules/@anthropic-ai/claude-code/install.cjs`,如訊息所建議,或不使用旗標重新安裝。如果 postinstall 根本無法在您的環境中執行,`node node_modules/@anthropic-ai/claude-code/cli-wrapper.cjs` 找到下載的套件並啟動它,代價是每次啟動時額外的 Node 程序。如果包裝器改為列印 `Could not find native binary package`,平台套件從未下載,因此首先修復上面的可選相依性原因。965* **安裝指令碼已停用。** `--ignore-scripts` 和某些 pnpm 設定跳過 postinstall 步驟,但仍然下載平台套件。執行 `node node_modules/@anthropic-ai/claude-code/install.cjs`,如訊息所建議,或不使用旗標重新安裝。如果 postinstall 根本無法在您的環境中執行,`node node_modules/@anthropic-ai/claude-code/cli-wrapper.cjs` 找到下載的套件並啟動它,代價是每次啟動時額外的 Node 程序。如果包裝器改為列印 `Could not find native binary package`,平台套件從未下載,因此首先修復上面的可選相依性原因。

938* **不支援的平台。** 預建二進位檔針對 `darwin-arm64`、`darwin-x64`、`linux-x64`、`linux-arm64`、`linux-x64-musl`、`linux-arm64-musl`、`win32-x64` 和 `win32-arm64` 發佈。Claude Code 不為其他平台提供二進位檔;請參閱[系統需求](/docs/zh-TW/setup#system-requirements)。在 FreeBSD 上,安裝程式報告平台為不支援。在 v2.1.205 之前,它將 FreeBSD 視為 Linux 並下載了無法執行的二進位檔。966* **不支援的平台。** 預建二進位檔針對 `darwin-arm64`、`darwin-x64`、`linux-x64`、`linux-arm64`、`linux-x64-musl`、`linux-arm64-musl`、`win32-x64` 和 `win32-arm64` 發佈。Claude Code 不為其他平台提供二進位檔;請參閱[系統需求](/docs/zh-TW/setup#system-requirements)。在 FreeBSD 上,安裝程式報告平台為不支援。在 v2.1.205 之前,它將 FreeBSD 視為 Linux 並下載了無法執行的二進位檔。

939* **公司 npm 鏡像缺少平台套件。** 確保您的登錄鏡像除了元套件外,還鏡像所有八個 `@anthropic-ai/claude-code-*` 平台套件。967* **公司 npm 鏡像缺少平台套件。** 確保您的登錄鏡像除了元套件外,還鏡像所有八個 `@anthropic-ai/claude-code-*` 平台套件。


961 rm -rf "$(npm root -g)/@anthropic-ai/claude-code"989 rm -rf "$(npm root -g)/@anthropic-ai/claude-code"

962 ```990 ```

963 991 

964 然後移除任何剩餘的臨時目錄。如果 zsh 列印 `no matches found`,沒有要移除的:992 然後移除任何剩餘的臨時目錄。如果 Zsh 列印 `no matches found`,沒有要移除的:

965 993 

966 ```bash theme={null}994 ```bash theme={null}

967 rm -rf "$(npm root -g)/@anthropic-ai/.claude-code-"*995 rm -rf "$(npm root -g)/@anthropic-ai/.claude-code-"*


984使用 `claude --version` 確認,它列印版本號,例如 `2.1.211 (Claude Code)`。1012使用 `claude --version` 確認,它列印版本號,例如 `2.1.211 (Claude Code)`。

985 1013 

986<h2 id="login-and-authentication">1014<h2 id="login-and-authentication">

987 登入和身份驗證1015 登入和身分驗證

988</h2>1016</h2>

989 1017 

990這些部分涉及登入失敗、OAuth 錯誤和令牌問題。1018這些部分涉及登入失敗、OAuth 錯誤和 token 問題。

991 1019 

992<h3 id="reset-your-login">1020<h3 id="reset-your-login">

993 重設您的登入1021 重設您的登入

994</h3>1022</h3>

995 1023 

996當登入失敗且原因不明顯時,乾淨的重新身份驗證可解決大多數情況:1024當登入失敗且原因不明顯時,乾淨的重新身分驗證可解決大多數情況:

997 1025 

9981. 執行 `/logout` 以完全登出10261. 執行 `/logout` 以完全登出

9992. 關閉 Claude Code10272. 關閉 Claude Code

10003. 使用 `claude` 重新啟動並再次完成身份驗證程序10283. 使用 `claude` 重新啟動並再次完成身分驗證程序

1001 1029 

1002如果瀏覽器在登入期間未自動開啟,按 `c` 將 OAuth URL 複製到您的剪貼簿,然後手動將其貼到瀏覽器中。當 URL 在狹窄或 SSH 終端中跨行換行且無法直接點擊時,這也有效。1030如果瀏覽器在登入期間未自動開啟,按 `c` 將 OAuth URL 複製到您的剪貼簿,然後手動將其貼到瀏覽器中。當 URL 在狹窄或 SSH 終端機中跨行換行且無法直接點擊時,這也有效。

1003 1031 

1004<h3 id="oauth-error-invalid-code">1032<h3 id="oauth-error-invalid-code">

1005 OAuth 錯誤:無效代碼1033 OAuth 錯誤:無效代碼


1011 1039 

1012* 在瀏覽器開啟後按 Enter 以重試並快速完成登入1040* 在瀏覽器開啟後按 Enter 以重試並快速完成登入

1013* 如果瀏覽器未自動開啟,輸入 `c` 複製完整 URL1041* 如果瀏覽器未自動開啟,輸入 `c` 複製完整 URL

1014* 如果使用遠端/SSH 工作階段,瀏覽器可能在錯誤的機器上開啟。複製終端中顯示的 URL 並在您的本地瀏覽器中開啟它。1042* 如果使用遠端/SSH 工作階段,瀏覽器可能在錯誤的機器上開啟。複製終端機中顯示的 URL 並在您的本地瀏覽器中開啟它。

1015 1043 

1016<h3 id="403-forbidden-after-login">1044<h3 id="403-forbidden-after-login">

1017 登入後 403 Forbidden1045 登入後 403 Forbidden


1021 1049 

1022* **Claude Pro/Max 使用者**:在 [claude.ai/settings](https://claude.ai/settings) 驗證您的訂閱是否有效1050* **Claude Pro/Max 使用者**:在 [claude.ai/settings](https://claude.ai/settings) 驗證您的訂閱是否有效

1023* **Anthropic Console 使用者**:確認您的帳戶具有「Claude Code」或「Developer」角色。管理員在 Anthropic Console 的「設定」→「成員」中指派此角色。1051* **Anthropic Console 使用者**:確認您的帳戶具有「Claude Code」或「Developer」角色。管理員在 Anthropic Console 的「設定」→「成員」中指派此角色。

1024* **在代理後面**:公司代理可能干擾 API 請求。請參閱[網路設定](/docs/zh-TW/network-config)以取得代理設定。1052* **位於代理伺服器後方**:公司代理伺服器可能干擾 API 請求。請參閱[網路設定](/docs/zh-TW/network-config)以取得代理伺服器設定。

1025 1053 

1026<h3 id="claude-code-access-has-not-been-granted-for-this-account">1054<h3 id="claude-code-access-has-not-been-granted-for-this-account">

1027 Claude Code 存取權未授予此帳戶1055 Claude Code 存取權未授予此帳戶


1040 1068 

1041如果您看到 `API Error: 400 ... "This organization has been disabled"`,儘管有有效的 Claude 訂閱,`ANTHROPIC_API_KEY` 環境變數正在覆蓋您的訂閱。這通常發生在舊 API 金鑰(來自先前的雇主或專案)仍在您的 shell 設定檔中時。1069如果您看到 `API Error: 400 ... "This organization has been disabled"`,儘管有有效的 Claude 訂閱,`ANTHROPIC_API_KEY` 環境變數正在覆蓋您的訂閱。這通常發生在舊 API 金鑰(來自先前的雇主或專案)仍在您的 shell 設定檔中時。

1042 1070 

1043當 `ANTHROPIC_API_KEY` 存在且您已核准它時,Claude Code 使用該金鑰而非您訂閱的 OAuth 認證。在使用 `-p` 旗標的非互動模式下,當存在時始終使用該金鑰。請參閱[身份驗證優先順序](/docs/zh-TW/authentication#authentication-precedence)以取得完整的解決順序。1071當 `ANTHROPIC_API_KEY` 存在且您已核准它時,Claude Code 使用該金鑰而非您訂閱的 OAuth 憑證。在使用 `-p` 旗標的非互動模式下,當存在時始終使用該金鑰。請參閱[身分驗證優先順序](/docs/zh-TW/authentication#authentication-precedence)以取得完整的解決順序。

1044 1072 

1045要改用您的訂閱,請取消設定環境變數並從您的 shell 設定檔中移除它:1073要改用您的訂閱,請取消設定環境變數並從您的 shell 設定檔中移除它:

1046 1074 


1060 </Tab>1088 </Tab>

1061</Tabs>1089</Tabs>

1062 1090 

1063檢查 `~/.zshrc`、`~/.bashrc` 或 `~/.profile` 中的 `export ANTHROPIC_API_KEY=...` 行並移除它們以永久進行變更。在 Windows 上,檢查您在 `$PROFILE` 的 PowerShell 設定檔和您的使用者環境變數中的 `ANTHROPIC_API_KEY`。在 Claude Code 內執行 `/status` 以確認哪個身份驗證方法是有效的。1091檢查 `~/.zshrc`、`~/.bashrc` 或 `~/.profile` 中的 `export ANTHROPIC_API_KEY=...` 行並移除它們以永久進行變更。在 Windows 上,檢查您在 `$PROFILE` 的 PowerShell 設定檔和您的使用者環境變數中的 `ANTHROPIC_API_KEY`。在 Claude Code 內執行 `/status` 以確認哪個身分驗證方法是有效的。

1064 1092 

1065<h3 id="oauth-login-fails-in-wsl2-ssh-or-containers">1093<h3 id="oauth-login-fails-in-wsl2-ssh-or-containers">

1066 WSL2、SSH 或容器中的 OAuth 登入失敗1094 WSL2、SSH 或容器中的 OAuth 登入失敗

1067</h3>1095</h3>

1068 1096 

1069當 Claude Code 在 WSL2 中執行、透過 SSH 在遠端機器上執行或在容器內執行時,瀏覽器通常在不同的主機上開啟,其重新導向無法到達 Claude Code 的本地回呼伺服器。在您登入後,瀏覽器會顯示登入代碼而不是自動重新導向回來。將該代碼貼到終端的 `Paste code here if prompted` 提示中以完成登入。1097當 Claude Code 在 WSL2 中執行、透過 SSH 在遠端機器上執行或在容器內執行時,瀏覽器通常在不同的主機上開啟,其重新導向無法到達 Claude Code 的本地回呼伺服器。在您登入後,瀏覽器會顯示登入代碼而不是自動重新導向回來。將該代碼貼到終端機的 `Paste code here if prompted` 提示中以完成登入。

1070 1098 

1071如果瀏覽器根本不從 WSL2 開啟,請將 `BROWSER` 環境變數設定為您的 Windows 瀏覽器路徑:1099如果瀏覽器根本不從 WSL2 開啟,請將 `BROWSER` 環境變數設定為您的 Windows 瀏覽器路徑:

1072 1100 


1077 1105 

1078或者,在互動式登入提示時按 `c` 複製 OAuth URL,或複製 `claude auth login` 列印的 URL,並在您的本地機器上的瀏覽器中開啟它。1106或者,在互動式登入提示時按 `c` 複製 OAuth URL,或複製 `claude auth login` 列印的 URL,並在您的本地機器上的瀏覽器中開啟它。

1079 1107 

1080如果將代碼貼到互動式提示中沒有任何反應,您的終端的貼上繫結可能無法到達輸入欄位。嘗試您的終端的替代貼上快捷鍵,通常在 Windows Terminal 中是右鍵點擊或 Shift+Insert,或改用 `claude auth login`,它從標準輸入讀取貼上的代碼:1108如果將代碼貼到互動式提示中沒有任何反應,您的終端機的貼上繫結可能無法到達輸入欄位。嘗試您的終端機的替代貼上快捷鍵,通常在 Windows Terminal 中是右鍵點擊或 Shift+Insert,或改用 `claude auth login`,它從標準輸入讀取貼上的代碼:

1081 1109 

1082```bash theme={null}1110```bash theme={null}

1083claude auth login1111claude auth login

1084```1112```

1085 1113 

1086此後備也適用於原生 Windows 或任何將代碼貼到互動式提示失敗的終端。1114此備援方式也適用於原生 Windows 或任何將代碼貼到互動式提示失敗的終端機。

1087 1115 

1088<h3 id="not-logged-in-or-token-expired">1116<h3 id="not-logged-in-or-token-expired">

1089 未登入或令牌已過期1117 未登入或 token 已過期

1090</h3>1118</h3>

1091 1119 

1092如果 Claude Code 在工作階段後提示您再次登入,您的 OAuth 令牌可能已過期。1120如果 Claude Code 在工作階段後提示您再次登入,您的 OAuth token 可能已過期。

1121 

1122執行 `/login` 以重新身分驗證。如果這經常發生,請檢查您的系統時鐘是否準確,因為 token 驗證取決於正確的時間戳。

1093 1123 

1094執行 `/login` 以重新身份驗證。如果這經常發生,請檢查您的系統時鐘是否準確,因為令牌驗證取決於正確的時間戳。1124一台機器上的平行工作階段共享已儲存的登入,並協調其更新,以便一次只有一個程序重新整理 token。若要了解您在其中一個工作階段重新登入後其他工作階段會如何處理,請參閱[未登入](/docs/zh-TW/errors#not-logged-in)。

1095 1125 

1096一台機器上的平行工作階段共享已儲存的登入,並協調其更新,以便只有一個程序一次重新整理令牌。在 v2.1.211 之前,從睡眠喚醒機器可能導致兩個工作階段使用相同令牌進行更新,這會撤銷已儲存的登入,並提示每個開啟的工作階段立即再次登入。1126在 v2.1.211 之前,從睡眠喚醒機器可能導致兩個工作階段使用相同 token 進行更新,這會撤銷已儲存的登入,並提示每個開啟的工作階段立即再次登入。

1097 1127 

1098在 macOS 上,Claude Code 將認證儲存到登入 Keychain。當 Keychain 拒絕寫入時,例如當它在 SSH 工作階段中被鎖定或其密碼與您的帳戶密碼不同步時,Claude Code 改為將您的登入儲存到純文字 `~/.claude/.credentials.json` 檔案。建立 API 金鑰的 Console 登入會失敗,直到 Keychain 再次可寫入。1128在 macOS 上,Claude Code 將憑證儲存到登入 Keychain。當 Keychain 拒絕寫入時,例如當它在 SSH 工作階段中被鎖定或其密碼與您的帳戶密碼不同步時,Claude Code 改為將您的登入儲存到純文字 `~/.claude/.credentials.json` 檔案。建立 API 金鑰的 Console 登入會失敗,直到 Keychain 再次可寫入。

1099 1129 

1100要使 Keychain 再次可寫入並將您的登入移回加密的 Keychain:1130要使 Keychain 再次可寫入並將您的登入移回加密的 Keychain:

1101 1131 


1117 </Step>1147 </Step>

1118 1148 

1119 <Step title="登出並重新登入">1149 <Step title="登出並重新登入">

1120 一旦 Keychain 再次可寫入,Claude Code 會在下次寫入認證時將認證移回。要立即強制執行,請執行 `/logout`,然後執行 `/login`。登出會移除所有已儲存的認證,包括純文字檔案的內容、已儲存的 MCP 伺服器登入和外掛敏感值,因此預期之後需要重新授權 MCP 伺服器和重新輸入外掛祕密。再次登入會將您的登入儲存在 Keychain 中。1150 一旦 Keychain 再次可寫入,Claude Code 會在下次寫入憑證時將憑證移回。要立即強制執行,請執行 `/logout`,然後執行 `/login`。登出會移除所有已儲存的憑證,包括純文字檔案的內容、已儲存的 MCP 伺服器登入和外掛敏感值,因此預期之後需要重新授權 MCP 伺服器和重新輸入外掛祕密。再次登入會將您的登入儲存在 Keychain 中。

1121 </Step>1151 </Step>

1122</Steps>1152</Steps>

1123 1153 

1124<h3 id="bedrock-agent-platform-or-foundry-credentials-not-loading">1154<h3 id="bedrock-agent-platform-or-foundry-credentials-not-loading">

1125 Bedrock、Agent Platform 或 Foundry 認證未載入1155 Bedrock、Agent Platform 或 Foundry 憑證未載入

1126</h3>1156</h3>

1127 1157 

1128如果您設定了 Claude Code 以使用雲端提供者,並在 Amazon Bedrock 上看到 `Could not load credentials from any providers`、在 Google Cloud 的 Agent Platform 上看到 `Could not load the default credentials` 或在 Microsoft Foundry 上看到 `ChainedTokenCredential authentication failed`,您的雲端提供者 CLI 可能在目前 shell 中未進行身份驗證。1158如果您設定了 Claude Code 以使用雲端提供者,並在 Amazon Bedrock 上看到 `Could not load credentials from any providers`、在 Google Cloud 的 Agent Platform 上看到 `Could not load the default credentials` 或在 Microsoft Foundry 上看到 `ChainedTokenCredential authentication failed`,您的雲端提供者 CLI 可能在目前 shell 中未進行身分驗證。

1129 1159 

1130對於 Amazon Bedrock,確認您的 AWS 認證有效:1160對於 Amazon Bedrock,確認您的 AWS 憑證有效:

1131 1161 

1132```bash theme={null}1162```bash theme={null}

1133aws sts get-caller-identity1163aws sts get-caller-identity

1134```1164```

1135 1165 

1136對於 Google Cloud 的 Agent Platform,確認 `ANTHROPIC_VERTEX_PROJECT_ID` 和 `CLOUD_ML_REGION` 在您的 shell 中設定,然後設定應用程式預設認證:1166對於 Google Cloud 的 Agent Platform,確認 `ANTHROPIC_VERTEX_PROJECT_ID` 和 `CLOUD_ML_REGION` 在您的 shell 中設定,然後設定應用程式預設憑證:

1137 1167 

1138```bash theme={null}1168```bash theme={null}

1139gcloud auth application-default login1169gcloud auth application-default login

1140```1170```

1141 1171 

1142對於 Microsoft Foundry,確認 `ANTHROPIC_FOUNDRY_API_KEY` 已設定,或使用 Azure CLI 登入,以便預設認證鏈可以找到您的帳戶:1172對於 Microsoft Foundry,確認 `ANTHROPIC_FOUNDRY_API_KEY` 已設定,或使用 Azure CLI 登入,以便預設憑證鏈可以找到您的帳戶:

1143 1173 

1144```bash theme={null}1174```bash theme={null}

1145az login1175az login

1146```1176```

1147 1177 

1148如果認證在您的終端中有效但在 VS Code 或 JetBrains 擴充功能中無效,IDE 程序可能未繼承您的 shell 環境。在 IDE 自己的設定中設定提供者環境變數,或從已匯出它們的終端啟動 IDE。1178如果憑證在您的終端機中有效但在 VS Code 或 JetBrains 擴充功能中無效,IDE 程序可能未繼承您的 shell 環境。在 IDE 自己的設定中設定提供者環境變數,或從已匯出它們的終端機啟動 IDE。

1149 1179 

1150請參閱 [Amazon Bedrock](/docs/zh-TW/amazon-bedrock)、[Google Cloud 的 Agent Platform](/docs/zh-TW/google-vertex-ai) 或 [Microsoft Foundry](/docs/zh-TW/microsoft-foundry) 以取得完整的提供者設定。1180請參閱 [Amazon Bedrock](/docs/zh-TW/amazon-bedrock)、[Google Cloud 的 Agent Platform](/docs/zh-TW/google-vertex-ai) 或 [Microsoft Foundry](/docs/zh-TW/microsoft-foundry) 以取得完整的提供者設定。

1151 1181 

Details

803. 將大檔案工作移動到 [subagent](/docs/zh-TW/sub-agents),以便它在單獨的上下文視窗中執行803. 將大檔案工作移動到 [subagent](/docs/zh-TW/sub-agents),以便它在單獨的上下文視窗中執行

814. 如果早期對話不再需要,執行 `/clear`814. 如果早期對話不再需要,執行 `/clear`

82 82 

83如果在 `/clear` 之後錯誤再次出現,請執行 [`/context`](/docs/zh-TW/debug-your-config),並將 `Messages` 列與其上方的各列進行比較:

84 

85* **`Messages` 是最大的一列**:新對話中的檔案或工具輸出正在重新填滿視窗,因此請再次執行步驟 1 到 3

86* **其他各列加總更大**:工作階段開始時載入的內容留下的工作空間太少,因此請[精簡啟動時載入的內容](/docs/zh-TW/errors#prompt-is-too-long)

87 

83<h3 id="command-hangs-or-freezes">88<h3 id="command-hangs-or-freezes">

84 命令掛起或凍結89 命令掛起或凍結

85</h3>90</h3>

ultrareview.md +7 −7

Details

30/code-review ultra30/code-review ultra

31```31```

32 32 

33不帶引數時,ultrareview 會審查您目前分支與預設分支之間的差異,包括未提交和已暫存的變更。對於名稱類似認證或金鑰的檔案(例如 `.env` 和 `*.tfvars` 檔案)的未提交變更,Claude Code 遵循[將本機儲存庫上傳到雲端工作階段](/docs/zh-TW/claude-code-on-the-web#send-local-repositories-without-github)的規則。33不帶引數時,ultrareview 會審查您目前分支與預設分支之間的差異,包括未提交和已暫存的變更。

34 34 

35對於分支審查,Claude Code 會組合儲存庫狀態並將其上傳到雲端沙箱;當您[審查提取請求](#review-a-pull-request)時,Claude Code 不會從您的機器上傳任何內容。35對於分支審查,Claude Code 會組合儲存庫狀態,並依照[將本機儲存庫上傳到雲端工作階段](/docs/zh-TW/claude-code-on-the-web#send-local-repositories-without-github)的規則將其上傳到雲端沙箱,這些規則涵蓋大小限制、簽出需求,以及名稱類似憑證或金鑰的檔案(例如 `.env` 和 `*.tfvars` 檔案)中未提交變更的處理方式。當您[審查 pull request](#review-a-pull-request) 時,Claude Code 不會從您的機器上傳任何內容。

36 36 

37啟動前,Claude Code 會顯示確認對話方塊,其中包含審查範圍、您剩餘的免費執行次數和估計成本;對於分支審查,範圍包括檔案和行數。確認後,審查會在背景中繼續進行,同時您可以繼續使用您的工作階段。37啟動前,Claude Code 會顯示確認對話方塊,其中包含審查範圍、您剩餘的免費執行次數和估計成本;對於分支審查,範圍包括檔案和行數。確認後,審查會在背景中繼續進行,同時您可以繼續使用您的工作階段。

38 38 


153 追蹤執行中的審查153 追蹤執行中的審查

154</h2>154</h2>

155 155 

156審查通常需要 5 到 10 分鐘。審查作為背景工作執行,因此您可以繼續在工作階段中工作、啟動其他命令或完全關閉終端。如果您選擇[將發現結果發佈到提取請求](#post-findings-to-the-pull-request),請保持工作階段開啟,直到審查完成;如果工作階段先結束,Claude Code 將不會發佈任何內容。156審查通常需要 5 到 10 分鐘。審查作為背景任務執行,因此您可以繼續在工作階段中工作或啟動其他命令。如果您選擇[將發現結果發佈到 pull request](#post-findings-to-the-pull-request),請保持工作階段開啟,直到審查完成;如果工作階段先結束,Claude Code 將不會發佈任何內容。

157 157 

158使用 `/tasks` 查看執行中和已完成的審查、開啟審查的詳細檢視,或停止進行中的審查。如果您停止審查,Claude Code 會封存雲端工作階段,且不會返回部分發現。158使用 `/tasks` 查看執行中和已完成的審查、開啟審查的詳細檢視,或停止進行中的審查。如果您停止審查,Claude Code 會封存雲端工作階段,且不會返回部分發現。

159 159 


181 181 

182當您執行該子命令時,您同意整個儲存庫回退以及帳單和條款提示,因此執行會在不等待輸入的情況下開始。您自己執行它才算是同意。當 Claude 改為為您執行該子命令時(例如透過 Bash 工具),Claude Code 會拒絕整個儲存庫審查。182當您執行該子命令時,您同意整個儲存庫回退以及帳單和條款提示,因此執行會在不等待輸入的情況下開始。您自己執行它才算是同意。當 Claude 改為為您執行該子命令時(例如透過 Bash 工具),Claude Code 會拒絕整個儲存庫審查。

183 183 

184在 Claude Code v2.1.218 或更新版本上,您也可以透過在非互動工作階段中執行 `/code-review ultra` 來啟動雲端審查,例如 `claude -p '/code-review ultra'`。Claude Code 會啟動審查並列印追蹤連結,無需等待發現結果,這與 `claude ultrareview` 不同,後者會阻塞直到發現結果到達。當審查會計費使用額度時,Claude Code 會在啟動前停止並指向 `claude ultrareview`,因為帳單確認需要互動工作階段。在 v2.1.218 之前,非互動工作階段中的 `/code-review ultra` 執行本機審查。184`claude -p '/code-review ultra'` 無法取得發現結果,因此請在指令碼中使用 `claude ultrareview`。`-p` 執行會啟動雲端審查,並在不等待其完成的情況下結束。當審查會計費用量點數時,`-p` 執行會停止而不啟動審查。在 v2.1.218 之前,非互動工作階段中的 `/code-review ultra` 執行本機審查。

185 185 

186進度訊息和即時工作階段 URL 會進入 stderr,以便 stdout 保持可解析。使用這些旗標來控制輸出、逾時和是否發佈發現結果:186`claude ultrareview` 會將進度訊息寫入 stderr,以便 stdout 保持可解析。使用這些旗標來控制其輸出、逾時和是否發佈發現結果:

187 187 

188| 旗標 | 說明 |188| 旗標 | 說明 |

189| - | - |189| - | - |


200* **1**:審查未能啟動或在完成前被停止、雲端工作階段出錯,或逾時已過200* **1**:審查未能啟動或在完成前被停止、雲端工作階段出錯,或逾時已過

201* **130**:您使用 Ctrl-C 中斷了該子命令201* **130**:您使用 Ctrl-C 中斷了該子命令

202 202 

203如果您中斷該子命令,遠端審查會繼續執行;請遵循列印到 stderr 的工作階段 URL 在瀏覽器中觀看它。203如果該子命令在發現結果到達之前結束,這些發現結果將永遠不會到達您的終端機。審查可能仍在雲端執行中。再次執行該子命令會啟動新的審查,而不是繼續先前那一次,且新的審查會[使用一次免費執行或以用量點數計費](#pricing-and-free-runs)。

204 204 

205使用 `--post` 時,該子命令會在列印發現結果後立即開始發佈,並將連結列印到 stderr。205使用 `--post` 時,該子命令會在列印發現結果後立即開始發佈,並將連結列印到 stderr。

206 206 

207* 如果執行失敗、被停止、逾時,或如果您中斷它,該子命令不會發佈任何內容。207* 如果執行失敗、被停止或逾時,該子命令不會發佈任何內容。

208* 如果審查完成但評論未被發佈,Claude Code 會將原因列印到 stderr,發現結果會保留在 stdout 上,以便您可以手動發佈它們。208* 如果審查完成但評論未被發佈,Claude Code 會將原因列印到 stderr,發現結果會保留在 stdout 上,以便您可以手動發佈它們。

209 209 

210對於 GitHub 提取請求上的自動審查,[Code Review](/docs/zh-TW/code-review) 直接與您的儲存庫整合,並將發現結果作為內嵌 PR 評論發佈,無需 CLI 步驟。210對於 GitHub 提取請求上的自動審查,[Code Review](/docs/zh-TW/code-review) 直接與您的儲存庫整合,並將發現結果作為內嵌 PR 評論發佈,無需 CLI 步驟。

vs-code.md +32 −6

Details

221* **Session titles**:新工作階段會根據您的第一條訊息接收 AI 生成的標題。221* **Session titles**:新工作階段會根據您的第一條訊息接收 AI 生成的標題。

222* **Rename and archive**:將滑鼠懸停在工作階段上以顯示這些操作。重新命名以給它一個描述性標題,或存檔以將其移動到清單底部的 **Archived sessions** 群組。222* **Rename and archive**:將滑鼠懸停在工作階段上以顯示這些操作。重新命名以給它一個描述性標題,或存檔以將其移動到清單底部的 **Archived sessions** 群組。

223 223 

224如果對話已在另一個 Claude Code 程序中開啟,例如終端機中的 `claude` 或另一個 VS Code 視窗,提示框的位置會改為顯示通知:`This conversation is still open somewhere else. Using it in two places at once can mix up its messages.` 若要在此繼續,請先在另一處關閉對話,然後點擊 **Open here anyway**。如果您未關閉就點擊,對話會在兩處同時開啟。設定 [`claudeProcessWrapper`](#extension-settings) 時,擴充功能會跳過此檢查並直接開啟對話。

225 

224預設情況下,14 天內沒有活動的工作階段會自動移動到 **Archived sessions**,除非它已開啟、未讀或在[群組](#organize-sessions-into-groups)中。自動存檔需要 Claude Code v2.1.265 或更新版本。若要變更期間或關閉它,請開啟[存檔非活動工作階段設定](vscode://settings/claudeCode.archiveInactiveSessions)並選擇天數或 **Never**。226預設情況下,14 天內沒有活動的工作階段會自動移動到 **Archived sessions**,除非它已開啟、未讀或在[群組](#organize-sessions-into-groups)中。自動存檔需要 Claude Code v2.1.265 或更新版本。若要變更期間或關閉它,請開啟[存檔非活動工作階段設定](vscode://settings/claudeCode.archiveInactiveSessions)並選擇天數或 **Never**。

225 227 

226若要恢復已存檔的工作階段,請展開 **Archived sessions** 並點擊 **Unarchive session**。若要一次恢復每個已存檔的工作階段,請將滑鼠懸停在活動列中的 **Archived sessions** 標頭上,並點擊其取消存檔圖示,這需要 Claude Code v2.1.277 或更新版本。在 v2.1.257 之前,操作是 **Delete session**,它隱藏了一個工作階段,無法恢復。您之前刪除的工作階段會在您升級後出現在 **Archived sessions** 下。228若要恢復已存檔的工作階段,請展開 **Archived sessions** 並點擊 **Unarchive session**。若要一次恢復每個已存檔的工作階段,請將滑鼠懸停在活動列中的 **Archived sessions** 標頭上,並點擊其取消存檔圖示,這需要 Claude Code v2.1.277 或更新版本。在 v2.1.257 之前,操作是 **Delete session**,它隱藏了一個工作階段,無法恢復。您之前刪除的工作階段會在您升級後出現在 **Archived sessions** 下。


299 將側邊欄用於您的主要 Claude 工作階段,並為附帶工作開啟額外的標籤。Claude 會記住您偏好的位置。Activity Bar 工作階段清單圖示與 Claude 面板分開:工作階段清單始終在 Activity Bar 中可見,而 Claude 面板圖示只有在面板停靠到左側邊欄時才會出現在那裡。301 將側邊欄用於您的主要 Claude 工作階段,並為附帶工作開啟額外的標籤。Claude 會記住您偏好的位置。Activity Bar 工作階段清單圖示與 Claude 面板分開:工作階段清單始終在 Activity Bar 中可見,而 Claude 面板圖示只有在面板停靠到左側邊欄時才會出現在那裡。

300</Tip>302</Tip>

301 303 

304<h3 id="continue-conversations-after-a-reload">

305 重新載入後繼續對話

306</h3>

307 

302執行 **Developer: Reload Window** 或重新啟動 VS Code 後,對話是否會回到其對話內容取決於它在哪裡開啟:308執行 **Developer: Reload Window** 或重新啟動 VS Code 後,對話是否會回到其對話內容取決於它在哪裡開啟:

303 309 

304* **編輯器標籤**:對話會與其標籤一起回到。310* **編輯器標籤**:對話會與其標籤一起回到。

305* **側邊欄**:如果您在過去 10 分鐘內傳送了訊息或 Claude 在其中回應,對話會回到。如果它沒有回到,請從 [工作階段歷史記錄](#resume-past-conversations) 繼續對話。311* **側邊欄**:如果您在過去 10 分鐘內傳送了訊息或 Claude 在其中回應,對話會回到。如果它沒有回到,請從 [工作階段歷史記錄](#resume-past-conversations) 繼續對話。

306 312 

313如果另一個 Claude Code 程序仍開啟著該對話,系統會在對話於此處開啟前詢問您,並顯示與您[從工作階段歷史記錄繼續對話](#resume-past-conversations)時相同的 **Open here anyway** 通知。

314 

307如果重新載入在 Claude 執行步驟中途中斷,當對話回到時 Claude 會繼續該步驟,聊天中的通知會標記該繼續。需要 Claude Code v2.1.274 或更新版本。如果步驟在一小時前被中斷或工作階段在其他地方開啟,對話會改為回到閒置狀態。315如果重新載入在 Claude 執行步驟中途中斷,當對話回到時 Claude 會繼續該步驟,聊天中的通知會標記該繼續。需要 Claude Code v2.1.274 或更新版本。如果步驟在一小時前被中斷或工作階段在其他地方開啟,對話會改為回到閒置狀態。

308 316 

309若要關閉繼續功能,請開啟 [Continue After Reload 設定](vscode://settings/claudeCode.continueAfterReload) 並取消勾選。317若要關閉繼續功能,請開啟 [Continue After Reload 設定](vscode://settings/claudeCode.continueAfterReload) 並取消勾選。在 VS Code 的環境或 [`environmentVariables` 設定](#extension-settings)中設定 [`CLAUDE_CODE_RESUME_INTERRUPTED_TURN`](/docs/zh-TW/env-vars#variables) 或任何其他 `CLAUDE_CODE_RESUME_` 變數,在面板中不會有任何效果,因為擴充功能會在啟動面板的工作階段之前移除這些變數。

310 318 

311<h3 id="run-multiple-conversations">319<h3 id="run-multiple-conversations">

312 執行多個對話320 執行多個對話


364 372 

365* **已安裝的 plugins** 顯示在頂部,並帶有切換開關以啟用或停用它們。373* **已安裝的 plugins** 顯示在頂部,並帶有切換開關以啟用或停用它們。

366 * 如果您關閉您專案的共享 `.claude/settings.json` 開啟的 plugin,擴充功能會先詢問:**為我停用**只為您關閉它,而**為所有人停用**會變更共享檔案。374 * 如果您關閉您專案的共享 `.claude/settings.json` 開啟的 plugin,擴充功能會先詢問:**為我停用**只為您關閉它,而**為所有人停用**會變更共享檔案。

375 * 無法載入的 plugin 會在其列上顯示簡短原因。點擊該原因即可了解您可以採取的措施,包括複製完整的錯誤訊息,以便在[疑難排解 plugins](/docs/zh-TW/plugins/troubleshooting) 中查詢。

367* **可用的 plugins** 來自您設定的 marketplaces,顯示在下方376* **可用的 plugins** 來自您設定的 marketplaces,顯示在下方

368* 搜尋以按名稱或描述篩選 plugins377* 搜尋以按名稱或描述篩選 plugins

369* 點擊任何可用 plugin 上的**安裝**378* 點擊任何可用 plugin 上的**安裝**


406| 參數 | 描述 |415| 參數 | 描述 |

407| - | - |416| - | - |

408| `plugin` | plugin 的名稱,如其 marketplace 所列。必需。 |417| `plugin` | plugin 的名稱,如其 marketplace 所列。必需。 |

409| `marketplace` | plugin 的來源:GitHub `owner/repo`、`https://` URL 或 git SSH URL,例如 `git@github.com:owner/repo.git`。省略時預設為 `anthropics/claude-plugins-official`。 |418| `marketplace` | marketplace 的[來源](/docs/zh-TW/plugins/install#add-a-marketplace):GitHub `owner/repo`、`https://` URL 或 git SSH 位址,例如 `git@github.com:owner/repo.git`。省略時預設為 `anthropics/claude-plugins-official`。 |

419 

420擴充功能在開啟任何內容之前會先檢查這兩個值:

421 

422* **Plugin 名稱**:最多 100 個字元,以 ASCII 字母或數字開頭,其餘僅能使用 ASCII 字母、數字、`.`、`_` 和 `-`。

423* **Marketplace 來源**:僅限 `marketplace` 參數所列的形式,因此不能是本機路徑、`http://` 位址或 marketplace 的名稱,例如 `claude-plugins-official`。`https://` URL 不能包含使用者名稱、密碼或查詢字串。

424* **Git ref**:若要將 marketplace 固定到某個分支或標籤,請在來源後面加上 `%23`(即 `#` 的編碼形式)再接上 ref,例如 `marketplace=owner/repo%23v1.0`。含有未編碼 `#` 的連結會失敗。`anthropics` GitHub 組織中的 marketplaces 無法在連結中固定。

410 425 

411[Marketplaces 標籤](#manage-marketplaces)接受的某些值在連結中不適用,例如本機路徑或 `http://` 位址。對於這些,VS Code 會顯示錯誤訊息,對話框不會開啟。426開啟違反這些規則之連結的人會看到以 `Invalid plugin installation URL` 開頭的錯誤。Claude Code 面板和對話框都不會開啟,也不會安裝任何內容。如果您的 plugin 名稱或 marketplace 無法放入連結中,請告知對方在 **Marketplaces** 標籤中新增 marketplace,然後從 **Plugins** 標籤安裝 plugin。

412 427 

413兩種情況在對話框中以訊息結束,而不是範圍選擇:428這些情況在對話框中以訊息結束,而不是範圍選擇:

414 429 

415* **marketplace 未按該名稱列出 plugin**:對話框報告找不到該 plugin。根據 marketplace 的清單檢查 `plugin` 值。430* **marketplace 未按該名稱列出 plugin**:對話框報告找不到該 plugin。根據 marketplace 的清單檢查 `plugin` 值。

416* **plugin 已安裝**:對話框會說明這一點,且不會進行任何變更。431* **plugin 已安裝**:對話框會說明這一點,且不會進行任何變更。

432* **已新增另一個同名的 marketplace**:對話框會說明連結中的 marketplace 未被新增,且不會安裝任何內容。

417 433 

418GitHub README、議題和某些其他 Markdown 主機會移除其方案不是 `http` 或 `https` 的連結,因此 `vscode://` 連結在那裡呈現為純文字。將 URL 放在這些主機上的程式碼區塊中,如 [連結呈現為純文字而不是可點擊的](/docs/zh-TW/deep-links#the-link-renders-as-plain-text-instead-of-being-clickable) 針對 `claude-cli://` 連結所描述的那樣。434GitHub README、議題和某些其他 Markdown 主機會移除其方案不是 `http` 或 `https` 的連結,因此 `vscode://` 連結在那裡呈現為純文字。將 URL 放在這些主機上的程式碼區塊中,如 [連結呈現為純文字而不是可點擊的](/docs/zh-TW/deep-links#the-link-renders-as-plain-text-instead-of-being-clickable) 針對 `claude-cli://` 連結所描述的那樣。

419 435 


572| `enableNewConversationShortcut` | `false` | 啟用 Cmd/Ctrl+N 以開始新對話 |588| `enableNewConversationShortcut` | `false` | 啟用 Cmd/Ctrl+N 以開始新對話 |

573| `enableReopenClosedSessionShortcut` | `true` | 使用 Cmd/Ctrl+Shift+T 重新開啟最近關閉的 Claude 工作階段標籤。當最後關閉的標籤不是 Claude 工作階段時,快捷鍵會改為執行 VS Code 的正常重新開啟已關閉編輯器命令。 |589| `enableReopenClosedSessionShortcut` | `true` | 使用 Cmd/Ctrl+Shift+T 重新開啟最近關閉的 Claude 工作階段標籤。當最後關閉的標籤不是 Claude 工作階段時,快捷鍵會改為執行 VS Code 的正常重新開啟已關閉編輯器命令。 |

574| `archiveInactiveSessions` | `14` | 在無活動的這許多天後[自動封存工作階段](#resume-past-conversations):`1`、`2`、`7` 或 `14`。設定為 `0` 以關閉。需要 Claude Code v2.1.265 或更新版本 |590| `archiveInactiveSessions` | `14` | 在無活動的這許多天後[自動封存工作階段](#resume-past-conversations):`1`、`2`、`7` 或 `14`。設定為 `0` 以關閉。需要 Claude Code v2.1.265 或更新版本 |

575| `continueAfterReload` | `true` | 視窗重新載入後,Claude [繼續已還原工作階段中被中斷的步驟](#choose-where-claude-lives)。需要 Claude Code v2.1.274 或更新版本 |591| `continueAfterReload` | `true` | 視窗重新載入後,Claude [繼續已還原工作階段中被中斷的步驟](#continue-conversations-after-a-reload)。需要 Claude Code v2.1.274 或更新版本 |

576| `hideOnboarding` | `false` | 隱藏上線檢查清單(畢業帽圖示) |592| `hideOnboarding` | `false` | 隱藏上線檢查清單(畢業帽圖示) |

577| `focusView` | `false` | 將工具呼叫、工具結果和思考隱藏在可展開的列後面,只留下您的提示和 Claude 的回應。Claude 的最新待辦事項清單保持可見;這需要 Claude Code v2.1.225 或更新版本。您也可以從命令選單切換焦點檢視。需要 Claude Code v2.1.221 或更新版本 |593| `focusView` | `false` | 將工具呼叫、工具結果和思考隱藏在可展開的列後面,只留下您的提示和 Claude 的回應。Claude 的最新待辦事項清單保持可見;這需要 Claude Code v2.1.225 或更新版本。您也可以從命令選單切換焦點檢視。需要 Claude Code v2.1.221 或更新版本 |

578| `respectGitIgnore` | `true` | 從檔案搜尋中排除 .gitignore 模式,以及從[選擇內容](#reference-files-and-folders) |594| `respectGitIgnore` | `true` | 從檔案搜尋中排除 .gitignore 模式,以及從[選擇內容](#reference-files-and-folders) |


666 682 

667使用 `@terminal:name` 在您的提示中參考終端機輸出,其中 `name` 是終端機的標題。這讓 Claude 可以看到命令輸出、錯誤訊息或日誌,而無需複製貼上。683使用 `@terminal:name` 在您的提示中參考終端機輸出,其中 `name` 是終端機的標題。這讓 Claude 可以看到命令輸出、錯誤訊息或日誌,而無需複製貼上。

668 684 

685<h3 id="move-a-running-command-or-subagent-to-the-background">

686 將執行中的命令或 subagent 移至背景

687</h3>

688 

689當 Claude 正在等待的命令或 [subagent](/docs/zh-TW/sub-agents) 花費的時間超出您的預期時,請在對話中其工具呼叫下方按一下 **Run in background**。此動作會在命令執行約兩秒後出現,或在 subagent 啟動時立即出現。Claude 會停止等待並繼續該回合,而命令或 subagent 則會繼續作為[背景任務](/docs/zh-TW/tools-reference#background-commands)執行,並在完成時通知 Claude。需要 Claude Code v2.1.287 或更新版本。

690 

691若要在此期間查看任務或將其停止,請在提示詞輸入框中輸入 `/tasks` 以開啟 [agent 地圖](#use-the-prompt-box)。subagent 會在其中的 agent 樹狀結構中保留其位置,而命令則會列在 agent 下方,並[在其卡片上顯示最新輸出](#monitor-background-processes)。以此方式移至背景的命令受[背景命令的時間限制](/docs/zh-TW/tools-reference#time-limit-for-background-commands)約束。

692 

669<h3 id="monitor-background-processes">693<h3 id="monitor-background-processes">

670 監控背景程序694 監控背景程序

671</h3>695</h3>

672 696 

673在提示框中輸入 `/tasks` 以開啟[代理地圖](#use-the-prompt-box),其中列出工作階段的背景工作,例如 Claude 作為背景 shell 命令執行的開發伺服器。按一下工作以開啟其卡片並在該處停止它。需要 Claude Code v2.1.277 或更新版本。697在提示詞輸入框中輸入 `/tasks` 以開啟 [agent 地圖](#use-the-prompt-box),其中列出工作階段的背景任務,例如 Claude 作為背景 shell 命令持續執行的開發伺服器。按一下任務以開啟其卡片,您可以在該處將其停止。需要 Claude Code v2.1.277 或更新版本。

698 

699對於背景 shell 命令,或執行命令的[監控器](/docs/zh-TW/tools-reference#monitor-tool),卡片也會顯示該命令的最新輸出,並在命令執行期間持續重新整理。

674 700 

675<h3 id="connect-to-external-tools-with-mcp">701<h3 id="connect-to-external-tools-with-mcp">

676 使用 MCP 連接到外部工具702 使用 MCP 連接到外部工具

Details

75 75 

76 透過此連接,工作階段可以複製任何公開儲存庫,但只有在 Claude GitHub App 安裝在私人儲存庫上時,才能在私人儲存庫中工作。[在您想要使用其私人儲存庫的每個 GitHub 帳戶或組織上安裝 Claude GitHub App](https://github.com/apps/claude/installations/new)。在 GitHub 組織上,組織擁有者可能需要核准安裝。安裝應用程式也會啟用[自動修復](/docs/zh-TW/claude-code-on-the-web#auto-fix-pull-requests),讓 Claude 能夠回應這些儲存庫中的 CI 失敗和提取要求審查意見。76 透過此連接,工作階段可以複製任何公開儲存庫,但只有在 Claude GitHub App 安裝在私人儲存庫上時,才能在私人儲存庫中工作。[在您想要使用其私人儲存庫的每個 GitHub 帳戶或組織上安裝 Claude GitHub App](https://github.com/apps/claude/installations/new)。在 GitHub 組織上,組織擁有者可能需要核准安裝。安裝應用程式也會啟用[自動修復](/docs/zh-TW/claude-code-on-the-web#auto-fix-pull-requests),讓 Claude 能夠回應這些儲存庫中的 CI 失敗和提取要求審查意見。

77 77 

78 當您連接時,如果您擁有的 GitHub 帳戶已安裝 Claude GitHub App,Claude 也會將這些帳戶連結到您的 Claude 組織。在 Team 和 Enterprise 方案上,管理員可以在[已連接的 GitHub 帳戶清單](/docs/zh-TW/admin-setup#connected-github-accounts)中看到這些帳戶。

79 

78 如果上線流程在此時提示您安裝 Claude GitHub App,而您想稍後再安裝,請按一下**略過**。80 如果上線流程在此時提示您安裝 Claude GitHub App,而您想稍後再安裝,請按一下**略過**。

79 </Step>81 </Step>

80 82 

worktrees.md +5 −1

Details

131 131 

132子代理 worktrees 使用與 `--worktree` 相同的[基礎分支](#choose-the-base-branch),因此它們從您的儲存庫的預設分支分支,除非 `worktree.baseRef` 設定為 `"head"`。132子代理 worktrees 使用與 `--worktree` 相同的[基礎分支](#choose-the-base-branch),因此它們從您的儲存庫的預設分支分支,除非 `worktree.baseRef` 設定為 `"head"`。

133 133 

134在自己 worktree 中執行的 subagent,其[啟動時](/docs/zh-TW/sub-agents#what-loads-at-startup)載入的指示檔案來自您的主對話,而非來自其 worktree。當該 worktree 位於 `.claude/worktrees/` 下的預設位置時,subagent 在讀取該處的檔案時,也不會載入 worktree 根目錄的 `CLAUDE.md` 檔案或 `.claude/rules/` 目錄,即使這些內容在 worktree 的分支上有所不同。

135 

134<h3 id="clean-up-subagent-and-background-session-worktrees">136<h3 id="clean-up-subagent-and-background-session-worktrees">

135 清理子代理和背景會話 worktrees137 清理子代理和背景會話 worktrees

136</h3>138</h3>


170 172 

171您無法將 `worktree.baseRef` 設定為分支名稱。要從特定的現有分支啟動 worktree,請[直接使用 git 建立它](#manage-worktrees-manually)。173您無法將 `worktree.baseRef` 設定為分支名稱。要從特定的現有分支啟動 worktree,請[直接使用 git 建立它](#manage-worktrees-manually)。

172 174 

173對於 `"fresh"` 基礎,Claude Code 會保持 `origin/HEAD` 最新:當儲存庫在過去 24 小時內未被提取時,它會提取預設分支(上限為五秒),如果提取失敗,則使用本地快取的參考。如果未配置遠端,或 `origin/HEAD` 未在本地快取且無法提取,worktree 會回退到您目前的本地 `HEAD`。在 v2.1.208 之前,新 worktree 使用已在本地快取的任何 `origin/HEAD`。175對於 `"fresh"` 基礎,Claude Code 會保持 `origin/HEAD` 最新:當儲存庫在過去 24 小時內未被提取時,它會提取預設分支(上限為五秒),如果提取失敗,則使用本地快取的參考。此提取絕不會等待您在終端機中輸入,因此當 git 或 ssh 需要詢問密碼、金鑰密語或確認新的 SSH 主機時,也會視為提取失敗。如果未配置遠端,或 `origin/HEAD` 未在本地快取且無法提取,worktree 會回退到您目前的本地 `HEAD`。在 v2.1.208 之前,新 worktree 使用已在本地快取的任何 `origin/HEAD`。

174 176 

175此範例使每個新 worktree 從您目前的工作分支:177此範例使每個新 worktree 從您目前的工作分支:

176 178 


198* **gitlab.com**:提取 `merge-requests/<number>/head`200* **gitlab.com**:提取 `merge-requests/<number>/head`

199* **GitHub Enterprise、自管理 GitLab 或任何其他主機**:先嘗試 `pull/<number>/head`,然後 `merge-requests/<number>/head`201* **GitHub Enterprise、自管理 GitLab 或任何其他主機**:先嘗試 `pull/<number>/head`,然後 `merge-requests/<number>/head`

200 202 

203此提取絕不會等待您在終端機中輸入。如果 git 或 ssh 需要詢問密碼、金鑰密語或確認新的 SSH 主機,提取會直接失敗,Claude Code 會以 `Error creating worktree: Failed to fetch PR/MR #<number>` 訊息結束。由 `ssh-agent` 保存的金鑰仍可正常運作,因此請先將金鑰載入其中,並在開始之前手動執行一次 `git fetch` 以記錄新主機。

204 

201在 v2.1.233 之前,Claude Code 只接受 `#<number>` 和 GitHub 風格的拉取請求 URL 用於 `--worktree`,並始終提取 `pull/<number>/head`。205在 v2.1.233 之前,Claude Code 只接受 `#<number>` 和 GitHub 風格的拉取請求 URL 用於 `--worktree`,並始終提取 `pull/<number>/head`。

202 206 

203<h3 id="copy-gitignored-files-into-worktrees">207<h3 id="copy-gitignored-files-into-worktrees">