SpyBara
Go Premium

Documentation 2026-09-28 22:59 UTC to 2026-09-29 14:57 UTC

117 files changed +4,486 −2,065. View all changes and history on the product overview
2026
Tue 29 14:57 Mon 28 22:59 Fri 25 23:58 Thu 24 22:57 Wed 23 23:57 Tue 22 23:59 Mon 21 22:59 Sun 20 23:59 Sat 19 23:57 Fri 18 23:58 Tue 15 23:58 Mon 14 22:58 Sun 13 21:00 Sat 12 03:02 Thu 10 23:00 Wed 9 22:58 Tue 8 20:00 Tue 1 21:02
Details

111 回答選單和提示111 回答選單和提示

112</h2>112</h2>

113 113 

114在螢幕閱讀器模式中,您通常使用方向鍵導覽的選單(包括權限提示)會變成編號清單。Claude Code 會將每個選項宣布為編號行,然後是 `Enter selection` 提示,該提示會說明有效範圍。輸入您想要的選項編號,然後按 Enter。114在螢幕閱讀器模式中,您通常使用方向鍵導覽的選單(包括權限提示)會變成編號清單。Claude Code 會將每個選項宣布為編號行,然後是 `Select with numbers` 提示,該提示會說明有效範圍。輸入您想要的選項編號,然後按 Enter。

115 115 

116* 按 Escape 鍵取消提示以 `or Escape to cancel` 結尾的選單。116* 按 Escape 鍵取消提示以 `or Escape to cancel` 結尾的選單。

117* 如果您輸入的編號不在清單上,Claude Code 會宣布有效範圍,讓您重新嘗試。117* 如果您輸入的編號不在清單上,Claude Code 會宣布有效範圍,讓您重新嘗試。

admin-setup.md +2 −2

Details

97| :- | :- | :- |97| :- | :- | :- |

98| [Permission rules](/docs/zh-TW/permissions) | 允許、詢問或拒絕特定工具和命令 | `permissions.allow`、`permissions.deny` |98| [Permission rules](/docs/zh-TW/permissions) | 允許、詢問或拒絕特定工具和命令 | `permissions.allow`、`permissions.deny` |

99| [Permission lockdown](/docs/zh-TW/permissions#managed-only-settings) | 使受管設定成為[唯一的權限規則設定來源](/docs/zh-TW/settings-reference#allowmanagedpermissionrulesonly)。禁用 `--dangerously-skip-permissions` | `allowManagedPermissionRulesOnly`、`permissions.disableBypassPermissionsMode` |99| [Permission lockdown](/docs/zh-TW/permissions#managed-only-settings) | 使受管設定成為[唯一的權限規則設定來源](/docs/zh-TW/settings-reference#allowmanagedpermissionrulesonly)。禁用 `--dangerously-skip-permissions` | `allowManagedPermissionRulesOnly`、`permissions.disableBypassPermissionsMode` |

100| [Starting permission mode](/docs/zh-TW/permission-modes#which-mode-a-session-starts-in) | 選擇開發人員終端會話啟動時的權限模式,而不是內建的啟動權限模式,或移除自動模式。VS Code 擴充功能僅在 Pro、Max 和 Team 方案上讀取您設定的 `defaultMode`;[切換權限模式](/docs/zh-TW/permission-modes#switch-permission-modes)列出擴充功能讀取的內容 | `permissions.defaultMode`、`permissions.disableAutoMode` |100| [Starting permission mode](/docs/zh-TW/permission-modes#which-mode-a-session-starts-in) | 選擇開發人員終端會話啟動時的權限模式,而不是內建的啟動權限模式,或移除自動模式。[切換權限模式](/docs/zh-TW/permission-modes#switch-permission-modes)列出 VS Code 擴充功能讀取您設定的 `defaultMode` 的時機 | `permissions.defaultMode`、`permissions.disableAutoMode` |

101| [Sandboxing](/docs/zh-TW/sandboxing) | 作業系統級別的檔案系統和網路隔離,具有網域允許清單 | `sandbox.enabled`、`sandbox.network.allowedDomains` |101| [Sandboxing](/docs/zh-TW/sandboxing) | 作業系統級別的檔案系統和網路隔離,具有網域允許清單 | `sandbox.enabled`、`sandbox.network.allowedDomains` |

102| [Managed policy CLAUDE.md](/docs/zh-TW/memory#deploy-organization-wide-claude-md) | 在每個會話中載入的組織範圍指令,無法排除 | 受管政策路徑中的檔案 |102| [Managed policy CLAUDE.md](/docs/zh-TW/memory#deploy-organization-wide-claude-md) | 在每個會話中載入的組織範圍指令,無法排除 | 受管政策路徑中的檔案 |

103| [MCP server control](/docs/zh-TW/managed-mcp) | 限制使用者可以新增或連接的 MCP 伺服器、部署固定集合,或為每個使用者提供遠端伺服器以及他們自己的伺服器 | `allowedMcpServers`、`deniedMcpServers`、`allowManagedMcpServersOnly`、`managedMcpServers`,或已部署的 `managed-mcp.json` 檔案 |103| [MCP server control](/docs/zh-TW/managed-mcp) | 限制使用者可以新增或連接的 MCP 伺服器、部署固定集合,或為每個使用者提供遠端伺服器以及他們自己的伺服器 | `allowedMcpServers`、`deniedMcpServers`、`allowManagedMcpServersOnly`、`managedMcpServers`,或已部署的 `managed-mcp.json` 檔案 |


105| [Customization lockdown](/docs/zh-TW/settings-reference#strictpluginonlycustomization) | 阻止 skills、agents、hooks 和 MCP 伺服器來自使用者和專案來源,使其只能來自外掛程式或受管設定。鎖定 skills 也會停止[您的開發人員在 claude.ai 上啟用的 skills](/docs/zh-TW/skills#where-synced-skills-load)同步 | `strictPluginOnlyCustomization` |105| [Customization lockdown](/docs/zh-TW/settings-reference#strictpluginonlycustomization) | 阻止 skills、agents、hooks 和 MCP 伺服器來自使用者和專案來源,使其只能來自外掛程式或受管設定。鎖定 skills 也會停止[您的開發人員在 claude.ai 上啟用的 skills](/docs/zh-TW/skills#where-synced-skills-load)同步 | `strictPluginOnlyCustomization` |

106| [Disable claude.ai sync](/docs/zh-TW/settings-reference#syncclaudeaiskills) | 停止 Claude Code 載入[skills](/docs/zh-TW/skills#how-synced-skills-behave)和[外掛程式](/docs/zh-TW/plugins/loading#synced-plugins)您的開發人員在 claude.ai 上啟用。如果您為組織關閉 claude.ai 上的 Skills,Claude Code 會停止同步兩者,在 v2.1.273 或更新版本上,它也會移除已同步的。若要在不關閉 Skills 的情況下停止其中任一個,請在受管設定中將其鍵設定為 `false` | `syncClaudeAiSkills`、`syncClaudeAiPlugins` |106| [Disable claude.ai sync](/docs/zh-TW/settings-reference#syncclaudeaiskills) | 停止 Claude Code 載入[skills](/docs/zh-TW/skills#how-synced-skills-behave)和[外掛程式](/docs/zh-TW/plugins/loading#synced-plugins)您的開發人員在 claude.ai 上啟用。如果您為組織關閉 claude.ai 上的 Skills,Claude Code 會停止同步兩者,在 v2.1.273 或更新版本上,它也會移除已同步的。若要在不關閉 Skills 的情況下停止其中任一個,請在受管設定中將其鍵設定為 `false` | `syncClaudeAiSkills`、`syncClaudeAiPlugins` |

107| [Hook restrictions](/docs/zh-TW/settings-reference#allowmanagedhooksonly) | 限制哪些 hooks 執行並限制 HTTP hook URL;請參閱[在 `allowManagedHooksOnly` 下執行的內容](/docs/zh-TW/settings-reference#what-runs-under-allowmanagedhooksonly)以了解完整的效果清單 | `allowManagedHooksOnly`、`allowedHttpHookUrls` |107| [Hook restrictions](/docs/zh-TW/settings-reference#allowmanagedhooksonly) | 限制哪些 hooks 執行並限制 HTTP hook URL;請參閱[在 `allowManagedHooksOnly` 下執行的內容](/docs/zh-TW/settings-reference#what-runs-under-allowmanagedhooksonly)以了解完整的效果清單 | `allowManagedHooksOnly`、`allowedHttpHookUrls` |

108| [Login enforcement](/docs/zh-TW/settings-reference#forceloginmethod) | 限制登入為特定方法或 Anthropic 組織。方法限制適用於 VS Code 擴充功能、Agent SDK、`claude setup-token` 和 `/install-github-app`,以及終端的互動式登入畫面(透過 `/login` 或首次執行上線到達),預先選擇方法而不強制執行;Claude Code 驗證終端、VS Code 擴充功能和 Agent SDK 中 claude.ai 帳戶登入的組織,不檢查 Claude Console 登入或[閘道](/docs/zh-TW/claude-apps-gateway)登入。在 v2.1.212 之前,只有終端登入應用任一鍵。設定時,由 `ANTHROPIC_API_KEY`、`ANTHROPIC_AUTH_TOKEN` 或 `apiKeyHelper` 驗證的會話在啟動時被阻止;雲端提供者會話不受影響 | `forceLoginMethod`、`forceLoginOrgUUID` |108| [Login enforcement](/docs/zh-TW/settings-reference#forceloginmethod) | 限制登入為特定方法或 Anthropic 組織。方法限制適用於 VS Code 擴充功能、Agent SDK、`claude setup-token` 和 `/install-github-app`,以及終端的互動式登入畫面(透過 `/login` 或首次執行上線到達),預先選擇方法而不強制執行;Claude Code 驗證終端、VS Code 擴充功能和 Agent SDK 中 claude.ai 帳戶登入的組織,不檢查 Claude Console 登入或[閘道](/docs/zh-TW/claude-apps-gateway)登入。在 v2.1.212 之前,只有終端登入應用任一鍵。設定時,由 `ANTHROPIC_API_KEY`、`ANTHROPIC_AUTH_TOKEN` 或 `apiKeyHelper` 驗證的會話在啟動時被阻止;雲端提供者會話不受影響,除非這些認證之一或由較早的 Claude Console 登入儲存的 API 金鑰也存在 | `forceLoginMethod`、`forceLoginOrgUUID` |

109| [Disable agent view](/docs/zh-TW/agent-view#how-background-sessions-are-hosted) | 關閉 `claude agents`、`--bg`、`/background` 和隨選監督員 | `disableAgentView` |109| [Disable agent view](/docs/zh-TW/agent-view#how-background-sessions-are-hosted) | 關閉 `claude agents`、`--bg`、`/background` 和隨選監督員 | `disableAgentView` |

110| [Configure the corporate launcher](/docs/zh-TW/corporate-launcher) | 使用必需的公司啟動器作為[背景代理監督員](/docs/zh-TW/agent-view#how-background-sessions-are-hosted)、其工作者和[其他涵蓋的背景程序](/docs/zh-TW/corporate-launcher#what-the-launcher-covers)的前綴,而不是關閉代理檢視 | `processWrapper` |110| [Configure the corporate launcher](/docs/zh-TW/corporate-launcher) | 使用必需的公司啟動器作為[背景代理監督員](/docs/zh-TW/agent-view#how-background-sessions-are-hosted)、其工作者和[其他涵蓋的背景程序](/docs/zh-TW/corporate-launcher#what-the-launcher-covers)的前綴,而不是關閉代理檢視 | `processWrapper` |

111| [Model restrictions](/docs/zh-TW/model-config#restrict-model-selection) | `availableModels` 篩選模型選擇器中出現的模型。新增 `enforceAvailableModels` 也會限制自動選擇的預設模型。請參閱[表面涵蓋範圍](/docs/zh-TW/model-config#surface-coverage)以了解此設定如何到達 CLI、網頁和 IDE | `availableModels`、`enforceAvailableModels` |111| [Model restrictions](/docs/zh-TW/model-config#restrict-model-selection) | `availableModels` 篩選模型選擇器中出現的模型。新增 `enforceAvailableModels` 也會限制自動選擇的預設模型。請參閱[表面涵蓋範圍](/docs/zh-TW/model-config#surface-coverage)以了解此設定如何到達 CLI、網頁和 IDE | `availableModels`、`enforceAvailableModels` |

advisor.md +3 −2

Details

101| - | - | - |101| - | - | - |

102| Haiku 4.5 | Fable、Opus、Sonnet | Haiku 可以呼叫顧問但不能充當顧問 |102| Haiku 4.5 | Fable、Opus、Sonnet | Haiku 可以呼叫顧問但不能充當顧問 |

103| Sonnet 4.6 | Fable、Opus、Sonnet | |103| Sonnet 4.6 | Fable、Opus、Sonnet | |

104| Sonnet 5 | Fable、Opus 4.7 或更新版本、Sonnet 5 | Sonnet 4.6 顧問會被拒絕,API 會拒絕 Opus 4.6 顧問 |104| Sonnet 5.5 或 Sonnet 5 | Fable、Opus 4.7 或更新版本、Sonnet 5 或更新版本 | Sonnet 4.6 顧問會被拒絕,API 會拒絕 Opus 4.6 顧問 |

105| Opus 4.6 | Fable、Opus、Sonnet 5 | Sonnet 4.6 顧問會被拒絕 |105| Opus 4.6 | Fable、Opus、Sonnet 5 或更新版本 | Sonnet 4.6 顧問會被拒絕 |

106| Opus 4.7 或 Opus 4.8 | Fable 和 Opus 4.7 或更新版本 | Opus 4.6 或 Sonnet 顧問會被拒絕 |106| Opus 4.7 或 Opus 4.8 | Fable 和 Opus 4.7 或更新版本 | Opus 4.6 或 Sonnet 顧問會被拒絕 |

107| Opus 5.5 或 Opus 5 | Fable 和 Opus 5 或更新版本 | Opus 4.6 或 Sonnet 顧問會被拒絕,API 會拒絕 Opus 4.7 或 Opus 4.8 顧問 |107| Opus 5.5 或 Opus 5 | Fable 和 Opus 5 或更新版本 | Opus 4.6 或 Sonnet 顧問會被拒絕,API 會拒絕 Opus 4.7 或 Opus 4.8 顧問 |

108| Fable 5 | Fable 5.1 或 Fable 5 | Opus 或 Sonnet 顧問會被拒絕 |108| Fable 5 | Fable 5.1 或 Fable 5 | Opus 或 Sonnet 顧問會被拒絕 |


161 161 

162* **Reviewed**:該行確認顧問已審查對話。當顧問返回可讀的指導時,按 `Ctrl+O` 閱讀。162* **Reviewed**:該行確認顧問已審查對話。當顧問返回可讀的指導時,按 `Ctrl+O` 閱讀。

163* **Declined**:該行顯示 `Advisor declined to advise on this request`。如果顧問提供了原因,按 `Ctrl+O` 閱讀。163* **Declined**:該行顯示 `Advisor declined to advise on this request`。如果顧問提供了原因,按 `Ctrl+O` 閱讀。

164* **Unavailable**:顧問呼叫失敗,該行顯示 `Advisor unavailable (<error_code>)`,其中 `<error_code>` 是呼叫返回的代碼。

164 165 

165Claude 通常遵循顧問的指導,但在其自身證據與特定聲明相矛盾時進行調整:如果建議的步驟在嘗試時失敗,或檔案內容與建議相矛盾,Claude 會表面衝突而不是無條件地遵循指導。166Claude 通常遵循顧問的指導,但在其自身證據與特定聲明相矛盾時進行調整:如果建議的步驟在嘗試時失敗,或檔案內容與建議相矛盾,Claude 會表面衝突而不是無條件地遵循指導。

166 167 

Details

129請參閱 [`tool()`](/docs/zh-TW/agent-sdk/typescript#tool) TypeScript 參考或 [`@tool`](/docs/zh-TW/agent-sdk/python#tool) Python 參考以取得完整的參數詳細資訊,包括 JSON 綱要輸入格式和傳回值結構。129請參閱 [`tool()`](/docs/zh-TW/agent-sdk/typescript#tool) TypeScript 參考或 [`@tool`](/docs/zh-TW/agent-sdk/python#tool) Python 參考以取得完整的參數詳細資訊,包括 JSON 綱要輸入格式和傳回值結構。

130 130 

131<Tip>131<Tip>

132 若要使參數成為選用:在 TypeScript 中,將 `.default()` 新增至 Zod 欄位。在 Python 中,字典綱要將每個鍵視為必需,因此請將參數留出綱要,在描述字串中提及它,並在處理程式中使用 `args.get()` 讀取它。下面的 [`get_precipitation_chance` 工具](#add-more-tools)顯示兩種模式。132 若要使參數成為選用:在 TypeScript 中,將 `.optional()` 新增至 Zod 欄位,並在處理程式中套用預設值。在 Python 中,字典綱要將每個鍵視為必需,因此請將參數留出綱要,在描述字串中提及它,並在處理程式中使用 `args.get()` 讀取它。下面的 [`get_precipitation_chance` 工具](#add-more-tools)顯示兩種模式。

133</Tip>133</Tip>

134 134 

135<h3 id="call-a-custom-tool">135<h3 id="call-a-custom-tool">


248 .int()248 .int()

249 .min(1)249 .min(1)

250 .max(24)250 .max(24)

251 .default(12) // .default() makes the parameter optional251 .optional() // .optional() lets Claude omit the parameter

252 .describe("How many hours of forecast to return")252 .describe("How many hours of forecast to return")

253 },253 },

254 async (args) => {254 async (args) => {

255 const hours = args.hours ?? 12; // Apply the default in the handler

255 const response = await fetch(256 const response = await fetch(

256 `https://api.open-meteo.com/v1/forecast?latitude=${args.latitude}&longitude=${args.longitude}&hourly=precipitation_probability&forecast_days=1`257 `https://api.open-meteo.com/v1/forecast?latitude=${args.latitude}&longitude=${args.longitude}&hourly=precipitation_probability&forecast_days=1`

257 );258 );

258 const data: any = await response.json();259 const data: any = await response.json();

259 const chances = data.hourly.precipitation_probability.slice(0, args.hours);260 const chances = data.hourly.precipitation_probability.slice(0, hours);

260 261 

261 return {262 return {

262 content: [{ type: "text", text: `Next ${args.hours} hours: ${chances.join("%, ")}%` }]263 content: [{ type: "text", text: `Next ${hours} hours: ${chances.join("%, ")}%` }]

263 };264 };

264 }265 }

265 );266 );


469 影像470 影像

470</h3>471</h3>

471 472 

472影像區塊以 base64 編碼的方式內聯攜帶影像位元組。沒有 URL 欄位。若要返回位於 URL 的影像,請在處理程式中擷取它、讀取回應位元組,並在返回之前進行 base64 編碼。結果會作為視覺輸入進行處理。473影像區塊以 base64 編碼的方式內聯攜帶影像位元組。沒有 URL 欄位。若要返回位於 URL 的影像,請在處理程式中擷取它、讀取回應位元組,並在返回之前進行 base64 編碼。PNG、JPEG、GIF 或 WebP 影像會作為視覺輸入傳送給 Claude;任何其他類型的影像會儲存到磁碟,Claude 會改為收到其檔案路徑作為文字。

473 474 

474| 欄位 | 類型 | 備註 |475| 欄位 | 類型 | 備註 |

475| :- | :- | :- |476| :- | :- | :- |


538 資源539 資源

539</h3>540</h3>

540 541 

541資源區塊嵌入由 URI 識別的內容片段。URI 是 Claude 稍後參考的標籤;實際內容位於區塊的 `text` 或 `blob` 欄位中。當您的工具產生的內容稍後按名稱尋址時使用此功能,例如產生的檔案或來自外部系統的記錄。542資源區塊嵌入由 URI 識別的內容片段。實際內容位於區塊的 `text` 或 `blob` 欄位中。當您的工具產生產生的檔案或來自外部系統的記錄時,請使用此功能。

542 543 

543| 欄位 | 類型 | 備註 |544| 欄位 | 類型 | 備註 |

544| :- | :- | :- |545| :- | :- | :- |


548| `resource.blob` | `string` | 內容 base64 編碼(如果是二進位)。僅限 TypeScript:Python SDK 會從工具結果中移除二進位資源並記錄警告 |549| `resource.blob` | `string` | 內容 base64 編碼(如果是二進位)。僅限 TypeScript:Python SDK 會從工具結果中移除二進位資源並記錄警告 |

549| `resource.mimeType` | `string` | 選用 |550| `resource.mimeType` | `string` | 選用 |

550 551 

551此範例顯示從工具處理程式內部返回的資源區塊。URI `file:///tmp/report.md` 是 Claude 稍後可以參考的標籤;SDK 不會從該路徑讀取。552此範例顯示從工具處理程式內部返回的資源區塊。SDK 不會從範例的 URI `file:///tmp/report.md` 讀取。

552 553 

553<CodeGroup>554<CodeGroup>

554 ```typescript TypeScript theme={null}555 ```typescript TypeScript theme={null}


572 {573 {

573 "type": "resource",574 "type": "resource",

574 "resource": {575 "resource": {

575 "uri": "file:///tmp/report.md", # Label for Claude to reference, not a path the SDK reads576 "uri": "file:///tmp/report.md", # Not a path the SDK reads

576 "mimeType": "text/markdown",577 "mimeType": "text/markdown",

577 "text": "# Report\n...", # The actual content, inline578 "text": "# Report\n...", # The actual content, inline

578 },579 },

Details

6 6 

7> 尋找完整、可執行的 Agent SDK 專案或 Claude Cookbook 中的引導式配方,以符合您想要建置的內容。7> 尋找完整、可執行的 Agent SDK 專案或 Claude Cookbook 中的引導式配方,以符合您想要建置的內容。

8 8 

9此頁面會引導您前往完整、可執行的 Agent SDK 專案和引導式 Claude Cookbook 配方。TypeScript 應用程式位於 [`claude-agent-sdk-demos`](https://github.com/anthropics/claude-agent-sdk-demos) 儲存庫中,Python 配方位於 [Claude Cookbook](https://platform.claude.com/cookbook) 中。9此頁面會引導您前往完整、可執行的 Agent SDK 專案和引導式 Claude Cookbook 配方。應用程式位於 [`claude-agent-sdk-demos`](https://github.com/anthropics/claude-agent-sdk-demos) 儲存庫中,Python 配方位於 [Claude Cookbook](https://platform.claude.com/cookbook) 中。

10 10 

11<h2 id="run-a-minimal-agent-first">11<h2 id="run-a-minimal-agent-first">

12 先執行最小化代理12 先執行最小化代理


18 18 

19* [Hello World](https://github.com/anthropics/claude-agent-sdk-demos/tree/main/hello-world):當您想從儲存庫程式碼開始時要複製的最小化 TypeScript 專案19* [Hello World](https://github.com/anthropics/claude-agent-sdk-demos/tree/main/hello-world):當您想從儲存庫程式碼開始時要複製的最小化 TypeScript 專案

20 20 

21<h2 id="explore-a-typescript-application">21<h2 id="explore-a-demo-application">

22 探索 TypeScript 應用程式22 探索示範應用程式

23</h2>23</h2>

24 24 

25[`claude-agent-sdk-demos`](https://github.com/anthropics/claude-agent-sdk-demos) 中的 TypeScript 應用程式是本機開發的示範,從電子郵件用戶端到多代理研究系統。複製其形狀與您正在建置的內容相符的示範。25[`claude-agent-sdk-demos`](https://github.com/anthropics/claude-agent-sdk-demos) 中的應用程式是本機開發的示範,從電子郵件用戶端到多代理研究系統。複製其形狀與您正在建置的內容相符的示範。

26 26 

27<h2 id="work-through-a-python-recipe">27<h2 id="work-through-a-python-recipe">

28 進行 Python 配方28 進行 Python 配方

Details

247 ```247 ```

248 </CodeGroup>248 </CodeGroup>

249 249 

250 如果您捕捉了工作階段 ID 和 checkpoint ID,您也可以從 CLI 回溯。此命令需要 `claude` 可執行檔,該檔案來自[安裝 Claude Code](/docs/zh-TW/setup),並且不是由 SDK 套件安裝的。SDK 為您啟用 checkpointing,但當您直接執行 `claude -p` 時,您必須設定 `CLAUDE_CODE_ENABLE_SDK_FILE_CHECKPOINTING` 環境變數:250 如果您捕捉了工作階段 ID 和 checkpoint ID,您也可以從 CLI 回溯。此命令需要 `claude` 可執行檔,該檔案來自[安裝 Claude Code](/docs/zh-TW/setup)。SDK 為您啟用 checkpointing,但當您直接執行 `claude -p` 時,您必須設定 `CLAUDE_CODE_ENABLE_SDK_FILE_CHECKPOINTING` 環境變數:

251 251 

252 ```bash theme={null}252 ```bash theme={null}

253 CLAUDE_CODE_ENABLE_SDK_FILE_CHECKPOINTING=true claude -p --resume <session-id> --rewind-files <checkpoint-uuid>253 CLAUDE_CODE_ENABLE_SDK_FILE_CHECKPOINTING=true claude -p --resume <session-id> --rewind-files <checkpoint-uuid>

Details

127 127 

128範例工作負載包括對傳入郵件進行分類和回應的電子郵件代理、透過容器連接埠託管每個使用者可編輯網站的網站建構器,以及處理來自 Slack 等平台的持續流量的聊天機器人。128範例工作負載包括對傳入郵件進行分類和回應的電子郵件代理、透過容器連接埠託管每個使用者可編輯網站的網站建構器,以及處理來自 Slack 等平台的持續流量的聊天機器人。

129 129 

130容器公開 HTTP 或 WebSocket 端點,並將每個活躍工作階段對應到長期執行的查詢及其背後的子程序。在 TypeScript 中,使用 [`streamInput()`](/docs/zh-TW/agent-sdk/typescript#query-object) 將轉數新增到活躍工作階段,並使用 [`startup()`](/docs/zh-TW/agent-sdk/typescript#startup) 在傳入流量前預熱子程序。在 Python 中,使用 [`ClaudeSDKClient`](/docs/zh-TW/agent-sdk/python#claudesdkclient) 在轉數間保持工作階段開啟。調整容器大小,使其能夠在記憶體中保持最大並行工作階段數。130容器公開 HTTP 或 WebSocket 端點,並將每個活躍工作階段對應到長期執行的查詢及其背後的子程序。保持工作階段開啟和就緒的呼叫在 SDK 之間有所不同:

131 

132* **TypeScript**:使用 [`streamInput()`](/docs/zh-TW/agent-sdk/typescript#query-object) 將轉數新增到活躍工作階段。呼叫 [`startup()`](/docs/zh-TW/agent-sdk/typescript#startup) 在傳入流量前預熱子程序。如果您在第一個請求到達之前不知道工作階段的工作目錄,請改用 [`prewarm()`](/docs/zh-TW/agent-sdk/typescript#prewarm) 進行預熱。

133* **Python**:使用 [`ClaudeSDKClient`](/docs/zh-TW/agent-sdk/python#claudesdkclient) 在轉數間保持工作階段開啟。

134 

135調整容器大小,使其能夠在記憶體中保持最大並行工作階段數。

131 136 

132<h3 id="hybrid-sessions">137<h3 id="hybrid-sessions">

133 混合工作階段138 混合工作階段

Details

162| :- | :- | :- |162| :- | :- | :- |

163| stdio 伺服器,或沒有快取工具清單的 HTTP/SSE 伺服器 | 是,直到連線為止 | [`MCP_TIMEOUT`](/docs/zh-TW/env-vars),預設為 30 秒;連線在該期限失敗 |163| stdio 伺服器,或沒有快取工具清單的 HTTP/SSE 伺服器 | 是,直到連線為止 | [`MCP_TIMEOUT`](/docs/zh-TW/env-vars),預設為 30 秒;連線在該期限失敗 |

164| 具有快取工具清單的遠端伺服器,由 Claude Code 從先前的連線儲存 | 否;快取的工具從第一輪開始可用 | 無;在其第一次工具呼叫時連線,該延遲連線有其自己的逾時 |164| 具有快取工具清單的遠端伺服器,由 Claude Code 從先前的連線儲存 | 否;快取的工具從第一輪開始可用 | 無;在其第一次工具呼叫時連線,該延遲連線有其自己的逾時 |

165| 同處理序 [SDK 伺服器](#sdk-mcp-servers) | 是,直到連線並列出其工具為止 | 無;連線和工具列出請求各有其自己的逾時 |165| 同處理序 [SDK 伺服器](#sdk-mcp-servers) | 是,直到連線並列出其工具為止 | [`MCP_TIMEOUT`](/docs/zh-TW/env-vars),預設為 30 秒,每次連線嘗試;連線在該期限失敗 |

166 166 

167從 [設定檔](#from-a-config-file)(例如 `.mcp.json`)或從外掛程式載入的伺服器通常在 init 訊息中顯示 `pending`。當 `options.mcpServers` 包含 stdio、HTTP 或 SSE 伺服器時,第一輪也會等待這些待處理的伺服器,最多等待 `MCP_TIMEOUT`。當 `options.mcpServers` 為空或僅包含 SDK 伺服器時,第一輪改為最多等待 2 秒:167從 [設定檔](#from-a-config-file)(例如 `.mcp.json`)或從外掛程式載入的伺服器通常在 init 訊息中顯示 `pending`。當 `options.mcpServers` 包含 stdio、HTTP 或 SSE 伺服器時,第一輪也會等待這些待處理的伺服器,最多等待 `MCP_TIMEOUT`。當 `options.mcpServers` 為空或僅包含 SDK 伺服器時,第一輪改為最多等待 2 秒:

168 168 

Details

14 14 

15系統提示詞是初始指令集,塑造了 Claude 在整個對話中的行為方式。Agent SDK 有三個起點:15系統提示詞是初始指令集,塑造了 Claude 在整個對話中的行為方式。Agent SDK 有三個起點:

16 16 

17* **最小預設**:當您在 TypeScript 中未設定 `systemPrompt` 或在 Python 中未設定 `system_prompt` 時,SDK 使用最小提示詞,涵蓋工具呼叫但省略了 `claude_code` 預設的其餘內容,包括其安全和防護指令以及關於工作目錄和環境的上下文。這與 `claude -p` 不同,後者預設使用 Claude Code 系統提示詞。如果您正在從 CLI 遷移並想要相符的行為,請設定 `claude_code` 預設。17* **最小預設**:當您在 TypeScript 中未設定 `systemPrompt` 或在 Python 中未設定 `system_prompt` 時,SDK 使用最小提示詞,涵蓋工具呼叫但省略了 `claude_code` 預設的其餘內容,包括其安全和防護指令。這與 `claude -p` 不同,後者預設使用 Claude Code 系統提示詞。如果您正在從 CLI 遷移並想要相符的行為,請設定 `claude_code` 預設。

18* **`claude_code` 預設**:Claude Code CLI 使用的系統提示詞,包含工具使用指令、安全和防護指令,以及關於工作目錄和環境的上下文。在 TypeScript 中設定 `systemPrompt: { type: "preset", preset: "claude_code" }`,或在 Python 中設定 `system_prompt={"type": "preset", "preset": "claude_code"}`,可選擇使用 `append` 在末尾新增您自己的指令。18* **`claude_code` 預設**:Claude Code CLI 使用的系統提示詞,包含工具使用指令和安全和防護指令。在 TypeScript 中設定 `systemPrompt: { type: "preset", preset: "claude_code" }`,或在 Python 中設定 `system_prompt={"type": "preset", "preset": "claude_code"}`,可選擇使用 `append` 在末尾新增您自己的指令。

19* **自訂字串**:您自己撰寫的提示詞。SDK 只會傳送您提供的內容。19* **自訂字串**:您自己撰寫的提示詞。SDK 只會傳送您提供的內容。

20 20 

21<h3 id="decide-on-a-starting-point">21<h3 id="decide-on-a-starting-point">


26 26 

27| 您正在建置 | 使用 | 您會得到 |27| 您正在建置 | 使用 | 您會得到 |

28| :- | :- | :- |28| :- | :- | :- |

29| 一個 CLI 或類似 IDE 的編碼工具,其中人類監看並引導,而 Claude Code 的預設值是您想要的 | `claude_code` 預設 | Claude Code 提示詞,包括工具指導、安全規則和環境上下文 |29| 一個 CLI 或類似 IDE 的編碼工具,其中人類監看並引導,而 Claude Code 的預設值是您想要的 | `claude_code` 預設 | Claude Code 提示詞,包括工具指導和安全規則 |

30| 相同類型的工具,加上產品特定的規則,如編碼標準、輸出格式或領域上下文 | `claude_code` 預設搭配 `append` | 上述所有內容,加上您的指令新增在預設之後。沒有任何內容被移除,所以這是風險最低的自訂 |30| 相同類型的工具,加上產品特定的規則,如編碼標準、輸出格式或領域上下文 | `claude_code` 預設搭配 `append` | 上述所有內容,加上您的指令新增在預設之後。沒有任何內容被移除,所以這是風險最低的自訂 |

31| 具有不同表面、身份或權限模型的代理,或非編碼代理 | 自訂提示詞字串 | 僅您撰寫的內容。您負責替換您的代理仍需要的工具指導和安全指令 |31| 具有不同表面、身份或權限模型的代理,或非編碼代理 | 自訂提示詞字串 | 僅您撰寫的內容。您負責替換您的代理仍需要的工具指導和安全指令 |

32| 一個薄型工具呼叫迴圈,沒有代理角色,您在使用者提示詞中提供所有行為 | 無 `systemPrompt` 選項 | 最小預設:工具呼叫支援,沒有其他 |32| 一個薄型工具呼叫迴圈,沒有代理角色,您在使用者提示詞中提供所有行為 | 無 `systemPrompt` 選項 | 最小預設:工具呼叫支援,沒有其他 |


225 改進跨使用者和機器的提示詞快取225 改進跨使用者和機器的提示詞快取

226</h4>226</h4>

227 227 

228預設情況下,使用相同 `claude_code` 預設值和 `append` 文字的兩個會話,如果從不同的工作目錄執行,仍然無法共享提示詞快取項目。這是因為預設值在您的 `append` 文字之前在系統提示詞中嵌入了每個會話的上下文:工作目錄、它是否為 git 儲存庫、平台、活動 shell、OS 版本和自動記憶路徑。該上下文中的任何差異都會產生不同的系統提示詞和快取未命中。CLAUDE.md 內容不會影響系統提示詞快取,因為 SDK 將其注入對話中,而不是系統提示詞。228預設情況下,使用相同 `claude_code` 預設值和 `append` 文字的兩個會話仍然無法共享提示詞快取項目,當它們的自動記憶位置不同時。預設值在您的 `append` 文字之前在系統提示詞中嵌入該位置。該位置預設為 `~/.claude/projects/` 下的絕對路徑,以儲存庫在磁碟上的路徑命名,因此在使用者、機器和簽出之間不同。

229 229 

230要使系統提示詞在會話中相同,請在 TypeScript 中設定 `excludeDynamicSections: true`,或在 Python 中設定 `"exclude_dynamic_sections": True`。每個會話的上下文移動到第一個使用者訊息中,只在系統提示詞中保留靜態預設值和您的 `append` 文字,以便相同的配置可以在使用者和機器之間共享快取項目。230CLAUDE.md 內容和環境詳細資訊(例如工作目錄、平台、shell 和 OS 版本)不會影響系統提示詞快取,因為 Claude Code 在對話中而不是系統提示詞中傳遞它們。

231 

232要使系統提示詞在會話中相同,請在 TypeScript 中設定 `excludeDynamicSections: true`,或在 Python 中設定 `"exclude_dynamic_sections": True`。每個使用者的上下文移動到第一個使用者訊息中,只在系統提示詞中保留靜態預設值和您的 `append` 文字,以便相同的配置可以在使用者和機器之間共享快取項目。

231 233 

232<Note>234<Note>

233 `excludeDynamicSections` 需要 `@anthropic-ai/claude-agent-sdk` v0.2.98 或更新版本,或 Python 的 `claude-agent-sdk` v0.1.58 或更新版本。僅在預設物件形式上設定它。SDK 在您傳遞自訂提示詞而不是預設值時會忽略它;要在 TypeScript SDK 中保持自訂提示詞的指令快取,請參閱 [快取自訂提示詞的靜態部分](#cache-the-static-part-of-a-custom-prompt)。235 `excludeDynamicSections` 需要 `@anthropic-ai/claude-agent-sdk` v0.2.98 或更新版本,或 Python 的 `claude-agent-sdk` v0.1.58 或更新版本。僅在預設物件形式上設定它。SDK 在您傳遞自訂提示詞而不是預設值時會忽略它;要在 TypeScript SDK 中保持自訂提示詞的指令快取,請參閱 [快取自訂提示詞的靜態部分](#cache-the-static-part-of-a-custom-prompt)。

234</Note>236</Note>

235 237 

236以下範例將共享 `append` 區塊與 `excludeDynamicSections` 配對,以便從不同目錄執行的代理程式群隊可以重複使用相同的快取系統提示詞:238以下範例將共享 `append` 區塊與 `excludeDynamicSections` 配對,以便代理程式群隊可以重複使用相同的快取系統提示詞:

237 239 

238<CodeGroup>240<CodeGroup>

239 ```typescript TypeScript theme={null}241 ```typescript TypeScript theme={null}


279 ```281 ```

280</CodeGroup>282</CodeGroup>

281 283 

282**權衡:** 工作目錄、git 儲存庫旗標、平台、活動 shell、OS 版本和自動記憶路徑仍然會到達 Claude,但作為第一個使用者訊息的一部分,而不是系統提示詞。使用者訊息中的指令比系統提示詞中的相同文字的權重略低,所以 Claude 在推理目前目錄或自動記憶路徑時可能會較少依賴它們。當跨會話快取重複使用比最大化權威環境上下文更重要時,請啟用此選項。284**權衡:** 移出系統提示詞的文字仍然會到達 Claude,但在使用者訊息中。該文字至少是自動記憶目錄的位置,通常是整個自動記憶部分。使用者訊息中的指令比系統提示詞中的相同文字的權重略低,因此 Claude 可能會較少一致地遵循其自動記憶指導。當跨會話快取重複使用比最大化權威環境上下文更重要時,請啟用此選項。

283 285 

284對於非互動式 CLI 模式中的等效旗標,請參閱 [`--exclude-dynamic-system-prompt-sections`](/docs/zh-TW/cli-reference)。286對於非互動式 CLI 模式中的等效旗標,請參閱 [`--exclude-dynamic-system-prompt-sections`](/docs/zh-TW/cli-reference)。

285 287 


418 420 

419預設情況下記錄 `append` 或自訂提示詞需要 Claude Code v2.1.265 或更新版本,TypeScript Agent SDK 從 v0.3.265 開始捆綁,Python Agent SDK 從 v0.2.153 開始捆綁。在 Claude Code v2.1.268 之前,不 [擷取功能旗標](/docs/zh-TW/env-vars#features-that-need-feature-flag-fetching) 的會話,包括 Amazon Bedrock、Google Cloud 的 Agent Platform 和 Microsoft Foundry 上的會話,在每個請求上重建提示詞,`snapshot` 無效。421預設情況下記錄 `append` 或自訂提示詞需要 Claude Code v2.1.265 或更新版本,TypeScript Agent SDK 從 v0.3.265 開始捆綁,Python Agent SDK 從 v0.2.153 開始捆綁。在 Claude Code v2.1.268 之前,不 [擷取功能旗標](/docs/zh-TW/env-vars#features-that-need-feature-flag-fetching) 的會話,包括 Amazon Bedrock、Google Cloud 的 Agent Platform 和 Microsoft Foundry 上的會話,在每個請求上重建提示詞,`snapshot` 無效。

420 422 

423<h2 id="context-claude-code-adds-outside-the-system-prompt">

424 Claude Code 在系統提示之外新增的上下文

425</h2>

426 

427系統提醒是 Claude Code 在工作階段期間新增到對話中的訊息,用於為 Claude 提供上下文,例如您的 CLAUDE.md 檔案內容或檔案在磁碟上已變更的備註。Claude Code 在對話中傳送這些訊息,而不是在系統提示中,因此無論您使用 `claude_code` 預設值還是傳遞您自己的字串作為 `systemPrompt`,它們都會到達 Claude。

428 

429本節涵蓋[最可能改變您代理程式行為的提醒](#reminders-claude-code-adds-to-the-conversation)、如何[關閉您的代理程式取代的提醒](#turn-off-the-context-your-agent-replaces),以及如何[查看 Claude 在特定請求中收到的內容](#see-what-claude-received)。

430 

431<h3 id="reminders-claude-code-adds-to-the-conversation">

432 Claude Code 新增到對話中的提醒

433</h3>

434 

435系統提醒是 Claude Code 新增到對話中的文字,與您的程式碼傳送的提示一起。以下提醒最可能改變您代理程式的行為:

436 

437* **專案指示**:您的 [`settingSources`](#claude-md-files-for-project-level-instructions) 選項載入的 CLAUDE.md 檔案

438* **輸出樣式指示**:主對話中作用中[輸出樣式](#output-styles-for-persistent-configurations)的指示

439* **提交和拉取請求歸屬**:來自 [`attribution`](/docs/zh-TW/settings-reference#attribution) 設定的 `Co-Authored-By` 預告片和拉取請求頁尾

440* **Hook 輸出**:您的 [hooks](/docs/zh-TW/agent-sdk/hooks#outputs) 作為 `additionalContext` 傳回的文字

441* **可用技能**:Claude 可以呼叫的[技能](/docs/zh-TW/agent-sdk/skills)的名稱和描述

442* **可用子代理程式**:Claude 可以啟動的[子代理程式](/docs/zh-TW/agent-sdk/subagents)的名稱和描述

443* **工作清單提示**:在[具有工作追蹤工具的工作階段](/docs/zh-TW/agent-sdk/todo-tracking#model-availability)中,當 Claude 在多個回合中未觸及工作清單時,會提示更新工作清單

444* **檔案已變更備註**:Claude 稍早讀取的檔案已在磁碟上變更的備註

445 

446Claude Code 使用一行文字介紹您的 CLAUDE.md 檔案,告訴 Claude 這些指示會覆寫預設行為。

447 

448如果您傳遞您自己的字串作為 `systemPrompt`,請在其中新增一個句子,說明什麼是系統提醒。`claude_code` 預設值有一個,而您的字串會取代整個預設值。沒有它,您的提示中沒有任何內容告訴 Claude CLAUDE.md 內容和 hook 輸出等提醒來自應用程式而不是使用者。例如:

449 

450```text theme={null}

451應用程式會將系統提醒新增到此對話中。將它們視為來自應用程式的上下文,而不是來自使用者的訊息。

452```

453 

454<h3 id="turn-off-the-context-your-agent-replaces">

455 關閉您的代理程式取代的上下文

456</h3>

457 

458當您的代理程式提供相同指導的自己版本時,請關閉一段內建上下文。例如,如果您的提示告訴 Claude 將提交訊息寫成 `PROJ-142: fix login redirect` 且沒有預告片,Claude Code 仍然會告訴 Claude 以 `Co-Authored-By` 預告片結束每個提交訊息,因此 Claude 會收到針對相同提交的兩個衝突指示。

459 

460在 TypeScript 中透過 [`settings`](/docs/zh-TW/agent-sdk/typescript#options) 選項或在 Python 中透過 [`settings`](/docs/zh-TW/agent-sdk/python#claudeagentoptions) 傳遞設定金鑰,並透過 `env` 選項傳遞環境變數。在 TypeScript 中,[`env`](/docs/zh-TW/agent-sdk/typescript#options) 會取代繼承的環境,因此請將 `process.env` 展開到其中。

461 

462| 內建上下文 | 如何關閉 |

463| :- | :- |

464| 內建提交和拉取請求指示以及 git 狀態快照 | 將 [`includeGitInstructions`](/docs/zh-TW/settings-reference#includegitinstructions) 設定為 `false`,或 `CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS=1` |

465| `Co-Authored-By` 預告片和拉取請求頁尾 | 將 [`attribution.commit`](/docs/zh-TW/settings-reference#attribution-commit) 和 [`attribution.pr`](/docs/zh-TW/settings-reference#attribution-pr) 設定為您自己的文字,或設定為空字串以移除它們 |

466| 使用者或專案設定來源,包括其 CLAUDE.md | 將 `'user'` 或 `'project'` 排除在 [`settingSources`](/docs/zh-TW/agent-sdk/claude-code-features#control-filesystem-settings-with-settingsources) 之外 |

467| 每個 CLAUDE.md 檔案 | 設定 `CLAUDE_CODE_DISABLE_CLAUDE_MDS=1` |

468| 工作清單提示、檔案已變更備註和技能清單 | 設定 `CLAUDE_CODE_DISABLE_ATTACHMENTS=1` |

469 

470Claude Code 的內建提交和拉取請求指示不是提醒。它們是 Bash 工具描述的一部分,因此當您傳遞自訂 `systemPrompt` 時,它們也會到達 Claude。

471 

472如果您設定 `CLAUDE_CODE_DISABLE_ATTACHMENTS`,Claude Code 也會將 `@` 檔案提及作為純文字傳送,而不是將其展開為檔案內容。可用子代理程式清單和背景工作通知仍然會到達。

473 

474以下範例適用於在 `append` 中攜帶自己提交規則的代理程式。它將兩個 `attribution` 金鑰設定為空字串以移除預告片和頁尾,並關閉 `includeGitInstructions`,以便 Claude Code 自己的提交工作流程指示不會與您的指示競爭:

475 

476<CodeGroup>

477 ```typescript TypeScript theme={null}

478 import { query } from "@anthropic-ai/claude-agent-sdk";

479 

480 for await (const message of query({

481 prompt: "Commit the staged changes for ticket PROJ-142",

482 options: {

483 systemPrompt: {

484 type: "preset",

485 preset: "claude_code",

486 append: "Write commit messages as: <ticket id>: <summary>. Add no trailers."

487 },

488 settings: {

489 includeGitInstructions: false,

490 attribution: { commit: "", pr: "" }

491 },

492 allowedTools: ["Bash(git *)"]

493 }

494 })) {

495 if (message.type === "result") console.log(message.subtype);

496 }

497 ```

498 

499 ```python Python theme={null}

500 import asyncio

501 from claude_agent_sdk import query, ClaudeAgentOptions

502 

503 

504 async def main():

505 async for message in query(

506 prompt="Commit the staged changes for ticket PROJ-142",

507 options=ClaudeAgentOptions(

508 system_prompt={

509 "type": "preset",

510 "preset": "claude_code",

511 "append": "Write commit messages as: <ticket id>: <summary>. Add no trailers.",

512 },

513 settings='{"includeGitInstructions": false, "attribution": {"commit": "", "pr": ""}}',

514 allowed_tools=["Bash(git *)"],

515 ),

516 ):

517 print(message)

518 

519 

520 asyncio.run(main())

521 ```

522</CodeGroup>

523 

524若要確認變更,請在具有暫存變更的儲存庫中執行範例,並使用 `git log -1` 檢查新提交。訊息結尾沒有 `Co-Authored-By` 預告片。

525 

526<h3 id="see-what-claude-received">

527 查看 Claude 收到的內容

528</h3>

529 

530SDK 訊息串流不包括系統提醒,因此讀取您的程式碼收到的訊息不會向您顯示 Claude 看到的內容。若要查看它們,請記錄 Claude Code 傳送的請求:

531 

532* **原始請求記錄**:將 [`OTEL_LOG_RAW_API_BODIES`](/docs/zh-TW/monitoring-usage#api-request-body-event) 設定為 `file:<dir>`。Claude Code 會將每個請求本體寫入該目錄。

533* **您控制的閘道**:將 [`ANTHROPIC_BASE_URL`](/docs/zh-TW/llm-gateway) 指向記錄請求本體的代理。

534 

535在記錄的請求中,查看 `messages` 陣列。提醒會出現在包裝在 `<system-reminder>` 標籤中的使用者訊息內,或在某些模型上,作為具有 `system` 角色的單獨訊息。

536 

421<h2 id="compare-the-four-approaches">537<h2 id="compare-the-four-approaches">

422 比較四種方法538 比較四種方法

423</h2>539</h2>


431| **管理** | 在檔案系統上 | CLI + 檔案 | 在程式碼中 | 在程式碼中 |547| **管理** | 在檔案系統上 | CLI + 檔案 | 在程式碼中 | 在程式碼中 |

432| **預設工具** | 保留 | 保留 | 保留 | 遺失(除非包含) |548| **預設工具** | 保留 | 保留 | 保留 | 遺失(除非包含) |

433| **內建安全** | 維持 | 維持 | 維持 | 必須新增 |549| **內建安全** | 維持 | 維持 | 維持 | 必須新增 |

434| **環境上下文** | 自動 | 自動 | 自動 | 必須提供 |

435| **自訂程度** | 僅新增 | 替換或擴展預設 | 僅新增 | 完全控制 |550| **自訂程度** | 僅新增 | 替換或擴展預設 | 僅新增 | 完全控制 |

436| **版本控制** | 與專案一起 | 是 | 與程式碼一起 | 與程式碼一起 |551| **版本控制** | 與專案一起 | 是 | 與程式碼一起 | 與程式碼一起 |

437| **範圍** | 專案特定 | 使用者或專案 | 程式碼會話 | 程式碼會話 |552| **範圍** | 專案特定 | 使用者或專案 | 程式碼會話 | 程式碼會話 |

Details

246| 變數 | 新增內容 |246| 變數 | 新增內容 |

247| - | - |247| - | - |

248| `OTEL_LOG_USER_PROMPTS=1` | `claude_code.user_prompt` 事件和 `claude_code.interaction` span 上的提示文字 |248| `OTEL_LOG_USER_PROMPTS=1` | `claude_code.user_prompt` 事件和 `claude_code.interaction` span 上的提示文字 |

249| `OTEL_LOG_TOOL_DETAILS=1` | `claude_code.tool_result` 事件上的工具輸入引數(檔案路徑、shell 命令、搜尋模式) |249| `OTEL_LOG_TOOL_DETAILS=1` | `claude_code.tool_result` 事件上的工具輸入引數(例如檔案路徑、shell 命令和搜尋模式),以及[成本和 token 指標](/docs/zh-TW/monitoring-usage#cost-counter)上的真實代理、skill、plugin 和 MCP 伺服器名稱 |

250| `OTEL_LOG_TOOL_CONTENT=1` | `claude_code.tool` 上的 [`tool.output` span 事件](/docs/zh-TW/monitoring-usage#tool-output-span-event),包含檔案內容和 Bash 輸出,預設截斷為 60 KB,可透過 `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH` 設定,需要 Claude Code v2.1.214 或更新版本。需要啟用[追蹤](#read-agent-traces)。Span 屬性在[其自身的閘道](/docs/zh-TW/monitoring-usage#new-context-gates)下攜帶工具內容 |250| `OTEL_LOG_TOOL_CONTENT=1` | `claude_code.tool` 上的 [`tool.output` span 事件](/docs/zh-TW/monitoring-usage#tool-output-span-event),包含檔案內容、Bash 輸出,以及 MCP 工具、WebFetch 和 WebSearch 返回的內容,預設截斷為 60 KB,可透過 `CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH` 設定,需要 Claude Code v2.1.214 或更新版本。來自 MCP 工具、WebFetch 和 WebSearch 的結果需要 Claude Code v2.1.283 或更新版本。需要啟用[追蹤](#read-agent-traces)。Span 屬性在[其自身的閘道](/docs/zh-TW/monitoring-usage#new-context-gates)下攜帶工具內容 |

251| `OTEL_LOG_RAW_API_BODIES` | 完整的 Anthropic Messages API 請求和回應 JSON 作為 `claude_code.api_request_body` 和 `claude_code.api_response_body` 日誌事件。設定為 `1` 以獲得截斷為 60 KB 的內聯主體(預設),或 `file:<dir>` 以在磁碟上獲得未截斷的主體,事件中有 `body_ref` 路徑。`CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH` 設定內聯截斷限制,並需要 Claude Code v2.1.214 或更新版本。主體包括整個對話歷史記錄,並且已編輯了擴展思考內容。啟用此項意味著同意上述三個變數將揭示的所有內容 |251| `OTEL_LOG_RAW_API_BODIES` | 完整的 Anthropic Messages API 請求和回應 JSON 作為 `claude_code.api_request_body` 和 `claude_code.api_response_body` 日誌事件。設定為 `1` 以獲得截斷為 60 KB 的內聯主體(預設),或 `file:<dir>` 以在磁碟上獲得未截斷的主體,事件中有 `body_ref` 路徑。`CLAUDE_CODE_OTEL_CONTENT_MAX_LENGTH` 設定內聯截斷限制,並需要 Claude Code v2.1.214 或更新版本。主體包括整個對話歷史記錄,並且已編輯了擴展思考內容。啟用此項意味著同意上述三個變數將揭示的所有內容 |

252 252 

253除非您的可觀測性管道已獲准儲存您的代理處理的資料,否則請保持這些未設定。請參閱監控參考中的[安全和隱私](/docs/zh-TW/monitoring-usage#security-and-privacy)以了解完整的屬性清單和編輯行為。253除非您的可觀測性管道已獲准儲存您的代理處理的資料,否則請保持這些未設定。請參閱監控參考中的[安全和隱私](/docs/zh-TW/monitoring-usage#security-and-privacy)以了解完整的屬性清單和編輯行為。

Details

41 </Step>41 </Step>

42 42 

43 <Step title="允許規則">43 <Step title="允許規則">

44 檢查 `allow` 規則(來自 `allowed_tools` 和 settings.json)。如果規則匹配,工具會被批准。工具自行批准的呼叫也會在此步驟解決,無需規則:例如在您的工作目錄內的檔案讀取或 [唯讀 Bash 命令](/docs/zh-TW/permissions#read-only-commands)。針對 [關鍵路徑](/docs/zh-TW/permission-modes#critical-paths) 的 `rm` 和 `rmdir` 移除永遠不會被 allow 規則批准:它們在提示的模式下到達您的回呼,在 Claude Code v2.1.218 或更新版本的 `auto` 模式下進入 [分類器](/docs/zh-TW/permission-modes#eliminate-prompts-with-auto-mode),並在 `dontAsk` 模式下被拒絕。44 檢查 `allow` 規則(來自 `allowed_tools` 和 settings.json)。如果規則匹配,工具會被批准。工具自行批准的呼叫也會在此步驟解決,無需規則:例如在您的工作目錄內的檔案讀取或 [唯讀 Bash 命令](/docs/zh-TW/permissions#read-only-commands)。

45 

46 針對 [關鍵路徑](/docs/zh-TW/permission-modes#critical-paths) 的 `rm` 和 `rmdir` 移除永遠不會被 allow 規則批准。它們是否隨後到達您的回呼取決於權限模式:例如在 `auto` 模式的 Agent SDK 工作階段中,Claude Code 預設會拒絕它們而不呼叫它。[關鍵路徑](/docs/zh-TW/permission-modes#critical-paths) 模式表列出了每個模式對它們的處理方式。

45 </Step>47 </Step>

46 48 

47 <Step title="canUseTool 回呼">49 <Step title="canUseTool 回呼">


89使用 `//path` 表示絕對檔案系統路徑:`Edit(//secrets/**)` 的拒絕規則會阻止在磁碟上 `/secrets` 下任何位置的寫入。使用單個前導斜線時,`Edit(/secrets/**)` 會在規則的來源處錨定。對於透過 `allowed_tools` 或 `disallowed_tools` 傳遞的規則,這表示工作階段的工作目錄,因此規則不會阻止磁碟上的 `/secrets`。請參閱[讀取和編輯規則](/docs/zh-TW/permissions#read-and-edit)以了解四種錨定形式以及來自設定檔的規則如何解析。91使用 `//path` 表示絕對檔案系統路徑:`Edit(//secrets/**)` 的拒絕規則會阻止在磁碟上 `/secrets` 下任何位置的寫入。使用單個前導斜線時,`Edit(/secrets/**)` 會在規則的來源處錨定。對於透過 `allowed_tools` 或 `disallowed_tools` 傳遞的規則,這表示工作階段的工作目錄,因此規則不會阻止磁碟上的 `/secrets`。請參閱[讀取和編輯規則](/docs/zh-TW/permissions#read-and-edit)以了解四種錨定形式以及來自設定檔的規則如何解析。

90 92 

91<Warning>93<Warning>

92 **自動批准的工具永遠不會到達 `canUseTool`。** 在任何較早步驟中批准的工具呼叫,透過 `acceptEdits` 或 `bypassPermissions`,或透過允許規則,會跳過您的 `canUseTool` 回呼,因此您在那裡放置的權限檢查會被該工具無聲地繞過。`AskUserQuestion`、標記為 [`_meta["anthropic/requiresUserInteraction"]`](/docs/zh-TW/mcp#require-approval-for-a-specific-tool) 的 MCP 工具、連接器工具[您的組織設定為 `ask`](/docs/zh-TW/mcp#organization-controls-on-connector-tools),以及 `rm` 和 `rmdir` 移除針對[關鍵路徑](/docs/zh-TW/permission-modes#critical-paths)的移除仍會到達回呼,即使允許規則符合也是如此。在 `auto` 模式中,關鍵路徑移除會進入[分類器](/docs/zh-TW/permission-modes#eliminate-prompts-with-auto-mode)而不是回呼,而上面列出的其他呼叫仍會到達它;分類器路由需要 Claude Code v2.1.218 或更新版本。在 `dontAsk` 模式中,這些呼叫會被拒絕,不會呼叫回呼。94 **自動批准的工具永遠不會到達 `canUseTool`。** 在任何較早步驟中批准的工具呼叫,透過 `acceptEdits` 或 `bypassPermissions`,或透過允許規則,會跳過您的 `canUseTool` 回呼,因此您在那裡放置的權限檢查會被該工具無聲地繞過。

95 

96 允許規則永遠不會自動批准 `AskUserQuestion`、標記為 [`_meta["anthropic/requiresUserInteraction"]`](/docs/zh-TW/mcp#require-approval-for-a-specific-tool) 的 MCP 工具、連接器工具[您的組織設定為 `ask`](/docs/zh-TW/mcp#organization-controls-on-connector-tools),或 `rm` 和 `rmdir` 移除針對[關鍵路徑](/docs/zh-TW/permission-modes#critical-paths)的移除。在 `dontAsk` 模式中,Claude Code 會拒絕這些呼叫而不呼叫回呼。在其他模式中,前三個會到達回呼。根據[權限模式](/docs/zh-TW/permission-modes#critical-paths),關鍵路徑移除會到達回呼,或 Claude Code 會拒絕它而不呼叫它,就像預設情況下對 Agent SDK 工作階段在 `auto` 模式中所做的那樣。

93 97 

94 涵蓋範圍取決於項目的形式:像 `Read` 或 `mcp__github__get_issue` 這樣的裸名稱會自動批准對該工具的每個呼叫,除了上述例外情況,而像 `Bash(npm test *)` 這樣的限定規則只會自動批准符合的呼叫,其他需要批准的 `Bash` 呼叫仍會進入回呼。對於必須在每個工具呼叫上執行的檢查,請使用 [`PreToolUse` hook](/docs/zh-TW/agent-sdk/hooks):hook 在每個其他步驟之前執行,hook 拒絕即使在 `bypassPermissions` 模式中也適用。98 涵蓋範圍取決於項目的形式:像 `Read` 或 `mcp__github__get_issue` 這樣的裸名稱會自動批准對該工具的每個呼叫,除了上述例外情況,而像 `Bash(npm test *)` 這樣的限定規則只會自動批准符合的呼叫,其他需要批准的 `Bash` 呼叫仍會進入回呼。對於必須在每個工具呼叫上執行的檢查,請使用 [`PreToolUse` hook](/docs/zh-TW/agent-sdk/hooks):hook 在每個其他步驟之前執行,hook 拒絕即使在 `bypassPermissions` 模式中也適用。

95</Warning>99</Warning>


301 305 

302在規劃模式中,檔案編輯永遠不會自動被核准,即使符合允許規則。它們會改為透過您的 `canUseTool` 回呼提示。在 Claude Code v2.1.212 或更新版本上,修改檔案的 shell 命令(例如 `touch` 和 `rm`)會以相同方式到達您的 `canUseTool` 回呼。306在規劃模式中,檔案編輯永遠不會自動被核准,即使符合允許規則。它們會改為透過您的 `canUseTool` 回呼提示。在 Claude Code v2.1.212 或更新版本上,修改檔案的 shell 命令(例如 `touch` 和 `rm`)會以相同方式到達您的 `canUseTool` 回呼。

303 307 

304如果您在 `permissionMode: 'plan'` 旁邊設定 `allowDangerouslySkipPermissions: true`,檔案編輯和修改檔案的 shell 命令仍然會到達您的 `canUseTool` 回呼。此選項讓您稍後可以使用 `setPermissionMode()` 切換到 `bypassPermissions`。308在 TypeScript SDK 中,如果您在 `permissionMode: 'plan'` 旁邊設定 `allowDangerouslySkipPermissions: true`,檔案編輯和修改檔案的 shell 命令仍然會到達您的 `canUseTool` 回呼。此選項讓您稍後可以使用 `setPermissionMode()` 切換到 `bypassPermissions`。

305 309 

306Claude 可能會使用 `AskUserQuestion` 在最終確定計畫之前澄清需求。請參閱[處理核准和使用者輸入](/docs/zh-TW/agent-sdk/user-input#handle-clarifying-questions)以處理這些提示。310Claude 可能會使用 `AskUserQuestion` 在最終確定計畫之前澄清需求。請參閱[處理核准和使用者輸入](/docs/zh-TW/agent-sdk/user-input#handle-clarifying-questions)以處理這些提示。

307 311 

Details

331 Plugin 未加載331 Plugin 未加載

332</h3>332</h3>

333 333 

334如果您的 plugin 未出現在初始化消息中:334如果您的 plugin 未出現在初始化消息的 `plugins` 列表中,請檢查其 [`plugin_errors`](/docs/zh-TW/agent-sdk/typescript#sdksystemmessage) 欄位以了解原因,然後進行以下檢查:

335 335 

3361. **檢查路徑**:確保路徑指向 plugin 根目錄,即 `skills/`、`agents/`、`hooks/`、`commands/` 或 `.claude-plugin/` 的父目錄3361. **檢查路徑**:確保路徑指向 plugin 根目錄,即 `skills/`、`agents/`、`hooks/`、`commands/` 或 `.claude-plugin/` 的父目錄

3372. **驗證 plugin.json**:如果您的 plugin 包含清單,請確保它具有有效的 JSON 語法3372. **驗證 plugin.json**:如果您的 plugin 包含清單,請確保它具有有效的 JSON 語法

Details

295| 屬性 | 類型 | 描述 |295| 屬性 | 類型 | 描述 |

296| :- | :- | :- |296| :- | :- | :- |

297| `session_id` | `str` | 唯一 session 識別碼 |297| `session_id` | `str` | 唯一 session 識別碼 |

298| `summary` | `str` | 顯示標題:自訂標題、自動生成的摘要或第一個提示 |298| `summary` | `str` | 顯示標題:自訂標題、最近的提示、自動生成的摘要或第一個提示 |

299| `last_modified` | `int` | 上次修改時間(自紀元以來的毫秒數) |299| `last_modified` | `int` | 上次修改時間(自紀元以來的毫秒數) |

300| `file_size` | `int \| None` | Session 檔案大小(以位元組為單位)(遠端儲存後端為 `None`) |300| `file_size` | `int \| None` | Session 檔案大小(以位元組為單位)(遠端儲存後端為 `None`) |

301| `custom_title` | `str \| None` | 使用者設定的 session 標題 |301| `custom_title` | `str \| None` | 使用者設定的 session 標題 |


875 include_partial_messages: bool = False875 include_partial_messages: bool = False

876 include_hook_events: bool = False876 include_hook_events: bool = False

877 forward_subagent_text: bool = False877 forward_subagent_text: bool = False

878 verbatim_prompts: bool = False

878 fork_session: bool = False879 fork_session: bool = False

879 resume_session_at: str | None = None880 resume_session_at: str | None = None

880 resume_drops_turn: str | None = None881 resume_drops_turn: str | None = None


928| `include_partial_messages` | `bool` | `False` | 包含部分訊息串流事件。啟用時,會產生 [`StreamEvent`](#streamevent) 訊息 |929| `include_partial_messages` | `bool` | `False` | 包含部分訊息串流事件。啟用時,會產生 [`StreamEvent`](#streamevent) 訊息 |

929| `include_hook_events` | `bool` | `False` | 在訊息串流中包含 Hook 生命週期事件作為 `HookEventMessage` 物件 |930| `include_hook_events` | `bool` | `False` | 在訊息串流中包含 Hook 生命週期事件作為 `HookEventMessage` 物件 |

930| `forward_subagent_text` | `bool` | `False` | 在訊息串流中轉發子代理文字和思考區塊。沒有此選項,Claude Code 會發出子代理 `tool_use` 和 `tool_result` 區塊,但不會發出文字或思考。需要 Python Agent SDK 0.2.140 或更新版本 |931| `forward_subagent_text` | `bool` | `False` | 在訊息串流中轉發子代理文字和思考區塊。沒有此選項,Claude Code 會發出子代理 `tool_use` 和 `tool_result` 區塊,但不會發出文字或思考。需要 Python Agent SDK 0.2.140 或更新版本 |

932| `verbatim_prompts` | `bool` | `False` | 按照所寫內容傳遞每個提示。SDK 會使用 `client_composed` 設定為 `True` 傳送每個使用者訊息。請參閱 [`client_composed`](/docs/zh-TW/agent-sdk/typescript#sdkusermessage) 以了解 Claude Code 在這些訊息上會跳過的內容。當您的提示文字包含終端使用者未輸入的內容時,請使用此選項。如需按轉控制,請將其關閉,並改為在個別串流訊息上設定 `"client_composed": True`。啟用此選項時,SDK 會覆寫您設定的任何 `client_composed` 值。需要 Python Agent SDK 0.2.158 或更新版本以及 Claude Code v2.1.248 或更新版本;與這些 SDK 版本搭配的 CLI 滿足 Claude Code 需求 |

931| `fork_session` | `bool` | `False` | 使用 `resume` 繼續時,分支到新的工作階段 ID 而不是繼續原始工作階段 |933| `fork_session` | `bool` | `False` | 使用 `resume` 繼續時,分支到新的工作階段 ID 而不是繼續原始工作階段 |

932| `resume_session_at` | `str \| None` | `None` | 繼續時,僅載入對話至包括具有此 UUID 的訊息。與 `resume` 搭配使用,通常還要搭配 `fork_session`,以從較早的點分支。需要 Python Agent SDK 0.2.137 或更新版本 |934| `resume_session_at` | `str \| None` | `None` | 繼續時,僅載入對話至包括具有此 UUID 的訊息。與 `resume` 搭配使用,通常還要搭配 `fork_session`,以從較早的點分支。需要 Python Agent SDK 0.2.137 或更新版本 |

933| `resume_drops_turn` | `str \| None` | `None` | 其使用者提示的轉數 `resume_session_at` 截斷會捨棄的 UUID。設定時,如果捨棄的範圍包含不可歸因於該轉的項目,CLI 會拒絕繼續。需要 Python Agent SDK 0.2.137 或更新版本以及 Claude Code v2.1.223 或更新版本;與這些 SDK 版本搭配的 CLI 滿足 Claude Code 需求 |935| `resume_drops_turn` | `str \| None` | `None` | 其使用者提示的轉數 `resume_session_at` 截斷會捨棄的 UUID。設定時,如果捨棄的範圍包含不可歸因於該轉的項目,CLI 會拒絕繼續。需要 Python Agent SDK 0.2.137 或更新版本以及 Claude Code v2.1.223 或更新版本;與這些 SDK 版本搭配的 CLI 滿足 Claude Code 需求 |


3791<Warning>3793<Warning>

3792 使用 `dangerouslyDisableSandbox: True` 執行的命令具有完整系統存取權限。確保您的 `can_use_tool` 處理程序仔細驗證這些請求。3794 使用 `dangerouslyDisableSandbox: True` 執行的命令具有完整系統存取權限。確保您的 `can_use_tool` 處理程序仔細驗證這些請求。

3793 3795 

3794 如果 `permission_mode` 設定為 `bypassPermissions` 且 `allow_unsandboxed_commands` 啟用,模型可以自主執行沙箱外的命令,無需批准提示,除了[動作無模式自動批准的](/docs/zh-TW/permission-modes#actions-no-mode-auto-approves)。此組合實際上允許模型無聲地逃脫沙箱隔離。3796 如果 `permission_mode` 設定為 `bypassPermissions` 且 `allowUnsandboxedCommands` 啟用,模型可以自主執行沙箱外的命令,無需批准提示,除了[動作無模式自動批准的](/docs/zh-TW/permission-modes#actions-no-mode-auto-approves)。此組合實際上允許模型無聲地逃脫沙箱隔離。

3795</Warning>3797</Warning>

3796 3798 

3797<h2 id="see-also">3799<h2 id="see-also">

Details

330 已知限制330 已知限制

331</h2>331</h2>

332 332 

333* **結構化輸出**:JSON 結果僅出現在最終 `ResultMessage.structured_output` 中,而不是作為串流增量。如需詳細資訊,請參閱[結構化輸出](/docs/zh-TW/agent-sdk/structured-outputs)。333* **結構化輸出**:啟用部分訊息時,JSON 會以工具呼叫的未驗證 `input_json_delta` 區塊形式串流,只有驗證後的結果才會到達最終的 `ResultMessage.structured_output`。詳細資訊請參閱[結構化輸出](/docs/zh-TW/agent-sdk/structured-outputs)。

334 334 

335<h2 id="next-steps">335<h2 id="next-steps">

336 後續步驟336 後續步驟

Details

162 structured\_output is None but the result says success162 structured\_output is None but the result says success

163</h3>163</h3>

164 164 

165結果訊息可以以 `subtype: "success"` 結尾,而在 Python 中 `structured_output` 是 `None` 或在 TypeScript 中是 `undefined`。執行完成,但不存在驗證的輸出。達到此目標的一種方式是沒有輸出可以滿足的架構,例如衝突的長度約束。執行結束而沒有驗證錯誤,唯一的信號是遺失的 `structured_output`。165結果訊息可以以 `subtype: "success"` 結尾,而在 Python 中 `structured_output` 是 `None` 或在 TypeScript 中是 `undefined`。執行完成,但不存在驗證的輸出。達到此目標的一種方式是沒有輸出可以滿足的架構,例如衝突的長度約束。

166 166 

167在應用程式程式碼中將此結果視為失敗。在使用 `structured_output` 之前,檢查 `subtype` 是 `success` 且 `structured_output` 存在。[錯誤處理](/docs/zh-TW/agent-sdk/structured-outputs#error-handling)部分顯示了兩個 SDK 的此模式。167在應用程式程式碼中將此結果視為失敗。在使用 `structured_output` 之前,檢查 `subtype` 是 `success` 且 `structured_output` 存在。[錯誤處理](/docs/zh-TW/agent-sdk/structured-outputs#error-handling)部分顯示了兩個 SDK 的此模式。

168 168 

Details

54* 要進行交叉編譯,請安裝不匹配的平台包,例如 `npm install @anthropic-ai/claude-agent-sdk-linux-x64 --force`。54* 要進行交叉編譯,請安裝不匹配的平台包,例如 `npm install @anthropic-ai/claude-agent-sdk-linux-x64 --force`。

55* 在 Windows 上,二進制子路徑是 `claude.exe`,例如 `@anthropic-ai/claude-agent-sdk-win32-x64/claude.exe`。55* 在 Windows 上,二進制子路徑是 `claude.exe`,例如 `@anthropic-ai/claude-agent-sdk-win32-x64/claude.exe`。

56 56 

57<h3 id="import-the-/core-entry-when-you-bundle-the-agent-sdk">

58 當您捆綁 Agent SDK 時從 `/core` 入口導入

59</h3>

60 

61如果您的應用程式將 Agent SDK 與其自身的依賴項一起捆綁,請從 `@anthropic-ai/claude-agent-sdk/core` 而不是包根目錄導入。`/core` 入口需要 TypeScript Agent SDK v0.3.282 或更高版本,其類型需要 TypeScript 5.0 或更高版本。

62 

63`/core` 入口導出與根入口相同的 `query()`、`startup()`、`tool()`、`createSdkMcpServer()` 和 `resolveSettings()`,以及重命名、標記和刪除會話的函數、`AbortError`、運行時常數和每種類型。它不添加自己的名稱。為了保持應用程式加載的程式碼較小,`/core` 省略了一些根導出,包括 `prewarm()`、`InMemorySessionStore` 類以及列出、讀取、分叉、導入和總結會話的輔助函數。如果您需要其中之一,請改用根入口。

64 

65根入口內聯了自己的 `zod` 和 `@modelcontextprotocol/sdk` 副本。`/core` 入口從您的 `node_modules` 按照 Agent SDK 的 `peerDependencies` 聲明的範圍導入它們,因此已經包含它們的捆綁不會攜帶第二份副本。在給定的程序中從根或 `/core` 導入,而不是兩者:它們是單獨的捆綁,加載兩者會給您兩份 Agent SDK 的類和狀態副本。

66 

57<h2 id="functions">67<h2 id="functions">

58 函數68 函數

59</h2>69</h2>


93 `startup()`103 `startup()`

94</h3>104</h3>

95 105 

96通過生成 CLI 子進程並在提示可用之前完成初始化握手來預熱 CLI 子進程。返回的 [`WarmQuery`](#warmquery) 句柄稍後接受提示並將其寫入已準備好的進程,因此第一個 `query()` 調用解析時無需支付子進程生成和初始化成本。106通過生成 CLI 子進程並在提示可用之前完成初始化握手來預熱 CLI 子進程。返回的 [`WarmQuery`](#warmquery) 句柄稍後接受提示並將其寫入已準備好的進程,因此第一個 `query()` 調用解析時無需支付子進程生成和初始化成本。如果您還不知道會話的工作目錄,請改用 [`prewarm()`](#prewarm)。

97 107 

98```typescript theme={null}108```typescript theme={null}

99function startup(params?: {109function startup(params?: {


135}145}

136```146```

137 147 

148<h3 id="prewarm">

149 `prewarm()`

150</h3>

151 

152*Alpha。* 在您知道它將服務哪個會話之前啟動 Claude Code 進程作為備用,以便您稍後可以使用 [`claim()`](#spareprocess) 將其綁定到會話。在應用程式啟動時使用,在使用者選擇資料夾之前。需要 TypeScript Agent SDK v0.3.282 或更高版本。

153 

154`prewarm()` 完成與 [`startup()`](#startup) 相同的初始化握手,進程在您設置 `options.cwd` 時在其中等待,否則在 Claude Code 配置目錄下的私有臨時目錄中等待。會話的工作目錄、其 `SessionStart` hooks、其 stdio MCP 伺服器以及其 CLAUDE.md 和 git 上下文等待聲明。備用進程在等待時大約佔用 230 到 260 MB 的記憶體。如果您的 [`spawnClaudeCodeProcess`](#options) 在另一台機器或容器中運行 Claude Code,請將 `options.cwd` 設置為存在於那裡的目錄,以便備用進程在其中等待。

155 

156```typescript theme={null}

157function prewarm(params?: {

158 options?: Options;

159 initializeTimeoutMs?: number;

160}): Promise<SpareProcess>;

161```

162 

163`options` 和 `initializeTimeoutMs` 的含義與 `startup()` 相同,除了 `options.cwd` 僅設置備用進程等待的目錄。promise 在進程完成其初始化握手後使用 [`SpareProcess`](#spareprocess) 解析。如果 `options` 設置 `resume`、`continue` 或 `forkSession`,`prewarm()` 會拋出異常,因為備用進程還沒有會話。聲明無法設置的所有內容,例如 `mcpServers`、`hooks`、`canUseTool`、`settingSources`、`systemPrompt` 和 `plugins`,在備用進程的生命週期內是固定的,因此為每組不同的選項保留一個備用進程,並在它們更改時再次預熱。

164 

165<h4 id="example-2">

166 示例

167</h4>

168 

169在應用程式啟動時預熱,然後在使用者啟動會話時聲明備用進程:

170 

171```typescript theme={null}

172import { prewarm } from "@anthropic-ai/claude-agent-sdk";

173 

174// 在應用程式啟動時,在會話的資料夾已知之前

175const spare = await prewarm({ options: { maxTurns: 3 } });

176 

177// 稍後,當使用者在資料夾中啟動會話時

178const claimedQuery = spare.claim({

179 prompt: "What files are here?",

180 options: { cwd: "/path/to/project" },

181});

182 

183spare.claimed.catch((error: Error) => {

184 // 除非消息以 "option_not_applied" 開頭,否則提示未運行:

185 // 改用 query() 啟動此會話

186 console.error("Claim failed:", error.message);

187});

188 

189for await (const message of claimedQuery) {

190 console.log(message);

191}

192```

193 

138<h3 id="tool">194<h3 id="tool">

139 `tool()`195 `tool()`

140</h3>196</h3>


249| 屬性 | 類型 | 描述 |305| 屬性 | 類型 | 描述 |

250| :- | :- | :- |306| :- | :- | :- |

251| `sessionId` | `string` | 唯一會話標識符(UUID) |307| `sessionId` | `string` | 唯一會話標識符(UUID) |

252| `summary` | `string` | 顯示標題:自定義標題、自動生成的摘要或第一個提示 |308| `summary` | `string` | 顯示標題:自定義標題、最近的提示、自動生成的摘要或第一個提示 |

253| `lastModified` | `number` | 上次修改時間(自紀元以來的毫秒數) |309| `lastModified` | `number` | 上次修改時間(自紀元以來的毫秒數) |

254| `fileSize` | `number \| undefined` | 會話檔案大小(位元組)。僅針對本地 JSONL 存儲填充 |310| `fileSize` | `number \| undefined` | 會話檔案大小(位元組)。僅針對本地 JSONL 存儲填充 |

255| `customTitle` | `string \| undefined` | 使用者設置的會話標題(通過 `/rename`) |311| `customTitle` | `string \| undefined` | 使用者設置的會話標題(通過 `/rename`) |


259| `tag` | `string \| undefined` | 使用者設置的會話標籤(見 [`tagSession()`](#tagsession)) |315| `tag` | `string \| undefined` | 使用者設置的會話標籤(見 [`tagSession()`](#tagsession)) |

260| `createdAt` | `number \| undefined` | 創建時間(自紀元以來的毫秒數),來自第一個條目的時間戳 |316| `createdAt` | `number \| undefined` | 創建時間(自紀元以來的毫秒數),來自第一個條目的時間戳 |

261 317 

262<h4 id="example-2">318<h4 id="example-3">

263 示例319 示例

264</h4>320</h4>

265 321 


312| `parent_tool_use_id` | `string \| null` | 對於子代理消息,生成 `Agent` 或 `Skill` 工具調用的 `tool_use_id`,該調用啟動了子代理。對於主會話消息和較舊的會話為 `null` |368| `parent_tool_use_id` | `string \| null` | 對於子代理消息,生成 `Agent` 或 `Skill` 工具調用的 `tool_use_id`,該調用啟動了子代理。對於主會話消息和較舊的會話為 `null` |

313| `parent_agent_id` | `string \| null` | 對於來自[嵌套子代理](/docs/zh-TW/sub-agents#let-subagents-spawn-their-own-subagents)的消息,生成它的子代理的 `agentId`。對於主會話消息、來自頂級子代理的消息和較舊的會話為 `null`。需要 Claude Code v2.1.202 或更高版本 |369| `parent_agent_id` | `string \| null` | 對於來自[嵌套子代理](/docs/zh-TW/sub-agents#let-subagents-spawn-their-own-subagents)的消息,生成它的子代理的 `agentId`。對於主會話消息、來自頂級子代理的消息和較舊的會話為 `null`。需要 Claude Code v2.1.202 或更高版本 |

314 370 

315<h4 id="example-3">371<h4 id="example-4">

316 示例372 示例

317</h4>373</h4>

318 374 


452| `provenance` | `Partial<Record<keyof Settings, ProvenanceEntry>>` | 對於 `effective` 中的每個頂級鍵,哪個源提供了該值 |508| `provenance` | `Partial<Record<keyof Settings, ProvenanceEntry>>` | 對於 `effective` 中的每個頂級鍵,哪個源提供了該值 |

453| `sources` | `Array<{ source, settings, path?, policyOrigin? }>` | 每個源的原始設定,按從最低到最高優先級排序 |509| `sources` | `Array<{ source, settings, path?, policyOrigin? }>` | 每個源的原始設定,按從最低到最高優先級排序 |

454 510 

455<h4 id="example-4">511<h4 id="example-5">

456 示例512 示例

457</h4>513</h4>

458 514 


547| `toolAliases` | `Record<string, string>` | `undefined` | 將內建工具名稱對應到 MCP 工具名稱,以便 Claude 呼叫您的 MCP 實作而不是內建工具。例如,`{ Bash: 'mcp__workspace__bash' }` |603| `toolAliases` | `Record<string, string>` | `undefined` | 將內建工具名稱對應到 MCP 工具名稱,以便 Claude 呼叫您的 MCP 實作而不是內建工具。例如,`{ Bash: 'mcp__workspace__bash' }` |

548| `toolConfig` | [`ToolConfig`](#toolconfig) | `undefined` | 內建工具行為的設定。請參閱 [`ToolConfig`](#toolconfig) 以取得詳細資訊 |604| `toolConfig` | [`ToolConfig`](#toolconfig) | `undefined` | 內建工具行為的設定。請參閱 [`ToolConfig`](#toolconfig) 以取得詳細資訊 |

549| `tools` | `string[] \| { type: 'preset'; preset: 'claude_code' }` | `undefined` | 工具設定。傳遞工具名稱陣列或使用預設值以取得 Claude Code 的預設工具 |605| `tools` | `string[] \| { type: 'preset'; preset: 'claude_code' }` | `undefined` | 工具設定。傳遞工具名稱陣列或使用預設值以取得 Claude Code 的預設工具 |

606| `verbatimPrompts` | `boolean` | `false` | 按原樣傳遞每個提示。SDK 會使用 `client_composed: true` 傳送每個使用者訊息。請參閱 [`client_composed`](#sdkusermessage) 以了解 Claude Code 在這些訊息上跳過的內容。當您的提示文字包含最終使用者未輸入的內容時使用此選項。如需每回合控制,請將其關閉並改為在個別串流訊息上設定 `client_composed`。需要 TypeScript Agent SDK v0.3.280 或更新版本和 Claude Code v2.1.248 或更新版本;與這些 SDK 版本捆綁的 Claude Code 版本滿足 Claude Code 要求 |

550 607 

551<h4 id="handle-slow-or-stalled-api-responses">608<h4 id="handle-slow-or-stalled-api-responses">

552 處理緩慢或停滯的 API 回應609 處理緩慢或停滯的 API 回應


617 path: string,674 path: string,

618 options?: { maxBytes?: number; encoding?: 'utf-8' | 'base64' }675 options?: { maxBytes?: number; encoding?: 'utf-8' | 'base64' }

619 ): Promise<SDKControlReadFileResponse | null>;676 ): Promise<SDKControlReadFileResponse | null>;

677 reloadPlugins(options?: {

678 holdOnCacheImpact?: boolean;

679 }): Promise<SDKControlReloadPluginsResponse>;

620 reloadSkills(): Promise<SDKControlReloadSkillsResponse>;680 reloadSkills(): Promise<SDKControlReloadSkillsResponse>;

681 reloadOutputStyles(): Promise<SDKControlReloadOutputStylesResponse>;

621 accountInfo(): Promise<AccountInfo>;682 accountInfo(): Promise<AccountInfo>;

622 reconnectMcpServer(serverName: string): Promise<void>;683 reconnectMcpServer(serverName: string): Promise<void>;

623 toggleMcpServer(serverName: string, enabled: boolean): Promise<void>;684 toggleMcpServer(serverName: string, enabled: boolean): Promise<void>;


650| `mcpServerStatus()` | 傳回連線 MCP 伺服器的狀態作為 [`McpServerStatus`](#mcpserverstatus)`[]` |711| `mcpServerStatus()` | 傳回連線 MCP 伺服器的狀態作為 [`McpServerStatus`](#mcpserverstatus)`[]` |

651| `getContextUsage(opts?)` | 傳回 [`SDKControlGetContextUsageResponse`](#sdkcontrolgetcontextusageresponse),按類別、技能和工具細分工作階段的內容視窗使用量。使用預設 `detail`,它與 `/context` 在互動式工作階段中顯示的資料相同。[`detail` 選項](#sdkcontrolgetcontextusageresponse)需要 Agent SDK v0.3.257 或更新版本 |712| `getContextUsage(opts?)` | 傳回 [`SDKControlGetContextUsageResponse`](#sdkcontrolgetcontextusageresponse),按類別、技能和工具細分工作階段的內容視窗使用量。使用預設 `detail`,它與 `/context` 在互動式工作階段中顯示的資料相同。[`detail` 選項](#sdkcontrolgetcontextusageresponse)需要 Agent SDK v0.3.257 或更新版本 |

652| `readFile(path, options?)` | 從工作階段的檔案系統讀取檔案。Claude Code 根據 `cwd` 解析路徑;[`readFile()` 可以讀取什麼](#what-readfile-can-read)列出它提供的檔案。傳遞 `{ maxBytes }` 以變更讀取上限(預設 1 MB,上限 10 MB)和 `{ encoding: 'base64' }` 以取得二進位檔案(例如影片)。使用 [`SDKControlReadFileResponse`](#sdkcontrolreadfileresponse) 進行解析,或在權限拒絕、遺失檔案或傳輸錯誤時使用 `null`。需要 TypeScript SDK v0.2.121 或更新版本 |713| `readFile(path, options?)` | 從工作階段的檔案系統讀取檔案。Claude Code 根據 `cwd` 解析路徑;[`readFile()` 可以讀取什麼](#what-readfile-can-read)列出它提供的檔案。傳遞 `{ maxBytes }` 以變更讀取上限(預設 1 MB,上限 10 MB)和 `{ encoding: 'base64' }` 以取得二進位檔案(例如影片)。使用 [`SDKControlReadFileResponse`](#sdkcontrolreadfileresponse) 進行解析,或在權限拒絕、遺失檔案或傳輸錯誤時使用 `null`。需要 TypeScript SDK v0.2.121 或更新版本 |

714| `reloadPlugins(options?)` | 從磁碟重新載入外掛程式,以便您在中期工作階段安裝或編輯的外掛程式可供執行中的工作階段使用。使用列出工作階段的命令、子代理、外掛程式和 MCP 伺服器狀態的 [`SDKControlReloadPluginsResponse`](#sdkcontrolreloadpluginsresponse) 進行解析。需要 Agent SDK v0.2.85 或更新版本。[`holdOnCacheImpact` 選項](#sdkcontrolreloadpluginsresponse)需要 Agent SDK v0.3.268 或更新版本 |

653| `reloadSkills()` | 從磁碟重新載入技能,以便您在中期工作階段新增或編輯的技能可供執行中的工作階段使用。使用列出重新載入後可用技能的 [`SDKControlReloadSkillsResponse`](#sdkcontrolreloadskillsresponse) 進行解析。需要 Agent SDK v0.3.163 或更新版本 |715| `reloadSkills()` | 從磁碟重新載入技能,以便您在中期工作階段新增或編輯的技能可供執行中的工作階段使用。使用列出重新載入後可用技能的 [`SDKControlReloadSkillsResponse`](#sdkcontrolreloadskillsresponse) 進行解析。需要 Agent SDK v0.3.163 或更新版本 |

716| `reloadOutputStyles()` | 重新讀取[輸出樣式](/docs/zh-TW/output-styles)從磁碟,以便您在中期工作階段新增或編輯的樣式檔案可供執行中的工作階段使用。使用列出重新載入後可用的樣式名稱的 [`SDKControlReloadOutputStylesResponse`](#sdkcontrolreloadoutputstylesresponse) 進行解析。需要 Agent SDK v0.3.261 或更新版本 |

654| `accountInfo()` | 傳回帳戶資訊 |717| `accountInfo()` | 傳回帳戶資訊 |

655| `reconnectMcpServer(serverName)` | 按名稱重新連線 MCP 伺服器。如果名稱也符合設定檔(例如 `.mcp.json` 或 `~/.claude.json`)中的項目,Claude Code 會重新連線您透過 [`mcpServers`](#options) 或 `setMcpServers()` 設定的伺服器,而不是設定檔項目。該解析順序需要 Claude Code v2.1.257 或更新版本 |718| `reconnectMcpServer(serverName)` | 按名稱重新連線 MCP 伺服器。如果名稱也符合設定檔(例如 `.mcp.json` 或 `~/.claude.json`)中的項目,Claude Code 會重新連線您透過 [`mcpServers`](#options) 或 `setMcpServers()` 設定的伺服器,而不是設定檔項目。該解析順序需要 Claude Code v2.1.257 或更新版本 |

656| `toggleMcpServer(serverName, enabled)` | 按名稱啟用或停用 MCP 伺服器,名稱解析與 `reconnectMcpServer()` 相同。停用會中斷伺服器連線 |719| `toggleMcpServer(serverName, enabled)` | 按名稱啟用或停用 MCP 伺服器,名稱解析與 `reconnectMcpServer()` 相同。停用會中斷伺服器連線 |


672* **在目前回合期間套用**:`model`。如果您在 Claude 處理回合時切換 `model`,Claude 已在產生的回應會在舊模型上完成,回合的其餘部分(從 Claude Code 對模型進行的下一個呼叫開始)使用新模型。子代理保留自己的模型。在 v2.1.212 之前,中期切換會等待下一回合。735* **在目前回合期間套用**:`model`。如果您在 Claude 處理回合時切換 `model`,Claude 已在產生的回應會在舊模型上完成,回合的其餘部分(從 Claude Code 對模型進行的下一個呼叫開始)使用新模型。子代理保留自己的模型。在 v2.1.212 之前,中期切換會等待下一回合。

673* **中期工作階段無效**:系統提示選項。這些在啟動時解析一次,因此執行中的工作階段保留原始值,即使呼叫成功。若要變更它們,請啟動新工作階段。736* **中期工作階段無效**:系統提示選項。這些在啟動時解析一次,因此執行中的工作階段保留原始值,即使呼叫成功。若要變更它們,請啟動新工作階段。

674 737 

675`effortLevel` 接受[努力等級](/docs/zh-TW/model-config#adjust-effort-level)名稱。它也接受 `"ultracode"`,這要求 `xhigh` 努力搭配 [ultracode](/docs/zh-TW/workflows#let-claude-decide-with-ultracode)。`applyFlagSettings()` 宣告 `effortLevel` 沒有該值,因此在 TypeScript 中傳遞等效的 `{ ultracode: true }`。`ultracode` 值需要 Claude Code v2.1.203 或更新版本,並且僅由 `applyFlagSettings()` 接受,不由設定檔中的 `effortLevel` 金鑰接受。738`effortLevel` 接受[努力等級](/docs/zh-TW/model-config#adjust-effort-level)名稱。它也接受 `"ultracode"`,這要求 `xhigh` 努力搭配 [ultracode](/docs/zh-TW/workflows#let-claude-decide-with-ultracode)。`applyFlagSettings()` 宣告 `effortLevel` 沒有該值,因此在 TypeScript 中傳遞 `{ ultracode: true, effortLevel: "xhigh" }` 以取得相同結果,或單獨傳遞 [`ultracode`](/docs/zh-TW/settings-reference#ultracode) 金鑰以在工作階段的目前努力等級開啟 ultracode。`ultracode` 值需要 Claude Code v2.1.203 或更新版本,並且僅由 `applyFlagSettings()` 接受,不由設定檔中的 `effortLevel` 金鑰接受。在 v2.1.284 之前,`ultracode` 金鑰單獨也設定等級為 `xhigh`。

676 739 

677值會寫入旗標設定層,與內嵌 `query()` 的 `settings` 選項在啟動時填入的層相同。這與[在頁面優先順序部分](#settings-precedence)稱為程式設計選項的層級相同。740值會寫入旗標設定層,與內嵌 `query()` 的 `settings` 選項在啟動時填入的層相同。這與[在頁面優先順序部分](#settings-precedence)稱為程式設計選項的層級相同。

678 741 

679連續呼叫淺層合併頂層金鑰。第二個呼叫搭配 `{ permissions: {...} }` 會取代來自先前呼叫的整個 `permissions` 物件,而不是深層合併到其中。若要從旗標層清除金鑰,請為該金鑰傳遞 `null`。大多數金鑰隨後會回退到較低優先順序的來源。清除的 `model` 會重設為 [Claude Code 的預設模型](/docs/zh-TW/model-config),即使設定檔設定 `model`。傳遞 `undefined` 沒有效果,因為 JSON 序列化會將其捨棄。742連續呼叫淺層合併頂層金鑰。第二個呼叫搭配 `{ permissions: {...} }` 會取代來自先前呼叫的整個 `permissions` 物件,而不是深層合併到其中。

743 

744若要從旗標層清除金鑰,請為該金鑰傳遞 `null`。大多數金鑰隨後會回退到較低優先順序的來源。清除的 `model` 會重設為 [Claude Code 的預設模型](/docs/zh-TW/model-config),即使設定檔設定 `model`。傳遞 `undefined` 沒有效果,因為 JSON 序列化會將其捨棄。

680 745 

681三個金鑰除了 `model` 外會重設工作階段狀態而不是回退:746三個金鑰除了 `model` 外會重設工作階段狀態而不是回退:

682 747 


739 804 

740`WarmQuery` 實作 `AsyncDisposable`,因此可以搭配 `await using` 使用以進行自動清理。805`WarmQuery` 實作 `AsyncDisposable`,因此可以搭配 `await using` 使用以進行自動清理。

741 806 

807<h3 id="spareprocess">

808 `SpareProcess`

809</h3>

810 

811*Alpha。* 由 [`prewarm()`](#prewarm) 傳回的控制代碼:已啟動但尚未繫結到工作階段的 Claude Code 程序,可以聲稱一次。需要 TypeScript Agent SDK v0.3.282 或更新版本。

812 

813```typescript theme={null}

814interface SpareProcess extends AsyncDisposable {

815 claim(params: {

816 prompt: string | AsyncIterable<SDKUserMessage>;

817 options: ClaimOptions;

818 }): Query;

819 readonly claimed: Promise<{ cwd: string; sessionId: string; parkedMs?: number; sdkMcpSettled: boolean }>;

820 readonly exited: Promise<void>;

821 close(): void;

822}

823```

824 

825<h4 id="members">

826 成員

827</h4>

828 

829| 成員 | 說明 |

830| :- | :- |

831| `claim({ prompt, options })` | 將備用程序繫結到 `options.cwd` 中的工作階段並傳送其首個訊息。同步傳回 [`Query`](#query-object),如 `query()` 一樣。只能呼叫一次 |

832| `claimed` | 一旦 Claude Code 接受聲稱,就使用工作階段的工作目錄和 ID 進行解析。當 Claude Code 拒絕聲稱、程序在之前退出或被關閉時拒絕,以及當工作階段執行時沒有您要求的 `model` 或 `maxThinkingTokens` 時,訊息以 `option_not_applied` 開頭拒絕 |

833| `exited` | 在程序退出時解決,無論是否聲稱。取代在您聲稱之前退出的備用程序 |

834| `close()` | 終止程序。在聲稱之前,這會捨棄備用程序並拒絕 `claimed` |

835 

836`options.cwd` 是必要的。聲稱也可以設定 `additionalDirectories`、`model`、`permissionMode`、`maxThinkingTokens`、`settings` 中的旗標設定覆蓋、`appendSystemPrompt`、`title`、`agents` 和 `env` 中的每個工作階段權杖。

837 

838Claude Code 可以拒絕聲稱,例如對於不存在的資料夾或其專案設定設定 `env`、`agent` 或 `model` 的資料夾。當 `claimed` 拒絕訊息以 `option_not_applied` 開頭時,工作階段執行時沒有您要求的 `model` 或 `maxThinkingTokens`。在任何其他拒絕後,您的提示尚未執行,因此改為使用 `query()` 啟動工作階段。

839 

742<h3 id="sdkcontrolinitializeresponse">840<h3 id="sdkcontrolinitializeresponse">

743 `SDKControlInitializeResponse`841 `SDKControlInitializeResponse`

744</h3>842</h3>


822 tokens: number;920 tokens: number;

823 color: string;921 color: string;

824 isDeferred?: boolean;922 isDeferred?: boolean;

923 kind: "used" | "free" | "buffer" | "deferred";

825 }[];924 }[];

826 totalTokens: number;925 totalTokens: number;

827 maxTokens: number;926 maxTokens: number;


911 1010 

912從集合欄位讀取權杖歸因:1011從集合欄位讀取權杖歸因:

913 1012 

914* `categories` 保留每個類別的總計。1013* `categories` 保留每個類別的總計。每個項目的 `kind` 使用與 [`SDKContextUsageCategory`](#sdkcontextusagecategory) 相同的值對行進行分類。根據它而不是顯示 `name` 對行進行分類。該欄位需要 Agent SDK v0.3.268 或更新版本。

915* `mcpTools` 和 `agents` 將權杖歸因於個別 MCP 工具和子代理。1014* `mcpTools` 和 `agents` 將權杖歸因於個別 MCP 工具和子代理。

916* `memoryFiles` 列出每個載入的記憶體檔案及其成本。1015* `memoryFiles` 列出每個載入的記憶體檔案及其成本。

917* `skills.skillFrontmatter` 將技能清單的權杖歸因於每個包含的技能。每個技能的計數測量每個技能的清單項目,因為 Claude Code 實際傳送它,這可能比技能的完整 frontmatter 更短。比較 `skills.totalSkills` 與 `skills.includedSkills` 以查看每個發現的技能是否進入清單。1016* `skills.skillFrontmatter` 將技能清單的權杖歸因於每個包含的技能。每個技能的計數測量每個技能的清單項目,因為 Claude Code 實際傳送它,這可能比技能的完整 frontmatter 更短。比較 `skills.totalSkills` 與 `skills.includedSkills` 以查看每個發現的技能是否進入清單。


948 1047 

949Read 拒絕和詢問規則仍會阻止符合的路徑,廣泛的 Read 允許規則不會將檔案系統的其餘部分開啟給 `readFile()`。對於任何其他內容,呼叫會使用 `null` 進行解析。1048Read 拒絕和詢問規則仍會阻止符合的路徑,廣泛的 Read 允許規則不會將檔案系統的其餘部分開啟給 `readFile()`。對於任何其他內容,呼叫會使用 `null` 進行解析。

950 1049 

1050<h3 id="sdkcontrolreloadpluginsresponse">

1051 `SDKControlReloadPluginsResponse`

1052</h3>

1053 

1054[`reloadPlugins()`](#query-object) 的傳回類型。

1055 

1056```typescript theme={null}

1057type SDKControlReloadPluginsResponse = {

1058 commands: SlashCommand[];

1059 agents: AgentInfo[];

1060 plugins: {

1061 name: string;

1062 path: string;

1063 source?: string;

1064 version?: string;

1065 }[];

1066 mcpServers: McpServerStatus[];

1067 error_count: number;

1068 held?: boolean;

1069 cache_impact?: {

1070 mcp_servers_added: string[];

1071 mcp_servers_removed: string[];

1072 lsp_tool_change: ("adds" | "may-add" | "removes" | "may-remove") | null;

1073 };

1074};

1075```

1076 

1077集合欄位描述呼叫後的工作階段:

1078 

1079* `commands`、`agents` 和 `mcpServers`:工作階段的命令、子代理和 MCP 伺服器狀態,採用 `supportedCommands()`、`supportedAgents()` 和 `mcpServerStatus()` 傳回的相同形狀。`supportedAgents()` 保留在初始化時擷取的清單,因此在此讀取 `agents` 以取得重新載入後的集合

1080* `plugins`:每個載入的外掛程式及其 `name` 和安裝 `path`。`version` 重複外掛程式的資訊清單宣告的內容,並由外掛程式作者控制,因此在信任之前驗證它。當資訊清單未宣告任何內容時省略

1081* `error_count`:載入外掛程式的錯誤數

1082 

1083傳遞 `{ holdOnCacheImpact: true }` 到 `reloadPlugins()` 以保留會使對話的提示快取失效的重新載入,而不是套用它。Claude Code 執行互動式 `/reload-plugins` 命令在[警告快取成本](/docs/zh-TW/prompt-caching#enabling-or-disabling-a-plugin)之前進行的檢查。該選項需要 Agent SDK v0.3.268 或更新版本。比 v2.1.268 更舊的 Claude Code 可執行檔(例如您指向 `pathToClaudeCodeExecutable` 的可執行檔)會忽略該選項並套用重新載入。

1084 

1085當您傳遞該選項時,讀取 `held` 以了解發生了什麼:

1086 

1087* `true`:重新載入未被套用,集合欄位描述工作階段仍然是什麼。`cache_impact` 說明套用會變更什麼。若要改為套用,請再次呼叫 `reloadPlugins()` 而不使用該選項。

1088* `false`:檢查未發現快取影響,重新載入已被套用。

1089* 不存在:您未傳遞該選項,或 Claude Code 可執行檔比 v2.1.268 更舊並套用了重新載入。

1090 

1091`cache_impact` 僅在 `held: true` 時出現。`mcp_servers_added` 和 `mcp_servers_removed` 命名重新載入會註冊或捨棄的外掛程式 MCP 伺服器,作為範圍 `plugin:<plugin>:<server>` 名稱。名稱由外掛程式作者編寫,因此在顯示之前驗證它們。`lsp_tool_change` 說明套用是否會新增或移除 LSP 工具,或 `null` 當它都不會做時。`may-` 形式表示檢查無法完全看到待處理的外掛程式集。

1092 

951<h3 id="sdkcontrolreloadskillsresponse">1093<h3 id="sdkcontrolreloadskillsresponse">

952 `SDKControlReloadSkillsResponse`1094 `SDKControlReloadSkillsResponse`

953</h3>1095</h3>


962 1104 

963`skills` 列出重新載入後可用的技能,採用 `supportedCommands()` 傳回的相同 [`SlashCommand`](#slashcommand) 形狀。1105`skills` 列出重新載入後可用的技能,採用 `supportedCommands()` 傳回的相同 [`SlashCommand`](#slashcommand) 形狀。

964 1106 

1107<h3 id="sdkcontrolreloadoutputstylesresponse">

1108 `SDKControlReloadOutputStylesResponse`

1109</h3>

1110 

1111[`reloadOutputStyles()`](#query-object) 的傳回類型。

1112 

1113```typescript theme={null}

1114type SDKControlReloadOutputStylesResponse = {

1115 available_output_styles: string[];

1116};

1117```

1118 

1119`available_output_styles` 列出重新載入後可用的內建和自訂輸出樣式的名稱。

1120 

965<h3 id="sdkcontrolmcpreadresourceresponse">1121<h3 id="sdkcontrolmcpreadresourceresponse">

966 `SDKControlMcpReadResourceResponse`1122 `SDKControlMcpReadResourceResponse`

967</h3>1123</h3>


982 1138 

983將伺服器名稱作為 `mcpServerStatus()` 報告的名稱和 `ui://` URI(例如工具在其 [`_meta`](#mcpserverstatus) 中宣告的 `ui.resourceUri`)傳遞給 `readMcpResource()`。呼叫會針對任何其他 URI 配置、您的應用程式自己託管的 [SDK MCP 伺服器](#createsdkmcpserver) 以及未連線的伺服器而拒絕。當初始化訊息的 [`capabilities`](#sdksystemmessage) 包含 `mcp_read_resource_v1` 時可用。1139將伺服器名稱作為 `mcpServerStatus()` 報告的名稱和 `ui://` URI(例如工具在其 [`_meta`](#mcpserverstatus) 中宣告的 `ui.resourceUri`)傳遞給 `readMcpResource()`。呼叫會針對任何其他 URI 配置、您的應用程式自己託管的 [SDK MCP 伺服器](#createsdkmcpserver) 以及未連線的伺服器而拒絕。當初始化訊息的 [`capabilities`](#sdksystemmessage) 包含 `mcp_read_resource_v1` 時可用。

984 1140 

985每個 `contents` 項目都是伺服器傳送的一個內容項目。`blob` 為二進位項目保留 base64 資料,`_meta` 是項目自己的 `_meta`,其中 MCP Apps 伺服器放置資源的 `ui.csp` 和 `ui.permissions`。內容是不受信任的第三方 HTML,因此在沙箱中呈現。1141每個 `contents` 項目都是伺服器傳送的一個內容項目,減去 `com.anthropic/` 前置詞下的任何 `_meta` 金鑰,該金鑰保留給 Claude Code。`blob` 為二進位項目保留 base64 資料,`_meta` 是項目自己的 `_meta`,其中 MCP Apps 伺服器放置資源的 `ui.csp` 和 `ui.permissions`。內容是不受信任的第三方 HTML,因此在沙箱中呈現。

986 1142 

987<h3 id="agentdefinition">1143<h3 id="agentdefinition">

988 `AgentDefinition`1144 `AgentDefinition`


1140 blockedPath?: string;1296 blockedPath?: string;

1141 mcpServer?: { name: string; source: string };1297 mcpServer?: { name: string; source: string };

1142 decisionReason?: string;1298 decisionReason?: string;

1299 defaultToNo?: boolean;

1300 suppressAlwaysAllowRule?: boolean;

1143 toolUseID: string;1301 toolUseID: string;

1144 agentID?: string;1302 agentID?: string;

1145 requestId: string;1303 requestId: string;


1154| `blockedPath` | `string` | 觸發權限請求的檔案路徑(如果適用) |1312| `blockedPath` | `string` | 觸發權限請求的檔案路徑(如果適用) |

1155| `mcpServer` | `{ name: string; source: string }` | 對於 `mcp__*` 工具,提供該工具的 MCP 伺服器及其定義來自何處,具有 [`McpServerProvenance`](#mcpserverprovenance) 的欄位。對於其他工具不存在。需要 Agent SDK v0.3.274 或更新版本 |1313| `mcpServer` | `{ name: string; source: string }` | 對於 `mcp__*` 工具,提供該工具的 MCP 伺服器及其定義來自何處,具有 [`McpServerProvenance`](#mcpserverprovenance) 的欄位。對於其他工具不存在。需要 Agent SDK v0.3.274 或更新版本 |

1156| `decisionReason` | `string` | 解釋為什麼觸發此權限請求 |1314| `decisionReason` | `string` | 解釋為什麼觸發此權限請求 |

1315| `defaultToNo` | `boolean` | 當為 `true` 時,單一偶然按鍵必須不核准此請求:在其拒絕選項上開啟提示,不要預先選擇核准,並且不提供單鍵核准快捷方式。需要 Agent SDK v0.3.268 或更新版本 |

1316| `suppressAlwaysAllowRule` | `boolean` | 當為 `true` 時,不要為此請求提供持久的永遠允許選擇,因為它會寫入的規則授予超過請求自己的動作。需要 Agent SDK v0.3.268 或更新版本 |

1157| `toolUseID` | `string` | 助手訊息內此特定工具呼叫的唯一識別碼 |1317| `toolUseID` | `string` | 助手訊息內此特定工具呼叫的唯一識別碼 |

1158| `agentID` | `string` | 如果在子代理內執行,子代理的 ID |1318| `agentID` | `string` | 如果在子代理內執行,子代理的 ID |

1159| `requestId` | `string` | `control_request` 信封的 `request_id`。您的應用程式在其自己的通道上傳送的 `control_response`(例如簽署的 HTTP POST)必須回應此值,以便 Claude Code 程序可以將回覆與請求相符 |1319| `requestId` | `string` | `control_request` 信封的 `request_id`。您的應用程式在其自己的通道上傳送的 `control_response`(例如簽署的 HTTP POST)必須回應此值,以便 Claude Code 程序可以將回覆與請求相符 |


1378 context_usage?: SDKContextUsage;1538 context_usage?: SDKContextUsage;

1379 user_message_uuid?: string;1539 user_message_uuid?: string;

1380 user_message_uuids?: string[];1540 user_message_uuids?: string[];

1541 resume_reason?: string;

1381};1542};

1382```1543```

1383 1544 


1392 1553 

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

1394 1555 

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

1396 1557 

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

1398 1559 


1414 parent_tool_use_id: string | null;1575 parent_tool_use_id: string | null;

1415 isSynthetic?: boolean;1576 isSynthetic?: boolean;

1416 shouldQuery?: boolean;1577 shouldQuery?: boolean;

1578 client_composed?: true;

1417 tool_use_result?: unknown;1579 tool_use_result?: unknown;

1418 origin?: SDKMessageOrigin;1580 origin?: SDKMessageOrigin;

1419 inline_pastes?: string[];1581 inline_pastes?: string[];

1420};1582};

1421```1583```

1422 1584 

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

1586 

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

1424 1588 

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

1590* `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 或更新版本。

1426 1591 

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

1428 1593 


1446 message: MessageParam;1611 message: MessageParam;

1447 parent_tool_use_id: string | null;1612 parent_tool_use_id: string | null;

1448 isSynthetic?: boolean;1613 isSynthetic?: boolean;

1614 client_composed?: true;

1449 tool_use_result?: unknown;1615 tool_use_result?: unknown;

1450 origin?: SDKMessageOrigin;1616 origin?: SDKMessageOrigin;

1451 isReplay: true;1617 isReplay: true;


1478 ttft_stream_ms?: number;1644 ttft_stream_ms?: number;

1479 user_message_uuid?: string;1645 user_message_uuid?: string;

1480 user_message_uuids?: string[];1646 user_message_uuids?: string[];

1647 resume_reason?: string;

1648 local_command?: string;

1481 request_sent_wall_ms?: number;1649 request_sent_wall_ms?: number;

1482 first_content_frame_ms?: number;1650 first_content_frame_ms?: number;

1483 first_stream_post_ms?: number;1651 first_stream_post_ms?: number;


1491 structured_output?: unknown;1659 structured_output?: unknown;

1492 deferred_tool_use?: { id: string; name: string; input: Record<string, unknown> };1660 deferred_tool_use?: { id: string; name: string; input: Record<string, unknown> };

1493 terminal_reason?: TerminalReason;1661 terminal_reason?: TerminalReason;

1662 result_index?: number;

1494 fast_mode_state?: FastModeState;1663 fast_mode_state?: FastModeState;

1495 fast_mode_disabled_reason?: FastModeDisabledReason;1664 fast_mode_disabled_reason?: FastModeDisabledReason;

1496 origin?: SDKMessageOrigin;1665 origin?: SDKMessageOrigin;


1518 startup_failure_reason?: SDKStartupFailureReason;1687 startup_failure_reason?: SDKStartupFailureReason;

1519 user_message_uuid?: string;1688 user_message_uuid?: string;

1520 user_message_uuids?: string[];1689 user_message_uuids?: string[];

1690 resume_reason?: string;

1521 terminal_reason?: TerminalReason;1691 terminal_reason?: TerminalReason;

1692 result_index?: number;

1522 fast_mode_state?: FastModeState;1693 fast_mode_state?: FastModeState;

1523 fast_mode_disabled_reason?: FastModeDisabledReason;1694 fast_mode_disabled_reason?: FastModeDisabledReason;

1524 origin?: SDKMessageOrigin;1695 origin?: SDKMessageOrigin;


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

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

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

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

1707*

1708 

1709`local_command`:轉換分派的命令的名稱,在轉換的成功結果上,該轉換由命令完成而不進入代理迴圈,例如 `/compact`。名稱折疊為小寫字母和底線,因此 `/reload-plugins` 報告 `reload_plugins`。MCP 伺服器提供的命令以及內建 `/mcp` 報告 `mcp`。您自己定義的命令報告 `custom`。引數永遠不包括。在進入代理迴圈的每個轉換上不存在,以及在執行沒有命令的傳送上不存在。需要 Agent SDK v0.3.268 或更新版本。

1710 

1535* `request_sent_wall_ms`:Claude Code 分派 API 請求的紀元毫秒,用於與伺服器端時間戳記的連接。僅與 [`user_message_uuid`](#user_message_uuid) 一起存在,在成功結果上,其中 `is_error` 為 false,其轉換傳送了 API 請求。1711* `request_sent_wall_ms`:Claude Code 分派 API 請求的紀元毫秒,用於與伺服器端時間戳記的連接。僅與 [`user_message_uuid`](#user_message_uuid) 一起存在,在成功結果上,其中 `is_error` 為 false,其轉換傳送了 API 請求。

1536* `first_content_frame_ms`:直到第一個 `content_block_start` 或 `content_block_delta` 串流事件的時間(毫秒),將思考區塊計為內容。僅在成功分支上存在,當 `is_error` 為 false 時。需要 Agent SDK v0.3.260 或更新版本。1712*

1537* `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 或更新版本。1713 

1714`first_content_frame_ms`:直到第一個 `content_block_start` 或 `content_block_delta` 串流事件的時間(毫秒),將思考區塊計為內容。僅在成功分支上存在,當 `is_error` 為 false 時。需要 Agent SDK v0.3.260 或更新版本。

1715 

1716*

1717 

1718`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 或更新版本。

1719 

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

1539* `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)以了解歸零結果。1721* `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)以了解歸零結果。

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

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

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

1725 

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

1727 

1728*

1729 

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

1731 

1543* `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"` 之一。1732* `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"` 之一。

1544* `fast_mode_state`:`"on"`、`"off"` 或 `"cooldown"` 之一。1733* `fast_mode_state`:`"on"`、`"off"` 或 `"cooldown"` 之一。

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


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

1579 1768 

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

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

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

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

1773 

1774*

1775 

1776**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 或更新版本。

1777 

1778*

1779 

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

1583 1781 

1584Claude Code 在三種框架上回顯回答的訊息的 `uuid`:1782Claude Code 在三種框架上回顯回答的訊息的 `uuid`:

1585 1783 

1586* **結果**:回答您傳送的訊息的轉換的每個結果。在 Agent SDK v0.3.265 或更新版本上,每個此類結果都攜帶它。在 v0.3.265 之前,常規訊息啟動的轉換的成功結果在轉換未傳送 API 請求或以延遲工具呼叫結束時缺少它。在 v0.3.246 之前,錯誤結果也缺少它,在 v0.3.216 之前每個結果都缺少它。1784* **結果**:回答您傳送的訊息的轉換的每個結果。在 Agent SDK v0.3.265 或更新版本上,每個此類結果都攜帶它。在 v0.3.265 之前,常規訊息啟動的轉換的成功結果在轉換未傳送 API 請求或以延遲工具呼叫結束時缺少它。在 v0.3.246 之前,錯誤結果也缺少它,在 v0.3.216 之前每個結果都缺少它。

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

1588* **轉換的每個 [`thinking_tokens`](#sdkthinkingtokensmessage) 框架**:以便您可以將思考進度歸因於您傳送的訊息,而無需等待轉換的第一個回覆。需要 Agent SDK v0.3.260 或更新版本。1786 

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

1788 

1789*

1790 

1791**轉換的每個 [`thinking_tokens`](#sdkthinkingtokensmessage) 框架**:以便您可以將思考進度歸因於您傳送的訊息,而無需等待轉換的第一個回覆。需要 Agent SDK v0.3.260 或更新版本。

1589 1792 

1590Claude Code 在這些情況下省略該欄位:1793Claude Code 在這些情況下省略該欄位:

1591 1794 

1592* 除了那些第一個回覆之外的回覆框架1795* 除了那些第一個回覆之外的回覆框架

1593* 子代理框架1796* 子代理框架

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

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

1596 1799 

1597<h4 id="user_message_uuids">1800<h4 id="user_message_uuids">


1606 1809 

1607當第一個回覆或結果攜帶 `user_message_uuid` 而沒有清單時,它來自較早的 Claude Code 版本,因此回退到單個欄位。1810當第一個回覆或結果攜帶 `user_message_uuid` 而沒有清單時,它來自較早的 Claude Code 版本,因此回退到單個欄位。

1608 1811 

1812<h4 id="resume_reason">

1813 `resume_reason`

1814</h4>

1815 

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

1817 

1818Claude Code 在兩種框架上設定該欄位:

1819 

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

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

1822 

1823該值是命名轉換重新執行原因的短小寫令牌,例如 `interrupted_turn`。該欄位在所有其他轉換上不存在。

1824 

1609<h4 id="queued_turn_count">1825<h4 id="queued_turn_count">

1610 `queued_turn_count`1826 `queued_turn_count`

1611</h4>1827</h4>


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

1656| `org_verify_failed` | 登入的組織無法針對 pin 進行驗證,例如由於網路故障或已撤銷的令牌 |1872| `org_verify_failed` | 登入的組織無法針對 pin 進行驗證,例如由於網路故障或已撤銷的令牌 |

1657| `org_pin_mismatch` | 登入屬於 pin 不允許的組織 |1873| `org_pin_mismatch` | 登入屬於 pin 不允許的組織 |

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

1659| `remote_settings_required_unavailable` | 組織所需的受管設定無法載入 |1875| `remote_settings_required_unavailable` | 組織所需的受管設定無法載入 |

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

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


1699 output_style: string;1915 output_style: string;

1700 skills: string[];1916 skills: string[];

1701 plugins: { name: string; path: string }[];1917 plugins: { name: string; path: string }[];

1918 plugin_errors?: {

1919 plugin: string;

1920 type: string;

1921 message: string;

1922 path?: string;

1923 }[];

1702 fast_mode_state?: FastModeState;1924 fast_mode_state?: FastModeState;

1703 fast_mode_disabled_reason?: FastModeDisabledReason;1925 fast_mode_disabled_reason?: FastModeDisabledReason;

1704 effort?: "low" | "medium" | "high" | "xhigh" | "max" | null;1926 effort?: "low" | "medium" | "high" | "xhigh" | "max" | null;


1708 1930 

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

1710 1932 

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

1712 1934 

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

1714*1935*

1715 1936 

1716`effort`:[努力級別](/docs/zh-TW/model-config#adjust-effort-level) Claude Code 在工作階段的下一個請求上傳送,或當它不傳送任何時為 `null`。Claude Code 僅在它傳送給[遠端控制](/docs/zh-TW/remote-control)用戶端的初始化訊息上設定該欄位,並從您的應用程式讀取的初始化訊息中省略它。需要 Agent SDK v0.3.234 或更新版本。1937每個 `mcp_servers` 項目上的 `source`:伺服器定義的來源,與 [`McpServerStatus`](#mcpserverstatus) 的 `source` 具有相同的值。需要 Agent SDK v0.3.274 或更新版本。

1938 

1939*

1940 

1941`effort`:[努力級別](/docs/zh-TW/model-config#adjust-effort-level) Claude Code 在工作階段的下一個請求上傳送,或當它不傳送任何時為 `null`。Claude Code 僅在它傳送給[遠端控制](/docs/zh-TW/remote-control)使用者的初始化訊息上設定該欄位,並從您的應用程式讀取的初始化訊息中省略它。需要 Agent SDK v0.3.234 或更新版本。

1717 1942 

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

1719 1944 


1723| `interrupt_cancel_queued_v1` | |1948| `interrupt_cancel_queued_v1` | |

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

1725 1950 

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

1952 

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

1954 

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

1956 

1957| 欄位 | 類型 | 描述 |

1958| - | - | - |

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

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

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

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

1963 

1726<h3 id="sdkpartialassistantmessage">1964<h3 id="sdkpartialassistantmessage">

1727 `SDKPartialAssistantMessage`1965 `SDKPartialAssistantMessage`

1728</h3>1966</h3>


1739 ttft_ms?: number; // Time to first token in ms, present only on message_start events1977 ttft_ms?: number; // Time to first token in ms, present only on message_start events

1740 user_message_uuid?: string;1978 user_message_uuid?: string;

1741 user_message_uuids?: string[];1979 user_message_uuids?: string[];

1980 resume_reason?: string;

1742};1981};

1743```1982```

1744 1983 

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

1746 1985 

1747<h3 id="sdkcompactboundarymessage">1986<h3 id="sdkcompactboundarymessage">

1748 `SDKCompactBoundaryMessage`1987 `SDKCompactBoundaryMessage`


1767 `SDKInformationalMessage`2006 `SDKInformationalMessage`

1768</h3>2007</h3>

1769 2008 

1770迴圈發出的通用文字橫幅。攜帶非錯誤狀態行、鉤子反饋(例如 `UserPromptSubmit` 鉤子的區塊原因)和命令輸出。在 Claude Code v2.1.227 或更新版本上,鉤子的 [`systemMessage`](/docs/zh-TW/hooks#json-output) 可以作為此訊息到達,每行前綴為鉤子的名稱,例如 `PostToolUse:Bash says:`。鉤子的 `systemMessage` 是否作為此訊息到達取決於事件。每個[事件的部分](/docs/zh-TW/hooks#hook-events)在鉤子頁面上說明輸出如何呈現。將 `content` 呈現為給定 `level` 的純文字。2009迴圈發出的通用文字橫幅。攜帶警告、通知和其他非錯誤狀態行 Claude Code 引發,以及鉤子反饋,例如 `UserPromptSubmit` 鉤子的區塊原因。

2010 

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

2012 

2013將 `content` 呈現為給定 `level` 的純文字。

1771 2014 

1772```typescript theme={null}2015```typescript theme={null}

1773type SDKInformationalMessage = {2016type SDKInformationalMessage = {


1786 `SDKWorkerShuttingDownMessage`2029 `SDKWorkerShuttingDownMessage`

1787</h3>2030</h3>

1788 2031 

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

1790 2033 

1791```typescript theme={null}2034```typescript theme={null}

1792type SDKWorkerShuttingDownMessage = {2035type SDKWorkerShuttingDownMessage = {


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

1824 2067 

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

1826* **都沒有**:裸 `-p` 執行,或 `query()` 既不設定 `canUseTool` 也不設定 `permissionPromptToolName`,拒絕任何會提示的工具呼叫,此事件報告這些拒絕以及 Claude Code 自己決定的拒絕。在 v2.1.223 之前,Claude Code 在沒有回呼的執行中不發出此事件。2069*

2070 

2071**都沒有**:裸 `-p` 執行,或 `query()` 既不設定 `canUseTool` 也不設定 `permissionPromptToolName`,拒絕任何會提示的工具呼叫,此事件報告這些拒絕以及 Claude Code 自己決定的拒絕。在 v2.1.223 之前,Claude Code 在沒有回呼的執行中不發出此事件。

2072 

1827* **使用 MCP 提示工具**,使用 `permissionPromptToolName` 或 [`--permission-prompt-tool`](/docs/zh-TW/cli-reference#cli-flags) 旗標設定,以及預設 `permissionPrompts: 'host'`:Claude Code 根本不發出此事件,甚至不發出它自己決定的規則拒絕。2073* **使用 MCP 提示工具**,使用 `permissionPromptToolName` 或 [`--permission-prompt-tool`](/docs/zh-TW/cli-reference#cli-flags) 旗標設定,以及預設 `permissionPrompts: 'host'`:Claude Code 根本不發出此事件,甚至不發出它自己決定的規則拒絕。

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

2075 

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

1829 2077 

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

1831 2079 


2875 工具輸入類型3123 工具輸入類型

2876</h2>3124</h2>

2877 3125 

2878所有內建 Claude Code 工具的輸入架構文件。這些類型從 `@anthropic-ai/claude-agent-sdk` 匯出,可用於類型安全的工具互動。3126所有內建 Claude Code 工具的輸入架構文件。這些類型從 `@anthropic-ai/claude-agent-sdk/sdk-tools` 匯出,可用於類型安全的工具互動。

2879 3127 

2880<h3 id="toolinputschemas">3128<h3 id="toolinputschemas">

2881 `ToolInputSchemas`3129 `ToolInputSchemas`

2882</h3>3130</h3>

2883 3131 

2884從 `@anthropic-ai/claude-agent-sdk` 匯出的工具輸入類型的聯合;成員包括:3132從 `@anthropic-ai/claude-agent-sdk/sdk-tools` 匯出的工具輸入類型的聯合;成員包括:

2885 3133 

2886```typescript theme={null}3134```typescript theme={null}

2887type ToolInputSchemas =3135type ToolInputSchemas =


3683 工具輸出類型3931 工具輸出類型

3684</h2>3932</h2>

3685 3933 

3686所有內建 Claude Code 工具的輸出架構文件。這些類型從 `@anthropic-ai/claude-agent-sdk` 匯出,代表每個工具傳回的實際回應資料。3934所有內建 Claude Code 工具的輸出架構文件。這些類型從 `@anthropic-ai/claude-agent-sdk/sdk-tools` 匯出,代表每個工具傳回的實際回應資料。

3687 3935 

3688<h3 id="tooloutputschemas">3936<h3 id="tooloutputschemas">

3689 `ToolOutputSchemas`3937 `ToolOutputSchemas`

3690</h3>3938</h3>

3691 3939 

3692從 `@anthropic-ai/claude-agent-sdk` 匯出的工具輸出類型聯合;成員包括:3940從 `@anthropic-ai/claude-agent-sdk/sdk-tools` 匯出的工具輸出類型聯合;成員包括:

3693 3941 

3694```typescript theme={null}3942```typescript theme={null}

3695type ToolOutputSchemas =3943type ToolOutputSchemas =


5528 `SDKTaskProgressMessage`5776 `SDKTaskProgressMessage`

5529</h3>5777</h3>

5530 5778 

5531在子代理或背景工作執行時定期發出。`summary` 欄位僅在啟用 [`agentProgressSummaries`](#options) 時填入。5779在子代理或背景工作執行時定期發出。

5780 

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

5532 5782 

5533```typescript theme={null}5783```typescript theme={null}

5534type SDKTaskProgressMessage = {5784type SDKTaskProgressMessage = {


5691 5941 

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

5693 5943 

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

5945 

5694```typescript theme={null}5946```typescript theme={null}

5695type SDKCommandsChangedMessage = {5947type SDKCommandsChangedMessage = {

5696 type: "system";5948 type: "system";


5728 new_conversation_id: UUID;5980 new_conversation_id: UUID;

5729 uuid: UUID;5981 uuid: UUID;

5730 session_id: string;5982 session_id: string;

5983 trigger?: "clear" | "plan_mode_exit" | "fresh_session" | "onboarding";

5984 user_message_uuid?: string;

5985 timestamp?: string;

5731};5986};

5732```5987```

5733 5988 

5989可選欄位描述重設:

5990 

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

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

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

5994 

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

5996 

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

5735 5998 

5736<h3 id="aborterror">5999<h3 id="aborterror">


5847| `allowedDomains` | `string[]` | `[]` | Sandboxed 程序可以存取的網域名稱 |6110| `allowedDomains` | `string[]` | `[]` | Sandboxed 程序可以存取的網域名稱 |

5848| `deniedDomains` | `string[]` | `[]` | Sandboxed 程序無法存取的網域名稱。優先於 `allowedDomains` |6111| `deniedDomains` | `string[]` | `[]` | Sandboxed 程序無法存取的網域名稱。優先於 `allowedDomains` |

5849| `strictAllowlist` | `boolean` | `false` | 拒絕 sandboxed 命令存取[網路允許清單](/docs/zh-TW/sandboxing#network-isolation)外的主機,而不是提示。僅對 sandboxed 命令強制執行;WebFetch 等程序內工具不受其限制。僅從使用者、受管理或 CLI `--settings` 設定中接受;專案設定會被忽略。需要 Claude Code v2.1.219 或更新版本 |6112| `strictAllowlist` | `boolean` | `false` | 拒絕 sandboxed 命令存取[網路允許清單](/docs/zh-TW/sandboxing#network-isolation)外的主機,而不是提示。僅對 sandboxed 命令強制執行;WebFetch 等程序內工具不受其限制。僅從使用者、受管理或 CLI `--settings` 設定中接受;專案設定會被忽略。需要 Claude Code v2.1.219 或更新版本 |

5850| `allowManagedDomainsOnly` | `boolean` | `false` | 僅受管理設定。在[受管理設定](/docs/zh-TW/managed-settings)中設定時,只有 `allowedDomains` 項目和來自受管理設定的 `WebFetch(domain:...)` 允許規則會被接受,來自使用者、專案或本機設定的允許項目會被忽略。透過 SDK 選項設定時無效 |6113| `allowManagedDomainsOnly` | `boolean` | `false` | 僅受管理設定。在[受管理設定](/docs/zh-TW/managed-settings)中設定時,只有 `allowedDomains` 項目和來自受管理設定的 `WebFetch(domain:...)` 允許規則會被接受,來自使用者、專案或本機設定的允許項目會被忽略。透過 SDK,透過 [`managedSettings`](#options) 選項傳遞它 |

5851| `allowLocalBinding` | `boolean` | `false` | 允許程序繫結到本機連接埠(例如用於開發伺服器) |6114| `allowLocalBinding` | `boolean` | `false` | 允許程序繫結到本機連接埠(例如用於開發伺服器) |

5852| `allowUnixSockets` | `string[]` | `[]` | 程序可以存取的 Unix socket 路徑(例如 Docker socket) |6115| `allowUnixSockets` | `string[]` | `[]` | 程序可以存取的 Unix socket 路徑(例如 Docker socket) |

5853| `allowAllUnixSockets` | `boolean` | `false` | 允許存取所有 Unix socket |6116| `allowAllUnixSockets` | `boolean` | `false` | 允許存取所有 Unix socket |

Details

296 <Tab title="批准並記住">296 <Tab title="批准並記住">

297 使用者批准且不想再被詢問此類呼叫。第三個回呼參數帶有 `suggestions`,這是現成的 [`PermissionUpdate`](/docs/zh-TW/agent-sdk/typescript#permissionupdate) 條目陣列。在 `updatedPermissions` 中回應其中一個以應用它。具有 `localSettings` 目的地的建議會將規則寫入 `.claude/settings.local.json`,以便未來的工作階段跳過匹配呼叫的提示。297 使用者批准且不想再被詢問此類呼叫。第三個回呼參數帶有 `suggestions`,這是現成的 [`PermissionUpdate`](/docs/zh-TW/agent-sdk/typescript#permissionupdate) 條目陣列。在 `updatedPermissions` 中回應其中一個以應用它。具有 `localSettings` 目的地的建議會將規則寫入 `.claude/settings.local.json`,以便未來的工作階段跳過匹配呼叫的提示。

298 298 

299 在 TypeScript 中,針對選項帶有 [`suppressAlwaysAllowRule: true`](/docs/zh-TW/agent-sdk/typescript#canusetool) 的請求,跳過始終允許的選擇。該提示需要 Agent SDK v0.3.268 或更新版本,Python `context` 不帶有它。

300 

299 Python 範例需要 `claude-agent-sdk` 0.1.80 或更新版本。301 Python 範例需要 `claude-agent-sdk` 0.1.80 或更新版本。

300 302 

301 <CodeGroup>303 <CodeGroup>

agent-teams.md +3 −1

Details

333 Context 和通訊333 Context 和通訊

334</h3>334</h3>

335 335 

336每個隊友都有自己的 context window。生成時,隊友載入與常規工作階段相同的專案 context:CLAUDE.md、MCP servers 和 skills。它還接收來自主管的生成提示。主管的對話歷史不會延續。336每個隊友都有自己的 context window。生成時,隊友載入與常規工作階段相同的專案 context:CLAUDE.md、MCP servers 和 skills。如果您使用 [`--setting-sources`](/docs/zh-TW/cli-reference#cli-flags) 啟動主管,隊友會從相同的受限來源列表載入。在 v2.1.281 之前,[分割窗格](#choose-a-display-mode)隊友載入每個設定來源。

337 

338隊友也接收來自主管的生成提示。主管的對話歷史不會延續。

337 339 

338**隊友如何分享資訊:**340**隊友如何分享資訊:**

339 341 

agent-view.md +14 −6

Details

260 260 

261按 `←` 會建立工作階段的列,即使對話還沒有訊息,所以 `→` 仍然會返回到它。261按 `←` 會建立工作階段的列,即使對話還沒有訊息,所以 `→` 仍然會返回到它。

262 262 

263您可以使用 `/config` 中的 `leftArrowOpensAgents` 設定關閉此快捷鍵。263您可以使用 `/config` 中的 [`leftArrowOpensAgents`](/docs/zh-TW/settings-reference#leftarrowopensagents) 設定關閉此快捷鍵。

264 264 

265<h3 id="organize-the-list">265<h3 id="organize-the-list">

266 組織清單266 組織清單


283 283 

284除了 [刪除工作階段會移除什麼](#what-deleting-a-session-removes) 中涵蓋的保留情況外,刪除會從清單中移除工作階段,Claude 為其建立的 worktree 會被移除、保留或保留在原位,取決於您如何刪除以及 worktree 保留的內容。對話文字記錄始終保留在您的本機上,可透過 `claude --resume` 取得。284除了 [刪除工作階段會移除什麼](#what-deleting-a-session-removes) 中涵蓋的保留情況外,刪除會從清單中移除工作階段,Claude 為其建立的 worktree 會被移除、保留或保留在原位,取決於您如何刪除以及 worktree 保留的內容。對話文字記錄始終保留在您的本機上,可透過 `claude --resume` 取得。

285 285 

286若要在 Claude Code v2.1.212 或更新版本上恢復工作階段,請在分派輸入中輸入 `/resume`。選擇器開啟,顯示您開啟代理檢視的儲存庫的過去工作階段,最新的優先,包括您從清單中刪除的工作階段;已有列的工作階段不會列出。`↑`/`↓` 移動選擇,`Enter` 將選定的工作階段繼續為背景工作階段,使其作為列重新加入清單,`Esc` 關閉選擇器。286若要在 Claude Code v2.1.212 或更新版本上復原工作階段,請在分派輸入中輸入 `/resume`。選擇器開啟,顯示您開啟代理檢視的儲存庫的過去工作階段,最新的優先,包括您從清單中刪除的工作階段;已有列的工作階段不會列出。`↑`/`↓` 移動選擇,`Enter` 將選定的工作階段復原為背景工作階段,使其作為列重新加入清單,`Esc` 關閉選擇器。

287 287 

288選擇器只在裸 `/resume` 時開啟。有目標、範圍或受限的繼續無法由選擇器提供,因此當以下情況時代理檢視顯示 `attach to a session to run it` 提示:288選擇器只在裸 `/resume` 時開啟。有目標、範圍或受限的復原無法由選擇器提供,因此當以下情況時代理檢視顯示 `attach to a session to run it` 提示:

289 289 

290* `/resume` 命名 id 或搜尋詞290* `/resume` 命名 id 或搜尋詞

291* 檢視以 `--cwd` 為範圍291* 檢視以 `--cwd` 為範圍


454 454 

455* `--mcp-config` 和 `--strict-mcp-config`455* `--mcp-config` 和 `--strict-mcp-config`

456* `--settings`456* `--settings`

457* `--setting-sources`

457* `--add-dir`458* `--add-dir`

458* `--plugin-dir`459* `--plugin-dir`

459* `--fallback-model`460* `--fallback-model`


473 474 

474提示是位置引數,不是 `-p` 值。Claude Code 在建立任何工作階段前拒絕 `--bg` 與 `-p` 或 `--print` 的組合,因為 `--print` 永遠不會啟動 `claude agents` 附加到的互動工作階段。475提示是位置引數,不是 `-p` 值。Claude Code 在建立任何工作階段前拒絕 `--bg` 與 `-p` 或 `--print` 的組合,因為 `--print` 永遠不會啟動 `claude agents` 附加到的互動工作階段。

475 476 

477如果您從您未[信任](/docs/zh-TW/permissions#project-allow-rules-and-workspace-trust)的目錄中的終端執行 `claude --bg`,工作區信任對話會先出現,工作階段在您接受後啟動。如果您拒絕,Claude Code 會退出而不啟動工作階段。在沒有對話可以出現的地方,例如在指令碼中,命令會改為以 [`Workspace not trusted`](/docs/zh-TW/errors#workspace-not-trusted-when-dispatching-a-background-session) 錯誤退出。

478 

476要執行特定 [subagent](/docs/zh-TW/sub-agents)(例如 `code-reviewer`)作為工作階段的主代理,請將 `--bg` 與 `--agent` 結合:479要執行特定 [subagent](/docs/zh-TW/sub-agents)(例如 `code-reviewer`)作為工作階段的主代理,請將 `--bg` 與 `--agent` 結合:

477 480 

478```bash theme={null}481```bash theme={null}


639 Settings and provider642 Settings and provider

640</h4>643</h4>

641 644 

642背景工作階段從它執行的目錄讀取其 [settings](/docs/zh-TW/settings),就像您在那裡啟動了 `claude` 一樣。這包括專案設定中的 [`env` values](/docs/zh-TW/settings-reference#env),因此在那裡設定的 `ANTHROPIC_MODEL` 或提供者變數適用於該目錄中的每個背景工作階段。645背景工作階段從它執行的目錄讀取其 [settings](/docs/zh-TW/settings),就像您在那裡啟動了 `claude` 一樣,使用[它攜帶的配置標誌](#what-carries-over-when-you-background)。這包括專案設定中的 [`env` values](/docs/zh-TW/settings-reference#env),因此在那裡設定的 `ANTHROPIC_MODEL` 或提供者變數適用於該目錄中的每個背景工作階段。

643 646 

644背景工作階段也使用您分派它的 shell 的 `PATH` 執行,因此它執行的命令找到與您的終端相同的工具。它也保留該 shell 的雲提供者選擇,例如 `CLAUDE_CODE_USE_BEDROCK` 或 `CLAUDE_CODE_USE_VERTEX`,以及其 `ANTHROPIC_DEFAULT_*_MODEL` 別名和任何您在那裡匯出的 [`CLAUDE_CODE_EXTRA_BODY`](/docs/zh-TW/env-vars) 覆蓋。647背景工作階段也使用您分派它的 shell 的 `PATH` 執行,因此它執行的命令找到與您的終端相同的工具。它也保留該 shell 的雲提供者選擇,例如 `CLAUDE_CODE_USE_BEDROCK` 或 `CLAUDE_CODE_USE_VERTEX`,以及其 `ANTHROPIC_DEFAULT_*_MODEL` 別名和任何您在那裡匯出的 [`CLAUDE_CODE_EXTRA_BODY`](/docs/zh-TW/env-vars) 覆蓋。

645 648 


718 Settings, plugins, and MCP servers721 Settings, plugins, and MCP servers

719</h3>722</h3>

720 723 

721Agent view 接受與 `claude` 相同的配置標誌,用於載入 settings、plugins、MCP servers 和額外目錄。Agent view 將 `--settings` 和 `--plugin-dir` 應用於自己,並將每個配置標誌傳遞給您從它分派的工作階段,因此以這種方式載入的 plugin 或 MCP server 在這些工作階段中也可用。724Agent view 接受與 `claude` 相同的配置標誌,用於載入 settings、plugins、MCP servers 和額外目錄。Agent view 將 `--settings`、`--setting-sources` 和 `--plugin-dir` 應用於自己,並將每個配置標誌傳遞給您從它分派的工作階段,因此以這種方式載入的 plugin 或 MCP server 在這些工作階段中也可用。

722 725 

723| 標誌 | 效果 |726| 標誌 | 效果 |

724| :- | :- |727| :- | :- |

725| [`--settings <file-or-json>`](/docs/zh-TW/settings) | 覆蓋 agent view 和分派工作階段的 settings |728| [`--settings <file-or-json>`](/docs/zh-TW/settings) | 覆蓋 agent view 和分派工作階段的 settings |

729| [`--setting-sources <sources>`](/docs/zh-TW/cli-reference#cli-flags) | 僅載入命名的 settings 來源,在 agent view 和分派工作階段中 |

726| [`--add-dir <path>`](/docs/zh-TW/permissions#additional-directories-grant-file-access-not-configuration) | 授予對額外目錄的檔案存取權限 |730| [`--add-dir <path>`](/docs/zh-TW/permissions#additional-directories-grant-file-access-not-configuration) | 授予對額外目錄的檔案存取權限 |

727| [`--plugin-dir <path>`](/docs/zh-TW/plugins/create#load-a-directory-or-archive-for-one-session) | 從本地目錄載入 plugin |731| [`--plugin-dir <path>`](/docs/zh-TW/plugins/create#load-a-directory-or-archive-for-one-session) | 從本地目錄載入 plugin |

728| [`--mcp-config <file-or-json>`](/docs/zh-TW/mcp) | 從配置檔案或 JSON 字符串載入 MCP servers |732| [`--mcp-config <file-or-json>`](/docs/zh-TW/mcp) | 從配置檔案或 JSON 字符串載入 MCP servers |


730 734 

731每個值重複 `--add-dir`、`--plugin-dir` 或 `--mcp-config` 一次。`claude agents` 不支援空格分隔的形式,例如 `--add-dir a b c`。735每個值重複 `--add-dir`、`--plugin-dir` 或 `--mcp-config` 一次。`claude agents` 不支援空格分隔的形式,例如 `--add-dir a b c`。

732 736 

733您可以將 `--settings` 和 `--plugin-dir` 放在 `agents` 之前或之後。將 `--add-dir` 和 `--mcp-config` 保留在 `agents` 之後:如果您將任一個放在 `agents` 之前,[`claude agents --json`](#manage-sessions-from-the-shell) 會失敗,出現 `unknown option` 錯誤。737您可以將 `--settings`、`--setting-sources` 和 `--plugin-dir` 放在 `agents` 之前或之後。將 `--add-dir` 和 `--mcp-config` 保留在 `agents` 之後:如果您將任一個放在 `agents` 之前,[`claude agents --json`](#manage-sessions-from-the-shell) 會失敗,出現 `unknown option` 錯誤。

734 738 

735以下示例使用 settings 覆蓋和一個額外目錄開啟 agent view:739以下示例使用 settings 覆蓋和一個額外目錄開啟 agent view:

736 740 


1048 1052 

1049| 版本 | 變更 |1053| 版本 | 變更 |

1050| - | - |1054| - | - |

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

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

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

1058| v2.1.274 | 當[刪除因 git 或您的 `WorktreeRemove` hook 無法移除 worktree 而被拒絕](#what-deleting-a-session-removes)時,已簽出的子模組,Claude Code 驗證沒有對追蹤檔案的未提交變更,不會阻止再次刪除的提供,並移除目錄。已簽出子模組內的未提交工作計為未提交變更,訊息會命名子模組。在此版本之前,worktree 中的任何子模組簽出都會阻止提供,訊息說 worktree 包含巢狀儲存庫。 |

1051| v2.1.268 | 當[刪除因 git 或您的 `WorktreeRemove` hook 無法移除 worktree 而被拒絕](#what-deleting-a-session-removes)時,訊息會命名原因,包括 hook 如何結束及其 stderr 的開始。對於位於儲存庫的 `.claude/worktrees/` 下的連結 worktree,沒有對追蹤檔案的未提交變更、其內沒有巢狀儲存庫,且沒有其他工作階段的記錄命名它,再次刪除工作階段會從 agent view 或使用 `claude rm <id> --force-remove-worktree <worktree-id>` 移除目錄。在此版本之前,列只顯示 `worktree could not be removed (WorktreeRemove hook failed)` 或 git 的錯誤,hook 的 stderr 只進入偵錯日誌,再次刪除被以相同方式拒絕。 |1059| v2.1.268 | 當[刪除因 git 或您的 `WorktreeRemove` hook 無法移除 worktree 而被拒絕](#what-deleting-a-session-removes)時,訊息會命名原因,包括 hook 如何結束及其 stderr 的開始。對於位於儲存庫的 `.claude/worktrees/` 下的連結 worktree,沒有對追蹤檔案的未提交變更、其內沒有巢狀儲存庫,且沒有其他工作階段的記錄命名它,再次刪除工作階段會從 agent view 或使用 `claude rm <id> --force-remove-worktree <worktree-id>` 移除目錄。在此版本之前,列只顯示 `worktree could not be removed (WorktreeRemove hook failed)` 或 git 的錯誤,hook 的 stderr 只進入偵錯日誌,再次刪除被以相同方式拒絕。 |

1052| v2.1.268 | 在第一個 `←` 顯示 `Press ← again to open agents` 或在附加的工作階段中 `Press ← again to go back to agents` 後,[至少一秒後到達的第一次按下會切換](#switch-sessions-without-leaving-the-terminal),即使中間更快的按下被忽略。在此版本之前,每次被忽略的按下都會重新啟動等待,所以以穩定的速度再次按 `←` 直到您暫停超過一秒才會切換。 |1060| v2.1.268 | 在第一個 `←` 顯示 `Press ← again to open agents` 或在附加的工作階段中 `Press ← again to go back to agents` 後,[至少一秒後到達的第一次按下會切換](#switch-sessions-without-leaving-the-terminal),即使中間更快的按下被忽略。在此版本之前,每次被忽略的按下都會重新啟動等待,所以以穩定的速度再次按 `←` 直到您暫停超過一秒才會切換。 |

1053| v2.1.260 | 當您[背景化工作階段](#from-inside-a-session)時,您的其他工作階段的[代理清單](/docs/zh-TW/cross-session-messaging#see-which-sessions-claude-can-reach)會顯示對話一次,作為其背景工作階段,它們對它的訊息不再到達您移動它的終端。在此版本之前,該終端可能會在對話名稱下列為第二個互動工作階段,在移動前已訊息對話的工作階段會繼續傳遞到該終端。 |1061| v2.1.260 | 當您[背景化工作階段](#from-inside-a-session)時,您的其他工作階段的[代理清單](/docs/zh-TW/cross-session-messaging#see-which-sessions-claude-can-reach)會顯示對話一次,作為其背景工作階段,它們對它的訊息不再到達您移動它的終端。在此版本之前,該終端可能會在對話名稱下列為第二個互動工作階段,在移動前已訊息對話的工作階段會繼續傳遞到該終端。 |

agents.md +1 −1

Details

13| [子代理](/docs/zh-TW/sub-agents) | 在一個工作階段內的委派工作人員,在自己的上下文中執行側邊任務並返回摘要 | 側邊任務會用搜尋結果、日誌或檔案內容淹沒您的主要對話,而您不會再次參考這些內容 |13| [子代理](/docs/zh-TW/sub-agents) | 在一個工作階段內的委派工作人員,在自己的上下文中執行側邊任務並返回摘要 | 側邊任務會用搜尋結果、日誌或檔案內容淹沒您的主要對話,而您不會再次參考這些內容 |

14| [代理檢視](/docs/zh-TW/agent-view) | 一個畫面可以分派和監控在背景執行的工作階段,使用 `claude agents` 開啟。研究預覽 | 您有多個獨立任務,想要交付它們,一目瞭然地檢查狀態,並且只在其中一個需要您時才介入 |14| [代理檢視](/docs/zh-TW/agent-view) | 一個畫面可以分派和監控在背景執行的工作階段,使用 `claude agents` 開啟。研究預覽 | 您有多個獨立任務,想要交付它們,一目瞭然地檢查狀態,並且只在其中一個需要您時才介入 |

15| [代理團隊](/docs/zh-TW/agent-teams) | 多個協調的工作階段,具有共享的任務清單和代理間訊息傳遞,由主導者管理。實驗性功能,預設停用 | 您希望 Claude 將專案分成多個部分、分配它們,並保持工作人員同步 |15| [代理團隊](/docs/zh-TW/agent-teams) | 多個協調的工作階段,具有共享的任務清單和代理間訊息傳遞,由主導者管理。實驗性功能,預設停用 | 您希望 Claude 將專案分成多個部分、分配它們,並保持工作人員同步 |

16| [專案](/docs/zh-TW/claude-projects) | 在 claude.ai/code 或桌面應用程式中進行的一個持續對話。Claude 啟動稱為執行緒的平行雲端工作階段,為每個工作階段提供專案的儲存庫、指示和記憶,並向您顯示哪些需要您。Pro 和 Max 上的公開測試版 | 工作跨越許多任務,持續數天或數週,應在您的機器關閉時繼續執行,並且您寧願描述一次而不是分派和追蹤每個工作階段 |16| [專案](/docs/zh-TW/claude-projects) | 在 claude.ai/code 或桌面應用程式中進行的一個持續對話。Claude 啟動稱為執行緒的平行工作階段,在雲端或當您要求時在您的電腦上透過遠端控制執行,為每個工作階段提供專案的指示,並向您顯示哪些需要您。Pro 和 Max 上的公開測試版 | 工作跨越許多任務,持續數天或數週,應在您的機器關閉時繼續執行,並且您寧願描述一次而不是分派和追蹤每個工作階段 |

17| [動態工作流程](/docs/zh-TW/workflows) | 執行許多子代理並交叉檢查其結果的指令碼,適用於太大而無法一次協調或需要多次傳遞的工作 | 工作超出了少數子代理的範圍,或您希望針對彼此驗證發現:整個程式碼庫審計、500 個檔案遷移、交叉檢查的研究,或從多個角度起草的計畫 |17| [動態工作流程](/docs/zh-TW/workflows) | 執行許多子代理並交叉檢查其結果的指令碼,適用於太大而無法一次協調或需要多次傳遞的工作 | 工作超出了少數子代理的範圍,或您希望針對彼此驗證發現:整個程式碼庫審計、500 個檔案遷移、交叉檢查的研究,或從多個角度起草的計畫 |

18 18 

19在每種方法中,工作人員都是 Claude 工作階段。若要涉及不同的工具,請將其作為 [MCP 伺服器](/docs/zh-TW/mcp) 公開給 Claude。19在每種方法中,工作人員都是 Claude 工作階段。若要涉及不同的工具,請將其作為 [MCP 伺服器](/docs/zh-TW/mcp) 公開給 Claude。

artifacts.md +36 −4

Details

305 305 

306對於排版,Claude 可以從 Google Fonts 載入字型,這是成品頁面可以載入的唯一外部字型來源。Claude 會將任何其他字型內嵌為 `@font-face` 資料 URI,並為每個字型提供備用堆疊,因此即使字型無法載入,頁面仍會呈現。若要使用特定字型,請在您的提示或設計系統中命名它。306對於排版,Claude 可以從 Google Fonts 載入字型,這是成品頁面可以載入的唯一外部字型來源。Claude 會將任何其他字型內嵌為 `@font-face` 資料 URI,並為每個字型提供備用堆疊,因此即使字型無法載入,頁面仍會呈現。若要使用特定字型,請在您的提示或設計系統中命名它。

307 307 

308<h2 id="draft-a-design-canvas">308<h2 id="start-from-a-slides-design-or-docs-template">

309 草擬設計畫布309 從投影片、設計或文件範本開始

310</h2>310</h2>

311 311 

312若要模擬 UI、螢幕流程、登陸頁面或海報,而不是建立頁面,請使用簡介執行 `/design`。Claude 會在一個畫布上將設計草擬為美工板,並將畫布發佈為設計成品。簡介會命名您想要繪製的內容:312與其從頭開始建立頁面,Claude 可以從您 claude.ai 帳戶上的其中一個範本開始建立成品:[Claude Slides](https://support.claude.com/en/articles/17153992-what-are-artifacts-and-how-do-i-use-them#h_11d5a9a5fa) 用於簡報、[Claude Design](https://support.claude.com/en/articles/14604416-get-started-with-claude-design) 用於視覺設計,或 [Claude Docs](https://support.claude.com/en/articles/16923645-get-started-with-claude-docs) 用於其他人將閱讀和編輯的文件。每個都在 claude.ai 上的自己編輯器中開啟,您和您的隊友可以直接變更它或要求 Claude 變更,並將其匯出為 PowerPoint、PDF 或 Word 等格式。

313 

314若要從範本開始,請描述您想要的內容,例如「將遷移說明轉換為週四審查的投影片組」或「將此計畫寫成團隊的文件」。Claude 會選擇相符的範本,從您的要求和工作階段已有的內容填入,並提供您連結。對於投影片組或設計,您也可以使用簡介執行 `/slides` 或 `/design`。

315 

316<Note>

317 範本處於測試版。它們在 Pro、Max 和 Team 方案上預設為開啟。在 Enterprise 方案上,擁有者會在 **Organization settings > Artifacts** 下[開啟每個範本](https://support.claude.com/en/articles/16994751-artifacts-admin-guide-for-team-and-enterprise-plans)。如果您的組織已關閉 Slides 範本,`/slides` 不會出現;如果它已關閉 Design 範本,`/design` 不會草擬設計。兩個命令都需要 Claude Code v2.1.265 或更新版本,以及[成品可用](#availability)的工作階段。

318</Note>

319 

320<h3 id="make-a-slide-deck">

321 製作投影片組

322</h3>

323 

324使用簡介執行 `/slides`,說明投影片組涵蓋的內容及其對象:

325 

326```text wrap theme={null}

327/slides a quarterly review of the platform team's reliability work, for the engineering all-hands

328```

329 

330Claude 會建立 Claude Slides 成品並提供您連結。在桌面瀏覽器中開啟它以編輯或呈現投影片組。如果您執行 `/slides` 時沒有簡介,Claude 會在建立任何內容之前詢問投影片組應該涵蓋的內容。

331 

332<h3 id="draft-a-design-canvas">

333 草擬設計畫布

334</h3>

335 

336若要模擬 UI、螢幕流程、登陸頁面或海報,而不是建立頁面,請使用簡介執行 `/design`。Claude 會在一個畫布上將設計草擬為美工板,並將畫布發佈為 Claude Design 成品。簡介會命名您想要繪製的內容:

313 337 

314```text wrap theme={null}338```text wrap theme={null}

315/design a settings screen for a mobile banking app339/design a settings screen for a mobile banking app


317 341 

318在桌面瀏覽器中開啟已發佈的成品以檢閱美工板。在美工板上選取元素並變更它,您的編輯會自動儲存。您可以將每個美工板匯出為 PNG 或 PDF。342在桌面瀏覽器中開啟已發佈的成品以檢閱美工板。在美工板上選取元素並變更它,您的編輯會自動儲存。您可以將每個美工板匯出為 PNG 或 PDF。

319 343 

320`/design` 需要一個 [成品可用](#availability) 的工作階段,以及 Claude Code v2.1.265 或更新版本。344<h3 id="write-a-document-with-claude-docs">

345 使用 Claude Docs 撰寫文件

346</h3>

347 

348Claude Docs 作為 claude.ai [連接器](/docs/zh-TW/mcp#use-mcp-servers-from-claude-ai)而不是命令到達 Claude Code。連接後,`/mcp` 會將其列為 `claude.ai Claude Docs`。針對供其他人使用的文件的要求會進入 Claude Docs 而不是成品頁面:規格、提案或您在工作階段中進行的計畫寫法。Claude 會在草擬文件時提供文件的連結。

349 

350屬於程式碼庫的文件(例如 README)會保持為檔案。若要取得 Claude 否則會放在 Claude Docs 中的內容的檔案,請命名格式,例如 `.docx` 或儲存庫中的 Markdown 檔案。

351 

352若要關閉連接器,請將 `claude.ai Claude Docs` 新增至 `deniedMcpServers` 或使用 `/mcp` 切換,兩者都在[停用 claude.ai 連接器](/docs/zh-TW/mcp#disable-claude-ai-connectors)中說明。

321 353 

322<h2 id="page-constraints">354<h2 id="page-constraints">

323 頁面限制355 頁面限制

authentication.md +45 −19

Details

32 32 

33若要登出並重新驗證,請在 Claude Code 提示符處輸入 `/logout`。登出也會重設您的首次啟動設定狀態,因此下次您執行 `claude` 時,它會再次引導您完成登入和設定。33若要登出並重新驗證,請在 Claude Code 提示符處輸入 `/logout`。登出也會重設您的首次啟動設定狀態,因此下次您執行 `claude` 時,它會再次引導您完成登入和設定。

34 34 

35若要同時保持登入多個帳戶(例如工作和個人帳戶),請為每個帳戶提供自己的設定目錄。當您啟動 `claude` 時,將 [`CLAUDE_CONFIG_DIR`](/docs/zh-TW/env-vars#variables) 環境變數設定為您要使用的帳戶的目錄。每個目錄都有自己的設定、工作階段歷史記錄和 claude.ai 登入或 API 金鑰。例如,在 Bash 或 Zsh 中,將此別名新增到 `~/.bashrc` 或 `~/.zshrc`,以便 `claude-work` 使用您的工作帳戶,而 `claude` 保留您的個人帳戶:

36 

37```bash theme={null}

38alias claude-work='CLAUDE_CONFIG_DIR=~/.claude-work claude'

39```

40 

41在您開啟新終端機並首次執行 `claude-work` 後,Claude Code 會引導您完成新目錄的登入和設定。由於 Claude Code 將該類登入儲存在設定目錄外,單獨的目錄無法將兩個 Claude Console 登入 [不使用 API 金鑰](#sign-in-without-an-api-key) 分開。

42 

35如果您在登入時遇到問題,請參閱 [驗證疑難排解](/docs/zh-TW/troubleshoot-install#login-and-authentication)。43如果您在登入時遇到問題,請參閱 [驗證疑難排解](/docs/zh-TW/troubleshoot-install#login-and-authentication)。

36 44 

37<h2 id="set-up-team-authentication">45<h2 id="set-up-team-authentication">


122* 任何設定檔設定 [`forceLoginOrgUUID`](#restrict-login-to-your-organization),或將 `forceLoginMethod` 設定為 `"claudeai"` 或 `"console"`130* 任何設定檔設定 [`forceLoginOrgUUID`](#restrict-login-to-your-organization),或將 `forceLoginMethod` 設定為 `"claudeai"` 或 `"console"`

123* 您機器上存在受管設定來源(例如受管設定檔、MDM 設定檔或快取的伺服器受管設定),但 Claude Code [無法讀取它](/docs/zh-TW/managed-settings#invalid-entries-in-managed-settings),且沒有其他受管來源提供原則131* 您機器上存在受管設定來源(例如受管設定檔、MDM 設定檔或快取的伺服器受管設定),但 Claude Code [無法讀取它](/docs/zh-TW/managed-settings#invalid-entries-in-managed-settings),且沒有其他受管來源提供原則

124 132 

125在不使用金鑰登入之前,請取消設定 `ANTHROPIC_API_KEY`。由 Claude Code 自己的 Console 登入或由 Claude Platform CLI 的 `ant auth login` 寫入的設定檔是相同類型的認證,因此再次登入會取代它。133在不使用金鑰登入之前,請取消設定 `ANTHROPIC_API_KEY`。

126 134 

127在不使用金鑰登入後,您有一個設定檔而不是儲存的 API 金鑰:135在不使用金鑰登入後,您有一個設定檔而不是儲存的 API 金鑰:

128 136 


160 168 

161若要要求開發人員的 claude.ai 登入屬於特定的 Anthropic 組織,請在 [受管設定](/docs/zh-TW/managed-settings) 中設定 [`forceLoginMethod`](/docs/zh-TW/settings-reference#forceloginmethod) 和 [`forceLoginOrgUUID`](/docs/zh-TW/settings-reference#forceloginorguuid)。將 `forceLoginOrgUUID` 設定為您的組織 ID,該 ID 顯示在 [claude.ai 管理設定](https://claude.ai/admin-settings/organization) 中,適用於 Claude for Teams 或 Enterprise 組織。Claude Code 會針對任何其他組織的 claude.ai 登入報告錯誤,如果使用中的 claude.ai 認證屬於未列出的組織,則在啟動時退出。169若要要求開發人員的 claude.ai 登入屬於特定的 Anthropic 組織,請在 [受管設定](/docs/zh-TW/managed-settings) 中設定 [`forceLoginMethod`](/docs/zh-TW/settings-reference#forceloginmethod) 和 [`forceLoginOrgUUID`](/docs/zh-TW/settings-reference#forceloginorguuid)。將 `forceLoginOrgUUID` 設定為您的組織 ID,該 ID 顯示在 [claude.ai 管理設定](https://claude.ai/admin-settings/organization) 中,適用於 Claude for Teams 或 Enterprise 組織。Claude Code 會針對任何其他組織的 claude.ai 登入報告錯誤,如果使用中的 claude.ai 認證屬於未列出的組織,則在啟動時退出。

162 170 

163對於 Claude Console 登入,Claude Code 使用 `forceLoginOrgUUID` 在您將其設定為單一 Console 組織 ID 時在 Console 登入頁面上預先選擇組織,該 ID 顯示在 [platform.claude.com/settings/organization](https://platform.claude.com/settings/organization)。它不檢查產生的 Console 認證屬於哪個組織,無論是在登入時還是在啟動時,使用 Console 帳戶登入的開發人員在您部署金鑰之前會保持登入狀態。171對於 Claude Console 登入,Claude Code 使用 `forceLoginOrgUUID` 在您將其設定為單一 Console 組織 ID 時在 Console 登入頁面上預先選擇組織,該 ID 顯示在 [platform.claude.com/settings/organization](https://platform.claude.com/settings/organization)。它不檢查產生的 Console 認證屬於哪個組織,無論是在登入時還是在啟動時。使用 Console 帳戶登入的開發人員在您部署金鑰之前會保持登入狀態,該儲存的金鑰在同時需要 [閘道](/docs/zh-TW/claude-apps-gateway) 登入的機器上或在選擇雲端提供商的工作階段中會被阻止。

164 172 

165如果您在任何設定檔中設定 `forceLoginOrgUUID`,Claude Code 會停止在該檔案適用的工作階段中提供 [無金鑰 Console 登入](#sign-in-without-an-api-key),並改為建立 API 金鑰。若要將開發人員導向 claude.ai 登入,請將 `forceLoginMethod` 設定為 `"claudeai"`。173如果您在任何設定檔中設定 `forceLoginOrgUUID`,Claude Code 會停止在該檔案適用的工作階段中提供 [無金鑰 Console 登入](#sign-in-without-an-api-key),並改為建立 API 金鑰。若要將開發人員導向 claude.ai 登入,請將 `forceLoginMethod` 設定為 `"claudeai"`。

166 174 

167開發人員可以從多個路徑登入:終端機 `/login` 流程、[VS Code 擴充功能](/docs/zh-TW/vs-code)、Agent SDK、`claude setup-token`、`/install-github-app` 和 [閘道](/docs/zh-TW/claude-apps-gateway) 登入,適用於透過雲端閘道路由的組織。在 Claude Code v2.1.212 或更新版本上,每個路徑都套用 `forceLoginMethod`;在 v2.1.212 之前,只有終端機登入套用任一金鑰。在終端機的互動式登入畫面上,透過 `/login` 或首次執行上線到達,Claude Code 預先選擇 `claudeai` 或 `console` 方法而不強制執行,因此即使 `forceLoginMethod` 設定為 `"claudeai"`,開發人員仍然可以在那裡完成 Console 登入。路徑在 `forceLoginOrgUUID` 上有所不同:175在 Claude Code v2.1.212 或更新版本上,此處列出的每個登入路徑都套用 `forceLoginMethod`。在終端機的互動式登入畫面上,透過 `/login` 或首次執行上線到達,Claude Code 預先選擇 `claudeai` 或 `console` 方法而不強制執行,因此即使 `forceLoginMethod` 設定為 `"claudeai"`,開發人員仍然可以在那裡完成 Console 登入。

168 176 

169* **終端機、VS Code 擴充功能和 Agent SDK 登入**:驗證 claude.ai 帳戶登入的 `forceLoginOrgUUID`177路徑在 `forceLoginOrgUUID` 上有所不同:

178 

179* **終端機、[VS Code 擴充功能](/docs/zh-TW/vs-code) 和 Agent SDK 登入**:驗證 claude.ai 帳戶登入的 `forceLoginOrgUUID`

170* **`claude setup-token` 和 `/install-github-app`**:僅強制執行 `forceLoginMethod`,因此它們可以在不同的組織中鑄造權杖180* **`claude setup-token` 和 `/install-github-app`**:僅強制執行 `forceLoginMethod`,因此它們可以在不同的組織中鑄造權杖

171* **[閘道](/docs/zh-TW/claude-apps-gateway) 登入**:由 `forceLoginMethod: "gateway"` 選擇而不是受其限制,並且不針對 Anthropic 組織進行驗證,因此 `forceLoginOrgUUID` 不適用;使用您的閘道身分提供者來限制存取181* **[閘道](/docs/zh-TW/claude-apps-gateway) 登入**:由 `forceLoginMethod: "gateway"` 選擇而不是受其限制,並且不針對 Anthropic 組織進行驗證,因此 `forceLoginOrgUUID` 不適用;使用您的閘道身分提供者來限制存取

172 182 

173透過您的裝置管理工具部署金鑰。[伺服器受管設定](/docs/zh-TW/server-managed-settings) 只能到達已驗證到您的組織的帳戶,因此它們無法重新導向開發人員的首次登入。如果您的組織也分發伺服器受管設定,請在兩個位置設定金鑰:受管設定來源 [不會合併](/docs/zh-TW/server-managed-settings#settings-precedence),快取的伺服器受管設定會取代裝置受管檔案,除了幾個 [各受管來源的個別金鑰例外](/docs/zh-TW/server-managed-settings#per-key-exceptions-across-managed-sources)。`forceLoginOrgUUID` 和 `forceLoginMethod` 的 `"claudeai"` 和 `"console"` 值不在這些例外中,因此請將它們保留在兩個位置。183透過您的裝置管理工具部署金鑰。[伺服器受管設定](/docs/zh-TW/server-managed-settings) 只能到達已驗證到您的組織的帳戶,因此它們無法重新導向開發人員的首次登入。如果您的組織也分發伺服器受管設定,請在兩個位置設定金鑰:受管設定來源 [不會合併](/docs/zh-TW/server-managed-settings#settings-precedence),快取的伺服器受管設定會取代裝置受管檔案,除了幾個 [各受管來源的個別金鑰例外](/docs/zh-TW/server-managed-settings#per-key-exceptions-across-managed-sources)。`forceLoginOrgUUID` 和 `forceLoginMethod` 的 `"claudeai"` 和 `"console"` 值不在這些例外中,因此請將它們保留在兩個位置。

174 184 

185在 [閘道](/docs/zh-TW/claude-apps-gateway) 部署中,也請將 `forceLoginMethod` 和 `forceLoginOrgUUID` 保留在 [閘道提供的設定](/docs/zh-TW/claude-apps-gateway-config#managed) 之外。

186 

175金鑰也決定不使用登入認證的工作階段是否可以啟動。請參閱設定參考中的 [`forceLoginOrgUUID`](/docs/zh-TW/settings-reference#forceloginorguuid) 以了解完整行為。187金鑰也決定不使用登入認證的工作階段是否可以啟動。請參閱設定參考中的 [`forceLoginOrgUUID`](/docs/zh-TW/settings-reference#forceloginorguuid) 以了解完整行為。

176 188 

177* **`ANTHROPIC_API_KEY`、`ANTHROPIC_AUTH_TOKEN` 或 `apiKeyHelper`**:在啟動時被阻止,因為無法驗證環境認證的組織成員資格189* **`ANTHROPIC_API_KEY`、`ANTHROPIC_AUTH_TOKEN` 或 `apiKeyHelper`**:在啟動時被阻止。在 `forceLoginOrgUUID` 下,無法驗證環境認證的組織成員資格,在 `forceLoginMethod` 下,認證會代替所需的登入。當受管設定也需要 [閘道](/docs/zh-TW/claude-apps-gateway) 登入時,Claude Code 會以相同方式阻止由較早的 Claude Console 登入儲存的 API 金鑰。請參閱 [管理員原則需要雲端閘道登入](/docs/zh-TW/errors#administrator-policy-requires-a-cloud-gateway-sign-in)

178* **雲端提供商工作階段,例如 Amazon Bedrock**:未被阻止,因為它們針對您的雲端提供商進行驗證。透過您的雲端 IAM 原則限制這些190* **雲端提供商工作階段,例如 Amazon Bedrock**:僅在 `ANTHROPIC_API_KEY`、`ANTHROPIC_AUTH_TOKEN` 或 `apiKeyHelper` 認證,或由較早的 Claude Console 登入儲存的 API 金鑰仍然存在於機器上時被阻止。移除它,工作階段就會啟動。這些工作階段針對您的雲端提供商進行驗證,其存取原則管理它們

179* **[Anthropic 設定檔或聯盟認證](#anthropic-profiles-and-federation-credentials)**:未被阻止,金鑰不檢查設定檔屬於哪個組織191* **[Anthropic 設定檔或聯盟認證](#anthropic-profiles-and-federation-credentials)**:除非 `ANTHROPIC_API_KEY`、`ANTHROPIC_AUTH_TOKEN` 或 `apiKeyHelper` 認證,或由較早的 Claude Console 登入儲存的 API 金鑰也存在於機器上,否則不會被阻止。金鑰不檢查設定檔屬於哪個組織

180 192 

181<h2 id="credential-management">193<h2 id="credential-management">

182 認證管理194 認證管理


192 * Claude Code 透過 `/login` 和 `/logout` 管理 `.credentials.json`。若要透過自訂 API 端點路由請求,請改為設定 [`ANTHROPIC_BASE_URL`](/docs/zh-TW/env-vars) 環境變數。204 * Claude Code 透過 `/login` 和 `/logout` 管理 `.credentials.json`。若要透過自訂 API 端點路由請求,請改為設定 [`ANTHROPIC_BASE_URL`](/docs/zh-TW/env-vars) 環境變數。

193* **支援的驗證類型**:claude.ai 認證、Claude API 認證、Microsoft Foundry Auth、Bedrock Auth、Vertex Auth、Anthropic 設定檔和 [Workload Identity Federation](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation) 認證,以及 [Claude apps gateway](/docs/zh-TW/claude-apps-gateway) 工作階段令牌。205* **支援的驗證類型**:claude.ai 認證、Claude API 認證、Microsoft Foundry Auth、Bedrock Auth、Vertex Auth、Anthropic 設定檔和 [Workload Identity Federation](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation) 認證,以及 [Claude apps gateway](/docs/zh-TW/claude-apps-gateway) 工作階段令牌。

194* **自訂認證指令碼**:設定 [`apiKeyHelper`](/docs/zh-TW/settings-reference#apikeyhelper) 設定以執行傳回 API 金鑰的 shell 指令碼。206* **自訂認證指令碼**:設定 [`apiKeyHelper`](/docs/zh-TW/settings-reference#apikeyhelper) 設定以執行傳回 API 金鑰的 shell 指令碼。

195* **重新整理間隔**:Claude Code 預設在五分鐘後重新執行 `apiKeyHelper`。設定 `CLAUDE_CODE_API_KEY_HELPER_TTL_MS` 環境變數以自訂重新整理間隔。請參閱 [`apiKeyHelper`](/docs/zh-TW/settings-reference#apikeyhelper) 以了解 Claude Code 重新執行協助程式的其他情況。207* **重新整理間隔**:請參閱 [`apiKeyHelper`](/docs/zh-TW/settings-reference#apikeyhelper) 以了解 Claude Code 重新執行協助程式的情況。

196* **緩慢協助程式通知**:如果 `apiKeyHelper` 花費超過 10 秒的時間傳回金鑰,Claude Code 會在提示符列中顯示警告通知,顯示經過的時間。如果您經常看到此通知,請檢查您的認證指令碼是否可以最佳化。208* **緩慢協助程式通知**:如果 `apiKeyHelper` 花費超過 10 秒的時間傳回金鑰,Claude Code 會在提示符列中顯示警告通知,顯示經過的時間。如果您經常看到此通知,請檢查您的認證指令碼是否可以最佳化。

197* **協助程式失敗**:當指令碼以錯誤結束、逾時或不列印任何內容時,請求在三次嘗試內失敗,並顯示 [`Your apiKeyHelper script is failing`](/docs/zh-TW/errors#your-apikeyhelper-script-is-failing)。在 v2.1.208 之前,協助程式失敗會在大約十次無聲重試後顯示為通用 401。209* **協助程式失敗**:當指令碼以錯誤結束、逾時或不列印任何內容時,請求在三次嘗試內失敗,並顯示 [`Your apiKeyHelper script is failing`](/docs/zh-TW/errors#your-apikeyhelper-script-is-failing)。

198 210 

199`apiKeyHelper`、`ANTHROPIC_API_KEY` 和 `ANTHROPIC_AUTH_TOKEN` 適用於 CLI 和包裝它的介面,包括 VS Code 擴充功能、Agent SDK 和 GitHub Actions。Claude Desktop 和雲端工作階段不會呼叫 `apiKeyHelper` 或讀取這些環境變數:它們使用 OAuth,除了執行[第三方推論配置](/docs/zh-TW/llm-gateway-connect#desktop-app)的桌面工作階段外,該工作階段使用該配置的認證進行驗證。211`apiKeyHelper`、`ANTHROPIC_API_KEY` 和 `ANTHROPIC_AUTH_TOKEN` 適用於 CLI 和包裝它的介面,包括 VS Code 擴充功能、Agent SDK 和 GitHub Actions。Claude Desktop 和雲端工作階段不會呼叫 `apiKeyHelper` 或讀取這些環境變數:它們使用 OAuth,除了執行[第三方推論配置](/docs/zh-TW/llm-gateway-connect#desktop-app)的桌面工作階段外,該工作階段使用該配置的認證進行驗證。

200 212 


202 續約即將過期的登入214 續約即將過期的登入

203</h3>215</h3>

204 216 

205當您使用 `/login` 建立的登入在三天內即將過期時,Claude Code 會在啟動時顯示警告:`Your login expires in 3 days · run /login to renew`。需要 Claude Code v2.1.203 或更新版本。在 v2.1.217 之前,警告會在五天後出現。217當您使用 `/login` 建立的登入在三天內即將過期時,Claude Code 會在啟動時顯示警告:`Your login expires in 3 days · run /login to renew`。

206 218 

207執行 `/login` 以續約。警告僅供參考,永遠不會阻止請求:驗證會持續運作,直到登入實際過期。登入生命週期本身保持不變;提前警告是 v2.1.203 新增的功能。219執行 `/login` 以續約。警告僅供參考,永遠不會阻止請求:驗證會持續運作,直到登入實際過期。

208 220 

209一旦儲存的登入過期且無法重新整理,每個模型請求都會失敗,並顯示 [`Login expired · Please run /login`](/docs/zh-TW/errors#login-expired),直到您再次登入。在 v2.1.206 之前,Claude Code 會將過期的登入報告為模型錯誤。221一旦儲存的登入過期且無法重新整理,每個模型請求都會失敗,並顯示 [`Login expired · Please run /login`](/docs/zh-TW/errors#login-expired),直到您再次登入。

210 222 

211您可以在請求失敗之前檢查此狀態:[`/status`](/docs/zh-TW/commands) 顯示 `Login` 列讀取 `Expired — log in again`,加上它為過期登入儲存的組織和電子郵件。該列僅在儲存的 claude.ai 或 Claude Console 登入是有效認證時出現。該列需要 Claude Code v2.1.210 或更新版本。223您可以在請求失敗之前檢查此狀態:[`/status`](/docs/zh-TW/commands) 顯示 `Login` 列讀取 `Expired — log in again`,加上它為過期登入儲存的組織和電子郵件。該列僅在儲存的 claude.ai 或 Claude Console 登入是有效認證時出現。該列需要 Claude Code v2.1.210 或更新版本。

212 224 


230 242 

231已簽署的 [Claude apps gateway](/docs/zh-TW/claude-apps-gateway) 工作階段位於此清單之外:它是一個提供商選擇,如 Amazon Bedrock 或 Google Cloud 的 Agent Platform,並且優先於它們。當閘道工作階段存在時,CLI 使用閘道令牌進行驗證,即使設定了 `CLAUDE_CODE_USE_BEDROCK`、`CLAUDE_CODE_USE_VERTEX` 或 `CLAUDE_CODE_USE_FOUNDRY`,上面的持有人令牌、API 金鑰、`apiKeyHelper` 和設定檔等認證來源也不會被使用。243已簽署的 [Claude apps gateway](/docs/zh-TW/claude-apps-gateway) 工作階段位於此清單之外:它是一個提供商選擇,如 Amazon Bedrock 或 Google Cloud 的 Agent Platform,並且優先於它們。當閘道工作階段存在時,CLI 使用閘道令牌進行驗證,即使設定了 `CLAUDE_CODE_USE_BEDROCK`、`CLAUDE_CODE_USE_VERTEX` 或 `CLAUDE_CODE_USE_FOUNDRY`,上面的持有人令牌、API 金鑰、`apiKeyHelper` 和設定檔等認證來源也不會被使用。

232 244 

233如果您機器的[受管設定](/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_USE_VERTEX` 等變數選擇雲端提供商,您的工作階段僅使用閘道登入。Claude Code 會跳過其他認證來源,並要求您使用 `/login` 登入。請參閱[系統管理員原則需要雲端閘道登入](/docs/zh-TW/errors#administrator-policy-requires-a-cloud-gateway-sign-in)以了解您在每個剩餘認證中看到的內容。在 v2.1.261 之前,或在僅設定 `forceLoginGatewayUrl` 的機器上在 v2.1.265 之前,Claude Code 會在這些機器上使用剩餘的已儲存登入,直到您登入閘道。245如果您機器的[受管設定](/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_USE_VERTEX` 等變數選擇雲端提供商,您的工作階段僅使用閘道登入。Claude Code 會跳過其他認證來源,並要求您使用 `/login` 登入。請參閱[系統管理員原則需要雲端閘道登入](/docs/zh-TW/errors#administrator-policy-requires-a-cloud-gateway-sign-in)以了解您在每個剩餘認證中看到的內容。需要 Claude Code v2.1.261 或更新版本,或在僅設定 `forceLoginGatewayUrl` 的機器上需要 v2.1.265 或更新版本。

234 246 

235如果您有有效的 Claude 訂閱,但您的環境中也設定了 `ANTHROPIC_API_KEY`,則 API 金鑰在核准後優先。如果金鑰屬於已停用或過期的組織,這可能會導致驗證失敗。247如果您有有效的 Claude 訂閱,但您的環境中也設定了 `ANTHROPIC_API_KEY`,則 API 金鑰在核准後優先。如果金鑰屬於已停用或過期的組織,這可能會導致驗證失敗。

236 248 


254| 聯盟變數 | `ANTHROPIC_FEDERATION_RULE_ID` 和 `ANTHROPIC_ORGANIZATION_ID`,兩者都設定 | 上方 |266| 聯盟變數 | `ANTHROPIC_FEDERATION_RULE_ID` 和 `ANTHROPIC_ORGANIZATION_ID`,兩者都設定 | 上方 |

255| 有效設定檔 | 您設定目錄中的 [`active_config` 檔案](https://platform.claude.com/docs/en/manage-claude/wif-reference#active-profile),或名為 `default` 的設定檔 | 當其驗證模式為 `oidc_federation` 時上方;當其驗證模式為 `user_oauth` 時在有效的 `/login` 認證下方 |267| 有效設定檔 | 您設定目錄中的 [`active_config` 檔案](https://platform.claude.com/docs/en/manage-claude/wif-reference#active-profile),或名為 `default` 的設定檔 | 當其驗證模式為 `oidc_federation` 時上方;當其驗證模式為 `user_oauth` 時在有效的 `/login` 認證下方 |

256 268 

257`user_oauth` 規則會防止遺留的 `ant auth login` 設定檔將您的請求移出您使用 `/login` 登入的帳戶。對於聯盟變數,Claude Code 在交換您的身份令牌時也會讀取 [WIF 參考](https://platform.claude.com/docs/en/manage-claude/wif-reference#environment-variables)中的其他變數,例如 `ANTHROPIC_IDENTITY_TOKEN_FILE`。對於設定檔檔案格式,請參閱 [WIF 參考](https://platform.claude.com/docs/en/manage-claude/wif-reference#profile-configuration-file)。269對於聯盟變數,Claude Code 在交換您的身份令牌時也會讀取 [WIF 參考](https://platform.claude.com/docs/en/manage-claude/wif-reference#environment-variables)中的其他變數,例如 `ANTHROPIC_IDENTITY_TOKEN_FILE`。對於設定檔檔案格式,請參閱 [WIF 參考](https://platform.claude.com/docs/en/manage-claude/wif-reference#profile-configuration-file)。

258 270 

259若要確認 Claude Code 選擇了哪個來源,請執行 `/status`。`Profile` 列會命名來源以代替 `Login method` 列,當設定檔是使用中的認證時,`Organization` 和 `Email` 列會顯示其帳戶。271若要確認 Claude Code 選擇了哪個來源,請執行 `/status`。`Profile` 列會命名來源以代替 `Login method` 列,當設定檔是使用中的認證時,`Organization` 和 `Email` 列會顯示其帳戶。

260 272 

261如果您使用 `--debug` 啟動 Claude Code,它也會將 `Using Anthropic profile auth` 行與來源名稱寫入 `~/.claude/debug/<session-id>.txt` 的偵錯日誌。當 Claude Code 因為您有有效的 `/login` 認證而跳過 `user_oauth` 有效設定檔時,它會向偵錯日誌寫入警告,說它改用 claude.ai 登入。

262 

263當 `user_oauth` 設定檔的登入已過期且 Claude Code 無法重新整理它時,請求會失敗,並顯示 [Anthropic profile login expired](/docs/zh-TW/errors#anthropic-profile-login-expired)。273當 `user_oauth` 設定檔的登入已過期且 Claude Code 無法重新整理它時,請求會失敗,並顯示 [Anthropic profile login expired](/docs/zh-TW/errors#anthropic-profile-login-expired)。

264 274 

265需要您的 claude.ai 登入的功能,例如 [claude.ai connectors](/docs/zh-TW/mcp#use-mcp-servers-from-claude-ai) 和 [`/schedule`](/docs/zh-TW/routines),在選擇這些來源之一時不可用。若要停止 Claude Code 選擇來源:275需要您的 claude.ai 登入的功能,例如 [claude.ai connectors](/docs/zh-TW/mcp#use-mcp-servers-from-claude-ai) 和 [`/schedule`](/docs/zh-TW/routines),在選擇這些來源之一時不可用。若要停止 Claude Code 選擇來源:


279 289 

280該命令會開啟與 `/login` 相同的瀏覽器授權流程,在您在瀏覽器中核准存取後,令牌會列印到終端機。它不會將令牌儲存在任何地方;複製它並將其設定為您想要驗證的任何地方的 `CLAUDE_CODE_OAUTH_TOKEN` 環境變數:290該命令會開啟與 `/login` 相同的瀏覽器授權流程,在您在瀏覽器中核准存取後,令牌會列印到終端機。它不會將令牌儲存在任何地方;複製它並將其設定為您想要驗證的任何地方的 `CLAUDE_CODE_OAUTH_TOKEN` 環境變數:

281 291 

282```bash theme={null}292<Tabs>

283export CLAUDE_CODE_OAUTH_TOKEN=your-token293 <Tab title="macOS, Linux, WSL">

284```294 ```bash theme={null}

295 export CLAUDE_CODE_OAUTH_TOKEN=your-token

296 ```

297 </Tab>

298 

299 <Tab title="Windows PowerShell">

300 ```powershell theme={null}

301 $env:CLAUDE_CODE_OAUTH_TOKEN = "your-token"

302 ```

303 </Tab>

304 

305 <Tab title="Windows CMD">

306 ```batch theme={null}

307 set CLAUDE_CODE_OAUTH_TOKEN=your-token

308 ```

309 </Tab>

310</Tabs>

285 311 

286此令牌使用您的 Claude 訂閱進行驗證,需要 Pro、Max、Team 或 Enterprise 方案。它只能進行模型請求,因此無法建立 [Remote Control](/docs/zh-TW/remote-control) 工作階段或擷取 [claude.ai connectors](/docs/zh-TW/mcp#use-mcp-servers-from-claude-ai)。您在本地設定的 MCP 伺服器仍然有效。312此令牌使用您的 Claude 訂閱進行驗證,需要 Pro、Max、Team 或 Enterprise 方案。它只能進行模型請求,因此無法建立 [Remote Control](/docs/zh-TW/remote-control) 工作階段或擷取 [claude.ai connectors](/docs/zh-TW/mcp#use-mcp-servers-from-claude-ai)。您在本地設定的 MCP 伺服器仍然有效。

287 313 

Details

9[自動模式](/docs/zh-TW/permission-modes#eliminate-prompts-with-auto-mode)讓 Claude Code 無需例行權限提示即可執行,方法是透過分類器路由工具呼叫,該分類器會封鎖任何不可逆、破壞性或針對您環境外的操作。拒絕和明確要求規則在分類器之前進行評估,仍然會封鎖或提示。使用 `autoMode` 設定區塊告訴該分類器您的組織信任哪些儲存庫、儲存桶和網域,以便它停止封鎖例行內部操作。9[自動模式](/docs/zh-TW/permission-modes#eliminate-prompts-with-auto-mode)讓 Claude Code 無需例行權限提示即可執行,方法是透過分類器路由工具呼叫,該分類器會封鎖任何不可逆、破壞性或針對您環境外的操作。拒絕和明確要求規則在分類器之前進行評估,仍然會封鎖或提示。使用 `autoMode` 設定區塊告訴該分類器您的組織信任哪些儲存庫、儲存桶和網域,以便它停止封鎖例行內部操作。

10 10 

11<Note>11<Note>

12 自動模式適用於所有提供者上的所有使用者,包括 Anthropic API、[AWS 上的 Claude Platform](/docs/zh-TW/claude-platform-on-aws)、Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 和已登入的 [Claude 應用程式閘道](/docs/zh-TW/claude-apps-gateway)工作階段。如果 Claude Code 報告您的帳戶無法使用自動模式,請檢查[完整要求](/docs/zh-TW/permission-modes#eliminate-prompts-with-auto-mode),其中也涵蓋支援的模型和 Team 及 Enterprise 方案上的組織層級控制。在 v2.1.158 至 v2.1.206 中,Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 和 Claude 應用程式閘道工作階段上的自動模式需要設定 `CLAUDE_CODE_ENABLE_AUTO_MODE=1`;v2.1.207 移除了該要求。12 此頁面是設定參考。開啟和關閉自動模式涵蓋在「權限模式」頁面上:

13 

14 * **在工作階段中切換到自動模式,或退出自動模式**:請參閱[切換權限模式](/docs/zh-TW/permission-modes#switch-permission-modes)

15 * **在自動模式中啟動工作階段**:請參閱[以不同的權限模式啟動](/docs/zh-TW/permission-modes#start-in-a-different-mode)

13</Note>16</Note>

14 17 

15根據預設,分類器只信任工作目錄和目前儲存庫的已設定遠端。推送到您公司的原始碼控制組織或寫入團隊雲端儲存桶等操作會被封鎖,直到您將它們新增到 `autoMode.environment`。18自動模式適用於所有提供者上的所有使用者,包括 Anthropic API、[AWS 上的 Claude Platform](/docs/zh-TW/claude-platform-on-aws)、Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 和已登入的 [Claude 應用程式閘道](/docs/zh-TW/claude-apps-gateway)工作階段。如果 Claude Code 報告您的帳戶無法使用自動模式,請檢查[完整要求](/docs/zh-TW/permission-modes#eliminate-prompts-with-auto-mode),其中也涵蓋支援的模型和 Team 及 Enterprise 方案上的組織層級控制。

16 19 

17如需了解工作階段如何進入自動模式以及分類器預設封鎖的內容,請參閱[權限模式頁面上的自動模式](/docs/zh-TW/permission-modes#eliminate-prompts-with-auto-mode)。此頁面是設定參考。20根據預設,分類器只信任工作目錄和目前儲存庫的已設定遠端。推送到您公司的原始碼控制組織或寫入團隊雲端儲存桶等操作會被封鎖,直到您將它們新增到 `autoMode.environment`。

18 21 

19此頁面涵蓋如何:22此頁面涵蓋如何:

20 23 

21* [為推送和提取請求新增人工檢查點](#add-a-human-checkpoint),使用 `permissions.ask`24* [為推送和提取請求新增人工檢查點](#add-a-human-checkpoint),使用 `permissions.ask`

22* [選擇在何處設定規則](#where-the-classifier-reads-configuration),跨越 CLAUDE.md、使用者設定和受管設定

23* [定義受信任的基礎結構](#define-trusted-infrastructure),使用 `autoMode.environment`25* [定義受信任的基礎結構](#define-trusted-infrastructure),使用 `autoMode.environment`

24* [使用 `/auto-mode-setup` 產生環境項目](#generate-environment-entries)26* [使用 `/auto-mode-setup` 產生環境項目](#generate-environment-entries)

25* [覆蓋封鎖和允許規則](#override-the-block-and-allow-rules),當預設值不符合您的管道時

26* [從 `/permissions` 編輯規則](#edit-rules-from-permissions),無需開啟設定檔

27* [使用 `autoMode.classifyAllShell` 透過分類器路由所有 shell 命令](#route-all-shell-commands-through-the-classifier)

28* [使用 `claude auto-mode` 子命令檢查您的有效設定](#inspect-the-defaults-and-your-effective-config)

29* [檢查拒絕](#review-denials),以便您知道接下來要新增什麼27* [檢查拒絕](#review-denials),以便您知道接下來要新增什麼

30 28 

31<h2 id="common-boundaries">29<h2 id="common-boundaries">


34 32 

35自動模式允許推送到您正在使用的儲存庫的任何分支(包括預設分支),並預設建立拉取請求。名稱標記為部署或發佈目標的非預設分支(例如 `production`、`release` 或 `gh-pages`)不受該預設涵蓋:分類器會根據其自身條件判斷推送到該分支,包括作為生產部署。推送的內容仍然會被檢查,因此強制推送、秘密進入提交,或在 CI 或部署管道執行時會將秘密發送到儲存庫外的變更仍然會被阻止。33自動模式允許推送到您正在使用的儲存庫的任何分支(包括預設分支),並預設建立拉取請求。名稱標記為部署或發佈目標的非預設分支(例如 `production`、`release` 或 `gh-pages`)不受該預設涵蓋:分類器會根據其自身條件判斷推送到該分支,包括作為生產部署。推送的內容仍然會被檢查,因此強制推送、秘密進入提交,或在 CI 或部署管道執行時會將秘密發送到儲存庫外的變更仍然會被阻止。

36 34 

37<Info>在 v2.1.211 之前,分類器僅允許推送到您的工作分支、Claude 建立的分支,以及例行推送到預設分支。</Info>

38 

39如果您想在 Claude 的推送和拉取請求命令之前進行人工檢查點,請新增權限規則:下面的[配方](#add-a-human-checkpoint)會保持自動模式對所有其他操作開啟。35如果您想在 Claude 的推送和拉取請求命令之前進行人工檢查點,請新增權限規則:下面的[配方](#add-a-human-checkpoint)會保持自動模式對所有其他操作開啟。

40 36 

41<h3 id="add-a-human-checkpoint">37<h3 id="add-a-human-checkpoint">


79| 組織範圍 | [受管理的設定](/docs/zh-TW/server-managed-settings) | 分散給所有開發者的受信任基礎設施 |75| 組織範圍 | [受管理的設定](/docs/zh-TW/server-managed-settings) | 分散給所有開發者的受信任基礎設施 |

80| `--settings` 旗標或 Agent SDK | 內嵌 JSON | 自動化的每次調用覆蓋 |76| `--settings` 旗標或 Agent SDK | 內嵌 JSON | 自動化的每次調用覆蓋 |

81 77 

82分類器不會從 `.claude/settings.json` 或 `.claude/settings.local.json` 中的專案設定讀取 `autoMode`。兩個檔案都位於儲存庫目錄中,因此已簽入的儲存庫或建置步驟可能會注入自己的允許規則。在 v2.1.207 之前,分類器也會讀取 `.claude/settings.local.json`;請將該檔案中的任何 `autoMode` 區塊移至 `~/.claude/settings.json`。排除 `.claude/settings.local.json` 也會關閉儲存庫提交該檔案或本機工具或建置步驟寫入該檔案的情況。78分類器不會從 `.claude/settings.json` 或 `.claude/settings.local.json` 中的專案設定讀取 `autoMode`。兩個檔案都位於儲存庫目錄中,因此已簽入的儲存庫或建置步驟可能會注入自己的允許規則。請將 `.claude/settings.local.json` 中的任何 `autoMode` 區塊移至 `~/.claude/settings.json`。

83 79 

84來自每個範圍的項目會被合併。開發者可以使用個人項目擴展 `environment`、`allow`、`soft_deny` 和 `hard_deny`,但無法移除受管理設定提供的項目。由於允許規則在分類器內部充當軟區塊規則的例外,開發者新增的 `allow` 項目可以覆蓋組織的 `soft_deny` 項目:組合是累加的,而不是硬政策邊界。80來自每個範圍的項目會被合併。開發者可以使用個人項目擴展 `environment`、`allow`、`soft_deny` 和 `hard_deny`,但無法移除受管理設定提供的項目。由於允許規則在分類器內部充當軟區塊規則的例外,開發者新增的 `allow` 項目可以覆蓋組織的 `soft_deny` 項目:組合是累加的,而不是硬政策邊界。

85 81 


93 89 

94對於大多數組織,`autoMode.environment` 是您唯一需要設定的欄位。它告訴分類器哪些儲存庫、儲存桶和網域是受信任的:分類器使用它來決定「外部」的含義,因此任何未列出的目的地都是潛在的資料外洩目標。90對於大多數組織,`autoMode.environment` 是您唯一需要設定的欄位。它告訴分類器哪些儲存庫、儲存桶和網域是受信任的:分類器使用它來決定「外部」的含義,因此任何未列出的目的地都是潛在的資料外洩目標。

95 91 

96自 Claude Code v2.1.198 起,`claude auto-mode defaults` 會列印三種環境項目。v2.1.195 之前的版本只列印前五個信任槽位。92`claude auto-mode defaults` 會列印三種環境項目。

97 93 

98* **Context slots**:描述您的組織、技術堆疊和安全態勢,以便分類器讀取您的上下文中的其他規則。每個預設為 `None configured` 或保守假設(名稱如下):94* **Context slots**:描述您的組織、技術堆疊和安全態勢,以便分類器讀取您的上下文中的其他規則。每個預設為 `None configured` 或保守假設(名稱如下):

99 * **Organization**95 * **Organization**

100 * **Claude Code 的主要用途**:預設為軟體開發96 * **Claude Code 的主要用途**:預設為軟體開發

101 * **雲端提供者**97 * **雲端提供者**

102 * **儲存庫可見性**:除非其遠端主機和名稱另有指示,或分類器讀取的對話中較早的可見性檢查顯示它是公開的,否則儲存庫被假定為私有。分類器讀取您的訊息和 Claude 執行的命令,而不是它們的輸出,因此證據必須是它能讀取的內容,例如您自己的訊息將儲存庫命名為公開;單獨執行 `gh repo view` 的輸出無法到達它。文字記錄證據檢查需要 Claude Code v2.1.200 或更新版本98 * **儲存庫可見性**:除非其遠端主機和名稱另有指示,或分類器讀取的對話中較早的可見性檢查顯示它是公開的,否則儲存庫被假定為私有。

99 

100 在 Claude Code 本身發送的分類器請求中,分類器讀取您的訊息和 Claude 執行的命令,而不是它們的輸出。證據必須是分類器能讀取的內容,例如您自己的訊息將儲存庫命名為公開;單獨執行 `gh repo view` 的輸出無法到達它。

103 * **內部共享 / 程式碼片段託管**:公開貼上和 gist 服務被視為在信任邊界之外,直到您命名其中一個101 * **內部共享 / 程式碼片段託管**:公開貼上和 gist 服務被視為在信任邊界之外,直到您命名其中一個

104 * **組織特定的 CLI**102 * **組織特定的 CLI**

105 * **祕密管理**103 * **祕密管理**


108 * **Host containment**:預設為具有開放網際網路的普通開發人員機器或 CI 執行器。如果 Claude Code 在具有出口允許清單或不得接觸的鄰近項目的容器、VM 或 pod 中執行,請命名允許的主機、雲端中繼資料端點是否應可到達,以及任務使用的雲端專案、叢集或登錄以及使用的身分。在此項目命名該身分之前,分類器[阻止](/docs/zh-TW/permission-modes#what-the-classifier-blocks-by-default)主機自身認證的請求。需要 Claude Code v2.1.257 或更新版本106 * **Host containment**:預設為具有開放網際網路的普通開發人員機器或 CI 執行器。如果 Claude Code 在具有出口允許清單或不得接觸的鄰近項目的容器、VM 或 pod 中執行,請命名允許的主機、雲端中繼資料端點是否應可到達,以及任務使用的雲端專案、叢集或登錄以及使用的身分。在此項目命名該身分之前,分類器[阻止](/docs/zh-TW/permission-modes#what-the-classifier-blocks-by-default)主機自身認證的請求。需要 Claude Code v2.1.257 或更新版本

109 * **受保護的部署命名空間 / 環境**:在您命名它們之前,回退到「敏感遠端目標」啟發式107 * **受保護的部署命名空間 / 環境**:在您命名它們之前,回退到「敏感遠端目標」啟發式

110 * **資料保留 / 解密**108 * **資料保留 / 解密**

111* **Trust slots**:命名分類器視為在您邊界內的內容。槽位為「受信任的儲存庫」、「原始碼控制」、「受信任的內部網域」、「受信任的雲端儲存桶」、「關鍵內部服務」和「內部套件登錄」。儲存庫和原始碼控制項目預設為工作儲存庫及其配置的遠端。其他所有信任槽位預設為 `None configured`,因此在您新增之前,沒有其他內容是受信任的。儲存庫的可見性僅限於機密資料:私有儲存庫是機密資料的可接受目的地,但將儲存庫設為私有永遠不會清除祕密或個人或受信任的資料進入其中,分類器將從工作儲存庫外部移植、重新指向或首次讀取的內容視為不是該儲存庫自己的工作。此範圍設定需要 Claude Code v2.1.203 或更新版本。109* **Trust slots**:命名分類器視為在您邊界內的內容。槽位為「受信任的儲存庫」、「原始碼控制」、「受信任的內部網域」、「受信任的雲端儲存桶」、「關鍵內部服務」和「內部套件登錄」。儲存庫和原始碼控制項目預設為工作儲存庫及其配置的遠端。其他所有信任槽位預設為 `None configured`,因此在您新增之前,沒有其他內容是受信任的。儲存庫的可見性僅限於機密資料:私有儲存庫是機密資料的可接受目的地,但將儲存庫設為私有永遠不會清除祕密或個人或受信任的資料進入其中,分類器將從工作儲存庫外部移植、重新指向或首次讀取的內容視為不是該儲存庫自己的工作。

112* **Sensitivity slots**:命名保護規則視為高風險的內容。槽位為「敏感資料位置和受眾」、「敏感遠端目標」和「受保護的 IaC 範圍」。每個預設為廣泛的啟發式,例如將任何名稱包含 `prod` 或 `production` 的主機或命名空間視為敏感遠端目標,因此保護規則在您配置任何內容之前就處於活動狀態。在敏感槽位中命名具體目標會使這些規則應用於命名的目標,而不是啟發式。110* **Sensitivity slots**:命名保護規則視為高風險的內容。槽位為「敏感資料位置和受眾」、「敏感遠端目標」和「受保護的 IaC 範圍」。每個預設為廣泛的啟發式,例如將任何名稱包含 `prod` 或 `production` 的主機或命名空間視為敏感遠端目標,因此保護規則在您配置任何內容之前就處於活動狀態。在敏感槽位中命名具體目標會使這些規則應用於命名的目標,而不是啟發式。

113 111 

114<Info>在 v2.1.211 之前,context slots 還包括一個「預設 / 受保護的分支」項目,該項目將 `main` 和 `master` 視為受保護的,直到您命名其他項目。v2.1.211 移除了它:[推送到您正在處理的儲存庫的任何分支](#common-boundaries)預設是允許的,因此沒有受保護分支預設值可配置。</Info>

115 

116若要在預設值旁邊新增您自己的項目,請在陣列中包含字面字串 `"$defaults"`。預設項目會在該位置拼接,因此您的自訂項目可以在它們之前或之後。112若要在預設值旁邊新增您自己的項目,請在陣列中包含字面字串 `"$defaults"`。預設項目會在該位置拼接,因此您的自訂項目可以在它們之前或之後。

117 113 

118以下範例保留預設項目並新增組織的儲存庫、儲存桶、網域和服務。114以下範例保留預設項目並新增組織的儲存庫、儲存桶、網域和服務。


141* **Trusted internal domains**:您網路內 API、儀表板和服務的主機名稱,例如 `*.internal.example.com`137* **Trusted internal domains**:您網路內 API、儀表板和服務的主機名稱,例如 `*.internal.example.com`

142* **Key internal services**:CI、構件登錄、內部套件索引、事件工具138* **Key internal services**:CI、構件登錄、內部套件索引、事件工具

143* **Internal package registry**:私有 npm、PyPI 或其他登錄,安裝應該透過它進行,因此繞過它安裝公開登錄的安裝會被阻止139* **Internal package registry**:私有 npm、PyPI 或其他登錄,安裝應該透過它進行,因此繞過它安裝公開登錄的安裝會被阻止

144* **Sensitive data locations & audiences**:保存個人資料、機密業務資料、認證、受管制資料或類似敏感資料的儲存桶、資料庫或路徑,以及每個位置中的資料可能與之共享的受眾,以便分類器保護這些位置而不是從內容猜測。Claude Code v2.1.195 至 v2.1.197 將此項目命名為「PII / 受管制資料位置」,僅涵蓋保存個人或受管制資料的位置,沒有受眾維度140* **Sensitive data locations & audiences**:保存個人資料、機密業務資料、認證、受管制資料或類似敏感資料的儲存桶、資料庫或路徑,以及每個位置中的資料可能與之共享的受眾,以便分類器保護這些位置而不是從內容猜測。

145* **Sensitive remote targets**:計為生產環境的命名空間、主機或容器,因此遠端 shell 和埠轉發進入它們需要您的明確批准141* **Sensitive remote targets**:計為生產環境的命名空間、主機或容器,因此遠端 shell 和埠轉發進入它們需要您的明確批准

146* **Protected IaC scopes**:應用或銷毀應始終需要您命名變更的基礎設施資源142* **Protected IaC scopes**:應用或銷毀應始終需要您命名變更的基礎設施資源

147* **Additional context**:受管制行業限制、多租戶基礎設施或影響分類器應視為風險的合規要求143* **Additional context**:受管制行業限制、多租戶基礎設施或影響分類器應視為風險的合規要求

148 144 

149「Internal package registry」、「Sensitive data locations & audiences」、「Sensitive remote targets」和「Protected IaC scopes」項目需要 Claude Code v2.1.195 或更新版本。較早的版本仍將它們讀取為純上下文,但沒有針對它們的內建規則。

150 

151一個有用的起始範本:填入括號中的欄位並移除任何不適用的行。145一個有用的起始範本:填入括號中的欄位並移除任何不適用的行。

152 146 

153```json theme={null}147```json theme={null}


167}161}

168```162```

169 163 

170您提供的上下文越具體,分類器就越能區分日常內部操作和資料外洩嘗試。

171 

172您不需要一次填入所有內容。合理的推出:從預設值開始,新增您的原始碼控制組織和關鍵內部服務,這可以解決最常見的誤報,例如推送到您自己的儲存庫。接下來新增受信任的網域和雲端儲存桶。當出現阻止時填入其餘部分。164您不需要一次填入所有內容。合理的推出:從預設值開始,新增您的原始碼控制組織和關鍵內部服務,這可以解決最常見的誤報,例如推送到您自己的儲存庫。接下來新增受信任的網域和雲端儲存桶。當出現阻止時填入其餘部分。

173 165 

174<h2 id="generate-environment-entries">166<h2 id="generate-environment-entries">


307 299 

308根據預設,narrow Bash 和 PowerShell 允許規則(例如 `Bash(npm test)`)在自動模式中保持有效。Claude Code 會在分類器執行前解析它們,除非命令帶有[每個命令允許的網域](/docs/zh-TW/sandboxing#per-command-allowed-domains-in-auto-mode)。Claude Code 只會暫停授予任意程式碼執行權限的廣泛規則,例如 `Bash(*)` 或萬用字元解釋器,以及每個命名 [`Monitor`](/docs/zh-TW/tools-reference#monitor-tool) 的規則,因為 Monitor 命令會透過 shell 執行。這表示 narrow 規則仍然可能讓破壞性引數通過而不被分類器看到,例如規則前綴未預期的指令碼路徑或旗標。300根據預設,narrow Bash 和 PowerShell 允許規則(例如 `Bash(npm test)`)在自動模式中保持有效。Claude Code 會在分類器執行前解析它們,除非命令帶有[每個命令允許的網域](/docs/zh-TW/sandboxing#per-command-allowed-domains-in-auto-mode)。Claude Code 只會暫停授予任意程式碼執行權限的廣泛規則,例如 `Bash(*)` 或萬用字元解釋器,以及每個命名 [`Monitor`](/docs/zh-TW/tools-reference#monitor-tool) 的規則,因為 Monitor 命令會透過 shell 執行。這表示 narrow 規則仍然可能讓破壞性引數通過而不被分類器看到,例如規則前綴未預期的指令碼路徑或旗標。

309 301 

310將 `autoMode.classifyAllShell` 設定為 `true`,以在自動模式啟用時暫停每個 Bash 和 PowerShell 允許規則,讓分類器評估每個 shell 命令,無論您的允許清單為何。302將 `autoMode.classifyAllShell` 設定為 `true`,以在自動模式啟用時暫停每個 Bash 和 PowerShell 允許規則,讓分類器評估每個 shell 命令,無論您的允許清單為何,除了[關鍵路徑移除](/docs/zh-TW/permission-modes#critical-paths)。

311 303 

312```json theme={null}304```json theme={null}

313{305{


321 313 

322此設定僅在自動模式啟用時適用,您的允許規則在其他權限模式中的行為正常。314此設定僅在自動模式啟用時適用,您的允許規則在其他權限模式中的行為正常。

323 315 

324<Note>

325 `autoMode.classifyAllShell` 需要 Claude Code v2.1.193 或更新版本。較早的版本會忽略此金鑰,並繼續將 narrow shell 允許規則帶入自動模式。

326</Note>

327 

328<h2 id="inspect-the-defaults-and-your-effective-config">316<h2 id="inspect-the-defaults-and-your-effective-config">

329 檢查預設值和您的有效設定317 檢查預設值和您的有效設定

330</h2>318</h2>


373claude auto-mode critique361claude auto-mode critique

374```362```

375 363 

376儲存您的設定後執行 `claude auto-mode config` 以確認有效規則符合您的預期,其中 `"$defaults"` 已展開到位。如果您已撰寫自訂規則,`claude auto-mode critique` 會檢查它們並標記模稜兩可、冗餘或可能導致誤判的項目。364如果您已撰寫自訂規則,`claude auto-mode critique` 會檢查它們並標記模稜兩可、冗餘或可能導致誤判的項目。

377 365 

378若要捨棄您的自訂設定並回復到內建預設值,請執行重設子命令。它需要 Claude Code v2.1.212 或更新版本,並從您的使用者設定檔案中移除 `autoMode` 部分:366若要捨棄您的自訂設定並回復到內建預設值,請執行重設子命令。它需要 Claude Code v2.1.212 或更新版本,並從您的使用者設定檔案中移除 `autoMode` 部分:

379 367 


407 395 

408您可以從 `/permissions` 對話框的 [**Auto mode** 標籤](#edit-rules-from-permissions)新增環境項目或 `allow` 規則。396您可以從 `/permissions` 對話框的 [**Auto mode** 標籤](#edit-rules-from-permissions)新增環境項目或 `allow` 規則。

409 397 

410在大多數工作階段中,原因會命名分類器符合的規則,以方括號表示,例如 `[Data Exfiltration]` 或 `[Production Deploy]`,而某些工作階段執行的分類器模型會新增簡短說明。Claude Code 會選取分類器模型,因此您看到的形式不是您可以設定的內容。398方括號中的文字,例如 `[Data Exfiltration]`,是分類器符合的規則名稱。若要閱讀該規則的完整措辭,請參閱[檢視預設值和您的有效設定](#inspect-the-defaults-and-your-effective-config)。

411 399 

412<h3 id="fix-repeated-denials">400<h3 id="fix-repeated-denials">

413 修復重複拒絕401 修復重複拒絕


415 403 

416同一目的地的重複拒絕通常表示分類器缺少背景資訊。將該目的地新增至 `autoMode.environment`,或[執行 `/auto-mode-setup`](#generate-environment-entries) 讓 Claude Code 草擬項目,然後執行 `claude auto-mode config` 以確認變更已生效。404同一目的地的重複拒絕通常表示分類器缺少背景資訊。將該目的地新增至 `autoMode.environment`,或[執行 `/auto-mode-setup`](#generate-environment-entries) 讓 Claude Code 草擬項目,然後執行 `claude auto-mode config` 以確認變更已生效。

417 405 

418若要以程式設計方式對拒絕做出反應,請使用 [`PermissionDenied` hook](/docs/zh-TW/hooks#permissiondenied)。

419 

420<h2 id="see-also">406<h2 id="see-also">

421 另請參閱407 另請參閱

422</h2>408</h2>

Details

46 46 

47* **在一個提示中**:要求 Claude 運行檢查並在同一消息中迭代,如上表所示。47* **在一個提示中**:要求 Claude 運行檢查並在同一消息中迭代,如上表所示。

48* **在整個會話中**:將檢查設置為 [`/goal` 條件](/docs/zh-TW/goal)。單獨的評估器在每次轉換後重新檢查它,Claude 繼續工作直到目標解決。如果 Claude 停滯,Claude Code 最終會停止運行,目標仍然設置 — 請參閱 [/goal 評估如何運作](/docs/zh-TW/goal#how-evaluation-works)。48* **在整個會話中**:將檢查設置為 [`/goal` 條件](/docs/zh-TW/goal)。單獨的評估器在每次轉換後重新檢查它,Claude 繼續工作直到目標解決。如果 Claude 停滯,Claude Code 最終會停止運行,目標仍然設置 — 請參閱 [/goal 評估如何運作](/docs/zh-TW/goal#how-evaluation-works)。

49* **作為確定性門**:[Stop hook](/docs/zh-TW/hooks#stop) 將您的檢查作為腳本運行,並阻止轉換結束直到它通過。Claude Code 覆蓋該 hook 並在 8 次連續阻止後結束轉換。49* **作為確定性門**:[Stop hook](/docs/zh-TW/hooks#stop) 將您的檢查作為腳本運行,並阻止轉換結束直到它通過。[Stop input](/docs/zh-TW/hooks#stop-input) 涵蓋連續阻止的上限。

50* **由第二意見**:[驗證子代理](/docs/zh-TW/sub-agents)或[動態工作流](/docs/zh-TW/workflows)檢查自己的發現,有一個新鮮的模型嘗試反駁結果,所以做工作的代理不是給它評分的那個。50* **由第二意見**:[驗證子代理](/docs/zh-TW/sub-agents)或[動態工作流](/docs/zh-TW/workflows)檢查自己的發現,有一個新鮮的模型嘗試反駁結果,所以做工作的代理不是給它評分的那個。

51 51 

52每一步都用設置換取關注。提示版本適用於今天的任何任務。`/goal` 和 Stop hook 版本是讓無人值守運行正確完成而無需您的版本。52每一步都用設置換取關注。提示版本適用於今天的任何任務。`/goal` 和 Stop hook 版本是讓無人值守運行正確完成而無需您的版本。


209 若要減少提示而不放棄控制,請使用 `/permissions` 預先核准你信任的工具,並使用 `/sandbox` 讓沙箱命令無需詢問即可執行。當你想自己核准編輯和命令時,切換到手動模式。209 若要減少提示而不放棄控制,請使用 `/permissions` 預先核准你信任的工具,並使用 `/sandbox` 讓沙箱命令無需詢問即可執行。當你想自己核准編輯和命令時,切換到手動模式。

210</Tip>210</Tip>

211 211 

212在 Pro、Max 和 Team 方案上,自動模式是互動式終端和 VS Code 工作階段的[內建起始權限模式](/docs/zh-TW/permission-modes#eliminate-prompts-with-auto-mode):一個單獨的分類器模型會檢查大多數操作,而不是你,並且只會阻止看起來有風險的操作,例如範圍提升、未知基礎設施或敵對內容驅動的操作。212在 Claude Code v2.1.283 或更新版本中,自動模式是互動式終端和 VS Code 工作階段的[內建起始權限模式](/docs/zh-TW/permission-modes#eliminate-prompts-with-auto-mode):一個單獨的分類器模型會檢查大多數操作,而不是你,並且只會阻止看起來有風險的操作,例如範圍提升、未知基礎設施或敵對內容驅動的操作。在較早的版本中,自動模式只在 Pro、Max 和 Team 方案上才是互動式終端和 VS Code 工作階段的內建起始權限模式。

213 213 

214在手動模式(其他方案上的內建起始權限模式)中,Claude Code 會在可能修改你的系統的操作前詢問:檔案寫入、Bash 命令、MCP 工具。這很安全但很繁瑣。在第十次核准後,你就是在點擊而不是檢查。兩個工具在手動模式中減少了這些中斷,也適用於自動模式:214在手動模式中,Claude Code 會在可能修改你的系統的操作前詢問:檔案寫入、Bash 命令、MCP 工具。這很安全但很繁瑣。在第十次核准後,你就是在點擊而不是檢查。兩個工具在手動模式中減少了這些中斷,也適用於自動模式:

215 215 

216* **權限允許清單**:允許你知道是安全的特定工具,如 `npm run lint` 或 `git commit`216* **權限允許清單**:允許你知道是安全的特定工具,如 `npm run lint` 或 `git commit`

217* **沙箱**:啟用作業系統級隔離,限制檔案系統和網路存取,讓 Claude 在定義的邊界內更自由地工作217* **沙箱**:啟用作業系統級隔離,限制檔案系統和網路存取,讓 Claude 在定義的邊界內更自由地工作

channels.md +1 −1

Details

357 357 

358在預覽期間,`--channels` 只接受來自 Anthropic 維護的允許清單的外掛程式,或來自您組織的允許清單(如果管理員已設定 [`allowedChannelPlugins`](#restrict-which-channel-plugins-can-run))。[claude-plugins-official](https://github.com/anthropics/claude-plugins-official/tree/main/external_plugins) 中的 channel 外掛程式是預設已批准的集合。如果您傳遞不在有效允許清單上的東西,Claude Code 會正常啟動,但 channel 不會註冊,啟動通知會告訴您原因。358在預覽期間,`--channels` 只接受來自 Anthropic 維護的允許清單的外掛程式,或來自您組織的允許清單(如果管理員已設定 [`allowedChannelPlugins`](#restrict-which-channel-plugins-can-run))。[claude-plugins-official](https://github.com/anthropics/claude-plugins-official/tree/main/external_plugins) 中的 channel 外掛程式是預設已批准的集合。如果您傳遞不在有效允許清單上的東西,Claude Code 會正常啟動,但 channel 不會註冊,啟動通知會告訴您原因。

359 359 

360若要測試您正在建立的 channel,請使用 `--dangerously-load-development-channels`。請參閱[在研究預覽期間測試](/docs/zh-TW/channels-reference#test-during-the-research-preview),以取得有關測試您建立的自訂 channels 的資訊。360若要測試您正在建立的 channel,請將其傳遞至 `plugin:<name>@<marketplace>` 或 `server:<name>` 形式的 `--dangerously-load-development-channels`。請參閱[在研究預覽期間測試](/docs/zh-TW/channels-reference#test-during-the-research-preview),以取得有關測試您建立的自訂 channels 的資訊。

361 361 

362在 [Claude Code GitHub 儲存庫](https://github.com/anthropics/claude-code/issues)上報告問題或回饋。362在 [Claude Code GitHub 儲存庫](https://github.com/anthropics/claude-code/issues)上報告問題或回饋。

363 363 

Details

803 803 

804若要使您的 channel 可安裝和可共享,請將其包裝在[外掛程式](/docs/zh-TW/plugins/overview)中並將其發佈到[市場](/docs/zh-TW/plugins/overview)。使用者使用 `/plugin install` 安裝它,然後使用 `--channels plugin:<name>@<marketplace>` 按工作階段啟用它。804若要使您的 channel 可安裝和可共享,請將其包裝在[外掛程式](/docs/zh-TW/plugins/overview)中並將其發佈到[市場](/docs/zh-TW/plugins/overview)。使用者使用 `/plugin install` 安裝它,然後使用 `--channels plugin:<name>@<marketplace>` 按工作階段啟用它。

805 805 

806發佈到您自己的市場的 channel 仍然需要 `--dangerously-load-development-channels` 才能執行,因為它不在[核准允許清單](/docs/zh-TW/channels#supported-channels)上。預設允許清單是 `claude-plugins-official` 中的 channel 外掛程式。[應用內提交表單](/docs/zh-TW/plugins/publish#submit-to-the-community-marketplace)將外掛程式新增到社群市場,該市場不在 channel 允許清單上。806發佈到您自己的市場的 channel 仍然需要 `--dangerously-load-development-channels` 才能執行,因為它不在[核准允許清單](/docs/zh-TW/channels#supported-channels)上。預設允許清單是 `claude-plugins-official` 中的 channel 外掛程式。社群市場不在 channel 允許清單上。

807 807 

808如果您正在與 Anthropic 合作夥伴聯絡,請與他們聯繫以協調官方市場列表。在 Team 和 Enterprise 計劃上,管理員可以改為將您的外掛程式包含在組織自己的 [`allowedChannelPlugins`](/docs/zh-TW/channels#restrict-which-channel-plugins-can-run) 清單中,該清單取代預設 Anthropic 允許清單。808如果您正在與 Anthropic 合作夥伴聯絡,請與他們聯繫以協調官方市場列表。在 Team 和 Enterprise 計劃上,管理員可以改為將您的外掛程式包含在組織自己的 [`allowedChannelPlugins`](/docs/zh-TW/channels#restrict-which-channel-plugins-can-run) 清單中,該清單取代預設 Anthropic 允許清單。

809 809 

Details

114 訊息在回合中途傳送未進行檢查點114 訊息在回合中途傳送未進行檢查點

115</h3>115</h3>

116 116 

117當您[在 Claude 工作時排隊的訊息](/docs/zh-TW/interactive-mode#queue-messages-while-claude-works)在執行中的回合內到達 Claude 時,它會加入該回合而不是開始新的回合。訊息會出現在對話中,但 Claude Code 不會為其建立檢查點,回溯功能表也不會列出它。Claude Code 作為其自己的回合傳送的排隊訊息會照常獲得檢查點。117當您[在 Claude 工作時排隊的訊息](/docs/zh-TW/interactive-mode#queue-messages-while-claude-works)在執行中的回合內到達 Claude 時,它會加入該回合而不是開始新的回合。訊息會出現在對話中,但 Claude Code 不會為其建立檢查點,回溯功能表也不會列出它。Claude Code 作為其自己的回合傳送的排隊訊息會照常獲得檢查點,包括當多個排隊訊息[共享該回合](/docs/zh-TW/interactive-mode#when-claude-code-sends-what-you-queued)時。

118 118 

119若要移除此類訊息,或撤銷 Claude 在其後所做的編輯,請回溯到開始該回合的提示。這會回溯整個回合,包括 Claude 在您的訊息到達之前所做的工作。119若要移除此類訊息,或撤銷 Claude 在其後所做的編輯,請回溯到開始該回合的提示。這會回溯整個回合,包括 Claude 在您的訊息到達之前所做的工作。

120 120 

Details

450 450 

451六個父提供的設定即使設定了所有五個鎖定也會通過篩選器。在預設首次獲勝設定下,阻止父項的管理員值是最高優先級管理員來源中的值,除了 `allowedMcpServers` 當[MCP 伺服器鎖定](#lock-behavior-across-sources)開啟時。在 `managedSourcesBehavior` 合併選擇加入下,[Claude Code 如何合併受管來源](/docs/zh-TW/managed-settings#how-claude-code-combines-managed-sources)說明哪個來源的值改為適用。451六個父提供的設定即使設定了所有五個鎖定也會通過篩選器。在預設首次獲勝設定下,阻止父項的管理員值是最高優先級管理員來源中的值,除了 `allowedMcpServers` 當[MCP 伺服器鎖定](#lock-behavior-across-sources)開啟時。在 `managedSourcesBehavior` 合併選擇加入下,[Claude Code 如何合併受管來源](/docs/zh-TW/managed-settings#how-claude-code-combines-managed-sources)說明哪個來源的值改為適用。

452 452 

453* **`forceLoginOrgUUID`**:當最高優先級管理員來源未設定組織 UUID 時,Claude Code 會接受父提供的值。閘道登入不檢查此金鑰,因此它僅對也使用第一方 Anthropic 登入的機隊重要。最高優先級管理員來源中的組織 UUID 會阻止父項的值,是 Claude Code 強制執行的值,因此在那裡設定 `forceLoginOrgUUID`。453* **`forceLoginOrgUUID`**:當最高優先級管理員來源未設定組織 UUID 時,Claude Code 會接受父提供的值。閘道登入不檢查此金鑰。最高優先級管理員來源中的組織 UUID 會阻止父項的值,是 Claude Code 強制執行的值。

454* **`allowedMcpServers`**:當沒有管理員清單生效時,Claude Code 會接受父提供的允許清單。`allowManagedMcpServersOnly` 不會阻止它,因為鎖定強制執行無論哪個清單獲勝作為受管值,包括當沒有管理員來源提供清單時的父提供清單。最高優先級管理員來源中的清單會阻止父項的並是 Claude Code 強制執行的清單,因此在那裡設定 `allowedMcpServers`,在鎖定旁邊。在 v2.1.223 之前,任何管理員來源中任一金鑰的值都會阻止父項的。454* **`allowedMcpServers`**:當沒有管理員清單生效時,Claude Code 會接受父提供的允許清單。`allowManagedMcpServersOnly` 不會阻止它,因為鎖定強制執行無論哪個清單獲勝作為受管值,包括當沒有管理員來源提供清單時的父提供清單。最高優先級管理員來源中的清單會阻止父項的並是 Claude Code 強制執行的清單,因此在那裡設定 `allowedMcpServers`,在鎖定旁邊。在 v2.1.223 之前,任何管理員來源中任一金鑰的值都會阻止父項的。

455* **`availableModels`**:當獲勝的受管來源未設定模型清單時,Claude Code 會接受父提供的模型清單。如果您的機隊限制模型,在獲勝的來源中設定 `availableModels`。455* **`availableModels`**:當獲勝的受管來源未設定模型清單時,Claude Code 會接受父提供的模型清單。如果您的機隊限制模型,在獲勝的來源中設定 `availableModels`。

456* **`strictKnownMarketplaces`**:當獲勝的受管來源未設定外掛程式市集允許清單時,Claude Code 會接受父提供的外掛程式市集允許清單。如果您的機隊限制市集,在獲勝的來源中設定 `strictKnownMarketplaces`。需要 Claude Code v2.1.282 或更新版本。456* **`strictKnownMarketplaces`**:當獲勝的受管來源未設定外掛程式市集允許清單時,Claude Code 會接受父提供的外掛程式市集允許清單。如果您的機隊限制市集,在獲勝的來源中設定 `strictKnownMarketplaces`。需要 Claude Code v2.1.282 或更新版本。

Details

945* `OTEL_EXPORTER_OTLP_ENDPOINT=<public_url>`945* `OTEL_EXPORTER_OTLP_ENDPOINT=<public_url>`

946* `OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf`946* `OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf`

947 947 

948當您[新增您自己的標籤](#add-your-own-labels)時,gateway 也推送 `OTEL_RESOURCE_ATTRIBUTES`。

949 

948在 gateway 伺服器上的 Claude Code v2.1.265 之前,gateway 將所有三個匯出器選擇器推送為 `otlp`,包括沒有目的地選擇加入的信號。950在 gateway 伺服器上的 Claude Code v2.1.265 之前,gateway 將所有三個匯出器選擇器推送為 `otlp`,包括沒有目的地選擇加入的信號。

949 951 

950推送的端點是從公開 URL 建立的,因此指標和日誌不需要開發者或原則的 OTEL 設定。952推送的端點是從公開 URL 建立的,因此指標和日誌不需要開發者或原則的 OTEL 設定。


962 964 

963protobuf 和 JSON OTLP 編碼都被轉發,任何 OpenTelemetry 相容後端都可作為目的地。965protobuf 和 JSON OTLP 編碼都被轉發,任何 OpenTelemetry 相容後端都可作為目的地。

964 966 

967<h4 id="add-your-own-labels">

968 新增您自己的標籤

969</h4>

970 

971要在透過 gateway 登入的工作階段的遙測上放置固定標籤(例如 `service.namespace` 或 `deployment.environment.name`),設定 `telemetry.resource_attributes`。每個標籤是 OpenTelemetry 資源屬性,每個目的地接收相同的標籤。

972 

973工作階段只在您也設定 `telemetry.forward_to` 和 `listen.public_url` 時獲得標籤。此範例新增兩個標籤:

974 

975```yaml theme={null}

976telemetry:

977 forward_to:

978 - url: https://otel-collector.internal.example.com

979 resource_attributes:

980 service.namespace: claude

981 deployment.environment.name: prod

982```

983 

984當標籤違反這些規則之一時,gateway 會拒絕啟動,啟動錯誤命名標籤:

985 

986* 名稱僅使用字母、數字、`.`、`_` 和 `-`

987* 名稱不是保留的。以任何字母大小寫比較,保留名稱是以 `user.`、`enduser.` 或 `identity.` 開頭的所有內容,加上 `service.name`、`service.version`、`claude.deployment_mode`、`host.arch`、`os.type`、`os.version` 和 `wsl.version`

988* 值是非空可列印 ASCII,沒有空格和 `, ; = \ " %` 中的任何一個

989* 值最多 255 個字元,因為 gateway 在百分比編碼後計算它們,所以 `/`、`:` 和 `@` 各計為三個

990* 值是文字,因此引用數字、`true` 或 `false`

991 

992您需要 gateway 伺服器上的 Claude Code v2.1.281 或更新版本才能設定 `telemetry.resource_attributes`。較早的 gateway 在找到金鑰時拒絕啟動。在新增金鑰之前升級每個複本,並在回滾到較早版本之前移除金鑰。

993 

994透過 `/login` 登入的終端工作階段接收標籤作為 `OTEL_RESOURCE_ATTRIBUTES`,與其他[遙測變數](#telemetry)一起推送。如果您在原則的 `env` 區塊中設定 `OTEL_RESOURCE_ATTRIBUTES`,該原則匹配的終端工作階段獲得該值而不是標籤。Claude Desktop 從 gateway 接收標籤以及 `user.email` 和其他身分屬性。

995 

996Claude Code 也將每個標籤複製到每個指標資料點,因此您可以在不索引資源屬性的後端中按它篩選指標。要關閉該複製,請參閱[指標基數控制](/docs/zh-TW/monitoring-usage#metrics-cardinality-control)。

997 

965<h4 id="export-directly-to-your-collector">998<h4 id="export-directly-to-your-collector">

966 直接匯出到您的收集器999 直接匯出到您的收集器

967</h4>1000</h4>


1032 1065 

1033`load_test_mode` 區塊讓您負載測試 gateway,而不呼叫模型提供者。啟用時,gateway 建立和簽署每個提供者請求如常,丟棄它而不是傳送它,並透過其正常回應路徑流式傳輸罐裝回覆。回覆是填充文字,開始於說它是罐裝的句子。1066`load_test_mode` 區塊讓您負載測試 gateway,而不呼叫模型提供者。啟用時,gateway 建立和簽署每個提供者請求如常,丟棄它而不是傳送它,並透過其正常回應路徑流式傳輸罐裝回覆。回覆是填充文字,開始於說它是罐裝的句子。

1034 1067 

1035需要 v2.1.283 或更新版本。較早版本在設定金鑰時拒絕啟動,因此在新增區塊之前升級每個複本,並在回滾之前移除它。1068需要 gateway 伺服器上的 Claude Code v2.1.282 或更新版本。較早版本在找到金鑰時拒絕啟動。在新增區塊之前升級每個複本,並在回滾之前移除區塊。

1036 1069 

1037下面的範例以預設值開啟模式,回覆為 750 個輸出 token,在大約 10 秒內流式傳輸:1070下面的範例以預設值開啟模式,回覆為大約 750 個 token 的文字,在大約 10 秒內流式傳輸:

1038 1071 

1039```yaml theme={null}1072```yaml theme={null}

1040load_test_mode:1073load_test_mode:


1051 1084 

1052此模式中的負載測試涵蓋 gateway、您的 Postgres 和 gateway 前面的所有東西。它不涵蓋提供者的限制、速度或網路路徑。1085此模式中的負載測試涵蓋 gateway、您的 Postgres 和 gateway 前面的所有東西。它不涵蓋提供者的限制、速度或網路路徑。

1053 1086 

1054啟用模式時,請求可以帶有 `x-load-test-user` 標頭,保存最多七位數的整數,gateway 將每個數字計為具有請求附帶的令牌的開發者的電子郵件和群組的單獨開發者。為負載測試部署提供自己的空資料庫,因為如果任何開發者已經花費任何東西,gateway 拒絕以模式啟動。1087沒有模型請求傳送到提供者,因此複本的每個請求 CPU 是估計值,讀取低於生產,生產也加密其對提供者的流量。使用小試點對真實提供者確認複本計數。在 v2.1.283 之前,估計讀取低得多。

1088 

1089啟用模式時,請求可以帶有 `x-load-test-user` 標頭,保存最多七位數的整數。gateway 將每個數字計為具有請求附帶的令牌的開發者的電子郵件和群組的單獨開發者。

1090 

1091為負載測試部署提供自己的空資料庫,因為如果任何開發者已經花費任何東西,gateway 拒絕以模式啟動。

1055 1092 

1056<Warning>1093<Warning>

1057 永遠不要為開發者使用的 gateway 開啟此。每個請求獲得罐裝回覆,沒有模型被呼叫。gateway 在啟動時記錄 `load_test_mode is on` 警告,並在模式啟用時使用 `load_test: true` 標記每個 `inference` [稽核事件](/docs/zh-TW/claude-apps-gateway-deploy#logs)。1094 永遠不要為開發者使用的 gateway 開啟此。每個請求獲得罐裝回覆,沒有模型被呼叫。gateway 在啟動時記錄 `load_test_mode is on` 警告,並在模式啟用時使用 `load_test: true` 標記每個 `inference` [稽核事件](/docs/zh-TW/claude-apps-gateway-deploy#logs)。

Details

181 健康狀態181 健康狀態

182</h3>182</h3>

183 183 

184閘道提供 `GET /healthz` 作為活躍性探測,`GET /readyz` 作為就緒性探測;`/readyz` 驗證存放區是否可到達。兩者都豁免於 `access_control.allow_cidrs`,因此探測在鎖定的接聽程式上保持運作。184閘道提供 `GET /healthz` 作為活躍性探測,`GET /readyz` 作為就緒性探測。`/readyz` 驗證存放區是否可到達。如果您設定了 [`store.readiness_grace_seconds`](/docs/zh-TW/claude-apps-gateway-config#store),`/readyz` 在存放區停止應答後最多繼續報告就緒達該秒數。

185 

186兩者都豁免於 `access_control.allow_cidrs`,因此探測在鎖定的接聽程式上保持運作。

185 187 

186`/.well-known/oauth-authorization-server` 的 OAuth 探索文件也只在設定載入、OIDC 探索、上游用戶端建構和 Postgres 遷移全部成功後才傳回 `200`,因此它也可作為端對端啟動檢查。188`/.well-known/oauth-authorization-server` 的 OAuth 探索文件也只在設定載入、OIDC 探索、上游用戶端建構和 Postgres 遷移全部成功後才傳回 `200`,因此它也可作為端對端啟動檢查。

187 189 


217* **現有工作階段**:持有人令牌使用 JWT 密鑰在本地驗證,工作階段重新整理不接觸存放區,閘道程序仍可提供推論219* **現有工作階段**:持有人令牌使用 JWT 密鑰在本地驗證,工作階段重新整理不接觸存放區,閘道程序仍可提供推論

218* **新登入**:失敗直到 Postgres 恢復,因為裝置流及其速率限制計數器存在於 Postgres220* **新登入**:失敗直到 Postgres 恢復,因為裝置流及其速率限制計數器存在於 Postgres

219* **[支出限制強制執行](/docs/zh-TW/claude-apps-gateway-spend-limits#postgres-availability)**:在中斷期間預設失敗開啟,因此推論仍流動;如果您寧願阻止而不是無計量執行,請將其翻轉為失敗關閉221* **[支出限制強制執行](/docs/zh-TW/claude-apps-gateway-spend-limits#postgres-availability)**:在中斷期間預設失敗開啟,因此推論仍流動;如果您寧願阻止而不是無計量執行,請將其翻轉為失敗關閉

220* **就緒性**:`/readyz` 在中斷期間報告未就緒,因此在就緒性上閘道流量的協調器立即從輪換中移除每個複本。在該拓撲中,所有流量(包括閘道仍可提供的推論)在負載平衡器處失敗,直到 Postgres 恢復。`/healthz` 上的活躍性探測保持通過,因此複本不被重新啟動。如果您寧願已登入的開發人員在存放區中斷期間繼續工作,請將就緒性探測指向 `/healthz`;代價是新登入對仍報告就緒的複本失敗。222* **就緒性**:預設情況下,`/readyz` 在 Postgres 無法到達時立即報告未就緒,因此每個複本同時失敗其就緒性檢查。在流量僅到達通過檢查的複本的地方,所有流量(包括閘道仍可提供的推論)在 Postgres 恢復前失敗。`/healthz` 上的活躍性探測在整個過程中保持通過。

223 

224如果您的 IdP 宕機,現有工作階段工作直到 `ttl_hours`,新登入失敗。工作階段重新整理獲得重試答案並在 IdP 恢復後成功。如果您的 IdP 有頻繁的維護視窗,請設定更長的 `ttl_hours`。

225 

226<h4 id="readiness-grace-period">

227 就緒性寬限期

228</h4>

229 

230要在短 Postgres 中斷(例如資料庫容錯移轉)期間保持已登入的開發人員工作,請將 [`store.readiness_grace_seconds`](/docs/zh-TW/claude-apps-gateway-config#store) 設定為比容錯移轉耗時更長,例如 `300`。在支出限制開啟且預設失敗開啟行為下,通過保持就緒的複本的請求在 Postgres 恢復前無計量,因此將值保持為低至涵蓋您的容錯移轉。如果您設定了 [`enforcement.fail_closed_on_error: true`](/docs/zh-TW/claude-apps-gateway-config#enforcement),閘道拒絕已登入開發人員的推論,並返回 `429` `spend limit unavailable` 訊息,直到 Postgres 恢復,即使複本仍通過其就緒性檢查。

231 

232該設定需要閘道伺服器上的 Claude Code v2.1.282 或更新版本。較早的閘道在找到該金鑰時拒絕啟動,因此在新增它之前升級每個複本。[升級](#upgrades)涵蓋回滾。

221 233 

222如果您的 IdP 宕機,現有工作階段工作直到 `ttl_hours`,新登入失敗,工作階段重新整理獲得重試答案並在 IdP 恢復後進行一次。如果您的 IdP 有頻繁的維護視窗,請設定更長的 `ttl_hours`。234如果您改為將就緒性探測指向 `/healthz`,複本也在中斷期間保持通過它,但 `/healthz` 永遠不報告未就緒,因此 Postgres 連線未恢復的複本保持通過。

223 235 

224<h3 id="jwt-secret-rotation">236<h3 id="jwt-secret-rotation">

225 JWT 密鑰輪換237 JWT 密鑰輪換

Details

254 254 

255 store:255 store:

256 postgres_url: ${GATEWAY_POSTGRES_URL} # EKS: ${file:/secrets/postgres-url}256 postgres_url: ${GATEWAY_POSTGRES_URL} # EKS: ${file:/secrets/postgres-url}

257 # readiness_grace_seconds: 300 # 保持通過 RDS 容錯移轉

258 # 的健康檢查

257 259 

258 upstreams:260 upstreams:

259 - provider: bedrock261 - provider: bedrock


422 --load-balancers "targetGroupArn=$TG_ARN,containerName=gateway,containerPort=8080"424 --load-balancers "targetGroupArn=$TG_ARN,containerName=gateway,containerPort=8080"

423 ```425 ```

424 426 

425 60 秒的寬限期給冷任務時間拉取映像、連接到儲存並在 ECS 開始計算針對部署的失敗之前回答其第一個健康檢查。目標群組在 `GET /readyz` 上的健康檢查驗證儲存是否可到達,因此無法到達 Postgres 的任務永遠不會進入輪換;有關權衡和 `/healthz` 替代方案,請參閱[中斷行為](/docs/zh-TW/claude-apps-gateway-deploy#outage-behavior)。427 60 秒的寬限期給冷任務時間拉取映像、連接到儲存並在 ECS 開始計算針對部署的失敗之前回答其第一個健康檢查。目標群組在 `GET /readyz` 上的健康檢查驗證儲存是否可到達,因此無法到達 Postgres 的任務永遠不會進入輪換。為了保持任務通過短資料庫中斷(例如 RDS 容錯移轉)的健康檢查,請設定 `store.readiness_grace_seconds`,如[中斷行為](/docs/zh-TW/claude-apps-gateway-deploy#outage-behavior)所述,其中也涵蓋 `/healthz` 替代方案。

426 428 

427 任務在沒有公開 IP 的私有子網中執行,因此所有出站流量(到 Bedrock、您的 IdP、Secrets Manager、ECR 和 CloudWatch Logs)都透過 NAT 閘道。為了保持 Bedrock 流量不走公開路徑,建立 `bedrock-runtime` 介面 VPC 端點並將上游的 `base_url` 指向它,如 [Bedrock 上游參考](/docs/zh-TW/claude-apps-gateway-config#amazon-bedrock)所示;IdP 仍然需要網際網路出站。429 任務在沒有公開 IP 的私有子網中執行,因此所有出站流量(到 Bedrock、您的 IdP、Secrets Manager、ECR 和 CloudWatch Logs)都透過 NAT 閘道。為了保持 Bedrock 流量不走公開路徑,建立 `bedrock-runtime` 介面 VPC 端點並將上游的 `base_url` 指向它,如 [Bedrock 上游參考](/docs/zh-TW/claude-apps-gateway-config#amazon-bedrock)所示;IdP 仍然需要網際網路出站。

428 430 

Details

179 179 

180 store:180 store:

181 postgres_url: ${GATEWAY_POSTGRES_URL} # GKE: ${file:/secrets/postgres-url}181 postgres_url: ${GATEWAY_POSTGRES_URL} # GKE: ${file:/secrets/postgres-url}

182 # readiness_grace_seconds: 300 # 在 Cloud SQL 容錯移轉期間

183 # 保持通過就緒探針

182 184 

183 upstreams:185 upstreams:

184 - provider: vertex186 - provider: vertex

Details

86 86 

87預檢查使用兩秒超時查詢 Postgres。如果存儲無法到達或超時,執行預設會開放失敗:請求繼續進行,閘道記錄警告,回應不攜帶 `anthropic-ratelimit-unified-*` 標頭。設定 [`enforcement.fail_closed_on_error: true`](/docs/zh-TW/claude-apps-gateway-config#enforcement) 改為關閉失敗,這會返回相同的 `429 billing_error`,但訊息為 `spend limit unavailable`,沒有期間、重設時間或 `retry-after` 標頭。開放失敗可防止存儲中斷成為推論中斷;關閉失敗保證沒有無計量支出。87預檢查使用兩秒超時查詢 Postgres。如果存儲無法到達或超時,執行預設會開放失敗:請求繼續進行,閘道記錄警告,回應不攜帶 `anthropic-ratelimit-unified-*` 標頭。設定 [`enforcement.fail_closed_on_error: true`](/docs/zh-TW/claude-apps-gateway-config#enforcement) 改為關閉失敗,這會返回相同的 `429 billing_error`,但訊息為 `spend limit unavailable`,沒有期間、重設時間或 `retry-after` 標頭。開放失敗可防止存儲中斷成為推論中斷;關閉失敗保證沒有無計量支出。

88 88 

89開放失敗只有在您的負載平衡器或協調器仍然將流量路由到閘道時才有幫助。請參閱[中斷行為](/docs/zh-TW/claude-apps-gateway-deploy#outage-behavior)以了解 `store.readiness_grace_seconds`,它可以讓副本在短暫中斷期間通過其就緒檢查。

90 

89<h3 id="usage-warnings-in-claude-code">91<h3 id="usage-warnings-in-claude-code">

90 Claude Code 中的使用量警告92 Claude Code 中的使用量警告

91</h3>93</h3>

Details

61 61 

62[專案](/docs/zh-TW/claude-projects)中的執行緒需要在它們複製的每個儲存庫上安裝 Claude GitHub App,無論您使用哪種方法連接。請參閱[設定 GitHub 存取](/docs/zh-TW/claude-projects#set-up-github-access)。62[專案](/docs/zh-TW/claude-projects)中的執行緒需要在它們複製的每個儲存庫上安裝 Claude GitHub App,無論您使用哪種方法連接。請參閱[設定 GitHub 存取](/docs/zh-TW/claude-projects#set-up-github-access)。

63 63 

64在 Anthropic 代管的環境中,您的 GitHub 認證保持在 Anthropic 伺服器上加密,永遠不會進入工作階段的虛擬機器。來自虛擬機器的 GitHub 操作會通過 [GitHub proxy](/docs/zh-TW/cloud-environments#github-proxy),它在伺服器端附加認證。

65 

64有關 `/schedule` 如何在建立例行工作之前檢查儲存庫存取,請參閱[儲存庫和分支權限](/docs/zh-TW/routines#repositories-and-branch-permissions)。有關 `/web-setup` 的逐步說明,請參閱[從您的終端連接](/docs/zh-TW/web-quickstart#connect-from-your-terminal),包括 `/web-setup` 儲存的內容以及如何移除它。66有關 `/schedule` 如何在建立例行工作之前檢查儲存庫存取,請參閱[儲存庫和分支權限](/docs/zh-TW/routines#repositories-and-branch-permissions)。有關 `/web-setup` 的逐步說明,請參閱[從您的終端連接](/docs/zh-TW/web-quickstart#connect-from-your-terminal),包括 `/web-setup` 儲存的內容以及如何移除它。

65 67 

66快速網頁設定是一個組織設定,讓成員使用 `/web-setup` 連接 GitHub,在瀏覽器上線期間跳過 Claude GitHub App 安裝提示,並讓瀏覽器上線為他們建立[**預設**環境](/docs/zh-TW/cloud-environments#the-default-environment),而不是顯示環境表單。在 Team 和 Enterprise 計畫上,預設情況下它是關閉的,這會隱藏 `/web-setup`。[擁有者](/docs/zh-TW/server-managed-settings#access-control)可以在 [**管理設定 > Claude Code**](https://claude.ai/admin-settings/claude-code) 使用**快速網頁設定**切換來開啟它。68快速網頁設定是一個組織設定,讓成員使用 `/web-setup` 連接 GitHub,在瀏覽器上線期間跳過 Claude GitHub App 安裝提示,並讓瀏覽器上線為他們建立[**預設**環境](/docs/zh-TW/cloud-environments#the-default-environment),而不是顯示環境表單。在 Team 和 Enterprise 計畫上,預設情況下它是關閉的,這會隱藏 `/web-setup`。[擁有者](/docs/zh-TW/server-managed-settings#access-control)可以在 [**管理設定 > Claude Code**](https://claude.ai/admin-settings/claude-code) 使用**快速網頁設定**切換來開啟它。


70</Note>72</Note>

71 73 

72<h2 id="move-tasks-between-terminal-and-cloud">74<h2 id="move-tasks-between-terminal-and-cloud">

73 在終端和雲端之間移動任務75 在終端機和雲端之間移動任務

74</h2>76</h2>

75 77 

76這些工作流程需要[Claude Code CLI](/docs/zh-TW/quickstart)登入到相同的 claude.ai 帳戶。您可以從終端啟動新的雲端工作階段,或將雲端工作階段拉入終端以在本機繼續。雲端工作階段即使在您關閉筆記型電腦後仍會保留,您可以從任何地方(包括 Claude 行動應用程式)監控它們。78這些工作流程需要 [Claude Code CLI](/docs/zh-TW/quickstart) 登入到同一個 claude.ai 帳戶。您可以從終端機啟動新的雲端工作階段,或將雲端工作階段拉入您的終端機以在本機繼續。雲端工作階段即使在您關閉筆記型電腦後仍會保留,您可以從任何地方(包括 Claude 行動應用程式)監控它們。

77 79 

78<Note>80<Note>

79 從 CLI,工作階段交接是單向的:您可以使用 `--teleport` 將雲端工作階段拉入終端,但無法將現有終端工作階段推送到雲端。`--cloud` 旗標搭配任務描述會為您目前的儲存庫建立新的雲端工作階段;搭配 `-p` 和工作階段 ID 或 claude.ai/code URL 時,它會改為[將訊息排隊到該現有工作階段](/docs/zh-TW/claude-code-on-the-web#send-follow-ups-from-the-cli)。[Desktop 應用程式](/docs/zh-TW/desktop#continue-in-another-surface)提供可將本機工作階段發送到雲端的**在另一個表面繼續**功能表。81 從 CLI,工作階段交接是單向的:您可以使用 `--teleport` 將雲端工作階段拉入您的終端機,但您無法將現有的終端機工作階段推送到雲端。`--cloud` 旗標搭配任務描述會為您目前的儲存庫建立新的雲端工作階段;搭配 `-p` 和工作階段 ID 或 claude.ai/code URL 時,它會改為 [將訊息加入該現有工作階段的佇列](/docs/zh-TW/claude-code-on-the-web#send-follow-ups-from-the-cli)。[桌面應用程式](/docs/zh-TW/desktop#continue-in-another-surface) 提供 **Continue in** 功能表,可以將本機工作階段傳送到雲端。

80</Note>82</Note>

81 83 

82<h3 id="from-terminal-to-cloud">84<h3 id="from-terminal-to-cloud">

83 從終端到雲端85 從終端機到雲端

84</h3>86</h3>

85 87 

86使用 `--cloud` 旗標從命令列啟動雲端工作階段:88使用 `--cloud` 旗標從命令列啟動雲端工作階段:


89claude --cloud "Fix the authentication bug in src/auth/login.ts"91claude --cloud "Fix the authentication bug in src/auth/login.ts"

90```92```

91 93 

92這會在 claude.ai 上建立新的雲端工作階段。雲端 VM 複製您目前目錄的 GitHub 遠端,位於您目前的分支,而不是您的本機簽出,因此如果您有本機提交,請先推送。請參閱[不使用 GitHub 發送本機儲存庫](#send-local-repositories-without-github)以了解 Claude Code 上傳您的本機儲存庫而不是複製的情況。94這會在 claude.ai 上建立新的雲端工作階段。雲端 VM 會在您目前的分支上複製您目前目錄的 GitHub 遠端,而不是您的本機簽出,所以如果您有本機提交,請先推送。請參閱 [Send local repositories without GitHub](#send-local-repositories-without-github) 以了解 Claude Code 上傳您的本機儲存庫而不是複製的情況。

93 95 

94`--cloud` 一次適用於單一儲存庫。任務在雲端執行,而您繼續在本機工作。較舊的 `--remote` 拼寫仍然可作為 `--cloud` 的已棄用別名。96`--cloud` 一次只能與單一儲存庫搭配使用。任務在雲端執行,而您繼續在本機工作。較舊的 `--remote` 拼寫仍然可作為 `--cloud` 的已棄用別名使用。

95 97 

96當雲端容器啟動時,CLI 會顯示設定步驟的即時檢查清單,例如複製儲存庫和執行您的[設定指令碼](/docs/zh-TW/cloud-environments#setup-scripts)。它會排隊您在佈建期間輸入的訊息,並在工作階段準備好後發送它們。98當雲端容器啟動時,CLI 會顯示設定步驟的即時檢查清單,例如複製儲存庫和執行您的 [setup script](/docs/zh-TW/cloud-environments#setup-scripts)。它會將您在佈建期間輸入的訊息加入佇列,並在工作階段準備好後傳送它們。

97 99 

98<Note>100<Note>

99 `--cloud` 建立雲端工作階段。`--remote-control` 無關:它讓您從 claude.ai 或 Claude 應用程式監控和引導本機 CLI 工作階段。請參閱[遠端控制](/docs/zh-TW/remote-control)。101 `--cloud` 會建立雲端工作階段。`--remote-control` 無關:它可讓您從 claude.ai 或 Claude 應用程式監控和控制本機 CLI 工作階段。請參閱 [Remote Control](/docs/zh-TW/remote-control)。

100</Note>102</Note>

101 103 

102在 claude.ai 或 Claude 行動應用程式上開啟工作階段以檢查進度或直接互動。從那裡,您可以引導 Claude、提供反饋或回答問題,就像任何其他對話一樣。104在 claude.ai 或 Claude 行動應用程式上開啟工作階段以檢查進度或直接互動。從那裡您可以控制 Claude、提供回饋或回答問題,就像在任何其他對話中一樣。

103 105 

104如果 Claude 提出問題且工作階段閒置,您仍然可以在回來時回答,直到[環境過期](#environment-expired),工作階段會從您的回答繼續。106如果 Claude 提出問題且工作階段閒置,您仍然可以在回來時回答,直到 [environment expiry](#environment-expired),工作階段會從您的回答繼續。

105 107 

106<h4 id="tips-for-cloud-tasks">108<h4 id="tips-for-cloud-tasks">

107 雲端任務的提示109 雲端任務的提示

108</h4>110</h4>

109 111 

110**在本機規劃,在雲端執行**:對於複雜任務,在規劃模式下啟動 Claude 以協作制定方法,然後將工作發送到雲端:112**在本機規劃,在雲端執行**:對於複雜的任務,先啟動 Claude 進入規劃模式以協作制定方法,然後將工作傳送到雲端:

111 113 

112```bash theme={null}114```bash theme={null}

113claude --permission-mode plan115claude --permission-mode plan

114```116```

115 117 

116在規劃模式下,Claude 讀取檔案、執行命令以探索並提出計畫,而不編輯原始程式碼。一旦您對計畫感到滿意,將計畫保存到儲存庫、提交和推送,以便雲端 VM 可以複製它。然後為自主執行啟動雲端工作階段:118在規劃模式中,Claude 讀取檔案、執行命令以探索,並提出計畫而不編輯原始程式碼。一旦您滿意,將計畫儲存到儲存庫、提交並推送,以便雲端 VM 可以複製它。然後啟動雲端工作階段以進行自主執行:

117 119 

118```bash theme={null}120```bash theme={null}

119claude --cloud "Execute the migration plan in docs/migration-plan.md"121claude --cloud "Execute the migration plan in docs/migration-plan.md"

120```122```

121 123 

122**並行執行任務**:每個 `--cloud` 命令建立自己的雲端工作階段,獨立執行。您可以啟動多個任務,它們都會在單獨的工作階段中同時執行:124**並行執行任務**:每個 `--cloud` 命令都會建立自己的雲端工作階段,獨立執行。您可以啟動多個任務,它們都會在不同的工作階段中同時執行:

123 125 

124```bash theme={null}126```bash theme={null}

125claude --cloud "Fix the flaky test in auth.spec.ts"127claude --cloud "Fix the flaky test in auth.spec.ts"


127claude --cloud "Refactor the logger to use structured output"129claude --cloud "Refactor the logger to use structured output"

128```130```

129 131 

130當工作階段完成時,您可以從 claude.ai/code 建立 PR,或[傳送](#from-cloud-to-terminal)工作階段到終端以繼續工作。132當工作階段完成時,您可以從 claude.ai/code 建立 PR,或 [teleport](#from-cloud-to-terminal) 工作階段到您的終端機以繼續工作。

131 133 

132<h4 id="send-local-repositories-without-github">134<h4 id="send-local-repositories-without-github">

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

134</h4>136</h4>

135 137 

136當您從未連接到 GitHub 的儲存庫執行 `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,這也適用。該套件包括您在所有分支上的完整儲存庫歷史記錄,加上對追蹤檔案的未提交變更。

137 139 

138在 macOS、Linux 和 WSL 上,Claude Code 會將名稱類似認證或金鑰的檔案的未提交變更排除在上傳之外,並列出它排除的檔案名稱。這涵蓋 `.env` 檔案、Terraform `*.tfvars` 檔案和金鑰檔案,例如 `id_rsa` 和 `*.pem`。工作階段會以每個檔案的已提交版本啟動,或如果沒有已提交的檔案,則不使用該檔案。在連結的 worktree、子模組或類似配置中,Claude Code 會上傳這些變更與其餘部分一起,並列出它上傳的檔案名稱。140在 macOS、Linux 和 WSL 上,Claude Code 會將名稱類似於認證或金鑰的檔案的未提交變更排除在上傳之外,並命名它排除的檔案。這涵蓋 `.env` 檔案、Terraform `*.tfvars` 檔案和金鑰檔案,例如 `id_rsa` 和 `*.pem`。工作階段會以每個檔案的已提交版本啟動,或如果未提交任何版本,則不含該檔案。

139 141 

140若要即使在 Claude Code 會以其他方式從遠端複製時也強制上傳捆綁,請設定 `CCR_FORCE_BUNDLE=1`:142若要在 Claude Code 會從遠端複製時強制上傳套件,請設定 `CCR_FORCE_BUNDLE=1`:

141 143 

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

143CCR_FORCE_BUNDLE=1 claude --cloud "Run the test suite and fix any failures"145CCR_FORCE_BUNDLE=1 claude --cloud "Run the test suite and fix any failures"

144```146```

145 147 

146捆綁的儲存庫必須符合這些限制:148打包的儲存庫必須符合這些限制:

147 149 

148* 目錄必須是至少有一個提交的 git 儲存庫150* 目錄必須是至少有一個提交的 git 儲存庫

149* 捆綁的儲存庫必須在 100 MB 以下。較大的儲存庫回退到僅捆綁目前分支,然後回退到工作樹的單一壓縮快照,並且僅在快照仍然太大時失敗151* 打包的儲存庫必須在 100 MB 以下。較大的儲存庫會回退到僅打包目前分支,然後回退到工作樹的單一壓縮快照,如果快照仍然太大則失敗

150* 未追蹤的檔案不包括;在您希望雲端工作階段看到的檔案上執行 `git add`152* 未追蹤的檔案不包括在內;在您希望雲端工作階段看到的檔案上執行 `git add`

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

152 154 

153<h3 id="send-follow-ups-from-the-cli">155<h3 id="send-follow-ups-from-the-cli">

154 從 CLI 發送後續訊息156 從 CLI 傳送後續訊息

155</h3>157</h3>

156 158 

157一旦雲端工作階段執行,無論它在何處執行,都可以從任何您使用 `claude auth login` 登入的機器上的 `claude` CLI 向它發送後續訊息。CLI 使用您的 Anthropic 帳戶認證進行驗證,並且不發送本機工作階段狀態,因此命令不需要從啟動工作階段的機器執行,並且在每個 shell 中都相同,包括 PowerShell。159一旦雲端工作階段執行,無論它在何處執行,都可以從任何您使用 `claude auth login` 登入的機器上的 `claude` CLI 傳送後續訊息。CLI 使用您的 Anthropic 帳戶認證進行驗證,不傳送任何本機工作階段狀態,因此命令不需要從啟動工作階段的機器執行,在每個 shell 中都相同,包括 PowerShell。

158 160 

159該命令發佈一條訊息並退出:161該命令發佈一條訊息並退出:

160 162 


162claude -p "your message" --cloud <session-id>164claude -p "your message" --cloud <session-id>

163```165```

164 166 

165CLI 將訊息排隊到工作階段並退出,不等待回覆。使用它來引導長時間執行的工作階段、在目前工作階段仍在完成時排隊下一步,或從 [CI 指令碼](/docs/zh-TW/self-hosted-environments-testing#run-the-test-loop)發送後續訊息。您也可以在 stdin 上管道訊息,而不是作為引數傳遞:`echo "your message" | claude -p --cloud <session-id>`。167CLI 將訊息加入工作階段的佇列並退出,不等待回覆。使用它來控制長時間執行的工作階段、在目前工作階段仍在完成時將下一步加入佇列,或從 [CI script](/docs/zh-TW/self-hosted-environments-testing#run-the-test-loop) 傳送後續訊息。您也可以在 stdin 上管道傳輸訊息,而不是將其作為引數傳遞:`echo "your message" | claude -p --cloud <session-id>`。

166 168 

167對於 `<session-id>`,傳遞裸 ID,例如 `session_...` 或 `cse_...`,或工作階段的 `claude.ai/code/<id>` URL,帶或不帶方案或查詢字串。在 claude.ai/code 的工作階段清單中找到 ID。169對於 `<session-id>`,傳遞裸 ID,例如 `session_...` 或 `cse_...`,或工作階段的 `claude.ai/code/<id>` URL,有或沒有配置或查詢字串。在 claude.ai/code 的工作階段清單中找到 ID。

168 170 

169<Note>171<Note>

170 `--cloud` 需要 Anthropic 帳戶。當 Claude Code 配置為 Amazon Bedrock、Google Cloud 的 Agent Platform 或其他第三方提供者時,它不可用。僅通過 `ANTHROPIC_BASE_URL` 配置的 [LLM 閘道](/docs/zh-TW/llm-gateway)不算作第三方提供者進行此檢查,但您仍然需要使用 `claude auth login` 登入。您的組織的 `allow_remote_sessions` 政策也必須啟用。擁有者可以在 claude.ai/admin-settings/claude-code 的 Claude Code 管理設定中開啟它。172 `--cloud` 需要 Anthropic 帳戶。當 Claude Code 針對 Amazon Bedrock、Google Cloud 的 Agent Platform 或其他第三方提供者進行設定時,它不可用。僅透過 `ANTHROPIC_BASE_URL` 設定的 [LLM gateway](/docs/zh-TW/llm-gateway) 不算作此檢查的第三方提供者,但您仍需要使用 `claude auth login` 登入。您組織的 `allow_remote_sessions` 原則也必須啟用。擁有者可以在 claude.ai/admin-settings/claude-code 的 Claude Code 管理設定中開啟它。

171</Note>173</Note>

172 174 

173<h4 id="output-and-errors">175<h4 id="output-and-errors">


182View: https://claude.ai/code/session_01DiUkqY2kzbUbDmW1w96rfi?from=cli&m=0184View: https://claude.ai/code/session_01DiUkqY2kzbUbDmW1w96rfi?from=cli&m=0

183```185```

184 186 

185傳遞 `--output-format json` 以獲得機器可讀的結果:成功時為 `{ok, session_id, url}`,或當發送失敗時為 `{ok: false, session_id, error}`,例如當工作階段遺失或已封存時。配置錯誤(例如不支援的提供者或禁用的組織政策)會列印到 stderr,不使用 JSON。`--output-format stream-json` 不支援 `--cloud <session-id>`。187傳遞 `--output-format json` 以取得機器可讀的結果:成功時為 `{ok, session_id, url}`,或當傳送失敗時為 `{ok: false, session_id, error}`,例如當工作階段遺失或已封存時。設定錯誤(例如不支援的提供者或已停用的組織原則)會列印到 stderr,不含 JSON。`--output-format stream-json` 不支援 `--cloud <session-id>`。

186 188 

187CLI 會在錯誤前加上 `Error: `。失敗的傳遞會包裝為 `failed to send message to cloud session <id>: <reason>`。189CLI 會在錯誤前加上 `Error: ` 前綴。失敗的傳遞會包裝為 `failed to send message to cloud session <id>: <reason>`。

188 190 

189| 訊息 | 它的意思 |191| 訊息 | 它的意思 |

190| - | - |192| - | - |

191| `Cloud sessions aren't available with <provider>. They run on Anthropic's infrastructure and require an Anthropic account.` | Claude Code 配置為第三方提供者。訊息會使用您的配置使用的標籤命名提供者,例如 `Amazon Bedrock` 或 `Google Vertex AI`。移除該提供者的配置,例如通過取消設定 `CLAUDE_CODE_USE_BEDROCK`,並使用 Anthropic 帳戶登入(`claude auth login`)。 |193| `Cloud sessions aren't available with <provider>. They run on Anthropic's infrastructure and require an Anthropic account.` | Claude Code 針對第三方提供者進行設定。訊息會使用您的設定使用的標籤命名提供者,例如 `Amazon Bedrock` 或 `Google Vertex AI`。移除該提供者的設定,例如取消設定 `CLAUDE_CODE_USE_BEDROCK`,並使用 Anthropic 帳戶登入(`claude auth login`)。 |

192| `Cloud sessions are disabled by your organization's policy. Contact your organization admin to enable them.` | `allow_remote_sessions` 組織政策已關閉。 |194| `Cloud sessions are disabled by your organization's policy. Contact your organization admin to enable them.` | `allow_remote_sessions` 組織原則已關閉。 |

193| `Couldn't verify your organization's policy for cloud sessions. Check your network connection and try again.` | Claude Code 無法取得您的組織政策,因此它拒絕發送,而不是假設雲端工作階段被允許。檢查您的網路連接並重試。 |195| `Couldn't verify your organization's policy for cloud sessions. Check your network connection and try again.` | Claude Code 無法擷取您的組織原則,因此它拒絕傳送而不是假設雲端工作階段被允許。檢查您的網路連線並重試。 |

194| `Attaching to an existing cloud session is not enabled for your account.` | 您執行了 `--cloud <session-id>` 而沒有 `-p`。使用 `claude -p "your message" --cloud <session-id>` 發送訊息。 |196| `Attaching to an existing cloud session is not enabled for your account.` | 您執行了 `--cloud <session-id>` 而沒有 `-p`。使用 `claude -p "your message" --cloud <session-id>` 傳送訊息。 |

195| `Session not found: <id>` | ID 或 URL 不符合您可以存取的工作階段。根據工作階段的 claude.ai/code URL 檢查它。 |197| `Session not found: <id>` | ID 或 URL 與您可以存取的工作階段不符。根據工作階段的 claude.ai/code URL 檢查它。 |

196| `cloud session <id> is archived and cannot accept new messages` | 工作階段已被封存。改為啟動新工作階段。 |198| `cloud session <id> is archived and cannot accept new messages` | 工作階段已被封存。改為啟動新工作階段。 |

197 199 

198<h3 id="from-cloud-to-terminal">200<h3 id="from-cloud-to-terminal">

199 從雲端到終端201 從雲端到終端機

200</h3>202</h3>

201 203 

202使用以下任何方式將雲端工作階段拉入終端:204使用以下任何方式將雲端工作階段拉入您的終端機:

203 205 

204* **使用 `--teleport`**:從命令列,執行 `claude --teleport` 以進行互動式工作階段選擇器,或執行 `claude --teleport <session-id>` 以直接恢復特定工作階段。如果您有未提交的變更,系統會提示您先隱藏它們。206* **使用 `--teleport`**:從命令列執行 `claude --teleport` 以取得互動式工作階段選擇器,或 `claude --teleport <session-id>` 以直接繼續特定工作階段。如果您有未提交的變更,系統會提示您先將它們隱藏。

205* **使用 `/teleport`**:在現有 CLI 工作階段內,執行 `/teleport` 或 `/tp` 以開啟相同的工作階段選擇器,而無需重新啟動 Claude Code。207* **使用 `/teleport`**:在現有 CLI 工作階段內執行 `/teleport` 或 `/tp` 以開啟相同的工作階段選擇器,無需重新啟動 Claude Code。

206* **從 `/tasks`**:執行 `/tasks` 以查看您的背景工作階段,然後按 `t` 傳送到其中一個。208* **從 `/tasks`**:執行 `/tasks` 以查看您的背景工作階段,然後按 `t` 以 teleport 進入其中一個。

207* **從 claude.ai/code**:從工作階段功能表選擇**在終端中開啟**以複製可貼到終端的命令。209* **從 claude.ai/code**:從工作階段功能表選擇 **Open in > Terminal** 以複製可以貼到您的終端機的命令。

208* **從雲端工作階段內**:輸入 `/teleport`,Claude Code 會回覆該工作階段的確切 `claude --teleport <session-id>` 命令,準備好從儲存庫的簽出執行。需要工作階段環境中的 Claude Code v2.1.223 或更新版本。210* **從雲端工作階段內**:輸入 `/teleport`,Claude Code 會回覆確切的 `claude --teleport <session-id>` 命令,準備從儲存庫的簽出執行。需要工作階段環境中的 Claude Code v2.1.223 或更新版本。

209 211 

210當您傳送工作階段時,Claude 驗證您在正確的儲存庫中,從雲端工作階段取得並簽出分支,並將完整的對話歷史記錄載入到終端。終端會取得工作階段的自己的副本:那裡的新工作保持本機,不會出現在 claude.ai 上的雲端工作階段或 Claude 行動應用程式中。若要在傳送後繼續從您的電話引導,請在本機工作階段中啟動 [`/remote-control`](/docs/zh-TW/remote-control)。212當您 teleport 工作階段時,Claude 會驗證您在正確的儲存庫中,擷取並簽出雲端工作階段的分支,並將完整的對話歷史記錄載入您的終端機。終端機會取得工作階段的自己副本:那裡的新工作保持本機,不會出現在 claude.ai 上的雲端工作階段或 Claude 行動應用程式中。若要在 teleport 後繼續從您的手機控制,請在本機工作階段中啟動 [`/remote-control`](/docs/zh-TW/remote-control)。

211 213 

212`--teleport` 與 `--resume` 不同。`--resume` 從此機器的本機歷史記錄重新開啟對話,不列出雲端工作階段;`--teleport` 拉取雲端工作階段及其分支。214`--teleport` 與 `--resume` 不同。`--resume` 從此機器的本機歷史記錄重新開啟對話,不列出雲端工作階段;`--teleport` 拉入雲端工作階段及其分支。

213 215 

214<h4 id="teleport-requirements">216<h4 id="teleport-requirements">

215 傳送要求217 Teleport 需求

216</h4>218</h4>

217 219 

218傳送在恢復工作階段之前檢查這些要求。如果任何要求未滿足,您會看到錯誤或被提示解決問題。220Teleport 在繼續工作階段之前檢查這些需求。如果任何需求未滿足,您會看到錯誤或被提示解決問題。

219 221 

220| 要求 | 詳細資訊 |222| 需求 | 詳細資訊 |

221| - | - |223| - | - |

222| 乾淨的 git 狀態 | 您的工作目錄必須沒有未提交的變更。如果需要,傳送會提示您隱藏變更。 |224| 乾淨的 git 狀態 | 您的工作目錄必須沒有未提交的變更。如果需要,Teleport 會提示您隱藏變更。 |

223| 正確的儲存庫 | 您必須從同一儲存庫的簽出執行 `--teleport`,而不是從 fork。如果您從不同儲存庫的簽出執行它,Claude Code 會顯示一個錯誤,命名工作階段的儲存庫和您的簽出的儲存庫。在 v2.1.219 之前,錯誤沒有命名您的簽出的儲存庫。如果 Claude Code 無法將您的遠端解析為主機名稱,例如 SSH 主機別名(如 `git@work:owner/repo.git`),它會要求您確認,並在遠端的擁有者和儲存庫名稱符合工作階段的儲存庫時接受簽出。 |225| 正確的儲存庫 | 您必須從同一儲存庫的簽出執行 `--teleport`,而不是分叉。如果您從不同儲存庫的簽出執行它,Claude Code 會顯示一個錯誤,命名工作階段的儲存庫和您的簽出。在 v2.1.219 之前,錯誤沒有命名您的簽出的儲存庫。如果 Claude Code 無法將您的遠端解析為主機名稱,例如 SSH 主機別名如 `git@work:owner/repo.git`,它會要求您確認,並在遠端的擁有者和儲存庫名稱與工作階段的儲存庫相符時接受簽出。 |

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

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

226 228 

227<h4 id="teleport-is-unavailable">229<h4 id="teleport-is-unavailable">

228 `--teleport` 不可用230 `--teleport` 不可用

229</h4>231</h4>

230 232 

231傳送需要 claude.ai 訂閱驗證。如果您通過 API 金鑰進行驗證,請執行 `/login` 以改為使用您的 claude.ai 帳戶登入。如果錯誤命名您的提供者,雲端工作階段無法通過第三方提供者使用;請參閱[錯誤表](#output-and-errors)。如果您已通過 claude.ai 登入且 `--teleport` 仍不可用,您的組織可能已禁用雲端工作階段。233Teleport 需要 claude.ai 訂閱驗證。如果您透過 API 金鑰進行驗證,請執行 `/login` 以改為使用您的 claude.ai 帳戶登入。如果錯誤命名您的提供者,雲端工作階段無法透過第三方提供者取得;請參閱 [error table](#output-and-errors)。如果您已透過 claude.ai 登入且 `--teleport` 仍然不可用,您的組織可能已停用雲端工作階段。

232 234 

233<h2 id="work-with-sessions">235<h2 id="work-with-sessions">

234 使用工作階段236 使用工作階段


429在依賴雲端工作階段進行工作流程之前,請考慮這些限制:431在依賴雲端工作階段進行工作流程之前,請考慮這些限制:

430 432 

431* **速率限制**:雲端工作階段與您帳戶內所有其他 Claude 和 Claude Code 使用共享速率限制。並行執行多個任務會按比例消耗更多速率限制。雲端 VM 沒有單獨的計算費用。433* **速率限制**:雲端工作階段與您帳戶內所有其他 Claude 和 Claude Code 使用共享速率限制。並行執行多個任務會按比例消耗更多速率限制。雲端 VM 沒有單獨的計算費用。

434* **時間限制**:Claude 執行的命令和 SessionStart hooks 有您可以變更的預設逾時,且設定指令碼只有在大約五分鐘內完成時才會被快取。請參閱[時間限制](/docs/zh-TW/cloud-environments#time-limits)

432* **儲存庫驗證**:您只能在驗證到相同帳戶時將雲端工作階段拉入您的終端機435* **儲存庫驗證**:您只能在驗證到相同帳戶時將雲端工作階段拉入您的終端機

433* **平台限制**:儲存庫複製和拉取請求建立需要 GitHub。自託管 [GitHub Enterprise Server](/docs/zh-TW/github-enterprise-server) 執行個體支援 Team 和 Enterprise 計畫。您可以透過設定 `CCR_FORCE_BUNDLE=1`,將 GitLab、Bitbucket 或其他非 GitHub 儲存庫作為[本機捆綁](#send-local-repositories-without-github)發送到雲端工作階段,但工作階段無法將結果推送回該遠端436* **平台限制**:儲存庫複製和拉取請求建立需要 GitHub。自託管 [GitHub Enterprise Server](/docs/zh-TW/github-enterprise-server) 執行個體支援 Team 和 Enterprise 計畫。您可以透過設定 `CCR_FORCE_BUNDLE=1`,將 GitLab、Bitbucket 或其他非 GitHub 儲存庫作為[本機捆綁](#send-local-repositories-without-github)發送到雲端工作階段,但工作階段無法將結果推送回該遠端

434* **組織 IP 允許清單**:雲端工作階段從 Anthropic 管理的基礎設施而不是您的網路呼叫 Anthropic API,而[自託管環境](/docs/zh-TW/self-hosted-environments)中的工作階段從您自己的網路呼叫它。如果您的組織啟用了 [IP 允許清單](https://support.claude.com/en/articles/13200993-restrict-access-to-claude-with-ip-allowlisting),每個 Anthropic 託管的雲端工作階段都會失敗,出現驗證錯誤。這同樣適用於[程式碼審查](/docs/zh-TW/code-review)和[例行工作](/docs/zh-TW/routines),在 Anthropic 託管的環境中執行;路由到自託管環境的例行工作從您自己的網路呼叫 API。聯絡 [Anthropic 支援](https://support.claude.com/)以從您的組織的 IP 允許清單中豁免 Anthropic 託管的服務。437* **組織 IP 允許清單**:雲端工作階段從 Anthropic 管理的基礎設施而不是您的網路呼叫 Anthropic API,而[自託管環境](/docs/zh-TW/self-hosted-environments)中的工作階段從您自己的網路呼叫它。如果您的組織啟用了 [IP 允許清單](https://support.claude.com/en/articles/13200993-restrict-access-to-claude-with-ip-allowlisting),每個 Anthropic 託管的雲端工作階段都會失敗,出現驗證錯誤。這同樣適用於[程式碼審查](/docs/zh-TW/code-review)和[例行工作](/docs/zh-TW/routines),在 Anthropic 託管的環境中執行;路由到自託管環境的例行工作從您自己的網路呼叫 API。聯絡 [Anthropic 支援](https://support.claude.com/)以從您的組織的 IP 允許清單中豁免 Anthropic 託管的服務。

Details

1541 應用程式資料1541 應用程式資料

1542</h2>1542</h2>

1543 1543 

1544除了您編寫的設定外,`~/.claude` 還保存 Claude Code 在工作階段期間寫入的資料。這些檔案是純文字。任何通過工具的內容都會寫入磁碟上的文字記錄:檔案內容、命令輸出、貼上的文字。1544除了你編寫的設定外,`~/.claude` 還保存 Claude Code 在工作階段期間寫入的資料。這些檔案是純文字格式。任何通過工具的內容都會被寫入磁碟上的文字記錄:檔案內容、命令輸出、貼上的文字。

1545 1545 

1546<h3 id="cleaned-up-automatically">1546<h3 id="cleaned-up-automatically">

1547 自動清理1547 自動清理

1548</h3>1548</h3>

1549 1549 

1550Claude Code 會刪除以下路徑中的檔案,一旦它們的年齡超過 [`cleanupPeriodDays`](/docs/zh-TW/settings-reference#cleanupperioddays),只要它能安全地確定保留期間。預設值為 30 天,最小值為 1;設定 `0` 會因驗證錯誤而失敗。相同的年齡截止值也適用於 [孤立 worktrees](/docs/zh-TW/worktrees#clean-up-subagent-and-background-session-worktrees) 的自動移除。1550Claude Code 會刪除下列路徑中的檔案,只要它們的年齡超過 [`cleanupPeriodDays`](/docs/zh-TW/settings-reference#cleanupperioddays),只要它能安全地確定保留期間。預設值為 30 天,最小值為 1;設定 `0` 會導致驗證錯誤。相同的年齡截止值也適用於 [孤立 worktrees](/docs/zh-TW/worktrees#clean-up-subagent-and-background-session-worktrees) 的自動移除。

1551 1551 

1552| `~/.claude/` 下的路徑 | 內容 |1552| `~/.claude/` 下的路徑 | 內容 |

1553| - | - |1553| - | - |

1554| `projects/<project>/<session>.jsonl` | 完整對話文字記錄:每條訊息、工具呼叫和工具結果 |1554| `projects/<project>/<session>.jsonl` | 完整對話文字記錄:每條訊息、工具呼叫和工具結果 |

1555| `projects/<project>/<session>.orphaned-<timestamp>-<suffix>.jsonl`、`projects/<project>/<session>.jsonl.superseded-<timestamp>` | Claude Code 為工作階段設置的先前文字記錄,而不是覆蓋或刪除它。它不會出現在工作階段選擇器中 |1555| `projects/<project>/<session>.orphaned-<timestamp>-<suffix>.jsonl`、`projects/<project>/<session>.jsonl.superseded-<timestamp>` | Claude Code 為該工作階段設置的先前文字記錄,而不是覆蓋或刪除它。它不會出現在工作階段選擇器中 |

1556| `projects/<project>/<session>/subagents/` | [Subagent](/docs/zh-TW/sub-agents) 對話文字記錄,當父工作階段文字記錄過期時會被移除 |1556| `projects/<project>/<session>/subagents/` | [子代理](/docs/zh-TW/sub-agents) 對話文字記錄,當父工作階段文字記錄過期時被移除 |

1557| `projects/<project>/<session>/tool-results/` | 溢出到單獨檔案的大型工具輸出 |1557| `projects/<project>/<session>/tool-results/` | 溢出到單獨檔案的大型工具輸出,以及 [MCP 工具返回的圖片](/docs/zh-TW/mcp#images-in-tool-results) 的完整大小副本 |

1558| `file-history/<session>/` | Claude 更改的檔案的編輯前快照,用於 [checkpoint 復原](/docs/zh-TW/checkpointing)。保存 100 個最近 checkpoint 的快照;沒有保留 checkpoint 參考的快照檔案會被刪除,除了每個檔案的第一個快照 |1558| `file-history/<session>/` | Claude 更改的檔案的編輯前快照,用於 [檢查點還原](/docs/zh-TW/checkpointing)。保存 100 個最近檢查點的快照;沒有保留檢查點引用的快照檔案會被刪除,除了每個檔案的第一個快照 |

1559| `plans/` | 在 [plan mode](/docs/zh-TW/permission-modes#analyze-before-you-edit-with-plan-mode) 期間寫入的 Plan 檔案 |1559| `plans/` | 在 [計畫模式](/docs/zh-TW/permission-modes#analyze-before-you-edit-with-plan-mode) 期間寫入的計畫檔案 |

1560| `debug/` | 每個工作階段的偵錯日誌,在偵錯日誌開啟時寫入,例如當您使用 [`--debug`](/docs/zh-TW/cli-reference#cli-flags) 啟動或執行 `/debug` 時 |1560| `debug/` | 每個工作階段的偵錯日誌,在啟用偵錯日誌時寫入,例如當你使用 [`--debug`](/docs/zh-TW/cli-reference#cli-flags) 啟動或執行 `/debug` 時 |

1561| `paste-cache/` | 大型貼上內容的內容 |1561| `paste-cache/` | 大型貼上內容的內容 |

1562| `image-cache/<session>/` | Claude Code v2.1.274 及更早版本保存的附加影片。更新版本將貼上和附加的影片保存在 `~/.claude` 外,在 [`CLAUDE_CODE_TMPDIR`](/docs/zh-TW/env-vars) 控制的暫存目錄下每個工作階段的 `images/` 目錄中。掃描會移除其他工作階段在此處留下的目錄,無論其年齡如何。 |1562| `image-cache/<session>/` | Claude Code v2.1.274 及更早版本保存的附加圖片。更新版本將貼上和附加的圖片保存在 `~/.claude` 外,在 [`CLAUDE_CODE_TMPDIR`](/docs/zh-TW/env-vars) 控制的暫存目錄下每個工作階段的 `images/` 目錄中。掃描會移除其他工作階段在此處留下的目錄,無論其年齡如何。 |

1563| `uploads/<session>/` | 您從網路或行動應用程式附加的檔案,以及從行動應用程式附加的照片,當訊息傳送到 [Remote Control](/docs/zh-TW/remote-control) 工作階段時。附加到 [cloud session](/docs/zh-TW/claude-code-on-the-web) 的內容會改為保存在該工作階段自己的雲端環境中,而不是在您的機器上。 |1563| `uploads/<session>/` | 你從網路或行動應用程式附加的檔案,以及從行動應用程式附加的照片,當訊息傳送到 [遠端控制](/docs/zh-TW/remote-control) 工作階段時。附加到 [雲端工作階段](/docs/zh-TW/claude-code-on-the-web) 的附件會保存在該工作階段自己的雲端環境中,而不是在你的機器上。 |

1564| `session-env/` | 每個工作階段的環境中繼資料 |1564| `session-env/` | 每個工作階段的環境中繼資料 |

1565| `tasks/` | 由任務工具寫入的任務清單,每個清單一個目錄 |1565| `tasks/` | 由任務工具寫入的任務清單,每個清單一個目錄 |

1566| `shell-snapshots/` | 在啟動時捕獲的別名、函數和 shell 選項,由 [Bash tool](/docs/zh-TW/tools-reference#bash-tool-behavior) 應用於每個命令。在正常退出時移除。掃描會清除任何在當機後留下的內容。 |1566| `shell-snapshots/` | 在啟動時捕獲的別名、函數和 shell 選項,由 [Bash 工具](/docs/zh-TW/tools-reference#bash-tool-behavior) 應用於每個命令。在正常退出時移除。掃描會清除任何在崩潰後留下的內容。 |

1567| `backups/` | `~/.claude.json` 的早期版本,在 Claude Code 重寫檔案時複製。Claude Code 保留五個最新的版本,加上它無法解析的任何版本的副本。 |1567| `backups/` | `~/.claude.json` 的早期版本,在 Claude Code 重寫檔案時複製。Claude Code 保留五個最新版本,加上任何它無法解析的版本副本。 |

1568| `feedback-bundles/` | 由 `/feedback` 在第三方提供者上或當未設定 Anthropic 認證時寫入的編輯文字記錄存檔,用於發送到您的 Anthropic 帳戶團隊 |1568| `feedback-bundles/` | 由 `/feedback` 在第三方提供商上或當未配置 Anthropic 認證時寫入的編輯後文字記錄存檔,用於發送到你的 Anthropic 帳戶團隊 |

1569| `feedback/drafts/` | 排隊的 [Claude 起草的回饋](/docs/zh-TW/tools-reference#sendfeedback-tool-behavior) 等待您在 `/feedback` 中審查。在 `cleanupPeriodDays` 或 30 天後掃描,以較短者為準。當佇列達到其 10 份草稿限制時,Claude Code 會刪除最舊的草稿以騰出空間。 |1569| `feedback/drafts/` | 排隊的 [Claude 起草的回饋](/docs/zh-TW/tools-reference#sendfeedback-tool-behavior) 等待你在 `/feedback` 中審查。在 `cleanupPeriodDays` 或 30 天後掃描,以較短者為準。當佇列達到其 10 份草稿限制時,Claude Code 會刪除最舊的草稿以騰出空間。 |

1570| `usage-data/` | 由 [`/insights`](/docs/zh-TW/costs#analyze-your-usage-patterns) 寫入的 `report.html` 和時間戳記報告副本,加上用於建立它們的快取每個工作階段分析資料 |1570| `usage-data/` | 由 [`/insights`](/docs/zh-TW/costs#analyze-your-usage-patterns) 寫入的 `report.html` 和時間戳記報告副本,加上用於建立它們的快取每個工作階段分析資料 |

1571| `skills/.trash/`、`plugins/.trash/` | claude.ai 同步移除的 [Skills](/docs/zh-TW/skills#how-synced-skills-behave) 和 [plugins](/docs/zh-TW/plugins/loading#synced-plugins),例如在您在 claude.ai 上關閉一個或停止同步後。檔案保留在此處,以便您可以復原它們,直到掃描刪除它們 |1571| `skills/.trash/`、`plugins/.trash/` | claude.ai 同步移除的 [技能](/docs/zh-TW/skills#how-synced-skills-behave) 和 [外掛程式](/docs/zh-TW/plugins/loading#synced-plugins),例如在你在 claude.ai 上關閉一個或停止同步後。檔案保留在此處,以便你可以恢復它們,直到掃描刪除它們 |

1572| `todos/`、`statsig/`、`logs/` | 來自舊版本的舊版目錄。不再寫入。掃描會移除其內容,然後移除空目錄。 |1572| `todos/`、`statsig/`、`logs/` | 來自舊版本的舊版目錄。不再寫入。掃描會移除其內容,然後移除空目錄。 |

1573 1573 

1574`sessions/` 中的工作階段檔案、自動記憶和 Claude Desktop 和 Cowork 文字記錄各自遵循自己的保留規則:1574`sessions/` 中的工作階段檔案、自動記憶和 Claude Desktop 及 Cowork 文字記錄各自遵循自己的保留規則:

1575 1575 

1576* **`sessions/`**:為每個執行中的工作階段保存一個小檔案,用於偵測並行工作階段和當機。它不是基於年齡的掃描的一部分:Claude Code 在其工作階段退出時移除每個檔案,並在下次啟動時清除當機遺留物。1576* **`sessions/`**:為每個執行中的工作階段保存一個小檔案,用於偵測並行工作階段和崩潰。它不是基於年齡的掃描的一部分:Claude Code 在其工作階段退出時移除每個檔案,並在下次啟動時清除崩潰遺留物。

1577* **自動記憶**:掃描不會刪除專案 [auto memory](/docs/zh-TW/memory#auto-memory) 目錄 `projects/<project>/memory/` 中的記憶檔案。Claude Code 只有在該目錄在整個保留期間都為空時才會移除它。在 v2.1.228 之前,掃描會將記憶目錄內的資料夾視為工作階段資料,並可能刪除其下的舊檔案。1577* **自動記憶**:掃描不會刪除專案 [自動記憶](/docs/zh-TW/memory#auto-memory) 目錄 `projects/<project>/memory/` 中的記憶檔案。Claude Code 只有在整個保留期間該目錄一直為空時才會移除它。在 v2.1.228 之前,掃描將記憶目錄內的資料夾視為工作階段資料,可能會刪除其下的舊檔案。

1578* **Claude Desktop 和 Cowork 文字記錄**:Claude Code 保留您在 Claude Desktop 或 Cowork 中啟動或最近繼續的工作階段的文字記錄,無論年齡如何。若要為這些文字記錄設定年齡限制,請設定 [`desktopSessionCleanupPeriodDays`](/docs/zh-TW/settings-reference#desktopsessioncleanupperioddays)。當 [managed settings](/docs/zh-TW/managed-settings) 設定 `cleanupPeriodDays` 時,Claude Code 會改為在該期間後刪除這些文字記錄。需要 Claude Code v2.1.248 或更新版本;較早版本在 `cleanupPeriodDays` 後刪除它們。1578* **Claude Desktop 和 Cowork 文字記錄**:Claude Code 保留你在 Claude Desktop 或 Cowork 中啟動或最近繼續的工作階段的文字記錄,無論年齡如何。要為這些文字記錄設定年齡限制,請設定 [`desktopSessionCleanupPeriodDays`](/docs/zh-TW/settings-reference#desktopsessioncleanupperioddays)。當 [受管設定](/docs/zh-TW/managed-settings) 設定 `cleanupPeriodDays` 時,Claude Code 會在該期間後刪除這些文字記錄。需要 Claude Code v2.1.248 或更新版本;較早版本在 `cleanupPeriodDays` 後刪除它們。

1579 1579 

1580Claude Code 在這些情況下會跳過基於年齡的掃描:1580Claude Code 在這些情況下跳過基於年齡的掃描:

1581 1581 

1582* **Bare mode**:當您使用 [`--bare`](/docs/zh-TW/headless#start-faster-with-bare-mode) 執行 `claude -p` 時,Claude Code 不會在該工作階段中執行掃描。1582* **裸機模式**:當你使用 [`--bare`](/docs/zh-TW/headless#start-faster-with-bare-mode) 執行 `claude -p` 時,Claude Code 不會在該工作階段中執行掃描。

1583* **暫停掃描**:如果 Claude Code 無法安全地確定保留期間,它會暫停保留清理掃描;[`retention_sweep` 事件](/docs/zh-TW/monitoring-usage#retention-sweep-event) 列出每個暫停它的設定。當原因是無法讀取或解析的設定檔案,或 `cleanupPeriodDays` 或 `desktopSessionCleanupPeriodDays` 明確設定的設定錯誤時,Claude Code 也會在 `/status` 中顯示警告,直到您修復設定錯誤。當 [managed settings](/docs/zh-TW/server-managed-settings) 提供 `cleanupPeriodDays` 時,Claude Code 在任一情況下都會以受管值執行掃描。1583* **暫停掃描**:如果 Claude Code 無法安全地確定保留期間,它會暫停保留清理掃描;[`retention_sweep` 事件](/docs/zh-TW/monitoring-usage#retention-sweep-event) 列出每個暫停它的設定。當原因是無法讀取或解析的設定檔案,或 `cleanupPeriodDays` 或 `desktopSessionCleanupPeriodDays` 明確設定的設定錯誤時,Claude Code 也會在 `/status` 中顯示警告,直到你修復設定錯誤。當 [受管設定](/docs/zh-TW/server-managed-settings) 提供 `cleanupPeriodDays` 時,Claude Code 在任一情況下都會以受管值執行掃描。

1584 

1585<h3 id="session-scratchpad-directory">

1586 工作階段暫存簿目錄

1587</h3>

1588 

1589暫存簿是 Claude Code 為 Claude 提供的每個工作階段目錄,用於臨時檔案:中間結果、輔助指令碼和不屬於你的專案的草稿。當 Claude 說它將某些內容保存到「暫存簿」時,該檔案就在那裡。Claude 使用它而不是 `/tmp`,可以在其中建立、編輯和讀取檔案,無需權限提示。

1590 

1591暫存簿位於 Claude Code 的暫存目錄下,而不是 `~/.claude`。找到你的平台的目前工作階段路徑:

1592 

1593* **macOS**:`/private/tmp/claude-<uid>/<project>/<session-id>/scratchpad/`

1594* **Linux**:`/tmp/claude-<uid>/<project>/<session-id>/scratchpad/`,或當你的系統設定 `$TMPDIR` 時在其下的相同形狀

1595* **Windows**:`%TEMP%\claude\<project>\<session-id>\scratchpad\`

1596 

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

1598 

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

1600 

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

1602 

1603* 你使用 claude.ai 帳戶而不是 API 金鑰登入

1604* 工作階段使用 Anthropic API,而不是 Amazon Bedrock、Google Cloud 的 Agent Platform 或 Microsoft Foundry

1605* [`enableArtifact`](/docs/zh-TW/settings-reference#enableartifact) 未設定為 `false`

1584 1606 

1585<h3 id="kept-until-you-delete-them">1607<h3 id="kept-until-you-delete-them">

1586 保留直到您刪除它們1608 保留直到你刪除它們

1587</h3>1609</h3>

1588 1610 

1589保留清理掃描不會移除以下路徑。Claude Code 會保留它們直到您刪除它們,除了兩個在您登出時刪除的快取。1611保留清理掃描不會移除下列路徑。Claude Code 保留它們直到你刪除它們,除了兩個快取在你登出時刪除。

1590 1612 

1591| `~/.claude/` 下的路徑 | 內容 |1613| `~/.claude/` 下的路徑 | 內容 |

1592| - | - |1614| - | - |

1593| `history.jsonl` | 您輸入的每個提示,帶有時間戳記和專案路徑。用於向上箭頭回憶、`Ctrl+R` 歷史搜尋和 `!` shell 命令完成。 |1615| `history.jsonl` | 你輸入的每個提示,帶有時間戳記和專案路徑。用於向上箭頭回憶、`Ctrl+R` 歷史搜尋和 `!` shell 命令完成。 |

1594| `stats-cache.json` | 由 `/usage` 顯示的彙總令牌和成本計數 |1616| `stats-cache.json` | 由 `/usage` 顯示的彙總權杖和成本計數 |

1595| `remote-settings.json` | [server-managed settings](/docs/zh-TW/server-managed-settings) 的快取副本,適用於您的組織,或當您的組織未設定任何內容時為 `{}`。僅在工作階段 [fetches them](/docs/zh-TW/server-managed-settings#platform-availability) 時出現。Claude Code 在啟動時和工作階段期間每小時檢查更新。當您登出時,Claude Code 會刪除它。 |1617| `remote-settings.json` | [伺服器受管設定](/docs/zh-TW/server-managed-settings) 的快取副本,用於你的組織,或當你的組織未配置任何設定時為 `{}`。只有在工作階段 [擷取它們](/docs/zh-TW/server-managed-settings#platform-availability) 時才存在。Claude Code 在啟動時和工作階段期間每小時檢查更新。Claude Code 在你登出時刪除它。 |

1596| `cache/changelog.md` | Claude Code 變更日誌的快取副本,由 `/release-notes` 顯示。在背景中重新整理。 |1618| `cache/changelog.md` | Claude Code 變更日誌的快取副本,由 `/release-notes` 顯示。在背景中重新整理。 |

1597| `policy-limits.json` | 組織的快取功能原則設定。僅對某些帳戶類型出現。自動重新整理。`policy-limits.json.stamp.json` 側車記錄快取所屬的帳戶或 API 金鑰。當您登出時,Claude Code 會刪除兩個檔案。 |1619| `policy-limits.json` | 你的組織的快取功能原則設定。僅對某些帳戶類型存在。自動重新整理。`policy-limits.json.stamp.json` 側車記錄快取屬於哪個帳戶或 API 金鑰。Claude Code 在你登出時刪除兩個檔案。 |

1598 1620 

1599<span id="state-files-to-keep" />1621<span id="state-files-to-keep" />

1600 1622 

1601其他檔案會根據您使用的功能而出現。快取和鎖定檔案可以安全刪除。保留這些狀態檔案:1623其他檔案根據你使用的功能而出現。快取和鎖定檔案可以安全刪除。保留這些狀態檔案:

1602 1624 

1603* `.credentials.json`:您的 [login credentials](/docs/zh-TW/authentication#credential-management)1625* `.credentials.json`:你的 [登入認證](/docs/zh-TW/authentication#credential-management)

1604* `agent-memory/`:[subagent memory](/docs/zh-TW/sub-agents#enable-persistent-memory)1626* `agent-memory/`:[子代理記憶](/docs/zh-TW/sub-agents#enable-persistent-memory)

1605* `jobs/` 和 `daemon/`:[background session](/docs/zh-TW/agent-view#where-state-is-stored) 狀態1627* `jobs/` 和 `daemon/`:[背景工作階段](/docs/zh-TW/agent-view#where-state-is-stored) 狀態

1606 1628 

1607<h3 id="plaintext-storage">1629<h3 id="plaintext-storage">

1608 純文字儲存1630 純文字儲存

1609</h3>1631</h3>

1610 1632 

1611文字記錄和歷史在靜止時未加密。OS 檔案權限是唯一的保護。如果工具讀取 `.env` 檔案或命令列印認證,該值會寫入 `projects/<project>/<session>.jsonl`。若要減少暴露:1633文字記錄和歷史在靜止時未加密。OS 檔案權限是唯一的保護。如果工具讀取 `.env` 檔案或命令列印認證,該值會被寫入 `projects/<project>/<session>.jsonl`。要減少暴露:

1612 1634 

1613* 降低 `cleanupPeriodDays` 以縮短 Claude Code 保留文字記錄的時間1635* 降低 `cleanupPeriodDays` 以縮短 Claude Code 保留文字記錄的時間

1614* 設定 [`desktopSessionCleanupPeriodDays`](/docs/zh-TW/settings-reference#desktopsessioncleanupperioddays) 以給予 Claude Desktop 和 Cowork 文字記錄年齡限制1636* 設定 [`desktopSessionCleanupPeriodDays`](/docs/zh-TW/settings-reference#desktopsessioncleanupperioddays) 以給予 Claude Desktop 和 Cowork 文字記錄年齡限制

1615* 設定 [`CLAUDE_CODE_SKIP_PROMPT_HISTORY`](/docs/zh-TW/env-vars) 環境變數以在任何模式下跳過寫入文字記錄和提示歷史。在非互動模式中,您可以改為在 `-p` 旁邊傳遞 `--no-session-persistence`,或在 TypeScript Agent SDK 中設定 `persistSession: false`;Python SDK 沒有等效選項。1637* 設定 [`CLAUDE_CODE_SKIP_PROMPT_HISTORY`](/docs/zh-TW/env-vars) 環境變數以在任何模式下跳過寫入文字記錄和提示歷史。在非互動模式下,你可以改為在 `-p` 旁邊傳遞 `--no-session-persistence`,或在 TypeScript Agent SDK 中設定 `persistSession: false`;Python SDK 沒有等效選項。

1616* 使用 [permission rules](/docs/zh-TW/permissions) 拒絕讀取認證檔案1638* 使用 [權限規則](/docs/zh-TW/permissions) 拒絕讀取認證檔案

1617 1639 

1618<h3 id="clear-local-data">1640<h3 id="clear-local-data">

1619 清除本機資料1641 清除本機資料

1620</h3>1642</h3>

1621 1643 

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

1623 1645 

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

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

1626* `history.jsonl` 中的匹配提示行1648* `history.jsonl` 中的匹配提示行

1627* 專案在 `~/.claude.json` 中的項目1649* 專案在 `~/.claude.json` 中的項目

1628 1650 

1629您在專案工作階段中貼上或附加的影片儲存在 Claude Code 的暫存目錄下,而不是 `~/.claude`,因此清除不會移除它們。[保留掃描](#cleaned-up-automatically) 會在它們的年齡超過 `cleanupPeriodDays` 時刪除它們。1651你在專案工作階段中貼上或附加的圖片以及每個工作階段的 [暫存簿](#session-scratchpad-directory) 儲存在 Claude Code 的暫存目錄下,而不是 `~/.claude`,所以清除不會移除它們。[保留掃描](#cleaned-up-automatically) 仍會在圖片年齡超過 `cleanupPeriodDays` 時刪除它們;清除的工作階段的暫存簿會保留,直到你刪除它或你的作業系統清除暫存目錄。

1630 1652 

1631該命令會列印完整的刪除計畫並要求確認,然後才會移除任何內容。1653該命令列印完整的刪除計畫並在移除任何內容之前要求確認。

1632 1654 

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

1634 1656 

1635預覽計畫而不刪除任何內容:1657預覽計畫而不刪除任何內容:

1636 1658 


1661claude project purge ~/work/my-repo1683claude project purge ~/work/my-repo

1662```1684```

1663 1685 

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

1665 1687 

1666省略路徑以從互動清單中選擇專案。1688省略路徑以從互動清單中選擇專案。

1667 1689 


1673 1695 

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

1675 1697 

1676該命令會單獨保留 `shell-snapshots/` 和 `backups/`,因為這些不是專案範圍的,並在計畫輸出中警告它們。1698該命令保留 `shell-snapshots/` 和 `backups/` 不動,因為那些不是專案範圍的,並在計畫輸出中警告它們。

1677 1699 

1678您也可以手動刪除上述任何應用程式資料路徑,除了 [state files to keep](#state-files-to-keep)。新工作階段不受影響。下表顯示您對過去工作階段失去的內容。1700你也可以手動刪除上述任何應用程式資料路徑,除了 [保留的狀態檔案](#state-files-to-keep)。新工作階段不受影響。下表顯示你對過去工作階段失去的內容。

1679 1701 

1680| 刪除 | 您失去 |1702| 刪除 | 你失去 |

1681| - | - |1703| - | - |

1682| `~/.claude/projects/` | 過去工作階段的繼續、繼續和倒帶,以及每個專案的自動記憶 |1704| `~/.claude/projects/` | 恢復、繼續和倒帶過去工作階段,以及每個專案的自動記憶 |

1683| `~/.claude/history.jsonl` | 向上箭頭提示回憶、`Ctrl+R` 歷史搜尋和 `!` shell 命令完成 |1705| `~/.claude/history.jsonl` | 向上箭頭提示回憶、`Ctrl+R` 歷史搜尋和 `!` shell 命令完成 |

1684| `~/.claude/paste-cache/` | 回憶提示中的貼上文字;請參閱 [paste large content](/docs/zh-TW/terminal-config#paste-large-content) |1706| `~/.claude/paste-cache/` | 回憶提示中的貼上文字;請參閱 [貼上大型內容](/docs/zh-TW/terminal-config#paste-large-content) |

1685| `~/.claude/uploads/` | 過去 [Remote Control](/docs/zh-TW/remote-control) 工作階段按路徑參考的附件 |1707| `~/.claude/uploads/` | 過去 [遠端控制](/docs/zh-TW/remote-control) 工作階段按路徑引用的附件 |

1686| `~/.claude/file-history/` | 過去工作階段的 checkpoint 復原 |1708| `~/.claude/file-history/` | 過去工作階段的檢查點還原 |

1687| `~/.claude/stats-cache.json` | `/usage` 顯示的歷史總計 |1709| `~/.claude/stats-cache.json` | 由 `/usage` 顯示的歷史總計 |

1688| `~/.claude/usage-data/` | 過去的 [`/insights`](/docs/zh-TW/costs#analyze-your-usage-patterns) 報告和用於建立它們的快取分析資料 |1710| `~/.claude/usage-data/` | 過去的 [`/insights`](/docs/zh-TW/costs#analyze-your-usage-patterns) 報告和用於建立它們的快取分析資料 |

1689| `~/.claude/feedback-bundles/` | 您尚未發送到 Anthropic 帳戶團隊的回饋和錯誤報告存檔 |1711| `~/.claude/feedback-bundles/` | 你還未發送到你的 Anthropic 帳戶團隊的回饋和錯誤報告存檔 |

1690| `~/.claude/feedback/drafts/` | 您尚未發送的 [Claude 起草的回饋](/docs/zh-TW/tools-reference#sendfeedback-tool-behavior) |1712| `~/.claude/feedback/drafts/` | 你未發送的 [Claude 起草的回饋](/docs/zh-TW/tools-reference#sendfeedback-tool-behavior) |

1691| `~/.claude/remote-settings.json` | 無。在下次啟動時重新擷取。 |1713| `~/.claude/remote-settings.json` | 無。在下次啟動時重新擷取。 |

1692| `~/.claude/cache/changelog.md` | 無。在背景中重新整理。 |1714| `~/.claude/cache/changelog.md` | 無。在背景中重新整理。 |

1693| `~/.claude/policy-limits.json` | 無。自動重新整理。 |1715| `~/.claude/policy-limits.json` | 無。自動重新整理。 |

1694| `~/.claude/tasks/` | 繼續的工作階段會拾取的任務清單 |1716| `~/.claude/tasks/` | 恢復的工作階段會拾取的任務清單 |

1695| `~/.claude/skills/.trash/`、`~/.claude/plugins/.trash/` | 復原 Claude Code 移除的 [synced skills](/docs/zh-TW/skills#how-synced-skills-behave) 和 [synced plugins](/docs/zh-TW/plugins/loading#synced-plugins) 的機會 |1717| `~/.claude/skills/.trash/`、`~/.claude/plugins/.trash/` | 恢復 [同步技能](/docs/zh-TW/skills#how-synced-skills-behave) 和 [同步外掛程式](/docs/zh-TW/plugins/loading#synced-plugins) 的機會,Claude Code 已移除 |

1696| `~/.claude/debug/`、`~/.claude/plans/`、`~/.claude/session-env/`、`~/.claude/shell-snapshots/`、`~/.claude/backups/` | 無使用者面向的內容 |1718| `~/.claude/debug/`、`~/.claude/plans/`、`~/.claude/session-env/`、`~/.claude/shell-snapshots/`、`~/.claude/backups/` | 無使用者面向的內容 |

1697| `~/.claude/todos/`、`~/.claude/statsig/`、`~/.claude/logs/`、`~/.claude/image-cache/` | 無。舊版本的舊版目錄,不由目前版本寫入。 |1719| `~/.claude/todos/`、`~/.claude/statsig/`、`~/.claude/logs/`、`~/.claude/image-cache/` | 無。舊版本的舊版目錄,不由目前版本寫入。 |

1698 1720 

1699不要刪除 `~/.claude.json`、`~/.claude/settings.json` 或 `~/.claude/plugins/`:這些保存您的驗證、偏好設定和已安裝的 plugins。1721不要刪除 `~/.claude.json`、`~/.claude/settings.json` 或 `~/.claude/plugins/`:那些保存你的驗證、偏好設定和已安裝的外掛程式。

1700 1722 

1701<h2 id="related-resources">1723<h2 id="related-resources">

1702 相關資源1724 相關資源

Details

12 12 

13專案是一個進行中的對話,Claude 在其中為您協調一系列相關工作。您告訴它需要做什麼,它會為每個任務啟動一個執行緒。13專案是一個進行中的對話,Claude 在其中為您協調一系列相關工作。您告訴它需要做什麼,它會為每個任務啟動一個執行緒。

14 14 

15每個執行緒通常是一個 [雲端工作階段](/docs/zh-TW/claude-code-on-the-web):Claude Code 在雲端而不是在您的機器上執行。當任務需要只有您的電腦才有的東西時,您可以要求 Claude 改為透過 [Remote Control](/docs/zh-TW/remote-control) 在您的電腦上執行該執行緒。執行緒平行執行,您可以從您的手機檢查它們並引導它們。雲端執行緒在您關閉筆記型電腦後會繼續進行。15每個執行緒通常是一個 [雲端工作階段](/docs/zh-TW/claude-code-on-the-web):Claude Code 在雲端而不是在您的機器上執行。當任務需要只有您的電腦才有的東西時,您可以要求 Claude 改為透過 [Remote Control](/docs/zh-TW/remote-control) 在您的電腦上 [執行該執行緒](#run-a-thread-on-your-own-computer)。執行緒平行執行,您可以從您的手機檢查它們並引導它們。雲端執行緒在您關閉筆記型電腦後會繼續進行,而您電腦上的執行緒只在該電腦保持開啟時執行。

16 16 

17沒有專案的情況下,執行多個工作階段意味著自己進行協調:您決定每個工作階段要處理什麼,在每個工作階段的開始重複相同的背景資訊,並檢查哪個已完成或需要答案。使用專案,您可以改為:17沒有專案的情況下,執行多個工作階段意味著自己進行協調:您決定每個工作階段要處理什麼,在每個工作階段的開始重複相同的背景資訊,並檢查哪個已完成或需要答案。使用專案,您可以改為:

18 18 


39 何時其他方式更合適39 何時其他方式更合適

40</h3>40</h3>

41 41 

42Cloud threads 在 GitHub 儲存庫以及您上傳到 project 的檔案、資料夾和 Google Drive 資料夾上工作,而不是在僅存在於您機器上的檔案或工具上。如果任務需要您的機器,請透過 [Remote Control](/docs/zh-TW/remote-control) 要求 Claude 在那裡執行其執行緒。[Limitations](#limitations) 列出了這需要什麼。在這些情況下,其他方式更合適:42當只有某些任務需要您的機器時,project 仍然適合。Cloud threads 在 GitHub 儲存庫以及您上傳到 project 的檔案、資料夾和 Google Drive 資料夾上工作,而對於偶爾需要本地資料庫或您電腦上工具的任務,您可以要求 Claude [在您自己的電腦上執行該任務的執行緒](#run-a-thread-on-your-own-computer)。在這些情況下,project 以外的方式更合適:

43 43 

44* **一個適合工作階段的任務**:"修復不穩定的登入測試。" 自己啟動 [雲端工作階段](/docs/zh-TW/claude-code-on-the-web)。44* **一個適合工作階段的任務**:"修復不穩定的登入測試。" 自己啟動 [雲端工作階段](/docs/zh-TW/claude-code-on-the-web)。

45* **每個任務都需要您的機器的工作**:本地資料庫、設備模擬器或您 VPN 後面的 API。使用本地工作階段,或 [agent view](/docs/zh-TW/agent-view) 同時執行多個。如果工作只需要本地檔案,請改為將它們上傳到 project。45* **每個任務都需要您的機器的工作**:本地資料庫、設備模擬器或您 VPN 後面的 API。使用本地工作階段,或 [agent view](/docs/zh-TW/agent-view) 同時執行多個。如果工作只需要本地檔案,請改為將它們上傳到 project。


277 277 

278每個批准涵蓋該提示,或如果您選擇更廣泛的選項,則涵蓋該執行緒的其餘部分。要讓每個執行緒執行某些命令而不詢問,或阻止某些,請將 [permission rules](/docs/zh-TW/permissions) 添加到儲存庫的 `.claude/settings.json`。執行緒僅在有一個儲存庫的 project 中應用它們;請參閱 [執行緒從您的儲存庫中選擇什麼](#what-threads-pick-up-from-your-repositories)。278每個批准涵蓋該提示,或如果您選擇更廣泛的選項,則涵蓋該執行緒的其餘部分。要讓每個執行緒執行某些命令而不詢問,或阻止某些,請將 [permission rules](/docs/zh-TW/permissions) 添加到儲存庫的 `.claude/settings.json`。執行緒僅在有一個儲存庫的 project 中應用它們;請參閱 [執行緒從您的儲存庫中選擇什麼](#what-threads-pick-up-from-your-repositories)。

279 279 

280<h3 id="run-a-thread-on-your-own-computer">

281 在您自己的電腦上執行執行緒

282</h3>

283 

284當任務需要只有您的電腦才有的東西,例如本地資料庫、設備模擬器或您 VPN 後面的 API 時,要求 Claude 在您的電腦上而不是在雲端執行該任務的執行緒。當您在 project 對話中要求時,執行緒是您機器上資料夾中的 Claude Code 工作階段,通過 [Remote Control](/docs/zh-TW/remote-control) 連接。project 的其他執行緒繼續在雲端執行。與雲端執行緒相比,您電腦上的執行緒:

285 

286* 與該機器上的檔案、工具、MCP 伺服器和 Claude Code 設定一起工作,而不是 project 的雲端環境

287* 從 project 的指示開始,但不加載其記憶檔案

288* 僅在該電腦清醒且 Remote Control 打開時執行

289 

290<Steps>

291 <Step title="連接資料夾">

292 在有 project 需要的資料夾的電腦上,通過以下兩種方式之一通過 Remote Control 使其可用。兩者都需要該電腦上的 Claude Code v2.1.280 或更高版本。

293 

294 * **在 Claude 桌面應用程式中**:打開 **Settings > Claude Code**,打開 **Use this computer from your phone and claude.ai**,並將資料夾添加到該開關下的清單。當應用程式打開時,執行緒可以在此電腦上執行。

295 * **在終端中**:在資料夾中執行 `claude remote-control` 並讓它執行。

296 </Step>

297 

298 <Step title="使用 Work locally 要求任務">

299 在 project 對話中,從訊息框旁邊的 **+** 功能表中選擇 **Work locally**,它標記您的訊息 **Local**,並寫下您想要完成的內容。在訊息中說任務應該在您的電腦上執行也可以。

300 </Step>

301 

302 <Step title="在卡片上允許它">

303 Claude 回答一個 **Allow Claude to work in a folder on your device** 卡片。如果您連接了多個,請選擇資料夾。然後點擊 **Allow once**。

304 </Step>

305</Steps>

306 

307執行緒在 [auto mode](/docs/zh-TW/permission-modes#eliminate-prompts-with-auto-mode) 中執行,因此 Claude 在該資料夾中執行命令和編輯檔案而不每次都詢問您。如果 auto mode 在該電腦的 Claude Code 中不可用或關閉,執行緒執行而不使用它,並且它引發的任何權限提示等待您在執行緒中的回答,如 [解除等待批准的執行緒](#unblock-a-thread-waiting-on-approval) 所述。

308 

309當執行緒執行時,其標題中的筆記本電腦圖示顯示您的電腦是否已連接。點擊它以查看執行緒使用的資料夾或關閉連接。當該電腦睡眠時執行緒暫停,如果桌面應用程式或 `claude remote-control` 退出則停止。[失去與您資料夾的聯繫](#lost-contact-with-your-folder) 涵蓋了讓它再次執行。在桌面應用程式中,在 **Settings > Claude Code** 下打開 **Keep this computer awake for Remote Control** 以防止電腦自動睡眠。

310 

311當 [**Require trusted devices**](/docs/zh-TW/remote-control#trusted-devices) 對您的帳戶打開時,project 無法在您的電腦上執行執行緒。

312 

280<h2 id="give-a-project-standing-context">313<h2 id="give-a-project-standing-context">

281 為專案提供常設背景314 為專案提供常設背景

282</h2>315</h2>


441* **Claude Tag**:[Claude Tag](https://claude.com/docs/claude-tag/overview) 是您團隊 Slack 頻道中的 Claude,在 Team 和 Enterprise 方案上。頻道中的任何人都可以給它工作,頻道中的每個人都看到並引導它,它使用管理員為該頻道設定的連接。project 是您的:您是唯一給它工作或看到其執行緒的人,它使用您自己的 GitHub 存取和 connectors,它在 Pro 和 Max 上。[Claude Tag 與 Cowork 和 Claude Code 的不同之處](https://claude.com/docs/claude-tag/concepts/how-it-works#how-claude-tag-differs-from-cowork-and-claude-code) 有並排比較。474* **Claude Tag**:[Claude Tag](https://claude.com/docs/claude-tag/overview) 是您團隊 Slack 頻道中的 Claude,在 Team 和 Enterprise 方案上。頻道中的任何人都可以給它工作,頻道中的每個人都看到並引導它,它使用管理員為該頻道設定的連接。project 是您的:您是唯一給它工作或看到其執行緒的人,它使用您自己的 GitHub 存取和 connectors,它在 Pro 和 Max 上。[Claude Tag 與 Cowork 和 Claude Code 的不同之處](https://claude.com/docs/claude-tag/concepts/how-it-works#how-claude-tag-differs-from-cowork-and-claude-code) 有並排比較。

442* **雲端工作階段**:每個執行緒是一個 [雲端工作階段](/docs/zh-TW/claude-code-on-the-web),除非您要求 Claude 在您的機器上執行它。無論哪種方式,Claude 啟動並跟蹤它而不是您。您自己啟動的雲端工作階段可以通過 [**Continue as a project** 或 **Move to project**](#start-from-an-existing-cloud-session) 成為 project 或提供一個。475* **雲端工作階段**:每個執行緒是一個 [雲端工作階段](/docs/zh-TW/claude-code-on-the-web),除非您要求 Claude 在您的機器上執行它。無論哪種方式,Claude 啟動並跟蹤它而不是您。您自己啟動的雲端工作階段可以通過 [**Continue as a project** 或 **Move to project**](#start-from-an-existing-cloud-session) 成為 project 或提供一個。

443* **Routines**:當您在 project 中要求排程工作時,Claude 建立一個 [routine](/docs/zh-TW/routines),在該 project 中作為執行緒執行,並出現在其 **Routines** 標籤上。您在 project 外建立的 Routines 保持自己工作。476* **Routines**:當您在 project 中要求排程工作時,Claude 建立一個 [routine](/docs/zh-TW/routines),在該 project 中作為執行緒執行,並出現在其 **Routines** 標籤上。您在 project 外建立的 Routines 保持自己工作。

444* **本地工作階段和代理檢視**:您在終端、IDE 或桌面應用程式的本地環境中啟動的工作階段無法新增到 project。project 只能通過執行執行緒在您的機器上透過 [Remote Control](/docs/zh-TW/remote-control) 到達您的機器。[代理檢視](/docs/zh-TW/agent-view) 是用於跟蹤您自己啟動的多個本地工作階段的螢幕;它沒有協調者。477* **Remote Control**:[Remote Control](/docs/zh-TW/remote-control) 連接 claude.ai 到在您機器上執行的 Claude Code 工作階段。當您在 project 中要求 Claude 在您的電腦上執行執行緒時,project [使用 Remote Control 來執行它](#run-a-thread-on-your-own-computer)。

478* **本地工作階段和代理檢視**:您在終端、IDE 或桌面應用程式的本地環境中啟動的工作階段無法新增到 project。[代理檢視](/docs/zh-TW/agent-view) 是用於並排追蹤多個本地工作階段的螢幕,您仍然自己啟動每個工作階段並給它其任務。

445* **Worktrees**:[worktree](/docs/zh-TW/worktrees) 給每個本地工作階段其自己的儲存庫工作副本,因此您機器上的平行工作階段不會相互覆蓋。雲端執行緒不需要它們:每個執行緒將其儲存庫克隆到其自己的雲端沙箱中,並在自己的分支上工作。479* **Worktrees**:[worktree](/docs/zh-TW/worktrees) 給每個本地工作階段其自己的儲存庫工作副本,因此您機器上的平行工作階段不會相互覆蓋。雲端執行緒不需要它們:每個執行緒將其儲存庫克隆到其自己的雲端沙箱中,並在自己的分支上工作。

446* **代理團隊**:[代理團隊](/docs/zh-TW/agent-teams) 是一個工作階段,為單個任務啟動隊友工作階段,在您的機器上或在雲端工作階段內,並以該任務結束。480* **代理團隊**:[代理團隊](/docs/zh-TW/agent-teams) 是一個工作階段,為單個任務啟動隊友工作階段,在您的機器上或在雲端工作階段內,並以該任務結束。

447* **claude.ai 聊天和 Cowork 中的 Projects**:[早期 Projects 體驗](https://support.claude.com/en/articles/9517075-what-are-projects),它對話和參考檔案進行分組,沒有執行緒或協調者。那些 projects 保持今天的工作方式,直到重新設計的體驗到達它們。481* **claude.ai 聊天和 Cowork 中的 Projects**:[早期 Projects 體驗](https://support.claude.com/en/articles/9517075-what-are-projects),它對話和參考檔案進行分組,沒有執行緒或協調者。那些 projects 保持今天的工作方式,直到重新設計的體驗到達它們。


454 488 

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

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

457* 您無法將自己在機器上啟動的工作階段新增到 project。若要讓 project 在您的機器上執行執行緒,請通過 [Remote Control](/docs/zh-TW/remote-control#requirements) 連線它應該在其中工作的資料夾:在 Claude 桌面應用程式的 **Settings > Claude Code** 下開啟 Remote Control,或在資料夾中執行 `claude remote-control` 並讓它保持執行。該機器需要 Claude Code v2.1.280 或更新版本。當您的 claude.ai 設定中的 **Require trusted devices** 開啟時,project 也無法在您的機器上執行執行緒。491* 您無法將自己在機器上啟動的工作階段新增到 project。Project 只能通過 [Remote Control 在您的機器上執行執行緒](#run-a-thread-on-your-own-computer)到達您的機器,該部分列出了它需要的內容。

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

459* project 屬於一個使用者。您無法與另一個使用者共享 project 或其執行緒,執行緒記錄沒有其他雲端工作階段具有的共享選項。在測試版期間,projects 沒有組織級控制。493* project 屬於一個使用者。您無法與另一個使用者共享 project 或其執行緒,執行緒記錄沒有其他雲端工作階段具有的共享選項。在測試版期間,projects 沒有組織級控制。

460* 執行緒屬於啟動它的一個 project。您無法將執行緒移動或複製到另一個 project,或將其移出以獨立存在。[**Move to project**](#start-from-an-existing-cloud-session) 僅以另一種方式進行:它將雲端工作階段的工作帶入 project。494* 執行緒屬於啟動它的一個 project。您無法將執行緒移動或複製到另一個 project,或將其移出以獨立存在。[**Move to project**](#start-from-an-existing-cloud-session) 僅以另一種方式進行:它將雲端工作階段的工作帶入 project。


513 547 

514執行緒或 project 對話發出了您的方案僅使用使用信用涵蓋的請求,例如對您的方案不包括的模型或上下文大小的請求,並且使用信用未為您的帳戶打開。[將使用信用添加到您的訂閱](/docs/zh-TW/costs#add-usage-credits-to-your-subscription) 涵蓋了誰可以在每個方案上打開或購買它們。一旦信用可用,發送另一條訊息重試。548執行緒或 project 對話發出了您的方案僅使用使用信用涵蓋的請求,例如對您的方案不包括的模型或上下文大小的請求,並且使用信用未為您的帳戶打開。[將使用信用添加到您的訂閱](/docs/zh-TW/costs#add-usage-credits-to-your-subscription) 涵蓋了誰可以在每個方案上打開或購買它們。一旦信用可用,發送另一條訊息重試。

515 549 

550<h3 id="lost-contact-with-your-folder">

551 與您的資料夾失去聯繫

552</h3>

553 

554在您的電腦上執行的執行緒在 Claude Code 工作階段停止回應時顯示此訊息,通常是因為電腦進入睡眠狀態或桌面應用程式或 `claude remote-control` 退出。喚醒電腦,如果桌面應用程式或 `claude remote-control` 不再在那裡執行,請重新啟動它:重新打開應用程式並確認 **Settings > Claude Code** 下的 **Use this computer from your phone and claude.ai** 仍然開啟,或在同一資料夾中再次執行 `claude remote-control`。

555 

516<h3 id="context-limit">556<h3 id="context-limit">

517 其他訊息557 其他訊息

518</h3>558</h3>


527| 「The project's environment was removed」 | 在 **Project settings > Environment** 中選擇不同的環境;更改適用於新執行緒 |567| 「The project's environment was removed」 | 在 **Project settings > Environment** 中選擇不同的環境;更改適用於新執行緒 |

528| 「Setup script failed」 | 點擊錯誤上的 **Edit setup script**,在環境中修復指令碼,然後發送另一條訊息。[設定指令碼失敗](/docs/zh-TW/web-quickstart#setup-script-failed) 列出常見原因 |568| 「Setup script failed」 | 點擊錯誤上的 **Edit setup script**,在環境中修復指令碼,然後發送另一條訊息。[設定指令碼失敗](/docs/zh-TW/web-quickstart#setup-script-failed) 列出常見原因 |

529| 「Claude ran out of context on this turn」 | 執行緒填滿了其上下文視窗。如果訊息說執行緒在新工作階段中繼續,它自己進行;否則在 project 對話中要求 Claude 為剩餘工作啟動新執行緒 |569| 「Claude ran out of context on this turn」 | 執行緒填滿了其上下文視窗。如果訊息說執行緒在新工作階段中繼續,它自己進行;否則在 project 對話中要求 Claude 為剩餘工作啟動新執行緒 |

570| 「Couldn't start in」後面跟著您的資料夾名稱 | 您允許執行緒在您的電腦上執行,但工作階段無法在那裡啟動。當訊息下的一行給出原因時,修復它,然後要求 Claude 再次執行任務 |

571| 「Claude is out of date on your device」 | 您選擇執行執行緒的電腦具有比 v2.1.280 更舊的 Claude Code 版本。在那裡更新 Claude Code,或如果那是連接資料夾的內容,請更新桌面應用程式,然後要求 Claude 再次執行任務 |

530| 「Reached the turn limit」 | 執行緒達到了 [`CLAUDE_CODE_MAX_TURNS`](/docs/zh-TW/env-vars) 設定的代理轉換上限。發送另一條訊息繼續,或在設定它的地方提高或移除該變數 |572| 「Reached the turn limit」 | 執行緒達到了 [`CLAUDE_CODE_MAX_TURNS`](/docs/zh-TW/env-vars) 設定的代理轉換上限。發送另一條訊息繼續,或在設定它的地方提高或移除該變數 |

531 573 

532<h2 id="related-resources">574<h2 id="related-resources">

Details

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 退出 | `claude auth status` |29| `claude auth status` | 以 JSON 格式顯示驗證狀態。使用 `--text` 以人類可讀的格式輸出。如果已登入則以代碼 0 退出,如果未登入則以代碼 1 退出。JSON 包含一個 `configDirectory` 欄位,命名 CLI 使用的 [設定目錄](/docs/zh-TW/claude-directory)。該欄位需要 Claude Code v2.1.268 或更新版本 | `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` | 開啟 [代理程式檢視](/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` |

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'` |


64| `--add-dir` | 新增額外的工作目錄供 Claude 讀取和編輯檔案。授予檔案存取權限;Claude Code [不會探索](/docs/zh-TW/permissions#additional-directories-grant-file-access-not-configuration)這些目錄中的大多數 `.claude/` 設定。驗證每個路徑都存在為目錄。您無法新增大多數[網路路徑](/docs/zh-TW/errors#working-directory-is-a-network-path),例如 `\\server\share`。若要在工作階段之間保留這些目錄,請在設定中設定 [`permissions.additionalDirectories`](/docs/zh-TW/settings-reference#permissions-additionaldirectories) | `claude --add-dir ../apps ../lib` |64| `--add-dir` | 新增額外的工作目錄供 Claude 讀取和編輯檔案。授予檔案存取權限;Claude Code [不會探索](/docs/zh-TW/permissions#additional-directories-grant-file-access-not-configuration)這些目錄中的大多數 `.claude/` 設定。驗證每個路徑都存在為目錄。您無法新增大多數[網路路徑](/docs/zh-TW/errors#working-directory-is-a-network-path),例如 `\\server\share`。若要在工作階段之間保留這些目錄,請在設定中設定 [`permissions.additionalDirectories`](/docs/zh-TW/settings-reference#permissions-additionaldirectories) | `claude --add-dir ../apps ../lib` |

65| `--advisor <model>` | 使用模型別名 `fable`、`opus` 或 `sonnet`,或完整模型 ID,為此工作階段啟用伺服器端[顧問工具](/docs/zh-TW/advisor)。優先於工作階段的 `advisorModel` 設定。`fable` 需要 [Fable 存取權](/docs/zh-TW/advisor#choose-an-advisor-model) | `claude --advisor opus` |65| `--advisor <model>` | 使用模型別名 `fable`、`opus` 或 `sonnet`,或完整模型 ID,為此工作階段啟用伺服器端[顧問工具](/docs/zh-TW/advisor)。優先於工作階段的 `advisorModel` 設定。`fable` 需要 [Fable 存取權](/docs/zh-TW/advisor#choose-an-advisor-model) | `claude --advisor opus` |

66| `--agent` | 為目前工作階段指定代理程式(覆蓋 `agent` 設定) | `claude --agent my-custom-agent` |66| `--agent` | 為目前工作階段指定代理程式(覆蓋 `agent` 設定) | `claude --agent my-custom-agent` |

67| `--agents` | 透過 JSON 動態定義自訂子代理程式。接受 [CLI 定義的子代理程式列出的欄位](/docs/zh-TW/sub-agents#choose-the-subagent-scope)。Claude Code 在啟動時驗證 JSON 並在無效值時結束;請參閱 [`Invalid --agents configuration`](/docs/zh-TW/errors#invalid-agents-configuration) 以取得訊息以及跳過驗證的旗標和環境變數。驗證需要 Claude Code v2.1.242 或更新版本 | `claude --agents '{"reviewer":{"description":"Reviews code","prompt":"You are a code reviewer"}}'` |67| `--agents` | 透過 JSON 動態定義自訂子代理程式。接受 [CLI 定義的子代理程式列出的欄位](/docs/zh-TW/sub-agents#choose-the-subagent-scope)。使用 `--print`,值可以改為是保存物件的 JSON 檔案的路徑;檔案形式需要 Claude Code v2.1.281 或更新版本。Claude Code 在啟動時驗證值並在無效值時結束;請參閱 [`Invalid --agents configuration`](/docs/zh-TW/errors#invalid-agents-configuration) 以取得訊息以及跳過驗證的旗標和環境變數。驗證需要 Claude Code v2.1.242 或更新版本 | `claude --agents '{"reviewer":{"description":"Reviews code","prompt":"You are a code reviewer"}}'` |

68| `--allow-dangerously-skip-permissions` | 將 `bypassPermissions` 新增至 `Shift+Tab` 模式循環而不以它開始。讓您以不同的模式(例如 `plan`)開始,稍後切換至 `bypassPermissions`。請參閱[權限模式](/docs/zh-TW/permission-modes#skip-all-checks-with-bypasspermissions-mode) | `claude --permission-mode plan --allow-dangerously-skip-permissions` |68| `--allow-dangerously-skip-permissions` | 將 `bypassPermissions` 新增至 `Shift+Tab` 模式循環而不以它開始。讓您以不同的模式(例如 `plan`)開始,稍後切換至 `bypassPermissions`。請參閱[權限模式](/docs/zh-TW/permission-modes#skip-all-checks-with-bypasspermissions-mode) | `claude --permission-mode plan --allow-dangerously-skip-permissions` |

69| `--allowedTools`, `--allowed-tools` | 無需提示權限即可執行的工具。請參閱[權限規則語法](/docs/zh-TW/settings-reference#permission-rule-syntax)以進行模式比對。若要限制可用的工具,請改用 `--tools`。如果您在此命名[任務追蹤工具](/docs/zh-TW/tools-reference#task-tool-availability)之一,Claude Code 也會選擇加入工作階段 | `"Bash(git log *)" "Bash(git diff *)" "Read"` |69| `--allowedTools`, `--allowed-tools` | 無需提示權限即可執行的工具。請參閱[權限規則語法](/docs/zh-TW/settings-reference#permission-rule-syntax)以進行模式比對。若要限制可用的工具,請改用 `--tools`。如果您在此命名[任務追蹤工具](/docs/zh-TW/tools-reference#task-tool-availability)之一,Claude Code 也會選擇加入工作階段 | `"Bash(git log *)" "Bash(git diff *)" "Read"` |

70| `--append-subagent-system-prompt` | 將自訂文字附加到每個[子代理程式](/docs/zh-TW/sub-agents)的系統提示末尾,包括巢狀子代理程式,除了[分叉的子代理程式](/docs/zh-TW/sub-agents#fork-the-current-conversation),它會重複使用對話自己的提示。僅在非互動模式下使用 `-p` 時適用。需要 Claude Code v2.1.205 或更新版本 | `claude -p --append-subagent-system-prompt "Cite file paths in every answer" "query"` |70| `--append-subagent-system-prompt` | 將自訂文字附加到每個[子代理程式](/docs/zh-TW/sub-agents)的系統提示末尾,包括巢狀子代理程式,除了[分叉的子代理程式](/docs/zh-TW/sub-agents#fork-the-current-conversation),它會重複使用對話自己的提示。僅在非互動模式下使用 `-p` 時適用。需要 Claude Code v2.1.205 或更新版本 | `claude -p --append-subagent-system-prompt "Cite file paths in every answer" "query"` |


75| `--ax-screen-reader` | 呈現螢幕閱讀器友善的輸出:沒有裝飾邊框或動畫的平面文字。強制使用經典轉譯器,因此 [`tui`](/docs/zh-TW/settings-reference#tui) 設定無效;附加的[背景工作階段](/docs/zh-TW/agent-view)仍會全螢幕呈現。優先於 [`CLAUDE_AX_SCREEN_READER`](/docs/zh-TW/env-vars) 和 [`axScreenReader`](/docs/zh-TW/settings-reference#axscreenreader) 設定。需要 Claude Code v2.1.181 或更新版本 | `claude --ax-screen-reader` |75| `--ax-screen-reader` | 呈現螢幕閱讀器友善的輸出:沒有裝飾邊框或動畫的平面文字。強制使用經典轉譯器,因此 [`tui`](/docs/zh-TW/settings-reference#tui) 設定無效;附加的[背景工作階段](/docs/zh-TW/agent-view)仍會全螢幕呈現。優先於 [`CLAUDE_AX_SCREEN_READER`](/docs/zh-TW/env-vars) 和 [`axScreenReader`](/docs/zh-TW/settings-reference#axscreenreader) 設定。需要 Claude Code v2.1.181 或更新版本 | `claude --ax-screen-reader` |

76| `--bare` | 最小模式:跳過 hooks、skills、自訂命令、子代理程式、已安裝的 plugins、MCP 伺服器、自動記憶和 CLAUDE.md 的自動探索,以便指令碼呼叫啟動更快。您使用 `--add-dir` 傳遞的目錄中的 Skills 仍會載入。Claude 可以存取 Bash、檔案讀取和檔案編輯工具。設定 [`CLAUDE_CODE_SIMPLE`](/docs/zh-TW/env-vars)。請參閱[裸模式](/docs/zh-TW/headless#start-faster-with-bare-mode) | `claude --bare -p "query"` |76| `--bare` | 最小模式:跳過 hooks、skills、自訂命令、子代理程式、已安裝的 plugins、MCP 伺服器、自動記憶和 CLAUDE.md 的自動探索,以便指令碼呼叫啟動更快。您使用 `--add-dir` 傳遞的目錄中的 Skills 仍會載入。Claude 可以存取 Bash、檔案讀取和檔案編輯工具。設定 [`CLAUDE_CODE_SIMPLE`](/docs/zh-TW/env-vars)。請參閱[裸模式](/docs/zh-TW/headless#start-faster-with-bare-mode) | `claude --bare -p "query"` |

77| `--betas` | 要包含在 API 請求中的 Beta 標頭(僅限 API 金鑰使用者) | `claude --betas interleaved-thinking` |77| `--betas` | 要包含在 API 請求中的 Beta 標頭(僅限 API 金鑰使用者) | `claude --betas interleaved-thinking` |

78| `--bg`, `--background` | 將工作階段啟動為[背景代理程式](/docs/zh-TW/agent-view)並立即返回。列印工作階段 ID 和管理命令。與 `--exec` 結合以執行 shell 命令作為背景工作而不是 Claude 工作階段,或與 `--agent` 結合以執行特定的子代理程式。無法與 `-p`/`--print` 結合;請參閱[錯誤參考](/docs/zh-TW/errors#command-line-errors) | `claude --bg "investigate the flaky test"` |78| `--bg`, `--background` | 將工作階段啟動為[背景代理程式](/docs/zh-TW/agent-view)並立即返回。列印工作階段 ID 和管理命令。與 `--exec` 結合以執行 shell 命令作為背景工作而不是 Claude 工作階段,或與 `--agent` 結合以執行特定的子代理程式。檢查目錄的[工作區信任](/docs/zh-TW/permissions#project-allow-rules-and-workspace-trust)後再啟動。無法與 `-p`/`--print` 結合;請參閱[錯誤參考](/docs/zh-TW/errors#command-line-errors) | `claude --bg "investigate the flaky test"` |

79| `--channels` | (研究預覽)Claude 應在此工作階段中監聽其[頻道](/docs/zh-TW/channels)通知的 MCP 伺服器。以空格分隔的 `plugin:<name>@<marketplace>` 項目清單。需要透過 claude.ai 或 Console API 金鑰進行 Anthropic 驗證 | `claude --channels plugin:my-notifier@my-marketplace` |79| `--channels` | (研究預覽)Claude 應在此工作階段中監聽其[頻道](/docs/zh-TW/channels)通知的 MCP 伺服器。以空格分隔的 `plugin:<name>@<marketplace>` 項目清單。需要透過 claude.ai 或 Console API 金鑰進行 Anthropic 驗證 | `claude --channels plugin:my-notifier@my-marketplace` |

80| `--chrome` | 為網路自動化和測試啟用 [Chrome 瀏覽器整合](/docs/zh-TW/chrome) | `claude --chrome` |80| `--chrome` | 為網路自動化和測試啟用 [Chrome 瀏覽器整合](/docs/zh-TW/chrome) | `claude --chrome` |

81| `--cloud` | 使用任務說明,建立新的[雲端工作階段](/docs/zh-TW/claude-code-on-the-web)。使用工作階段 ID(`session_...` 或 `cse_...`)或 claude.ai/code URL,改為使用 `-p` 將訊息排入該現有工作階段。請參閱[傳送後續訊息](/docs/zh-TW/claude-code-on-the-web#send-follow-ups-from-the-cli)。 | `claude --cloud "Fix the login bug"` |81| `--cloud` | 使用任務說明,建立新的[雲端工作階段](/docs/zh-TW/claude-code-on-the-web)。使用工作階段 ID(`session_...` 或 `cse_...`)或 claude.ai/code URL,改為使用 `-p` 將訊息排入該現有工作階段。請參閱[傳送後續訊息](/docs/zh-TW/claude-code-on-the-web#send-follow-ups-from-the-cli)。 | `claude --cloud "Fix the login bug"` |


89| `--effort` | 為目前工作階段設定[努力等級](/docs/zh-TW/model-config#adjust-effort-level)。選項:`low`、`medium`、`high`、`xhigh`、`max` 或 `ultracode`。可用的等級取決於模型。`ultracode` 要求 `xhigh` 努力並[啟用 ultracode](/docs/zh-TW/workflows#let-claude-decide-with-ultracode),需要 Claude Code v2.1.203 或更新版本。覆蓋此工作階段的 [`modelSettings`](/docs/zh-TW/settings-reference#modelsettings) 和 [`effortLevel`](/docs/zh-TW/settings-reference#effortlevel) 設定,不會保留 | `claude --effort high` |89| `--effort` | 為目前工作階段設定[努力等級](/docs/zh-TW/model-config#adjust-effort-level)。選項:`low`、`medium`、`high`、`xhigh`、`max` 或 `ultracode`。可用的等級取決於模型。`ultracode` 要求 `xhigh` 努力並[啟用 ultracode](/docs/zh-TW/workflows#let-claude-decide-with-ultracode),需要 Claude Code v2.1.203 或更新版本。覆蓋此工作階段的 [`modelSettings`](/docs/zh-TW/settings-reference#modelsettings) 和 [`effortLevel`](/docs/zh-TW/settings-reference#effortlevel) 設定,不會保留 | `claude --effort high` |

90| `--enable-auto-mode` | 在 v2.1.111 中移除。自動模式現在預設在 `Shift+Tab` 循環中;使用 `--permission-mode auto` 以它開始 | `claude --permission-mode auto` |90| `--enable-auto-mode` | 在 v2.1.111 中移除。自動模式現在預設在 `Shift+Tab` 循環中;使用 `--permission-mode auto` 以它開始 | `claude --permission-mode auto` |

91| `--environment <environment-id>` | 建立在[自託管環境](/docs/zh-TW/self-hosted-environments)上執行的新雲端工作階段,具有給定的 ID。環境 ID 以 `ccpool_` 開頭。請參閱 [`--environment` 分派行為](/docs/zh-TW/self-hosted-environments-testing#environment-dispatch-behavior)以了解分派行為和它拒絕的旗標組合。需要 Claude Code v2.1.224 或更新版本 | `claude -p "Fix the login bug" --environment ccpool_abc123` |91| `--environment <environment-id>` | 建立在[自託管環境](/docs/zh-TW/self-hosted-environments)上執行的新雲端工作階段,具有給定的 ID。環境 ID 以 `ccpool_` 開頭。請參閱 [`--environment` 分派行為](/docs/zh-TW/self-hosted-environments-testing#environment-dispatch-behavior)以了解分派行為和它拒絕的旗標組合。需要 Claude Code v2.1.224 或更新版本 | `claude -p "Fix the login bug" --environment ccpool_abc123` |

92| `--exclude-dynamic-system-prompt-sections` | 將每台機器的部分從系統提示(工作目錄、環境資訊、記憶路徑、git-repo 旗標)移至第一個使用者訊息。改善在不同使用者和執行相同任務的機器上的提示快取重複使用。僅適用於預設系統提示;當設定 `--system-prompt` 或 `--system-prompt-file` 時忽略。與 `-p` 搭配使用以進行指令碼化、多使用者工作負載 | `claude -p --exclude-dynamic-system-prompt-sections "query"` |92| `--exclude-dynamic-system-prompt-sections` | 將每使用者內容(例如自動記憶位置)從系統提示移出並放入第一個使用者訊息。改善在不同使用者和執行相同任務的機器上的提示快取重複使用。僅適用於預設系統提示;當設定 `--system-prompt` 或 `--system-prompt-file` 時忽略。與 `-p` 搭配使用以進行指令碼化、多使用者工作負載 | `claude -p --exclude-dynamic-system-prompt-sections "query"` |

93| `--exec` | 執行 shell 命令作為 PTY 支援的背景工作而不是啟動 Claude 工作階段。與 `--bg` 搭配使用以從 shell 啟動 | `claude --bg --exec 'pytest -x'` |93| `--exec` | 執行 shell 命令作為 PTY 支援的背景工作而不是啟動 Claude 工作階段。與 `--bg` 搭配使用以從 shell 啟動 | `claude --bg --exec 'pytest -x'` |

94| `--fallback-model` | 當主要模型過載或無法使用時(例如已淘汰的模型),啟用自動回退到指定的模型。接受按順序嘗試的逗號分隔清單。請參閱[回退模型鏈](/docs/zh-TW/model-config#fallback-model-chains)。若要在工作階段之間保留鏈,請使用 [`fallbackModel` 設定](/docs/zh-TW/settings-reference#fallbackmodel),此旗標會覆蓋它 | `claude --fallback-model sonnet,haiku` |94| `--fallback-model` | 當主要模型過載或無法使用時(例如已淘汰的模型),啟用自動回退到指定的模型。接受按順序嘗試的逗號分隔清單。請參閱[回退模型鏈](/docs/zh-TW/model-config#fallback-model-chains)。若要在工作階段之間保留鏈,請使用 [`fallbackModel` 設定](/docs/zh-TW/settings-reference#fallbackmodel),此旗標會覆蓋它 | `claude --fallback-model sonnet,haiku` |

95| `--fork-session` | 恢復時,建立新的工作階段 ID 而不是重複使用原始 ID(與 `--resume` 或 `--continue` 搭配使用) | `claude --resume abc123 --fork-session` |95| `--fork-session` | 恢復時,建立新的工作階段 ID 而不是重複使用原始 ID(與 `--resume` 或 `--continue` 搭配使用) | `claude --resume abc123 --fork-session` |


127| `--resume`, `-r` | 按 ID 或名稱恢復特定工作階段,或顯示互動選擇器以選擇工作階段。代替 ID,您可以傳遞工作階段 `.jsonl` [文字記錄檔](/docs/zh-TW/sessions#where-transcripts-are-stored)的絕對路徑。選擇器和名稱搜尋包括使用 `/add-dir` 新增此目錄的工作階段。當您傳遞工作階段 ID 時,Claude Code 會搜尋目前專案目錄及其 git worktrees,然後搜尋此機器上的所有其他專案。在 v2.1.223 之前,ID 搜尋僅涵蓋目前專案目錄及其 git worktrees。[背景工作階段](/docs/zh-TW/agent-view)在選擇器中顯示,標記為 `bg` | `claude --resume auth-refactor` |127| `--resume`, `-r` | 按 ID 或名稱恢復特定工作階段,或顯示互動選擇器以選擇工作階段。代替 ID,您可以傳遞工作階段 `.jsonl` [文字記錄檔](/docs/zh-TW/sessions#where-transcripts-are-stored)的絕對路徑。選擇器和名稱搜尋包括使用 `/add-dir` 新增此目錄的工作階段。當您傳遞工作階段 ID 時,Claude Code 會搜尋目前專案目錄及其 git worktrees,然後搜尋此機器上的所有其他專案。在 v2.1.223 之前,ID 搜尋僅涵蓋目前專案目錄及其 git worktrees。[背景工作階段](/docs/zh-TW/agent-view)在選擇器中顯示,標記為 `bg` | `claude --resume auth-refactor` |

128| `--safe-mode` | 以所有自訂停用開始以疑難排解損壞的設定:CLAUDE.md、skills、plugins、hooks、MCP 伺服器、自訂命令和代理程式、輸出樣式、工作流程、自訂主題、自訂快捷鍵、狀態列和檔案建議命令、LSP 伺服器和自動記憶不會載入。驗證、模型選擇、內建工具和權限正常運作,這與 [`--bare`](/docs/zh-TW/headless#start-faster-with-bare-mode) 不同。受管設定原則仍適用,包括原則設定的 hooks、狀態列和檔案建議命令;受管 plugins、受管 skills、受管 CLAUDE.md 和原則設定的 MCP 伺服器不適用。用於檢查自訂是否觸發[自動模型回退](/docs/zh-TW/model-config#automatic-model-fallback)。設定 [`CLAUDE_CODE_SAFE_MODE`](/docs/zh-TW/env-vars) | `claude --safe-mode` |128| `--safe-mode` | 以所有自訂停用開始以疑難排解損壞的設定:CLAUDE.md、skills、plugins、hooks、MCP 伺服器、自訂命令和代理程式、輸出樣式、工作流程、自訂主題、自訂快捷鍵、狀態列和檔案建議命令、LSP 伺服器和自動記憶不會載入。驗證、模型選擇、內建工具和權限正常運作,這與 [`--bare`](/docs/zh-TW/headless#start-faster-with-bare-mode) 不同。受管設定原則仍適用,包括原則設定的 hooks、狀態列和檔案建議命令;受管 plugins、受管 skills、受管 CLAUDE.md 和原則設定的 MCP 伺服器不適用。用於檢查自訂是否觸發[自動模型回退](/docs/zh-TW/model-config#automatic-model-fallback)。設定 [`CLAUDE_CODE_SAFE_MODE`](/docs/zh-TW/env-vars) | `claude --safe-mode` |

129| `--session-id` | 為對話使用特定工作階段 ID(必須是有效的 UUID) | `claude --session-id "550e8400-e29b-41d4-a716-446655440000"` |129| `--session-id` | 為對話使用特定工作階段 ID(必須是有效的 UUID) | `claude --session-id "550e8400-e29b-41d4-a716-446655440000"` |

130| `--setting-sources` | 要載入的設定來源的逗號分隔清單(`user`、`project`、`local`) | `claude --setting-sources user,project` |130| `--setting-sources` | 要載入的設定來源的逗號分隔清單(`user`、`project`、`local`)。請參閱[代理程式檢視](/docs/zh-TW/agent-view#what-carries-over-when-you-background)和[代理程式團隊](/docs/zh-TW/agent-teams#context-and-communication)以了解您從此工作階段啟動的工作階段繼承清單 | `claude --setting-sources user,project` |

131| `--settings` | 設定 JSON 檔案或內嵌 JSON 字串的路徑。您在此設定的值會覆蓋此工作階段的 `settings.json` 檔案中的相同金鑰。您省略的金鑰會保留其檔案型值。檔案必須是不超過 2 MiB 的一般檔案。請參閱[設定優先順序](/docs/zh-TW/settings#settings-precedence) | `claude --settings ./settings.json` |131| `--settings` | 設定 JSON 檔案或內嵌 JSON 字串的路徑。您在此設定的值會覆蓋此工作階段的 `settings.json` 檔案中的相同金鑰。您省略的金鑰會保留其檔案型值。檔案必須是不超過 2 MiB 的一般檔案。請參閱[設定優先順序](/docs/zh-TW/settings#settings-precedence) | `claude --settings ./settings.json` |

132| `--strict-mcp-config` | 僅使用 `--mcp-config` 中的 MCP 伺服器,忽略所有其他 MCP 設定。請參閱[使用 managed-mcp.json 進行獨佔控制](/docs/zh-TW/managed-mcp#exclusive-control-with-managed-mcp-json)以了解旗標在受管 MCP 檔案下執行的操作 | `claude --strict-mcp-config --mcp-config ./mcp.json` |132| `--strict-mcp-config` | 僅使用 `--mcp-config` 中的 MCP 伺服器,忽略所有其他 MCP 設定。請參閱[使用 managed-mcp.json 進行獨佔控制](/docs/zh-TW/managed-mcp#exclusive-control-with-managed-mcp-json)以了解旗標在受管 MCP 檔案下執行的操作 | `claude --strict-mcp-config --mcp-config ./mcp.json` |

133| `--system-prompt` | 使用自訂文字取代整個系統提示 | `claude --system-prompt "You are a Python expert"` |133| `--system-prompt` | 使用自訂文字取代整個系統提示 | `claude --system-prompt "You are a Python expert"` |

Details

281 雲端工作階段中可用的內容281 雲端工作階段中可用的內容

282</h2>282</h2>

283 283 

284在 Anthropic 託管的環境中,每個工作階段都會取得執行 Ubuntu 24.04 的全新虛擬機器 (VM)(x86\_64 架構),無論您自己的作業系統和 CPU 架構為何,您的儲存庫已複製,常見的工具鏈已預先安裝。當相依性提供預先編譯的二進位檔案(例如具有原生擴充功能的 Ruby gems 或預先建置的 Python wheels)時,請使用其 x86\_64 Linux 建置以符合 VM。本節涵蓋 Anthropic 託管的預設值、內建 GitHub 工具、如何 [執行測試和服務](#run-tests-start-services-and-add-packages),以及每個 VM 取得的 [資源限制](#resource-limits)。284在 Anthropic 託管的環境中,每個工作階段都會取得執行 Ubuntu 24.04 的全新虛擬機器 (VM)(x86\_64 架構),無論您自己的作業系統和 CPU 架構為何,您的儲存庫已複製,常見的工具鏈已預先安裝。當相依性提供預先編譯的二進位檔案(例如具有原生擴充功能的 Ruby gems 或預先建置的 Python wheels)時,請使用其 x86\_64 Linux 建置以符合 VM。本節涵蓋 Anthropic 託管的預設值、內建 GitHub 工具、如何 [執行測試和服務](#run-tests-start-services-and-add-packages)、每個 VM 取得的 [資源限制](#resource-limits),以及 [時間限制](#time-limits) 對長時間執行的工作。

285 285 

286<Note>286<Note>

287 您的組織路由到 [自託管環境](/docs/zh-TW/self-hosted-environments) 的工作階段改為在您自己的執行器上執行,搭配您的執行器映像提供的工具。287 您的組織路由到 [自託管環境](/docs/zh-TW/self-hosted-environments) 的工作階段改為在您自己的執行器上執行,搭配您的執行器映像提供的工具。


421 421 

422VM 可能會停止需要明顯更多記憶體的工作,例如大型建置工作或記憶體密集型測試。對於超出這些限制的工作負載,請使用 [Remote Control](/docs/zh-TW/remote-control) 在您自己的硬體上執行 Claude Code,或在 [自託管環境](/docs/zh-TW/self-hosted-environments) 中執行雲端工作階段,在您的組織操作的計算上。422VM 可能會停止需要明顯更多記憶體的工作,例如大型建置工作或記憶體密集型測試。對於超出這些限制的工作負載,請使用 [Remote Control](/docs/zh-TW/remote-control) 在您自己的硬體上執行 Claude Code,或在 [自託管環境](/docs/zh-TW/self-hosted-environments) 中執行雲端工作階段,在您的組織操作的計算上。

423 423 

424<h3 id="time-limits">

425 時間限制

426</h3>

427 

428在 Anthropic 託管環境中,這些時間限制適用於雲端工作階段中的長時間執行工作,例如建置、安裝或測試執行。每個項目連結到定義限制的部分。

429 

430* **Claude 執行的命令**:雲端環境不設定自己的命令逾時,因此 Bash 工具的預設值適用。Claude 預設等待命令 2 分鐘,最多可要求 10 分鐘。當命令達到其 [逾時](/docs/zh-TW/tools-reference#timeout-and-output-limits) 時,Claude Code [將其移到背景](/docs/zh-TW/tools-reference#background-commands),除非命令以 `sleep` 開始。

431* **SessionStart hooks**:Claude Code 在 600 秒後取消 `command` hook,除非您在 hook 項目上設定 [`timeout`](/docs/zh-TW/hooks#common-fields)(以秒為單位)。Claude Code 不會在您使用 [`async: true`](/docs/zh-TW/hooks#run-hooks-in-the-background) 執行的 hook 上強制執行逾時。

432* **設定指令碼**:花費超過大約五分鐘的指令碼不會被快取。[指令碼需求](#script-requirements) 涵蓋如何保持在該時間以下。

433* **閒置工作階段**:工作階段在一段時間不活動後停止,其 VM 被回收。[環境已過期](/docs/zh-TW/claude-code-on-the-web#environment-expired) 涵蓋什麼算作不活動以及如何重新開啟工作階段。

434 

435若要提高環境工作階段的命令逾時,請將 [`BASH_DEFAULT_TIMEOUT_MS` 和 `BASH_MAX_TIMEOUT_MS`](/docs/zh-TW/env-vars#variables) 新增到其 [環境變數](#set-environment-variables)。兩者都採用毫秒。例如,`BASH_DEFAULT_TIMEOUT_MS=600000` 使 10 分鐘成為預設值。

436 

424<h2 id="setup-scripts">437<h2 id="setup-scripts">

425 設定指令碼438 設定指令碼

426</h2>439</h2>


445設定指令碼有三個限制條件需要考慮:458設定指令碼有三個限制條件需要考慮:

446 459 

447* **Exit zero**:如果指令碼以非零狀態結束,工作階段將無法啟動。在非關鍵命令後附加 `|| true`,以便間歇性安裝失敗不會阻止工作階段。460* **Exit zero**:如果指令碼以非零狀態結束,工作階段將無法啟動。在非關鍵命令後附加 `|| true`,以便間歇性安裝失敗不會阻止工作階段。

448* **在五分鐘內完成**:將指令碼的總執行時間保持在大約五分鐘以內,以便[環境快取](#environment-caching)可以建立。使用 `&` 和 `wait` 並行執行獨立安裝,並將任何無法納入的單一下載移至[SessionStart hook](#setup-scripts-vs-sessionstart-hooks),在背景中啟動它。461* **在五分鐘內完成**:將指令碼的總執行時間保持在大約五分鐘以內,以便[環境快取](#environment-caching)可以建立。當設定耗時超過五分鐘時,環境不會被快取。使用 `&` 和 `wait` 並行執行獨立安裝,並將任何無法納入的單一下載移至[SessionStart hook](#setup-scripts-vs-sessionstart-hooks),在背景中啟動它。如果新工作階段在設定期間停滯或失敗,請參閱[新工作階段在設定期間掛起或逾時](/docs/zh-TW/web-quickstart#new-sessions-hang-or-time-out-during-setup)。

449* **安裝的網路存取**:套件安裝需要連接到登錄檔。預設的 **Trusted** 層級涵蓋[常見套件登錄檔](#default-allowed-domains),包括 npm、PyPI、RubyGems 和 crates.io;使用 **None** 網路存取時,安裝會失敗。462* **安裝的網路存取**:套件安裝需要連接到登錄檔。預設的 **Trusted** 層級涵蓋[常見套件登錄檔](#default-allowed-domains),包括 npm、PyPI、RubyGems 和 crates.io;使用 **None** 網路存取時,安裝會失敗。

450 463 

451<h3 id="environment-caching">464<h3 id="environment-caching">

452 環境快取465 環境快取

453</h3>466</h3>

454 467 

455設定指令碼在您第一次在環境中啟動工作階段時執行。完成後,Anthropic 會快照檔案系統,並將該快照重複用作後續工作階段的起點。新工作階段會以您的相依性、工具和 Docker 映像已在磁碟上開始,並跳過設定指令碼步驟。即使指令碼安裝大型工具鏈或拉取容器映像,這也能保持啟動速度快。468設定指令碼在您第一次在環境中啟動工作階段時執行。當設定在[大約五分鐘](#script-requirements)內完成時,Anthropic 會快照檔案系統,並將該快照重複用作後續工作階段的起點。新工作階段會以您的相依性、工具和 Docker 映像已在磁碟上開始,並跳過設定指令碼步驟。即使指令碼安裝大型工具鏈或拉取容器映像,這也能保持啟動速度快。如果設定耗時超過大約五分鐘,環境不會被快取。

456 469 

457快取是檔案系統快照,因此它會保留設定指令碼寫入磁碟的內容,並丟失任何僅在執行中的內容。您安裝的套件、您拉取的 Docker 映像和您寫入的檔案都會保留。指令碼啟動的資料庫、`docker compose up` 堆疊或任何其他背景程序不會;透過詢問 Claude 或使用 [SessionStart hook](#setup-scripts-vs-sessionstart-hooks) 在每個工作階段啟動這些。470快取是檔案系統快照,因此它會保留設定指令碼寫入磁碟的內容,並丟失任何僅在執行中的內容。您安裝的套件、您拉取的 Docker 映像和您寫入的檔案都會保留。指令碼啟動的資料庫、`docker compose up` 堆疊或任何其他背景程序不會;透過詢問 Claude 或使用 [SessionStart hook](#setup-scripts-vs-sessionstart-hooks) 在每個工作階段啟動這些。

458 471 

code-review.md +2 −2

Details

299 故障排除299 故障排除

300</h2>300</h2>

301 301 

302審查運行是盡力而為的。失敗的運行永遠不會阻止您的 PR,但它也不會自動重試。本部分涵蓋如何從失敗的運行中恢復,以及在檢查運行報告您找不到的問題時在哪裡查看。302審查運行是盡力而為的,失敗的運行永遠不會阻止您的 PR。Code Review 會自動重試某些中斷的審查。本部分涵蓋如何自己再次運行審查,以及在檢查運行報告您找不到的問題時在哪裡查看。

303 303 

304<h3 id="retrigger-a-failed-or-timed-out-review">304<h3 id="retrigger-a-failed-or-timed-out-review">

305 重新觸發失敗或超時的審查305 重新觸發失敗或超時的審查

306</h3>306</h3>

307 307 

308當審查基礎設施遇到內部錯誤或超過其時間限制時,檢查運行完成,標題為 **Code review encountered an error** 或 **Code review timed out**。結論仍然是中立的,因此沒有任何東西阻止您的合併,但沒有發現被發佈。308當審查失敗或超過其時間限制時,檢查運行完成,標題為 **Code review failed** 或 **Code review timed out**。結論仍然是中立的,因此沒有任何東西阻止您的合併。除非檢查運行的摘要說已自動排隊進行新的提交審查,否則請自己再次運行審查。

309 309 

310要再次運行審查,在 PR 上評論 `@claude review`。這啟動一個新的審查,不訂閱 PR 以進行未來推送。如果 PR 不是[來自分支](#review-pull-requests-from-forks),您可以改為在 GitHub 的 Checks 標籤中的 **Claude Code Review** 檢查上點擊 **Re-run**。重新運行也會啟動一個新的審查,不訂閱 PR。310要再次運行審查,在 PR 上評論 `@claude review`。這啟動一個新的審查,不訂閱 PR 以進行未來推送。如果 PR 不是[來自分支](#review-pull-requests-from-forks),您可以改為在 GitHub 的 Checks 標籤中的 **Claude Code Review** 檢查上點擊 **Re-run**。重新運行也會啟動一個新的審查,不訂閱 PR。

311 311 

commands.md +4 −3

Details

79| `/dataviz [request]` | **[Skill](/docs/zh-TW/skills#bundled-skills)。** 圖表、圖形和儀表板的設計指導。Claude 為資料選擇圖表形式,按角色分配顏色,使用捆綁的指令碼驗證調色板以確保色盲安全和對比度,並應用標記、互動和可存取性規則。使用您用自己的調色板替換的品牌中立佔位符調色板。需要 Claude Code v2.1.198 或更新版本 |79| `/dataviz [request]` | **[Skill](/docs/zh-TW/skills#bundled-skills)。** 圖表、圖形和儀表板的設計指導。Claude 為資料選擇圖表形式,按角色分配顏色,使用捆綁的指令碼驗證調色板以確保色盲安全和對比度,並應用標記、互動和可存取性規則。使用您用自己的調色板替換的品牌中立佔位符調色板。需要 Claude Code v2.1.198 或更新版本 |

80| `/debug [description]` | **[Skill](/docs/zh-TW/skills#bundled-skills)。** 為目前工作階段啟用偵錯日誌記錄並通過讀取工作階段偵錯日誌來排除故障。除非您使用 `claude --debug` 啟動,否則偵錯日誌記錄預設為關閉,因此在工作階段中期運行 `/debug` 會從該點開始捕獲日誌。可選地描述問題以集中分析 |80| `/debug [description]` | **[Skill](/docs/zh-TW/skills#bundled-skills)。** 為目前工作階段啟用偵錯日誌記錄並通過讀取工作階段偵錯日誌來排除故障。除非您使用 `claude --debug` 啟動,否則偵錯日誌記錄預設為關閉,因此在工作階段中期運行 `/debug` 會從該點開始捕獲日誌。可選地描述問題以集中分析 |

81| `/deep-research <question>` | **[Workflow](/docs/zh-TW/workflows#bundled-workflows)。** 在問題上展開網路搜尋、擷取和交叉檢查來源,並合成引用的報告 |81| `/deep-research <question>` | **[Workflow](/docs/zh-TW/workflows#bundled-workflows)。** 在問題上展開網路搜尋、擷取和交叉檢查來源,並合成引用的報告 |

82| `/design [brief]` | **[Skill](/docs/zh-TW/skills#bundled-skills)。** 在一個畫布上草擬 UI 模型、螢幕流程、登陸頁面或海報作為畫板,發佈為 Design [工件](/docs/zh-TW/artifacts#draft-a-design-canvas),例如 `/design a settings screen for a mobile banking app`。您在桌面瀏覽器中編輯畫板,您的編輯會自動保存。您可以將每個畫板匯出為 PNG 或 PDF。需要[工件可用](/docs/zh-TW/artifacts#availability)的工作階段和 Claude Code v2.1.265 或更新版本。在 Anthropic API 上可用。在 Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 和 Claude Platform on AWS 上,工件不可用,因此命令在那裡不可用 |82| `/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 上,工件不可用,因此命令在那裡不可用 |

83| `/design-login` | 使用您的 claude.ai 帳戶授權 `/design-sync` 的設計系統存取 |83| `/design-login` | 使用您的 claude.ai 帳戶授權 `/design-sync` 的設計系統存取 |

84| `/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),因此命令在那裡不可用 |84| `/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),因此命令在那裡不可用 |

85| `/desktop` | 在 Claude Code Desktop 應用程式中繼續目前工作階段。需要 macOS 或 x64 Windows 以及 Claude 訂閱。別名:`/app` |85| `/desktop` | 在 Claude Code Desktop 應用程式中繼續目前工作階段。需要 macOS 或 x64 Windows 以及 Claude 訂閱。別名:`/app` |

86| `/diff` | 檢查工作樹中的變更,包括 Claude 到目前為止所做的編輯。請參閱[使用 /diff 檢查變更](/docs/zh-TW/interactive-mode#review-changes-with-%2Fdiff) |86| `/diff` | 檢查工作樹中的變更,包括 Claude 到目前為止所做的編輯。請參閱[使用 /diff 檢查變更](/docs/zh-TW/interactive-mode#review-changes-with-%2Fdiff) |

87| `/doctor` | **[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`。CLAUDE.md 修剪檢查需要 Claude Code v2.1.206 或更新版本。在 v2.1.205 之前,`/doctor` 打開唯讀診斷螢幕,按 `f` 將報告發送給 Claude |87| `/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#write-effective-instructions)以查找過時或衝突的指示,而不是運行檢查。`prompt-audit` 子命令需要 Claude Code v2.1.283 或更新版本。CLAUDE.md 修剪檢查需要 Claude Code v2.1.206 或更新版本。在 v2.1.205 之前,`/doctor` 打開唯讀診斷螢幕,按 `f` 將報告發送給 Claude |

88| `/effort [level\|auto\|status]` | 設定[工作量級別](/docs/zh-TW/model-config#adjust-effort-level):`low` 到 `xhigh`、`max`、[`ultracode`](/docs/zh-TW/workflows#let-claude-decide-with-ultracode) 或 `auto`;`status` 列印它。`max` 和 `ultracode` 僅限工作階段;[`ultracode`](/docs/zh-TW/settings-reference#ultracode) 鍵持續存在。在 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` 中工作 |88| `/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` 中工作 |

89| `/exit` | 退出 CLI。在附加的[背景工作階段](/docs/zh-TW/agent-view#attach-to-a-session)中,這會分離並且工作階段保持運行。別名:`/quit` |89| `/exit` | 退出 CLI。在附加的[背景工作階段](/docs/zh-TW/agent-view#attach-to-a-session)中,這會分離並且工作階段保持運行。別名:`/quit` |

90| `/export [filename]` | 將目前對話匯出為純文字。使用檔案名,直接寫入該檔案。沒有,打開對話框以複製到剪貼簿或保存到檔案 |90| `/export [filename]` | 將目前對話匯出為純文字。使用檔案名,直接寫入該檔案。沒有,打開對話框以複製到剪貼簿或保存到檔案 |

91| `/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 或更新版本 |91| `/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 或更新版本 |


143| `/simplify [target]` | **[Skill](/docs/zh-TW/skills#bundled-skills)。** 檢查變更的程式碼以查找清理機會並應用修復。四個檢查[代理](/docs/zh-TW/sub-agents)並行運行,涵蓋現有幫助程式的重複使用、簡化、效率以及變更是否處於正確的抽象級別。檢查不尋找正確性錯誤。使用 `/code-review` 查找錯誤。傳遞路徑或 PR 參考以檢查特定目標 |143| `/simplify [target]` | **[Skill](/docs/zh-TW/skills#bundled-skills)。** 檢查變更的程式碼以查找清理機會並應用修復。四個檢查[代理](/docs/zh-TW/sub-agents)並行運行,涵蓋現有幫助程式的重複使用、簡化、效率以及變更是否處於正確的抽象級別。檢查不尋找正確性錯誤。使用 `/code-review` 查找錯誤。傳遞路徑或 PR 參考以檢查特定目標 |

144| `/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) |144| `/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) |

145| `/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` 項目的技能 |145| `/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` 項目的技能 |

146| `/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 上,工件不可用,因此命令在那裡不可用 |

146| `/stats` | `/usage` 的別名。在 Stats 標籤上打開 |147| `/stats` | `/usage` 的別名。在 Stats 標籤上打開 |

147| `/status` | 在 Status 標籤上打開設定介面,顯示版本、模型、帳戶和連線。`Session kind` 行在[背景工作階段](/docs/zh-TW/agent-view)中讀取 `background job · attached` 或 `background job · unattended`(取決於是否附加終端),在任何其他工作階段中讀取 `interactive`。在 v2.1.221 之前,`/status` 不顯示此行。在 Claude 回應時工作 |148| `/status` | 在 Status 標籤上打開設定介面,顯示版本、模型、帳戶和連線。`Session kind` 行在[背景工作階段](/docs/zh-TW/agent-view)中讀取 `background job · attached` 或 `background job · unattended`(取決於是否附加終端),在任何其他工作階段中讀取 `interactive`。在 v2.1.221 之前,`/status` 不顯示此行。在 Claude 回應時工作 |

148| `/statusline` | 設定 Claude Code 的[狀態行](/docs/zh-TW/statusline)。描述您想要的內容,或運行時不帶引數以從您的 shell 提示詞自動設定 |149| `/statusline` | 設定 Claude Code 的[狀態行](/docs/zh-TW/statusline)。描述您想要的內容,或運行時不帶引數以從您的 shell 提示詞自動設定 |

Details

201Claude Code 在與 Claude 應用相同的模型上執行,您可以在會話中間切換。*Sonnet* 是日常功能工作、錯誤、測試和審查的預設主力。在大型重構、複雜除錯或任何高風險的事情上使用 *Opus*。對於快速問題、格式化和速度獲勝的機械編輯,降低到 *Haiku*。201Claude Code 在與 Claude 應用相同的模型上執行,您可以在會話中間切換。*Sonnet* 是日常功能工作、錯誤、測試和審查的預設主力。在大型重構、複雜除錯或任何高風險的事情上使用 *Opus*。對於快速問題、格式化和速度獲勝的機械編輯,降低到 *Haiku*。

202 202 

203*Fable* 是您最困難、最長時間執行任務的最有能力的模型;它不是203*Fable* 是您最困難、最長時間執行任務的最有能力的模型;它不是

204預設值,所以使用 `/model fable` 選擇它,並注意網路安全和生物學內容會自動回退到 Opus。Opus 5.5 和 Opus 5 執行自己的204預設值,所以使用 `/model fable` 選擇它,並注意網路安全和生物學內容會自動回退到 Opus。Opus 5.5、Sonnet 5.5 和 Opus 5 執行自己的檢查:標記的內容會切換到同一系列中的較早模型,除了 Opus 5 或 Sonnet 5.5 上標記的生物學內容會被拒絕。

205檢查:標記的內容會切換到較早的 Opus,除了 Opus 5 上標記的生物學內容會被拒絕。

206 205 

207*現在嘗試:* 輸入 `/model` 並選擇 Sonnet(如果您還沒有的話)。它是大多數任務的正確預設。206*現在嘗試:* 輸入 `/model` 並選擇 Sonnet(如果您還沒有的話)。它是大多數任務的正確預設。

208 207 


213| - | - |212| - | - |

214| Fable | 最困難、最長時間執行的任務。僅選擇加入:使用 `/model fable` 選擇它。網路安全或生物學內容觸發[自動模型回退到 Opus](/docs/zh-TW/model-config#automatic-model-fallback) |213| Fable | 最困難、最長時間執行的任務。僅選擇加入:使用 `/model fable` 選擇它。網路安全或生物學內容觸發[自動模型回退到 Opus](/docs/zh-TW/model-config#automatic-model-fallback) |

215| Opus | 大規模重構、複雜除錯、架構決策、高風險變更。在 Opus 5.5 和 Opus 5 上,網路安全或生物學內容觸發[自動模型回退或拒絕](/docs/zh-TW/model-config#automatic-model-fallback) |214| Opus | 大規模重構、複雜除錯、架構決策、高風險變更。在 Opus 5.5 和 Opus 5 上,網路安全或生物學內容觸發[自動模型回退或拒絕](/docs/zh-TW/model-config#automatic-model-fallback) |

216| Sonnet | 日常功能工作、錯誤修復、測試、文件、程式碼審查。建議預設。 |215| Sonnet | 日常功能工作、錯誤修復、測試、文件、程式碼審查。建議預設。在 Sonnet 5.5 上,網路安全或生物學內容觸發[自動模型回退或拒絕](/docs/zh-TW/model-config#automatic-model-fallback) |

217| Haiku | 快速問題、格式化、機械編輯、快速迭代 |216| Haiku | 快速問題、格式化、機械編輯、快速迭代 |

218 217 

219**首先嘗試的快速勝利**218**首先嘗試的快速勝利**

Details

1632* **在任務之間清除**:切換到不相關的工作時運行 `/clear`。舊對話會擠出您接下來需要的文件,並在每條消息上花費令牌。1632* **在任務之間清除**:切換到不相關的工作時運行 `/clear`。舊對話會擠出您接下來需要的文件,並在每條消息上花費令牌。

1633* **委託大型讀取**:將研究發送給[子代理](/docs/zh-TW/sub-agents),以便文件內容保留在其上下文視窗中,而不是您的。1633* **委託大型讀取**:將研究發送給[子代理](/docs/zh-TW/sub-agents),以便文件內容保留在其上下文視窗中,而不是您的。

1634 1634 

1635如果您需要更大的視窗而不是更小的對話,Fable 模型、Sonnet 5、Opus 4.6 及更高版本以及 Sonnet 4.6 支持 100 萬令牌上下文視窗。請參閱[擴展上下文](/docs/zh-TW/model-config#extended-context)以了解按計劃的可用性以及如何選擇 `[1m]` 模型變體。壓縮在更大的限制下以相同方式工作。1635如果您需要更大的視窗而不是更小的對話,Fable 模型、Sonnet 5 及更高版本、Opus 4.6 及更高版本以及 Sonnet 4.6 支持 100 萬令牌上下文視窗。請參閱[擴展上下文](/docs/zh-TW/model-config#extended-context)以了解按計劃的可用性以及如何選擇 `[1m]` 模型變體。壓縮在更大的限制下以相同方式工作。

1636 1636 

1637Sonnet 5 以 1M 上下文視窗運行,沒有 `[1m]` 變體可選擇。請參閱[Sonnet 5 上下文視窗](/docs/zh-TW/model-config#sonnet-5-context-window)以了解其自動壓縮閾值和 LLM 閘道例外。1637Sonnet 5.5 和 Sonnet 5 以 1M 上下文視窗運行,沒有 `[1m]` 變體可選擇。請參閱[Sonnet 5.5 和 Sonnet 5 上下文視窗](/docs/zh-TW/model-config#sonnet-5-5-and-sonnet-5-context-window)以了解其自動壓縮閾值和 LLM 閘道例外。

1638 1638 

1639自動壓縮運行的位置取決於您的模型和設定。請參閱[預設自動壓縮閾值](/docs/zh-TW/model-config#default-auto-compact-thresholds)以了解每個模型的邊界,以及[為閘道或自訂模型 ID 更正視窗](/docs/zh-TW/model-config#correct-the-window-for-a-gateway-or-custom-model-id),如果 Claude Code 為您的模型 ID(例如 [LLM 閘道](/docs/zh-TW/llm-gateway)別名)假設了錯誤的視窗。1639自動壓縮運行的位置取決於您的模型和設定。請參閱[預設自動壓縮閾值](/docs/zh-TW/model-config#default-auto-compact-thresholds)以了解每個模型的邊界,以及[為閘道或自訂模型 ID 更正視窗](/docs/zh-TW/model-config#correct-the-window-for-a-gateway-or-custom-model-id),如果 Claude Code 為您的模型 ID(例如 [LLM 閘道](/docs/zh-TW/llm-gateway)別名)假設了錯誤的視窗。

1640 1640 

costs.md +4 −1

Details

359 359 

360延伸思考預設為啟用,因為它可以顯著改善複雜規劃和推理任務的效能。思考 token 會作為輸出 token 計費,預設預算可能是每個請求數萬個 token,取決於模型。360延伸思考預設為啟用,因為它可以顯著改善複雜規劃和推理任務的效能。思考 token 會作為輸出 token 計費,預設預算可能是每個請求數萬個 token,取決於模型。

361 361 

362對於不需要深度推理的較簡單任務,您可以透過在 `/effort` 中降低[努力等級](/docs/zh-TW/model-config#adjust-effort-level)或在 `/model` 中降低、在 `/config` 中停用思考,或在具有[固定思考預算](/docs/zh-TW/model-config#adaptive-reasoning-and-fixed-thinking-budgets)的模型上,透過設定 `MAX_THINKING_TOKENS` [環境變數](/docs/zh-TW/env-vars)(例如 `MAX_THINKING_TOKENS=8000`)來降低預算,以降低成本。自適應推理模型會忽略非零預算,因此請改用努力等級。您無法在 Opus 5.5 或 Fable 模型上關閉思考,它們始終使用延伸思考。362對於不需要深度推理的較簡單任務,您可以透過在 `/effort` 中降低[努力等級](/docs/zh-TW/model-config#adjust-effort-level)或在 `/model` 中降低、在 `/config` 中停用思考,或在具有[固定思考預算](/docs/zh-TW/model-config#adaptive-reasoning-and-fixed-thinking-budgets)的模型上,透過設定 `MAX_THINKING_TOKENS` [環境變數](/docs/zh-TW/env-vars)(例如 `MAX_THINKING_TOKENS=8000`)來降低預算,以降低成本。自適應推理模型會忽略非零預算,因此請改用努力等級。您無法在 Opus 5.5、Sonnet 5.5 或 Fable 模型上關閉思考,它們始終使用延伸思考。

363 363 

364<h3 id="delegate-verbose-operations-to-subagents">364<h3 id="delegate-verbose-operations-to-subagents">

365 將詳細操作委派給 subagents365 將詳細操作委派給 subagents


367 367 

368執行測試、擷取文件或處理日誌檔案可能會消耗大量上下文。將這些委派給 [subagents](/docs/zh-TW/sub-agents#isolate-high-volume-operations),以便詳細輸出保留在 subagent 的上下文中,而只有摘要返回到您的主要對話。368執行測試、擷取文件或處理日誌檔案可能會消耗大量上下文。將這些委派給 [subagents](/docs/zh-TW/sub-agents#isolate-high-volume-operations),以便詳細輸出保留在 subagent 的上下文中,而只有摘要返回到您的主要對話。

369 369 

370subagent 自己的請求仍然會消耗您的使用量。為了在這些請求上花費更少,[為 subagent 選擇較小的模型](/docs/zh-TW/sub-agents#choose-a-model)或[在一個模型上執行每個 subagent](/docs/zh-TW/sub-agents#run-every-subagent-on-one-model)。

371 

370<h3 id="manage-agent-team-costs">372<h3 id="manage-agent-team-costs">

371 管理 agent 團隊成本373 管理 agent 團隊成本

372</h3>374</h3>


414* **排程工作**:[排程工作](/docs/zh-TW/scheduled-tasks) 在其間隔上執行,即使工作階段處於閒置狀態,每次都傳送您的完整上下文416* **排程工作**:[排程工作](/docs/zh-TW/scheduled-tasks) 在其間隔上執行,即使工作階段處於閒置狀態,每次都傳送您的完整上下文

415* **跨工作階段訊息**:Claude Code 在此工作階段處於閒置時,將 [來自您另一個工作階段的訊息](/docs/zh-TW/cross-session-messaging) 作為新回合傳送,每次都傳送您的完整上下文。若要保留入站訊息而不是傳送它們,請將 [`crossSessionInbound`](/docs/zh-TW/settings-reference#crosssessioninbound) 設定為 `hold`417* **跨工作階段訊息**:Claude Code 在此工作階段處於閒置時,將 [來自您另一個工作階段的訊息](/docs/zh-TW/cross-session-messaging) 作為新回合傳送,每次都傳送您的完整上下文。若要保留入站訊息而不是傳送它們,請將 [`crossSessionInbound`](/docs/zh-TW/settings-reference#crosssessioninbound) 設定為 `hold`

416* **目標檢查**:當背景工作保持活躍 [目標](/docs/zh-TW/goal) 等待時,Claude Code [要求 Claude 檢查該工作](/docs/zh-TW/goal#background-work-defers-evaluation),即使工作階段處於閒置狀態,啟動傳送您完整上下文的新回合。Claude Code 在您的提示之間每個目標最多啟動三個閒置檢查。在 v2.1.246 之前,閒置檢查是無上限的。若要關閉檢查,請將 [`CLAUDE_CODE_GOAL_CHECKIN_MINUTES`](/docs/zh-TW/env-vars) 設定為 `0`。閒置檢查需要 Claude Code v2.1.236 或更新版本418* **目標檢查**:當背景工作保持活躍 [目標](/docs/zh-TW/goal) 等待時,Claude Code [要求 Claude 檢查該工作](/docs/zh-TW/goal#background-work-defers-evaluation),即使工作階段處於閒置狀態,啟動傳送您完整上下文的新回合。Claude Code 在您的提示之間每個目標最多啟動三個閒置檢查。在 v2.1.246 之前,閒置檢查是無上限的。若要關閉檢查,請將 [`CLAUDE_CODE_GOAL_CHECKIN_MINUTES`](/docs/zh-TW/env-vars) 設定為 `0`。閒置檢查需要 Claude Code v2.1.236 或更新版本

419* **子代理和工作流程**:每個子代理,以及每個 [動態工作流程](/docs/zh-TW/workflows#cost) 產生的代理,都會在主對話的基礎上傳送自己的請求。[屬性細目](#plan-usage-breakdown) 顯示子代理份額

417* **代理隊友**:每個活躍 [隊友](#agent-team-token-costs) 會持續消耗代幣,直到它退出420* **代理隊友**:每個活躍 [隊友](#agent-team-token-costs) 會持續消耗代幣,直到它退出

418* **壓縮**:`/compact` 讀取它摘要的對話,因此 [壓縮大型上下文](/docs/zh-TW/prompt-caching#compacting-the-conversation) 本身是一個大型請求。當您想要全新開始而不是連續性時,`/clear` 不需要任何成本421* **壓縮**:`/compact` 讀取它摘要的對話,因此 [壓縮大型上下文](/docs/zh-TW/prompt-caching#compacting-the-conversation) 本身是一個大型請求。當您想要全新開始而不是連續性時,`/clear` 不需要任何成本

419 422 

Details

14 14 

15訊息是一個 Claude 寫給另一個 Claude 的文字片段,絕不包括寄件者的對話歷史記錄或檔案。若要移動整個對話或其內容,請[復原工作階段](/docs/zh-TW/sessions#resume-a-session)。15訊息是一個 Claude 寫給另一個 Claude 的文字片段,絕不包括寄件者的對話歷史記錄或檔案。若要移動整個對話或其內容,請[復原工作階段](/docs/zh-TW/sessions#resume-a-session)。

16 16 

17Claude 使用兩個工具來實現此功能:`ListAgents` 用於探索它可以到達的代理程式,以及 `SendMessage` 用於按名稱將訊息傳遞給其中一個代理程式。使用相同的 `SendMessage` 工具,Claude 也可以在單一工作階段或團隊內訊息傳送至[子代理程式](/docs/zh-TW/sub-agents#resume-subagents)和[代理程式團隊](/docs/zh-TW/agent-teams)隊友。本頁涵蓋您獨立工作階段之間的訊息。

18 

19<h2 id="when-to-use-cross-session-messaging">17<h2 id="when-to-use-cross-session-messaging">

20 何時使用跨工作階段訊息傳送18 何時使用跨工作階段訊息傳送

21</h2>19</h2>


27* **從長時間執行的工作獲取狀態**:讓遷移或測試執行回報給您正在監視的工作階段,或從那裡自己要求它。如果該工作階段在此機器上,Claude 也可以[在它下次閒置或退出時要求一個通知](#get-a-notice-when-another-session-goes-idle)。25* **從長時間執行的工作獲取狀態**:讓遷移或測試執行回報給您正在監視的工作階段,或從那裡自己要求它。如果該工作階段在此機器上,Claude 也可以[在它下次閒置或退出時要求一個通知](#get-a-notice-when-another-session-goes-idle)。

28* **跨機器訊息傳送**:到達您在另一台機器或網路上的一個工作階段。26* **跨機器訊息傳送**:到達您在另一台機器或網路上的一個工作階段。

29 27 

30在您自己啟動和引導的獨立工作階段之間使用訊息傳送。Claude Code 為運行或到達多個工作階段的其他每種方式都有專用功能,因此請使用為您正在做的事情而建立的功能:

31 

32* 若要在另一個終端機中繼續一個對話,或與新工作階段共享其內容,請[恢復工作階段](/docs/zh-TW/sessions#resume-a-session)

33* 對於 Claude 生成和監督的協調團隊工作階段,請使用[代理團隊](/docs/zh-TW/agent-teams)

34* 若要從一個地方監視和引導許多工作階段,請使用[代理檢視](/docs/zh-TW/agent-view)

35* 若要從您的手機或另一台裝置自己引導工作階段,而不是讓工作階段互相訊息傳送,請使用[遠端控制](/docs/zh-TW/remote-control)

36* 若要將外部事件(例如 CI 結果或聊天訊息)推送到工作階段中,請使用[頻道](/docs/zh-TW/channels)

37 

38<h2 id="message-another-session">28<h2 id="message-another-session">

39 訊息傳送至另一個工作階段29 訊息傳送至另一個工作階段

40</h2>30</h2>


74 64 

75接收 Claude 在活躍回合期間的工具呼叫之間讀取訊息,因此執行中的工具永遠不會被中斷。當接收工作階段閒置時,Claude Code 使用訊息啟動新回合。65接收 Claude 在活躍回合期間的工具呼叫之間讀取訊息,因此執行中的工具永遠不會被中斷。當接收工作階段閒置時,Claude Code 使用訊息啟動新回合。

76 66 

77來自另一個工作階段的訊息作為純文字到達。如果它使用 `@` 提及檔案或 [MCP 資源](/docs/zh-TW/mcp#use-mcp-resources),Claude 會看到如寫入的提及,Claude Code 不會附加任何內容,無論訊息是啟動新回合還是在一個回合期間到達。Claude 仍然可以使用自己的工具在接收機器上開啟提及的路徑,受該工作階段的權限限制。在 v2.1.251 之前,啟動新回合的訊息中的 `@` 提及會在接收端附加檔案或 MCP 資源。67來自另一個工作階段的訊息作為純文字到達。如果它使用 `@` 提及檔案或 [MCP 資源](/docs/zh-TW/mcp#use-mcp-resources),Claude 會看到如寫入的提及,Claude Code 不會附加任何內容,無論訊息是啟動新回合還是在一個回合期間到達。Claude 仍然可以使用自己的工具在接收機器上開啟提及的路徑,受該工作階段的權限限制。

78 68 

79Claude Code 在以下情況下拒絕訊息:69Claude Code 在以下情況下拒絕訊息:

80 70 

81* 訊息[超過大小上限](#limitations)。Claude Code 在傳送工作階段中拒絕它,在它離開之前。71* 訊息[超過大小上限](#limitations)。Claude Code 在傳送工作階段中拒絕它,在它離開之前。

82* 對此機器上工作階段的快速突發已達到[該工作階段的收件匣接受](#limitations)的內容。Claude Code 拒絕進一步訊息傳送至該工作階段。72* 對此機器上工作階段的快速突發已達到[該工作階段的收件匣接受](#limitations)的內容。Claude Code 拒絕進一步訊息傳送至該工作階段。

83* 此機器上的回覆目標未通過安全檢查,例如符號連結目標或不是預期程序的端點。[拒絕傳送跨工作階段訊息](/docs/zh-TW/errors#refusing-to-send-a-cross-session-message)列出這些檢查。73* 此機器上的回覆目標未通過安全檢查,例如符號連結目標或不是預期程序的端點。[拒絕傳送跨工作階段訊息](/docs/zh-TW/errors#refusing-to-send-a-cross-session-message)列出這些檢查。

84* Claude 將訊息定址到此工作階段自己的名稱,如[查看 Claude 可以到達的工作階段](#see-which-sessions-claude-can-reach)下所述。

85 74 

86接收工作階段根據其自己的[入站控制](#control-inbound-messages)檢查每條到達的訊息,檢查以三種結果之一結束:75接收工作階段根據其自己的[入站控制](#control-inbound-messages)檢查每條到達的訊息,檢查以三種結果之一結束:

87 76 


121 限制110 限制

122</h4>111</h4>

123 112 

124通知是一次性的:Claude Code 從監視工作階段傳送一次,兩個工作階段都不輪詢另一個。如果在 12 小時內沒有通知到達,Claude Code 會丟棄訂閱並告訴 Claude,因此它不會繼續等待。113如果在 12 小時內沒有通知到達,Claude Code 會丟棄訂閱並告訴 Claude,因此它不會繼續等待。

125 114 

126每一側的[入站控制](#control-inbound-messages)適用於通知,如同訊息:115每一側的[入站控制](#control-inbound-messages)適用於通知,如同訊息:

127 116 

128* **任一側的 `refuse`**:沒有任何內容到達。監視工作階段在未記錄或回答的情況下丟棄請求,因此訂閱在 12 小時後未回答而過期,具有 `refuse` 的要求工作階段永遠不會訂閱。117* **任一側的 `refuse`**:沒有任何內容到達。監視工作階段在未記錄或回答的情況下丟棄請求,因此訂閱在 12 小時後未回答而過期,具有 `refuse` 的要求工作階段永遠不會訂閱。

129* **任一側的 `hold`**:通知到達時內容較少。監視工作階段省略單行狀態,要求工作階段在您的文字記錄中顯示通知而不將其傳遞給 Claude。118* **任一側的 `hold`**:通知到達時內容較少。監視工作階段省略單行狀態,要求工作階段在您的文字記錄中顯示通知而不將其傳遞給 Claude。

130 119 

131只有您主要對話中的 Claude 可以訂閱,並且只能訂閱此機器上的您的工作階段。當子代理或代理團隊隊友設定 `notify_when_idle` 時,Claude Code 不進行訂閱並告訴它。當 Claude 要求來自任何其他代理(例如隊友、子代理或超出此機器的工作階段)的通知時,Claude Code 拒絕整個呼叫,包括附加到它的任何訊息,並向 Claude 報告拒絕,以便它可以在沒有請求的情況下重新傳送訊息。120只有您主要對話中的 Claude 可以訂閱,並且只能訂閱此機器上的您的工作階段。當 Claude 要求來自任何其他目標(例如隊友、子代理或超出此機器的工作階段)的通知時,Claude Code 拒絕整個呼叫,包括附加到它的任何訊息。

132 121 

133<h3 id="see-which-sessions-claude-can-reach">122<h3 id="see-which-sessions-claude-can-reach">

134 查看 Claude 可以到達的工作階段123 查看 Claude 可以到達的工作階段


137Claude 自己找到訊息的目標,因此您不需要在要求它傳送之前執行任何操作。若要自己查看 Claude 可以到達的工作階段,請執行 `/list-agents` 命令。第一行(如果存在)是此工作階段自己的名稱,您的其他工作階段用來訊息傳送至它的名稱。下面的行是 Claude 可以到達的工作階段:126Claude 自己找到訊息的目標,因此您不需要在要求它傳送之前執行任何操作。若要自己查看 Claude 可以到達的工作階段,請執行 `/list-agents` 命令。第一行(如果存在)是此工作階段自己的名稱,您的其他工作階段用來訊息傳送至它的名稱。下面的行是 Claude 可以到達的工作階段:

138 127 

139* **子代理**:在目前工作階段內執行的代理。128* **子代理**:在目前工作階段內執行的代理。

140* **隊友**:此工作階段自己的[代理團隊](/docs/zh-TW/agent-teams)隊友。在 v2.1.239 之前,隊友沒有出現在列表中,儘管 Claude 已經可以按名稱訊息傳送至他們。129* **隊友**:此工作階段自己的[代理團隊](/docs/zh-TW/agent-teams)隊友。

141* **您的其他本地工作階段**:在同一台機器上執行的 Claude Code 工作階段,包括[背景工作階段](/docs/zh-TW/agent-view)。工作階段僅在綁定[收件匣通訊端](#the-sessions-inbox-socket)時出現。130* **您的其他本地工作階段**:在同一台機器上執行的 Claude Code 工作階段,包括[背景工作階段](/docs/zh-TW/agent-view)。工作階段僅在綁定[收件匣通訊端](#the-sessions-inbox-socket)時出現。

142* **您的雲端工作階段**:在此工作階段連接到[遠端控制](/docs/zh-TW/remote-control)時顯示的[網路上的 Claude Code](/docs/zh-TW/claude-code-on-the-web)工作階段。Claude Code 在列表中將它們標記為 `cloud`。131* **您的[雲端工作階段](/docs/zh-TW/claude-code-on-the-web)**:在此工作階段連接到[遠端控制](/docs/zh-TW/remote-control)時顯示。

143* **您在其他機器上的遠端控制工作階段**:在此工作階段連接到[遠端控制](/docs/zh-TW/remote-control)時顯示,並標記為 `Remote Control`。Claude Code 將遠端控制連接已斷開的工作階段的狀態顯示為 `offline`。132* **您在其他機器上的遠端控制工作階段**:在此工作階段連接到[遠端控制](/docs/zh-TW/remote-control)時顯示,並標記為 `Remote Control`。Claude Code 將遠端控制連接已斷開的工作階段的狀態顯示為 `offline`。

144 133 

145此工作階段不是其中一行。如果 Claude 將訊息定址到此工作階段自己的名稱,Claude Code 拒絕它並告訴 Claude 目標是目前工作階段。在 v2.1.239 之前,列表沒有顯示此工作階段的名稱,Claude Code 報告發送給它的訊息為它找不到的代理。

146 

147當此工作階段連接到[遠端控制](/docs/zh-TW/remote-control)時,Claude Code 從 `/list-agents` 輸出中隱藏您本地工作階段的某些詳細資訊,而不改變 Claude 自己在尋找要訊息傳送的工作階段時看到的內容:134當此工作階段連接到[遠端控制](/docs/zh-TW/remote-control)時,Claude Code 從 `/list-agents` 輸出中隱藏您本地工作階段的某些詳細資訊,而不改變 Claude 自己在尋找要訊息傳送的工作階段時看到的內容:

148 135 

149* **工作目錄**:它省略每個本地工作階段的工作目錄。136* **工作目錄**:它省略每個本地工作階段的工作目錄。


152 139 

153當輸出列出任何內容時,它以說明詳細資訊被隱藏的注釋結束。在工作階段自己的鍵盤上執行 `/rename` 後跟未使用的名稱會給該工作階段一個出現在輸出中的名稱。140當輸出列出任何內容時,它以說明詳細資訊被隱藏的注釋結束。在工作階段自己的鍵盤上執行 `/rename` 後跟未使用的名稱會給該工作階段一個出現在輸出中的名稱。

154 141 

155Claude Code 首先讀取您的雲端和遠端控制工作階段列表,並在每個列表後停止有限數量的頁面。如果您的帳戶有超過適合的那些工作階段,Claude Code 不會列出較舊的工作階段,Claude 無法按名稱訊息傳送至它們。當發生這種情況時,Claude Code 在列表中說明,Claude 在傳送訊息時看到相同的注釋。

156 

157Claude 按名稱定址超出此機器的工作階段,與本地工作階段相同。請參閱[訊息傳送至其他機器上的工作階段](#message-sessions-on-other-machines)以了解這些訊息如何傳遞。

158 

159工作階段回應您使用 [`/rename`](/docs/zh-TW/commands) 命令或 [`--name`](/docs/zh-TW/cli-reference#cli-flags) 旗標設定的名稱。當您不設定一個時,Claude Code 自己命名工作階段。對於互動式工作階段,這是[執行工作階段列表](/docs/zh-TW/sessions#name-your-sessions)中顯示的名稱。142工作階段回應您使用 [`/rename`](/docs/zh-TW/commands) 命令或 [`--name`](/docs/zh-TW/cli-reference#cli-flags) 旗標設定的名稱。當您不設定一個時,Claude Code 自己命名工作階段。對於互動式工作階段,這是[執行工作階段列表](/docs/zh-TW/sessions#name-your-sessions)中顯示的名稱。

160 143 

161當您重新命名工作階段時,Claude Code 也會更新您的其他工作階段用來查詢工作階段名稱的共享記錄。如果它無法更新該記錄,它會在 `/rename` 輸出中警告您其他工作階段可能仍然顯示舊名稱。使用 [`--debug`](/docs/zh-TW/cli-reference#cli-flags) 執行工作階段,Claude Code 會記錄失敗更新的原因。

162 

163當您重新命名工作階段或啟動或恢復互動式工作階段時,使用此機器上另一個即時工作階段已經使用的名稱,Claude Code 將名稱留給已經擁有它的工作階段,並[將您的重新命名為變體](/docs/zh-TW/sessions#name-your-sessions)。工作階段可以共享名稱,例如當其中一個執行較早版本的 Claude Code 或共享名稱是 Claude Code 生成的名稱時。除非此工作階段連接到遠端控制,Claude Code 在 `/list-agents` 輸出中顯示每個本地工作階段的工作目錄,因此當它們在不同目錄中執行時,您可以區分同名工作階段。Claude 根據有多少個即時工作階段回應名稱,以兩種方式之一定址訊息:144當您重新命名工作階段或啟動或恢復互動式工作階段時,使用此機器上另一個即時工作階段已經使用的名稱,Claude Code 將名稱留給已經擁有它的工作階段,並[將您的重新命名為變體](/docs/zh-TW/sessions#name-your-sessions)。工作階段可以共享名稱,例如當其中一個執行較早版本的 Claude Code 或共享名稱是 Claude Code 生成的名稱時。除非此工作階段連接到遠端控制,Claude Code 在 `/list-agents` 輸出中顯示每個本地工作階段的工作目錄,因此當它們在不同目錄中執行時,您可以區分同名工作階段。Claude 根據有多少個即時工作階段回應名稱,以兩種方式之一定址訊息:

164 145 

165* **一個工作階段回應名稱**:Claude Code 僅在名稱上傳遞訊息。146* **一個工作階段回應名稱**:Claude Code 僅在名稱上傳遞訊息。


177| 在您的另一台機器上 | 通過 Anthropic 伺服器,通過該機器的[遠端控制](/docs/zh-TW/remote-control)連接到達 |158| 在您的另一台機器上 | 通過 Anthropic 伺服器,通過該機器的[遠端控制](/docs/zh-TW/remote-control)連接到達 |

178| 在[網路上的 Claude Code](/docs/zh-TW/claude-code-on-the-web) | 通過 Anthropic 伺服器,直接到雲端工作階段 |159| 在[網路上的 Claude Code](/docs/zh-TW/claude-code-on-the-web) | 通過 Anthropic 伺服器,直接到雲端工作階段 |

179 160 

180與您另一台機器上的工作階段開始對話需要 Claude Code v2.1.225 或更新版本以及出現在[列表](#see-which-sessions-claude-can-reach)中的目標。在 v2.1.225 之前,Claude 只能回覆從一個到達的訊息。161與您另一台機器上的工作階段開始對話需要 Claude Code v2.1.225 或更新版本以及出現在[列表](#see-which-sessions-claude-can-reach)中的目標。

181 

182您可以訊息傳送至在[列表](#see-which-sessions-claude-can-reach)中顯示為 `offline` 的工作階段,其遠端控制連接已斷開的工作階段。傳送通過,但訊息僅在該工作階段的機器重新連接後到達。Claude 在傳送時被告知這一點。

183 162 

184相同機器傳遞在啟用該功能的任何地方都有效。每個工作階段在磁碟上的檔案中註冊自己。當 Claude 列出或訊息傳送至您的本地工作階段時,Claude Code 讀取這些檔案以找到工作階段,因此兩個工作階段只有在能夠看到相同檔案時才能相互到達。163您可以訊息傳送至在[列表](#see-which-sessions-claude-can-reach)中顯示為 `offline` 的工作階段,其遠端控制連接已斷開的工作階段。傳送通過,但訊息僅在該工作階段的機器重新連接後到達。

185 164 

186容器有自己的檔案系統,因此容器內的工作階段和主機上的工作階段無法相互到達。同一容器內的兩個工作階段仍然可以訊息傳送至彼此,包括在[自託管執行器](/docs/zh-TW/self-hosted-environments)上。WSL 2 內的工作階段和同一台電腦上的原生 Windows 工作階段也無法相互到達,因為它們在不同的主目錄下註冊並在不同的通訊端類型上監聽。165容器內的工作階段和主機上的工作階段無法相互到達。同一容器內的兩個工作階段仍然可以訊息傳送至彼此,包括在[自託管執行器](/docs/zh-TW/self-hosted-environments)上。WSL 2 內的工作階段和同一台電腦上的原生 Windows 工作階段也無法相互到達。

187 166 

188當此工作階段連接到遠端控制時,當您訊息傳送至您另一台機器上的工作階段時,Claude Code 在該工作階段的對話中顯示訊息,在此工作階段的遠端控制名稱下。該機器上的 Claude 可以回覆該名稱。例如,當此工作階段作為 `laptop-graceful-unicorn` 連接到遠端控制並且您訊息傳送至您的桌面時,您在桌面工作階段中看到 `laptop-graceful-unicorn` 下的訊息。167如果此工作階段在 Claude 傳送至超出此機器的工作階段時未連接到遠端控制,訊息仍然通過,但沒有[回覆地址](#what-a-message-looks-like),因此接收 Claude 無法回答它。

189 

190如果此工作階段在 Claude 傳送至超出此機器的工作階段時未連接到遠端控制,訊息仍然通過,但沒有[回覆地址](#what-a-message-looks-like),因此接收 Claude 無法回答它。Claude 在傳送時被告知這一點。

191 168 

192若要在任何訊息超出此機器之前要求您的批准,請設定 [`isolatePeerMachines`](#require-approval-for-cross-machine-messages)。169若要在任何訊息超出此機器之前要求您的批准,請設定 [`isolatePeerMachines`](#require-approval-for-cross-machine-messages)。

193 170 


206 訊息看起來的樣子183 訊息看起來的樣子

207</h3>184</h3>

208 185 

209當訊息送達時,Claude Code 會在對話中將其顯示為暗淡的單行預覽,預覽行在之後會保留在對話中。預覽會顯示寄件者的名稱和訊息的第一行,當很長時會用 `…` 截斷,例如 `› Message from @api-worker: Schema migration finished (ctrl+o to expand)`。在 v2.1.247 之前,Claude Code 會完整顯示送達的訊息,而不是預覽。186當訊息送達時,Claude Code 會在對話中將其顯示為暗淡的單行預覽,預覽行在之後會保留在對話中。預覽會顯示寄件者的名稱和訊息的第一行,當很長時會用 `…` 截斷,例如 `› Message from @api-worker: Schema migration finished (ctrl+o to expand)`。

210 187 

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

212 189 


215 192 

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

217 194 

218Claude 會收到訊息,其中包含寄件者的名稱和回覆地址,除了[單向跨機器訊息](#message-sessions-on-other-machines),它不包含回覆地址。除了名稱和回覆地址外,接收端的 Claude 會取得訊息的文字,永遠不會取得寄件者的對話歷史記錄或檔案。[訊息傳遞](#message-delivery)涵蓋文字中的 `@` 提及。195Claude 會收到訊息,其中包含寄件者的名稱和回覆地址,除了[單向跨機器訊息](#message-sessions-on-other-machines),它不包含回覆地址。

219 

220[子代理](/docs/zh-TW/sub-agents)撰寫的訊息會以傳送工作階段的名稱送達,訊息文字中會識別子代理。對它的回覆會到達該工作階段的主要對話,而不是子代理。

221 196 

222這個範例是一個 Claude 寫給另一個的訊息,當您展開它時,其完整文字如下所示:197這個範例是一個 Claude 寫給另一個的訊息,當您展開它時,其完整文字如下所示:

223 198 


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

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

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

255* 如果設定變更使 `refuse` 在保留訊息時適用,Claude Code 會丟棄每條保留的訊息,並向它可以到達的每個寄件者報告拒絕。

256 

257當寄件者是同一機器上的工作階段時,Claude Code 會在接收端保留訊息時在那裡傳送通知給它,以及在接收端稍後傳遞、拒絕或過期時傳送後續通知。通知會到達傳送端的 Claude,因此它知道不要繼續等待另一個工作階段尚未讀取的訊息。

258 

259在互動式傳送工作階段中,通知會出現在文字記錄中。[`claude -p`](/docs/zh-TW/headless) 寄件者會在[串流輸出](/docs/zh-TW/headless#stream-responses)中以[資訊性 `system` 訊息](/docs/zh-TW/agent-sdk/typescript#sdkinformationalmessage)的形式接收它。發送給 `claude -p` 寄件者的通知需要 Claude Code v2.1.271 或更新版本。

260 230 

261如果接收端拒絕訊息,寄件者的通知會說接收端不接受跨工作階段訊息,並告訴寄件者的 Claude 不要等待或重新傳送。231Claude Code 最多保留 100 條訊息,超過該數量會丟棄最舊的訊息。

262 

263Claude Code 最多保留 100 條訊息,與傳遞佇列分開,超過該數量會丟棄最舊的訊息。

264 232 

265<h3 id="non-interactive-sessions">233<h3 id="non-interactive-sessions">

266 非互動式工作階段234 非互動式工作階段


275 243 

276將 `dialogExpiry` 設定為 `"never"` 以在工作階段結束前保留預設保留的訊息。由明確 `hold` 設定保留的訊息不會過期;Claude Code 只有在稍後應用 `accept` 時才會傳遞它。244將 `dialogExpiry` 設定為 `"never"` 以在工作階段結束前保留預設保留的訊息。由明確 `hold` 設定保留的訊息不會過期;Claude Code 只有在稍後應用 `accept` 時才會傳遞它。

277 245 

278當工作階段結束且仍有訊息被保留時,Claude Code 會向它可以到達的每個寄件者報告它們為已過期。在 v2.1.225 之前,`-p` 工作階段中沒有截止時間:保留的訊息會保持保留狀態,除非在執行期間進行權限模式變更會傳遞它,而以保留訊息結束的工作階段不會向其寄件者報告任何內容。

279 

280若要讓 `-p` 背景工作程式無人值守地接收訊息,請使用 `--settings` 值中設定為 `accept` 的 `crossSessionInbound` 啟動它。您使用者設定中的 `accept` 也有效,但適用於您執行的每個工作階段。246若要讓 `-p` 背景工作程式無人值守地接收訊息,請使用 `--settings` 值中設定為 `accept` 的 `crossSessionInbound` 啟動它。您使用者設定中的 `accept` 也有效,但適用於您執行的每個工作階段。

281 247 

282<h3 id="the-sessions-inbox-socket">248<h3 id="the-sessions-inbox-socket">


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

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

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

295 * 每個工作階段匯出其自己的套接字,永遠不會匯出從父工作階段繼承的套接字。

296 261 

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

298 263 


305 270 

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

307 272 

308下面的[自有子訊息規則](#own-child-messages)說明 Claude Code 何時查詢權杖以及它如何處理無法驗證的訊息。

309 

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

311 274 

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


380 * **雲端工作階段缺失**:雲端工作階段僅在此工作階段連接到[遠端控制](/docs/zh-TW/remote-control)時出現。343 * **雲端工作階段缺失**:雲端工作階段僅在此工作階段連接到[遠端控制](/docs/zh-TW/remote-control)時出現。

381 * **其他機器工作階段缺失**:您另一台機器上的工作階段僅在它執行[遠端控制](/docs/zh-TW/remote-control)並且此工作階段也連接時出現。344 * **其他機器工作階段缺失**:您另一台機器上的工作階段僅在它執行[遠端控制](/docs/zh-TW/remote-control)並且此工作階段也連接時出現。

382 * **其他機器工作階段 `offline`**:訊息傳送至列為 `offline` 的工作階段通過,但[僅在該工作階段的機器重新連接後到達](#message-sessions-on-other-machines)。345 * **其他機器工作階段 `offline`**:訊息傳送至列為 `offline` 的工作階段通過,但[僅在該工作階段的機器重新連接後到達](#message-sessions-on-other-machines)。

383 * **較舊的雲端或其他機器工作階段缺失**:Claude Code [首先讀取這些工作階段列表,並在有限數量的頁面後停止](#see-which-sessions-claude-can-reach),因此 Claude 無法按名稱訊息傳送至超過它們的工作階段。346 * **較舊的雲端或其他機器工作階段缺失**:Claude Code 首先讀取這些工作階段列表,並在有限數量的頁面後停止,因此 Claude 無法按名稱訊息傳送至超過它們的工作階段。

384 * **啟動對話**:[訊息傳送至其他機器上的工作階段](#message-sessions-on-other-machines)涵蓋與超出此機器的工作階段啟動對話。

385 347 

386在具有訊息傳送的工作階段中,`/status` 也顯示 `Peer address` 行,帶有工作階段自己的收件匣地址,或 `unavailable` 和原因,當 Claude Code [無法設定收件匣](#the-sessions-inbox-socket)時。348在具有訊息傳送的工作階段中,`/status` 也顯示 `Peer address` 行,帶有工作階段自己的收件匣地址,或 `unavailable` 和原因,當 Claude Code [無法設定收件匣](#the-sessions-inbox-socket)時。

387 349 


393 355 

394* **純文字只**:Claude 僅跨工作階段傳送純文字。結構化[代理團隊](/docs/zh-TW/agent-teams)協議訊息保留在團隊內。356* **純文字只**:Claude 僅跨工作階段傳送純文字。結構化[代理團隊](/docs/zh-TW/agent-teams)協議訊息保留在團隊內。

395* **相同機器訊息大小有上限**:Claude Code 拒絕訊息到此機器上的工作階段,一旦其序列化形式超過約一百萬個字元。拒絕[命名確切大小](/docs/zh-TW/errors#message-too-large-for-cross-session-delivery)。沒有任何內容到達接收工作階段。357* **相同機器訊息大小有上限**:Claude Code 拒絕訊息到此機器上的工作階段,一旦其序列化形式超過約一百萬個字元。拒絕[命名確切大小](/docs/zh-TW/errors#message-too-large-for-cross-session-delivery)。沒有任何內容到達接收工作階段。

396* **對一個工作階段的快速突發在寄件者處被拒絕**:一旦對此機器上工作階段的快速訊息突發達到該工作階段的收件匣接受的內容,Claude Code 拒絕傳送工作階段中的進一步傳送。[拒絕命名突發](/docs/zh-TW/errors#too-many-messages-to-this-session-just-now)並告訴 Claude 將其餘部分批處理為一條訊息或等待。在 v2.1.236 之前,Claude Code 報告這些傳送為已傳送,而接收工作階段丟棄它們。358* **對一個工作階段的快速突發在寄件者處被拒絕**:一旦對此機器上工作階段的快速訊息突發達到該工作階段的收件匣接受的內容,Claude Code 拒絕傳送工作階段中的進一步傳送。[拒絕命名突發](/docs/zh-TW/errors#too-many-messages-to-this-session-just-now)並告訴 Claude 將其餘部分批處理為一條訊息或等待。

397* **訊息迴圈被限制**:在接收工作階段中,Claude Code 速率限制每個寄件者的重複訊息,丟棄在短時間窗口內到達的相同重複,並最多為 Claude 讀取排隊 50 條接受的訊息。因此,兩個工作階段之間的訊息迴圈自行停止。當速率限制、重複檢查或佇列上限丟棄來自此機器上互動式工作階段的訊息時,Claude Code 告訴該工作階段哪一個丟棄了它,並告訴其 Claude 不要立即重新傳送。359* **訊息迴圈被限制**:在接收工作階段中,Claude Code 速率限制每個寄件者的重複訊息,丟棄在短時間窗口內到達的相同重複,並最多為 Claude 讀取排隊 50 條接受的訊息。因此,兩個工作階段之間的訊息迴圈自行停止。

398 360 

399<h2 id="related-resources">361<h2 id="related-resources">

400 相關資源362 相關資源


403* [子代理](/docs/zh-TW/sub-agents#resume-subagents)和[代理團隊](/docs/zh-TW/agent-teams#messages-between-agents):單一工作階段或團隊內的訊息傳送365* [子代理](/docs/zh-TW/sub-agents#resume-subagents)和[代理團隊](/docs/zh-TW/agent-teams#messages-between-agents):單一工作階段或團隊內的訊息傳送

404* [背景代理](/docs/zh-TW/agent-view):分派和監視您可能訊息傳送的平行工作階段366* [背景代理](/docs/zh-TW/agent-view):分派和監視您可能訊息傳送的平行工作階段

405* [遠端控制](/docs/zh-TW/remote-control):連接此工作階段以到達您在其他機器上的工作階段367* [遠端控制](/docs/zh-TW/remote-control):連接此工作階段以到達您在其他機器上的工作階段

368* [頻道](/docs/zh-TW/channels):將外部事件(例如 CI 結果或聊天訊息)推送到工作階段中

406* [設定](/docs/zh-TW/settings-reference#all-settings):`crossSessionInbound`、`isolatePeerMachines` 和 `dialogExpiry`369* [設定](/docs/zh-TW/settings-reference#all-settings):`crossSessionInbound`、`isolatePeerMachines` 和 `dialogExpiry`

407* [權限模式](/docs/zh-TW/permission-modes):入站預設的兩個類別背後的模式370* [權限模式](/docs/zh-TW/permission-modes):入站預設的兩個類別背後的模式

408* [工具參考](/docs/zh-TW/tools-reference):工具表中的 `ListAgents` 和 `SendMessage` 行371* [工具參考](/docs/zh-TW/tools-reference):工具表中的 `ListAgents` 和 `SendMessage` 行

data-usage.md +3 −3

Details

108 雲端執行:資料流和相依性108 雲端執行:資料流和相依性

109</h3>109</h3>

110 110 

111使用[網路上的 Claude Code](/docs/zh-TW/claude-code-on-the-web)時,工作階段在 Anthropic 管理的虛擬機器中執行,而不是在本機執行。您的組織路由到[自託管環境](/docs/zh-TW/self-hosted-environments)的工作階段在您控制的基礎設施上執行;有關哪些內容保留在您的機器上以及哪些內容仍然流向 Anthropic,請參閱[哪些內容保留在您的基礎設施上](/docs/zh-TW/self-hosted-environments#what-stays-on-your-infrastructure)。在 Anthropic 託管的雲端工作階段中:111[網路上的 Claude Code](/docs/zh-TW/claude-code-on-the-web)工作階段預設在 Anthropic 管理的虛擬機器中執行,而不是在本機執行。您的組織路由到[自託管環境](/docs/zh-TW/self-hosted-environments)的工作階段在您控制的基礎設施上執行;有關哪些內容保留在您的機器上以及哪些內容仍然流向 Anthropic,請參閱[哪些內容保留在您的基礎設施上](/docs/zh-TW/self-hosted-environments#what-stays-on-your-infrastructure)。在 Anthropic 託管的雲端工作階段中:

112 112 

113* \*\*程式碼和資料儲存:\*\*您的儲存庫被複製到隔離的 VM。程式碼和工作階段資料受您帳戶類型的保留和使用政策約束(請參閱上面的資料保留部分)113* \*\*程式碼和資料儲存:\*\*您的儲存庫被複製到工作階段的隔離 VM。Anthropic 儲存工作階段文字記錄,以便您稍後可以返回該工作階段。程式碼和工作階段資料受您帳戶類型的[保留和使用政策](#data-retention)約束

114* \*\*認證:\*\*GitHub 驗證透過安全代理進行;您的 GitHub 認證永遠不會進入沙箱114* \*\*認證:\*\*GitHub 認證在 Anthropic 的伺服器上加密儲存,永遠不會進入 VM。來自 VM 的 GitHub 流量透過 Anthropic 代理進行,該代理在伺服器端附加認證

115* \*\*網路流量:\*\*所有出站流量都透過安全代理進行,用於稽核記錄和濫用防止115* \*\*網路流量:\*\*所有出站流量都透過安全代理進行,用於稽核記錄和濫用防止

116* \*\*工作階段資料:\*\*提示、程式碼變更和輸出遵循與本機 Claude Code 使用相同的資料政策116* \*\*工作階段資料:\*\*提示、程式碼變更和輸出遵循與本機 Claude Code 使用相同的資料政策

117 117 

Details

102 檢查常見原因102 檢查常見原因

103</h2>103</h2>

104 104 

105大多數設定意外可以追溯到一小組位置和語法規則。在假設有 bug 之前檢查這些:105大多數設定問題都可以追溯到一小組位置和語法規則。在假設有錯誤之前,請先檢查這些項目:

106 106 

107| 症狀 | 原因 | 修正 |107| 症狀 | 原因 | 修正 |

108| :- | :- | :- |108| :- | :- | :- |

109| Hook 永遠不觸發 | `matcher` 是 JSON 陣列而不是字串 | 使用單一字串搭配 `\|` 來匹配多個 tools,例如 `"Edit\|Write"`。請參閱 [matcher 模式](/docs/zh-TW/hooks#matcher-patterns)。 |109| Hook 永遠不會觸發 | `matcher` 是 JSON 陣列而不是字串 | 使用單一字串搭配 `\|` 來比對多個工具,例如 `"Edit\|Write"`。請參閱 [matcher 模式](/docs/zh-TW/hooks#matcher-patterns)。 |

110| Hook 永遠不觸發 | `matcher` 在 v2.1.191 之前的版本中使用 `,` 作為分隔符 | Claude Code v2.1.191 或更新版本將 `,` 視為列表分隔符,如 `\|`。較早的版本將逗號評估為字面字元,因此 `"Edit,Write"` 不匹配任何內容。改用 `\|`,或升級 Claude Code。 |110| Hook 永遠不會觸發 | `matcher` 在 v2.1.191 之前的版本中使用 `,` 作為分隔符 | Claude Code v2.1.191 或更新版本將 `,` 視為列表分隔符,如 `\|`。較早的版本會將逗號評估為字面字元,因此 `"Edit,Write"` 不會比對任何內容。改用 `\|`,或升級 Claude Code。 |

111| Hook 永遠不觸發 | `matcher` 值是小寫,例如 `"bash"` | 匹配區分大小寫。Tool 名稱是大寫的:`Bash`、`Edit`、`Write`、`Read`。 |111| Hook 永遠不會觸發 | `matcher` 值為小寫,例如 `"bash"` | 比對區分大小寫。工具名稱採用大寫:`Bash`、`Edit`、`Write`、`Read`。 |

112| Hook 永遠不觸發 | Hooks 在獨立檔案而不是 `settings.json` 中定義 | 專案或使用者設定沒有獨立的 hooks 檔案。在 `settings.json` 中的 `"hooks"` 鍵下定義 hooks。只有 [plugins](/docs/zh-TW/plugins/components#hooks) 載入獨立的 `hooks/hooks.json`。請參閱 [hook 設定](/docs/zh-TW/hooks)。 |112| Hook 永遠不會觸發 | Hook 定義在獨立檔案中,而不是 `settings.json` | 專案或使用者設定沒有獨立的 hooks 檔案。在 `settings.json` 中的 `"hooks"` 鍵下定義 hooks。只有 [plugins](/docs/zh-TW/plugins/components#hooks) 會載入獨立的 `hooks/hooks.json`。請參閱 [hook 設定](/docs/zh-TW/hooks)。 |

113| 全域設定的 Permissions、hooks 或 env 被忽略 | 設定已新增到 `~/.claude.json` | `~/.claude.json` 保存應用程式狀態和 UI 切換。`permissions`、`hooks` 和 `env` 屬於 `~/.claude/settings.json`。這是兩個不同的檔案。 |113| 全域設定的權限或 hooks 被忽略 | 設定已新增至 `~/.claude.json` | `~/.claude.json` 保存應用程式狀態和 UI 切換。`permissions`、`hooks` 和 `env` 應該在 `~/.claude/settings.json` 中。這是兩個不同的檔案。 |

114| `settings.json` 值似乎被忽略 | 相同的鍵在 `settings.local.json` 中設定 | `settings.local.json` 覆蓋 `settings.json`,兩者都覆蓋 `~/.claude/settings.json`。請參閱 [settings 優先順序](/docs/zh-TW/settings#settings-precedence)。 |114| `settings.json` 值似乎被忽略 | 相同的鍵在 `settings.local.json` 中設定 | `settings.local.json` 會覆寫 `settings.json`,兩者都會覆寫 `~/.claude/settings.json`。請參閱 [settings 優先順序](/docs/zh-TW/settings#settings-precedence)。 |

115| Skill 不出現在 `/skills` 中 | Skill 檔案位於 `.claude/skills/name.md` 而不是在資料夾中 | 使用包含 `SKILL.md` 的資料夾:`.claude/skills/name/SKILL.md`。 |115| Skill 未出現在 `/skills` 中 | Skill 檔案位於 `.claude/skills/name.md` 而不是在資料夾中 | 使用包含 `SKILL.md` 的資料夾:`.claude/skills/name/SKILL.md`。 |

116| Skill 出現在 `/skills` 中但 Claude 永遠不呼叫它 | Skill 在其 frontmatter 中有 `disable-model-invocation: true`,或其描述與您表述請求的方式不符 | 檢查 `/skills` 中的徽章:「user-only」標籤表示 Claude 不會自動觸發它。請參閱 [skill 呼叫](/docs/zh-TW/skills)。 |116| Skill 出現在 `/skills` 中,但 Claude 從未叫用它 | Skill 在其 frontmatter 中有 `disable-model-invocation: true`,或其描述與您提出請求的方式不符 | 檢查 `/skills` 中的徽章:「user-only」標籤表示 Claude 不會自動觸發它。請參閱 [skill 叫用](/docs/zh-TW/skills)。 |

117| 子目錄 `CLAUDE.md` 指令似乎被忽略 | 子目錄檔案按需載入,而不是在工作階段開始時載入 | 它們在 Claude 使用 Read 工具讀取該目錄中的檔案時載入,而不是在啟動時,也不是在寫入或建立檔案時。請參閱 [CLAUDE.md 檔案如何載入](/docs/zh-TW/memory#how-claude-md-files-load)。 |117| 子目錄 `CLAUDE.md` 指示似乎被忽略 | 子目錄檔案按需載入,而不是在工作階段開始時載入 | 當 Claude 使用 Read 工具讀取該目錄中的檔案時會載入,而不是在啟動時或在該處寫入或建立檔案時載入。請參閱 [CLAUDE.md 檔案如何載入](/docs/zh-TW/memory#how-claude-md-files-load)。 |

118| 子代理忽略 `CLAUDE.md` 指令 | 內建的 Explore 和 Plan 代理會跳過 `CLAUDE.md`。自訂子代理以與主對話相同的方式載入它,除非其定義設定 [`omitClaudeMd`](/docs/zh-TW/sub-agents#supported-frontmatter-fields) | 對於 Explore 或 Plan,在您的委派提示中重新陳述指令。對於設定 `omitClaudeMd` 的子代理,移除該欄位。對於任何其他自訂子代理,將關鍵指令放在代理檔案主體中,該主體成為代理的系統提示。請參閱 [啟動時載入的內容](/docs/zh-TW/sub-agents#what-loads-at-startup)。 |118| 子代理忽略 `CLAUDE.md` 指示 | 內建的 Explore 和 Plan 代理會跳過 `CLAUDE.md`。自訂子代理的載入方式與主對話相同,除非其定義設定 [`omitClaudeMd`](/docs/zh-TW/sub-agents#supported-frontmatter-fields) | 對於 Explore 或 Plan,在您的委派提示中重新陳述指示。對於設定 `omitClaudeMd` 的子代理,移除該欄位。對於任何其他自訂子代理,將關鍵指示放在代理檔案本文中,該本文會成為代理的系統提示。請參閱 [啟動時載入的內容](/docs/zh-TW/sub-agents#what-loads-at-startup)。 |

119| 清理邏輯在工作階段結束時永遠不執行 | 未設定 `SessionEnd` hook | 在 `settings.json` 中新增 `SessionEnd` hook。請參閱 [hook 事件清單](/docs/zh-TW/hooks#hook-events)。 |119| 清理邏輯在工作階段結束時永遠不會執行 | 未設定 `SessionEnd` hook | 在 `settings.json` 中新增 `SessionEnd` hook。請參閱 [hook 事件列表](/docs/zh-TW/hooks#hook-events)。 |

120| `.mcp.json` 中的 MCP servers 永遠不載入 | 檔案位於 `.claude/` 下,或其 servers 位於頂層 `servers` 鍵下,如 VS Code 的 `mcp.json` 中,而不是 `mcpServers` | 專案 MCP 設定位於儲存庫根目錄為 `.mcp.json`,而不是在 `.claude/` 內,servers 位於 `mcpServers` 鍵下。請參閱 [MCP 設定](/docs/zh-TW/mcp)。 |120| `.mcp.json` 中的 MCP 伺服器永遠不會載入 | 檔案位於 `.claude/` 下,或其伺服器位於頂層 `servers` 鍵下(如 VS Code 的 `mcp.json`),而不是 `mcpServers` | 專案 MCP 設定位於存放庫根目錄的 `.mcp.json`,而不是在 `.claude/` 內,伺服器位於 `mcpServers` 鍵下。請參閱 [MCP 設定](/docs/zh-TW/mcp)。 |

121| 新增在 `settings.json` 中的 `mcpServers` 下的 MCP servers 永遠不出現 | `settings.json` 不讀取 `mcpServers` 鍵 | 在儲存庫根目錄的 `.mcp.json` 中定義專案 servers,或執行 `claude mcp add --scope user` 以取得使用者範圍的 servers。請參閱 [MCP 設定](/docs/zh-TW/mcp)。 |121| 在 `settings.json` 中的 `mcpServers` 下新增的 MCP 伺服器永遠不會出現 | `settings.json` 不讀取 `mcpServers` 鍵 | 在存放庫根目錄的 `.mcp.json` 中定義專案伺服器,或執行 `claude mcp add --scope user` 以取得使用者範圍的伺服器。請參閱 [MCP 設定](/docs/zh-TW/mcp)。 |

122| 新增的專案 MCP server 但不出現 | 一次性核准提示被關閉 | 專案範圍 servers 需要核准。執行 `/mcp` 以查看狀態並核准。 |122| 新增的專案 MCP 伺服器但未出現 | 一次性核准提示被關閉 | 專案範圍的伺服器需要核准。執行 `/mcp` 以查看狀態並核准。 |

123| MCP server 從某些目錄啟動失敗 | `command` 或 `args` 使用相對檔案路徑 | 對本機指令碼使用絕對路徑。您 `PATH` 上的可執行檔(如 `npx` 或 `uvx`)可以按原樣使用。 |123| MCP 伺服器從某些目錄啟動失敗 | `command` 或 `args` 使用相對檔案路徑 | 對本機指令碼使用絕對路徑。您 `PATH` 上的可執行檔(如 `npx` 或 `uvx`)可以按原樣使用。 |

124| MCP server 啟動時沒有預期的環境變數 | 伺服器的設定項目未設定它們,且它們不在 Claude Code 傳遞給 stdio servers 的環境中:其自身環境,減去 [它從子程序中移除的變數](/docs/zh-TW/monitoring-usage#administrator-configuration) | 在伺服器的 `.mcp.json` 項目內設定每個伺服器的 `env`,這不依賴於啟動環境或工作區信任。 |124| MCP 伺服器啟動時沒有預期的環境變數 | 伺服器的設定項目未設定它們,且它們不在 Claude Code 傳遞給 stdio 伺服器的環境中:其自身環境,減去 [它從子程序中移除的變數](/docs/zh-TW/monitoring-usage#administrator-configuration) | 在伺服器的 `.mcp.json` 項目內設定每個伺服器的 `env`,這不取決於啟動環境或工作區信任。 |

125| `Bash(rm *)` 拒絕規則不阻止 `/bin/rm` 或 `find -delete` | Bash 規則匹配字面命令字串,而不是基礎可執行檔;請參閱 [Bash 規則不匹配的內容](/docs/zh-TW/permissions#bash-rule-limits) | 使用 [PreToolUse hook](/docs/zh-TW/hooks-guide) 或 [sandbox](/docs/zh-TW/sandboxing) 以獲得硬保證。 |125| `Bash(rm *)` 拒絕規則不會阻止 `/bin/rm` 或 `find -delete` | Bash 規則比對字面命令字串,而不是基礎可執行檔;請參閱 [Bash 規則不比對的內容](/docs/zh-TW/permissions#bash-rule-limits) | 使用 [PreToolUse hook](/docs/zh-TW/hooks-guide) 或 [sandbox](/docs/zh-TW/sandboxing) 以獲得硬性保證。 |

126 126 

127<h2 id="related-resources">127<h2 id="related-resources">

128 相關資源128 相關資源

desktop.md +2 −2

Details

735 735 

736若要在任何平台上為本機會話和開發伺服器設定環境變數,請在提示框中開啟環境下拉式選單,將滑鼠懸停在 **Local** 上,然後點擊齒輪圖示以開啟本機環境編輯器。您在此處儲存的變數會在您的機器上加密儲存,並適用於您啟動的每個本機會話和預覽伺服器。您也可以將變數新增到 `~/.claude/settings.json` 檔案中的 `env` 金鑰,儘管這些僅到達 Claude 會話而不是開發伺服器。有關支援的變數的完整清單,請參閱[環境變數](/docs/zh-TW/env-vars)。736若要在任何平台上為本機會話和開發伺服器設定環境變數,請在提示框中開啟環境下拉式選單,將滑鼠懸停在 **Local** 上,然後點擊齒輪圖示以開啟本機環境編輯器。您在此處儲存的變數會在您的機器上加密儲存,並適用於您啟動的每個本機會話和預覽伺服器。您也可以將變數新增到 `~/.claude/settings.json` 檔案中的 `env` 金鑰,儘管這些僅到達 Claude 會話而不是開發伺服器。有關支援的變數的完整清單,請參閱[環境變數](/docs/zh-TW/env-vars)。

737 737 

738[Extended thinking](/docs/zh-TW/model-config#extended-thinking) 預設啟用,這改進了複雜推理任務的效能,但使用額外的 tokens。在 Anthropic API 上,在本機環境編輯器中將 `MAX_THINKING_TOKENS` 設定為 `0` 以關閉思考;這對 Opus 5.5 或 Fable 模型沒有影響,它們始終使用 extended thinking。在 Anthropic API 上關閉思考後,Claude Code 會傳送 effort `high` 而不是更高的級別給它知道[不接受該組合](/docs/zh-TW/errors#effort-isnt-available-with-thinking-turned-off)的模型,例如 Opus 5。738[Extended thinking](/docs/zh-TW/model-config#extended-thinking) 預設啟用,這改進了複雜推理任務的效能,但使用額外的 tokens。在 Anthropic API 上,在本機環境編輯器中將 `MAX_THINKING_TOKENS` 設定為 `0` 以關閉思考;這對 Opus 5.5、Sonnet 5.5 或 Fable 模型沒有影響,它們始終使用 extended thinking。在 Anthropic API 上關閉思考後,Claude Code 會傳送 effort `high` 而不是更高的級別給它知道[不接受該組合](/docs/zh-TW/errors#effort-isnt-available-with-thinking-turned-off)的模型,例如 Opus 5。

739 739 

740在具有[自適應推理](/docs/zh-TW/model-config#adjust-effort-level)的模型上,除了 `0` 以外的 `MAX_THINKING_TOKENS` 值會被忽略,因為自適應推理控制思考深度。在 Opus 4.6 和 Sonnet 4.6 上,將 `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` 設定為 `1` 以使用固定思考預算;Fable 模型、Sonnet 5 和 Opus 4.7 及更新版本始終使用自適應推理,沒有固定預算模式。740在具有[自適應推理](/docs/zh-TW/model-config#adjust-effort-level)的模型上,除了 `0` 以外的 `MAX_THINKING_TOKENS` 值會被忽略,因為自適應推理控制思考深度。在 Opus 4.6 和 Sonnet 4.6 上,將 `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` 設定為 `1` 以使用固定思考預算;Fable 模型、Sonnet 5 及更新版本,以及 Opus 4.7 及更新版本始終使用自適應推理,沒有固定預算模式。

741 741 

742<h4 id="local-sessions-on-managed-devices">742<h4 id="local-sessions-on-managed-devices">

743 受管設備上的本機會話743 受管設備上的本機會話

Details

4 4 

5# 開始使用桌面應用程式5# 開始使用桌面應用程式

6 6 

7> 在桌面上安裝 Claude Code 並開始您的第一個編碼會話7> 安裝 Claude 桌面應用程式、開啟 Code 標籤,並在您電腦上的專案資料夾開始您的第一個 Claude Code 會話。

8 8 

9桌面應用程式為您提供具有圖形介面的 Claude Code,專為並行執行多個會話而設計:用於管理並行工作的側邊欄、具有整合終端機和檔案編輯器的拖放式佈局、視覺化差異檢查、即時應用程式預覽、GitHub PR 監控與自動合併,以及排程任務。無需終端機。9桌面應用程式為您提供具有圖形介面的 Claude Code,因此您可以要求 Claude 處理電腦上資料夾中的程式碼,並檢查其變更,無需使用終端機。本頁面將引導您安裝應用程式並在 **Code** 標籤中開始您的第一個會話。Claude Code 需要 [Pro、Max、Team 或 Enterprise 訂閱](https://claude.com/pricing?utm_source=claude_code\&utm_medium=docs\&utm_content=desktop_quickstart_pricing)。

10 10 

11<CardGroup cols={3}>11<CardGroup cols={3}>

12 <Card title="下載 macOS 版本" icon="apple" href="https://claude.ai/api/desktop/darwin/universal/dmg/latest/redirect?utm_source=claude_code&utm_medium=docs">12 <Card title="下載 macOS 版本" icon="apple" href="https://claude.ai/api/desktop/darwin/universal/dmg/latest/redirect?utm_source=claude_code&utm_medium=docs">


25若要使用 Windows ARM64,請下載 [ARM64 安裝程式](https://claude.ai/api/desktop/win32/arm64/setup/latest/redirect?utm_source=claude_code\&utm_medium=docs)。在 Linux 上,使用 apt 安裝;請參閱 [Claude Desktop on Linux](/docs/zh-TW/desktop-linux)。25若要使用 Windows ARM64,請下載 [ARM64 安裝程式](https://claude.ai/api/desktop/win32/arm64/setup/latest/redirect?utm_source=claude_code\&utm_medium=docs)。在 Linux 上,使用 apt 安裝;請參閱 [Claude Desktop on Linux](/docs/zh-TW/desktop-linux)。

26 26 

27<Note>27<Note>

28 Claude Code 需要 [Pro、Max、Team 或 Enterprise 訂閱](https://claude.com/pricing?utm_source=claude_code\&utm_medium=docs\&utm_content=desktop_quickstart_pricing)。28 這些情況涵蓋在其他頁面上:

29</Note>

30 29 

31本頁面將引導您安裝應用程式並開始您的第一個會話。如果您已經設定完成,請參閱 [使用 Claude Code Desktop](/docs/zh-TW/desktop) 以取得完整參考。30 * **已設定完成**:請參閱 [使用 Claude Code Desktop](/docs/zh-TW/desktop) 以了解 Code 標籤可以執行的所有操作

31 * **想在終端機中使用 `claude`**:[分別安裝 CLI](/docs/zh-TW/quickstart)

32</Note>

32 33 

33桌面應用程式有三個標籤:34桌面應用程式有三個標籤:

34 35 

35* **Chat**:無檔案存取的一般對話,類似於 claude.ai。36* **Chat**:無檔案存取的一般對話,類似於 claude.ai。

36* **Cowork**:一個自主背景代理,在沙箱虛擬機中處理任務,具有自己的環境,可以獨立執行,同時您進行其他工作。裝置上的 Cowork 會話在您的電腦上執行 VM;遠端 Cowork 會話改為在 Anthropic 管理的 VM 上執行。37* **Cowork**:一個自主背景代理,在您進行其他工作時獨立處理任務。

37* **Code**:具有直接存取本機檔案的互動式編碼助手。根據權限模式,您可以在 Claude 提出每項變更時批准,或在 Claude 進行變更後檢查變更。38* **Code**:具有直接存取本機檔案的互動式編碼助手。根據權限模式,您可以在 Claude 提出每項變更時批准,或在 Claude 進行變更後檢查變更。

38 39 

39Chat 和 Cowork 涵蓋在 [Claude 說明中心](https://support.claude.com/);安裝和部署桌面應用程式涵蓋在 [Claude Desktop 支援文章](https://support.claude.com/en/collections/16163169-claude-desktop)。本頁面重點關注 **Code** 標籤。40Chat 和 Cowork 涵蓋在 [Claude 說明中心](https://support.claude.com/);安裝和部署桌面應用程式涵蓋在 [Claude Desktop 支援文章](https://support.claude.com/en/collections/16163169-claude-desktop)。本頁面重點關注 **Code** 標籤。


52 </Step>53 </Step>

53</Steps>54</Steps>

54 55 

55桌面應用程式包含 Claude Code。您無需單獨安裝 Node.js 或 CLI。若要從終端機使用 `claude`,請單獨安裝 CLI。請參閱 [開始使用 CLI](/docs/zh-TW/quickstart)。56桌面應用程式包含 Claude Code,因此您無需安裝 Node.js 或 CLI 即可使用 Code 標籤。

56 57 

57<h2 id="start-your-first-session">58<h2 id="start-your-first-session">

58 開始您的第一個工作階段59 開始您的第一個工作階段

Details

61 61 

62* **Manual**:無排程,只有在您按一下 **Run now** 時才執行。適用於儲存您按需觸發的提示62* **Manual**:無排程,只有在您按一下 **Run now** 時才執行。適用於儲存您按需觸發的提示

63* **Hourly**:每小時執行一次63* **Hourly**:每小時執行一次

64* **Daily**:顯示時間選擇器,預設為本機時間上午 9:0064* **Daily**:每天在您選擇的本機時間執行

65* **Weekdays**:與 Daily 相同,但跳過星期六和星期日65* **Weekdays**:與 Daily 相同,但跳過星期六和星期日

66* **Weekly**:顯示時間選擇器和日期選擇器66* **Weekly**:顯示時間選擇器和日期選擇器

67 67 

env-vars.md +11 −9

Details

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](/docs/zh-TW/model-config#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 視窗的模型上的工作階段保持在 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) |

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` 以停用 [顧問工具](/docs/zh-TW/advisor)。`/advisor` 命令變為不可用,任何配置的 `advisorModel` 都會被忽略,`--advisor` 旗標被接受但無效,因此傳遞它的現有指令碼繼續工作而不會出錯 |


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_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 或更新版本 |

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

257| `CLAUDE_CODE_DISABLE_CRON` | 設定為 `1` 以停用 [排程工作](/docs/zh-TW/scheduled-tasks)。`/loop` 技能和 cron 工具變為不可用,任何已排程的工作停止觸發,包括已在工作階段中執行的工作 |257| `CLAUDE_CODE_DISABLE_CRON` | 設定為 `1` 以停用 [排程工作](/docs/zh-TW/scheduled-tasks)。`/loop` 技能和 cron 工具變為不可用,任何已排程的工作停止觸發,包括已在工作階段中執行的工作 |

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_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_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_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_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_FAST_MODE` | 設定為 `1` 以停用 [快速模式](/docs/zh-TW/fast-mode) |261| `CLAUDE_CODE_DISABLE_FAST_MODE` | 設定為 `1` 以停用 [快速模式](/docs/zh-TW/fast-mode) |


271| `CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL` | 設定為 `1` 以停用官方外掛程式市場的自動註冊。Claude Code 在即將註冊市場時讀取變數,通常在機器的第一次互動啟動期間。如果變數在該點設定,Claude Code 會永久跳過註冊。稍後取消設定變數不會撤銷跳過。隨時執行 `claude plugin marketplace add anthropics/claude-plugins-official` 以註冊市場 |272| `CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL` | 設定為 `1` 以停用官方外掛程式市場的自動註冊。Claude Code 在即將註冊市場時讀取變數,通常在機器的第一次互動啟動期間。如果變數在該點設定,Claude Code 會永久跳過註冊。稍後取消設定變數不會撤銷跳過。隨時執行 `claude plugin marketplace add anthropics/claude-plugins-official` 以註冊市場 |

272| `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_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_POLICY_SKILLS` | 設定為 `1` 以跳過從系統範圍受管技能目錄載入技能。對於不應載入操作員佈建技能的容器或 CI 工作階段很有用 |274| `CLAUDE_CODE_DISABLE_POLICY_SKILLS` | 設定為 `1` 以跳過從系統範圍受管技能目錄載入技能。對於不應載入操作員佈建技能的容器或 CI 工作階段很有用 |

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 或更新版本 |

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 或更新版本 |

274| `CLAUDE_CODE_DISABLE_TERMINAL_TITLE` | 設定為 `1` 以停用基於對話上下文的自動終端標題更新。這也會跳過 [產生工作階段標題](/docs/zh-TW/sessions#name-your-sessions) 的背景小型/快速模型請求 |277| `CLAUDE_CODE_DISABLE_TERMINAL_TITLE` | 設定為 `1` 以停用基於對話上下文的自動終端標題更新。這也會跳過 [產生工作階段標題](/docs/zh-TW/sessions#name-your-sessions) 的背景小型/快速模型請求 |

275| `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 或 Fable 模型上關閉思考,它們無法關閉思考。在 [第三方提供者](/docs/zh-TW/third-party-integrations) 上,`MAX_THINKING_TOKENS=0` 同樣省略參數,因此兩個變數在那裡的行為相同 |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` 同樣省略參數,因此兩個變數在那裡的行為相同 |

276| `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_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 或更新版本 |

277| `CLAUDE_CODE_DISABLE_VIRTUAL_SCROLL` | 設定為 `1` 以停用 [全螢幕呈現](/docs/zh-TW/fullscreen) 中的虛擬捲軸並呈現文字記錄中的每條訊息。如果全螢幕模式中的捲軸顯示應該出現訊息的空白區域,請使用此選項 |280| `CLAUDE_CODE_DISABLE_VIRTUAL_SCROLL` | 設定為 `1` 以停用 [全螢幕呈現](/docs/zh-TW/fullscreen) 中的虛擬捲軸並呈現文字記錄中的每條訊息。如果全螢幕模式中的捲軸顯示應該出現訊息的空白區域,請使用此選項 |

278| `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_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 或更新版本 |


412| `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 或更新版本 |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 或更新版本 |

413| `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) 中忽略 |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) 中忽略 |

414| `CLAUDE_DISABLE_ADOPT` | 設定為 `1` 以停止進行中的背景工作,而不是在您按 `←` 或使用 [`/background`](/docs/zh-TW/agent-view#from-inside-a-session) 背景化工作階段時進行。Claude Code 要求您在背景化前確認,然後停止會否則進行的工作。需要 Claude Code v2.1.195 或更新版本 |417| `CLAUDE_DISABLE_ADOPT` | 設定為 `1` 以停止進行中的背景工作,而不是在您按 `←` 或使用 [`/background`](/docs/zh-TW/agent-view#from-inside-a-session) 背景化工作階段時進行。Claude Code 要求您在背景化前確認,然後停止會否則進行的工作。需要 Claude Code v2.1.195 或更新版本 |

415| `CLAUDE_EFFORT` | 在 Bash 工具子程序和 hook 命令中自動設定為子程序啟動時生效的 [effort 級別](/docs/zh-TW/model-config#adjust-effort-level):`low`、`medium`、`high`、`xhigh` 或 `max`。Ultracode 不是不同的級別,報告為 `xhigh`。符合傳遞給 [hooks](/docs/zh-TW/hooks) 的 `effort.level` 欄位。僅在目前模型支援 effort 參數時設定 |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 參數時設定 |

416| `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) |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) |

417| `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` 設定逾時 |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` 設定逾時 |

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


461| `IS_DEMO` | 設定為任何非空值(例如 `1`)以啟用演示模式:從標頭和 `/status` 輸出隱藏您的電子郵件和組織名稱,並跳過入門。**將其設定為 `0` 或 `false` 仍會啟用演示模式**,與大多數開啟/關閉變數不同;取消設定變數以關閉它。在串流或錄製工作階段時很有用 |464| `IS_DEMO` | 設定為任何非空值(例如 `1`)以啟用演示模式:從標頭和 `/status` 輸出隱藏您的電子郵件和組織名稱,並跳過入門。**將其設定為 `0` 或 `false` 仍會啟用演示模式**,與大多數開啟/關閉變數不同;取消設定變數以關閉它。在串流或錄製工作階段時很有用 |

462| `MAX_MCP_OUTPUT_TOKENS` | MCP 工具回應中允許的最大權杖數。Claude Code 在輸出超過 10,000 權杖時顯示警告。宣告 [`anthropic/maxResultSizeChars`](/docs/zh-TW/mcp#raise-the-limit-for-a-specific-tool) 的工具改為使用該字元限制用於文字內容,但來自這些工具的影像內容仍受此變數限制(預設:25000) |465| `MAX_MCP_OUTPUT_TOKENS` | MCP 工具回應中允許的最大權杖數。Claude Code 在輸出超過 10,000 權杖時顯示警告。宣告 [`anthropic/maxResultSizeChars`](/docs/zh-TW/mcp#raise-the-limit-for-a-specific-tool) 的工具改為使用該字元限制用於文字內容,但來自這些工具的影像內容仍受此變數限制(預設:25000) |

463| `MAX_STRUCTURED_OUTPUT_RETRIES` | 當模型的回應無法針對非互動模式中的 `-p` 旗標的 [`--json-schema`](/docs/zh-TW/cli-reference#cli-flags) 驗證時,Claude Code 允許的嘗試次數;在那麼多次失敗的嘗試後沒有有效輸出,執行失敗。當 [工作流](/docs/zh-TW/workflows) 子代理的結構化輸出無法驗證時,相同的上限適用。預設為 5,第一次嘗試加四次重試 |466| `MAX_STRUCTURED_OUTPUT_RETRIES` | 當模型的回應無法針對非互動模式中的 `-p` 旗標的 [`--json-schema`](/docs/zh-TW/cli-reference#cli-flags) 驗證時,Claude Code 允許的嘗試次數;在那麼多次失敗的嘗試後沒有有效輸出,執行失敗。當 [工作流](/docs/zh-TW/workflows) 子代理的結構化輸出無法驗證時,相同的上限適用。預設為 5,第一次嘗試加四次重試 |

464| `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 和 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` 關閉自適應推理的模型 |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` 關閉自適應推理的模型 |

465| `MCP_CLIENT_SECRET` | 需要 [預先配置認證](/docs/zh-TW/mcp#use-pre-configured-oauth-credentials) 的 MCP 伺服器的 OAuth 用戶端機密。在使用 `--client-secret` 新增伺服器時避免互動提示 |468| `MCP_CLIENT_SECRET` | 需要 [預先配置認證](/docs/zh-TW/mcp#use-pre-configured-oauth-credentials) 的 MCP 伺服器的 OAuth 用戶端機密。在使用 `--client-secret` 新增伺服器時避免互動提示 |

466| `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) 時,等待有更長的期限;請參閱該旗標的項目以了解快取伺服器例外 |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) 時,等待有更長的期限;請參閱該旗標的項目以了解快取伺服器例外 |

467| `MCP_CONNECT_TIMEOUT_MS` | 阻塞 MCP 啟動等待連線批次的時間(毫秒),然後才拍攝工具清單快照(預設:5000)。當 `MCP_CONNECTION_NONBLOCKING=0` 或伺服器標記 [`alwaysLoad: true`](/docs/zh-TW/mcp#exempt-a-server-from-deferral) 時適用。仍待處理的伺服器在期限處繼續在背景連線。與 `MCP_TIMEOUT` 不同,後者界限個別伺服器的連線嘗試 |470| `MCP_CONNECT_TIMEOUT_MS` | 阻塞 MCP 啟動等待連線批次的時間(毫秒),然後才拍攝工具清單快照(預設:5000)。當 `MCP_CONNECTION_NONBLOCKING=0` 或伺服器標記 [`alwaysLoad: true`](/docs/zh-TW/mcp#exempt-a-server-from-deferral) 時適用。仍待處理的伺服器在期限處繼續在背景連線。與 `MCP_TIMEOUT` 不同,後者界限個別伺服器的連線嘗試 |


506| `VERTEX_REGION_CLAUDE_4_7_OPUS` | 使用 Google Cloud 的 Agent Platform 時覆蓋 Claude Opus 4.7 的區域 |509| `VERTEX_REGION_CLAUDE_4_7_OPUS` | 使用 Google Cloud 的 Agent Platform 時覆蓋 Claude Opus 4.7 的區域 |

507| `VERTEX_REGION_CLAUDE_4_8_OPUS` | 使用 Google Cloud 的 Agent Platform 時覆蓋 Claude Opus 4.8 的區域 |510| `VERTEX_REGION_CLAUDE_4_8_OPUS` | 使用 Google Cloud 的 Agent Platform 時覆蓋 Claude Opus 4.8 的區域 |

508| `VERTEX_REGION_CLAUDE_5_5_OPUS` | 使用 Google Cloud 的 Agent Platform 時覆蓋 Claude Opus 5.5 的區域。在 v2.1.280 中新增 |511| `VERTEX_REGION_CLAUDE_5_5_OPUS` | 使用 Google Cloud 的 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 中新增 |

509| `VERTEX_REGION_CLAUDE_5_OPUS` | 使用 Google Cloud 的 Agent Platform 時覆蓋 Claude Opus 5 的區域。在 v2.1.219 中新增 |513| `VERTEX_REGION_CLAUDE_5_OPUS` | 使用 Google Cloud 的 Agent Platform 時覆蓋 Claude Opus 5 的區域。在 v2.1.219 中新增 |

510| `VERTEX_REGION_CLAUDE_5_SONNET` | 使用 Google Cloud 的 Agent Platform 時覆蓋 Claude Sonnet 5 的區域。在 v2.1.197 中新增 |514| `VERTEX_REGION_CLAUDE_5_SONNET` | 使用 Google Cloud 的 Agent Platform 時覆蓋 Claude Sonnet 5 的區域。在 v2.1.197 中新增 |

511| `VERTEX_REGION_CLAUDE_FABLE_5` | 使用 Google Cloud 的 Agent Platform 時覆蓋 Claude Fable 5 的區域。在 v2.1.170 中新增 |515| `VERTEX_REGION_CLAUDE_FABLE_5` | 使用 Google Cloud 的 Agent Platform 時覆蓋 Claude Fable 5 的區域。在 v2.1.170 中新增 |


528 532 

529擷取關閉時,您無法:533擷取關閉時,您無法:

530 534 

531* [在 Pro、Max 和 Team 方案上預設以自動模式啟動工作階段](/docs/zh-TW/permission-modes#which-mode-a-session-starts-in)

532* 讓 VS Code 擴充功能[讀取設定檔以取得起始權限模式](/docs/zh-TW/permission-modes#switch-permission-modes)

533* 執行 [`/auto-mode-setup`](/docs/zh-TW/auto-mode-config#generate-environment-entries) 來草擬 `autoMode.environment` 項目535* 執行 [`/auto-mode-setup`](/docs/zh-TW/auto-mode-config#generate-environment-entries) 來草擬 `autoMode.environment` 項目

534* 使用[遠端控制](/docs/zh-TW/remote-control#requirements)536* 使用[遠端控制](/docs/zh-TW/remote-control),其中設定 `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` 或 `DISABLE_GROWTHBOOK`。對於 `DISABLE_TELEMETRY` 和 `DO_NOT_TRACK`,請參閱[遠端控制需求](/docs/zh-TW/remote-control#requirements)

535* [訊息工作階段超越此機器](/docs/zh-TW/cross-session-messaging#message-sessions-on-other-machines);此機器上工作階段之間的訊息傳遞在擷取關閉時可運作537* [訊息工作階段超越此機器](/docs/zh-TW/cross-session-messaging#message-sessions-on-other-machines),當[遠端控制](/docs/zh-TW/remote-control#requirements)無法使用時。此機器上工作階段之間的訊息傳遞在擷取關閉時可運作

536* 執行 [`claude import` 或 `/import` 命令](/docs/zh-TW/cli-reference#cli-commands)538* 執行 [`claude import` 或 `/import` 命令](/docs/zh-TW/cli-reference#cli-commands)

537* 執行 [`/skill-doctor`](/docs/zh-TW/skills#find-unused-skills) 或在 `/plugin` **Stats** 標籤中開啟其報告539* 執行 [`/skill-doctor`](/docs/zh-TW/skills#find-unused-skills) 或在 `/plugin` **Stats** 標籤中開啟其報告

538* 同步為您的 claude.ai 帳戶啟用的[技能](/docs/zh-TW/skills#where-synced-skills-load)和[外掛程式](/docs/zh-TW/plugins/loading#synced-plugins)到您的終端工作階段540* 同步為您的 claude.ai 帳戶啟用的[技能](/docs/zh-TW/skills#where-synced-skills-load)和[外掛程式](/docs/zh-TW/plugins/loading#synced-plugins)到您的終端工作階段


548 安裝或升級後的第一個工作階段550 安裝或升級後的第一個工作階段

549</h3>551</h3>

550 552 

551在您安裝 Claude Code 或升級到新增功能的版本後的第一個工作階段中,[旗標閘道功能](#features-that-need-feature-flag-fetching)可能會遺失,工作階段可能會在原本以自動模式啟動的方案上以手動模式啟動。Claude Code 在該工作階段期間擷取旗標,因此兩者都會在您的下一個工作階段中出現。553在您安裝 Claude Code 或升級到新增功能的版本後的第一個工作階段中,[旗標閘道功能](#features-that-need-feature-flag-fetching)可能會遺失。該工作階段也可能以不同的[權限模式](/docs/zh-TW/permission-modes#which-mode-a-session-starts-in)啟動,而不是您稍後的工作階段。Claude Code 在該工作階段期間擷取旗標,因此您的下一個工作階段具有該功能和通常的起始權限模式。

552 554 

553在全新安裝後,在非互動式工作階段(例如 `claude -p`、Agent SDK 或 VS Code 擴充功能)中,Claude Code 仍可在[選擇起始權限模式](/docs/zh-TW/permission-modes#which-mode-a-session-starts-in)之前擷取旗標。555在全新安裝後,在非互動式工作階段(例如 `claude -p`、Agent SDK 或 VS Code 擴充功能)中,Claude Code 仍可在[選擇起始權限模式](/docs/zh-TW/permission-modes#which-mode-a-session-starts-in)之前擷取旗標。

554 556 

errors.md +552 −179

Details

24| :- | :- |24| :- | :- |

25| `API Error: 500 Internal server error` | [伺服器錯誤](#api-error-500-internal-server-error) |25| `API Error: 500 Internal server error` | [伺服器錯誤](#api-error-500-internal-server-error) |

26| `API Error: Repeated 529 Overloaded errors` | [伺服器錯誤](#api-error-repeated-529-overloaded-errors) |26| `API Error: Repeated 529 Overloaded errors` | [伺服器錯誤](#api-error-repeated-529-overloaded-errors) |

27| `Request timed out` | [伺服器錯誤](#request-timed-out),或如果訊息提及您的網際網路連線,則為[網路](#unable-to-connect-to-api) |27| `Opus is experiencing high load` / `Fable is experiencing high load` | [伺服器錯誤](#api-error-repeated-529-overloaded-errors) |

28| `Request timed out` | [伺服器錯誤](#request-timed-out),或如果訊息提及您的網路連線,則為[網路](#unable-to-connect-to-api) |

28| `API Error: No response from API` | [伺服器錯誤](#no-response-from-api) |29| `API Error: No response from API` | [伺服器錯誤](#no-response-from-api) |

29| `Server error mid-response. The response above may be incomplete.` | [伺服器錯誤](#the-response-above-may-be-incomplete) |30| `Server error mid-response. The response above may be incomplete.` | [伺服器錯誤](#the-response-above-may-be-incomplete) |

30| `Connection lost mid-response` / `Your computer went to sleep mid-response` / `The response stopped arriving` | [伺服器錯誤](#the-response-above-may-be-incomplete) |31| `Connection lost mid-response` / `Your computer went to sleep mid-response` / `The response stopped arriving` | [伺服器錯誤](#the-response-above-may-be-incomplete) |

31| `Connection closed mid-response` / `Response stalled mid-stream` | [伺服器錯誤](#the-response-above-may-be-incomplete) |32| `Connection closed mid-response` / `Response stalled mid-stream` | [伺服器錯誤](#the-response-above-may-be-incomplete) |

33| `Part of the response never arrived` / `The response stream was malformed` | [伺服器錯誤](#the-response-above-may-be-incomplete) |

34| `API Error: Content block not found` / `API Error: Content block already closed` / `API Error: Stream event unreadable` | [伺服器錯誤](#the-response-above-may-be-incomplete) |

32| `Connection lost before a response was produced` / `Your computer went to sleep before a response was produced` / `The response stalled before a response was produced` | [自動重試](#automatic-retries) |35| `Connection lost before a response was produced` / `Your computer went to sleep before a response was produced` / `The response stalled before a response was produced` | [自動重試](#automatic-retries) |

33| `Connection closed while thinking` / `Response stalled while thinking` | [自動重試](#automatic-retries) |36| `Connection closed while thinking` / `Response stalled while thinking` | [自動重試](#automatic-retries) |

34| `Connection lost while your computer was asleep` | [自動重試](#automatic-retries) |37| `Connection lost while your computer was asleep` | [自動重試](#automatic-retries) |


49| `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) |

50| `spend limit reached` / `spend limit unavailable` | [使用限制](#spend-limit-reached) |53| `spend limit reached` / `spend limit unavailable` | [使用限制](#spend-limit-reached) |

51| `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) |

56| `Authentication required · Sign in again to continue` | [驗證](#not-logged-in) |

52| `Could not resolve authentication method` | [驗證](#could-not-resolve-authentication-method) |57| `Could not resolve authentication method` | [驗證](#could-not-resolve-authentication-method) |

53| `Invalid API key` | [驗證](#invalid-api-key) |58| `Invalid API key` | [驗證](#invalid-api-key) |

54| `Your apiKeyHelper script is failing` | [驗證](#your-apikeyhelper-script-is-failing) |59| `Your apiKeyHelper script is failing` | [驗證](#your-apikeyhelper-script-is-failing) |


69| `signed-in claude.ai account or organization changed on this machine` | [驗證](#remote-control-stopped-because-the-signed-in-account-changed) |74| `signed-in claude.ai account or organization changed on this machine` | [驗證](#remote-control-stopped-because-the-signed-in-account-changed) |

70| `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) |

71| `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) |

72| `OAuth token revoked` / `OAuth token has expired` | [驗證](#oauth-token-revoked-or-expired) |78| `OAuth token revoked` / `OAuth token has expired` | [驗證](#oauth-token-revoked-or-expired) |

73| `API Error: 401 Invalid authentication credentials` | [驗證](#api-error-401-invalid-authentication-credentials) |79| `API Error: 401 Invalid authentication credentials` | [驗證](#api-error-401-invalid-authentication-credentials) |

74| `Login expired · Please run /login` | [驗證](#login-expired) |80| `Login expired · Please run /login` | [驗證](#login-expired) |


77| `Not signed in to the Cloud gateway — run /login.` | [驗證](#administrator-policy-requires-a-cloud-gateway-sign-in) |83| `Not signed in to the Cloud gateway — run /login.` | [驗證](#administrator-policy-requires-a-cloud-gateway-sign-in) |

78| `Administrator policy requires a Cloud gateway sign-in on this machine` | [驗證](#administrator-policy-requires-a-cloud-gateway-sign-in) |84| `Administrator policy requires a Cloud gateway sign-in on this machine` | [驗證](#administrator-policy-requires-a-cloud-gateway-sign-in) |

79| `Failed to authenticate: OAuth session expired and could not be refreshed` | [驗證](#login-expired) |85| `Failed to authenticate: OAuth session expired and could not be refreshed` | [驗證](#login-expired) |

86| `Could not refresh your login because another Claude Code process is refreshing it` | [驗證](#could-not-refresh-your-login) |

87| `Failed to refresh OAuth token: another Claude Code process is refreshing it or exited mid-refresh` | [驗證](#could-not-refresh-your-login) |

80| `Your account is on hold and can't use Claude Code. View details or appeal: https://claude.ai/restricted` | [驗證](#your-account-is-on-hold) |88| `Your account is on hold and can't use Claude Code. View details or appeal: https://claude.ai/restricted` | [驗證](#your-account-is-on-hold) |

81| `Your account is on hold and can't sign in to Claude Code. View details or appeal: https://claude.ai/restricted` | [驗證](#your-account-is-on-hold) |89| `Your account is on hold and can't sign in to Claude Code. View details or appeal: https://claude.ai/restricted` | [驗證](#your-account-is-on-hold) |

82| `Anthropic profile login expired · Re-authenticate your Anthropic profile` | [驗證](#anthropic-profile-login-expired) |90| `Anthropic profile login expired · Re-authenticate your Anthropic profile` | [驗證](#anthropic-profile-login-expired) |


120| `Couldn't reconnect to your Remote Control session` | [網路](#couldnt-reconnect-to-your-remote-control-session) |128| `Couldn't reconnect to your Remote Control session` | [網路](#couldnt-reconnect-to-your-remote-control-session) |

121| `N sessions ended while this machine was offline — the environment was cleaned up on the server and can't be resumed.` | [網路](#sessions-ended-while-this-machine-was-offline) |129| `N sessions ended while this machine was offline — the environment was cleaned up on the server and can't be resumed.` | [網路](#sessions-ended-while-this-machine-was-offline) |

122| `Couldn't share the transcript.` | [網路](#couldnt-share-the-transcript) |130| `Couldn't share the transcript.` | [網路](#couldnt-share-the-transcript) |

131| `Couldn't send feedback` | [網路](#couldnt-send-feedback) |

123| `Prompt is too long` / `Input is too long for requested model` | [請求錯誤](#prompt-is-too-long) |132| `Prompt is too long` / `Input is too long for requested model` | [請求錯誤](#prompt-is-too-long) |

124| `Prompt is too long · automatic compaction failed:` | [請求錯誤](#prompt-is-too-long) |133| `Prompt is too long · automatic compaction failed:` | [請求錯誤](#prompt-is-too-long) |

125| `Prompt is too long · this conversation is a single exchange` / `A single-exchange conversation cannot be compacted` | [請求錯誤](#prompt-is-too-long) |134| `Prompt is too long · this conversation is a single exchange` / `A single-exchange conversation cannot be compacted` | [請求錯誤](#prompt-is-too-long) |


139| `PDF too large` / `PDF is password protected` | [請求錯誤](#pdf-errors) |148| `PDF too large` / `PDF is password protected` | [請求錯誤](#pdf-errors) |

140| `Extra inputs are not permitted` | [請求錯誤](#extra-inputs-are-not-permitted) |149| `Extra inputs are not permitted` | [請求錯誤](#extra-inputs-are-not-permitted) |

141| `API Error: 400 ... tools.N.custom.input_schema: JSON schema is invalid` / `Property keys should match pattern` | [請求錯誤](#tool-input-schema-is-invalid) |150| `API Error: 400 ... tools.N.custom.input_schema: JSON schema is invalid` / `Property keys should match pattern` | [請求錯誤](#tool-input-schema-is-invalid) |

151| `tool_use.name: String should have at most 200 characters` | [請求錯誤](#tool-use-name-over-200-characters) |

142| `There's an issue with the selected model` | [請求錯誤](#theres-an-issue-with-the-selected-model) |152| `There's an issue with the selected model` | [請求錯誤](#theres-an-issue-with-the-selected-model) |

143| `Model ... is not a recognized model id` | [請求錯誤](#model-is-not-a-recognized-model-id) |153| `Model ... is not a recognized model id` | [請求錯誤](#model-is-not-a-recognized-model-id) |

144| `Model ... not found` | [請求錯誤](#model-not-found) |154| `Model ... not found` | [請求錯誤](#model-not-found) |

155| `API error: ... · model not changed` | [請求錯誤](#api-error-model-not-changed) |

145| `Claude Opus is not available with the Claude Pro plan` | [請求錯誤](#claude-opus-is-not-available-with-the-claude-pro-plan) |156| `Claude Opus is not available with the Claude Pro plan` | [請求錯誤](#claude-opus-is-not-available-with-the-claude-pro-plan) |

146| `Claude Code ... does not support this model; version ... or newer is required` | [請求錯誤](#claude-code-does-not-support-this-model) |157| `Claude Code ... does not support this model; version ... or newer is required` | [請求錯誤](#claude-code-does-not-support-this-model) |

147| `Claude Code ... is older than the minimum version required by your organization's policy` | [請求錯誤](#claude-code-does-not-support-this-model) |158| `Claude Code ... is older than the minimum version required by your organization's policy` | [請求錯誤](#claude-code-does-not-support-this-model) |

148| `Model ... is restricted by your organization's settings` | [請求錯誤](#model-is-restricted-by-your-organizations-settings) |159| `Model ... is restricted by your organization's settings` | [請求錯誤](#model-is-restricted-by-your-organizations-settings) |

160| `Model ... is not available. Your organization restricts model selection.` | [請求錯誤](#model-is-restricted-by-your-organizations-settings) |

149| `Model switch ... blocked by a PreModelSwitch hook` | [請求錯誤](#model-switch-was-blocked-by-a-premodelswitch-hook) |161| `Model switch ... blocked by a PreModelSwitch hook` | [請求錯誤](#model-switch-was-blocked-by-a-premodelswitch-hook) |

150| `couldn't save it as your default` / `couldn't confirm it was saved as your default` | [請求錯誤](#couldnt-save-it-as-your-default) |162| `couldn't save it as your default` / `couldn't confirm it was saved as your default` | [請求錯誤](#couldnt-save-it-as-your-default) |

151| `thinking.type.enabled is not supported for this model` | [請求錯誤](#thinking-type-enabled-is-not-supported-for-this-model) |163| `thinking.type.enabled is not supported for this model` | [請求錯誤](#thinking-type-enabled-is-not-supported-for-this-model) |


155| `API Error: 400 due to tool use concurrency issues` | [請求錯誤](#tool-use-or-thinking-block-mismatch) |167| `API Error: 400 due to tool use concurrency issues` | [請求錯誤](#tool-use-or-thinking-block-mismatch) |

156| `API Error: 400 orphaned tool_result in conversation history` | [請求錯誤](#tool-use-or-thinking-block-mismatch) |168| `API Error: 400 orphaned tool_result in conversation history` | [請求錯誤](#tool-use-or-thinking-block-mismatch) |

157| `API Error: 400 duplicate tool_use ID in conversation history` | [請求錯誤](#tool-use-or-thinking-block-mismatch) |169| `API Error: 400 duplicate tool_use ID in conversation history` | [請求錯誤](#tool-use-or-thinking-block-mismatch) |

170| `Invalid data in redacted_thinking block` | [請求錯誤](#invalid-data-in-redacted-thinking-block) |

158| `[Unsupported tool content removed]` | [請求錯誤](#unsupported-tool-content-removed) |171| `[Unsupported tool content removed]` | [請求錯誤](#unsupported-tool-content-removed) |

159| `role 'system' must precede an 'assistant' message` | [請求錯誤](#role-system-must-precede-an-assistant-message) |172| `role 'system' must precede an 'assistant' message` | [請求錯誤](#role-system-must-precede-an-assistant-message) |

160| `Invalid encrypted_content in search_result block` / `Invalid encrypted_index in text block` / `Failed to decrypt web search result content` | [請求錯誤](#invalid-encrypted-content-in-search-result-block) |173| `Invalid encrypted_content in search_result block` / `Invalid encrypted_index in text block` / `Failed to decrypt web search result content` | [請求錯誤](#invalid-encrypted-content-in-search-result-block) |

174| `Invalid encrypted_stdout in encrypted_code_execution_result block` | [請求錯誤](#invalid-encrypted-content-in-search-result-block) |

161| `server_tool_use.name: Input should be` on every turn of a resumed session | [請求錯誤](#unsupported-tool-content-removed) |175| `server_tool_use.name: Input should be` on every turn of a resumed session | [請求錯誤](#unsupported-tool-content-removed) |

162| `<model> can't help with this. Start a new session to continue` | [請求錯誤](#usage-policy-refusal) |176| `<model> can't help with this. Start a new session to continue` | [請求錯誤](#usage-policy-refusal) |

163| `Claude Code is unable to respond to this request, which appears to violate our Usage Policy` | [請求錯誤](#usage-policy-refusal) |177| `Claude Code is unable to respond to this request, which appears to violate our Usage Policy` | [請求錯誤](#usage-policy-refusal) |

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

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

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

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

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


173| `Couldn't verify your organization's policy for cloud sessions` | [命令列錯誤](#cloud-sessions-are-disabled-by-your-organizations-policy) |187| `Couldn't verify your organization's policy for cloud sessions` | [命令列錯誤](#cloud-sessions-are-disabled-by-your-organizations-policy) |

174| `Error: --json-schema is not a valid JSON Schema` | [命令列錯誤](#command-line-errors) |188| `Error: --json-schema is not a valid JSON Schema` | [命令列錯誤](#command-line-errors) |

175| `Error: Invalid --agents configuration:` | [命令列錯誤](#invalid-agents-configuration) |189| `Error: Invalid --agents configuration:` | [命令列錯誤](#invalid-agents-configuration) |

190| `Error: --agents takes a JSON object, or a file path only with --print (-p)` | [命令列錯誤](#invalid-agents-configuration) |

191| `Error: --agents file not found` | [命令列錯誤](#invalid-agents-configuration) |

176| `Error: Settings file exceeds the 2MiB limit` | [命令列錯誤](#settings-file-exceeds-the-2mib-limit) |192| `Error: Settings file exceeds the 2MiB limit` | [命令列錯誤](#settings-file-exceeds-the-2mib-limit) |

177| `The current directory no longer exists (it was deleted or moved)` / `Can't read the current directory` | [命令列錯誤](#the-current-directory-no-longer-exists) |193| `The current directory no longer exists (it was deleted or moved)` / `Can't read the current directory` | [命令列錯誤](#the-current-directory-no-longer-exists) |

178| `Temp directory <dir> ... Refusing to use it` / `ENOSPC: no space left on device, mkdir '<dir>'` | [命令列錯誤](#temp-directory-refused-or-cannot-be-created) |194| `Temp directory <dir> ... Refusing to use it` / `ENOSPC: no space left on device, mkdir '<dir>'` | [命令列錯誤](#temp-directory-refused-or-cannot-be-created) |


207| `Single sign-on authorization needed` | [命令列錯誤](#single-sign-on-authorization-needed) |223| `Single sign-on authorization needed` | [命令列錯誤](#single-sign-on-authorization-needed) |

208| `Failed to resume the conversation` | [命令列錯誤](#failed-to-resume-the-conversation) |224| `Failed to resume the conversation` | [命令列錯誤](#failed-to-resume-the-conversation) |

209| `No conversation found with session ID: <session-id>` | [命令列錯誤](#no-conversation-found-with-the-session-id) |225| `No conversation found with session ID: <session-id>` | [命令列錯誤](#no-conversation-found-with-the-session-id) |

226| `Windows reported an error (EBADF) when Claude Code read this session's transcript file` | [命令列錯誤](#windows-reported-an-error-ebadf) |

210| `Cannot switch renderers in this session` | [命令列錯誤](#cannot-switch-renderers-in-this-session) |227| `Cannot switch renderers in this session` | [命令列錯誤](#cannot-switch-renderers-in-this-session) |

211| `Cannot switch renderers while work is running in the background` | [命令列錯誤](#cannot-switch-renderers-in-this-session) |228| `Cannot switch renderers while work is running in the background` | [命令列錯誤](#cannot-switch-renderers-in-this-session) |

212| `Couldn't open Claude Desktop` | [命令列錯誤](#couldnt-open-claude-desktop) |229| `Couldn't open Claude Desktop` | [命令列錯誤](#couldnt-open-claude-desktop) |


218| `Output styles are saved to local settings (.claude/settings.local.json), which this session doesn't load` | [命令列錯誤](#output-styles-are-saved-to-local-settings-which-this-session-doesnt-load) |235| `Output styles are saved to local settings (.claude/settings.local.json), which this session doesn't load` | [命令列錯誤](#output-styles-are-saved-to-local-settings-which-this-session-doesnt-load) |

219| `` `plugin eval` is currently in early access `` / `` `plugin eval` is currently unavailable `` | [Plugin 錯誤](#plugin-eval-is-currently-in-early-access) |236| `` `plugin eval` is currently in early access `` / `` `plugin eval` is currently unavailable `` | [Plugin 錯誤](#plugin-eval-is-currently-in-early-access) |

220| `Marketplace "<name>" is registered from an untrusted source` | [Plugin 錯誤](#marketplace-is-registered-from-an-untrusted-source) |237| `Marketplace "<name>" is registered from an untrusted source` | [Plugin 錯誤](#marketplace-is-registered-from-an-untrusted-source) |

238| `Claude Code refuses the marketplace name "<name>"` | [Plugin 錯誤](#claude-code-refuses-the-marketplace-name) |

239| `Marketplace name impersonates an official Anthropic/Claude marketplace` | [Plugin 錯誤](#claude-code-refuses-the-marketplace-name) |

221| `Marketplace "<name>" is already added from a different source` | [Plugin 錯誤](#marketplace-is-already-added-from-a-different-source) |240| `Marketplace "<name>" is already added from a different source` | [Plugin 錯誤](#marketplace-is-already-added-from-a-different-source) |

222| `"<name>" is another spelling of "<reserved>", a reserved marketplace name` | [Plugin 錯誤](#marketplace-name-is-another-spelling-of-a-reserved-name) |241| `"<name>" is another spelling of "<reserved>", a reserved marketplace name` | [Plugin 錯誤](#marketplace-name-is-another-spelling-of-a-reserved-name) |

223| `references ${user_config.*} in a shell-form command` | [Plugin 錯誤](#plugin-command-references-user-config) |242| `references ${user_config.*} in a shell-form command` | [Plugin 錯誤](#plugin-command-references-user-config) |


231| `Failed to load marketplace configuration` | [Plugin 錯誤](#failed-to-load-marketplace-configuration) |250| `Failed to load marketplace configuration` | [Plugin 錯誤](#failed-to-load-marketplace-configuration) |

232| `Marketplace configuration file is corrupted` | [Plugin 錯誤](#failed-to-load-marketplace-configuration) |251| `Marketplace configuration file is corrupted` | [Plugin 錯誤](#failed-to-load-marketplace-configuration) |

233| `Plugin "<name>@synced" is required by your organization and can't be disabled here` | [Plugin 錯誤](#plugin-is-required-by-your-organization) |252| `Plugin "<name>@synced" is required by your organization and can't be disabled here` | [Plugin 錯誤](#plugin-is-required-by-your-organization) |

253| `"<plugin>" was not uninstalled: it is still switched on in <file>` | [Plugin 錯誤](#plugin-was-not-uninstalled) |

254| `"<plugin>" was not uninstalled: <file> is there and could not be read` | [Plugin 錯誤](#plugin-was-not-uninstalled) |

234| `would be spawned with zero tools — refusing` | [工具錯誤](#agent-would-be-spawned-with-zero-tools) |255| `would be spawned with zero tools — refusing` | [工具錯誤](#agent-would-be-spawned-with-zero-tools) |

235| `File is covered by a Read deny rule in your permission settings` | [工具錯誤](#file-is-covered-by-a-read-deny-rule) |256| `File is covered by a Read deny rule in your permission settings` | [工具錯誤](#file-is-covered-by-a-read-deny-rule) |

257| `cannot contain null bytes (\0)` | [工具錯誤](#path-cannot-contain-null-bytes) |

258| `Path contains null bytes` | [工具錯誤](#path-cannot-contain-null-bytes) |

236| `subagent_type is required: the general-purpose agent is not available in this session` | [工具錯誤](#subagent-type-is-required) |259| `subagent_type is required: the general-purpose agent is not available in this session` | [工具錯誤](#subagent-type-is-required) |

237| `Error: this write left the memory index at MEMORY.md at ..., over its ... read limit` | [工具錯誤](#memory-index-is-over-its-read-limit) |260| `Error: this write left the memory index at MEMORY.md at ..., over its ... read limit` | [工具錯誤](#memory-index-is-over-its-read-limit) |

238| `pkill: refusing to run` | [工具錯誤](#pkill-pattern-matches-the-claude-code-process) |261| `pkill: refusing to run` | [工具錯誤](#pkill-pattern-matches-the-claude-code-process) |


248| `Refusing to read <path>: its symlink resolution changed after permission was checked (<reason>)` / `Refusing to search <path>: its symlink resolution changed after permission was checked` | [工具錯誤](#refusing-after-a-symlink-changed) |271| `Refusing to read <path>: its symlink resolution changed after permission was checked (<reason>)` / `Refusing to search <path>: its symlink resolution changed after permission was checked` | [工具錯誤](#refusing-after-a-symlink-changed) |

249| `Refusing to write <path>: its parent-directory symlink resolution changed after permission was checked` / `Refusing to write <path>: it is a symbolic link. Write to the link's target path instead` | [工具錯誤](#refusing-after-a-symlink-changed) |272| `Refusing to write <path>: its parent-directory symlink resolution changed after permission was checked` / `Refusing to write <path>: it is a symbolic link. Write to the link's target path instead` | [工具錯誤](#refusing-after-a-symlink-changed) |

250| `Refusing to write through symlink: <path>` / `Refusing to write into symlinked directory: <path>` | [工具錯誤](#refusing-after-a-symlink-changed) |273| `Refusing to write through symlink: <path>` / `Refusing to write into symlinked directory: <path>` | [工具錯誤](#refusing-after-a-symlink-changed) |

274| `Refusing to write <path>: where it leads on disk could not be determined` / `Refusing to read <path>: where it leads on disk could not be determined` | [工具錯誤](#refusing-after-a-symlink-changed) |

251| `Refusing to search <path>: a path one of its Read deny rules is written through changed while the search was being prepared` / `Refusing to search <path>: it could not be opened` | [工具錯誤](#refusing-after-a-symlink-changed) |275| `Refusing to search <path>: a path one of its Read deny rules is written through changed while the search was being prepared` / `Refusing to search <path>: it could not be opened` | [工具錯誤](#refusing-after-a-symlink-changed) |

252| `its permission check expired before it ran (too many concurrent file operations)` / `ripgrep was found only by name on PATH` | [工具錯誤](#refusing-after-a-symlink-changed) |276| `its permission check expired before it ran (too many concurrent file operations)` / `ripgrep was found only by name on PATH` | [工具錯誤](#refusing-after-a-symlink-changed) |

253| `task output swap refused (tasks dir moved or linked)` | [工具錯誤](#task-output-swap-refused) |277| `task output swap refused (tasks dir moved or linked)` | [工具錯誤](#task-output-swap-refused) |

254| `Command killed: its output file was replaced or could no longer be verified` | [工具錯誤](#task-output-swap-refused) |278| `Command killed: its output file was replaced or could no longer be verified` | [工具錯誤](#task-output-swap-refused) |

279| `Your disk quota is full on the filesystem with Claude Code's temp directory <dir> (EDQUOT)` | [工具錯誤](#disk-quota-or-temp-filesystem-is-full) |

280| `The filesystem with Claude Code's temp directory <dir>, or your disk quota on it, is full (ENOSPC)` | [工具錯誤](#disk-quota-or-temp-filesystem-is-full) |

281| `Command output was lost: the temp filesystem at <dir> is full` / `is out of inodes` | [工具錯誤](#disk-quota-or-temp-filesystem-is-full) |

255| `the source file is not valid UTF-8 text` / `the source file is not valid UTF-16 text` | [工具錯誤](#the-source-file-is-not-valid-utf-8-text) |282| `the source file is not valid UTF-8 text` / `the source file is not valid UTF-16 text` | [工具錯誤](#the-source-file-is-not-valid-utf-8-text) |

256| `the source file has the replacement character U+FFFD` | [工具錯誤](#the-source-file-is-not-valid-utf-8-text) |283| `the source file has the replacement character U+FFFD` | [工具錯誤](#the-source-file-is-not-valid-utf-8-text) |

257| `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) |284| `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) |


279| `EACCES: permission denied, posix_spawn` | [背景工作階段錯誤](#eacces-when-starting-a-background-session) |306| `EACCES: permission denied, posix_spawn` | [背景工作階段錯誤](#eacces-when-starting-a-background-session) |

280| `exited before it became reachable` | [背景工作階段錯誤](#background-service-exited-before-it-became-reachable) |307| `exited before it became reachable` | [背景工作階段錯誤](#background-service-exited-before-it-became-reachable) |

281| `Couldn't start a background session (working directory no longer exists or is not accessible: ...)` | [背景工作階段錯誤](#working-directory-no-longer-exists-when-starting-a-background-session) |308| `Couldn't start a background session (working directory no longer exists or is not accessible: ...)` | [背景工作階段錯誤](#working-directory-no-longer-exists-when-starting-a-background-session) |

309| `Workspace not trusted.` when starting or restarting a background session | [背景工作階段錯誤](#workspace-not-trusted-when-dispatching-a-background-session) |

282| `Claude Code is being updated by npm on this machine (still not runnable after 2 min, ...)` | [背景工作階段錯誤](#eacces-when-starting-a-background-session) |310| `Claude Code is being updated by npm on this machine (still not runnable after 2 min, ...)` | [背景工作階段錯誤](#eacces-when-starting-a-background-session) |

283| `Claude Code process exited with code N` | [包裝程式和 IDE 錯誤](#claude-code-process-exited-with-code-n) |311| `Claude Code process exited with code N` | [包裝程式和 IDE 錯誤](#claude-code-process-exited-with-code-n) |

284| `The connection to Claude Code ended before this message completed` | [包裝程式和 IDE 錯誤](#the-connection-to-claude-code-ended-before-this-message-completed) |312| `The connection to Claude Code ended before this message completed` | [包裝程式和 IDE 錯誤](#the-connection-to-claude-code-ended-before-this-message-completed) |


291| `Claude Code's fullscreen renderer didn't finish starting last time on this machine` / `Claude Code's fullscreen renderer has repeatedly failed to start on this machine` | [設定警告](#fullscreen-failed-start-notice) |319| `Claude Code's fullscreen renderer didn't finish starting last time on this machine` / `Claude Code's fullscreen renderer has repeatedly failed to start on this machine` | [設定警告](#fullscreen-failed-start-notice) |

292| `Claude Code exited after an unrecoverable interface error (...)` | [設定警告](#exited-after-an-unrecoverable-interface-error) |320| `Claude Code exited after an unrecoverable interface error (...)` | [設定警告](#exited-after-an-unrecoverable-interface-error) |

293| `Agent descriptions are over the 15.0k-token limit` | [設定警告](#agent-descriptions-are-over-the-15000-token-limit) |321| `Agent descriptions are over the 15.0k-token limit` | [設定警告](#agent-descriptions-are-over-the-15000-token-limit) |

322| `Not loaded: rename <path>, then restart — its name uses "<name>", a name reserved for the skills synced from your claude.ai account` | [設定警告](#a-skill-command-or-workflow-wasnt-loaded-because-its-name-is-reserved) |

294| `Ignoring N permissions.allow entries from ... this workspace has not been trusted` | [設定警告](#workspace-has-not-been-trusted) |323| `Ignoring N permissions.allow entries from ... this workspace has not been trusted` | [設定警告](#workspace-has-not-been-trusted) |

295| `is a network path, which cannot be added as a working directory` | [設定警告](#working-directory-is-a-network-path) |324| `is a network path, which cannot be added as a working directory` | [設定警告](#working-directory-is-a-network-path) |

296| `Remote managed settings failed to load (<cause>)` | [設定警告](#remote-managed-settings-failed-to-load) |325| `Remote managed settings failed to load (<cause>)` | [設定警告](#remote-managed-settings-failed-to-load) |

297| `Managed settings were not approved; exiting without applying them.` | [設定警告](#managed-settings-were-not-approved) |326| `Managed settings were not approved; exiting without applying them.` | [設定警告](#managed-settings-were-not-approved) |

327| `Claude Code can't start: your organization's managed settings block the default model` / `Claude Code can't start: your organization allows only the models listed in "availableModels"` | [設定警告](#managed-settings-block-the-default-model) |

298| `MCP server <name> is blocked by enterprise managed policy` | [設定警告](#mcp-server-is-blocked-by-enterprise-managed-policy) |328| `MCP server <name> is blocked by enterprise managed policy` | [設定警告](#mcp-server-is-blocked-by-enterprise-managed-policy) |

299| `Managed settings document could not be parsed as a JSON object; none of its settings are in effect. Fix or remove it.` | [設定警告](#managed-settings-document-could-not-be-parsed) |329| `Managed settings document could not be parsed as a JSON object; none of its settings are in effect. Fix or remove it.` | [設定警告](#managed-settings-document-could-not-be-parsed) |

300| `Managed settings drop-in directory could not be read` | [設定警告](#managed-settings-document-could-not-be-parsed) |330| `Managed settings drop-in directory could not be read` | [設定警告](#managed-settings-document-could-not-be-parsed) |


390 420 

391尾部句子名稱檢查服務健康狀況的位置,並因提供者而異。Amazon Bedrock、Google Cloud 的 Agent Platform 和 Microsoft Foundry 設定會名稱該提供者的服務狀態。自訂 `ANTHROPIC_BASE_URL` 會名稱閘道主機。421尾部句子名稱檢查服務健康狀況的位置,並因提供者而異。Amazon Bedrock、Google Cloud 的 Agent Platform 和 Microsoft Foundry 設定會名稱該提供者的服務狀態。自訂 `ANTHROPIC_BASE_URL` 會名稱閘道主機。

392 422 

393這表示 API 內部發生意外故障。它不是由您的提示、設定或帳戶引起的。423來自 API 本身的 5xx 表示 API 內部發生意外故障。它不是由您的提示、設定或帳戶引起的。

424 

425當代理、負載平衡器或閘道以 HTML 錯誤頁面回應時,訊息會顯示狀態碼和頁面的標題,例如 `API Error: 502 Bad Gateway`。對於沒有標題的頁面,訊息會改為顯示狀態碼及其標準名稱。在 v2.1.281 之前,當頁面有標題時狀態碼被丟棄,當頁面沒有標題時列印頁面的原始標記。

394 426 

395**該怎麼做:**427**該怎麼做:**

396 428 


416 448 

417* 檢查 [status.claude.com](https://status.claude.com) 或訊息中名稱的提供者狀態頁面,查看容量通知449* 檢查 [status.claude.com](https://status.claude.com) 或訊息中名稱的提供者狀態頁面,查看容量通知

418* 在幾分鐘後重試450* 在幾分鐘後重試

419* 執行 `/model` 並切換到不同的模型以繼續工作,因為容量是按模型追蹤的。Claude Code 會在一個模型負載特別高時提示您執行此操作,例如 `Opus is experiencing high load, please use /model to switch to Sonnet`。451* 執行 `/model` 並切換到不同的模型以繼續工作,因為容量是按模型追蹤的。Claude Code 會在一個模型負載特別高時提示您執行此操作,例如 `Opus is experiencing high load, please use /model to switch to Sonnet`。在 Fable 模型上,訊息會名稱 Fable。

452 

453 在 Claude Desktop 應用程式執行的工作階段中,例如 Code 標籤或 Cowork,訊息讀作 `Opus is experiencing high load. Switch to Sonnet.`,您可以使用應用程式的模型選擇器切換模型。

420 454 

421<h3 id="request-timed-out">455<h3 id="request-timed-out">

422 Request timed out456 Request timed out


474API Error: Connection lost mid-response. The response above may be incomplete.508API Error: Connection lost mid-response. The response above may be incomplete.

475API Error: Your computer went to sleep mid-response. The response above may be incomplete.509API Error: Your computer went to sleep mid-response. The response above may be incomplete.

476API Error: The response stopped arriving. The response above may be incomplete.510API Error: The response stopped arriving. The response above may be incomplete.

511API Error: Part of the response never arrived. The response above may be incomplete.

512API Error: The response stream was malformed. The response above may be incomplete.

477```513```

478 514 

479* `Server error mid-response`:中流過載或 5xx 伺服器錯誤。此變體需要 Claude Code v2.1.199 或更高版本;在此之前,該情況會丟棄部分輸出並將整個輪次報告為錯誤。515* `Server error mid-response`:中流過載或 5xx 伺服器錯誤。此變體需要 Claude Code v2.1.199 或更高版本;在此之前,該情況會丟棄部分輸出並將整個輪次報告為錯誤。

480* `Connection lost mid-response`:連線中斷。516* `Connection lost mid-response`:連線中斷。您也會在代理或閘道在回應完成之前乾淨地結束回應正文時看到此變體。

481* `Your computer went to sleep mid-response`:Claude Code 偵測到您的電腦在回應串流時進入睡眠狀態。一旦您的電腦喚醒,Claude Code 會將連線視為中斷並停止從中讀取。517* `Your computer went to sleep mid-response`:Claude Code 偵測到您的電腦在回應串流時進入睡眠狀態。一旦您的電腦喚醒,Claude Code 會將連線視為中斷並停止從中讀取。

518* `Part of the response never arrived`:串流事件在 API 和 Claude Code 之間被丟棄,因此稍後的事件參考了從未到達的內容。在 v2.1.281 之前,此情況以 `API Error: Content block not found` 結束該輪次。

519* `The response stream was malformed`:已完成的內容區塊到達了事件,或事件到達時已損壞。損壞的事件是指其資料不是有效 JSON、其內容遺失或其內容與事件類型不符的事件。在 v2.1.284 之前,當具有無效 JSON 的事件在 Claude 完成其思考、文字區塊或工具呼叫後到達時,解析器的原始錯誤(例如以 `API Error: JSON Parse error` 開頭的錯誤)會出現。

482* `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)。520* `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)。

483 521 

484在 v2.1.227 之前,`Connection lost mid-response` 讀作 `Connection closed mid-response`,`The response stopped arriving` 讀作 `Response stalled mid-stream`。522在 v2.1.227 之前,`Connection lost mid-response` 讀作 `Connection closed mid-response`,`The response stopped arriving` 讀作 `Response stalled mid-stream`。

485 523 

524當丟棄、重複或損壞的串流事件在 Claude 開始任何文字或工具呼叫之前到達時,您看不到此通知:

525 

526* 如果 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.` 結束。

527* 如果沒有完成任何內容,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` 或解析器的原始錯誤結束。

528 

486在四種情況下,Claude Code 會在不立即顯示此通知的情況下處理故障:529在四種情況下,Claude Code 會在不立即顯示此通知的情況下處理故障:

487 530 

488* 在回應的早期,Claude Code 要麼重試故障,要麼以不同的錯誤結束輪次。請參閱[自動重試](#automatic-retries)。531* 在回應的早期,Claude Code 要麼重試故障,要麼以不同的錯誤結束輪次。請參閱[自動重試](#automatic-retries)。


668API Error: Usage credits required for 1M context · run /usage-credits to turn them on (they take effect after you restart Claude Code), or /model to switch to standard context711API Error: Usage credits required for 1M context · run /usage-credits to turn them on (they take effect after you restart Claude Code), or /model to switch to standard context

669```712```

670 713 

714在 Claude 桌面應用程式執行的工作階段中,提示不會命名任何命令:它指向 claude.ai 使用量設定頁面,或在 Team 和 Enterprise 方案上說在 claude.ai/admin-settings/usage 開啟使用額度,或要求您的管理員。

715 

671這是權利檢查,而非配額耗盡。即使您的工作階段和每週額度有剩餘容量,它也會觸發。請參閱[擴展上下文](/docs/zh-TW/model-config#extended-context)以了解哪些方案直接包括 1M 上下文,哪些需要使用額度。Claude Code 在您使用 `/model` 選擇模型時執行此檢查,且僅在直接連接到 Anthropic API 時執行;如果您將 `ANTHROPIC_BASE_URL` 指向[LLM 閘道](/docs/zh-TW/llm-gateway),`/model` 允許 `[1m]` 選擇,閘道決定請求是否成功。716這是權利檢查,而非配額耗盡。即使您的工作階段和每週額度有剩餘容量,它也會觸發。請參閱[擴展上下文](/docs/zh-TW/model-config#extended-context)以了解哪些方案直接包括 1M 上下文,哪些需要使用額度。Claude Code 在您使用 `/model` 選擇模型時執行此檢查,且僅在直接連接到 Anthropic API 時執行;如果您將 `ANTHROPIC_BASE_URL` 指向[LLM 閘道](/docs/zh-TW/llm-gateway),`/model` 允許 `[1m]` 選擇,閘道決定請求是否成功。

672 717 

673當此錯誤在對話中期出現,因為上下文增長超過 200K 權杖時,Claude Code 會自動將對話壓縮回標準上下文限制以下,並之後將工作階段保持在該限制,因此無需採取任何行動。在 v2.1.172 之前的版本上,錯誤會在每個後續請求(包括 `/compact`)上重複;在這些版本上執行 `/clear` 以恢復。以下步驟適用於您明確選擇 `[1m]` 模型的情況。718當此錯誤在對話中期出現,因為上下文增長超過 200K 權杖時,Claude Code 會自動將對話壓縮回標準上下文限制以下,並之後將工作階段保持在該限制,因此無需採取任何行動。在 v2.1.172 之前的版本上,錯誤會在每個後續請求(包括 `/compact`)上重複;在這些版本上執行 `/clear` 以恢復。以下步驟適用於您明確選擇 `[1m]` 模型的情況。


733 778 

734尾部句子命名檢查服務健康狀況的位置,並因提供者而異。Amazon Bedrock、Google Cloud 的 Agent Platform 和 Microsoft Foundry 設定會命名該提供者的服務狀態,而不是 Anthropic 狀態頁面。自訂 `ANTHROPIC_BASE_URL` 會命名閘道主機。779尾部句子命名檢查服務健康狀況的位置,並因提供者而異。Amazon Bedrock、Google Cloud 的 Agent Platform 和 Microsoft Foundry 設定會命名該提供者的服務狀態,而不是 Anthropic 狀態頁面。自訂 `ANTHROPIC_BASE_URL` 會命名閘道主機。

735 780 

781當代理、負載平衡器或 Claude Code 與 API 之間的閘道以其自己的 HTML 429 頁面回應時,`·` 後面的文字是該頁面的標題(如果有的話),例如 `Too Many Requests`。在 v2.1.281 之前,整個頁面的標記被列印在 `·` 後面。

782 

736**該怎麼做:**783**該怎麼做:**

737 784 

738* 執行 `/status` 並確認作用中的認證是您預期的認證。環境中的流浪 `ANTHROPIC_API_KEY` 可能會透過低階金鑰而不是您的訂閱路由請求。785* 執行 `/status` 並確認作用中的認證是您預期的認證。環境中的流浪 `ANTHROPIC_API_KEY` 可能會透過低階金鑰而不是您的訂閱路由請求。


839Not logged in · Please run /login886Not logged in · Please run /login

840```887```

841 888 

889在 Claude Desktop 應用程式執行的工作階段中,例如 Code 標籤或 Cowork,訊息讀作 `Authentication required · Sign in again to continue`,您從應用程式再次登入。

890 

842**該怎麼做:**891**該怎麼做:**

843 892 

844* 執行 `/login` 以使用您的 Claude 訂閱或 Console 帳戶進行驗證893* 執行 `/login` 以使用您的 Claude 訂閱或 Console 帳戶進行驗證


985Your organization has disabled API key authentication · Unset ANTHROPIC_API_KEY to use your claude.ai account instead1034Your organization has disabled API key authentication · Unset ANTHROPIC_API_KEY to use your claude.ai account instead

986Your organization has disabled API key authentication · Unset ANTHROPIC_API_KEY and run /login to sign in with your claude.ai account1035Your organization has disabled API key authentication · Unset ANTHROPIC_API_KEY and run /login to sign in with your claude.ai account

987Your organization has disabled API key authentication · Unset the apiKeyHelper setting and run /login to sign in with your claude.ai account1036Your organization has disabled API key authentication · Unset the apiKeyHelper setting and run /login to sign in with your claude.ai account

1037Your organization has disabled API key authentication · Sign in again with your claude.ai account

988```1038```

989 1039 

1040最後一種形式出現在 Claude Desktop 應用程式執行的工作階段中,例如 Code 標籤或 Cowork,您從應用程式再次登入。

1041 

990環境變數和 `apiKeyHelper` 優先於 `/login`,因此在任一個仍在提供金鑰時單獨執行 `/login` 沒有幫助。請參閱[驗證優先順序](/docs/zh-TW/authentication#authentication-precedence)。1042環境變數和 `apiKeyHelper` 優先於 `/login`,因此在任一個仍在提供金鑰時單獨執行 `/login` 沒有幫助。請參閱[驗證優先順序](/docs/zh-TW/authentication#authentication-precedence)。

991 1043 

992**該怎麼做:**1044**該怎麼做:**


1021 您的組織政策已停用例行程序1073 您的組織政策已停用例行程序

1022</h3>1074</h3>

1023 1075 

1024An 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.1076您的 Team 或 Enterprise 組織中的擁有者已在組織層級關閉例行程序。當您嘗試建立或執行例行程序時會出現此錯誤,例如從 claude.ai/code 上的 [Routines](/docs/zh-TW/routines) UI。在 Claude Code v2.1.227 或更新版本上,相同的設定也會[隱藏 CLI 中的 `/schedule`](/docs/zh-TW/routines#troubleshooting)。

1025 1077 

1026```text theme={null}1078```text theme={null}

1027Routines are disabled by your organization's policy.1079Routines are disabled by your organization's policy.


1203* 在非互動式模式中,在相同環境中執行 `claude`,完成 `/login`,然後重新執行您的命令。對於無法以互動方式登入的自動化,使用 `ANTHROPIC_API_KEY` 或[使用 `claude setup-token` 產生長期權杖](/docs/zh-TW/authentication#generate-a-long-lived-token)進行驗證。1255* 在非互動式模式中,在相同環境中執行 `claude`,完成 `/login`,然後重新執行您的命令。對於無法以互動方式登入的自動化,使用 `ANTHROPIC_API_KEY` 或[使用 `claude setup-token` 產生長期權杖](/docs/zh-TW/authentication#generate-a-long-lived-token)進行驗證。

1204* 如果登入持續失敗,請參閱[登入和驗證](/docs/zh-TW/troubleshoot-install#login-and-authentication)1256* 如果登入持續失敗,請參閱[登入和驗證](/docs/zh-TW/troubleshoot-install#login-and-authentication)

1205 1257 

1258<h3 id="could-not-refresh-your-login">

1259 無法重新整理您的登入,因為另一個 Claude Code 程序正在重新整理它

1260</h3>

1261 

1262此訊息不表示您的登入被拒絕。您的已儲存 claude.ai 登入已過期,需要更新。此機器上的另一個 Claude Code 程序持有共用重新整理鎖定,或退出並將其留下,重新整理在此工作階段等待時沒有進展。Claude Code 在傳送前停止請求:

1263 

1264```text theme={null}

1265Could 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

1266```

1267 

1268在[非互動式模式](/docs/zh-TW/headless)(`-p`) 和 [Agent SDK](/docs/zh-TW/agent-sdk/overview) 中,訊息讀作如下,結構化錯誤代碼為 `server_error`:

1269 

1270```text theme={null}

1271Failed 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

1272```

1273 

1274使用 API 金鑰、[`CLAUDE_CODE_OAUTH_TOKEN`](/docs/zh-TW/env-vars) 或第三方提供者進行驗證的工作階段不使用已儲存的登入,永遠不會看到此訊息。

1275 

1276**該怎麼做:**

1277 

1278* 一分鐘後重試。如果另一個程序首先完成重新整理,此工作階段會使用更新的登入。

1279* 如果訊息持續返回,請關閉其他 Claude Code 視窗和程序,然後重試。

1280* 如果在沒有其他 Claude Code 程序執行的情況下返回,請執行 `/login`。再次登入不會等待重新整理鎖定。

1281 

1282<h3 id="couldnt-save-your-login">

1283 無法儲存您的登入

1284</h3>

1285 

1286您使用 claude.ai 登入,但 Claude Code 無法將登入儲存到其認證資格存放區,因此登入未完成。在 macOS 上,當登入鑰匙圈鎖定時(例如在睡眠或閒置時),在 Claude Code 已在同一工作階段中讀取或儲存認證資格之後,可能會發生這種情況。

1287 

1288```text theme={null}

1289Couldn't save your login. If your Mac's keychain is locked, unlock it and log in again.

1290Couldn't save your login. Try logging in again.

1291```

1292 

1293第一種形式出現在 macOS 上,第二種形式出現在其他地方。暫時性認證資格存放區失敗(例如逾時或無法讀取的存放區)會產生相同的訊息。

1294 

1295**該怎麼做:**

1296 

1297* 在 macOS 上,解鎖登入鑰匙圈,然後再次執行 `/login`

1298* 在其他平台上,再次執行 `/login`

1299* 如果登入仍未儲存,請參閱[未登入或權杖已過期](/docs/zh-TW/troubleshoot-install#not-logged-in-or-token-expired)以取得鑰匙圈解鎖命令和其他認證資格儲存復原步驟

1300 

1206<h3 id="claude-login-not-accepted">1301<h3 id="claude-login-not-accepted">

1207 Claude 登入未被接受1302 Claude 登入未被接受

1208</h3>1303</h3>


1458* 執行 `aws sts get-caller-identity` 以確認您的請求使用哪個身份;過時的 `AWS_PROFILE` 或預設設定檔是權限不匹配的常見原因1553* 執行 `aws sts get-caller-identity` 以確認您的請求使用哪個身份;過時的 `AWS_PROFILE` 或預設設定檔是權限不匹配的常見原因

1459 1554 

1460<h3 id="google-cloud-credentials-expired-or-invalid">1555<h3 id="google-cloud-credentials-expired-or-invalid">

1556 Google Cloud 認證資格已過期或無效

1557</h3>

1558 

1559您的 [Google Cloud 的 Agent Platform](/docs/zh-TW/google-vertex-ai) Google Cloud 認證資格已過期或被拒絕:請求傳回 401,這是 Agent Platform 報告認證資格過期的方式。

1560 

1561中間的動作提示會根據您的設定而異。穩定的部分是前導 `Google Cloud credentials expired or invalid`:

1562 

1563```text theme={null}

1564Google 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 ...

1565```

1566 

1567**該怎麼做:**

1568 

1569* 如果提示說認證資格由此環境管理,啟動 Claude Code 的應用程式擁有認證資格,此處的其他步驟不適用:重試,或聯絡您的管理員

1570* 如果您使用應用程式預設認證資格進行驗證,請執行訊息中命名的 [`gcpAuthRefresh`](/docs/zh-TW/google-vertex-ai#advanced-credential-configuration) 命令或 `gcloud auth application-default login`,並完成登入,然後重試

1571* 如果您透過設定 `CLAUDE_CODE_SKIP_VERTEX_AUTH` 的 [LLM 閘道](/docs/zh-TW/llm-gateway)路由,請重新整理 `ANTHROPIC_AUTH_TOKEN` 或 `ANTHROPIC_CUSTOM_HEADERS` 中的閘道權杖,然後重試

1572* 如果您使用服務帳戶金鑰檔案進行驗證,請確認 `GOOGLE_APPLICATION_CREDENTIALS` 指向有效的金鑰。請參閱[設定 GCP 認證資格](/docs/zh-TW/google-vertex-ai#3-configure-gcp-credentials)

1573* 如果重新整理後錯誤重複,請在相同 shell 中使用 `gcloud auth application-default print-access-token` 確認身份在 Claude Code 外有效

1574 

1575在 v2.1.273 之前,來自 Agent Platform 的 401 顯示通用 `Please run /login` 或 `Failed to authenticate` 訊息,無法重新整理 Google Cloud 認證資格。

1576 

1577<h3 id="google-cloud-authentication-failed">

1578 Google Cloud 驗證失敗

1579</h3>

1580 

1581[Google Cloud 的 Agent Platform](/docs/zh-TW/google-vertex-ai) 傳回 403,它用於授權拒絕而不是過期的認證資格。通常您驗證的身份缺少 IAM 權限,或該模型未為您的專案啟用。

1582 

1583中間的動作提示會根據您的設定而異。穩定的部分是前導 `Google Cloud authentication failed`:

1584 

1585```text theme={null}

1586Google 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 ...

1587```

1588 

1589**該怎麼做:**

1590 

1591* 如果提示說認證資格由此環境管理,啟動 Claude Code 的應用程式擁有認證資格,此處的其他步驟不適用:重試,或聯絡您的管理員

1592* 確認 [IAM 設定](/docs/zh-TW/google-vertex-ai#iam-configuration)中的角色已授予您驗證的身份

1593* 確認該模型已為您的專案啟用。請參閱[要求模型存取](/docs/zh-TW/google-vertex-ai#2-request-model-access)

1594 

1595在 v2.1.273 之前,來自 Agent Platform 的 403 顯示通用 `Please run /login` 或 `Failed to authenticate` 訊息,無法重新整理 Google Cloud 認證資格。

1596 

1597<h3 id="microsoft-foundry-authentication-failed">

1598 Microsoft Foundry 驗證失敗

1599</h3>

1600 

1601[Microsoft Foundry](/docs/zh-TW/microsoft-foundry) 傳回 401 或 403:請求上的 Azure 認證資格被拒絕,或其背後的身份沒有存取 Foundry 資源的權限。`/login` 無法鑄造 Azure 認證資格。中間的動作提示會根據您的設定而異。穩定的部分是前導 `Microsoft Foundry authentication failed`:

1602 

1603```text theme={null}

1604Microsoft 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 ...

1605```

1606 

1607**該怎麼做:**

1608 

1609* 如果提示說認證資格由此環境管理,啟動 Claude Code 的應用程式擁有認證資格,此處的其他步驟不適用:重試,或聯絡您的管理員

1610* 重新整理您在[設定 Azure 認證資格](/docs/zh-TW/microsoft-foundry#2-configure-azure-credentials)中設定的認證資格:輪換 `ANTHROPIC_FOUNDRY_API_KEY`、鑄造新的 `ANTHROPIC_FOUNDRY_AUTH_TOKEN`,或執行 `az login` 以便預設 Microsoft Entra 認證資格鏈可以再次登入

1611* 如果認證資格是最新的,請確認身份有權存取 Foundry 資源。請參閱 [Azure RBAC 設定](/docs/zh-TW/microsoft-foundry#azure-rbac-configuration)

1612 

1613在 v2.1.273 之前,來自 Microsoft Foundry 的 401 或 403 顯示通用 `Please run /login` 或 `Failed to authenticate` 訊息,無法重新整理 Azure 認證資格。

1614 

1615<h3 id="could-not-load-aws-or-google-cloud-credentials">

1461 無法載入 AWS 或 Google Cloud 認證資格1616 無法載入 AWS 或 Google Cloud 認證資格

1462</h3>1617</h3>

1463 1618 


1475* 執行您的提供者的登入命令,例如 `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 外確認認證資格1630* 執行您的提供者的登入命令,例如 `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 外確認認證資格

1476* 如果詳細資訊讀作 `AWS default-chain credential resolve timed out`,鏈掛起而不是失敗,因此改為遵循 [AWS default-chain credential resolve timed out](#aws-default-chain-credential-resolve-timed-out)1631* 如果詳細資訊讀作 `AWS default-chain credential resolve timed out`,鏈掛起而不是失敗,因此改為遵循 [AWS default-chain credential resolve timed out](#aws-default-chain-credential-resolve-timed-out)

1477 1632 

1478<h3 id="google-cloud-authentication-failed">1633<h3 id="aws-default-chain-credential-resolve-timed-out">

1479 AWS default-chain credential resolve 逾時1634 AWS default-chain credential resolve 逾時

1480</h3>1635</h3>

1481 1636 


1496* 在啟動 Claude Code 之前完成登入步驟,例如 `aws sso login --profile myprofile`,以便鏈從本機 SSO 快取解析,而不是等待瀏覽器流程1651* 在啟動 Claude Code 之前完成登入步驟,例如 `aws sso login --profile myprofile`,以便鏈從本機 SSO 快取解析,而不是等待瀏覽器流程

1497* 如果您的鏈執行合法需要超過 60 秒的互動式登入,例如透過 `aws-vault` 等包裝程式的 SSO 與 MFA,請使用 [`CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS`](/docs/zh-TW/env-vars) 以毫秒為單位提高限制1652* 如果您的鏈執行合法需要超過 60 秒的互動式登入,例如透過 `aws-vault` 等包裝程式的 SSO 與 MFA,請使用 [`CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS`](/docs/zh-TW/env-vars) 以毫秒為單位提高限制

1498 1653 

1499<h3 id="microsoft-foundry-authentication-failed">1654<h3 id="bedrock-setup-verification-timed-out-waiting-for-aws">

1500 Bedrock 設定驗證逾時等待 AWS1655 Bedrock 設定驗證逾時等待 AWS

1501</h3>1656</h3>

1502 1657 


1524* 在開啟精靈之前完成任何互動式登入,例如 `aws sso login --profile myprofile`1679* 在開啟精靈之前完成任何互動式登入,例如 `aws sso login --profile myprofile`

1525* 如果您的 AWS 設定檔中的認證資格協助程式合法需要超過 60 秒來提示您,請使用 [`CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS`](/docs/zh-TW/env-vars) 以毫秒為單位提高限制1680* 如果您的 AWS 設定檔中的認證資格協助程式合法需要超過 60 秒來提示您,請使用 [`CLAUDE_CODE_AWS_CHAIN_RESOLVE_TIMEOUT_MS`](/docs/zh-TW/env-vars) 以毫秒為單位提高限制

1526 1681 

1527<h3 id="could-not-load-aws-or-google-cloud-credentials">1682<h3 id="cloud-gateway-session-expired">

1528 雲端閘道工作階段已過期1683 雲端閘道工作階段已過期

1529</h3>1684</h3>

1530 1685 


1547* 在工作階段中執行 `/login` 並完成瀏覽器登入1702* 在工作階段中執行 `/login` 並完成瀏覽器登入

1548* 對於非互動式啟動,在相同環境中啟動 `claude`,執行 `/login`,然後重新執行您的命令1703* 對於非互動式啟動,在相同環境中啟動 `claude`,執行 `/login`,然後重新執行您的命令

1549 1704 

1550<h3 id="aws-default-chain-credential-resolve-timed-out">1705<h3 id="sign-in-timed-out-while-waiting-for-you-to-continue">

1551 登入逾時,等待您繼續1706 登入逾時,等待您繼續

1552</h3>1707</h3>

1553 1708 


1561 1716 

1562* 執行 `/login` 並在登入過期之前確認帳戶1717* 執行 `/login` 並在登入過期之前確認帳戶

1563 1718 

1564<h3 id="bedrock-setup-verification-timed-out-waiting-for-aws">1719<h3 id="gateway-refused-the-request">

1565 閘道拒絕了請求1720 閘道拒絕了請求

1566</h3>1721</h3>

1567 1722 


1578 1733 

1579在 v2.1.273 之前,閘道工作階段上的 403 顯示通用 `Please run /login` 或 `Failed to authenticate` 訊息,再次登入不會清除拒絕。1734在 v2.1.273 之前,閘道工作階段上的 403 顯示通用 `Please run /login` 或 `Failed to authenticate` 訊息,再次登入不會清除拒絕。

1580 1735 

1581<h3 id="cloud-gateway-session-expired">

1582 Google Cloud 認證資格已過期或無效

1583</h3>

1584 

1585您的 [Google Cloud 的 Agent Platform](/docs/zh-TW/google-vertex-ai) Google Cloud 認證資格已過期或被拒絕:請求傳回 401,這是 Agent Platform 報告認證資格過期的方式。

1586 

1587中間的動作提示會根據您的設定而異。穩定的部分是前導 `Google Cloud credentials expired or invalid`:

1588 

1589```text theme={null}

1590Google 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 ...

1591```

1592 

1593**該怎麼做:**

1594 

1595* 如果提示說認證資格由此環境管理,啟動 Claude Code 的應用程式擁有認證資格,此處的其他步驟不適用:重試,或聯絡您的管理員

1596* 如果您使用應用程式預設認證資格進行驗證,請執行訊息中命名的 [`gcpAuthRefresh`](/docs/zh-TW/google-vertex-ai#advanced-credential-configuration) 命令或 `gcloud auth application-default login`,並完成登入,然後重試

1597* 如果您透過設定 `CLAUDE_CODE_SKIP_VERTEX_AUTH` 的 [LLM 閘道](/docs/zh-TW/llm-gateway)路由,請重新整理 `ANTHROPIC_AUTH_TOKEN` 或 `ANTHROPIC_CUSTOM_HEADERS` 中的閘道權杖,然後重試

1598* 如果您使用服務帳戶金鑰檔案進行驗證,請確認 `GOOGLE_APPLICATION_CREDENTIALS` 指向有效的金鑰。請參閱[設定 GCP 認證資格](/docs/zh-TW/google-vertex-ai#3-configure-gcp-credentials)

1599* 如果重新整理後錯誤重複,請在相同 shell 中使用 `gcloud auth application-default print-access-token` 確認身份在 Claude Code 外有效

1600 

1601在 v2.1.273 之前,來自 Agent Platform 的 401 顯示通用 `Please run /login` 或 `Failed to authenticate` 訊息,無法重新整理 Google Cloud 認證資格。

1602 

1603<h3 id="sign-in-timed-out-while-waiting-for-you-to-continue">

1604 Google Cloud 驗證失敗

1605</h3>

1606 

1607[Google Cloud 的 Agent Platform](/docs/zh-TW/google-vertex-ai) 傳回 403,它用於授權拒絕而不是過期的認證資格。通常您驗證的身份缺少 IAM 權限,或該模型未為您的專案啟用。

1608 

1609中間的動作提示會根據您的設定而異。穩定的部分是前導 `Google Cloud authentication failed`:

1610 

1611```text theme={null}

1612Google 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 ...

1613```

1614 

1615**該怎麼做:**

1616 

1617* 如果提示說認證資格由此環境管理,啟動 Claude Code 的應用程式擁有認證資格,此處的其他步驟不適用:重試,或聯絡您的管理員

1618* 確認 [IAM 設定](/docs/zh-TW/google-vertex-ai#iam-configuration)中的角色已授予您驗證的身份

1619* 確認該模型已為您的專案啟用。請參閱[要求模型存取](/docs/zh-TW/google-vertex-ai#2-request-model-access)

1620 

1621在 v2.1.273 之前,來自 Agent Platform 的 403 顯示通用 `Please run /login` 或 `Failed to authenticate` 訊息,無法重新整理 Google Cloud 認證資格。

1622 

1623<h3 id="gateway-refused-the-request">

1624 Microsoft Foundry 驗證失敗

1625</h3>

1626 

1627[Microsoft Foundry](/docs/zh-TW/microsoft-foundry) 傳回 401 或 403:請求上的 Azure 認證資格被拒絕,或其背後的身份沒有存取 Foundry 資源的權限。`/login` 無法鑄造 Azure 認證資格。中間的動作提示會根據您的設定而異。穩定的部分是前導 `Microsoft Foundry authentication failed`:

1628 

1629```text theme={null}

1630Microsoft 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 ...

1631```

1632 

1633**該怎麼做:**

1634 

1635* 如果提示說認證資格由此環境管理,啟動 Claude Code 的應用程式擁有認證資格,此處的其他步驟不適用:重試,或聯絡您的管理員

1636* 重新整理您在[設定 Azure 認證資格](/docs/zh-TW/microsoft-foundry#2-configure-azure-credentials)中設定的認證資格:輪換 `ANTHROPIC_FOUNDRY_API_KEY`、鑄造新的 `ANTHROPIC_FOUNDRY_AUTH_TOKEN`,或執行 `az login` 以便預設 Microsoft Entra 認證資格鏈可以再次登入

1637* 如果認證資格是最新的,請確認身份有權存取 Foundry 資源。請參閱 [Azure RBAC 設定](/docs/zh-TW/microsoft-foundry#azure-rbac-configuration)

1638 

1639在 v2.1.273 之前,來自 Microsoft Foundry 的 401 或 403 顯示通用 `Please run /login` 或 `Failed to authenticate` 訊息,無法重新整理 Azure 認證資格。

1640 

1641<h2 id="network-and-connection-errors">1736<h2 id="network-and-connection-errors">

1642 網路和連線錯誤1737 網路和連線錯誤

1643</h2>1738</h2>


1677 1772 

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

1679 1774 

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

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

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

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


1897* 使用 `claude --remote-control` 啟動新工作階段以建立新的 Remote Control 工作階段1993* 使用 `claude --remote-control` 啟動新工作階段以建立新的 Remote Control 工作階段

1898* 對於其他 Remote Control 啟動訊息,請參閱[Remote Control 疑難排解](/docs/zh-TW/remote-control#troubleshooting)1994* 對於其他 Remote Control 啟動訊息,請參閱[Remote Control 疑難排解](/docs/zh-TW/remote-control#troubleshooting)

1899 1995 

1900如果伺服器改為報告前一個工作階段已消失,您不會看到此訊息。Claude Code 會在其位置啟動新工作階段或顯示 [`Previous session is unavailable — run /remote-control to start a new one`](/docs/zh-TW/remote-control#previous-session-is-unavailable),取決於[對話的重新連線記錄](/docs/zh-TW/remote-control#resume-outcomes)。從 v2.1.227 到 v2.1.231,Claude Code 改為顯示以 `Remote Control could not resume the previous session under the current login` 開頭的訊息,[較早的版本行為也不同](/docs/zh-TW/remote-control#reconnect-history)。1996如果伺服器改為報告前一個工作階段已消失,您不會看到此訊息。Claude Code 會在其位置啟動新工作階段或顯示 [`Previous session is unavailable — run /remote-control to start a new one`](/docs/zh-TW/remote-control#previous-session-is-unavailable)。

1901 1997 

1902<h3 id="sessions-ended-while-this-machine-was-offline">1998<h3 id="sessions-ended-while-this-machine-was-offline">

1903 此機器離線時工作階段已結束1999 此機器離線時工作階段已結束


1931* 執行 `/feedback` 以傳送文字記錄並描述發生了什麼。如果您的環境中無法使用 `/feedback`,請參閱[報告錯誤](#report-an-error)2027* 執行 `/feedback` 以傳送文字記錄並描述發生了什麼。如果您的環境中無法使用 `/feedback`,請參閱[報告錯誤](#report-an-error)

1932* 如果其他請求也失敗,請檢查您的網路連線並查看[無法連線到 API](#unable-to-connect-to-api)2028* 如果其他請求也失敗,請檢查您的網路連線並查看[無法連線到 API](#unable-to-connect-to-api)

1933 2029 

2030<h3 id="couldnt-send-feedback">

2031 無法傳送意見反應

2032</h3>

2033 

2034您從 [`/feedback`、`/bug` 或 `/share` 對話方塊](/docs/zh-TW/commands#all-commands)傳送了報告,上傳到 Anthropic 失敗。對話方塊會保留您的文字,以便您可以重試。

2035 

2036```text theme={null}

2037Couldn't send feedback (couldn't reach the service). If it keeps failing, you can file at https://github.com/anthropics/claude-code/issues instead.

2038```

2039 

2040前綴後的文字會命名失敗的內容:

2041 

2042* **`:not signed in. Run /login, then retry.`**:對話方塊僅在 Claude Code 在開啟時找到 Anthropic 認證且到您傳送時沒有可用的認證時上傳。例如,您在此期間在此機器上登出,或您的登入無法再刷新。

2043* **括號內容**:`(server returned <status>)` 是服務的回應代碼;`(request timed out)` 和 `(couldn't reach the service)` 是網路故障。當 Claude Code 無法命名原因時,括號內容不存在。

2044 

2045在[意見反應草稿佇列](/docs/zh-TW/tools-reference#sendfeedback-tool-behavior)中,相同的故障以 `The draft is still queued. Try again later.` 結束,草稿保留在佇列中以供另一次嘗試。

2046 

2047**該怎麼做:**

2048 

2049* 對於未登入的措辭,執行 `/login` 並再次傳送

2050* 否則,再次傳送;如果其他請求也失敗,請檢查您的網路連線並查看[無法連線到 API](#unable-to-connect-to-api)

2051* 如果它持續失敗,請在 [github.com/anthropics/claude-code/issues](https://github.com/anthropics/claude-code/issues) 提交報告,如訊息所說

2052 

2053在 v2.1.281 之前,每次傳送在 Remote Control **Stop** 或緊急跨工作階段訊息在對話方塊開啟時到達後都失敗並出現此訊息。在這些版本上,關閉對話方塊,重新開啟它,然後再次傳送。

2054 

1934<h2 id="request-errors">2055<h2 id="request-errors">

1935 請求錯誤2056 請求錯誤

1936</h2>2057</h2>


2017 上下文超過令牌限制2138 上下文超過令牌限制

2018</h3>2139</h3>

2019 2140 

2020當對話超過模型的上下文視窗時,`/context` 在其輸出頂部顯示此警告。在您釋放空間之前,請求會失敗並出現 [`Prompt is too long`](#prompt-is-too-long)。互動式工作階段將該錯誤顯示為 `Context limit reached` 行。2141`/context` 在其輸出頂部顯示此警告,當對話超過模型的上下文視窗時。在您釋放空間之前,請求會失敗並出現 [`Prompt is too long`](#prompt-is-too-long)。互動式工作階段將該錯誤顯示為 `Context limit reached` 行。

2021 2142 

2022```text theme={null}2143```text theme={null}

2023Context exceeds the 200k-token limit by 94k tokens — run /compact or /clear to continue.2144Context exceeds the 200k-token limit by 94k tokens — run /compact or /clear to continue.


2185* 移除或 [禁用](/docs/zh-TW/mcp#disable-a-server-without-removing-it) 聲明無效架構的 MCP 伺服器。該錯誤僅按位置命名工具。在 v2.1.216 或更新版本上,檢查每個伺服器的日誌以查找命名工具的行,其輸入架構會被拒絕。如果沒有日誌命名一個,請逐個禁用伺服器。2306* 移除或 [禁用](/docs/zh-TW/mcp#disable-a-server-without-removing-it) 聲明無效架構的 MCP 伺服器。該錯誤僅按位置命名工具。在 v2.1.216 或更新版本上,檢查每個伺服器的日誌以查找命名工具的行,其輸入架構會被拒絕。如果沒有日誌命名一個,請逐個禁用伺服器。

2186* 如果您維護伺服器,請修復工具的 `input_schema`。架構必須是有效的 JSON Schema,頂級屬性名稱必須為 1 到 64 個字元長,並且只能使用 ASCII 字母和數字、`_`、`.` 和 `-`。請參閱 [Tools with invalid input schemas](/docs/zh-TW/mcp#tools-with-invalid-input-schemas)。2307* 如果您維護伺服器,請修復工具的 `input_schema`。架構必須是有效的 JSON Schema,頂級屬性名稱必須為 1 到 64 個字元長,並且只能使用 ASCII 字母和數字、`_`、`.` 和 `-`。請參閱 [Tools with invalid input schemas](/docs/zh-TW/mcp#tools-with-invalid-input-schemas)。

2187 2308 

2309<h3 id="tool-use-name-over-200-characters">

2310 tool\_use.name 超過 200 個字元

2311</h3>

2312 

2313對話歷史記錄中的工具呼叫包含超過 API 在請求中接受的 200 個字元的名稱:

2314 

2315```text theme={null}

2316API Error: 400 ... tool_use.name: String should have at most 200 characters

2317```

2318 

2319Claude Code 在回應到達時以及載入已保存的對話時將此類名稱切割為 200 個字元,因此呼叫失敗,出現普通的 `No such tool available` 工具錯誤,對話在沒有此 API 錯誤的情況下繼續。

2320 

2321**該怎麼辦:**

2322 

2323* 執行 `claude update`,然後恢復對話。更新的版本在載入文字記錄時修復超長名稱,因此卡住的對話再次工作。

2324 

2325在 v2.1.281 之前,超長名稱保留在歷史記錄中,API 拒絕了重新發送對話的每個請求,包括 `/compact` 和 `--resume`,因此此錯誤重複出現,對話被卡住。

2326 

2188<h3 id="theres-an-issue-with-the-selected-model">2327<h3 id="theres-an-issue-with-the-selected-model">

2189 選定的模型有問題2328 選定的模型有問題

2190</h3>2329</h3>


2216Model "claud-sonnet-5" is not a recognized model id. Did you mean 'claude-sonnet-5'?2355Model "claud-sonnet-5" is not a recognized model id. Did you mean 'claude-sonnet-5'?

2217```2356```

2218 2357 

2219尾部提示命名最接近的匹配別名或模型 ID。當沒有足夠接近的內容時,它讀取 `Run /model to see available models.`。2358尾部提示命名最接近的匹配別名或模型 ID。當沒有足夠接近的內容時,它讀取 `Run /model to see available models.`。在 [Desktop app](/docs/zh-TW/desktop) 啟動的工作階段中,無匹配提示讀取 `Switch to a different model.`

2220 2359 

2221Claude Code 在請求切換的時刻在本地產生此錯誤,在任何 API 請求之前。它適用於通過 [Agent SDK](/docs/zh-TW/agent-sdk/typescript) `setModel()` 方法設定模型、由執行 Claude Code CLI 的應用程式(例如 [Desktop app](/docs/zh-TW/desktop))設定,或當您從通過 [Remote Control](/docs/zh-TW/remote-control) 連接的裝置選擇模型時。在 v2.1.260 之前,檢查不涵蓋 Remote Control 選擇,因此 Claude Code 應用了選擇,下一個請求失敗,出現 [There's an issue with the selected model](#theres-an-issue-with-the-selected-model)。2360Claude Code 在請求切換的時刻在本地產生此錯誤,在任何 API 請求之前。它適用於通過 [Agent SDK](/docs/zh-TW/agent-sdk/typescript) `setModel()` 方法設定模型、由執行 Claude Code CLI 的應用程式(例如 [Desktop app](/docs/zh-TW/desktop))設定,或當您從通過 [Remote Control](/docs/zh-TW/remote-control) 連接的裝置選擇模型時。在 v2.1.260 之前,檢查不涵蓋 Remote Control 選擇,因此 Claude Code 應用了選擇,下一個請求失敗,出現 [There's an issue with the selected model](#theres-an-issue-with-the-selected-model)。

2222 2361 


2245* 如果您輸入了完整 ID,請根據您提供者的模型目錄檢查它。新推出的模型可能在 Anthropic API 上可用,但您的提供者或區域尚未提供。2384* 如果您輸入了完整 ID,請根據您提供者的模型目錄檢查它。新推出的模型可能在 Anthropic API 上可用,但您的提供者或區域尚未提供。

2246* 在 v2.1.265 之前,`/model` 也以此錯誤拒絕了 `opusplan[1m]` 別名拼寫。在這些版本上,更新 Claude Code,或在 [settings](/docs/zh-TW/model-config#setting-your-model) 中或使用 `--model` 設定模型。2385* 在 v2.1.265 之前,`/model` 也以此錯誤拒絕了 `opusplan[1m]` 別名拼寫。在這些版本上,更新 Claude Code,或在 [settings](/docs/zh-TW/model-config#setting-your-model) 中或使用 `--model` 設定模型。

2247 2386 

2387<h3 id="api-error-model-not-changed">

2388 檢查選擇的模型時出現 API 錯誤

2389</h3>

2390 

2391您使用 `/model <name>` 選擇了模型,或連接到工作階段的應用程式請求了切換。API 拒絕了 Claude Code 發送以驗證模型的最小請求,原因沒有自己的條目,例如速率限制或伺服器錯誤。工作階段保持其目前模型,訊息以說明這一點結尾:

2392 

2393```text theme={null}

2394API error: 429 <the server's explanation> · model not changed

2395```

2396 

2397訊息的中間是 HTTP 狀態和伺服器自己的解釋。

2398 

2399**該怎麼辦:**

2400 

2401* 根據伺服器的解釋採取行動;對於速率限制或 5xx 狀態,等待並再次選擇模型

2402* 具有自己措辭的拒絕由周圍條目涵蓋,例如 [Model not found](#model-not-found) 和 [Model is restricted by your organization's settings](#model-is-restricted-by-your-organizations-settings)

2403 

2248<h3 id="claude-opus-is-not-available-with-the-claude-pro-plan">2404<h3 id="claude-opus-is-not-available-with-the-claude-pro-plan">

2249 Claude Opus 不適用於 Claude Pro 方案2405 Claude Opus 不適用於 Claude Pro 方案

2250</h3>2406</h3>


2255Claude Opus is not available with the Claude Pro plan. If you have updated your subscription plan recently, run /logout and /login for the plan to take effect.2411Claude Opus is not available with the Claude Pro plan. If you have updated your subscription plan recently, run /logout and /login for the plan to take effect.

2256```2412```

2257 2413 

2414在 Claude Desktop 應用程式執行的工作階段中,訊息說改為 `sign out and sign in again` 而不是命名命令。

2415 

2258**該怎麼辦:**2416**該怎麼辦:**

2259 2417 

2260* 執行 `/model` 並選擇您的方案包括的模型2418* 執行 `/model` 並選擇您的方案包括的模型

2261* 如果您最近升級了方案但仍然看到這個,請執行 `/logout` 然後 `/login`。儲存的令牌反映您登入時的方案,因此在現有工作階段中在網路上升級不會生效,直到您重新驗證。2419* 如果您最近升級了方案但仍然看到這個,請執行 `/logout` 然後 `/login`。儲存的令牌反映您登入時的方案,因此在現有工作階段中在 claude.ai 上升級不會生效,直到您重新驗證。

2262* 請參閱 [claude.com/pricing](https://claude.com/pricing) 以了解每個方案包括哪些模型2420* 請參閱 [claude.com/pricing](https://claude.com/pricing) 以了解每個方案包括哪些模型

2263 2421 

2264<h3 id="claude-code-does-not-support-this-model">2422<h3 id="claude-code-does-not-support-this-model">


2287 模型受您的組織設定限制2445 模型受您的組織設定限制

2288</h3>2446</h3>

2289 2447 

2290您的組織管理員已在 claude.ai 管理控制台中禁用此模型,或它被受管設定中的 [`availableModels`](/docs/zh-TW/model-config#restrict-model-selection) 允許清單排除。當受限制的模型使用 `--model`、`ANTHROPIC_MODEL` 或 `model` 設定設定時,Claude Code 替換允許的模型並繼續。為受限制的模型輸入 `/model <name>` 被拒絕,出現 `Run /model to choose a different model.`,工作階段保持其目前模型。替換通知可能也會在工作階段中途出現,在管理員在 claude.ai 管理控制台中禁用工作階段正在執行的模型之後。2448您的組織管理員已在 claude.ai 管理控制台中禁用此模型,或受管設定中的 [`availableModels`](/docs/zh-TW/model-config#restrict-model-selection) 允許清單或 [`deniedModels`](/docs/zh-TW/model-config#block-specific-models-or-versions) 清單排除它。當受限制的模型使用 `--model`、`ANTHROPIC_MODEL` 或 `model` 設定設定時,通知會在啟動時出現,並命名工作階段改為使用的模型。如果受管設定沒有為工作階段留下允許的模型,請參閱 [Managed settings block the default model](#managed-settings-block-the-default-model)。替換通知也可能在工作階段中途出現,在管理員在 claude.ai 管理控制台中禁用工作階段正在執行的模型之後。

2291 2449 

2292```text theme={null}2450```text theme={null}

2293Model "claude-opus-4-8" is restricted by your organization's settings. Using claude-sonnet-4-6 instead.2451Model "claude-opus-4-8" is restricted by your organization's settings. Using claude-sonnet-4-6 instead.

2294```2452```

2295 2453 

2454為受限制的模型輸入 `/model <name>` 被拒絕,工作階段保持其目前模型。對於在管理控制台中禁用的模型,拒絕讀取 `Model '<name>' is restricted by your organization's settings. Run /model to choose a different model.`。對於受管設定排除的模型,它讀取 `Model '<name>' is not available. Your organization restricts model selection.`

2455 

2296以代理、技能或命令名稱為前綴的通知意味著限制適用於該 [子代理的請求模型](/docs/zh-TW/sub-agents#choose-a-model):子代理在替換模型上執行,您的工作階段模型保持不變。在 v2.1.223 之前,Claude Code 僅對使用 Agent 工具啟動的子代理顯示通知。2456以代理、技能或命令名稱為前綴的通知意味著限制適用於該 [子代理的請求模型](/docs/zh-TW/sub-agents#choose-a-model):子代理在替換模型上執行,您的工作階段模型保持不變。在 v2.1.223 之前,Claude Code 僅對使用 Agent 工具啟動的子代理顯示通知。

2297 2457 

2298Claude Code 將模型系列別名(`opus`、`sonnet`、`haiku` 或 `fable` 之一)視為對該系列的請求,而不是對其最新版本的請求。在 Anthropic API 和 [Claude Platform on AWS](/docs/zh-TW/claude-platform-on-aws) 上,受限制的系列別名解析為您的組織和 `availableModels` 允許清單允許的系列的最新版本,替換通知命名該版本。Claude Code 僅在系列的每個版本都受限制時拒絕 `/model <alias>`。在 v2.1.205 之前,系列別名基於其最新版本單獨替換或拒絕,即使同一系列的較舊版本被允許。2458Claude Code 將模型系列別名(`opus`、`sonnet`、`haiku` 或 `fable` 之一)視為對該系列的請求,而不是對其最新版本的請求。在 Anthropic API 和 [Claude Platform on AWS](/docs/zh-TW/claude-platform-on-aws) 上,受限制的系列別名解析為您的組織的設定允許的系列的最新版本,替換通知命名該版本。Claude Code 僅在系列的每個版本都受限制時拒絕 `/model <alias>`。在 v2.1.205 之前,系列別名基於其最新版本單獨替換或拒絕,即使同一系列的較舊版本被允許。

2299 2459 

2300**該怎麼辦:**2460**該怎麼辦:**

2301 2461 


2354 2514 

2355**該怎麼辦:**2515**該怎麼辦:**

2356 2516 

2357* 執行 `claude update` 並重新啟動 Claude Code。Opus 4.7 需要 v2.1.111 或更新版本。Opus 4.8 需要 v2.1.154 或更新版本。Sonnet 5 需要 v2.1.197 或更新版本。Opus 5 需要 v2.1.219 或更新版本。Opus 5.5 需要 v2.1.280 或更新版本2517* 執行 `claude update` 並重新啟動 Claude Code。Opus 4.7 需要 v2.1.111 或更新版本。Opus 4.8 需要 v2.1.154 或更新版本。Sonnet 5 需要 v2.1.197 或更新版本。Opus 5 需要 v2.1.219 或更新版本。Opus 5.5 需要 v2.1.280 或更新版本。Sonnet 5.5 需要 v2.1.284 或更新版本

2358* 如果您無法升級,執行 `/model` 並改為選擇 Opus 4.6 或 Sonnet 4.62518* 如果您無法升級,執行 `/model` 並改為選擇 Opus 4.6 或 Sonnet 4.6

2359* 如果您在 [Agent SDK](/docs/zh-TW/agent-sdk/overview) 中遇到這個,請改為升級 SDK 套件。Opus 4.8 需要 TypeScript SDK v0.3.154 或更新版本和 Python SDK v0.2.88 或更新版本。Sonnet 5 需要 TypeScript SDK v0.3.197 或更新版本。Opus 5 需要 TypeScript SDK v0.3.219 或更新版本。Opus 5.5 需要 TypeScript SDK v0.3.280 或更新版本2519* 如果您在 [Agent SDK](/docs/zh-TW/agent-sdk/overview) 中遇到這個,請改為升級 SDK 套件。Opus 4.8 需要 TypeScript SDK v0.3.154 或更新版本和 Python SDK v0.2.88 或更新版本。Sonnet 5 需要 TypeScript SDK v0.3.197 或更新版本。Opus 5 需要 TypeScript SDK v0.3.219 或更新版本。Opus 5.5 需要 TypeScript SDK v0.3.280 或更新版本。Sonnet 5.5 需要 TypeScript SDK v0.3.284 或更新版本

2360 2520 

2361<h3 id="effort-isnt-available-with-thinking-turned-off">2521<h3 id="effort-isnt-available-with-thinking-turned-off">

2362 關閉思考時努力不可用2522 關閉思考時努力不可用


2368API Error: Effort 'xhigh' isn't available with thinking turned off on this model · run /effort high to continue, or turn thinking back on (unset MAX_THINKING_TOKENS=0)2528API Error: Effort 'xhigh' isn't available with thinking turned off on this model · run /effort high to continue, or turn thinking back on (unset MAX_THINKING_TOKENS=0)

2369```2529```

2370 2530 

2531`·` 後的提示因表面而異:在非互動式工作階段中,它讀取 `use --effort high (or the effortLevel setting)`,在 Claude Desktop 應用程式執行的工作階段中,它讀取 `you can lower effort to High`。

2532 

2371**該怎麼辦:**2533**該怎麼辦:**

2372 2534 

2373* [降低努力級別](/docs/zh-TW/model-config#set-the-effort-level) 至 `high` 或以下。2535* [降低努力級別](/docs/zh-TW/model-config#set-the-effort-level) 至 `high` 或以下。


2413* 如果您使用 Opus 4.7 或 Opus 4.8,請先執行 `claude update`。v2.1.156 之前的版本可以在正常工具使用期間觸發此錯誤,`/rewind` 不會清除它。2575* 如果您使用 Opus 4.7 或 Opus 4.8,請先執行 `claude update`。v2.1.156 之前的版本可以在正常工具使用期間觸發此錯誤,`/rewind` 不會清除它。

2414* 執行 `/rewind`,或按 Esc 兩次,以回退到損壞輪次之前的檢查點並從那裡繼續。請參閱 [Checkpointing](/docs/zh-TW/checkpointing) 以了解檢查點如何建立和恢復。2576* 執行 `/rewind`,或按 Esc 兩次,以回退到損壞輪次之前的檢查點並從那裡繼續。請參閱 [Checkpointing](/docs/zh-TW/checkpointing) 以了解檢查點如何建立和恢復。

2415 2577 

2578<h3 id="invalid-data-in-redacted-thinking-block">

2579 redacted\_thinking 區塊中的無效資料

2580</h3>

2581 

2582API 因為它無法接受對話歷史記錄中較早輪次所帶的 `redacted_thinking` 區塊而拒絕了請求,出現 400。

2583 

2584```text theme={null}

2585API Error: 400 ... Invalid `data` in `redacted_thinking` block

2586```

2587 

2588Claude Code 將對話的較早思考排除在請求之外並重試一次,因此工作階段在不顯示錯誤的情況下繼續。在 v2.1.282 之前,Claude Code 保留了被拒絕的區塊,每個後續輪次都失敗了相同的錯誤。

2589 

2590**該怎麼辦:**

2591 

2592* 如果您在 v2.1.281 或更早版本上,每輪都失敗此錯誤,請執行 `claude update` 並恢復工作階段

2593* 如果錯誤持續,執行 `/clear` 以開始不包含該區塊的對話

2594 

2416<h3 id="unsupported-tool-content-removed">2595<h3 id="unsupported-tool-content-removed">

2417 移除了不支援的工具內容2596 移除了不支援的工具內容

2418</h3>2597</h3>


2458API 因為對話歷史記錄包含它無法解密的託管網路搜尋內容而拒絕了請求,出現 400。措辭命名它無法讀取的欄位:2637API 因為對話歷史記錄包含它無法解密的託管網路搜尋內容而拒絕了請求,出現 400。措辭命名它無法讀取的欄位:

2459 2638 

2460```text theme={null}2639```text theme={null}

2461API Error: 400 messages.21.content.0: Invalid `encrypted_content` in `search_result` block2640API Error: 400 ... Invalid `encrypted_content` in `search_result` block

2462API Error: 400 messages.21.content.3.citations.0: Invalid `encrypted_index` in `text` block2641API Error: 400 ... Invalid `encrypted_index` in `text` block

2463API Error: 400 Failed to decrypt web search result content2642API Error: 400 ... Failed to decrypt web search result content

2643API Error: 400 ... Invalid `encrypted_stdout` in `encrypted_code_execution_result` block

2464```2644```

2465 2645 

2466來自 API 託管 [web search tool](https://platform.claude.com/docs/en/agents-and-tools/tool-use/web-search-tool) 的結果包含只有 API 可以讀取的加密欄位。API 拒絕重播它無法解密的內容的請求,例如為不同組織產生的內容。2646來自 API 託管 [web search tool](https://platform.claude.com/docs/en/agents-and-tools/tool-use/web-search-tool) 的結果包含只有 API 可以讀取的加密欄位。`encrypted_stdout` 措辭命名讀取此類結果的託管程式碼執行程式的輸出,API 也會加密。API 拒絕重播它無法解密的內容的請求,例如為不同組織產生的內容。

2467 2647 

2468Claude Code 自己的 [WebSearch tool](/docs/zh-TW/tools-reference#websearch-tool-behavior) 將搜尋結果記錄為純文字,因此這些區塊通常通過代理或 [LLM gateway](/docs/zh-TW/llm-gateway) 到達對話,該代理或閘道本身執行了託管網路搜尋。2648Claude Code 自己的 [WebSearch tool](/docs/zh-TW/tools-reference#websearch-tool-behavior) 將搜尋結果記錄為純文字,因此這些區塊通常通過代理或 [LLM gateway](/docs/zh-TW/llm-gateway) 到達對話,該代理或閘道本身執行了託管網路搜尋。

2469 2649 

2470被拒絕的區塊保留在對話歷史記錄中,因此每個後續輪次和 `/compact` 都失敗了相同的方式。2650對於三個網路搜尋措辭,Claude Code 將搜尋呼叫、結果和引用排除在它發送的內容之外並重試請求一次,因此工作階段在不顯示錯誤的情況下繼續。`encrypted_stdout` 措辭沒有此類恢復,因此該訊息仍然到達您。在 v2.1.282 之前,Claude Code 也保留了被拒絕的網路搜尋區塊,每個後續輪次和 `/compact` 都失敗了相同的方式。

2471 2651 

2472**該怎麼辦:**2652**該怎麼辦:**

2473 2653 

2474* 執行 `/clear` 或開始新的工作階段;新對話不包含被拒絕的區塊2654* 如果您在 v2.1.281 或更早版本上,每輪都失敗其中一個網路搜尋措辭,請執行 `claude update` 並恢復工作階段

2655* 如果錯誤持續,或訊息命名 `encrypted_stdout`,執行 `/rewind` 以回退到添加內容的輪次之前的檢查點,或執行 `/clear` 以開始不包含它的對話

2475* 如果您在代理或閘道後面執行 Claude Code,請向操作它的人報告錯誤2656* 如果您在代理或閘道後面執行 Claude Code,請向操作它的人報告錯誤

2476 2657 

2477<h3 id="usage-policy-refusal">2658<h3 id="usage-policy-refusal">

2478 使用政策拒絕2659 使用政策拒絕

2479</h3>2660</h3>

2480 2661 

2481API 拒絕回應,因為對話中的內容觸發了 [Usage Policy](https://www.anthropic.com/legal/aup) 檢查。訊息包括您可以引用給支援的請求 ID,如果您認為拒絕不正確。2662API 拒絕回應,因為對話中的內容觸發了 [Usage Policy](https://www.anthropic.com/legal/aup) 檢查。

2663 

2664訊息包括請求 ID 和訊息 ID,您可以引用給支援,如果您認為拒絕不正確。

2482 2665 

2483```text theme={null}2666```text theme={null}

2484API Error: Opus 4.6 can't help with this. Start a new session to continue.2667API Error: Opus 4.6 can't help with this. Start a new session to continue.


2508API Error: Opus 4.8's safeguards flagged this message. Our intentionally broad safeguards allow us to deliver more capabilities faster, but can sometimes flag legitimate cybersecurity work. Apply to the Cyber Verification Program to reduce these interruptions. Send feedback with /feedback or learn more: https://support.claude.com/en/articles/14604842-real-time-cyber-safeguards-on-claude2691API Error: Opus 4.8's safeguards flagged this message. Our intentionally broad safeguards allow us to deliver more capabilities faster, but can sometimes flag legitimate cybersecurity work. Apply to the Cyber Verification Program to reduce these interruptions. Send feedback with /feedback or learn more: https://support.claude.com/en/articles/14604842-real-time-cyber-safeguards-on-claude

2509```2692```

2510 2693 

2511訊息連結到 [Cyber Verification Program](https://support.claude.com/en/articles/14604842-real-time-cyber-safeguards-on-claude),它為合法網路安全工作授予存取權限。在 Opus 5.5 上(需要 v2.1.280 或更新版本),訊息改為以 `Opus 5.5's safeguards flagged this session` 開頭。當標記的類別有可用的備用模型時,Claude Code [切換模型](/docs/zh-TW/model-config#automatic-model-fallback) 而不是顯示此錯誤。2694訊息連結到 [Cyber Verification Program](https://support.claude.com/en/articles/14604842-real-time-cyber-safeguards-on-claude),它為合法網路安全工作授予存取權限。在 Opus 5.5 和 Sonnet 5.5 上,訊息改為以 `<model>'s safeguards flagged this session` 開頭。當標記的類別有可用的備用模型時,Claude Code [切換模型](/docs/zh-TW/model-config#automatic-model-fallback) 而不是顯示此錯誤。

2512 2695 

2513在 [Amazon Bedrock](/docs/zh-TW/amazon-bedrock)、[Google Cloud 的 Agent Platform](/docs/zh-TW/google-vertex-ai) 和 [Microsoft Foundry](/docs/zh-TW/microsoft-foundry) 上,網路安全標記會改為產生 [Usage Policy refusal](#usage-policy-refusal) 訊息。2696在 [Amazon Bedrock](/docs/zh-TW/amazon-bedrock)、[Google Cloud 的 Agent Platform](/docs/zh-TW/google-vertex-ai) 和 [Microsoft Foundry](/docs/zh-TW/microsoft-foundry) 上,網路安全標記會改為產生 [Usage Policy refusal](#usage-policy-refusal) 訊息。

2514 2697 


2594 無效的 --agents 設定2777 無效的 --agents 設定

2595</h3>2778</h3>

2596 2779 

2597您傳遞給 `--agents` 的值無效,所以 `claude` 以代碼 1 結束而不是啟動工作階段。當您傳遞 `--safe-mode`、`--resume` 或 `--continue`,或設定 [`CLAUDE_CODE_SAFE_MODE`](/docs/zh-TW/env-vars#variables) 時,Claude Code 不會檢查該值並啟動工作階段。在 v2.1.242 之前,Claude Code 仍然啟動工作階段並省略了它無法載入的定義。2780您傳遞給 `--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 仍然啟動工作階段並省略了它無法載入的定義。

2598 2781 

2599```text theme={null}2782```text theme={null}

2600Error: Invalid --agents configuration:2783Error: Invalid --agents configuration:


2603 2786 

2604第一行之後的內容取決於值如何失敗。Claude Code 按順序執行這些檢查,並在第一個失敗的檢查處停止。如果您的值有兩種問題,您只有在修復第一個問題後才會看到第二個:2787第一行之後的內容取決於值如何失敗。Claude Code 按順序執行這些檢查,並在第一個失敗的檢查處停止。如果您的值有兩種問題,您只有在修復第一個問題後才會看到第二個:

2605 2788 

26061. 當值不能解析為 JSON 時,Claude Code 列印一行 `invalid JSON:` 並帶有 JSON 解析器自己的訊息27891. 當值以 `{` 開頭但不能解析為 JSON 時,或 `--agents` 檔案的內容不解析時,Claude Code 列印一行 `invalid JSON:` 並帶有 JSON 解析器自己的訊息

26072. 當它解析但代理定義不符合 [CLI 定義的子代理](/docs/zh-TW/sub-agents#choose-the-subagent-scope) 的架構時,Claude Code 每個問題列印一行27902. 當它解析但代理定義不符合 [CLI 定義的子代理](/docs/zh-TW/sub-agents#choose-the-subagent-scope) 的架構時,Claude Code 每個問題列印一行

26083. 當代理名稱以 `-` 開頭時,Claude Code 列印 `<name>: agent names must not start with '-'`27913. 當代理名稱以 `-` 開頭時,Claude Code 列印 `<name>: agent names must not start with '-'`

2609 2792 

2610當有超過 20 行問題時,Claude Code 列印前 20 行並用 `…and N more` 替換其餘部分。2793當有超過 20 行問題時,Claude Code 列印前 20 行並用 `…and N more` 替換其餘部分。

2611 2794 

2795使用 `--print` 時,`--agents` 也接受 [JSON 檔案的路徑](/docs/zh-TW/sub-agents#choose-the-subagent-scope)代替內聯物件。在 v2.1.281 之前,`--agents` 只接受內聯 JSON 並將檔案路徑視為無效 JSON。檔案形式有自己的拒絕,列印代替此訊息,包括這些:

2796 

2797* **`Error: --agents takes a JSON object, or a file path only with --print (-p)`**:Claude Code 在互動工作階段中將值讀取為檔案路徑。將定義作為內聯 JSON 傳遞,或新增 `-p` 以從檔案讀取它們。

2798* **`Error: --agents file not found: <path>`**:該路徑不存在檔案。不以 `{` 開頭且不是有效 JSON 的值被讀取為路徑,所以您的 shell 損壞的內聯 JSON 可能以此方式失敗。檢查路徑或引用並再次執行命令。

2799 

2612**該怎麼做:**2800**該怎麼做:**

2613 2801 

2614* 修復訊息列出的每個問題,然後再次執行命令。請參閱 [CLI 定義的子代理採用的欄位](/docs/zh-TW/sub-agents#choose-the-subagent-scope)。2802* 修復訊息列出的每個問題,然後再次執行命令。請參閱 [CLI 定義的子代理採用的欄位](/docs/zh-TW/sub-agents#choose-the-subagent-scope)。


2756 啟動遠端控制時工作區未受信任2944 啟動遠端控制時工作區未受信任

2757</h3>2945</h3>

2758 2946 

2759您在未信任的目錄中使用 `claude remote-control` 或其 `claude rc` 別名啟動[遠端控制](/docs/zh-TW/remote-control)伺服器模式。該命令本身不顯示工作區信任對話框,所以它以代碼 1 結束並命名修復:2947您在未信任的目錄中使用 `claude remote-control` 或其 `claude rc` 別名啟動[遠端控制](/docs/zh-TW/remote-control)伺服器模式,且命令無法詢問您是否信任它。當命令的標準輸入或標準輸出不是終端時,會出現此訊息,例如因為其中一個被重定向或管道化。命令以代碼 1 結束:

2760 2948 

2761```text theme={null}2949```text theme={null}

2762Error: Workspace not trusted. Please run `claude` in /Users/you/project first to review and accept the workspace trust dialog.2950Error: Workspace not trusted. Please run `claude` in /Users/you/project first to review and accept the workspace trust dialog.

2763```2951```

2764 2952 

2953兩個也以 `Error: Workspace not trusted.` 開頭的變體也會在終端中出現,終端太小而無法顯示信任目錄會開啟什麼,或沒有報告其大小。放大視窗或切換到正常終端視窗,然後再次執行 `claude rc`。

2954 

2765在您的主目錄中,訊息是不同的,因為工作區信任對話框永遠不會為主目錄儲存信任,所以在那裡接受它無法滿足此檢查。在 v2.1.214 之前,主目錄顯示上述訊息,其建議無法在那裡成功。2955在您的主目錄中,訊息是不同的,因為工作區信任對話框永遠不會為主目錄儲存信任,所以在那裡接受它無法滿足此檢查。在 v2.1.214 之前,主目錄顯示上述訊息,其建議無法在那裡成功。

2766 2956 

2767```text theme={null}2957```text theme={null}

2768Error: 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).2958Error: 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).

2769```2959```

2770 2960 

2961如果您在 [`Trust <directory>?` 問題](/docs/zh-TW/remote-control#requirements)回答 `n` 或按 Enter,命令會列印一個 `Remote Control did not start` 訊息,命名目錄並以代碼 1 結束。再次執行 `claude rc` 以回答 `y`。

2962 

2771**該怎麼做:**2963**該怎麼做:**

2772 2964 

2773* 在目錄中執行 `claude`,接受[工作區信任對話框](/docs/zh-TW/permissions#project-allow-rules-and-workspace-trust),然後再次執行 `claude remote-control`2965* 首先從終端信任目錄:在那裡執行 `claude rc` 並回答 `y`,或執行 `claude` 並接受[工作區信任對話框](/docs/zh-TW/permissions#project-allow-rules-and-workspace-trust),然後再次執行您的原始命令

2774* 在您的主目錄中,變更到專案目錄並在那裡啟動遠端控制2966* 在您的主目錄中,變更到專案目錄並在那裡啟動遠端控制

2775 2967 

2968在 v2.1.284 之前,命令永遠不會詢問,即使在終端中。

2969 

2776<h3 id="not-carried-over-to-the-sessions-remote-control-starts">2970<h3 id="not-carried-over-to-the-sessions-remote-control-starts">

2777 未帶到遠端控制啟動的工作階段2971 未帶到遠端控制啟動的工作階段

2778</h3>2972</h3>


2986* 伺服器端 HEAD 指向沒有人推送的分支的遠端3180* 伺服器端 HEAD 指向沒有人推送的分支的遠端

2987* 沒有 `origin` 遠端的儲存庫,或您從未擷取的儲存庫3181* 沒有 `origin` 遠端的儲存庫,或您從未擷取的儲存庫

2988 3182 

2989Claude Code 為任何 [injects dynamic context](/docs/zh-TW/skills#when-an-injected-command-fails) 的 skill 顯示相同的錯誤,失敗的注入命令中止該 skill 的呼叫。兩個同級字串在命令執行之前就會觸發:3183Claude Code 為任何[注入動態上下文](/docs/zh-TW/skills#when-an-injected-command-fails)的 skill 顯示相同的錯誤,失敗的注入命令中止該 skill 的呼叫。兩個同級字串在命令執行之前就會觸發:

2990 3184 

2991* `Shell command permission check failed for pattern "..."`: 命令的權限檢查不允許它。[Permission checks on injected commands](/docs/zh-TW/skills#permission-checks-on-injected-commands) 涵蓋在每個權限模式中哪些結果中止以及如何使用 `allowed-tools` 預先批准命令3185* `Shell command permission check failed for pattern "..."`:命令的權限檢查不允許它。[注入命令的權限檢查](/docs/zh-TW/skills#permission-checks-on-injected-commands)涵蓋在每個權限模式中哪些結果中止以及如何使用 `allowed-tools` 預先批准命令

2992* ``Skill <name> requires bash (`shell: bash` in frontmatter) but Git Bash was not found``: skill 的 frontmatter 在沒有它的機器上要求 bash。安裝 Git for Windows 或將 frontmatter 變更為 `shell: powershell`。請參閱[注入命令如何執行](/docs/zh-TW/skills#how-injected-commands-run)3186* ``Skill <name> requires bash (`shell: bash` in frontmatter) but Git Bash was not found``:skill 的 frontmatter 在沒有它的機器上要求 bash。安裝 Git for Windows 或將 frontmatter 變更為 `shell: powershell`。請參閱[注入命令如何執行](/docs/zh-TW/skills#how-injected-commands-run)

2993 3187 

2994**該怎麼做:**3188**該怎麼做:**

2995 3189 


3056 3250 

3057Claude Code 建議此工作階段中菜單列出的最接近的命令名稱或別名。當沒有接近的時,訊息在名稱後結束。原因通常是以下之一:3251Claude Code 建議此工作階段中菜單列出的最接近的命令名稱或別名。當沒有接近的時,訊息在名稱後結束。原因通常是以下之一:

3058 3252 

3059* 打字錯誤,例如 `/hepl` 代替 `/help`。[How the command menu matches what you type](/docs/zh-TW/commands#how-the-command-menu-matches-what-you-type) 涵蓋在提交前選擇接近的匹配3253* 打字錯誤,例如 `/hepl` 代替 `/help`。[命令菜單如何匹配您輸入的內容](/docs/zh-TW/commands#how-the-command-menu-matches-what-you-type)涵蓋在提交前選擇接近的匹配

3060* 存在但在此工作階段中不可用的命令,因為不符合要求,例如您的平台、計畫或身份驗證方法。[`/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)3254* 存在但在此工作階段中不可用的命令,因為不符合要求,例如您的平台、計畫或身份驗證方法。[`/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)

3061* 來自此工作階段中未安裝或未連接的[外掛程式](/docs/zh-TW/plugins)或 [MCP 伺服器](/docs/zh-TW/mcp#use-mcp-prompts-as-commands)的命令3255* 來自此工作階段中未安裝或未連接的[外掛程式](/docs/zh-TW/plugins/overview)或 [MCP 伺服器](/docs/zh-TW/mcp#use-mcp-prompts-as-commands)的命令

3062 3256 

3063Claude Code 只在互動終端工作階段中以此方式回答不符合的 `/` 名稱。在每個其他工作階段中,它改為將提示傳送給 Claude 作為普通訊息,並帶有命令未執行的注意和 Claude 可以在工作階段中執行的命令清單。這些工作階段包括:3257Claude Code 只在互動終端工作階段中以此方式回答不符合的 `/` 名稱。在每個其他工作階段中,它改為將提示傳送給 Claude 作為普通訊息,並帶有命令未執行的注意和 Claude 可以在工作階段中執行的命令清單。這些工作階段包括:

3064 3258 


3269* 對於互動工作階段,使用 `claude --resume` 開啟[工作階段選擇器](/docs/zh-TW/sessions#use-the-session-picker),按 `Ctrl+A` 將其擴寬到此機器上的每個專案,然後選擇工作階段3463* 對於互動工作階段,使用 `claude --resume` 開啟[工作階段選擇器](/docs/zh-TW/sessions#use-the-session-picker),按 `Ctrl+A` 將其擴寬到此機器上的每個專案,然後選擇工作階段

3270* 使用 `claude -p` 或 [Agent SDK](/docs/zh-TW/agent-sdk/overview) 建立的工作階段不會出現在選擇器中,所以重新檢查 ID 與您的原始執行列印的 `session_id`3464* 使用 `claude -p` 或 [Agent SDK](/docs/zh-TW/agent-sdk/overview) 建立的工作階段不會出現在選擇器中,所以重新檢查 ID 與您的原始執行列印的 `session_id`

3271 3465 

3466<h3 id="windows-reported-an-error-ebadf">

3467 Windows 報告了讀取此工作階段文字記錄檔案時的錯誤 (EBADF)

3468</h3>

3469 

3470您在 Windows 上恢復了工作階段,其已儲存的[文字記錄檔案](/docs/zh-TW/sessions#where-transcripts-are-stored)正常開啟,讀取它然後失敗並出現系統錯誤 EBADF。系統錯誤沒有說讀取失敗的原因,所以訊息建議可能的原因和要嘗試的內容:

3471 

3472```text theme={null}

3473Windows 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.

3474```

3475 

3476訊息遵循命令自己的失敗行,例如 `Failed to resume session <session-id>`。`claude --resume` 或 [`claude -p`](/docs/zh-TW/headless) 命令在顯示它後以代碼 1 結束。在工作階段內的 `/resume` 後,您目前的工作階段保持執行。

3477 

3478**該怎麼做:**

3479 

3480* 從掃描或攔截檔案讀取的軟體(例如安全、加密或端點管理工具)中排除保有您的工作階段文字記錄的資料夾。文字記錄預設位於 `%USERPROFILE%\.claude\projects` 下,或位於 [`CLAUDE_CONFIG_DIR`](/docs/zh-TW/env-vars) 命名的目錄下

3481* 如果您無法新增排除項,改為將 Claude Code 新增到該軟體的允許應用程式

3482* 再次恢復工作階段

3483 

3484在 v2.1.282 之前,失敗沒有解釋:`claude --resume <session-id>` 在 `Failed to resume session <session-id>` 結束,`-p` 執行只列印系統錯誤文字,例如 `Failed to resume session: EBADF: bad file descriptor, read`。

3485 

3272<h3 id="cannot-switch-renderers-in-this-session">3486<h3 id="cannot-switch-renderers-in-this-session">

3273 無法在此工作階段中切換轉譯器3487 無法在此工作階段中切換轉譯器

3274</h3>3488</h3>


3452* 將 marketplace 重新命名為不拼寫保留名稱的名稱,然後重新新增它3666* 將 marketplace 重新命名為不拼寫保留名稱的名稱,然後重新新增它

3453* 對於忽略的項目警告,執行它給出的 `claude plugin marketplace remove` 命令,或從 `~/.claude/plugins/known_marketplaces.json` 移除項目3667* 對於忽略的項目警告,執行它給出的 `claude plugin marketplace remove` 命令,或從 `~/.claude/plugins/known_marketplaces.json` 移除項目

3454 3668 

3669<h3 id="claude-code-refuses-the-marketplace-name">

3670 Claude Code 拒絕 marketplace 名稱

3671</h3>

3672 

3673已註冊的 marketplace 名稱 [冒充官方 Anthropic marketplace](/docs/zh-TW/plugins/marketplace-reference#reserved-names),根據該部分列出的規則。

3674 

3675如果 marketplace 是在檢查阻止它之前以這樣的名稱註冊的,marketplace 及從中安裝的 plugin 會停止載入,因為 Claude Code 每次讀取 marketplace 的目錄時都會檢查名稱。當名稱模仿官方名稱時,`claude plugin list` 和 `/plugin` **錯誤** 標籤會報告每個受影響的 plugin,訊息開頭為:

3676 

3677```text theme={null}

3678Claude Code refuses the marketplace name "anthropic-plugins-v2"

3679```

3680 

3681對於模仿名稱,marketplace 自己的錯誤讀作 `Claude Code refuses this marketplace's name: it looks like one of Anthropic's own`。`claude plugin marketplace add` 拒絕任何冒充名稱,並顯示 `Marketplace name impersonates an official Anthropic/Claude marketplace`。

3682 

3683在 v2.1.282 之前,`claude plugin list` 和 `/plugin` 報告模仿名稱的 plugin 也失敗載入,而沒有將 marketplace 名稱命名為原因。

3684 

3685**該怎麼做:**

3686 

3687* 執行 `claude plugin marketplace remove <name>`。這也會卸載從 marketplace 安裝的 plugin 並刪除其已儲存的資料

3688* 若要改為保留 marketplace,請等待其維護者重新命名它,然後執行 `claude plugin marketplace update <name>`

3689* 如果您發佈 marketplace,請在您的 `marketplace.json` 中重新命名它;使用者然後更新 marketplace 而不是移除它

3690 

3455<h3 id="marketplace-is-already-added-from-a-different-source">3691<h3 id="marketplace-is-already-added-from-a-different-source">

3456 Marketplace 已從不同的來源新增3692 Marketplace 已從不同的來源新增

3457</h3>3693</h3>


3621* `Failed to load marketplace configuration`:檔案不是有效的 JSON,或無法讀取。空檔案也會以這種方式失敗。3857* `Failed to load marketplace configuration`:檔案不是有效的 JSON,或無法讀取。空檔案也會以這種方式失敗。

3622* `Marketplace configuration file is corrupted`:檔案是有效的 JSON,但其內容與登錄架構不符。3858* `Marketplace configuration file is corrupted`:檔案是有效的 JSON,但其內容與登錄架構不符。

3623 3859 

3624遺失的檔案不是失敗:Claude Code 將其視為沒有marketplace 的登錄。3860遺失的檔案不是失敗:Claude Code 將其視為沒有 marketplace 的登錄。

3625 3861 

3626使用空檔案時,`claude plugin install` 報告:3862使用空檔案時,`claude plugin install` 報告:

3627 3863 


3654 3890 

3655* 詢問您的 claude.ai 組織的管理員以變更 plugin 在 claude.ai 上的必需狀態3891* 詢問您的 claude.ai 組織的管理員以變更 plugin 在 claude.ai 上的必需狀態

3656 3892 

3893<h3 id="plugin-was-not-uninstalled">

3894 Plugin 未被卸載

3895</h3>

3896 

3897您執行了 [`claude plugin uninstall`](/docs/zh-TW/plugins/cli-reference#plugin-uninstall),或在 `/plugin` **已安裝** 標籤中選擇了 **卸載**,而卸載停止並顯示以 `"<plugin>" was not uninstalled:` 開頭的訊息。

3898 

3899當 Claude Code 從 `enabledPlugins` 移除 plugin 的項目並讀回該範圍的設定檔案時,要麼 plugin 仍在該處被開啟,要麼可以開啟它的檔案無法被讀取或檢查。在設定項目可以將其重新開啟時刪除 plugin 的已儲存選項、機密和資料會遺失它們,因此卸載會停止:plugin 保持安裝,它儲存的任何內容都不會被刪除。

3900 

3901```text theme={null}

3902✘ Failed to uninstall plugin "formatter": "formatter" was not uninstalled: it is still switched on in /home/user/project/.claude/settings.local.json, although the settings change reported no error. It is still installed. Take it out of "enabledPlugins" in that file yourself, then uninstall it again.

3903```

3904 

3905訊息的中間部分命名了檔案和原因:

3906 

3907* `it is still switched on in <file>, although the settings change reported no error`:設定寫入報告成功但項目在讀回檔案時仍在那裡

3908* `it is still switched on in <file>, and the settings change failed (<error>)`:檔案無法被儲存,原因在括號中

3909* `<file> is there and could not be read`:檔案存在但無法作為設定讀取,例如因為它不是有效的 JSON,所以它可能仍然啟用 plugin

3910* `<file> (not read: it is on a network path or is a link to one, or could not be checked)`:Claude Code 沒有讀取專案或本機設定檔案,因為檔案或保存它的 `.claude` 資料夾是指向網路位置的連結,或因為它無法檢查該路徑

3911 

3912`claude plugin uninstall` 以退出代碼 1 結束,使用 `--json` 時結果帶有 `failureCode: "settings_still_on"`。`/plugin` 顯示相同的訊息。

3913 

3914**該怎麼做:**

3915 

3916* 遵循訊息的最後一句:修復或替換它命名的設定檔案,或自己從該檔案中的 `enabledPlugins` 移除 plugin 的項目,然後再次執行卸載

3917 

3657<h2 id="tool-errors">3918<h2 id="tool-errors">

3658 工具錯誤3919 工具錯誤

3659</h2>3920</h2>


3661這些錯誤來自 Claude 的內建工具。Claude 會自動修正大多數工具錯誤。當需要您進行變更時,該錯誤的**應該怎麼做**清單會說明要變更的內容。3922這些錯誤來自 Claude 的內建工具。Claude 會自動修正大多數工具錯誤。當需要您進行變更時,該錯誤的**應該怎麼做**清單會說明要變更的內容。

3662 3923 

3663<h3 id="agent-would-be-spawned-with-zero-tools">3924<h3 id="agent-would-be-spawned-with-zero-tools">

3664 Agent would be spawned with zero tools3925 Agent 會以零個工具生成

3665</h3>3926</h3>

3666 3927 

3667子代理的 [`tools` 清單](/docs/zh-TW/sub-agents#supported-frontmatter-fields)中的每個項目都無法符合可用的工具,因此 Claude Code 拒絕啟動子代理:沒有工具,它就無法行動。該訊息會按照出錯的原因將您的項目分組:3928子代理的 [`tools` 清單](/docs/zh-TW/sub-agents#supported-frontmatter-fields)中的每個項目都無法匹配可用的工具,因此 Claude Code 拒絕啟動子代理:沒有工具,它無法採取行動。該訊息會按出錯原因將您的項目分組:

3668 3929 

3669* **Unrecognized**:該項目不符合任何工具名稱,通常是打字錯誤,例如 `Grpe` 而非 `Grep`。3930* **無法識別**:該項目不符合任何工具名稱,通常是打字錯誤,例如 `Grpe` 而非 `Grep`。

3670* **Not available to subagents**:該項目命名了一個[子代理無法使用](/docs/zh-TW/sub-agents#available-tools)的真實工具。背景子代理保持較小的內建工具集,因此當子代理在背景中執行時(這是預設行為),只有前景子代理才能使用的項目會出現在此處。如果您列出 `Agent`,該訊息會改為在下一個群組下報告它。3931* **子代理無法使用**:該項目命名了一個[子代理無法使用](/docs/zh-TW/sub-agents#available-tools)的真實工具。背景子代理保持較小的內建工具集,因此當子代理在背景中執行時(這是預設值),只有前景子代理可以使用的項目會出現在此處。如果您列出 `Agent`,該訊息會改為在下一個群組下報告它。

3671* **Matched no tools in this session**:該項目有效,但目前工作階段中沒有工具符合它,例如沒有連接 GitHub MCP 伺服器的 `mcp__github__*`,或在[深度限制](/docs/zh-TW/sub-agents#let-subagents-spawn-their-own-subagents)處的子代理的 `Agent`。3932* **在此工作階段中未匹配任何工具**:該項目有效,但目前工作階段中沒有工具符合它,例如沒有連接 GitHub MCP 伺服器的 `mcp__github__*`,或子代理在[深度限制](/docs/zh-TW/sub-agents#let-subagents-spawn-their-own-subagents)處的 `Agent`。

3672 3933 

3673省略 `tools` 欄位永遠不會觸發此拒絕。如果您將 `tools` 清單留空,或 `disallowedTools` 移除其中的每個項目,Claude Code 也會跳過拒絕並啟動沒有工具的子代理。3934省略 `tools` 欄位永遠不會觸發此拒絕。如果您將 `tools` 清單留空,或 `disallowedTools` 移除其中的每個項目,Claude Code 也會跳過拒絕並啟動沒有工具的子代理。

3674 3935 

3675在 v2.1.208 之前,子代理啟動時沒有工具,可能會傳回空的或令人困惑的結果。3936在 v2.1.208 之前,子代理會以零個工具啟動,並可能返回空的或令人困惑的結果。

3676 3937 

3677```text theme={null}3938```text theme={null}

3678Agent '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.3939Agent '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.


3682 3943 

3683* 根據[子代理可用的工具](/docs/zh-TW/sub-agents#available-tools)修正錯誤命名的每個項目3944* 根據[子代理可用的工具](/docs/zh-TW/sub-agents#available-tools)修正錯誤命名的每個項目

3684* 移除工作階段沒有的工具項目,例如來自未連接伺服器的 MCP 工具3945* 移除工作階段沒有的工具項目,例如來自未連接伺服器的 MCP 工具

3685* 對於[背景子代理會捨棄](/docs/zh-TW/sub-agents#available-tools)的工具(例如 `CronCreate`),移除該項目。若要保留該工具,請[關閉 fork 模式](/docs/zh-TW/sub-agents#turn-fork-mode-on-or-off)並要求 Claude 在前景中執行子代理3946* 對於[背景子代理會捨棄](/docs/zh-TW/sub-agents#available-tools)的工具(例如 `CronCreate`),移除該項目。若要保留該工具,[關閉 fork 模式](/docs/zh-TW/sub-agents#turn-fork-mode-on-or-off)並要求 Claude 在前景中執行子代理

3686* 刪除 `tools` 欄位而不是列出工具,以給予子代理[子代理可用的每個工具](/docs/zh-TW/sub-agents#available-tools)3947* 刪除 `tools` 欄位而不是列出工具,以給予子代理[子代理可用的每個工具](/docs/zh-TW/sub-agents#available-tools)

3687* 對於只包含 `Agent` 的 `tools` 清單,提高[深度限制](/docs/zh-TW/sub-agents#let-subagents-spawn-their-own-subagents)或給予代理至少一個其他工具:Claude Code 在該限制處會拒絕提供 `Agent`,因此只有其他工具的清單會解析為沒有工具3948* 對於只包含 `Agent` 的 `tools` 清單,提高[深度限制](/docs/zh-TW/sub-agents#let-subagents-spawn-their-own-subagents)或給予代理至少一個其他工具:Claude Code 在該限制處會保留 `Agent`,因此只有其他工具的清單會解析為零個工具

3688 3949 

3689<h3 id="file-is-covered-by-a-read-deny-rule">3950<h3 id="file-is-covered-by-a-read-deny-rule">

3690 File is covered by a Read deny rule3951 檔案受到 Read 拒絕規則的涵蓋

3691</h3>3952</h3>

3692 3953 

3693Edit 或 Write 工具在由 [`Read` 拒絕規則](/docs/zh-TW/permissions#read-and-edit)符合的路徑上被呼叫,包括在該路徑建立新檔案。兩個工具都會變更 Claude 必須能夠讀回的內容,因此 Claude Code 在任何檔案存取之前拒絕該呼叫。NotebookEdit 不受 `Read` 拒絕規則涵蓋。在 v2.1.228 之前,該規則僅阻止 Edit 工具,在 v2.1.208 之前,只有 `Edit` 拒絕規則會阻止編輯。3954Edit 或 Write 工具在由 [`Read` 拒絕規則](/docs/zh-TW/permissions#read-and-edit)匹配的路徑上被呼叫,包括在該路徑建立新檔案。兩個工具都會變更 Claude 必須能夠讀回的內容,因此 Claude Code 在任何檔案存取之前拒絕該呼叫。NotebookEdit 不受 `Read` 拒絕規則涵蓋。在 v2.1.228 之前,該規則僅阻止 Edit 工具,在 v2.1.208 之前,只有 `Edit` 拒絕規則會阻止編輯。

3694 3955 

3695```text theme={null}3956```text theme={null}

3696File is covered by a Read deny rule in your permission settings and cannot be edited.3957File is covered by a Read deny rule in your permission settings and cannot be edited.


3703* 如果 Claude 應該能夠變更檔案,請在 `/permissions` 或[設定](/docs/zh-TW/settings-reference#permission-settings)中移除或縮小 `Read` 拒絕規則3964* 如果 Claude 應該能夠變更檔案,請在 `/permissions` 或[設定](/docs/zh-TW/settings-reference#permission-settings)中移除或縮小 `Read` 拒絕規則

3704* 如果檔案必須保持未觸及,請保留該規則並為相同路徑新增 `Edit` 拒絕規則以同時阻止 NotebookEdit 工具3965* 如果檔案必須保持未觸及,請保留該規則並為相同路徑新增 `Edit` 拒絕規則以同時阻止 NotebookEdit 工具

3705 3966 

3967<h3 id="path-cannot-contain-null-bytes">

3968 路徑不能包含空位元組

3969</h3>

3970 

3971檔案工具呼叫的路徑或模式引數包含空位元組,檔案系統和搜尋工具無法接受。Read、Write、Edit、NotebookEdit、Glob 和 Grep 會檢查此項,訊息會命名工具和引數:

3972 

3973```text theme={null}

3974Read file_path cannot contain null bytes (\0). Remove the null byte and try again.

3975```

3976 

3977工具呼叫失敗,Claude 看到錯誤,回合繼續。

3978 

3979**應該怎麼做:**

3980 

3981* 您這邊無需做任何事:錯誤會作為工具的結果返回給 Claude,訊息本身會告訴 Claude 移除空位元組並重試

3982 

3983在 v2.1.281 之前,Read、Write、Edit 或 NotebookEdit 路徑中的空位元組會以命名 `Path contains null bytes` 的錯誤結束整個回合,工具永遠不會執行。

3984 

3706<h3 id="subagent-type-is-required">3985<h3 id="subagent-type-is-required">

3707 subagent\_type is required3986 subagent\_type 是必需的

3708</h3>3987</h3>

3709 3988 

3710```text theme={null}3989```text theme={null}

3711subagent_type is required: the general-purpose agent is not available in this session. Available agents: ...3990subagent_type is required: the general-purpose agent is not available in this session. Available agents: ...

3712```3991```

3713 3992 

3714Claude 呼叫了 [Agent 工具](/docs/zh-TW/tools-reference#agent-tool-behavior)但沒有 `subagent_type`,而此工作階段沒有[通用子代理](/docs/zh-TW/sub-agents#built-in-subagents)可作為備用。這在兩種設定中是這樣的情況:3993Claude 呼叫了 [Agent 工具](/docs/zh-TW/tools-reference#agent-tool-behavior)但沒有 `subagent_type`,此工作階段沒有[通用子代理](/docs/zh-TW/sub-agents#built-in-subagents)可作為備用。這在兩種設定中是這樣的情況:

3715 3994 

3716* [`CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS=1`](/docs/zh-TW/env-vars) 在非互動模式中設定,這會移除每個內建子代理3995* [`CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS=1`](/docs/zh-TW/env-vars) 在非互動模式中設定,這會移除每個內建子代理

3717* 工作階段的主執行緒代理有一個 [`tools: Agent(...)` 允許清單](/docs/zh-TW/sub-agents#restrict-which-subagents-can-be-spawned),其中不包括 `general-purpose`3996* 工作階段的主執行緒代理有一個 [`tools: Agent(...)` 允許清單](/docs/zh-TW/sub-agents#restrict-which-subagents-can-be-spawned),其中不包括 `general-purpose`

3718 3997 

3719**應該怎麼做:**3998**應該怎麼做:**

3720 3999 

3721* 通常不需要做任何事:該訊息列出工作階段確實擁有的子代理,因此 Claude 可以使用其中一個重試4000* 通常無需做任何事:訊息會列出工作階段確實擁有的子代理,因此 Claude 可以使用其中一個重試

3722* 如果 Claude 持續失敗,請將 `general-purpose` 新增到 `tools: Agent(...)` 允許清單,或取消設定 `CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS`4001* 如果 Claude 持續失敗,請將 `general-purpose` 新增到 `tools: Agent(...)` 允許清單,或取消設定 `CLAUDE_AGENT_SDK_DISABLE_BUILTIN_AGENTS`

3723 4002 

3724在 v2.1.235 之前,相同的呼叫失敗並顯示 `Agent type 'general-purpose' not found`。4003在 v2.1.235 之前,相同的呼叫失敗並顯示 `Agent type 'general-purpose' not found`。

3725 4004 

3726<h3 id="memory-index-is-over-its-read-limit">4005<h3 id="memory-index-is-over-its-read-limit">

3727 Memory index is over its read limit4006 記憶體索引超過其讀取限制

3728</h3>4007</h3>

3729 4008 

3730Claude 寫入[自動記憶](/docs/zh-TW/memory#auto-memory)索引 `MEMORY.md` 並將其留在其中一個讀取限制之上:200 行或 25KB。寫入成功,但只有前 200 行或 25KB(以先到者為準)在工作階段開始時載入,因此超過限制的所有內容在每次讀取索引時都會被捨棄。在 v2.1.210 之前,超過限制的索引在下次載入時會被無聲地截斷,沒有寫入時間訊號。4009Claude 寫入[自動記憶體](/docs/zh-TW/memory#auto-memory)索引 `MEMORY.md` 並將其留在其讀取限制之一上方:200 行或 25KB。寫入成功,但只有前 200 行或 25KB(以先到者為準)在工作階段開始時載入,因此超過限制的所有內容在每次讀取索引時都會被捨棄。在 v2.1.210 之前,超限索引在下次載入時會被無聲地截斷,沒有寫入時間訊號。

3731 4010 

3732```text theme={null}4011```text theme={null}

3733Error: 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.4012Error: 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.

3734```4013```

3735 4014 

3736只有載入的內容才計入限制。YAML frontmatter 和區塊級 HTML 註解在索引載入前會被移除,因此它們被排除在測量之外。在 v2.1.211 之前,Claude Code 測量原始檔案,frontmatter 或註解可能會觸發此錯誤,即使載入的內容符合。4015只有載入的內容才計入限制。YAML frontmatter 和區塊級 HTML 註解在索引載入前會被移除,因此它們被排除在測量之外。在 v2.1.211 之前,Claude Code 測量原始檔案,frontmatter 或註解即使在載入的內容符合時也可能觸發此錯誤。

3737 4016 

3738Claude Code 在寫入後將錯誤傳遞給 Claude,而不是在您的終端中列印為橫幅,因此您可能只在文字記錄中注意到它。4017Claude Code 在寫入後將錯誤傳遞給 Claude,而不是在您的終端中列印為橫幅,因此您可能只在文字記錄中注意到它。

3739 4018 

3740當 Claude 的寫入使檔案接近限制但未超過時,Claude Code 會傳回更溫和的提醒以壓縮索引,而不是此錯誤。4019當 Claude 的寫入使檔案接近限制但未超過時,Claude Code 會返回更溫和的提醒以壓縮索引,而不是此錯誤。

3741 4020 

3742**應該怎麼做:**4021**應該怎麼做:**

3743 4022 

3744* 讓 Claude 重寫 `MEMORY.md`,或要求它:每個項目保留一行,將詳細資訊移到主題檔案中,並合併或捨棄過時的項目4023* 讓 Claude 重寫 `MEMORY.md`,或要求它:每個項目保留一行,將詳細資訊移到主題檔案中,並合併或捨棄過時的項目

3745* 若要自己修剪索引,請參閱[稽核和編輯您的記憶](/docs/zh-TW/memory#audit-and-edit-your-memory)4024* 若要自己修剪索引,請參閱[稽核和編輯您的記憶體](/docs/zh-TW/memory#audit-and-edit-your-memory)

3746 4025 

3747<h3 id="pkill-pattern-matches-the-claude-code-process">4026<h3 id="pkill-pattern-matches-the-claude-code-process">

3748 pkill pattern matches the Claude Code process4027 pkill 模式符合 Claude Code 程序

3749</h3>4028</h3>

3750 4029 

3751Bash 工具呼叫中的 `pkill` 命令使用了一個模式(通常使用 `-f`),該模式符合 Claude Code 程序本身,因此 Claude Code 拒絕該命令而不是讓它結束工作階段。Claude Code 在執行 `pkill` 之前使用 `pgrep` 測試該模式,並在其自己的程序 ID 在結果中時拒絕。該檢查僅在 Linux 上執行;在 macOS 上,`pkill` 不經修改地執行。在 v2.1.214 之前,該命令執行,符合的模式會在轉換中途殺死 Claude Code 工作階段。4030Bash 工具呼叫中的 `pkill` 命令使用了一個模式(通常帶有 `-f`),該模式符合 Claude Code 程序本身,因此 Claude Code 拒絕該命令而不是讓它結束工作階段。Claude Code 在執行 `pkill` 之前使用 `pgrep` 測試模式,並在結果中包含其自己的程序 ID 時拒絕。檢查僅在 Linux 上執行;在 macOS 上,`pkill` 不經修改地執行。在 v2.1.214 之前,命令執行,符合的模式在回合中途殺死了 Claude Code 工作階段。

3752 4031 

3753```text theme={null}4032```text theme={null}

3754pkill: refusing to run — this pattern matches the Claude CLI process (PID 12345). Narrow the pattern, or target your own children with `pkill -P $$ ...`.4033pkill: refusing to run — this pattern matches the Claude CLI process (PID 12345). Narrow the pattern, or target your own children with `pkill -P $$ ...`.


3762* 若要停止由目前 shell 啟動的程序,請使用 `pkill -P $$` 搭配模式,這會將符合限制為 shell 自己的子程序4041* 若要停止由目前 shell 啟動的程序,請使用 `pkill -P $$` 搭配模式,這會將符合限制為 shell 自己的子程序

3763 4042 

3764<h3 id="failed-to-write-to-a-teammate-inbox">4043<h3 id="failed-to-write-to-a-teammate-inbox">

3765 Failed to write to a teammate's inbox4044 無法寫入隊友的收件匣

3766</h3>4045</h3>

3767 4046 

3768Claude Code 無法將訊息寫入 `~/.claude/teams/{team-name}/inboxes/` 下的隊友信箱檔案,因此收件人沒有收到任何內容。當 Claude Code 無法建立或更新檔案時寫入失敗,例如因為磁碟已滿、目錄不可寫,或另一個代理長時間持有收件箱鎖定。在 v2.1.224 之前,Claude Code 即使寫入失敗也會報告訊息已傳送。4047Claude Code 無法將訊息寫入 `~/.claude/teams/{team-name}/inboxes/` 下隊友的信箱檔案,因此收件者沒有收到任何內容。當 Claude Code 無法建立或更新檔案時寫入失敗,例如因為磁碟已滿、目錄不可寫,或另一個代理長時間持有收件匣鎖。在 v2.1.224 之前,Claude Code 即使寫入失敗也會報告訊息已傳送。

3769 4048 

3770該錯誤出現在傳送代理的工具結果中,而不是作為您終端中的橫幅,其文字告訴 Claude 重試:4049錯誤出現在傳送代理的工具結果中,而不是作為您終端中的橫幅,其文字告訴 Claude 重試:

3771 4050 

3772```text theme={null}4051```text theme={null}

3773Failed to write to researcher's inbox — nothing was sent. Try again, or message the lead.4052Failed to write to researcher's inbox — nothing was sent. Try again, or message the lead.


3775 4054 

3776結構化[代理團隊](/docs/zh-TW/agent-teams)協議訊息以相同方式失敗,錯誤命名未傳遞的訊息:當 Claude Code 無法寫入計畫核准、計畫拒絕、關閉要求或關閉拒絕時,錯誤讀作 `Failed to write the <message> to <name>'s inbox — nothing was sent`。該清單中的 `plan approval` 是領導者核准隊友計畫的決定;隊友的計畫提交是單獨的 `plan approval request` 訊息。該訊息和另外兩個協議訊息帶有自己的訊息文字和後果:4055結構化[代理團隊](/docs/zh-TW/agent-teams)協議訊息以相同方式失敗,錯誤命名未傳遞的訊息:當 Claude Code 無法寫入計畫核准、計畫拒絕、關閉要求或關閉拒絕時,錯誤讀作 `Failed to write the <message> to <name>'s inbox — nothing was sent`。該清單中的 `plan approval` 是領導者核准隊友計畫的決定;隊友的計畫提交是單獨的 `plan approval request` 訊息。該訊息和另外兩個協議訊息帶有自己的訊息文字和後果:

3777 4056 

3778* `Failed to write the plan approval request to the lead's inbox — plan not submitted; try again`:隊友的計畫從未到達領導者,隊友保持在計畫模式,直到重新提交成功4057* `Failed to write the plan approval request to the lead's inbox — plan not submitted; try again`:隊友的計畫永遠沒有到達領導者,隊友保持在計畫模式直到重新提交成功

3779* `The permission request could not be delivered to the team lead (mailbox write failed)`:隊友的權限要求從未到達領導者,因此沒有人核准工具呼叫4058* `The permission request could not be delivered to the team lead (mailbox write failed)`:隊友的權限要求永遠沒有到達領導者,因此沒有人核准工具呼叫

3780* `The confirmation could not be written to team-lead's inbox.`:關閉核准本身生效,隊友退出;只有對領導者的確認遺失4059* `The confirmation could not be written to team-lead's inbox.`:關閉核准本身生效,隊友退出;只有對領導者的確認遺失

3781 4060 

3782當您自己訊息隊友時,在領導者工作階段中輸入 `@name` 後跟訊息,相同的失敗會顯示為通知 `Couldn't write to @name's inbox — message not sent. Try again.`,Claude Code 會將您的文字保留在提示框中,以便您可以再次傳送。4061當您自己訊息隊友時,在領導者工作階段中輸入 `@name` 後跟訊息,相同的失敗會顯示為通知 `Couldn't write to @name's inbox — message not sent. Try again.`,Claude Code 會將您的文字保留在提示框中,以便您可以再次傳送。

3783 4062 

3784**應該怎麼做:**4063**應該怎麼做:**

3785 4064 

3786* 要求傳送者重新傳送訊息;收件箱鎖定的爭用是暫時的,在重試時會清除4065* 要求傳送者重新傳送訊息;收件匣鎖的爭用是暫時的,在重試時會清除

3787* 檢查可用磁碟空間,並檢查 `~/.claude/teams` 及其下的檔案是否可由您的使用者寫入4066* 檢查可用磁碟空間,並檢查 `~/.claude/teams` 及其下的檔案是否可由您的使用者寫入

3788 4067 

3789<h3 id="teammate-agent-definition-not-restored">4068<h3 id="teammate-agent-definition-not-restored">

3790 Teammate's agent definition was not restored4069 隊友的代理定義未被復原

3791</h3>4070</h3>

3792 4071 

3793Claude 訊息了一個已停止的[代理團隊](/docs/zh-TW/agent-teams)隊友,Claude Code 將其恢復而沒有重新應用它生成的[子代理定義](/docs/zh-TW/agent-teams#use-subagent-definitions-for-teammates),因為其定義檔案來自沒有已儲存信任的資料夾。該通知在傳送代理的工具結果中的恢復報告之後:4072Claude 訊息了一個已停止的[代理團隊](/docs/zh-TW/agent-teams)隊友,Claude Code 將其恢復而沒有重新應用[子代理定義](/docs/zh-TW/agent-teams#use-subagent-definitions-for-teammates)它是從中生成的,因為其定義檔案來自沒有已儲存信任的資料夾。通知在傳送代理的工具結果中的恢復報告之後:

3794 4073 

3795```text wrap theme={null}4074```text wrap theme={null}

3796Its 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.4075Its 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.

3797```4076```

3798 4077 

3799該檢查適用於專案的 `.claude/agents/` 目錄或 `--add-dir` 目錄中的定義,接受父資料夾的信任對話不滿足它。4078檢查適用於專案的 `.claude/agents/` 目錄或 `--add-dir` 目錄中的定義,接受父資料夾的信任對話不滿足它。

3800 4079 

3801**應該怎麼做:**4080**應該怎麼做:**

3802 4081 


3804* 或在 `~/.claude.json` 中將 `hasTrustDialogAccepted` 項目設定為 `true`,使用偵錯日誌列印的確切 `projects["<path>"]` 鍵4083* 或在 `~/.claude.json` 中將 `hasTrustDialogAccepted` 項目設定為 `true`,使用偵錯日誌列印的確切 `projects["<path>"]` 鍵

3805 4084 

3806<h3 id="message-too-large-for-cross-session-delivery">4085<h3 id="message-too-large-for-cross-session-delivery">

3807 Message too large for cross-session delivery4086 跨工作階段傳遞的訊息太大

3808</h3>4087</h3>

3809 4088 

3810Claude 的[跨工作階段訊息](/docs/zh-TW/cross-session-messaging)到此機器上您的另一個工作階段太長而無法傳送。Claude Code 拒絕了它,接收工作階段沒有收到任何內容。拒絕出現在傳送工作階段的工具結果中,而不是作為您終端中的橫幅。它命名了兩個大小以及如何使訊息符合:4089Claude 的[跨工作階段訊息](/docs/zh-TW/cross-session-messaging)到此機器上您的另一個工作階段太長而無法傳送。Claude Code 拒絕了它,接收工作階段沒有收到任何內容。拒絕出現在傳送工作階段的工具結果中,而不是作為您終端中的橫幅。它命名兩個大小以及如何使訊息符合:

3811 4090 

3812```text wrap theme={null}4091```text wrap theme={null}

3813Failed 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.4092Failed 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.

3814```4093```

3815 4094 

3816重新傳送相同的文字以相同的方式失敗。4095重新傳送相同的文字以相同方式失敗。

3817 4096 

3818**應該怎麼做:**4097**應該怎麼做:**

3819 4098 

3820* 要求 Claude 總結訊息,或將大量內容放在收件人可以讀取的檔案中並傳送檔案的路徑4099* 要求 Claude 總結訊息,或將大量內容放在收件者可以讀取的檔案中

3821* 要求 Claude 將內容分割成幾個較短的訊息4100* 要求 Claude 將內容分割成幾個較短的訊息

3822 4101 

3823在 v2.1.235 之前,Claude Code 報告超大訊息已傳送。接收工作階段未讀就捨棄了它。4102在 v2.1.235 之前,Claude Code 報告超大訊息已傳送。接收工作階段未讀地捨棄了它。

3824 4103 

3825<h3 id="too-many-messages-to-this-session-just-now">4104<h3 id="too-many-messages-to-this-session-just-now">

3826 Too many messages to this session just now4105 此工作階段剛才收到太多訊息

3827</h3>4106</h3>

3828 4107 

3829Claude 向此機器上您的一個工作階段傳送了快速的[跨工作階段訊息](/docs/zh-TW/cross-session-messaging)爆發,該爆發達到了該工作階段的收件箱接受的內容。Claude Code 拒絕了下一個傳送,接收工作階段沒有收到任何內容。拒絕出現在傳送工作階段的工具結果中,而不是作為您終端中的橫幅:4108Claude 向此機器上您的一個工作階段傳送了快速的[跨工作階段訊息](/docs/zh-TW/cross-session-messaging)爆發,爆發達到該工作階段的收件匣接受的內容。Claude Code 拒絕了下一個傳送,接收工作階段沒有收到任何內容。拒絕出現在傳送工作階段的工具結果中,而不是作為您終端中的橫幅:

3830 4109 

3831```text wrap theme={null}4110```text wrap theme={null}

3832Failed 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.4111Failed 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.


3834 4113 

3835**應該怎麼做:**4114**應該怎麼做:**

3836 4115 

3837* 通常不需要做任何事:Claude 將剩餘內容批次處理為一個訊息,或在傳送更多內容之前等待4116* 通常無需做任何事:Claude 將剩餘內容批次處理為一個訊息,或在傳送更多內容之前等待

3838* 如果您自己提示了爆發,請要求 Claude 將剩餘內容合併為單一訊息4117* 如果您自己提示了爆發,要求 Claude 將剩餘內容合併為單一訊息

3839 4118 

3840在 v2.1.236 之前,Claude Code 報告這些傳送已傳送。接收工作階段未讀就捨棄了它們。4119在 v2.1.236 之前,Claude Code 報告這些傳送已傳送。接收工作階段未讀地捨棄了它們。

3841 4120 

3842<h3 id="refusing-to-send-a-cross-session-message">4121<h3 id="refusing-to-send-a-cross-session-message">

3843 Refusing to send a cross-session message4122 拒絕傳送跨工作階段訊息

3844</h3>4123</h3>

3845 4124 

3846在 Claude Code 將[跨工作階段訊息](/docs/zh-TW/cross-session-messaging)寫入此機器上您的另一個工作階段之前,它會檢查目標工作階段的收件箱通訊端是否是訊息定址到的端點。當檢查失敗時,Claude Code 在傳送工作階段中拒絕傳送,目標工作階段沒有收到任何內容。對於 Claude 傳送的訊息,拒絕出現在傳送工作階段的工具結果中:4125在 Claude Code 將[跨工作階段訊息](/docs/zh-TW/cross-session-messaging)寫入此機器上您的另一個工作階段之前,它會檢查目標工作階段的收件匣通訊端是否是訊息定址到的端點。當檢查失敗時,Claude Code 拒絕傳送,目標工作階段收不到任何內容。對於 Claude 傳送的訊息,拒絕出現在傳送工作階段的工具結果中:

3847 4126 

3848```text theme={null}4127```text theme={null}

3849Failed to send to api-worker: Refusing to send: reply target is a symlink4128Failed to send to api-worker: Refusing to send: reply target is a symlink


3855* `cannot vet reply target`:Claude Code 根本無法檢查目標路徑,例如因為讀取失敗並出現權限錯誤。4134* `cannot vet reply target`:Claude Code 根本無法檢查目標路徑,例如因為讀取失敗並出現權限錯誤。

3856* `connected endpoint is not the expected process`:持有通訊端的程序不是訊息定址到的工作階段,因此位址已過時或另一個程序取代了通訊端。4135* `connected endpoint is not the expected process`:持有通訊端的程序不是訊息定址到的工作階段,因此位址已過時或另一個程序取代了通訊端。

3857* `connected endpoint identity could not be read`:Claude Code 已連接但無法讀取哪個程序持有另一端,因此無法確認目標。這可能是暫時的。4136* `connected endpoint identity could not be read`:Claude Code 已連接但無法讀取哪個程序持有另一端,因此無法確認目標。這可能是暫時的。

3858* `connected endpoint is not owned by this user`:持有通訊端的程序以不同的使用者帳戶執行,因此它不是您的其中一個工作階段。4137* `connected endpoint is not owned by this user`:持有通訊端的程序以不同的使用者帳戶執行,因此它不是您的工作階段之一。

3859* `connected endpoint owner could not be read`:Claude Code 已連接但無法讀取哪個使用者帳戶擁有另一端,因此無法確認端點是您的。4138* `connected endpoint owner could not be read`:Claude Code 已連接但無法讀取哪個使用者帳戶擁有另一端,因此無法確認端點是您的。

3860* `connected endpoint is a different process with the expected pid`:程序 ID 符合訊息定址到的 ID,但 Claude Code 無法確認它是相同的程序。通常該工作階段已退出,作業系統重新使用了其程序 ID,因此位址已過時。4139* `connected endpoint is a different process with the expected pid`:程序 ID 符合訊息定址到的 ID,但 Claude Code 無法確認它是相同的程序。通常該工作階段已退出,作業系統重新使用了其程序 ID,因此位址已過時。

3861 4140 

3862**應該怎麼做:**4141**應該怎麼做:**

3863 4142 

3864* 通常不需要做任何事:檢查會防止訊息到達定址到的工作階段以外的端點,沒有傳送任何內容4143* 通常無需做任何事:檢查會防止訊息到達定址到的工作階段以外的端點,沒有任何內容被傳送

3865* 要求 Claude 再次列出您的工作階段並重新傳送;由過時位址引起的拒絕在 Claude 傳送到目前的工作階段後會清除4144* 要求 Claude 再次列出您的工作階段並重新傳送;由過時位址引起的拒絕在 Claude 傳送到目前的工作階段後清除

3866* 如果 `reply target is a symlink` 對一個工作階段重複,請檢查在該工作階段的通訊端路徑建立連結的內容,顯示在其 `/status` 下的 `Peer address`4145* 如果 `reply target is a symlink` 對一個工作階段重複,檢查在該工作階段的通訊端路徑(顯示在其 `/status` 下的 `Peer address`)建立連結的內容

3867* 對於 `connected endpoint identity could not be read`,重新傳送;該條件可能是暫時的4146* 對於 `connected endpoint identity could not be read`,重新傳送;該條件可能是暫時的

3868* 如果 `connected endpoint is not owned by this user` 出現在共用機器上,該位址處的工作階段以另一個使用者的帳戶執行,因此 Claude 無法從您的帳戶訊息它4147* 如果 `connected endpoint is not owned by this user` 出現在共用機器上,該位址處的工作階段以另一使用者帳戶執行,因此 Claude 無法從您的帳戶訊息它

3869 4148 

3870在 v2.1.248 之前,Claude Code 沒有檢查端點的擁有使用者或程序啟動時間,因此命名這些檢查的拒絕不會出現在較早的版本上。4149在 v2.1.248 之前,Claude Code 沒有檢查端點的擁有使用者或程序啟動時間,因此命名這些檢查的拒絕不會出現在較早的版本上。

3871 4150 

3872<h3 id="refusing-after-a-symlink-changed">4151<h3 id="refusing-after-a-symlink-changed">

3873 Refusing to read, write, or search a path4152 拒絕讀取、寫入或搜尋路徑

3874</h3>4153</h3>

3875 4154 

3876Claude Code 檢查檔案路徑的[權限規則](/docs/zh-TW/permissions#read-and-edit),然後在工具開啟檔案或啟動搜尋時再次確認該解析。當它無法確認路徑仍然導向檢查核准的位置時,Claude Code 拒絕該操作而不是跟隨它。拒絕出現在工具結果中:4155Claude Code 檢查檔案路徑的[權限規則](/docs/zh-TW/permissions#read-and-edit),然後在工具開啟檔案或啟動搜尋時再次確認該解析。當它無法確認路徑仍然導向檢查核准的位置時,Claude Code 拒絕操作而不是跟隨它。拒絕出現在工具結果中:

3877 4156 

3878```text wrap theme={null}4157```text wrap theme={null}

3879Refusing 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.4158Refusing 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.


3881 4160 

3882每個拒絕命名其原因:4161每個拒絕命名其原因:

3883 4162 

3884* `its symlink resolution changed after permission was checked`:路徑上的符號連結或 Grep 或 Glob 搜尋根目錄在權限檢查和操作之間被取代。在讀取拒絕中,括號中的短語命名哪個比較失敗。4163* `its symlink resolution changed after permission was checked`:路徑上的符號連結或 Grep 或 Glob 搜尋根在權限檢查和操作之間被取代。在讀取拒絕中,括號中的短語命名哪個比較失敗。

3885* `its parent-directory symlink resolution changed after permission was checked`:寫入路徑通過的目錄不再解析為核准的位置4164* `its parent-directory symlink resolution changed after permission was checked`:寫入路徑通過的目錄不再解析為核准的位置

3886* `it is a symbolic link. Write to the link's target path instead`:符號連結位於核准的寫入位置本身,例如 `CLAUDE.md` 是 `AGENTS.md` 的符號連結;訊息指導 Claude 到連結的目標4165* `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 無法跟隨路徑到磁碟上的最終位置,例如因為路徑上的符號連結形成迴圈

3887* `Refusing to write through symlink: <path>. Resolve the symlink and pass the real target path explicitly.`:相同的條件在另一個寫入器開啟檔案時被捕捉,例如寫入符號連結的 `.mcp.json`4166* `it is a symbolic link. Write to the link's target path instead`:符號連結位於核准的寫入位置本身,例如 `CLAUDE.md` 是 `AGENTS.md` 的符號連結;訊息將 Claude 導向連結的目標

3888* `Refusing to write into symlinked directory: <path>`:持有檔案的目錄本身是符號連結,例如專案的 `.claude/` 目錄連結到另一個位置4167* `Refusing to write through symlink: <path>. Resolve the symlink and pass the real target path explicitly.`:當另一個寫入器開啟檔案時捕獲的相同條件,例如寫入符號連結的 `.mcp.json`

4168* `Refusing to write into symlinked directory: <path>`:持有檔案的目錄本身是符號連結,例如專案的 `.claude/` 目錄連結到另一位置

3889* `a path one of its Read deny rules is written through changed while the search was being prepared. Retry.`:搜尋的 `Read` 拒絕規則命名通過符號連結的路徑,該連結在 Claude Code 準備搜尋時變更4169* `a path one of its Read deny rules is written through changed while the search was being prepared. Retry.`:搜尋的 `Read` 拒絕規則命名通過符號連結的路徑,該連結在 Claude Code 準備搜尋時變更

3890* `it could not be opened (EACCES) — it is unreadable, or is being replaced concurrently.`:搜尋根目錄存在但無法開啟;括號中的代碼是作業系統錯誤4170* `it could not be opened (EACCES) — it is unreadable, or is being replaced concurrently.`:搜尋根存在但無法開啟;括號中的代碼是作業系統錯誤

3891* `its permission check expired before it ran (too many concurrent file operations). Retry.`:Claude Code 在許多同時檔案操作下驅逐了核准記錄,然後工具使用它;重試執行新的權限檢查4171* `its permission check expired before it ran (too many concurrent file operations). Retry.`:Claude Code 在許多同時檔案操作下驅逐核准記錄,工具使用它之前;重試執行新鮮的權限檢查

3892* `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` 二進位檔解析為絕對路徑,因此它拒絕在工作目錄外的搜尋,而不是執行您的拒絕規則不涵蓋的搜尋4172* `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` 二進位檔解析為絕對路徑,因此它拒絕工作目錄外的搜尋,而不是執行您的拒絕規則不涵蓋的搜尋

3893 4173 

3894**應該怎麼做:**4174**應該怎麼做:**

3895 4175 

3896* 通常不需要做任何事:拒絕到達 Claude 作為工具結果,被拒絕的操作不執行4176* 通常無需做任何事:拒絕到達 Claude 作為工具結果,被拒絕的操作不執行

3897* 如果符號連結拒絕在一個路徑上重複,請找到持續重寫連結的內容,例如建置工具或檔案監視程式,或要求 Claude 使用檔案的已解析路徑而不是連結的路徑4177* 如果符號連結拒絕在一個路徑上重複,找到什麼持續重寫那裡的連結,例如建置工具或檔案監視程式,或要求 Claude 使用檔案的已解析路徑而不是連結的路徑

3898* 如果此拒絕在 Windows 上的 AppContainer 或受限權杖沙箱內執行 Claude Code 時出現在每個檔案上,請升級到 v2.1.265 或更新版本4178* 如果此拒絕在 Windows 上 Claude Code 在 AppContainer 或受限權杖沙箱內執行時出現,升級到 v2.1.265 或更新版本

3899* 如果讀取拒絕在 macOS 上出現在沒有任何內容重寫的檔案上,例如拖入提示的螢幕擷取畫面,請升級到 v2.1.273 或更新版本4179* 如果讀取拒絕在 macOS 上出現,針對沒有任何內容重寫的檔案,例如拖入提示的螢幕擷取畫面,升級到 v2.1.273 或更新版本

3900* 對於 ripgrep 拒絕,使用您的套件管理員安裝 ripgrep,以便 `rg` 在 `PATH` 上解析為絕對路徑,或將搜尋保留在工作目錄下4180* 對於 ripgrep 拒絕,使用您的套件管理員安裝 ripgrep,使 `rg` 解析為 `PATH` 上的絕對路徑,或將搜尋保留在工作目錄下

4181 

4182在 v2.1.251 之前,Claude Code 僅針對檔案寫入重新檢查路徑的解析,因此在權限檢查後取代的連結可能會將讀取或搜尋重新導向到不同位置而沒有訊息。其中,只有父目錄、透過符號連結和符號連結目錄寫入拒絕出現在較早的版本上。

3901 4183 

3902在 v2.1.251 之前,Claude Code 僅對檔案寫入重新檢查路徑的解析,因此在權限檢查後取代的連結可能會將讀取或搜尋重新導向到不同的位置,沒有訊息。在這些拒絕中,只有父目錄、透過符號連結和符號連結目錄寫入拒絕出現在較早的版本上。4184在 v2.1.280 之前,`where it leads on disk could not be determined` 拒絕沒有出現。

3903 4185 

3904<h3 id="task-output-swap-refused">4186<h3 id="task-output-swap-refused">

3905 Task output swap refused4187 工作輸出交換被拒絕

3906</h3>4188</h3>

3907 4189 

3908Claude Code 將每個 Bash 命令的輸出儲存到其暫存目錄下的檔案。每次它開啟其中一個檔案時,它都會檢查路徑是否仍然導向它建立的檔案,沒有符號連結、額外硬連結或移動的目錄重新導向它。此訊息表示該檢查失敗,因此 Claude Code 拒絕了該操作,而不是透過該路徑寫入或讀取輸出。該訊息出現在 Bash 工具結果中:4190Claude Code 將每個 Bash 命令的輸出儲存到其暫存目錄下的檔案。每次它開啟其中一個檔案時,它都會檢查路徑是否仍然導向它建立的檔案,沒有符號連結、額外硬連結或移動的目錄重新導向它。此訊息表示該檢查失敗,因此 Claude Code 拒絕操作而不是透過該路徑寫入或讀取輸出。訊息出現在 Bash 工具結果中:

3909 4191 

3910```text wrap theme={null}4192```text wrap theme={null}

3911task 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.4193task 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.


3922**應該怎麼做:**4204**應該怎麼做:**

3923 4205 

3924* 升級到 v2.1.260 或更新版本。較早的版本有時在沒有連結或移動目錄存在時顯示此訊息4206* 升級到 v2.1.260 或更新版本。較早的版本有時在沒有連結或移動目錄存在時顯示此訊息

3925* 使用設定為新目錄的 [`CLAUDE_CODE_TMPDIR`](/docs/zh-TW/env-vars) 重新啟動 Claude Code4207* 使用 [`CLAUDE_CODE_TMPDIR`](/docs/zh-TW/env-vars) 設定為新鮮目錄重新啟動 Claude Code

3926* 或檢查 Claude Code 暫存目錄下的專案目錄,範例訊息中的 `/private/tmp/claude-501/-Users-you-my-project`。如果該路徑是符號連結,或不應該存在的目錄,請移除連結或目錄本身而不是連結的目標,然後重新啟動 Claude Code4208* 或檢查您的專案在 Claude Code 暫存目錄下的目錄,範例訊息中的 `/private/tmp/claude-501/-Users-you-my-project`。如果該路徑是符號連結,或不應該在那裡的目錄,移除連結或目錄本身而不是連結的目標,並重新啟動 Claude Code

3927* 如果拒絕重複,程序在工作階段執行時會取代、連結或移除 Claude Code 暫存目錄下的項目。將 [`CLAUDE_CODE_TMPDIR`](/docs/zh-TW/env-vars) 設定為沒有其他內容管理的目錄並重新啟動4209* 如果拒絕重複,程序在工作階段執行時替換、連結或移除 Claude Code 暫存目錄下的項目。將 [`CLAUDE_CODE_TMPDIR`](/docs/zh-TW/env-vars) 設定為沒有其他內容管理的目錄並重新啟動

4210 

4211<h3 id="disk-quota-or-temp-filesystem-is-full">

4212 磁碟配額或暫存檔案系統已滿

4213</h3>

4214 

4215Claude Code 將每個 Bash 和 PowerShell 命令的輸出儲存到其暫存目錄下的檔案。當命令以非零代碼退出且完全沒有輸出時,Claude Code 會檢查持有該檔案的檔案系統是否空間不足或 inode 不足,或您在其上的磁碟配額是否已用完。如果是這樣,診斷會出現在命令的結果中,代替空輸出:

4216 

4217```text wrap theme={null}

4218Your 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.

4219```

4220 

4221訊息命名什麼用完了:

4222 

4223* `Your disk quota is full ... (EDQUOT)`:您在該檔案系統上的配額已用完。配額可以在檔案系統仍顯示可用空間時已滿

4224* `The filesystem with Claude Code's temp directory ..., or your disk quota on it, is full (ENOSPC)`:檔案系統或您在其上的配額沒有空間剩餘

4225* `Command output was lost: the temp filesystem at ... is full` 或 `... is out of inodes`:檔案系統幾乎沒有可用空間剩餘,或 inode 即將用完

4226 

4227**應該怎麼做:**

4228 

4229* 刪除您在持有 Claude Code 暫存目錄的檔案系統上不再需要的檔案。對於 `EDQUOT`,刪除計入您自己配額的檔案。對於 `out of inodes`,刪除許多檔案而不是幾個大檔案,因為每個檔案佔用一個 inode,無論其大小如何

4230* 或使用 [`CLAUDE_CODE_TMPDIR`](/docs/zh-TW/env-vars) 設定為有空間的檔案系統上的目錄重新啟動 Claude Code

4231* 然後讓 Claude 再次執行命令。它列印的輸出已遺失,未被截斷

3928 4232 

3929<h3 id="the-source-file-is-not-valid-utf-8-text">4233<h3 id="the-source-file-is-not-valid-utf-8-text">

3930 The source file is not valid UTF-8 text4234 來源檔案不是有效的 UTF-8 文字

3931</h3>4235</h3>

3932 4236 

3933Claude 嘗試從位元組不解碼為文字的檔案發佈[成品](/docs/zh-TW/artifacts),或其文字已包含替換字元 `U+FFFD`,因此 Claude Code 在上傳任何內容之前拒絕發佈。該訊息出現在成品工具結果中,並命名要修正的第一個位置:4237Claude 嘗試從其位元組不解碼為文字的檔案發佈[成品](/docs/zh-TW/artifacts),或其文字已包含替換字元 `U+FFFD`,因此 Claude Code 拒絕發佈,未上傳任何內容。訊息出現在成品工具結果中,並命名要修正的第一個位置:

3934 4238 

3935```text wrap theme={null}4239```text wrap theme={null}

3936file_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.4240file_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.


3938file_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.4242file_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.

3939```4243```

3940 4244 

3941Claude Code 將檔案解碼為 UTF-8,或當它以小端 UTF-16 位元組順序標記開頭時解碼為 UTF-16。當這樣的 UTF-16 檔案無法解碼時,第一個訊息命名 `UTF-16` 並仍然告訴您將檔案重寫為 UTF-8。當更多位置跟隨命名的位置時,訊息在位置之後新增計數,例如 `(+2 more)`。4245Claude Code 將檔案解碼為 UTF-8,或當它以小端 UTF-16 位元組順序標記開始時解碼為 UTF-16。當這樣的 UTF-16 檔案不解碼時,第一個訊息命名 `UTF-16` 並仍然告訴您將檔案重寫為 UTF-8。當更多位置跟隨命名的位置時,訊息在位置後新增計數,例如 `(+2 more)`。

3942 4246 

3943**應該怎麼做:**4247**應該怎麼做:**

3944 4248 

3945* 通常不需要做任何事:Claude 重寫檔案並再次發佈4249* 通常無需做任何事:Claude 重寫檔案並再次發佈

3946* 如果檔案是您寫入或匯出的,請再次將其儲存為 UTF-8,並將每個 `U+FFFD` 取代為較早的編輯、貼上或轉換遺失的字元4250* 如果檔案是您寫入或匯出的,再次將其儲存為 UTF-8,並將每個 `U+FFFD` 替換為較早的編輯、貼上或轉換遺失的字元

3947* 若要在頁面上顯示有意的 `U+FFFD`,請在 HTML 中將其寫為 `&#xFFFD;` 而不是字面字元4251* 若要在頁面上顯示有意的 `U+FFFD`,請在 HTML 中將其寫為 `&#xFFFD;` 而不是字面字元

3948 4252 

3949在 v2.1.267 之前,Claude Code 上傳這樣的檔案而不檢查它,伺服器改為拒絕發佈。4253在 v2.1.267 之前,Claude Code 上傳這樣的檔案而不檢查它,伺服器改為拒絕發佈。

3950 4254 

3951<h3 id="reading-a-local-file-from-outside-the-connected-folders">4255<h3 id="reading-a-local-file-from-outside-the-connected-folders">

3952 Reading a local file from outside the connected folders in a Cowork session4256 在 Cowork 工作階段中從連接的資料夾外讀取本機檔案

3953</h3>4257</h3>

3954 4258 

3955在 Claude Desktop 應用程式中在您的機器上執行的 [Cowork](https://claude.com/docs/cowork/overview) 工作階段中,Claude 為[成品](/docs/zh-TW/artifacts)命名了本機檔案。Claude Code 無法確認檔案是工作階段連接資料夾內的純檔案:路徑位於這些資料夾外、通過符號連結或以可能命名不同檔案的方式拼寫。讀取這樣的檔案需要您的核准,在無法向您顯示核准卡的工作階段中,例如設定為跳過所有核准的工作階段,Claude Code 拒絕讀取。4259在 Claude Desktop 應用程式中在您的機器上執行的 [Cowork](https://claude.com/docs/cowork/overview) 工作階段中,Claude 命名了[成品](/docs/zh-TW/artifacts)的本機檔案。Claude Code 無法確認檔案是工作階段連接資料夾內的純檔案:路徑位於這些資料夾外、通過符號連結或以可能命名不同檔案的方式拼寫。讀取這樣的檔案需要您的核准,在無法向您顯示核准卡的工作階段中,例如設定為跳過所有核准的工作階段,Claude Code 拒絕讀取。

3956 4260 

3957拒絕出現在成品工具結果中;當檔案根本無法檢查時,它改為命名該失敗:4261拒絕出現在成品工具結果中;當檔案根本無法檢查時,它改為命名該失敗:

3958 4262 


3964 4268 

3965**應該怎麼做:**4269**應該怎麼做:**

3966 4270 

3967* 通常不需要做任何事:訊息告訴 Claude 改為使用連接資料夾內的純檔案4271* 通常無需做任何事:訊息告訴 Claude 改為使用連接資料夾內的純檔案

3968* 若要將該確切檔案放在成品中,請將其複製到工作階段的其中一個連接資料夾中作為常規檔案(不是符號連結),然後再次詢問4272* 若要將該確切檔案放在成品中,將其複製到工作階段的連接資料夾之一中作為常規檔案(不是符號連結),並再次詢問

3969 4273 

3970<h3 id="webfetch-cannot-fetch-localhost">4274<h3 id="webfetch-cannot-fetch-localhost">

3971 WebFetch cannot fetch localhost4275 WebFetch 無法擷取 localhost

3972</h3>4276</h3>

3973 4277 

3974Claude 呼叫了 [WebFetch](/docs/zh-TW/tools-reference#webfetch-tool-behavior),其 URL 的主機名沒有點,例如 `http://localhost:3000` 或裸內部網路名稱如 `http://wiki/`。WebFetch 在進行任何要求之前拒絕這些 URL:4278Claude 呼叫了 [WebFetch](/docs/zh-TW/tools-reference#webfetch-tool-behavior),其 URL 的主機名沒有點,例如 `http://localhost:3000` 或裸內部網路名稱如 `http://wiki/`。WebFetch 在進行任何要求之前拒絕這些 URL:


3979 4283 

3980**應該怎麼做:**4284**應該怎麼做:**

3981 4285 

3982* 通常不需要做任何事:訊息將 Claude 指向透過 Bash 工具的 `curl`,它可以到達本機和內部網路伺服器4286* 通常無需做任何事:訊息將 Claude 指向透過 Bash 工具的 `curl`,它可以到達本機和內部網路伺服器

3983 4287 

3984在 v2.1.268 之前,WebFetch 使用通用 `Invalid URL` 錯誤報告這些 URL。4288在 v2.1.268 之前,WebFetch 報告這些 URL 時出現通用 `Invalid URL` 錯誤。

3985 4289 

3986<h2 id="background-session-errors">4290<h2 id="background-session-errors">

3987 背景工作階段錯誤4291 背景工作階段錯誤


4275 4579 

4276在某些帳戶上,訊息在 `daemon` 位置說 `background service`。4580在某些帳戶上,訊息在 `daemon` 位置說 `background service`。

4277 4581 

4278在 npm 安裝上,在 `npm install -g @anthropic-ai/claude-code` 替換二進位檔案時出現的 `EUNKNOWN` 與[重新安裝期間的 `EACCES`](#eacces-when-starting-a-background-session) 有相同的原因,並在您在安裝完成後重試時清除。4582在 npm 安裝上,在 `npm install -g @anthropic-ai/claude-code` 替換二進位檔案時出現的 `EUNKNOWN` 與[重新安裝期間的 `EACCES`](#eacces-when-starting-a-background-session)有相同的原因,並在您在安裝完成後重試時清除。

4279 4583 

4280Claude Code 透過 PowerShell 啟動背景服務,以便服務在關閉終端時存活,在安裝時使用 PowerShell 7,否則使用 Windows PowerShell 5.1。當兩個 PowerShell 都無法執行時,Claude Code 改為直接啟動服務,因此只阻止 PowerShell 的原則不會導致此錯誤。如果您在沒有 npm 安裝執行時看到它,原則會阻止 Claude Code 可執行檔本身。4584Claude Code 透過 PowerShell 啟動背景服務,以便服務在關閉終端時存活,在安裝時使用 PowerShell 7,否則使用 Windows PowerShell 5.1。當兩個 PowerShell 都無法執行時,Claude Code 改為直接啟動服務,因此只阻止 PowerShell 的原則不會導致此錯誤。如果您在沒有 npm 安裝執行時看到它,原則會阻止 Claude Code 可執行檔本身。

4281 4585 


4341 啟動背景工作階段時工作目錄不再存在4645 啟動背景工作階段時工作目錄不再存在

4342</h3>4646</h3>

4343 4647 

4344您嘗試在不再存在的目錄中啟動[背景工作階段](/docs/zh-TW/agent-view)。當您從代理檢視分派或在您工作的目錄被刪除或移動後執行 `/background` 時,會發生這種情況。當您附加到或重新啟動其程序已退出且其目錄已消失的工作階段時,也會發生這種情況,因為新程序會在相同目錄中啟動。Claude Code 不啟動工作階段,訊息命名遺漏的目錄:4648您嘗試在不再存在的目錄中啟動[背景工作階段](/docs/zh-TW/agent-view)。Claude Code 不啟動工作階段,訊息命名遺漏的目錄:

4345 4649 

4346```text theme={null}4650```text theme={null}

4347Couldn't start a background session (working directory no longer exists or is not accessible: /tmp/demo)4651Couldn't start a background session (working directory no longer exists or is not accessible: /tmp/demo)


4353 4657 

4354* 重新建立訊息命名的目錄,或從存在的目錄分派,然後再試一次4658* 重新建立訊息命名的目錄,或從存在的目錄分派,然後再試一次

4355 4659 

4660<h3 id="workspace-not-trusted-when-dispatching-a-background-session">

4661 分派背景工作階段時工作區未信任

4662</h3>

4663 

4664您在未[信任](/docs/zh-TW/permissions#project-allow-rules-and-workspace-trust)的目錄中啟動或重新啟動[背景工作階段](/docs/zh-TW/agent-view),工作區信任對話無法出現以詢問您。Claude Code 不啟動工作階段:

4665 

4666```text theme={null}

4667Workspace not trusted. Run `claude` in /path/to/project once and accept the trust prompt, then retry.

4668```

4669 

4670從工作階段自己的目錄中的終端,相同的命令改為顯示信任對話並在您接受後啟動工作階段。此訊息出現在沒有對話可以出現的地方,例如在指令碼中,或當您從不同於其自己的目錄重新啟動工作階段時。

4671 

4672兩個變體命名不同的原因:

4673 

4674* **`The home directory is trusted one session at a time`**:工作階段的目錄是您的主目錄。Claude Code 永遠不會儲存主目錄的信任,因此在較早的工作階段中在那裡接受對話不計算。

4675* **`<path> could not be resolved on disk`**:Claude Code 無法在磁碟上找到工作階段的目錄。

4676 

4677**該怎麼做:**

4678 

4679* 在訊息命名的目錄中執行 `claude` 並接受信任對話,然後再次執行命令

4680* 對於主目錄訊息,從您主目錄中的終端執行命令,以便對話可以出現,或改為從專案目錄啟動工作階段

4681* 對於 `could not be resolved on disk` 訊息,重新建立目錄,或從存在的目錄啟動新工作階段

4682 

4356<h2 id="wrapper-and-ide-errors">4683<h2 id="wrapper-and-ide-errors">

4357 包裝程式和 IDE 錯誤4684 包裝程式和 IDE 錯誤

4358</h2>4685</h2>


4585* 縮短您的代理程式檔案的 `description` frontmatter,或要求 Claude 為您修剪它們。4912* 縮短您的代理程式檔案的 `description` frontmatter,或要求 Claude 為您修剪它們。

4586* 移除您不再使用的代理程式檔案。4913* 移除您不再使用的代理程式檔案。

4587 4914 

4915<h3 id="a-skill-command-or-workflow-wasnt-loaded-because-its-name-is-reserved">

4916 技能、命令或工作流程未被載入,因為其名稱已保留

4917</h3>

4918 

4919技能資料夾、frontmatter `name`、`.claude/commands/` 中的檔案或子資料夾,或[已儲存的工作流程](/docs/zh-TW/workflows#save-the-workflow-for-reuse)使用名稱 `anthropic-skills` 或以 `anthropic-skills:` 開頭的名稱。Claude Code [保留該名稱用於從 claude.ai 同步的技能](/docs/zh-TW/skills#names-reserved-for-synced-skills),不會載入該項目。

4920 

4921Claude Code 在對話檢視中顯示此警告作為啟動通知,而不是在 stderr 上:

4922 

4923```text theme={null}

4924未載入:重新命名 .claude/skills/anthropic-skills,然後重新啟動 — 其名稱使用 "anthropic-skills",這是為從您的 claude.ai 帳戶同步的技能保留的名稱

4925```

4926 

4927通知命名它拒絕的第一個項目要變更的內容:要重新命名的資料夾或檔案、要編輯的 `name:` 行,或要重新命名的工作流程。當拒絕了多個項目時,通知以計數結尾,例如 `· 2 more`,[偵錯日誌](/docs/zh-TW/debug-your-config)命名每一個。

4928 

4929**該怎麼做:**

4930 

4931* 重新命名通知命名的項目,或編輯它指向的 `name:` 行,然後重新啟動工作階段。

4932 

4933在 v2.1.282 之前,Claude Code 載入了具有這些名稱的技能和命令。

4934 

4588<h3 id="workspace-has-not-been-trusted">4935<h3 id="workspace-has-not-been-trusted">

4589 工作區尚未受信任4936 工作區尚未受信任

4590</h3>4937</h3>


4631 遠端受管設定無法載入4978 遠端受管設定無法載入

4632</h3>4979</h3>

4633 4980 

4634您的工作階段符合[伺服器受管設定](/docs/zh-TW/server-managed-settings)的資格,但 Claude Code 無法擷取它們,因此在互動工作階段中顯示此警告。括號中的原因命名失敗的內容,例如 `network error`、`request timed out` 或 `authentication rejected (401)`,行的其餘部分說明工作階段執行的策略:4981您的工作階段符合[伺服器受管設定](/docs/zh-TW/server-managed-settings)的資格,但 Claude Code 無法擷取它們或無法應用伺服器傳回的內容,因此在互動工作階段中顯示此警告。

4982 

4983括號中的原因命名失敗的內容,例如 `network error`、`request timed out` 或 `authentication rejected (401)`。原因 `no setting in the server response could be applied as written` 表示伺服器已回應,但它傳回的設定都未通過[驗證](/docs/zh-TW/server-managed-settings#invalid-entries-in-delivered-settings)。在 v2.1.282 之前,此原因讀作 `server returned invalid settings`。

4984 

4985行的其餘部分說明工作階段執行的策略:

4635 4986 

4636* **從較早成功擷取快取的設定**:Claude Code 在該快取策略上執行工作階段,除了[隱藏的環境變數](/docs/zh-TW/server-managed-settings#fetch-and-caching-behavior),行讀取 `using cached policy`。4987* **從較早成功擷取快取的設定**:Claude Code 在該快取策略上執行工作階段,除了[隱藏的環境變數](/docs/zh-TW/server-managed-settings#fetch-and-caching-behavior),行讀取 `using cached policy`。

4637* **無快取**:Claude Code 在沒有伺服器受管設定的情況下執行工作階段,行讀取 `no remote policy applied`。4988* **無快取**:Claude Code 在沒有伺服器受管設定的情況下執行工作階段,行讀取 `no remote policy applied`。


4639**該怎麼做:**4990**該怎麼做:**

4640 4991 

4641* 對訊息命名的原因採取行動:對於網路原因,檢查此機器是否可以到達 `api.anthropic.com`;對於驗證原因,使用 `/status` 檢查您的登入4992* 對訊息命名的原因採取行動:對於網路原因,檢查此機器是否可以到達 `api.anthropic.com`;對於驗證原因,使用 `/status` 檢查您的登入

4993* 對於 `no setting in the server response could be applied as written`,要求您的管理員更正伺服器上的設定

4642* 執行 `/status` 或 `claude doctor` 以取得完整診斷4994* 執行 `/status` 或 `claude doctor` 以取得完整診斷

4643 4995 

4644在 v2.1.248 之前,Claude Code 僅在偵錯日誌中報告設定擷取失敗。4996在 v2.1.248 之前,Claude Code 僅在偵錯日誌中報告設定擷取失敗。


4658* 再次啟動 Claude Code 並批准對話以在您的組織設定下繼續。拒絕的對話不會被記住,因此在下次啟動時會再次出現。5010* 再次啟動 Claude Code 並批准對話以在您的組織設定下繼續。拒絕的對話不會被記住,因此在下次啟動時會再次出現。

4659* 如果您對對話列出的設定不確定,在批准前詢問維護您的組織受管設定的人5011* 如果您對對話列出的設定不確定,在批准前詢問維護您的組織受管設定的人

4660 5012 

5013<h3 id="managed-settings-block-the-default-model">

5014 受管設定阻止預設模型

5015</h3>

5016 

5017您的組織的[受管設定](/docs/zh-TW/managed-settings)阻止預設選項解析為的模型以及它可以降級到的每個模型。將在預設選項上啟動的工作階段在啟動時退出,而不是執行被阻止的模型。您看到的訊息取決於阻止它的設定。當 [`deniedModels`](/docs/zh-TW/model-config#block-specific-models-or-versions) 清單阻止它時,訊息讀作:

5018 

5019```text theme={null}

5020Claude Code 無法啟動:您的組織的受管設定在 "deniedModels" 中阻止預設模型 (claude-opus-5-5),且它們允許的模型都無法用作預設模型。要求您的管理員更新 "deniedModels" 或 "availableModels"。

5021```

5022 

5023當 `availableModels` 清單且 [`availableModelsMatch`](/docs/zh-TW/settings-reference#availablemodelsmatch) 設定為 `"exact"` 時省略它,訊息讀作:

5024 

5025```text theme={null}

5026Claude Code 無法啟動:您的組織僅允許 "availableModels" 中列出的模型,且它們都無法用作預設模型 (claude-opus-5-5 未列出)。要求您的管理員更新 "availableModels"。

5027```

5028 

5029**該怎麼做:**

5030 

5031* 如果您管理設定,將您的使用者可以執行的模型新增到 `availableModels`,或縮小阻止每個後備的 `deniedModels` 項目。[阻止特定模型或版本](/docs/zh-TW/model-config#block-specific-models-or-versions)描述預設選項如何降級

5032* 如果您不管理它們,將訊息傳送給您的管理員。您自己的設定檔案無法擴大受管 `availableModels` 或 `deniedModels` 清單

5033 

4661<h3 id="mcp-server-is-blocked-by-enterprise-managed-policy">5034<h3 id="mcp-server-is-blocked-by-enterprise-managed-policy">

4662 MCP 伺服器被企業受管策略阻止5035 MCP 伺服器被企業受管策略阻止

4663</h3>5036</h3>


4927 5300 

4928* 配置的 [`--fallback-model`](/docs/zh-TW/cli-reference#cli-flags) 在可用性錯誤後接管該輪次,並在文字記錄中顯示通知5301* 配置的 [`--fallback-model`](/docs/zh-TW/cli-reference#cli-flags) 在可用性錯誤後接管該輪次,並在文字記錄中顯示通知

4929* Amazon Bedrock 或 Google Cloud 的 Agent Platform 啟動檢查發現您的預設模型不可用5302* Amazon Bedrock 或 Google Cloud 的 Agent Platform 啟動檢查發現您的預設模型不可用

4930* [自動模型備用](/docs/zh-TW/model-config#automatic-model-fallback)在 Fable 5.1、Fable 5、Opus 5.5 和 Opus 5 上將工作階段移至標記類別的備用模型(當該類別有備用模型時),並在文字記錄中顯示通知5303* [自動模型備用](/docs/zh-TW/model-config#automatic-model-fallback)在 Fable 5.1、Fable 5、Opus 5.5、Sonnet 5.5 和 Opus 5 上將工作階段移至標記類別的備用模型(當該類別有備用模型時),並在文字記錄中顯示通知

4931 5304 

4932下面的模型選擇檢查可以捕捉第二和第三種情況;第一種情況顯示為文字記錄通知而非 `/model` 變更。[模型設定](/docs/zh-TW/model-config)說明每個備用何時適用。5305下面的模型選擇檢查可以捕捉第二和第三種情況;第一種情況顯示為文字記錄通知而非 `/model` 變更。[模型設定](/docs/zh-TW/model-config)說明每個備用何時適用。

4933 5306 

Details

219</table>219</table>

220 220 

221<span id="fn1" style={{display: 'block', position: 'relative', top: '-120px'}} /><sup>1</sup> 在 Google Cloud's Agent Platform 上,web search 適用於 Claude 4 模型及更新版本。<br />221<span id="fn1" style={{display: 'block', position: 'relative', top: '-120px'}} /><sup>1</sup> 在 Google Cloud's Agent Platform 上,web search 適用於 Claude 4 模型及更新版本。<br />

222<span id="fn2" style={{display: 'block', position: 'relative', top: '-120px'}} /><sup>2</sup> 在這些提供者上,auto mode 僅支援 Claude Sonnet 5、Opus 4.7 或更新版本,以及 Fable 模型。請參閱 [Auto mode 配置](/docs/zh-TW/auto-mode-config)。這些提供者上的內建起始權限模式是 Manual。請參閱[工作階段開始時的模式](/docs/zh-TW/permission-modes#which-mode-a-session-starts-in)。在 v2.1.158 到 v2.1.206 中,這些提供者上的 auto mode 也需要設定 `CLAUDE_CODE_ENABLE_AUTO_MODE=1`;v2.1.207 移除了此要求。<br />222<span id="fn2" style={{display: 'block', position: 'relative', top: '-120px'}} /><sup>2</sup> 在這些提供者上,auto mode 僅支援 Claude Sonnet 5 或更新版本、Opus 4.7 或更新版本,以及 Fable 模型。請參閱 [Auto mode 配置](/docs/zh-TW/auto-mode-config)。如需工作階段在這些提供者上開始時的權限模式,請參閱[工作階段開始時的模式](/docs/zh-TW/permission-modes#which-mode-a-session-starts-in)。在 v2.1.158 到 v2.1.206 中,這些提供者上的 auto mode 也需要設定 `CLAUDE_CODE_ENABLE_AUTO_MODE=1`;v2.1.207 移除了此要求。<br />

223<span id="fn3" style={{display: 'block', position: 'relative', top: '-120px'}} /><sup>3</sup> 受您與雲端提供者的協議約束。<br />223<span id="fn3" style={{display: 'block', position: 'relative', top: '-120px'}} /><sup>3</sup> 受您與雲端提供者的協議約束。<br />

224<span id="fn4" style={{display: 'block', position: 'relative', top: '-120px'}} /><sup>4</sup> 僅限儀表板和 API。[貢獻指標](/docs/zh-TW/analytics#enable-contribution-metrics)需要 claude.ai Team 或 Enterprise 組織。<br />224<span id="fn4" style={{display: 'block', position: 'relative', top: '-120px'}} /><sup>4</sup> 僅限儀表板和 API。[貢獻指標](/docs/zh-TW/analytics#enable-contribution-metrics)需要 claude.ai Team 或 Enterprise 組織。<br />

225<span id="fn5" style={{display: 'block', position: 'relative', top: '-120px'}} /><sup>5</sup> 需要 macOS 和 Linux 上的 Claude Code v2.1.224 或更新版本,包括 WSL 2 內的 Linux。在原生 Windows 上,需要 Claude Code v2.1.234 或更新版本。使用 API 金鑰驗證時,訊息傳遞僅限同一機器。在 Amazon Bedrock、AWS 上的 Claude Platform、Google Cloud's Agent Platform 和 Microsoft Foundry 上,訊息傳遞僅限同一機器,需要 Claude Code v2.1.248 或更新版本。Claude 只能從連接到 [Remote Control](/docs/zh-TW/remote-control) 的工作階段找到您的 [Claude Code 網頁版](/docs/zh-TW/claude-code-on-the-web)工作階段和其他機器上的工作階段。若要連接,您需要 claude.ai 登入和其他 [Remote Control 要求](/docs/zh-TW/remote-control#requirements)。請參閱[在其他機器上訊息傳遞工作階段](/docs/zh-TW/cross-session-messaging#message-sessions-on-other-machines)。225<span id="fn5" style={{display: 'block', position: 'relative', top: '-120px'}} /><sup>5</sup> 需要 macOS 和 Linux 上的 Claude Code v2.1.224 或更新版本,包括 WSL 2 內的 Linux。在原生 Windows 上,需要 Claude Code v2.1.234 或更新版本。使用 API 金鑰驗證時,訊息傳遞僅限同一機器。在 Amazon Bedrock、AWS 上的 Claude Platform、Google Cloud's Agent Platform 和 Microsoft Foundry 上,訊息傳遞僅限同一機器,需要 Claude Code v2.1.248 或更新版本。Claude 只能從連接到 [Remote Control](/docs/zh-TW/remote-control) 的工作階段找到您的[雲端工作階段](/docs/zh-TW/claude-code-on-the-web)和其他機器上的工作階段。若要連接,您需要 claude.ai 登入和其他 [Remote Control 要求](/docs/zh-TW/remote-control#requirements)。請參閱[在其他機器上訊息傳遞工作階段](/docs/zh-TW/cross-session-messaging#message-sessions-on-other-machines)。

226 226 

227<Note>227<Note>

228 如果您透過 [LLM 閘道](/docs/zh-TW/llm-gateway)進行驗證,功能可用性與閘道轉發到的基礎提供者相符,除了 Claude Code 本身關閉的功能。每當 `ANTHROPIC_BASE_URL` 指向 `api.anthropic.com` 以外的主機時,Claude Code 會關閉功能,例如 [Remote Control](/docs/zh-TW/remote-control#requirements) 和[伺服器管理的設定](/docs/zh-TW/server-managed-settings#platform-availability),無論閘道轉發什麼。某些僅限 Anthropic 的功能,例如 [Advisor](/docs/zh-TW/advisor),只有在閘道將請求完整轉發到 Anthropic API 時才能運作。228 如果您透過 [LLM 閘道](/docs/zh-TW/llm-gateway)進行驗證,功能可用性與閘道轉發到的基礎提供者相符,除了 Claude Code 本身關閉的功能。每當 `ANTHROPIC_BASE_URL` 指向 `api.anthropic.com` 以外的主機時,Claude Code 會關閉功能,例如 [Remote Control](/docs/zh-TW/remote-control#requirements) 和[伺服器管理的設定](/docs/zh-TW/server-managed-settings#platform-availability),無論閘道轉發什麼。某些僅限 Anthropic 的功能,例如 [Advisor](/docs/zh-TW/advisor),只有在閘道將請求完整轉發到 Anthropic API 時才能運作。


243 **部分支援:**243 **部分支援:**

244 244 

245 * [Desktop](/docs/zh-TW/desktop):僅透過 [Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/overview)245 * [Desktop](/docs/zh-TW/desktop):僅透過 [Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/overview)

246 * [Auto mode](/docs/zh-TW/auto-mode-config):Sonnet 5、Opus 4.7 或更新版本,以及 Fable 模型僅限246 * [Auto mode](/docs/zh-TW/auto-mode-config):Sonnet 5 或更新版本、Opus 4.7 或更新版本,以及 Fable 模型僅限

247 * [Cross-session messaging](/docs/zh-TW/cross-session-messaging):僅限此機器上的您的工作階段 <sup><a href="#fn5">5</a></sup>247 * [Cross-session messaging](/docs/zh-TW/cross-session-messaging):僅限此機器上的您的工作階段 <sup><a href="#fn5">5</a></sup>

248 * [Zero Data Retention](/docs/zh-TW/zero-data-retention):受您的 AWS 協議約束248 * [Zero Data Retention](/docs/zh-TW/zero-data-retention):受您的 AWS 協議約束

249 249 


269 269 

270 * [Desktop](/docs/zh-TW/desktop):透過[受管設定](https://claude.com/docs/third-party/claude-desktop/configuration)或 [Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/overview)270 * [Desktop](/docs/zh-TW/desktop):透過[受管設定](https://claude.com/docs/third-party/claude-desktop/configuration)或 [Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/overview)

271 * [Web search](/docs/zh-TW/tools-reference#websearch-tool-behavior):Claude 4 模型及更新版本271 * [Web search](/docs/zh-TW/tools-reference#websearch-tool-behavior):Claude 4 模型及更新版本

272 * [Auto mode](/docs/zh-TW/auto-mode-config):Sonnet 5、Opus 4.7 或更新版本,以及 Fable 模型僅限272 * [Auto mode](/docs/zh-TW/auto-mode-config):Sonnet 5 或更新版本、Opus 4.7 或更新版本,以及 Fable 模型僅限

273 * [Cross-session messaging](/docs/zh-TW/cross-session-messaging):僅限此機器上的您的工作階段 <sup><a href="#fn5">5</a></sup>273 * [Cross-session messaging](/docs/zh-TW/cross-session-messaging):僅限此機器上的您的工作階段 <sup><a href="#fn5">5</a></sup>

274 * [Zero Data Retention](/docs/zh-TW/zero-data-retention):受您的 Google Cloud 協議約束274 * [Zero Data Retention](/docs/zh-TW/zero-data-retention):受您的 Google Cloud 協議約束

275 275 


283 283 

284 * [Desktop](/docs/zh-TW/desktop):僅透過 [Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/overview)284 * [Desktop](/docs/zh-TW/desktop):僅透過 [Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/overview)

285 * [Web search](/docs/zh-TW/tools-reference#websearch-tool-behavior):[部署於 Anthropic 上](https://platform.claude.com/docs/en/build-with-claude/claude-in-microsoft-foundry#hosting-options)僅限285 * [Web search](/docs/zh-TW/tools-reference#websearch-tool-behavior):[部署於 Anthropic 上](https://platform.claude.com/docs/en/build-with-claude/claude-in-microsoft-foundry#hosting-options)僅限

286 * [Auto mode](/docs/zh-TW/auto-mode-config):Sonnet 5、Opus 4.7 或更新版本,以及 Fable 模型僅限286 * [Auto mode](/docs/zh-TW/auto-mode-config):Sonnet 5 或更新版本、Opus 4.7 或更新版本,以及 Fable 模型僅限

287 * [Cross-session messaging](/docs/zh-TW/cross-session-messaging):僅限此機器上的您的工作階段 <sup><a href="#fn5">5</a></sup>287 * [Cross-session messaging](/docs/zh-TW/cross-session-messaging):僅限此機器上的您的工作階段 <sup><a href="#fn5">5</a></sup>

288 * [Zero Data Retention](/docs/zh-TW/zero-data-retention):受您的 Azure 協議約束288 * [Zero Data Retention](/docs/zh-TW/zero-data-retention):受您的 Azure 協議約束

289 289 

fullscreen.md +2 −0

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* **點擊已摺疊的工具結果**,以展開它並查看完整輸出。再次點擊以摺疊。工具呼叫及其結果會一起展開。只有有更多內容要顯示的訊息才可點擊。108* **點擊已摺疊的工具結果**,以展開它並查看完整輸出。再次點擊以摺疊。工具呼叫及其結果會一起展開。只有有更多內容要顯示的訊息才可點擊。

108 * 點擊也會展開 `!` shell 命令的輸出,無論是較舊的截斷結果或命令執行時的即時進度列。需要 Claude Code v2.1.257 或更新版本。109 * 點擊也會展開 `!` 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` 以讀取該訊息。

109* **在 macOS 上按住 `Cmd`,或在 Linux 和 Windows 上按住 `Ctrl`,然後點擊 URL 或檔案路徑**,以開啟它。純 `http://` 和 `https://` URL 會在您的瀏覽器中開啟,而工具輸出中的檔案路徑(例如在 Edit 或 Write 後列印的路徑)會在您的預設應用程式中開啟。不使用修飾鍵的純點擊不會開啟連結,符合原生終端機行為。111* **在 macOS 上按住 `Cmd`,或在 Linux 和 Windows 上按住 `Ctrl`,然後點擊 URL 或檔案路徑**,以開啟它。純 `http://` 和 `https://` URL 會在您的瀏覽器中開啟,而工具輸出中的檔案路徑(例如在 Edit 或 Write 後列印的路徑)會在您的預設應用程式中開啟。不使用修飾鍵的純點擊不會開啟連結,符合原生終端機行為。

110 * Claude Code 會將網路 (UNC) 路徑(例如 `\\server\share\file.ts`)呈現為純文字,沒有連結,因為開啟網路路徑可能會將您的 Windows 認證傳送到它命名的主機。112 * Claude Code 會將網路 (UNC) 路徑(例如 `\\server\share\file.ts`)呈現為純文字,沒有連結,因為開啟網路路徑可能會將您的 Windows 認證傳送到它命名的主機。

111 * 某些 macOS 終端機會將 `Cmd`+點擊轉發給執行中的應用程式,而不是自己開啟連結,而終端機滑鼠協定無法編碼 `Cmd` 鍵,因此 Claude Code 會收到純點擊。在 Ghostty 以及 macOS 上的 Warp 中,Claude Code 會偵測到這一點,並讓純點擊連結開啟它,而按住 `Cmd` 仍然有效。113 * 某些 macOS 終端機會將 `Cmd`+點擊轉發給執行中的應用程式,而不是自己開啟連結,而終端機滑鼠協定無法編碼 `Cmd` 鍵,因此 Claude Code 會收到純點擊。在 Ghostty 以及 macOS 上的 Warp 中,Claude Code 會偵測到這一點,並讓純點擊連結開啟它,而按住 `Cmd` 仍然有效。

Details

252 會話啟動失敗,出現 `Unable to get organization UUID`252 會話啟動失敗,出現 `Unable to get organization UUID`

253</h3>253</h3>

254 254 

255雲端會話需要 Team 或 Enterprise 組織。使用 `/login` 以您的組織帳戶登入。如果您改用 API 金鑰進行身份驗證,雲端會話會更早失敗,並顯示要求您執行 `/login` 的訊息。255使用 `/login` 以您的組織帳戶登入。如果您改用 API 金鑰進行身份驗證,雲端會話會更早失敗,並顯示要求您執行 `/login` 的訊息。

256 256 

257<h2 id="related-resources">257<h2 id="related-resources">

258 相關資源258 相關資源

glossary.md +27 −0

Details

428 428 

429了解更多:[Platforms and integrations](/docs/zh-TW/platforms)429了解更多:[Platforms and integrations](/docs/zh-TW/platforms)

430 430 

431<h3 id="system-prompt">

432 System prompt

433</h3>

434 

435Claude Code 在每個請求時在您的對話前發送的指令,涵蓋 Claude 如何使用工具、安全行為和格式化其回應。您可以使用 `--append-system-prompt` 添加到系統提示或使用 `--system-prompt` 替換它。系統提示是 [prompt cache](/docs/zh-TW/prompt-caching#how-the-cache-is-organized) 的第一層。

436 

437您的 [CLAUDE.md](#claude-md) 檔案和您的 [output style](#output-style) 的指令不是系統提示的一部分。Claude Code 在對話中將它們作為 [system reminders](#system-reminder) 傳遞。

438 

439了解更多:[System prompt flags](/docs/zh-TW/cli-reference#system-prompt-flags)

440 

441<h3 id="system-reminder">

442 System reminder

443</h3>

444 

445Claude Code 作為 [harness](#agentic-harness) 添加到對話中的訊息,以給予 Claude 上下文。您不會自己發送系統提醒。Claude Code 在會話執行時插入它們,例如當會話啟動時、當 hook 返回文字時或當檔案在磁碟上變更時。Claude 與您的訊息一起讀取它們。以下所有內容都作為系統提醒到達 Claude:

446 

447* 您的 [CLAUDE.md](#claude-md) 檔案

448* 您的 [output style](#output-style) 的指令

449* [hook](#hook) 作為 `additionalContext` 返回的文字

450* 可用 [skills](#skill) 的列表

451* 一個注意,Claude 之前讀取的檔案已在磁碟上變更

452* 提交和拉取請求的歸屬行

453 

454在記錄的 API 請求中,系統提醒出現在使用者訊息內的 `<system-reminder>` 標籤中,或在某些模型上作為具有 `system` 角色的單獨訊息。

455 

456了解更多:[Context Claude Code adds outside the system prompt](/docs/zh-TW/agent-sdk/modifying-system-prompts#context-claude-code-adds-outside-the-system-prompt)

457 

431<h2 id="t">458<h2 id="t">

432 T459 T

433</h2>460</h2>

goal.md +1 −1

Details

155 155 

156如果回合因無法清除的錯誤而失敗,Claude Code 會清除目標並列印警告,說明原因。警告以 `Goal cleared after an unrecoverable error` 開始,以 `Run /goal again to continue` 結束。修復原因,然後使用 `/goal <condition>` [再次設定目標](#set-a-goal)。四種失敗會清除目標:156如果回合因無法清除的錯誤而失敗,Claude Code 會清除目標並列印警告,說明原因。警告以 `Goal cleared after an unrecoverable error` 開始,以 `Run /goal again to continue` 結束。修復原因,然後使用 `/goal <condition>` [再次設定目標](#set-a-goal)。四種失敗會清除目標:

157 157 

158* 驗證失敗,當 Claude Code 管理自己的認證時。當主機為你管理認證時,例如桌面應用程式、VS Code 擴充功能或[雲端工作階段](/docs/zh-TW/claude-code-on-the-web),Claude Code 會保持目標活躍,因為主機會自動恢復存取權。158* 驗證失敗,當 Claude Code 管理自己的認證時。當主機為你管理認證時,例如桌面應用程式或[雲端工作階段](/docs/zh-TW/claude-code-on-the-web),Claude Code 會保持目標活躍,因為主機會自動恢復存取權。

159* 信用額度已耗盡159* 信用額度已耗盡

160* [自動壓縮](/docs/zh-TW/model-config#set-the-auto-compact-window)無法清除的內容溢位160* [自動壓縮](/docs/zh-TW/model-config#set-the-auto-compact-window)無法清除的內容溢位

161* 不可用的模型161* 不可用的模型

headless.md +32 −24

Details

20 基本用法20 基本用法

21</h2>21</h2>

22 22 

23將 `-p`(或 `--print`)旗標新增至任何 `claude` 命令以非互動方式執行它。並非所有 [CLI 選項](/docs/zh-TW/cli-reference) 都適用於 `-p`。Claude Code 拒絕 `--bg`,並在有工作描述時拒絕 `--cloud`,並出現命名衝突的錯誤;`--cloud` 搭配工作階段 ID 和 `-p` 改為 [將訊息加入該雲端工作階段](/docs/zh-TW/claude-code-on-the-web#send-follow-ups-from-the-cli) 並結束。您經常搭配 `-p` 使用的選項包括:23在任何 `claude` 命令中加上 `-p`(或 `--print`)旗標以非互動方式執行。並非每個 [CLI 選項](/docs/zh-TW/cli-reference) 都能與 `-p` 結合。Claude Code 拒絕 `--bg`,並在有任務描述時拒絕 `--cloud`,並會出現命名衝突的錯誤;`--cloud` 與工作階段 ID 和 `-p` 一起使用時,會 [將訊息加入該雲端工作階段](/docs/zh-TW/claude-code-on-the-web#send-follow-ups-from-the-cli) 並退出。您經常會與 `-p` 結合的選項包括:

24 24 

25* `--continue` 用於 [繼續對話](#continue-conversations)25* `--continue` 用於 [繼續對話](#continue-conversations)

26* `--allowedTools` 用於 [自動核准工具](#auto-approve-tools)26* `--allowedTools` 用於 [自動核准工具](#auto-approve-tools)

27* `--output-format` 用於 [結構化輸出](#get-structured-output)27* `--output-format` 用於 [取得結構化輸出](#get-structured-output)

28 28 

29此範例詢問 Claude 關於您的程式碼庫的問題並列印回應:29此範例詢問 Claude 關於您的程式碼庫的問題並列印回應:

30 30 


32claude -p "What does the auth module do?"32claude -p "What does the auth module do?"

33```33```

34 34 

35Claude Code 在成功時以代碼 0 結束,在執行失敗時以非零代碼結束,因此您的指令碼可以根據結束狀態進行分支。如果您傳遞無效旗標,Claude Code 會在執行開始前向 stderr 報告錯誤。當執行內發生失敗時,例如缺少驗證,Claude Code 會將失敗列印為 stdout 上的結果。35Claude Code 在成功時以代碼 0 退出,在執行失敗時以非零代碼退出,因此您的指令碼可以根據退出狀態進行分支。如果您傳遞無效旗標,Claude Code 會在執行開始前向 stderr 報告錯誤。當執行內部發生失敗(例如缺少驗證)時,Claude Code 會將失敗列印為 stdout 上的結果。

36 36 

37<h3 id="start-faster-with-bare-mode">37<h3 id="start-faster-with-bare-mode">

38 使用裸機模式加快速度38 使用裸機模式更快啟動

39</h3>39</h3>

40 40 

41新增 `--bare` 以跳過 hooks、skills、自訂命令、[subagents](/docs/zh-TW/sub-agents)、installed plugins、MCP 伺服器、auto memory 和 CLAUDE.md 的自動探索來減少啟動時間。沒有它,`claude -p` 會載入互動式工作階段會載入的相同 [context](/docs/zh-TW/how-claude-code-works#the-context-window),包括在工作目錄或 `~/.claude` 中設定的任何內容。41加上 `--bare` 以跳過 hooks、skills、自訂命令、[subagents](/docs/zh-TW/sub-agents)、已安裝的 plugins、MCP 伺服器、自動記憶和 CLAUDE.md 的自動探索來減少啟動時間。沒有它,`claude -p` 會載入互動工作階段會載入的相同 [context](/docs/zh-TW/how-claude-code-works#the-context-window),包括在工作目錄或 `~/.claude` 中設定的任何內容。

42 42 

43裸機模式對於 CI 和指令碼很有用,您需要在每台機器上獲得相同的結果。隊友 `~/.claude` 中的 hook 或專案的 `.mcp.json` 中的 MCP 伺服器不會執行,因為裸機模式永遠不會讀取它們。您使用 `--add-dir` 命名的目錄是部分例外:裸機模式會從其 `.claude/skills/` 資料夾載入 skills,但仍會跳過其 `.claude/commands/` 和 `.claude/agents/` 資料夾。[來自其他目錄的 Skills](/docs/zh-TW/skills#skills-from-additional-directories) 涵蓋載入和不載入的內容。43裸機模式對於 CI 和指令碼很有用,您需要在每台機器上獲得相同的結果。隊友 `~/.claude` 中的 hook 或專案 `.mcp.json` 中的 MCP 伺服器不會執行,因為裸機模式永遠不會讀取它們。您使用 `--add-dir` 命名的目錄是部分例外:裸機模式從其 `.claude/skills/` 資料夾載入 skills,但仍然跳過其 `.claude/commands/` 和 `.claude/agents/` 資料夾。[來自其他目錄的 Skills](/docs/zh-TW/skills#skills-from-additional-directories) 涵蓋了哪些會載入和不會載入。

44 44 

45沒有 `--bare`,`-p` 工作階段會執行專案 `.claude/settings.json` 中的 hooks 並連接其 `.mcp.json` 中的伺服器,即使在您從未信任的資料夾中也是如此。`-p` 工作階段不會顯示工作區信任對話方塊和每個伺服器的核准提示。[在您信任資料夾之前執行的內容](/docs/zh-TW/permissions#what-runs-before-you-trust-a-folder) 涵蓋 `-p` 下每種存放庫內容以及如何將其排除在外。45沒有 `--bare`,`-p` 工作階段會執行專案 `.claude/settings.json` 中的 hooks 並連接其 `.mcp.json` 中的伺服器,即使在您從未信任的資料夾中也是如此。`-p` 工作階段不會顯示工作區信任對話框和每個伺服器的核准提示。[在您信任資料夾之前執行的內容](/docs/zh-TW/permissions#what-runs-before-you-trust-a-folder) 涵蓋了 `-p` 下每種類型的儲存庫內容以及如何將其排除。

46 46 

47此範例在裸機模式下執行一次性摘要工作,並預先核准 Read 工具,以便呼叫完成而無需許可提示。執行前設定 `ANTHROPIC_API_KEY`,因為裸機模式不使用您的訂閱登入:47此範例在裸機模式下執行一次性摘要任務,並預先核准 Read 工具,以便呼叫完成而無需權限提示。執行前設定 `ANTHROPIC_API_KEY`,因為裸機模式不使用您的訂閱登入:

48 48 

49```bash theme={null}49```bash theme={null}

50claude --bare -p "Summarize README.md" --allowedTools "Read"50claude --bare -p "Summarize README.md" --allowedTools "Read"

51```51```

52 52 

53在裸機模式下,Claude Code 永遠不會讀取 OAuth 認證或系統鑰匙圈。對於 Anthropic API,在環境中設定 `ANTHROPIC_API_KEY`,使用在 [Claude Console](https://platform.claude.com) 中建立的金鑰,或在 `--settings` JSON 中提供 `apiKeyHelper`。Amazon Bedrock、Google Cloud 的 Agent Platform 和 Microsoft Foundry 繼續照常讀取其自己的提供者認證。53在裸機模式下,Claude Code 永遠不會讀取 OAuth 認證或系統鑰匙圈。對於 Anthropic API,在環境中設定 `ANTHROPIC_API_KEY`,使用在 [Claude Console](https://platform.claude.com) 中建立的金鑰,或在 `--settings` JSON 中提供 `apiKeyHelper`。Amazon Bedrock、Google Cloud 的 Agent Platform 和 Microsoft Foundry 繼續照常讀取各自的提供者認證。

54 54 

55在裸機模式下,Claude 可以存取 Bash、檔案讀取和檔案編輯工具。使用旗標傳遞您需要的任何上下文:55在裸機模式下,Claude 可以存取 Bash、檔案讀取和檔案編輯工具。使用旗標傳遞您需要的任何 context:

56 56 

57| 要載入 | 使用 |57| 要載入 | 使用 |

58| - | - |58| - | - |

59| 系統提示新增 | `--append-system-prompt`, `--append-system-prompt-file` |59| 系統提示詞新增 | `--append-system-prompt`、`--append-system-prompt-file` |

60| 設定 | `--settings <file-or-json>` |60| 設定 | `--settings <file-or-json>` |

61| MCP 伺服器 | `--mcp-config <file-or-json>` |61| MCP 伺服器 | `--mcp-config <file-or-json>` |

62| 自訂 agents | `--agents <json>` |62| 自訂代理 | `--agents <json>` |

63| 外掛程式 | `--plugin-dir <path>`, `--plugin-url <url>` |63| 一個 plugin | `--plugin-dir <path>`、`--plugin-url <url>` |

64 64 

65<Note>65<Note>

66 `--bare` 是指令碼和 SDK 呼叫的建議模式,將在未來版本中成為 `-p` 的預設值。66 `--bare` 是用於指令碼和 SDK 呼叫的建議模式,並將在未來版本中成為 `-p` 的預設值。

67</Note>67</Note>

68 68 

69<h3 id="background-tasks-at-exit">69<h3 id="background-tasks-at-exit">

70 結束時的背景工作70 退出時的背景任務

71</h3>71</h3>

72 72 

73如果 Claude 在 `claude -p` 執行期間啟動 [背景 Bash 工作](/docs/zh-TW/tools-reference#bash-tool-behavior),例如開發伺服器或監視組建,該工作將在 Claude 傳回其最終結果且 stdin 已關閉後約五秒鐘終止。寬限期允許在結果之後立即完成的工作仍然傳遞其輸出。73如果 Claude 在 `claude -p` 執行期間啟動 [背景 Bash 任務](/docs/zh-TW/tools-reference#bash-tool-behavior)(例如開發伺服器或監視組建),該 shell 會在 Claude 傳回其最終結果且 stdin 已關閉後約五秒鐘終止。寬限期允許在結果之後立即完成的任務仍然傳遞其輸出。

74 74 

75如果 Claude 啟動背景 [subagent](/docs/zh-TW/sub-agents) 或工作流程,`claude -p` 改為保持開啟直到該工作完成,因為其結果是最終輸出的一部分。75如果 Claude 啟動背景 [subagent](/docs/zh-TW/sub-agents) 或工作流程,`claude -p` 會改為保持開啟,直到該工作完成,因為其結果是最終輸出的一部分。

76 76 

77根據預設,等待在連續閒置等待 10 分鐘後結束,因此卡住的 subagent 或工作流程無法無限期地保持程序開啟。此時 Claude Code 停止仍在執行的任何內容並捨棄其部分結果。若要變更限制,請設定 [`CLAUDE_CODE_PRINT_BG_WAIT_CEILING_MS`](/docs/zh-TW/env-vars),或將其設定為 `0` 以無限制地等待。77預設情況下,等待在 10 分鐘的連續空閒等待後結束,因此卡住的 subagent 或工作流程無法無限期地保持程序開啟。此時 Claude Code 會停止仍在執行的任何內容並捨棄其部分結果。要變更限制,請設定 [`CLAUDE_CODE_PRINT_BG_WAIT_CEILING_MS`](/docs/zh-TW/env-vars),或將其設定為 `0` 以無限期等待。

78 78 

79如果 Claude 在 `claude -p` 執行期間啟動 [Monitor](/docs/zh-TW/tools-reference#monitor-tool) 監視,Claude Code 會等待監視直到它逾時或十分鐘上限結束等待,以先發生者為準。在等待期間,Claude 會持續回應監視報告的內容。根據預設,監視在 Claude 啟動它後五分鐘逾時。79如果 Claude 在 `claude -p` 執行期間啟動 [Monitor](/docs/zh-TW/tools-reference#monitor-tool) 監視,Claude Code 會等待監視直到其逾時或十分鐘上限結束等待,以先發生者為準。在等待期間,Claude 會持續回應監視報告的內容。預設情況下,監視在 Claude 啟動後五分鐘逾時。

80 80 

81<h3 id="stop-a-run-with-sigterm">81<h3 id="stop-a-run-with-sigterm">

82 使用 SIGTERM 停止執行82 使用 SIGTERM 停止執行

83</h3>83</h3>

84 84 

85如果您使用 SIGTERM 停止 `claude -p` 執行,例如使用 `kill` 或從程序監督員,Claude Code 以代碼 143 結束。Claude Code 將進行中的轉換保留為未完成狀態,並為其記錄無結果。若要改為結束轉換,請傳送 SIGINT,或在停止程序前呼叫 Agent SDK 的 `interrupt()`。85如果您使用 SIGTERM 停止 `claude -p` 執行,例如使用 `kill` 或從程序監督程式,Claude Code 會以代碼 143 退出。Claude Code 會將進行中的轉換保留為未完成狀態,並且不會為其記錄任何結果。要改為結束轉換,請傳送 SIGINT,或在停止程序之前呼叫 Agent SDK 的 `interrupt()`。

86 86 

87在 SIGTERM 上,Claude Code 終止仍在執行的任何 Bash 命令的程序樹。Claude Code 然後執行 [`SessionEnd` hooks](/docs/zh-TW/hooks#sessionend) 並結束。結束時,Claude Code 不啟動新工具呼叫、不傳送新模型請求,也不執行除 `SessionEnd` 以外的任何 hook。如果執行在命令中間或在信號到達時等待許可提示的答案,Claude Code 會按如下方式處理該步驟:87在 SIGTERM 上,Claude Code 會終止仍在執行的任何 Bash 命令的程序樹。Claude Code 然後執行 [`SessionEnd` hooks](/docs/zh-TW/hooks#sessionend) 並退出。退出時,Claude Code 不啟動新的工具呼叫、不傳送新的模型請求,也不執行除 `SessionEnd` 以外的任何 hook。如果執行在命令中間或在信號到達時等待權限提示的答案,Claude Code 會按如下方式處理該步驟:

88 88 

89* **執行命令**:Claude Code 在工作階段中將命令記錄為已終止。89* **執行命令**:Claude Code 在工作階段中將命令記錄為已終止。

90* **等待許可提示的答案**:如果您向程序傳送 SIGTERM,Claude Code 會將提示保留為未回答。如果您的程式透過 Agent SDK 關閉工作階段,SDK 會在傳送任何信號前結束 Claude Code 的輸入,Claude Code 會在輸入結束時立即取消提示。90* **等待權限提示的答案**:如果您向程序傳送 SIGTERM,Claude Code 會將提示保留為未回答。如果您的程式透過 Agent SDK 關閉工作階段,SDK 會在傳送任何信號之前結束 Claude Code 的輸入,Claude Code 會在輸入結束後立即取消提示。

91 91 

92當您 [繼續工作階段](#continue-conversations) 時,Claude Code 繼續 SIGTERM 留下的未完成轉換。92當您 [繼續工作階段](#continue-conversations) 時,Claude Code 會將中斷的轉換保留為原樣,您的下一個提示會推動對話。要讓 Claude Code 在繼續時改為繼續中斷的轉換,請設定 [`CLAUDE_CODE_RESUME_INTERRUPTED_TURN=1`](/docs/zh-TW/env-vars)。

93 

94<h3 id="if-the-working-directory-is-deleted">

95 如果工作目錄被刪除

96</h3>

97 

98如果 `claude -p` 或 Agent SDK 工作階段的工作目錄在工作階段中間被刪除,工作階段會繼續執行。當轉換在目錄遺失時啟動時,Claude Code 會在 `stream-json` 輸出中發出 [警告訊息](/docs/zh-TW/agent-sdk/typescript#sdkinformationalmessage),且 shell 命令會失敗,直到目錄再次存在。

93 99 

94<h2 id="examples">100<h2 id="examples">

95 範例101 範例


255| 欄位 | 類型 | 說明 |261| 欄位 | 類型 | 說明 |

256| - | - | - |262| - | - | - |

257| `plugins` | 陣列 | 成功載入的 plugins,每個都有 `name` 和 `path` |263| `plugins` | 陣列 | 成功載入的 plugins,每個都有 `name` 和 `path` |

258| `plugin_errors` | 陣列 | plugin 載入時錯誤,每個都有 `plugin`、`type` 和 `message`。包括不滿足的依賴版本和 `--plugin-dir` 載入失敗,例如遺失的路徑或無效的存檔。受影響的 plugins 被降級並從 `plugins` 中移除。當沒有錯誤時,該鍵被省略 |264| `plugin_errors` | 陣列 | plugin 載入時錯誤,每個都有 `plugin`、`type` 和 `message`。包括不滿足的依賴版本和 `--plugin-dir` 載入失敗,例如遺失的路徑或無效的存檔。受影響的 plugins 從 `plugins` 中移除。當沒有錯誤時,該鍵被省略 |

265 

266當 `--plugin-dir` 目錄或存檔本身載入失敗時,其 `plugin_errors` 項目包括解析的絕對路徑作為 `path`。使用它來判斷多個 `--plugin-dir` 值中哪一個失敗。`path` 欄位需要 Claude Code v2.1.283 或更新版本。

259 267 

260以相同方式使用 MCP 伺服器欄位。當您使用 `-p` 傳遞 [`--mcp-config`](/docs/zh-TW/cli-reference#cli-flags) 時,Claude Code 在執行第一個回合前等待仍在等待的伺服器,最多等待 [`MCP_TIMEOUT`](/docs/zh-TW/env-vars) 啟動逾時,預設為 30 秒。具有[快取工具清單](/docs/zh-TW/agent-sdk/mcp#connection-timing)的遠端伺服器跳過等待,在 `system/init` 中顯示 `pending`,並在其第一次工具呼叫時連接。等待需要 Claude Code v2.1.221 或更新版本。268以相同方式使用 MCP 伺服器欄位。當您使用 `-p` 傳遞 [`--mcp-config`](/docs/zh-TW/cli-reference#cli-flags) 時,Claude Code 在執行第一個回合前等待仍在等待的伺服器,最多等待 [`MCP_TIMEOUT`](/docs/zh-TW/env-vars) 啟動逾時,預設為 30 秒。具有[快取工具清單](/docs/zh-TW/agent-sdk/mcp#connection-timing)的遠端伺服器跳過等待,在 `system/init` 中顯示 `pending`,並在其第一次工具呼叫時連接。等待需要 Claude Code v2.1.221 或更新版本。

261 269 

hooks.md +244 −256

Details

474| `command` | 是 | 要執行的 shell 命令。使用 `args` 時,要直接生成的可執行檔。請參閱 [Exec 形式和 shell 形式](#exec-form-and-shell-form) |474| `command` | 是 | 要執行的 shell 命令。使用 `args` 時,要直接生成的可執行檔。請參閱 [Exec 形式和 shell 形式](#exec-form-and-shell-form) |

475| `args` | 否 | 參數清單。存在時,`command` 被解析為可執行檔並直接使用 `args` 作為參數向量生成,不涉及 shell。請參閱 [Exec 形式和 shell 形式](#exec-form-and-shell-form) |475| `args` | 否 | 參數清單。存在時,`command` 被解析為可執行檔並直接使用 `args` 作為參數向量生成,不涉及 shell。請參閱 [Exec 形式和 shell 形式](#exec-form-and-shell-form) |

476| `async` | 否 | 如果為 `true`,在背景執行而不阻止。請參閱 [在背景執行 hooks](#run-hooks-in-the-background) |476| `async` | 否 | 如果為 `true`,在背景執行而不阻止。請參閱 [在背景執行 hooks](#run-hooks-in-the-background) |

477| `asyncRewake` | 否 | 如果為 `true`,在背景執行並在退出代碼 2 時喚醒 Claude。Hook 的 stderr,或如果 stderr 為空則為 stdout,作為系統提醒顯示給 Claude,以便它可以對長時間執行的背景失敗做出反應 |477| `asyncRewake` | 否 | 如果為 `true`,在背景執行並在退出代碼 2 時喚醒 Claude。Hook 的 stderr,或如果 stderr 為空則為 stdout,作為 [系統提醒](/docs/zh-TW/glossary#system-reminder) 顯示給 Claude,以便它可以對長時間執行的背景失敗做出反應 |

478| `shell` | 否 | 用於此 hook 的 shell。接受 `"bash"` 或 `"powershell"`。預設為 `"bash"`,或在未安裝 Git Bash 時在 Windows 上預設為 `"powershell"`。設定 `"powershell"` 在 Windows 上通過 PowerShell 執行命令。不需要 `CLAUDE_CODE_USE_POWERSHELL_TOOL`,因為 hooks 直接生成 PowerShell。設定 `args` 時被忽略 |478| `shell` | 否 | 用於此 hook 的 shell。接受 `"bash"` 或 `"powershell"`。預設為 `"bash"`,或在未安裝 Git Bash 時在 Windows 上預設為 `"powershell"`。設定 `"powershell"` 在 Windows 上通過 PowerShell 執行命令。不需要 `CLAUDE_CODE_USE_POWERSHELL_TOOL`,因為 hooks 直接生成 PowerShell。設定 `args` 時被忽略 |

479 479 

480<a id="exec-form-and-shell-form" />480<a id="exec-form-and-shell-form" />


571 571 

572| 欄位 | 必需 | 描述 |572| 欄位 | 必需 | 描述 |

573| :- | :- | :- |573| :- | :- | :- |

574| `server` | 是 | 已配置的 MCP 伺服器的名稱。對於 [plugin-bundled server](/docs/zh-TW/mcp#plugin-provided-mcp-servers),這是範圍名稱 `plugin:<plugin-name>:<server-name>`,例如 `plugin:my-plugin:db`,而不是裸伺服器金鑰。伺服器必須已連接;hook 永遠不會觸發 OAuth 或連接流程 |574| `server` | 是 | 已配置的 MCP 伺服器的名稱。對於 [plugin-bundled server](/docs/zh-TW/mcp#plugin-provided-mcp-servers),這是範圍名稱 `plugin:<plugin-name>:<server-name>`,例如 `plugin:my-plugin:db`,而不是裸伺服器金鑰 |

575| `tool` | 是 | 該伺服器上要呼叫的工具名稱 |575| `tool` | 是 | 該伺服器上要呼叫的工具名稱 |

576| `input` | 否 | 傳遞給工具的參數。字串值支援來自 hook 的 [JSON 輸入](#hook-input-and-output) 的 `${path}` 替換,例如 `"${tool_input.file_path}"` |576| `input` | 否 | 傳遞給工具的參數。字串值支援來自 hook 的 [JSON 輸入](#hook-input-and-output) 的 `${path}` 替換,例如 `"${tool_input.file_path}"` |

577 577 

578Claude Code 讀取工具的文字內容的方式與讀取命令 hook stdout 相同,遵循 [退出代碼 0 下的解析規則](#exit-code-0)。如果命名的伺服器未連接,或工具返回 `isError: true`,hook 會產生非阻止性錯誤,執行繼續。578此範例在每個 `Write` 或 `Edit` 後呼叫 `my_server` MCP 伺服器上的 `security_scan` 工具,傳遞編輯檔案的路徑:

579 

580此範例在每個 `Write` 或 `Edit` 後在 `my_server` MCP 伺服器上呼叫 `security_scan` 工具,傳遞編輯檔案的路徑:

581 579 

582```json theme={null}580```json theme={null}

583{581{


599}597}

600```598```

601 599 

602MCP 工具 hook 只能在 Claude Code 將工作階段的 MCP 伺服器提供給 hooks 後執行。`SessionStart` 和 `Setup` 可能在該點之前觸發:600<h5 id="how-the-tool’s-result-is-read">

601 工具結果的讀取方式

602</h5>

603 603 

604* **在啟動時**:`SessionStart` 在伺服器可用之前觸發,包括當您使用 `--continue` 或 `--resume` 啟動時。Claude Code 跳過事件的 `mcp_tool` hooks 而不呼叫其工具,[debug log](#debug-hooks) 記錄 `mcp_tool hooks are not available for the 'SessionStart' hook event (no MCP client context)`。604Claude Code 讀取工具的文字內容的方式與讀取命令 hook stdout 相同,遵循 [退出代碼 0 下的解析規則](#exit-code-0)。如果工具返回 `isError: true`,hook 會產生非阻止性錯誤,執行繼續。

605* **稍後在執行中的工作階段**:在 `/clear` 或壓縮後,`SessionStart` 再次觸發,伺服器已可用,其 `mcp_tool` hooks 執行。

606* **在 `Setup` 上**:`Setup` 總是在伺服器可用之前觸發,因此 Claude Code 每次都跳過其 `mcp_tool` hooks 並記錄相同的訊息,命名 `Setup`。

607 605 

608例如,此配置在 `SessionStart` hook 上呼叫 `my_server` MCP 伺服器上的 `load_context` 工具,沒有匹配器,因此它適用於每個 `SessionStart` 來源:606<h5 id="when-the-server-is-still-connecting">

607 當伺服器仍在連接時

608</h5>

609 609 

610```json theme={null}610在 hook 可以阻止或改變結果的事件上,例如 `PreToolUse` 或 `Stop`,Claude Code 在呼叫工具之前等待連接伺服器,最多 [`MCP_TIMEOUT`](/docs/zh-TW/env-vars),並在 hook 自己的 [`timeout`](#common-fields) 內。在觀察事件上,例如 `Notification` 或 `SessionEnd`,它不等待。

611{611 

612 "hooks": {612顯示 [`cached` 狀態](/docs/zh-TW/mcp#server-status-detail) 的伺服器在 hook 呼叫其工具時連接。如果伺服器在該點未連接,hook 會產生非阻止性錯誤,執行繼續。Hook 永遠不會啟動 OAuth 流程,因此請先 [從 `/mcp` 驗證伺服器](/docs/zh-TW/mcp#authenticate-with-remote-mcp-servers)。

613 "SessionStart": [

614 {

615 "hooks": [

616 {

617 "type": "mcp_tool",

618 "server": "my_server",

619 "tool": "load_context"

620 }

621 ]

622 }

623 ]

624 }

625}

626```

627 613 

628當您執行 `claude` 時,Claude Code 跳過此 hook,永遠不呼叫 `load_context`,並將 `no MCP client context` 訊息寫入 debug log。在該相同工作階段中執行 `/clear`,hook 執行並呼叫 `load_context`。`type: "command"` hook 在 `SessionStart` 上執行,因此對於工作階段從其第一個轉向需要的任何內容,請使用一個。614<h5 id="events-that-fire-before-mcp-servers-are-available">

615 MCP 伺服器不可用之前觸發的事件

616</h5>

617 

618`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` 上。

629 619 

630<h4 id="prompt-and-agent-hook-fields">620<h4 id="prompt-and-agent-hook-fields">

631 提示和代理 hook 欄位621 提示和代理 hook 欄位


636| 欄位 | 必需 | 描述 |626| 欄位 | 必需 | 描述 |

637| :- | :- | :- |627| :- | :- | :- |

638| `prompt` | 是 | 要發送到模型的提示文字。使用 `$ARGUMENTS` 作為 hook 輸入 JSON 的佔位符。使用反斜線逸出以包含字面文字:`\$1.00` 呈現為 `$1.00` |628| `prompt` | 是 | 要發送到模型的提示文字。使用 `$ARGUMENTS` 作為 hook 輸入 JSON 的佔位符。使用反斜線逸出以包含字面文字:`\$1.00` 呈現為 `$1.00` |

639| `model` | 否 | 用於評估的模型。預設為快速模型 |629| `model` | 否 | 用於評估的模型。預設為 Claude Code 用於 [背景功能](/docs/zh-TW/costs#background-token-usage) 的模型 |

640 630 

641<h3 id="reference-scripts-by-path">631<h3 id="reference-scripts-by-path">

642 按路徑參考指令碼632 按路徑參考指令碼


791| `prompt_id` | UUID 識別目前正在處理的使用者提示。與 [OpenTelemetry 事件上的 `prompt.id` 屬性](/docs/zh-TW/monitoring-usage#event-correlation-attributes) 相符,因此您可以將 hook 輸出與單一提示的遙測相關聯。在第一個使用者輸入之前不存在。需要 Claude Code v2.1.196 或更新版本 |781| `prompt_id` | UUID 識別目前正在處理的使用者提示。與 [OpenTelemetry 事件上的 `prompt.id` 屬性](/docs/zh-TW/monitoring-usage#event-correlation-attributes) 相符,因此您可以將 hook 輸出與單一提示的遙測相關聯。在第一個使用者輸入之前不存在。需要 Claude Code v2.1.196 或更新版本 |

792| `transcript_path` | 對話 JSON 的路徑。成績單檔案以非同步方式寫入,可能滯後於記憶體中的對話,因此當 hook 觸發時,它可能尚未包含目前回合的最新訊息。需要目前回合最後助手文字的 Hooks 應在 [Stop](#stop) 和 [SubagentStop](#subagentstop) 上使用 `last_assistant_message`,而不是讀取成績單 |782| `transcript_path` | 對話 JSON 的路徑。成績單檔案以非同步方式寫入,可能滯後於記憶體中的對話,因此當 hook 觸發時,它可能尚未包含目前回合的最新訊息。需要目前回合最後助手文字的 Hooks 應在 [Stop](#stop) 和 [SubagentStop](#subagentstop) 上使用 `last_assistant_message`,而不是讀取成績單 |

793| `cwd` | 叫用 hook 時的目前工作目錄 |783| `cwd` | 叫用 hook 時的目前工作目錄 |

794| `scratchpad_dir` | 工作階段的暫存目錄的路徑,Claude 在其中保存臨時工作檔案。當工作階段沒有暫存或臨時目錄不可用時不存在。需要 Claude Code v2.1.257 或更新版本 |784| `scratchpad_dir` | 工作階段的 [暫存目錄](/docs/zh-TW/claude-directory#session-scratchpad-directory) 的路徑,Claude 在其中保存臨時工作檔案。當工作階段沒有暫存或臨時目錄不可用時不存在。需要 Claude Code v2.1.257 或更新版本 |

795| `permission_mode` | 目前 [權限模式](/docs/zh-TW/permissions#permission-modes):`"default"`、`"plan"`、`"acceptEdits"`、`"auto"`、`"dontAsk"` 或 `"bypassPermissions"`。標記為**手動**的模式以 `"default"` 到達,永遠不會以 `"manual"` 到達,因此匹配 `"default"` 的指令碼繼續工作。並非所有事件都接收此欄位。檢查每個 [hook 事件](#hook-events) 部分中的 JSON 範例 |785| `permission_mode` | 目前 [權限模式](/docs/zh-TW/permissions#permission-modes):`"default"`、`"plan"`、`"acceptEdits"`、`"auto"`、`"dontAsk"` 或 `"bypassPermissions"`。標記為**手動**的模式以 `"default"` 到達,永遠不會以 `"manual"` 到達,因此匹配 `"default"` 的指令碼繼續工作。並非所有事件都接收此欄位。檢查每個 [hook 事件](#hook-events) 部分中的 JSON 範例 |

796| `effort` | 物件,其 `level` 欄位保存執行 hook 時生效的 [努力等級](/docs/zh-TW/model-config#adjust-effort-level):`"low"`、`"medium"`、`"high"`、`"xhigh"` 或 `"max"`。如果您設定的等級是活躍模型不支援的,`level` 會報告 Claude Code 實際執行的等級;[調整努力等級](/docs/zh-TW/model-config#adjust-effort-level) 說明它如何選擇該等級。Ultracode 不是一個不同的等級,報告為 `"xhigh"`。該物件與 [狀態行](/docs/zh-TW/statusline#available-data) `effort` 欄位相符。存在於在工具使用上下文中觸發的事件,例如 `PreToolUse`、`PostToolUse`、`Stop` 和 `SubagentStop`,當目前模型支援努力參數時。該等級也可作為 `$CLAUDE_EFFORT` 環境變數提供給 hook 命令和 Bash 工具。 |786| `effort` | 物件,其 `level` 欄位保存執行 hook 時生效的 [努力等級](/docs/zh-TW/model-config#adjust-effort-level):`"low"`、`"medium"`、`"high"`、`"xhigh"` 或 `"max"`。如果您設定的等級是活躍模型不支援的,`level` 會報告 Claude Code 實際執行的等級;[調整努力等級](/docs/zh-TW/model-config#adjust-effort-level) 說明它如何選擇該等級。該物件與 [狀態行](/docs/zh-TW/statusline#available-data) `effort` 欄位相符。存在於在工具使用上下文中觸發的事件,例如 `PreToolUse`、`PostToolUse`、`Stop` 和 `SubagentStop`,當目前模型支援努力參數時。該等級也可作為 `$CLAUDE_EFFORT` 環境變數提供給 hook 命令和 Bash 工具。 |

797| `hook_event_name` | 觸發的事件名稱 |787| `hook_event_name` | 觸發的事件名稱 |

798 788 

799使用 `--agent` 執行或在 subagent 內執行時,包括兩個額外欄位:789使用 `--agent` 執行或在 subagent 內執行時,包括兩個額外欄位:


1057 為 Claude 新增上下文1047 為 Claude 新增上下文

1058</h4>1048</h4>

1059 1049 

1060`additionalContext` 欄位將字串從您的 hook 傳遞到 Claude 的上下文視窗。Claude Code 將字串包裝在系統提醒中,並將其插入到 hook 觸發的對話點。Claude 在下一個模型請求時讀取提醒,但它不會在介面中顯示為聊天訊息。1050`additionalContext` 欄位將字串從您的 hook 傳遞到 Claude 的上下文視窗。Claude Code 將字串包裝在 [系統提醒](/docs/zh-TW/glossary#system-reminder) 中,並將其插入到 hook 觸發的對話點。Claude 在下一個模型請求時讀取提醒,但它不會在介面中顯示為聊天訊息。

1061 1051 

1062在 `hookSpecificOutput` 中返回 `additionalContext` 以及事件名稱:1052在 `hookSpecificOutput` 中返回 `additionalContext` 以及事件名稱:

1063 1053 


1179 Hook 事件1169 Hook 事件

1180</h2>1170</h2>

1181 1171 

1182每個事件對應於 Claude Code 生命週期中的一個點,hooks 可以在該點執行。下面的章節按照生命週期的順序排列:從工作階段設定到代理迴圈再到工作階段結束。每個章節描述事件何時觸發、它支援的匹配器、它接收的 JSON 輸入,以及如何透過輸出控制行為。1172每個事件對應於 Claude Code 生命週期中的一個點,hooks 可以在該點執行。下面的章節按照生命週期順序排列:從工作階段設定到代理迴圈再到工作階段結束。每個章節描述事件何時觸發、它支援的匹配器、它接收的 JSON 輸入,以及如何透過輸出控制行為。

1183 1173 

1184<h3 id="sessionstart">1174<h3 id="sessionstart">

1185 SessionStart1175 SessionStart


1187 1177 

1188在 Claude Code 啟動新工作階段或恢復現有工作階段時執行。適用於載入開發環境背景資訊,例如現有問題或程式碼庫的最近變更,或設定環境變數。對於不需要指令碼的靜態背景資訊,請改用 [CLAUDE.md](/docs/zh-TW/memory)。1178在 Claude Code 啟動新工作階段或恢復現有工作階段時執行。適用於載入開發環境背景資訊,例如現有問題或程式碼庫的最近變更,或設定環境變數。對於不需要指令碼的靜態背景資訊,請改用 [CLAUDE.md](/docs/zh-TW/memory)。

1189 1179 

1190SessionStart 在每個工作階段上執行,因此請保持這些 hooks 快速。僅支援 `type: "command"` 和 `type: "mcp_tool"` hooks。請參閱 [MCP tool hook 欄位](#mcp-tool-hook-fields),了解 `mcp_tool` hooks 何時執行。1180SessionStart 在每個工作階段執行,因此請保持這些 hooks 快速。僅支援 `type: "command"` 和 `type: "mcp_tool"` hooks。請參閱 [MCP tool hook 欄位](#mcp-tool-hook-fields),了解 `mcp_tool` hooks 何時執行。

1191 1181 

1192匹配器值對應於工作階段的啟動方式:1182匹配器值對應於工作階段的啟動方式:

1193 1183 


1203 1193 

1204當您啟動互動式工作階段、在啟動時使用 `--continue` 或 `--resume` 恢復對話,或執行 `/clear` 時,SessionStart hooks 在背景執行。您可以立即輸入,恢復的對話會立即出現,無需等待 hooks。Claude 的第一個回應仍會等待 hooks 完成,因此它們的背景資訊會到達 Claude。1194當您啟動互動式工作階段、在啟動時使用 `--continue` 或 `--resume` 恢復對話,或執行 `/clear` 時,SessionStart hooks 在背景執行。您可以立即輸入,恢復的對話會立即出現,無需等待 hooks。Claude 的第一個回應仍會等待 hooks 完成,因此它們的背景資訊會到達 Claude。

1205 1195 

1206當您在工作階段內使用 `/resume` 切換對話時,切換會等待 hooks 完成。如果您在背景 hooks 仍在執行時執行 `/clear` 或切換到另一個對話,它們傳回的任何內容都不會套用到工作階段。1196當您在工作階段內使用 `/resume` 切換對話時,切換會等待 hooks 完成。如果您在背景 hooks 仍在執行時執行 `/clear` 或切換到另一個對話,它們返回的任何內容都不會套用到工作階段。

1207 1197 

1208在啟動時也適用相同的等待,包括恢復的工作階段:您在 SessionStart hooks 仍在執行時傳送的提示不會到達 Claude,直到它們完成。1198相同的等待也適用於啟動,包括恢復的工作階段:您在 SessionStart hooks 仍在執行時傳送的提示不會到達 Claude,直到它們完成。

1209 1199 

1210在任一等待期間,按 `Esc` 將提示取回輸入框而不傳送。Hooks 會繼續執行。1200在任一等待期間,按 `Esc` 將提示返回到輸入中而不傳送。Hooks 會繼續執行。

1211 1201 

1212<h4 id="sessionstart-input">1202<h4 id="sessionstart-input">

1213 SessionStart 輸入1203 SessionStart 輸入


1218| 欄位 | 描述 |1208| 欄位 | 描述 |

1219| :- | :- |1209| :- | :- |

1220| `source` | 工作階段如何啟動:新工作階段為 `"startup"`、恢復的工作階段為 `"resume"`、`/clear` 後為 `"clear"`、壓縮後為 `"compact"`,或從現有工作階段分支的新工作階段為 `"fork"` |1210| `source` | 工作階段如何啟動:新工作階段為 `"startup"`、恢復的工作階段為 `"resume"`、`/clear` 後為 `"clear"`、壓縮後為 `"compact"`,或從現有工作階段分支的新工作階段為 `"fork"` |

1221| `model` | 作用中的模型識別碼。例如在 `/clear` 後或透過對話復原恢復工作階段時,可能會省略,因此在讀取前請檢查欄位 |1211| `model` | 作用中的模型識別碼。例如在 `/clear` 後或透過對話恢復還原工作階段時,可能會省略,因此在讀取前請檢查欄位 |

1222| `agent_type` | 代理名稱,當您使用 `claude --agent <name>` 啟動 Claude Code 時出現 |1212| `agent_type` | 代理名稱,當您使用 `claude --agent <name>` 啟動 Claude Code 時出現 |

1223| `session_title` | 目前的工作階段標題(如果已設定),例如透過 `--name` 或 `/rename`。發出 `sessionTitle` 的 hook 可以先檢查 `session_title` 以避免覆寫使用者明確設定的標題 |1213| `session_title` | 目前的工作階段標題(如果已設定),例如透過 `--name` 或 `/rename`。發出 `sessionTitle` 的 hook 可以先檢查 `session_title` 以避免覆寫使用者明確設定的標題 |

1224 1214 


1227| 欄位 | 描述 |1217| 欄位 | 描述 |

1228| :- | :- |1218| :- | :- |

1229| `seconds_since_last_response` | 自恢復文字記錄中最後一個回應以來的掛鐘秒數 |1219| `seconds_since_last_response` | 自恢復文字記錄中最後一個回應以來的掛鐘秒數 |

1230| `context_tokens` | 恢復工作階段的第一個請求作為其提示重新傳送的權杖 |1220| `context_tokens` | 恢復工作階段的第一個請求作為其提示重新傳送的令牌 |

1231| `prompt_cache_likely_expired` | 當最後一個回應早於工作階段的 [prompt cache 生命週期](/docs/zh-TW/prompt-caching#cache-lifetime) 或更新的壓縮替換了快取的對話時為 `true` |1221| `prompt_cache_likely_expired` | 當最後一個回應早於工作階段的 [prompt cache 生命週期](/docs/zh-TW/prompt-caching#cache-lifetime) 或更新的壓縮替換了快取的對話時為 `true` |

1232| `estimated_cache_write_usd` | 在工作階段的模型上將 `context_tokens` 寫入 prompt cache 的估計成本(美元),不包括回應 |1222| `estimated_cache_write_usd` | 在工作階段的模型上以 `cache_ttl` 速率將 `context_tokens` 寫入 prompt cache 的估計成本(美元),不包括回應 |

1233 1223 

1234此範例顯示在最後一個回應後 90 分鐘恢復的工作階段的輸入:1224此範例顯示在最後一個回應後 90 分鐘恢復的工作階段的輸入:

1235 1225 


1252 SessionStart 決策控制1242 SessionStart 決策控制

1253</h4>1243</h4>

1254 1244 

1255Claude Code 將它 [視為純文字](#exit-code-0) 的 stdout 新增到 Claude 的背景資訊。除了 [所有 hooks 可用的 JSON 輸出欄位](#json-output) 外,您還可以傳回這些事件特定的欄位:1245Claude Code 將它 [視為純文字](#exit-code-0) 的 stdout 新增到 Claude 的背景資訊。除了所有 hooks 可用的 [JSON 輸出欄位](#json-output) 外,您還可以返回這些事件特定的欄位:

1256 1246 

1257| 欄位 | 描述 |1247| 欄位 | 描述 |

1258| :- | :- |1248| :- | :- |


1274 1264 

1275由於此事件的純 stdout 已到達 Claude,只載入背景資訊的 hook 可以直接列印到 stdout,而無需建立 JSON。當您需要將背景資訊與其他欄位(例如 `sessionTitle`)結合時,請使用 JSON 形式。1265由於此事件的純 stdout 已到達 Claude,只載入背景資訊的 hook 可以直接列印到 stdout,而無需建立 JSON。當您需要將背景資訊與其他欄位(例如 `sessionTitle`)結合時,請使用 JSON 形式。

1276 1266 

1277當 SessionStart hook 安裝或更新 skills 時,使用 `reloadSkills`。Skill 探索通常在 SessionStart hooks 完成之前執行,因此 hook 寫入 `~/.claude/skills/` 或 `.claude/skills/` 的檔案否則只會在下一個工作階段中出現。此範例同步共享 skills 儲存庫並要求重新掃描:1267當 SessionStart hook 安裝或更新 skills 時,使用 `reloadSkills`。Skill 發現通常在 SessionStart hooks 完成之前執行,因此 hook 寫入 `~/.claude/skills/` 或 `.claude/skills/` 的檔案否則只會在下一個工作階段中出現。此範例同步共享 skills 儲存庫並請求重新掃描:

1278 1268 

1279```bash theme={null}1269```bash theme={null}

1280#!/bin/bash1270#!/bin/bash


1307exit 01297exit 0

1308```1298```

1309 1299 

1310若要擷取設定命令的所有環境變更,請比較之前和之後的匯出變數:1300若要捕獲設定命令的所有環境變更,請比較之前和之後匯出的變數:

1311 1301 

1312```bash theme={null}1302```bash theme={null}

1313#!/bin/bash1303#!/bin/bash


1349 1339 

1350成功時,`--init-only` 不會列印任何內容到終端。若要確認 hooks 已執行,請使用 `claude --debug-file <path> --init-only` 啟動,將 `<path>` 替換為日誌檔案位置,並檢查日誌中的 Setup 和 SessionStart hook 項目。1340成功時,`--init-only` 不會列印任何內容到終端。若要確認 hooks 已執行,請使用 `claude --debug-file <path> --init-only` 啟動,將 `<path>` 替換為日誌檔案位置,並檢查日誌中的 Setup 和 SessionStart hook 項目。

1351 1341 

1352由於 Setup 不會在每次啟動時觸發,需要安裝相依性的外掛無法僅依賴 Setup。實用的模式是在首次使用時檢查相依性,如果缺少則安裝,例如測試 `${CLAUDE_PLUGIN_DATA}/node_modules` 的 hook 或 skill,如果不存在則執行 `npm install`。請參閱 [持久資料目錄](/docs/zh-TW/plugins/components#path-variables-and-persistent-data),了解在何處儲存已安裝的相依性。如果您透過市場發佈外掛,您可能不需要此模式:Claude Code [在快取外掛時自動安裝符合條件的 Node.js 套件相依性](/docs/zh-TW/plugins/loading#node-js-package-dependencies)。1342由於 Setup 不會在每次啟動時觸發,需要安裝相依性的外掛無法單獨依賴 Setup。實用的模式是在首次使用時檢查相依性,如果缺少則安裝,例如測試 `${CLAUDE_PLUGIN_DATA}/node_modules` 的 hook 或 skill,如果不存在則執行 `npm install`。請參閱 [持久資料目錄](/docs/zh-TW/plugins/components#path-variables-and-persistent-data),了解在何處儲存已安裝的相依性。如果您透過市場發佈外掛,您可能不需要此模式:Claude Code [在快取外掛時自動安裝符合條件的 Node.js 套件相依性](/docs/zh-TW/plugins/loading#node-js-package-dependencies)。

1353 1343 

1354<h4 id="setup-input">1344<h4 id="setup-input">

1355 Setup 輸入1345 Setup 輸入


1373 1363 

1374Setup hooks 無法阻止;執行在任何退出代碼上繼續。在每個退出代碼上,Claude Code 捨棄 Setup hook 的 [JSON 輸出欄位](#json-output),例如 `systemMessage`、`continue` 和 `hookSpecificOutput.additionalContext`。使用 `-p` 時,Setup hook 的 stdout、stderr 和退出代碼僅在您使用 `--output-format stream-json --verbose` 啟動時作為 [`hook_response` 事件](/docs/zh-TW/headless#read-session-metadata) 出現在執行的輸出中。1364Setup hooks 無法阻止;執行在任何退出代碼上繼續。在每個退出代碼上,Claude Code 捨棄 Setup hook 的 [JSON 輸出欄位](#json-output),例如 `systemMessage`、`continue` 和 `hookSpecificOutput.additionalContext`。使用 `-p` 時,Setup hook 的 stdout、stderr 和退出代碼僅在您使用 `--output-format stream-json --verbose` 啟動時作為 [`hook_response` 事件](/docs/zh-TW/headless#read-session-metadata) 出現在執行的輸出中。

1375 1365 

1376Setup hooks 可以存取 `CLAUDE_ENV_FILE`。寫入該檔案的變數會保留到工作階段的後續 Bash 命令中,就像在 [SessionStart hooks](#persist-environment-variables) 中一樣。只有 `type: "command"` hooks 在 `Setup` 上執行。`type: "mcp_tool"` hook 在 `Setup` 上始終被跳過,如 [MCP tool hook 欄位](#mcp-tool-hook-fields) 下所述。1366Setup hooks 可以存取 `CLAUDE_ENV_FILE`。寫入該檔案的變數會保留到工作階段的後續 Bash 命令中,就像在 [SessionStart hooks](#persist-environment-variables) 中一樣。只有 `type: "command"` hooks 在 `Setup` 上執行。`Setup` 上的 `type: "mcp_tool"` hook 始終被跳過,如 [MCP tool hook 欄位](#mcp-tool-hook-fields) 下所述。

1377 1367 

1378<h3 id="instructionsloaded">1368<h3 id="instructionsloaded">

1379 InstructionsLoaded1369 InstructionsLoaded

1380</h3>1370</h3>

1381 1371 

1382在載入 `CLAUDE.md` 或 `.claude/rules/*.md` 檔案到背景資訊時觸發。此事件在工作階段啟動時對於急切載入的檔案觸發,稍後在檔案被延遲載入時再次觸發,例如當 Claude 存取包含巢狀 `CLAUDE.md` 的子目錄或當具有 `paths:` frontmatter 的條件規則匹配時。Hook 不支援阻止或決策控制。它以非同步方式執行,用於可觀測性目的。1372在載入 `CLAUDE.md` 或 `.claude/rules/*.md` 檔案到背景資訊時觸發。此事件在工作階段啟動時對於急切載入的檔案觸發,稍後當檔案被延遲載入時再次觸發,例如當 Claude 存取包含巢狀 `CLAUDE.md` 的子目錄或當具有 `paths:` frontmatter 的條件規則匹配時。Hook 不支援阻止或決策控制。它以非同步方式執行,用於可觀測性目的。

1383 1373 

1384當 Claude [直接透過 **Project instructions** 設定讀取 `AGENTS.md`](/docs/zh-TW/memory#agents-md) 時,此事件不會觸發。當 `CLAUDE.md` 匯入您的 `AGENTS.md` 時會觸發,`load_reason` 設定為 `include`(如同任何其他匯入的檔案),以及當 `CLAUDE.md` 是它的符號連結時,作為正常的 `CLAUDE.md` 載入。1374當 Claude [直接透過 **Project instructions** 設定讀取 `AGENTS.md`](/docs/zh-TW/memory#agents-md) 時,此事件不會觸發。當 `CLAUDE.md` 匯入您的 `AGENTS.md` 時,它會觸發,`load_reason` 設定為 `include`(如同任何其他匯入的檔案),以及當 `CLAUDE.md` 是它的符號連結時,作為正常的 `CLAUDE.md` 載入。

1385 1375 

1386匹配器針對 `load_reason` 執行。例如,使用 `"matcher": "session_start"` 僅對在工作階段啟動時載入的檔案觸發,或 `"matcher": "path_glob_match|nested_traversal"` 僅對延遲載入觸發。1376匹配器針對 `load_reason` 執行。例如,使用 `"matcher": "session_start"` 僅對在工作階段啟動時載入的檔案觸發,或 `"matcher": "path_glob_match|nested_traversal"` 僅對延遲載入觸發。

1387 1377 


1424 1414 

1425在使用者提交提示時執行,在 Claude 處理它之前。這允許您根據提示/對話新增額外背景資訊、驗證提示或阻止某些類型的提示。1415在使用者提交提示時執行,在 Claude 處理它之前。這允許您根據提示/對話新增額外背景資訊、驗證提示或阻止某些類型的提示。

1426 1416 

1427`UserPromptSubmit` hooks 對 `command`、`http` 和 `mcp_tool` 類型的預設逾時為 30 秒,比大多數其他事件上這些類型的 600 秒預設值更短。由於此 hook 在每個提示之前執行並阻止模型處理直到完成,卡住的 hook 會停滯工作階段。如果您的 hook 需要更多時間,請在 hook 項目中設定 `timeout` 欄位。1417`UserPromptSubmit` hooks 對 `command`、`http` 和 `mcp_tool` 類型的預設逾時為 30 秒,比大多數其他事件的 600 秒預設值更短。由於此 hook 在每個提示之前執行並阻止模型處理直到完成,卡住的 hook 會停滯工作階段。如果您的 hook 需要更多時間,請在 hook 項目中設定 `timeout` 欄位。

1428 1418 

1429除了您使用 [`async: true`](#run-hooks-in-the-background) 執行的命令 hook 外,達到其逾時的 `UserPromptSubmit` 命令、HTTP 或 MCP tool hook 會被取消,其輸出(包括任何 `additionalContext`)會被捨棄。提示仍會到達 Claude,但沒有該背景資訊。文字記錄顯示一個通知,命名 hook、觸發的逾時以及輸出被捨棄。1419除了您使用 [`async: true`](#run-hooks-in-the-background) 執行的命令 hook 外,達到其逾時的 `UserPromptSubmit` 命令、HTTP 或 MCP tool hook 會被取消,其輸出(包括任何 `additionalContext`)會被捨棄。提示仍會到達 Claude,但沒有該背景資訊。文字記錄顯示一個通知,命名 hook、觸發的逾時以及輸出被捨棄。

1430 1420 


1434 UserPromptSubmit 輸入1424 UserPromptSubmit 輸入

1435</h4>1425</h4>

1436 1426 

1437除了 [常見輸入欄位](#common-input-fields) 外,UserPromptSubmit hooks 接收包含使用者提交的文字的 `prompt` 欄位。折疊為 `[Pasted text #N]` 佔位符的貼上內容會在原位展開。在 Claude Code [為 Claude 標記貼上文字](/docs/zh-TW/terminal-config#how-claude-treats-pasted-text) 的工作階段中,該展開內容位於 `<pasted_content id="…">` 行和 `</pasted_content id="…">` 行之間,因此如果您的 hook 解析提示,請考慮這些行。1427除了 [常見輸入欄位](#common-input-fields) 外,UserPromptSubmit hooks 接收包含使用者提交的文字的 `prompt` 欄位。折疊為 `[Pasted text #N]` 佔位符的貼上內容在適當位置展開到達。在 Claude Code [為 Claude 標記貼上文字](/docs/zh-TW/terminal-config#how-claude-treats-pasted-text) 的工作階段中,該展開內容位於 `<pasted_content id="…">` 行和 `</pasted_content id="…">` 行之間,因此如果您的 hook 解析提示,請考慮這些行。

1438 1428 

1439```json theme={null}1429```json theme={null}

1440{1430{


1453 1443 

1454`UserPromptSubmit` hooks 可以控制是否處理使用者提示並新增背景資訊。所有 [JSON 輸出欄位](#json-output) 都可用。1444`UserPromptSubmit` hooks 可以控制是否處理使用者提示並新增背景資訊。所有 [JSON 輸出欄位](#json-output) 都可用。

1455 1445 

1456有兩種方式可以在退出代碼 0 上新增背景資訊到對話:1446有兩種方式在退出代碼 0 上新增背景資訊到對話:

1457 1447 

1458* **純文字 stdout**:Claude Code 將它 [視為純文字](#exit-code-0) 的 stdout 新增到 Claude 的背景資訊1448* **純文字 stdout**:Claude Code 將它 [視為純文字](#exit-code-0) 的 stdout 新增到 Claude 的背景資訊

1459* **JSON 搭配 `additionalContext`**:使用下面的 JSON 格式以獲得更多控制。`additionalContext` 欄位作為背景資訊新增1449* **JSON 搭配 `additionalContext`**:使用下面的 JSON 格式以獲得更多控制。`additionalContext` 欄位作為背景資訊新增

1460 1450 

1461兩個通道都不會產生可見的文字記錄項目。純 stdout 和 `additionalContext` 值各自作為以 hook 名稱開頭的系統提醒注入;Claude 讀取兩者。若要確認傳遞,請檢查 [debug log](#debug-hooks)。1451兩個通道都不會產生可見的文字記錄項目。純 stdout 和 `additionalContext` 值各自作為以 hook 名稱開頭的系統提醒注入;Claude 讀取兩者。若要確認傳遞,請檢查 [debug log](#debug-hooks)。

1462 1452 

1463若要阻止提示,傳回一個 JSON 物件,其 `decision` 設定為 `"block"`:1453若要阻止提示,返回一個 JSON 物件,其 `decision` 設定為 `"block"`:

1464 1454 

1465| 欄位 | 描述 |1455| 欄位 | 描述 |

1466| :- | :- |1456| :- | :- |


1470| `sessionTitle` | 設定工作階段標題。用於根據提示內容自動命名工作階段 |1460| `sessionTitle` | 設定工作階段標題。用於根據提示內容自動命名工作階段 |

1471| `suppressOriginalPrompt` | 當 `decision` 為 `"block"` 時,如果為 `true`,則從顯示給使用者的阻止訊息中省略原始提示文字 |1461| `suppressOriginalPrompt` | 當 `decision` 為 `"block"` 時,如果為 `true`,則從顯示給使用者的阻止訊息中省略原始提示文字 |

1472 1462 

1473透過退出 2 阻止的 hook 以與 `reason` 相同的方式路由:阻止訊息向使用者顯示 stderr 文字,它不會新增到背景資訊。1463透過退出 2 阻止的 hook 路由方式與 `reason` 相同:阻止訊息向使用者顯示 stderr 文字,它不新增到背景資訊。

1474 1464 

1475```json theme={null}1465```json theme={null}

1476{1466{


1527| `reason` | 當 `decision` 為 `"block"` 時顯示給使用者 |1517| `reason` | 當 `decision` 為 `"block"` 時顯示給使用者 |

1528| `additionalContext` | 與展開的提示一起新增到 Claude 背景資訊的字串。請參閱 [為 Claude 新增背景資訊](#add-context-for-claude) |1518| `additionalContext` | 與展開的提示一起新增到 Claude 背景資訊的字串。請參閱 [為 Claude 新增背景資訊](#add-context-for-claude) |

1529 1519 

1530透過退出 2 阻止的 hook 以與 `reason` 相同的方式路由:阻止訊息向使用者顯示 stderr 文字。1520透過退出 2 阻止的 hook 路由方式與 `reason` 相同:阻止訊息向使用者顯示 stderr 文字。

1531 1521 

1532```json theme={null}1522```json theme={null}

1533{1523{


1544 MessageDisplay1534 MessageDisplay

1545</h3>1535</h3>

1546 1536 

1547在助手訊息流向螢幕時執行。Claude Code 分批顯示訊息:每次一批新完成的行準備好呈現時,hook 執行一次,該批行,Claude Code 在其位置呈現 hook 的替換文字。長訊息會產生多個呼叫;短訊息可能只產生一個。1537在助手訊息流向螢幕時執行。Claude Code 分批顯示訊息:每次一批新完成的行準備好呈現時,hook 執行一次,這些行,Claude Code 在其位置呈現 hook 的替換文字。長訊息會產生多個呼叫;短訊息可能只產生一個。

1548 1538 

1549使用 MessageDisplay 來:1539使用 MessageDisplay 來:

1550 1540 


1552* 轉換 Agent SDK 應用程式向其使用者顯示的文字1542* 轉換 Agent SDK 應用程式向其使用者顯示的文字

1553* 從 Claude 的回應中編輯 API 金鑰或內部主機名稱1543* 從 Claude 的回應中編輯 API 金鑰或內部主機名稱

1554 1544 

1555Claude Code 保持每個批次,直到您的 hook 傳回,因此請保持 hook 快速。如果 hook 失敗或逾時,Claude Code 顯示原始文字。此事件的預設逾時為 10 秒;如果您的 hook 需要更多時間,請在 hook 項目中設定 `timeout` 欄位。1545Claude Code 保持每個批次,直到您的 hook 返回,因此請保持 hook 快速。如果 hook 失敗或逾時,Claude Code 顯示原始文字。此事件的預設逾時為 10 秒;如果您的 hook 需要更多時間,請在 hook 項目中設定 `timeout` 欄位。

1556 1546 

1557MessageDisplay 僅用於顯示:替換文字僅更改螢幕上呈現的內容。文字記錄和 Claude 看到的內容保持原始文字,因此 Claude 永遠看不到替換,詳細模式顯示原始文字。Hook 僅接收助手訊息文字,因此工具結果和您輸入的文字呈現不變。1547MessageDisplay 僅用於顯示:替換文字僅更改螢幕上呈現的內容。文字記錄和 Claude 看到的內容保持原始文字,因此 Claude 永遠看不到替換,詳細模式顯示原始文字。Hook 僅接收助手訊息文字,因此工具結果和您輸入的文字呈現不變。

1558 1548 


1592 MessageDisplay 輸出1582 MessageDisplay 輸出

1593</h4>1583</h4>

1594 1584 

1595除了 [所有 hooks 可用的 JSON 輸出欄位](#json-output) 外,MessageDisplay hooks 可以傳回 `displayContent` 以在螢幕上替換 delta:1585除了所有 hooks 可用的 [JSON 輸出欄位](#json-output) 外,MessageDisplay hooks 可以返回 `displayContent` 以在螢幕上替換 delta:

1596 1586 

1597| 欄位 | 描述 |1587| 欄位 | 描述 |

1598| :- | :- |1588| :- | :- |

1599| `displayContent` | 顯示以取代 delta 的文字。省略以顯示原始文字 |1589| `displayContent` | 顯示以代替 delta 的文字。省略以顯示原始文字 |

1600 1590 

1601MessageDisplay hooks 沒有決策控制。它們無法阻止訊息或更改文字記錄中儲存或傳送給 Claude 的內容。Claude Code 從其 JSON 輸出作用於 `displayContent` 並捨棄 `systemMessage` 和 `continue`。1591MessageDisplay hooks 沒有決策控制。它們無法阻止訊息或更改文字記錄中儲存或傳送給 Claude 的內容。Claude Code 從其 JSON 輸出作用於 `displayContent` 並捨棄 `systemMessage` 和 `continue`。

1602 1592 

1603此範例從 Claude 的回應中去除 markdown 格式以獲得純文字顯示。指令碼從 stdin 讀取每個批次,從 `delta` 移除粗體標記和內聯程式碼反引號,並將結果傳回為 `displayContent`。1593此範例從 Claude 的回應中去除 markdown 格式以獲得純文字顯示。指令碼從 stdin 讀取每個批次,從 `delta` 移除粗體標記和內聯代碼反引號,並將結果作為 `displayContent` 返回。

1604 1594 

1605<Tabs>1595<Tabs>

1606 <Tab title="macOS/Linux">1596 <Tab title="macOS/Linux">


1676 </Tab>1666 </Tab>

1677</Tabs>1667</Tabs>

1678 1668 

1679沒有 markdown 的批次會通過不變。如果指令碼失敗,例如因為 `jq` 遺失,Claude Code 顯示原始文字,並僅在 [debug output](#debug-hooks) 中註記失敗,而不是在工作階段中。1669沒有 markdown 的批次通過不變。如果指令碼失敗,例如因為 `jq` 遺失,Claude Code 顯示原始文字,並僅在 [debug output](#debug-hooks) 中注意失敗,而不是在工作階段中。

1680 1670 

1681<h3 id="pretooluse">1671<h3 id="pretooluse">

1682 PreToolUse1672 PreToolUse


1684 1674 

1685在 Claude 建立工具參數之後、處理工具呼叫之前執行。在除 `EndConversation` 外的任何工具名稱上匹配:內建工具,例如 `Bash`、`PowerShell`、`Edit`、`Write`、`Read`、`Glob`、`Grep`、`Agent`、`Workflow`、`WebFetch`、`WebSearch`、`AskUserQuestion` 和 `ExitPlanMode`,以及任何 [MCP 工具名稱](#match-mcp-tools)。1675在 Claude 建立工具參數之後、處理工具呼叫之前執行。在除 `EndConversation` 外的任何工具名稱上匹配:內建工具,例如 `Bash`、`PowerShell`、`Edit`、`Write`、`Read`、`Glob`、`Grep`、`Agent`、`Workflow`、`WebFetch`、`WebSearch`、`AskUserQuestion` 和 `ExitPlanMode`,以及任何 [MCP 工具名稱](#match-mcp-tools)。

1686 1676 

1687若要在特定檔案在磁碟上變更時執行 hook,無論什麼寫入它,請使用 [FileChanged](#filechanged) 而不是按名稱匹配檔案編輯工具。與 PreToolUse 不同,Claude Code 在變更後執行 FileChanged hooks,它們沒有決策控制,因此無法阻止寫入。1677若要在磁碟上的特定檔案變更時執行 hook,無論什麼寫入它,請改用 [FileChanged](#filechanged),而不是按名稱匹配檔案編輯工具。與 PreToolUse 不同,Claude Code 在變更後執行 FileChanged hooks,它們沒有決策控制,因此無法阻止寫入。

1688 1678 

1689<Warning>1679<Warning>

1690 PreToolUse 僅在 Claude 呼叫工具時執行。您 [在提示中使用 `@` 參考的檔案](/docs/zh-TW/common-workflows#reference-files-and-directories) 會被新增而不進行任何工具呼叫:Claude Code 在建立提示時插入其內容,因此沒有 PreToolUse hook 對它們觸發,包括匹配 `Read` 的 hooks。若要阻止特定路徑的 `@` 參考,請改用 [`Read` 拒絕規則](/docs/zh-TW/permissions#read-and-edit)。1680 PreToolUse 僅在 Claude 呼叫工具時執行。您在提示中 [使用 `@` 參考的檔案](/docs/zh-TW/common-workflows#reference-files-and-directories) 會被新增而不進行任何工具呼叫:Claude Code 在建立提示時插入其內容,因此沒有 PreToolUse hook 對它們觸發,包括匹配 `Read` 的 hooks。若要阻止特定路徑的 `@` 參考,請改用 [`Read` 拒絕規則](/docs/zh-TW/permissions#read-and-edit)。

1691 1681 

1692 PreToolUse 也不會對 [`EndConversation`](/docs/zh-TW/tools-reference#endconversation-tool-behavior) 觸發。1682 PreToolUse 也不會對 [`EndConversation`](/docs/zh-TW/tools-reference#endconversation-tool-behavior) 觸發。

1693</Warning>1683</Warning>

1694 1684 

1695使用 [PreToolUse 決策控制](#pretooluse-decision-control) 來允許、拒絕、詢問或延遲工具呼叫。1685使用 [PreToolUse 決策控制](#pretooluse-decision-control) 來允許、拒絕、詢問或延遲工具呼叫。

1696 1686 

1697在 `PreToolUse` 上超過其逾時的 [Agent SDK 回呼 hook](/docs/zh-TW/agent-sdk/hooks) 會阻止工具呼叫,Claude 接收命名逾時的錯誤結果。另一個 hook 傳回的明確拒絕仍然優先。1687在 `PreToolUse` 上超過其逾時的 [Agent SDK 回呼 hook](/docs/zh-TW/agent-sdk/hooks) 會阻止工具呼叫,Claude 接收命名逾時的錯誤結果。另一個 hook 返回的明確拒絕仍然優先。

1698 1688 

1699<h4 id="pretooluse-input">1689<h4 id="pretooluse-input">

1700 PreToolUse 輸入1690 PreToolUse 輸入


1702 1692 

1703除了 [常見輸入欄位](#common-input-fields) 外,PreToolUse hooks 接收 `tool_name`、`tool_input` 和 `tool_use_id`。1693除了 [常見輸入欄位](#common-input-fields) 外,PreToolUse hooks 接收 `tool_name`、`tool_input` 和 `tool_use_id`。

1704 1694 

1705對於 [MCP 工具](#match-mcp-tools),輸入也攜帶 `mcp_server`,一個具有伺服器 `name` 和 `source` 的物件,說明伺服器定義的來源。`source` 值包括 `plugin`、`sdk` 和配置範圍,例如 `user` 和 `project`。[Agent SDK 參考中的 `McpServerProvenance`](/docs/zh-TW/agent-sdk/typescript#mcpserverprovenance) 列出它們全部並說明如何處理您不認識的。基於 `source` 而不是 `name` 或 `mcp__<server>__` 工具名稱前綴做出信任決定。`mcp_server` 欄位需要 Claude Code v2.1.274 或更新版本。1695對於 [MCP 工具](#match-mcp-tools),輸入也攜帶 `mcp_server`,一個具有伺服器 `name` 和 `source` 的物件,說明伺服器定義的來源。`source` 值包括 `plugin`、`sdk` 和配置範圍,例如 `user` 和 `project`。[Agent SDK 參考](/docs/zh-TW/agent-sdk/typescript#mcpserverprovenance) 中的 [`McpServerProvenance`](/docs/zh-TW/agent-sdk/typescript#mcpserverprovenance) 列出它們全部並說明如何處理您不認識的。根據 `source` 而不是 `name` 或 `mcp__<server>__` 工具名稱前綴來做出信任決定。`mcp_server` 欄位需要 Claude Code v2.1.274 或更新版本。

1706 1696 

1707對於檔案工具 `Write`、`Edit` 和 `Read`,`tool_input.file_path` 始終是絕對的:1697對於檔案工具 `Write`、`Edit` 和 `Read`,`tool_input.file_path` 始終是絕對的:

1708 1698 

1709* Claude Code 在 hooks 執行之前展開 `~` 和相對路徑,因此匹配路徑的 hook 無法透過 `~` 或相同路徑的相對拼寫繞過1699* Claude Code 在 hooks 執行之前展開 `~` 和相對路徑,因此匹配路徑的 hook 無法透過 `~` 或相同路徑的相對拼寫繞過

1710* 在 Windows 上,路徑到達時使用反斜線分隔符,即使您的 hook 在 Git Bash 下執行,其中 `$PWD` 看起來像 `/c/project`1700* 在 Windows 上,路徑到達時使用反斜線分隔符,即使您的 hook 在 Git Bash 下執行,其中 `$PWD` 看起來像 `/c/project`

1711* 使用正斜線編寫的比較,例如 `/src/` 檢查,永遠不會匹配反斜線路徑,工具呼叫會如同 hook 沒有要阻止的東西一樣進行1701* 使用正斜線編寫的比較,例如 `/src/` 檢查,永遠不會匹配反斜線路徑,工具呼叫會如同 hook 沒有要阻止的內容一樣進行

1712* 在比較前正規化分隔符:Bash 中的 `FILE_PATH="${FILE_PATH//\\//}"` 或 Python 中的 `file_path.replace("\\", "/")`,然後匹配路徑段,例如 `/src/`,而不是使用 `^` 錨定,因為路徑是絕對的1702* 在比較前規範化分隔符:Bash 中的 `FILE_PATH="${FILE_PATH//\\//}"`,或 Python 中的 `file_path.replace("\\", "/")`,然後匹配路徑段,例如 `/src/`,而不是使用 `^` 錨定,因為路徑是絕對的

1713 1703 

1714Windows 上的 `Write` 呼叫傳遞:1704Windows 上的 `Write` 呼叫傳遞:

1715 1705 


1742| `timeout` | number | `120000` | 可選逾時(毫秒)。高於 [最大值](/docs/zh-TW/tools-reference#bash-tool-behavior) 的值會減少到最大值,而不是被拒絕 |1732| `timeout` | number | `120000` | 可選逾時(毫秒)。高於 [最大值](/docs/zh-TW/tools-reference#bash-tool-behavior) 的值會減少到最大值,而不是被拒絕 |

1743| `run_in_background` | boolean | `false` | 是否在背景執行命令 |1733| `run_in_background` | boolean | `false` | 是否在背景執行命令 |

1744 1734 

1745當 Bash 命令更改 Git 儲存庫中的檔案時,Claude Code 可以記錄變更。當 [`bashEditDiffEnabled`](/docs/zh-TW/settings-reference#basheditdiffenabled) 設定開啟記錄時,它在每個權限模式中記錄;該設定的項目說明哪些檔案可以設定它。否則它僅在自動模式和 `bypassPermissions` 模式中記錄,並且僅當 Claude Code 指導 Claude 透過 Bash 編輯檔案時。設定 `bashEditDiffEnabled` 為 `false` 以關閉記錄。背景命令和唯讀命令不攜帶 diff。1735當 Bash 命令更改 Git 儲存庫中的檔案時,Claude Code 可以記錄變更的內容。當 [`bashEditDiffEnabled`](/docs/zh-TW/settings-reference#basheditdiffenabled) 設定打開記錄時,它在每個權限模式中記錄;該設定的項目說明哪些檔案可以設定它。否則,它僅在自動模式和 `bypassPermissions` 模式中記錄,並且僅當 Claude Code 指導 Claude 透過 Bash 編輯檔案時。設定 `bashEditDiffEnabled` 為 `false` 以關閉記錄。背景命令和唯讀命令不攜帶 diff。

1746 1736 

1747您的 [PostToolUse hook](#posttooluse) 然後在 `tool_response.bashEditDiff` 中接收變更的檔案。清單涵蓋命令執行時在儲存庫下變更的內容。Git 忽略的檔案和子模組中的檔案不會列出。需要 Claude Code v2.1.269 或更新版本。1737您的 [PostToolUse hook](#posttooluse) 然後在 `tool_response.bashEditDiff` 中接收變更的檔案。列表涵蓋命令執行時在儲存庫下變更的內容。Git 忽略的檔案和子模組中的檔案不被列出。需要 Claude Code v2.1.269 或更新版本。

1748 1738 

1749<Note>1739<Note>

1750 清單是盡力而為的,處於公開測試版。Claude Code 可能會遺漏變更、包含另一個程序同時變更的檔案,或在其大小限制處停止。欄位形狀可能會變更。使用清單找到要審查的內容,而不是強制執行原則。1740 列表是盡力而為的,處於公開測試版。Claude Code 可能會遺漏變更、包含另一個程序同時變更的檔案,或在其大小限制處停止。欄位形狀可能會變更。使用列表找到要審查的內容,而不是強制執行原則。

1751</Note>1741</Note>

1752 1742 

1753`changedFiles` 和 `files` 列出命令變更的內容;其餘欄位說明該清單的完整性和可靠性。1743`changedFiles` 和 `files` 列出命令變更的內容;其餘欄位說明該列表的完整性和可靠性。

1754 1744 

1755| 欄位 | 類型 | 範例 | 描述 |1745| 欄位 | 類型 | 範例 | 描述 |

1756| :- | :- | :- | :- |1746| :- | :- | :- | :- |

1757| `changedFiles` | array | `["/path/to/src/app.ts"]` | 命令變更的檔案的絕對路徑,最多 200 個。每當 `files` 保持 diff 或 `moreFiles` 高於零時出現 |1747| `changedFiles` | array | `["/path/to/src/app.ts"]` | 命令變更的檔案的絕對路徑,最多 200 個。每當 `files` 保持 diff 或 `moreFiles` 高於零時出現 |

1758| `files` | array | `[{"filePath": "/path/to/src/app.ts", "hunks": [...]}]` | 最多 5 個變更檔案的 diffs,用於顯示。`created` 或 `deleted` 對於命令新增或移除的檔案為 `true` |1748| `files` | array | `[{"filePath": "/path/to/src/app.ts", "hunks": [...]}]` | 最多 5 個變更檔案的 diffs,用於顯示。`created` 或 `deleted` 對於命令新增或移除的檔案為 `true` |

1759| `moreFiles` | number | `2` | 在 `files` 中沒有 diff 的變更檔案計數 |1749| `moreFiles` | number | `2` | 在 `files` 中沒有 diff 的變更檔案計數 |

1760| `unavailable` | boolean | `true` | 當 diff 不完整或無法取得時設定 |1750| `unavailable` | boolean | `true` | 當 diff 不完整或無法進行時設定 |

1761| `skipped` | boolean | `true` | 對於移動工作樹的 Git 命令設定,例如 `git checkout` 或 `git stash`,因此 Claude Code 不取 diff |1751| `skipped` | boolean | `true` | 對於移動工作樹的 Git 命令設定,例如 `git checkout` 或 `git stash`,因此 Claude Code 不進行 diff |

1762| `shared` | boolean | `true` | 當另一個 Bash 工具呼叫(例如子代理的)同時在同一儲存庫中執行時設定,因此某些列出的變更可能是該命令的 |1752| `shared` | boolean | `true` | 當另一個 Bash 工具呼叫(例如子代理的)同時在同一儲存庫中執行時設定,因此某些列出的變更可能是該命令的 |

1763 1753 

1764<a id="powershell" />1754<a id="powershell" />


1882| `subagent_type` | string | `"Explore"` | 要使用的專門代理類型 |1872| `subagent_type` | string | `"Explore"` | 要使用的專門代理類型 |

1883| `model` | string | `"sonnet"` | 可選模型別名以覆寫預設值 |1873| `model` | string | `"sonnet"` | 可選模型別名以覆寫預設值 |

1884 1874 

1885當前景 Agent 呼叫完成時,您的 [PostToolUse hook](#posttooluse) 在 `tool_response` 中接收子代理的結果和執行遙測。讀取這些欄位以檢查執行;對於跨子代理的權杖和成本匯總,使用 [權杖和成本計數器](/docs/zh-TW/monitoring-usage#token-counter),篩選為 `query_source` `"subagent"`,因為 `totalTokens` 和 `usage` 僅涵蓋最終請求:1875當前景 Agent 呼叫完成時,您的 [PostToolUse hook](#posttooluse) 在 `tool_response` 中接收子代理的結果和執行遙測。讀取這些欄位以檢查執行;對於跨子代理的令牌和成本匯總,使用 [令牌和成本計數器](/docs/zh-TW/monitoring-usage#token-counter),篩選為 `query_source` `"subagent"`,因為 `totalTokens` 和 `usage` 僅涵蓋最終請求:

1886 1876 

1887| 欄位 | 類型 | 範例 | 描述 |1877| 欄位 | 類型 | 範例 | 描述 |

1888| :- | :- | :- | :- |1878| :- | :- | :- | :- |

1889| `status` | string | `"completed"` | 前景子代理為 `"completed"`,背景子代理為 `"async_launched"`。自 v2.1.198 起,子代理預設在背景執行,因此省略的 `run_in_background` 也會產生 `"async_launched"` |1879| `status` | string | `"completed"` | 前景子代理為 `"completed"`,背景子代理為 `"async_launched"`。從 v2.1.198 起,子代理預設在背景執行,因此省略的 `run_in_background` 也會產生 `"async_launched"` |

1890| `agentId` | string | `"a4d2c8f1e0b3a297"` | 子代理執行的識別碼 |1880| `agentId` | string | `"a4d2c8f1e0b3a297"` | 子代理執行的識別碼 |

1891| `content` | array | `[{"type": "text", "text": "Found 12 endpoints..."}]` | 子代理的最終文字區塊,或對於其報告透過 `SubagentHandback` 的子代理,關於該交接的簡短說明代替 |1881| `content` | array | `[{"type": "text", "text": "Found 12 endpoints..."}]` | 子代理的最終文字區塊,或對於其報告透過 `SubagentHandback` 的子代理,關於該交接的簡短說明代替 |

1892| `resolvedModel` | string | `"claude-sonnet-4-5"` | 子代理啟動的模型,可能與請求的模型不同 |1882| `resolvedModel` | string | `"claude-sonnet-4-5"` | 子代理啟動的模型,可能與請求的模型不同 |

1893| `modelsUsed` | array | `["claude-sonnet-4-5", "claude-haiku-4-5"]` | 按順序使用的模型,連續重複折疊;僅在模型在執行中交換時設定。需要 Claude Code v2.1.212 或更新版本 |1883| `modelsUsed` | array | `["claude-sonnet-4-5", "claude-haiku-4-5"]` | 按順序使用的模型,連續重複折疊;僅在模型在執行中交換時設定。需要 Claude Code v2.1.212 或更新版本 |

1894| `totalTokens` | number | `12450` | 子代理最終 API 請求的權杖計數:輸入、輸出和快取權杖結合。這不是整個執行的總計 |1884| `totalTokens` | number | `12450` | 子代理最終 API 請求的令牌計數:輸入、輸出和快取令牌合併。這不是整個執行的總計 |

1895| `totalDurationMs` | number | `48211` | 子代理執行的掛鐘持續時間 |1885| `totalDurationMs` | number | `48211` | 子代理執行的掛鐘持續時間 |

1896| `totalToolUseCount` | number | `7` | 子代理進行的工具呼叫計數 |1886| `totalToolUseCount` | number | `7` | 子代理進行的工具呼叫計數 |

1897| `usage` | object | `{"input_tokens": 8320, ...}` | 最終 API 請求的每類型權杖細目:`input_tokens`、`output_tokens`、`cache_creation_input_tokens`、`cache_read_input_tokens` |1887| `usage` | object | `{"input_tokens": 8320, ...}` | 最終 API 請求的每類型令牌細目:`input_tokens`、`output_tokens`、`cache_creation_input_tokens`、`cache_read_input_tokens` |

1898 1888 

1899在 Claude Code v2.1.271 或更新版本上,使用 [`SubagentHandback`](/docs/zh-TW/tools-reference) 工具執行的子代理(Claude Code 在 [自動模式](/docs/zh-TW/permission-modes#eliminate-prompts-with-auto-mode) 中提供)透過該工具傳遞其報告,而不是將其傳回為文字。其 `completed` 結果的 `content` 欄位然後攜帶關於該交接的簡短說明,而不是報告本身。若要讀取報告,匹配 `PreToolUse` 或 `PostToolUse` hook 在 `SubagentHandback` 上,並讀取 `tool_input.message`。1889在 Claude Code v2.1.271 或更新版本上,使用 [`SubagentHandback`](/docs/zh-TW/tools-reference) 工具執行的子代理(Claude Code 在 [自動模式](/docs/zh-TW/permission-modes#eliminate-prompts-with-auto-mode) 中提供)透過該工具傳遞其報告,而不是作為文字返回。其 `completed` 結果的 `content` 欄位然後攜帶關於該交接的簡短說明,而不是報告本身。若要讀取報告,匹配 `PreToolUse` 或 `PostToolUse` hook 在 `SubagentHandback` 上,並讀取 `tool_input.message`。

1900 1890 

1901對於背景子代理,工具在任務移到背景時傳回,因此 `tool_response` 不攜帶使用欄位:背景啟動立即傳回,前景任務在該轉換時由 Claude Code 背景化傳回。它有 `status: "async_launched"`、`agentId`、`description`、`prompt`、`outputFile` 和 `resolvedModel`。1891對於背景子代理,工具在任務移到背景時返回,因此 `tool_response` 不攜帶使用欄位:背景啟動立即返回,前景任務在執行中背景化時返回。它具有 `status: "async_launched"`、`agentId`、`description`、`prompt`、`outputFile` 和 `resolvedModel`。

1902 1892 

1903在 `completed` 回應上,`resolvedModel` 命名子代理啟動的模型,可能與 `tool_input` 中的 `model` 值不同,例如當 `availableModels` 或另一個覆寫適用時。在 `async_launched` 回應上,`resolvedModel` 命名代理在移到背景時使用的模型,因此在背景化之前發生的交換會反映在那裡。`modelsUsed` 和背景化時間 `resolvedModel` 行為需要 Claude Code v2.1.212 或更新版本。1893在 `completed` 回應上,`resolvedModel` 命名子代理啟動的模型,可能與 `tool_input` 中的 `model` 值不同,例如當 `availableModels` 或另一個覆寫適用時。在 `async_launched` 回應上,`resolvedModel` 命名代理移到背景時使用的模型,因此在背景化之前發生的交換會反映在那裡。`modelsUsed` 和背景化時間 `resolvedModel` 行為需要 Claude Code v2.1.212 或更新版本。

1904 1894 

1905<a id="askuserquestion" />1895<a id="askuserquestion" />

1906 1896 


1927| `planFilePath` | string | `"/Users/.../plans/refactor-auth.md"` | 計畫檔案的路徑。注入 |1917| `planFilePath` | string | `"/Users/.../plans/refactor-auth.md"` | 計畫檔案的路徑。注入 |

1928| `allowedPrompts` | array | `[{"tool": "Bash", "prompt": "run tests"}]` | 已棄用。Claude Code 接受欄位但忽略它。在 v2.1.205 之前,它攜帶 Claude 要求實施計畫的基於提示的權限 |1918| `allowedPrompts` | array | `[{"tool": "Bash", "prompt": "run tests"}]` | 已棄用。Claude Code 接受欄位但忽略它。在 v2.1.205 之前,它攜帶 Claude 要求實施計畫的基於提示的權限 |

1929 1919 

1930在 `PostToolUse` 中,`tool_response` 是一個物件,具有 `plan` 和 `filePath` 欄位,保持核准的計畫,加上內部狀態旗標。讀取 `tool_response.plan` 以獲得計畫內容,而不是從磁碟重新讀取檔案。1920在 `PostToolUse` 中,`tool_response` 是一個物件,具有 `plan` 和 `filePath` 欄位,保持核准的計畫,加上內部狀態旗標。讀取 `tool_response.plan` 以獲取計畫內容,而不是從磁碟重新讀取檔案。

1931 1921 

1932<h4 id="pretooluse-decision-control">1922<h4 id="pretooluse-decision-control">

1933 PreToolUse 決策控制1923 PreToolUse 決策控制

1934</h4>1924</h4>

1935 1925 

1936`PreToolUse` hooks 可以控制工具呼叫是否進行。與使用頂級 `decision` 欄位的其他 hooks 不同,PreToolUse 在 `hookSpecificOutput` 物件內傳回其決策。這給予它更豐富的控制:四個結果(允許、拒絕、詢問或延遲)加上在執行前修改工具輸入的能力。1926`PreToolUse` hooks 可以控制工具呼叫是否進行。與使用頂級 `decision` 欄位的其他 hooks 不同,PreToolUse 在 `hookSpecificOutput` 物件內返回其決策。這提供了更豐富的控制:四個結果(允許、拒絕、詢問或延遲)加上在執行前修改工具輸入的能力。

1937 1927 

1938| 欄位 | 描述 |1928| 欄位 | 描述 |

1939| :- | :- |1929| :- | :- |

1940| `permissionDecision` | `"allow"` 跳過權限提示,除了 [任何模式自動核准的動作](/docs/zh-TW/permission-modes#actions-no-mode-auto-approves) 和 `AskUserQuestion` 和 `ExitPlanMode`,需要 [`updatedInput` 與其配對](#allow-with-updatedinput)。`"deny"` 防止工具呼叫。`"ask"` 提示使用者確認。`"defer"` 優雅地退出,以便稍後可以恢復工具。[拒絕和詢問規則](/docs/zh-TW/permissions#manage-permissions) 無論 hook 傳回什麼都會被評估 |1930| `permissionDecision` | `"allow"` 跳過權限提示,除了 [任何模式自動核准的動作](/docs/zh-TW/permission-modes#actions-no-mode-auto-approves) 和 `AskUserQuestion` 和 `ExitPlanMode`,它們需要 [`updatedInput` 與它配對](#allow-with-updatedinput)。`"deny"` 防止工具呼叫。`"ask"` 提示使用者確認。`"defer"` 優雅地退出,以便稍後可以恢復工具。[拒絕和詢問規則](/docs/zh-TW/permissions#manage-permissions) 無論 hook 返回什麼都會被評估 |

1941| `permissionDecisionReason` | 對於 `"allow"` 和 `"ask"`,顯示給使用者但不顯示 Claude。對於 `"deny"`,顯示給 Claude。對於 `"defer"`,忽略 |1931| `permissionDecisionReason` | 對於 `"deny"`,顯示給使用者作為拒絕原因。對於 `"ask"`,顯示在確認提示中。對於 `"allow"` 和 `"defer"`,寫入 [debug log](#debug-hooks) 僅 |

1942| `updatedInput` | 在執行前修改工具的輸入參數。替換整個輸入物件,因此在修改的欄位旁邊包含未變更的欄位。Claude Code 根據您的 hook 傳回的輸入評估權限規則和 Bash 命令的 [自動背景資格](/docs/zh-TW/tools-reference#background-commands),而不是 Claude 傳送的輸入。與 `"allow"` 結合以自動核准,或與 `"ask"` 結合以向使用者顯示修改的輸入。對於 `"defer"`,忽略 |1932| `updatedInput` | 在執行前修改工具的輸入參數。替換整個輸入物件,因此在修改的輸入旁邊包含未變更的欄位。Claude Code 根據您的 hook 返回的輸入評估權限規則和 Bash 命令的 [自動背景資格](/docs/zh-TW/tools-reference#background-commands),而不是 Claude 傳送的輸入。與 `"allow"` 結合以自動核准,或與 `"ask"` 結合以向使用者顯示修改的輸入。對於 `"defer"`,忽略 |

1943| `additionalContext` | 與工具結果一起新增到 Claude 背景資訊的字串。當 `permissionDecision` 為 `"defer"` 時忽略。請參閱 [為 Claude 新增背景資訊](#add-context-for-claude) |1933| `additionalContext` | 與工具結果一起新增到 Claude 背景資訊的字串。當 `permissionDecision` 為 `"defer"` 時忽略。請參閱 [為 Claude 新增背景資訊](#add-context-for-claude) |

1944 1934 

1945當多個 PreToolUse hooks 傳回不同的決策時,優先順序為 `deny` > `defer` > `ask` > `allow`。1935當多個 PreToolUse hooks 返回不同的決策時,優先順序為 `deny` > `defer` > `ask` > `allow`。

1946 1936 

1947透過退出 2 阻止的 hook 以與 `"deny"` 相同的方式路由:Claude 看到 stderr 訊息作為拒絕原因。1937透過退出 2 阻止的 hook 路由方式與 `"deny"` 相同:Claude 看到 stderr 訊息作為拒絕原因。

1948 1938 

1949當 hook 傳回 `"ask"` 時,顯示給使用者的權限提示包括識別 hook 來源的標籤:`[settings]` 對於來自任何設定檔或代理 frontmatter 的 hook,`[plugin:<name>]` 對於外掛的 hook,或 `[skill]` 對於來自 skill frontmatter 的 hook。這幫助使用者理解哪個配置來源要求確認。1939當 hook 返回 `"ask"` 時,顯示給使用者的權限提示包括一個標籤,識別 hook 的來源:`[settings]` 對於來自任何設定檔或代理 frontmatter 的 hook,`[plugin:<name>]` 對於外掛的 hook,或 `[skill]` 對於來自 skill frontmatter 的 hook。這幫助使用者理解哪個配置來源要求確認。

1950 1940 

1951Hook 的 `"ask"` 也在 [自動模式](/docs/zh-TW/permission-modes#eliminate-prompts-with-auto-mode) 中強制權限提示:分類器仍然可以拒絕工具呼叫,但它無法無聲地核准呼叫。在 v2.1.211 之前,分類器可以核准在 [sandbox](/docs/zh-TW/sandboxing) 外執行的 Bash 命令,而不顯示 hook 要求的提示;分類器仍然對該命令應用了自己的安全規則,hook `"deny"` 始終被尊重。1941Hook 的 `"ask"` 也在 [自動模式](/docs/zh-TW/permission-modes#eliminate-prompts-with-auto-mode) 中強制權限提示:分類器仍然可以拒絕工具呼叫,但它無法以靜默方式核准呼叫。在 v2.1.211 之前,分類器可以核准在 [沙箱](/docs/zh-TW/sandboxing) 外執行的 Bash 命令,而不顯示 hook 要求的提示;分類器仍然對該命令應用了自己的安全規則,hook `"deny"` 始終被尊重。

1952 1942 

1953```json theme={null}1943```json theme={null}

1954{1944{


1966 1956 

1967<span id="allow-with-updatedinput" />1957<span id="allow-with-updatedinput" />

1968 1958 

1969在 [非互動模式](/docs/zh-TW/headless) 中使用 `-p` 旗標,Claude Code 僅在執行有 [權限主機](/docs/zh-TW/headless#turn-off-permission-prompts-in-unattended-runs) 以接收提示時提供 `AskUserQuestion` 和 `ExitPlanMode`,例如 Agent SDK `canUseTool` 回呼。這些工具需要使用者互動。傳回 `permissionDecision: "allow"` 與 `updatedInput` 一起滿足該要求:hook 從 stdin 讀取工具的輸入,透過您自己的 UI 收集答案,並在 `updatedInput` 中傳回它,以便工具執行而不提示。單獨傳回 `"allow"` 對這些工具不夠。對於 `AskUserQuestion`,回顯原始 `questions` 陣列並新增一個 [`answers`](#askuserquestion) 物件,將每個問題的文字對應到選定的答案。1959在 [非互動模式](/docs/zh-TW/headless) 中使用 `-p` 旗標,Claude Code 僅在執行具有 [權限主機](/docs/zh-TW/headless#turn-off-permission-prompts-in-unattended-runs) 時提供 `AskUserQuestion` 和 `ExitPlanMode`,例如 Agent SDK `canUseTool` 回呼。這些工具需要使用者互動。返回 `permissionDecision: "allow"` 與 `updatedInput` 一起滿足該要求:hook 從 stdin 讀取工具的輸入,透過您自己的 UI 收集答案,並在 `updatedInput` 中返回它,以便工具執行而不提示。單獨返回 `"allow"` 對這些工具不足夠。對於 `AskUserQuestion`,回顯原始 `questions` 陣列並新增一個 [`answers`](#askuserquestion) 物件,將每個問題的文字對應到選定的答案。

1970 1960 

1971自 v2.1.199 起,其伺服器使用 [`_meta["anthropic/requiresUserInteraction"]`](/docs/zh-TW/mcp#require-approval-for-a-specific-tool) 標記的 MCP 工具更嚴格:hook 無法使用 `"allow"` 跳過其核准提示,無論是否有 `updatedInput`,因為 Claude Code 無法確認 hook 收集了工具需要的互動。1961從 v2.1.199 起,其伺服器用 [`_meta["anthropic/requiresUserInteraction"]`](/docs/zh-TW/mcp#require-approval-for-a-specific-tool) 標記的 MCP 工具更嚴格:hook 無法使用 `"allow"` 跳過其核准提示,無論是否有 `updatedInput`,因為 Claude Code 無法確認 hook 收集了工具需要的互動。

1972 1962 

1973<Note>1963<Note>

1974 PreToolUse 之前使用頂級 `decision` 和 `reason` 欄位,但這些對此事件已棄用。改用 `hookSpecificOutput.permissionDecision` 和 `hookSpecificOutput.permissionDecisionReason`。已棄用的值 `"approve"` 和 `"block"` 對應到 `"allow"` 和 `"deny"`。PostToolUse 和 Stop 等其他事件繼續使用頂級 `decision` 和 `reason` 作為其目前格式。1964 PreToolUse 之前使用頂級 `decision` 和 `reason` 欄位,但這些對此事件已棄用。改用 `hookSpecificOutput.permissionDecision` 和 `hookSpecificOutput.permissionDecisionReason`。已棄用的值 `"approve"` 和 `"block"` 對應到 `"allow"` 和 `"deny"`。PostToolUse 和 Stop 等其他事件繼續使用頂級 `decision` 和 `reason` 作為其目前格式。


1980 1970 

1981`"defer"` 適用於執行 `claude -p` 作為子程序並讀取其 JSON 輸出的整合,例如 Agent SDK 應用程式或建立在 Claude Code 之上的自訂 UI。它讓該呼叫程序在工具呼叫處暫停 Claude,透過其自己的介面收集輸入,並在中斷處恢復。Claude Code 僅在 [非互動模式](/docs/zh-TW/headless) 中使用 `-p` 旗標時尊重此值。在互動式工作階段中,它記錄警告並忽略 hook 結果。1971`"defer"` 適用於執行 `claude -p` 作為子程序並讀取其 JSON 輸出的整合,例如 Agent SDK 應用程式或建立在 Claude Code 之上的自訂 UI。它讓該呼叫程序在工具呼叫處暫停 Claude,透過其自己的介面收集輸入,並在中斷處恢復。Claude Code 僅在 [非互動模式](/docs/zh-TW/headless) 中使用 `-p` 旗標時尊重此值。在互動式工作階段中,它記錄警告並忽略 hook 結果。

1982 1972 

1983`AskUserQuestion` 工具是典型情況:Claude 想詢問使用者某事,但沒有終端來回答。`-p` 執行僅在有 [權限主機](/docs/zh-TW/headless#turn-off-permission-prompts-in-unattended-runs) 時提供 `AskUserQuestion`,例如您使用 `--permission-prompt-tool` 傳遞的 MCP 工具,因此使用一個啟動執行。往返工作如下:1973`AskUserQuestion` 工具是典型情況:Claude 想詢問使用者某事,但沒有終端來回答。`-p` 執行僅在具有 [權限主機](/docs/zh-TW/headless#turn-off-permission-prompts-in-unattended-runs) 時提供 `AskUserQuestion`,例如您使用 `--permission-prompt-tool` 傳遞的 MCP 工具,因此使用一個啟動執行。往返工作如下:

1984 1974 

19851. Claude 呼叫 `AskUserQuestion`。`PreToolUse` hook 觸發。19751. Claude 呼叫 `AskUserQuestion`。`PreToolUse` hook 觸發。

19862. Hook 傳回 `permissionDecision: "defer"`。工具不執行。程序以 `stop_reason: "tool_deferred"` 退出,待處理工具呼叫保留在文字記錄中。19762. Hook 返回 `permissionDecision: "defer"`。工具不執行。程序以 `stop_reason: "tool_deferred"` 退出,待處理工具呼叫保留在文字記錄中。

19873. 呼叫程序從 SDK 結果讀取 `deferred_tool_use`,在其自己的 UI 中呈現問題,並等待答案。19773. 呼叫程序從 SDK 結果讀取 `deferred_tool_use`,在其自己的 UI 中呈現問題,並等待答案。

19884. 呼叫程序執行 `claude -p --resume <session-id>`,使用相同的權限主機。相同的工具呼叫再次觸發 `PreToolUse`。19784. 呼叫程序執行 `claude -p --resume <session-id>`,使用相同的權限主機。相同的工具呼叫再次觸發 `PreToolUse`。

19895. Hook 傳回 `permissionDecision: "allow"`,答案在 `updatedInput` 中。工具執行,Claude 繼續。19795. Hook 返回 `permissionDecision: "allow"`,答案在 `updatedInput` 中。工具執行,Claude 繼續。

1990 1980 

1991`deferred_tool_use` 欄位攜帶工具的 `id`、`name` 和 `input`。`input` 是 Claude 為工具呼叫產生的參數,在執行前擷取:1981`deferred_tool_use` 欄位攜帶工具的 `id`、`name` 和 `input`。`input` 是 Claude 為工具呼叫生成的參數,在執行前捕獲:

1992 1982 

1993```json theme={null}1983```json theme={null}

1994{1984{


2004}1994}

2005```1995```

2006 1996 

2007沒有逾時或重試限制。工作階段保留在磁碟上,直到您恢復它,受 [`cleanupPeriodDays`](/docs/zh-TW/settings-reference#cleanupperioddays) 保留掃描約束,預設情況下在 30 天後刪除工作階段檔案,遵循 [保留掃描規則](/docs/zh-TW/claude-directory#cleaned-up-automatically)。如果恢復時答案還未準備好,hook 可以再次傳回 `"defer"`,程序以相同方式退出。呼叫程序控制何時透過最終傳回 `"allow"` 或 `"deny"` 來打破迴圈。1997沒有逾時或重試限制。工作階段保留在磁碟上,直到您恢復它,受 [`cleanupPeriodDays`](/docs/zh-TW/settings-reference#cleanupperioddays) 保留掃描約束,預設情況下在 30 天後刪除工作階段檔案,遵循 [保留掃描規則](/docs/zh-TW/claude-directory#cleaned-up-automatically)。如果恢復時答案還未準備好,hook 可以再次返回 `"defer"`,程序以相同方式退出。呼叫程序控制何時透過最終從 hook 返回 `"allow"` 或 `"deny"` 來打破迴圈。

2008 1998 

2009`"defer"` 僅在 Claude 在回合中進行單個工具呼叫時有效。如果 Claude 同時進行多個工具呼叫,`"defer"` 會被忽略,並顯示警告,工具透過正常權限流程進行。約束存在是因為恢復只能重新執行一個工具:沒有辦法延遲批次中的一個呼叫而不留下其他未解決的。1999`"defer"` 僅在 Claude 在回合中進行單個工具呼叫時有效。如果 Claude 同時進行多個工具呼叫,`"defer"` 會被忽略,並顯示警告,工具透過正常權限流程進行。約束存在是因為恢復只能重新執行一個工具:沒有辦法延遲批次中的一個呼叫而不留下其他未解決的。

2010 2000 

2011如果恢復時延遲的工具不再可用,程序以 `stop_reason: "tool_deferred_unavailable"` 和 `is_error: true` 退出,在 hook 觸發之前。這發生在為恢復的工作階段未連接提供工具的 MCP 伺服器時。`deferred_tool_use` 有效負載仍包含在內,以便您可以識別哪個工具遺失。2001如果恢復時延遲的工具不再可用,程序以 `stop_reason: "tool_deferred_unavailable"` 和 `is_error: true` 退出,在 hook 觸發之前。這發生在為恢復的工作階段未連接提供工具的 MCP 伺服器時。`deferred_tool_use` 有效負載仍然包含,以便您可以識別哪個工具遺失。

2012 2002 

2013<Note>2003<Note>

2014 若要在 plan mode 中恢復延遲工作階段,請在 `--resume` 旁邊傳遞 [`--permission-prompt-tool`](/docs/zh-TW/cli-reference#cli-flags),以便 Claude Code 可以呈現計畫以供核准。沒有它,Claude Code 不會恢復 plan mode。需要 Claude Code v2.1.246 或更新版本。2004 若要在 plan mode 中恢復延遲工作階段,請在 `--resume` 旁邊傳遞 [`--permission-prompt-tool`](/docs/zh-TW/cli-reference#cli-flags),以便 Claude Code 可以呈現計畫以供核准。如果您傳遞某些其他啟動旗標,恢復的執行不會返回到 plan mode;請參閱 [使用 `-p` 在 plan mode 中恢復](/docs/zh-TW/sessions#resume-in-plan-mode-with-p)。需要 Claude Code v2.1.246 或更新版本。

2015 2005 

2016 當您使用 `-p` 恢復時,Claude Code 不會恢復任何其他儲存的權限模式。它在新 `claude -p` 執行會啟動的權限模式中啟動執行,因此如果延遲工作階段使用了一個,請再次傳遞 `--permission-mode` 或 `--dangerously-skip-permissions`。當您使用 `claude --resume <session-id>` 恢復而不使用 `-p` 時,Claude Code 恢復儲存的權限模式,但 [恢復時的權限模式](/docs/zh-TW/sessions#permission-mode-on-resume) 中列出的例外除外。2006 當您使用 `-p` 恢復時,Claude Code 不會還原任何其他儲存的權限模式。它在新 `claude -p` 執行會啟動的權限模式中啟動執行,因此如果延遲工作階段使用了一個,請再次傳遞 `--permission-mode` 或 `--dangerously-skip-permissions`。當您使用 `claude --resume <session-id>` 恢復而不使用 `-p` 時,Claude Code 還原儲存的權限模式,但 [恢復時的權限模式](/docs/zh-TW/sessions#permission-mode-on-resume) 中列出的例外除外。

2017</Note>2007</Note>

2018 2008 

2019<h3 id="permissionrequest">2009<h3 id="permissionrequest">

2020 PermissionRequest2010 PermissionRequest

2021</h3>2011</h3>

2022 2012 

2023在 Claude Code 即將要求您許可使用工具時執行。在無法顯示提示的工作階段中,例如 [非互動模式](/docs/zh-TW/headless) 中的背景子代理,Claude Code 仍執行這些 hooks,如果沒有 hook 傳回決策,它會拒絕工具呼叫。2013在 Claude Code 即將要求您許可使用工具時執行。在無法顯示提示的工作階段中,例如 [非互動模式](/docs/zh-TW/headless) 中的背景子代理,Claude Code 仍然執行這些 hooks,如果沒有 hook 返回決策,它會拒絕工具呼叫。

2024使用 [PermissionRequest 決策控制](#permissionrequest-decision-control) 代表使用者允許或拒絕。2014使用 [PermissionRequest 決策控制](#permissionrequest-decision-control) 代表使用者允許或拒絕。

2025 2015 

2026當您需要 Claude 要求許可使用工具時的信號時,使用此事件。Claude Code 僅在提示等待約六秒後才執行 [Notification](#notification) hook,其 `permission_prompt` 類型。2016當您需要 Claude 要求許可使用工具時的信號時,使用此事件。Claude Code 僅在提示等待約六秒後才執行 [Notification](#notification) hook,其 `permission_prompt` 類型。


2033 PermissionRequest 輸入2023 PermissionRequest 輸入

2034</h4>2024</h4>

2035 2025 

2036PermissionRequest hooks 接收 `tool_name` 和 `tool_input` 欄位,如 PreToolUse hooks,但沒有 `tool_use_id`。對於 MCP 工具,它們也接收 [`mcp_server`](#pretooluse-input) 物件。可選 `permission_suggestions` 陣列包含 Claude Code 為此請求建議的 [權限更新](#permission-update-entries),例如新增允許規則或更改權限模式。2026PermissionRequest hooks 接收 `tool_name` 和 `tool_input` 欄位,如 PreToolUse hooks,但沒有 `tool_use_id`。對於 MCP 工具,它們也接收 [`mcp_server`](#pretooluse-input) 物件。可選的 `permission_suggestions` 陣列包含 Claude Code 為此請求建議的 [權限更新](#permission-update-entries),例如新增允許規則或更改權限模式。

2037 2027 

2038`permission_suggestions` 陣列不是您看到的選項的確切清單,因為每個權限對話都建立自己的選項。某些對話(例如檔案編輯的對話)根本不讀取陣列,並從請求本身衍生其選項。讀取它的對話仍然可以保留陣列中的建議,例如當 [`allowManagedPermissionRulesOnly`](/docs/zh-TW/settings-reference#allowmanagedpermissionrulesonly) 隱藏規則保存選項時。它也可以提供沒有建議項目的選項,例如 [**Yes, and switch to auto mode**](/docs/zh-TW/permission-modes#switch-permission-modes),它直接更改權限模式,而不是透過權限更新。2028`permission_suggestions` 陣列不是您看到的選項的確切列表,因為每個權限對話都建立自己的選項。某些對話(例如檔案編輯的對話)根本不讀取陣列,並從請求本身衍生其選項。讀取它的對話仍然可以保留陣列中的建議選項,例如當 [`allowManagedPermissionRulesOnly`](/docs/zh-TW/settings-reference#allowmanagedpermissionrulesonly) 隱藏規則保存選項時。它也可以提供沒有建議項目的選項,例如 [**是的,並切換到自動模式**](/docs/zh-TW/permission-modes#switch-permission-modes),它直接更改權限模式,而不是透過權限更新。

2039 2029 

2040PreToolUse hooks 在每個工具呼叫之前執行,無論它是否需要權限。PermissionRequest hooks 僅在 Claude Code 即將要求您許可時執行,或當它否則會自動拒絕無法提示的呼叫時執行。兩個事件都不會對 [`EndConversation`](/docs/zh-TW/tools-reference#endconversation-tool-behavior) 觸發。2030PreToolUse hooks 在每個工具呼叫之前執行,無論它是否需要權限。PermissionRequest hooks 僅在 Claude Code 即將要求您許可時執行,或當它會以其他方式自動拒絕無法提示的呼叫時。兩個事件都不會對 [`EndConversation`](/docs/zh-TW/tools-reference#endconversation-tool-behavior) 觸發。

2041 2031 

2042```json theme={null}2032```json theme={null}

2043{2033{


2066 PermissionRequest 決策控制2056 PermissionRequest 決策控制

2067</h4>2057</h4>

2068 2058 

2069`PermissionRequest` hooks 可以允許或拒絕權限請求。除了 [所有 hooks 可用的 JSON 輸出欄位](#json-output) 外,您的 hook 指令碼可以傳回具有這些事件特定欄位的 `decision` 物件:2059`PermissionRequest` hooks 可以允許或拒絕權限請求。除了所有 hooks 可用的 [JSON 輸出欄位](#json-output) 外,您的 hook 指令碼可以返回具有這些事件特定欄位的 `decision` 物件:

2070 2060 

2071| 欄位 | 描述 |2061| 欄位 | 描述 |

2072| :- | :- |2062| :- | :- |

2073| `behavior` | `"allow"` 授予權限,`"deny"` 拒絕它。[拒絕和詢問規則](/docs/zh-TW/permissions#manage-permissions) 仍會被評估,因此傳回 `"allow"` 的 hook 不會覆寫匹配的拒絕規則 |2063| `behavior` | `"allow"` 授予權限,`"deny"` 拒絕它。[拒絕和詢問規則](/docs/zh-TW/permissions#manage-permissions) 仍然被評估,因此返回 `"allow"` 的 hook 不會覆寫匹配的拒絕規則 |

2074| `updatedInput` | 僅對 `"allow"`:在執行前修改工具的輸入參數。替換整個輸入物件,因此在修改的欄位旁邊包含未變更的欄位。修改的輸入會針對拒絕和詢問規則重新評估 |2064| `updatedInput` | 僅對 `"allow"`:在執行前修改工具的輸入參數。替換整個輸入物件,因此在修改的輸入旁邊包含未變更的欄位。修改的輸入會針對拒絕和詢問規則重新評估 |

2075| `updatedPermissions` | 僅對 `"allow"`:[權限更新項目](#permission-update-entries) 陣列以應用,例如新增允許規則或更改工作階段權限模式 |2065| `updatedPermissions` | 僅對 `"allow"`:[權限更新項目](#permission-update-entries) 陣列以應用,例如新增允許規則或更改工作階段權限模式 |

2076| `message` | 僅對 `"deny"`:告訴 Claude 為什麼權限被拒絕 |2066| `message` | 僅對 `"deny"`:告訴 Claude 為什麼權限被拒絕 |

2077| `interrupt` | 僅對 `"deny"`:如果為 `true`,停止 Claude |2067| `interrupt` | 僅對 `"deny"`:如果為 `true`,停止 Claude |

2078 2068 

2079退出 2 而不帶 `decision` 物件的 hook 保持權限流程不變,其 stderr 被捨棄。只有 `decision` 物件可以授予或拒絕請求。2069沒有 `decision` 物件退出 2 的 hook 保持權限流程不變,其 stderr 被捨棄。只有 `decision` 物件可以授予或拒絕請求。

2080 2070 

2081```json theme={null}2071```json theme={null}

2082{2072{


2108| `removeDirectories` | `directories`、`destination` | 移除工作目錄 |2098| `removeDirectories` | `directories`、`destination` | 移除工作目錄 |

2109 2099 

2110<Note>2100<Note>

2111 `setMode` 搭配 `bypassPermissions` 僅在您已啟動工作階段時生效,且 bypass 模式已可用:`--dangerously-skip-permissions`、`--permission-mode bypassPermissions`、`--allow-dangerously-skip-permissions` 或 [user、`--settings` 或 managed settings](/docs/zh-TW/settings-reference#permissions-defaultmode) 中的 `permissions.defaultMode: "bypassPermissions"`。否則更新是無操作。當 [`permissions.disableBypassPermissionsMode`](/docs/zh-TW/permissions#managed-settings) 停用模式或工作階段在 [受限模式](/docs/zh-TW/cli-reference#cli-flags) 中啟動時,更新也是無操作。2101 `setMode` 搭配 `bypassPermissions` 僅在您已啟動工作階段時生效,且 bypass 模式已可用:`--dangerously-skip-permissions`、`--permission-mode bypassPermissions`、`--allow-dangerously-skip-permissions` 或 [使用者、`--settings` 或受管設定](/docs/zh-TW/settings-reference#permissions-defaultmode) 中的 `permissions.defaultMode: "bypassPermissions"`。否則更新是無操作。當 [`permissions.disableBypassPermissionsMode`](/docs/zh-TW/permissions#managed-settings) 停用模式或工作階段在 [受限模式](/docs/zh-TW/cli-reference#cli-flags) 中啟動時,更新也是無操作。

2112 2102 

2113 無論 `destination` 如何,`bypassPermissions` 永遠不會作為 `defaultMode` 保留。2103 `bypassPermissions` 無論 `destination` 如何都永遠不會保留為 `defaultMode`。

2114</Note>2104</Note>

2115 2105 

2116每個項目上的 `destination` 欄位決定變更是保留在記憶體中還是保留到設定檔。2106每個項目上的 `destination` 欄位決定變更是保留在記憶體中還是保留到設定檔。


2134 2124 

2135當工具名稱不是正確的篩選器時,更廣泛地匹配:2125當工具名稱不是正確的篩選器時,更廣泛地匹配:

2136 2126 

2137* 若要在任何工具成功完成後執行 hook,省略 `matcher` 或將其設定為 `"*"`。您的 hook 然後可以自己探索變更了什麼,例如執行 `git status --porcelain`,它也列出 `git diff` 遺漏的未追蹤檔案。對於失敗的工具呼叫,在 [PostToolUseFailure](#posttoolusefailure) 下新增相同的 hook。2127* 若要在任何工具成功完成後執行 hook,省略 `matcher` 或將其設定為 `"*"`。您的 hook 然後可以自己發現變更的內容,例如執行 `git status --porcelain`,它也列出 `git diff` 遺漏的未追蹤檔案。對於失敗的工具呼叫,在 [PostToolUseFailure](#posttoolusefailure) 下新增相同的 hook。

2138* 若要在特定檔案在磁碟上變更時執行 hook,無論什麼寫入它,請使用 [FileChanged](#filechanged)。當 `Bash` 命令或 Claude Code 外的程序重寫相同檔案時,Claude Code 不執行匹配 `Edit|Write` 的 `PostToolUse` hook。2128* 若要在特定檔案變更時執行 hook,無論什麼寫入它,請使用 [FileChanged](#filechanged)。Claude Code 不會在 `Bash` 命令或 Claude Code 外的程序重寫相同檔案時執行匹配 `Edit|Write` 的 `PostToolUse` hook。

2139 2129 

2140<h4 id="posttooluse-input">2130<h4 id="posttooluse-input">

2141 PostToolUse 輸入2131 PostToolUse 輸入

2142</h4>2132</h4>

2143 2133 

2144`PostToolUse` hooks 在工具已執行成功後觸發。輸入包括 `tool_input`(傳送給工具的引數)和 `tool_response`(它傳回的結果)。兩者的確切架構取決於工具。檔案工具 `tool_input` 路徑以與 [PreToolUse](#pretooluse-input) 相同的格式到達:始終絕對,具有平台的原生分隔符,因此 Windows 上的反斜線。對於 MCP 工具,輸入也攜帶 [`mcp_server`](#pretooluse-input) 物件。2134`PostToolUse` hooks 在工具已執行成功後觸發。輸入包括 `tool_input`(傳送給工具的引數)和 `tool_response`(它返回的結果)。兩者的確切架構取決於工具。檔案工具 `tool_input` 路徑以與 [PreToolUse](#pretooluse-input) 相同的格式到達:始終絕對,具有平台的原生分隔符,因此 Windows 上的反斜線。對於 MCP 工具,輸入也攜帶 [`mcp_server`](#pretooluse-input) 物件。

2145 2135 

2146```json theme={null}2136```json theme={null}

2147{2137{


2172 PostToolUse 決策控制2162 PostToolUse 決策控制

2173</h4>2163</h4>

2174 2164 

2175`PostToolUse` hooks 可以在工具執行後提供回饋給 Claude。除了 [所有 hooks 可用的 JSON 輸出欄位](#json-output) 外,您的 hook 指令碼可以傳回這些事件特定的欄位:2165`PostToolUse` hooks 可以在工具執行後提供反饋給 Claude。除了所有 hooks 可用的 [JSON 輸出欄位](#json-output) 外,您的 hook 指令碼可以返回這些事件特定的欄位:

2176 2166 

2177| 欄位 | 描述 |2167| 欄位 | 描述 |

2178| :- | :- |2168| :- | :- |

2179| `decision` | `"block"` 在工具結果旁邊新增 `reason`。Claude 仍看到原始輸出;若要替換它,請使用 `updatedToolOutput` |2169| `decision` | `"block"` 在工具結果旁邊新增 `reason`。Claude 仍然看到原始輸出;若要替換它,請使用 `updatedToolOutput` |

2180| `reason` | 當 `decision` 為 `"block"` 時顯示給 Claude 的說明 |2170| `reason` | 當 `decision` 為 `"block"` 時顯示給 Claude 的解釋 |

2181| `additionalContext` | 與工具結果一起新增到 Claude 背景資訊的字串。請參閱 [為 Claude 新增背景資訊](#add-context-for-claude) |2171| `additionalContext` | 與工具結果一起新增到 Claude 背景資訊的字串。請參閱 [為 Claude 新增背景資訊](#add-context-for-claude) |

2182| `classifierContext` | 關於此呼叫結果的簡短說明,用於 [自動模式](/docs/zh-TW/permission-modes#eliminate-prompts-with-auto-mode) 分類器,而不是 Claude。請參閱 [為自動模式分類器註釋結果](#annotate-a-result-for-the-auto-mode-classifier)。需要 Claude Code v2.1.236 或更新版本 |2172| `classifierContext` | 關於此呼叫結果的簡短說明,用於 [自動模式](/docs/zh-TW/permission-modes#eliminate-prompts-with-auto-mode) 分類器,而不是 Claude。請參閱 [為自動模式分類器註釋結果](#annotate-a-result-for-the-auto-mode-classifier)。需要 Claude Code v2.1.236 或更新版本 |

2183| `updatedToolOutput` | 在將工具的輸出傳送給 Claude 之前,用提供的值替換它。該值必須符合工具的輸出形狀 |2173| `updatedToolOutput` | 在將工具的輸出傳送給 Claude 之前,用提供的值替換它。該值必須符合工具的輸出形狀 |


2201```2191```

2202 2192 

2203<Warning>2193<Warning>

2204 `updatedToolOutput` 僅更改 Claude 看到的內容。工具在 hook 觸發時已執行,因此任何寫入的檔案、執行的命令或傳送的網路請求都已生效。遙測(例如 OpenTelemetry 工具跨度和分析事件)也在 hook 執行前擷取原始輸出。若要在執行前防止或修改工具呼叫,請改用 [PreToolUse](#pretooluse) hook。2194 `updatedToolOutput` 僅更改 Claude 看到的內容。工具在 hook 觸發時已執行,因此任何寫入的檔案、執行的命令或傳送的網路請求都已生效。遙測(例如 OpenTelemetry 工具跨度和分析事件)也會在 hook 執行前捕獲原始輸出。若要在執行前防止或修改工具呼叫,請改用 [PreToolUse](#pretooluse) hook。

2205 2195 

2206 替換值必須符合工具的輸出形狀。內建工具傳回結構化物件,而不是純字串。例如,`Bash` 傳回具有 `stdout`、`stderr`、`interrupted` 和 `isImage` 欄位的物件。對於內建工具,不符合工具輸出架構的值會被忽略,使用原始輸出。MCP 工具輸出通過而不進行架構驗證。去除 Claude 需要的錯誤詳細資訊可能導致它在錯誤假設上進行。2196 替換值必須符合工具的輸出形狀。內建工具返回結構化物件,而不是純字串。例如,`Bash` 返回具有 `stdout`、`stderr`、`interrupted` 和 `isImage` 欄位的物件。對於內建工具,不符合工具輸出架構的值會被忽略,並使用原始輸出。MCP 工具輸出通過而不進行架構驗證。去除 Claude 需要的錯誤詳細資訊可能導致它在錯誤假設上進行。

2207</Warning>2197</Warning>

2208 2198 

2209<h4 id="annotate-a-result-for-the-auto-mode-classifier">2199<h4 id="annotate-a-result-for-the-auto-mode-classifier">

2210 為自動模式分類器註釋結果2200 為自動模式分類器註釋結果

2211</h4>2201</h4>

2212 2202 

2213傳回 `classifierContext` 以將關於工具呼叫結果的簡短說明傳送給 [自動模式](/docs/zh-TW/permission-modes#eliminate-prompts-with-auto-mode) 分類器,而不是 Claude。分類器 [永遠不會接收工具結果本身](/docs/zh-TW/permission-modes#how-the-classifier-evaluates-actions),因此此欄位是在分類器審查稍後動作之前告訴它關於呼叫傳回內容的支援方式。該欄位需要 Claude Code v2.1.236 或更新版本。2203返回 `classifierContext` 以向 [自動模式](/docs/zh-TW/permission-modes#eliminate-prompts-with-auto-mode) 分類器傳送關於工具呼叫結果的簡短說明,而不是 Claude。分類器 [永遠不會接收工具結果本身](/docs/zh-TW/permission-modes#how-the-classifier-evaluates-actions),因此此欄位是在分類器審查稍後動作之前告訴它關於呼叫返回的內容的支援方式。該欄位需要 Claude Code v2.1.236 或更新版本。

2214 2204 

2215下面的範例告訴分類器查詢的輸出來自何處:2205下面的範例告訴分類器查詢的輸出來自何處:

2216 2206 


2226分類器給予說明的權重取決於您配置 hook 的位置:2216分類器給予說明的權重取決於您配置 hook 的位置:

2227 2217 

2228* **在 Claude Code 中配置的 Hooks**:對於來自設定檔、外掛、skills 和代理 frontmatter 的 hooks,分類器將說明視為未驗證的應用程式提供的背景資訊。說明永遠不會建立使用者意圖,如果它聲稱您核准或要求了某事,分類器會根據您在對話中的自己訊息檢查該聲明2218* **在 Claude Code 中配置的 Hooks**:對於來自設定檔、外掛、skills 和代理 frontmatter 的 hooks,分類器將說明視為未驗證的應用程式提供的背景資訊。說明永遠不會建立使用者意圖,如果它聲稱您核准或要求了某事,分類器會根據您在對話中的自己訊息檢查該聲明

2229* **進程內 Agent SDK 回呼**:當應用程式嵌入 Claude Code 並將 hook 註冊為 [TypeScript SDK 回呼](/docs/zh-TW/agent-sdk/hooks) 並在即時工作階段期間傳回說明時,分類器可能會將使用者陳述(在說明中轉達)視為使用者意圖。這樣的陳述可以滿足分類器會接受來自您傳送的訊息的同意要求,但它永遠不會解除您自己的訊息也無法解除的阻止。工作階段恢復後,Claude Code 將恢復的說明視為未驗證的背景資訊。當來自兩個群組的 hooks 註釋相同呼叫時,分類器將組合說明視為未驗證2219* **進程內 Agent SDK 回呼**:當應用程式嵌入 Claude Code 並將 hook 註冊為 [TypeScript SDK 回呼](/docs/zh-TW/agent-sdk/hooks) 並在即時工作階段期間返回說明時,分類器可能會將說明中轉達的使用者陳述視為使用者意圖。這樣的陳述可以滿足分類器會接受來自您傳送的訊息的同意要求,但它永遠不會解除您自己的訊息也無法解除的阻止。工作階段恢復後,Claude Code 將還原的說明視為未驗證的背景資訊。當來自兩個群組的 hooks 註釋相同呼叫時,分類器將組合說明視為未驗證

2230 2220 

2231Claude Code 在傳遞說明時應用這些限制:2221Claude Code 在傳遞說明時應用這些限制:

2232 2222 

2233* **長度**:Claude Code 將一個工具呼叫的說明上限設定為 2,000 個字元,並截斷其餘部分。上限在每個回應該呼叫的 hook 之間共享2223* **長度**:Claude Code 將一個工具呼叫的說明上限為 2,000 個字元,並截斷其餘部分。上限在每個回應該呼叫的 hook 之間共享

2234* **僅同步回應**:Claude Code 忽略 [在背景執行](#run-hooks-in-the-background) 的 hook 回應中的欄位,因為該回應在 Claude Code 記錄工具結果後到達2224* **僅同步回應**:Claude Code 忽略 [在背景執行](#run-hooks-in-the-background) 的 hook 回應中的欄位,因為該回應在 Claude Code 記錄工具結果後到達

2235* **分類器不記錄的呼叫**:分類器的文字記錄省略唯讀查詢,例如檔案讀取和搜尋。Claude Code 捨棄附加到其中一個呼叫的說明2225* **分類器不記錄的呼叫**:分類器的文字記錄省略唯讀查詢,例如檔案讀取和搜尋。Claude Code 捨棄附加到其中一個呼叫的說明

2236* **與重寫的互動**:當說明描述您使用 `updatedToolOutput` 替換的輸出時,在相同的 hook 回應中傳回兩個欄位。如果該重寫被拒絕或另一個 hook 的重寫替換它,Claude Code 會捨棄說明。Claude Code 傳遞您傳回的說明,而不進行重寫,即使另一個 hook 重寫輸出2226* **與重寫的互動**:當說明描述您使用 `updatedToolOutput` 替換的輸出時,在相同的 hook 回應中返回兩個欄位。如果該重寫被拒絕或另一個 hook 的重寫替換它,Claude Code 會捨棄說明。Claude Code 傳遞您返回的說明,即使沒有重寫,即使另一個 hook 重寫輸出

2237 2227 

2238<Warning>2228<Warning>

2239 分類器將您放在 `classifierContext` 中的內容讀取為來自託管工作階段的應用程式的資訊,因此不要將不受信任的工具輸出或第三方文字複製到其中。將說明保持為關於此一個呼叫的簡短聲明,例如關於其來源的事實或關於它的使用者陳述;不要使用欄位傳遞不相關的訊息或事件流。2229 分類器將您放在 `classifierContext` 中的內容讀取為來自託管工作階段的應用程式的資訊,因此不要將不受信任的工具輸出或第三方文字複製到其中。將說明保持為關於此一個呼叫的簡短聲明,例如關於其來源的事實或關於它的使用者陳述;不要使用欄位傳遞不相關的訊息或事件流。


2243 PostToolUseFailure2233 PostToolUseFailure

2244</h3>2234</h3>

2245 2235 

2246在開始執行的工具失敗時執行:工具拋出錯誤,或 MCP 工具傳回錯誤結果。使用此來記錄失敗、傳送警報或向 Claude 提供更正回饋。2236在開始執行的工具失敗時執行:工具拋出錯誤,或 MCP 工具返回錯誤結果。使用此來記錄失敗、傳送警報或向 Claude 提供更正反饋。

2247 2237 

2248在工具名稱上匹配,與 PreToolUse 相同的值。2238在工具名稱上匹配,與 PreToolUse 相同的值。

2249 2239 

2250<Note>2240<Note>

2251 此事件不會對執行前被拒絕的工具呼叫觸發:未知工具名稱、失敗架構或工具特定驗證的輸入,或權限拒絕。驗證拒絕作為 `tool_use_error` 結果傳回,發生在 hooks 執行之前,因此它們既不觸發 `PreToolUse` 也不觸發此事件。權限拒絕觸發 `PreToolUse` 但不觸發此事件;請參閱 [PermissionDenied](#permissiondenied)。2241 此事件不會對執行前被拒絕的工具呼叫觸發:未知工具名稱、失敗架構或工具特定驗證的輸入,或權限拒絕。驗證拒絕作為 `tool_use_error` 結果返回,並在 hooks 執行前發生,因此它們既不觸發 `PreToolUse` 也不觸發此事件。權限拒絕觸發 `PreToolUse` 但不觸發此事件;請參閱 [PermissionDenied](#permissiondenied)。

2252</Note>2242</Note>

2253 2243 

2254<h4 id="posttoolusefailure-input">2244<h4 id="posttoolusefailure-input">


2278 2268 

2279| 欄位 | 描述 |2269| 欄位 | 描述 |

2280| :- | :- |2270| :- | :- |

2281| `error` | 描述出錯內容的字串。格式取決於失敗的工具 |2271| `error` | 描述出錯的字串。格式取決於失敗的工具 |

2282| `is_interrupt` | 可選布林值。當失敗作為中止而不是工具報告的錯誤到達 Claude Code 時為 True。取消執行中的工具不會觸發此 hook;工具結果攜帶中斷訊息 |2272| `is_interrupt` | 可選布林值。當失敗作為中止而不是工具報告的錯誤到達 Claude Code 時為 True。取消執行中的工具不會觸發此 hook;工具結果攜帶中斷訊息 |

2283| `duration_ms` | 可選。工具執行時間(毫秒)。不包括權限提示和 PreToolUse hooks 中花費的時間 |2273| `duration_ms` | 可選。工具執行時間(毫秒)。不包括權限提示和 PreToolUse hooks 中花費的時間 |

2284 2274 

2285`error` 字串通常與 Claude 接收的失敗工具結果相同。其格式因工具和失敗而異。在 `tool_name`、`is_interrupt` 和第一行 `Exit code N` 上鍵入您的 hook;將字串的其餘部分視為顯示文字,而不是穩定格式。2275`error` 字串通常與 Claude 接收的失敗工具結果相同的文字。其格式因工具和失敗而異。根據 `tool_name`、`is_interrupt` 和第一行 `Exit code N` 鍵入您的 hook;將字串的其餘部分視為顯示文字,而不是穩定格式。

2286 2276 

2287* 對於 Bash 和 PowerShell,執行並退出的命令會產生第一行 `Exit code N`,然後是命令產生的任何輸出作為一個區塊,stdout 和 stderr 交錯2277* 對於 Bash 和 PowerShell,執行並退出的命令會產生第一行 `Exit code N`,然後是命令產生的任何輸出作為一個區塊,stdout 和 stderr 交錯

2288* 有效負載也可能攜帶裸失敗訊息,沒有退出代碼行,當 Claude Code 無法啟動 shell 程序本身時2278* 有效負載也可能攜帶裸露的失敗訊息,沒有退出代碼行,當 Claude Code 無法啟動 shell 程序本身時

2289* Claude Code 中間截斷長字串,圍繞 `... [N characters truncated] ...` 標記,並可以插入自己的行,例如 `Command timed out after 2m 0s`2279* Claude Code 中間截斷長字串,圍繞 `... [N characters truncated] ...` 標記,並可以插入自己的行,例如 `Command timed out after 2m 0s`

2290 2280 

2291<h4 id="posttoolusefailure-decision-control">2281<h4 id="posttoolusefailure-decision-control">

2292 PostToolUseFailure 決策控制2282 PostToolUseFailure 決策控制

2293</h4>2283</h4>

2294 2284 

2295`PostToolUseFailure` hooks 可以在工具失敗後向 Claude 提供背景資訊。除了 [所有 hooks 可用的 JSON 輸出欄位](#json-output) 外,您的 hook 指令碼可以傳回這些事件特定的欄位:2285`PostToolUseFailure` hooks 可以在工具失敗後向 Claude 提供背景資訊。除了所有 hooks 可用的 [JSON 輸出欄位](#json-output) 外,您的 hook 指令碼可以返回這些事件特定的欄位:

2296 2286 

2297| 欄位 | 描述 |2287| 欄位 | 描述 |

2298| :- | :- |2288| :- | :- |


2331 "tool_name": "Read",2321 "tool_name": "Read",

2332 "tool_input": {"file_path": "/.../ledger/accounts.py"},2322 "tool_input": {"file_path": "/.../ledger/accounts.py"},

2333 "tool_use_id": "toolu_01...",2323 "tool_use_id": "toolu_01...",

2334 "tool_response": " 1\tfrom __future__ import annotations\n 2\t..."2324 "tool_response": "1\tfrom __future__ import annotations\n2\t..."

2335 },2325 },

2336 {2326 {

2337 "tool_name": "Read",2327 "tool_name": "Read",

2338 "tool_input": {"file_path": "/.../ledger/transactions.py"},2328 "tool_input": {"file_path": "/.../ledger/transactions.py"},

2339 "tool_use_id": "toolu_02...",2329 "tool_use_id": "toolu_02...",

2340 "tool_response": " 1\tfrom __future__ import annotations\n 2\t..."2330 "tool_response": "1\tfrom __future__ import annotations\n2\t..."

2341 }2331 }

2342 ]2332 ]

2343}2333}


2353 PostToolBatch 決策控制2343 PostToolBatch 決策控制

2354</h4>2344</h4>

2355 2345 

2356`PostToolBatch` hooks 可以為 Claude 注入背景資訊。除了 [所有 hooks 可用的 JSON 輸出欄位](#json-output) 外,您的 hook 指令碼可以傳回這些事件特定的欄位:2346`PostToolBatch` hooks 可以為 Claude 注入背景資訊。除了所有 hooks 可用的 [JSON 輸出欄位](#json-output) 外,您的 hook 指令碼可以返回這些事件特定的欄位:

2357 2347 

2358| 欄位 | 描述 |2348| 欄位 | 描述 |

2359| :- | :- |2349| :- | :- |


2368}2358}

2369```2359```

2370 2360 

2371傳回 `decision: "block"` 或 `continue: false` 在下一個模型呼叫之前停止代理迴圈。阻止訊息來自 JSON `reason` 或 `stopReason`,或來自退出 2 的 stderr。您在文字記錄中看到它作為警告,它保留在對話中,因此當對話繼續時 Claude 看到它。2361返回 `decision: "block"` 或 `continue: false` 在下一個模型呼叫之前停止代理迴圈。阻止訊息來自 JSON `reason` 或 `stopReason`,或來自退出 2 時的 stderr。您在文字記錄中看到它作為警告,它保留在對話中,因此當對話繼續時 Claude 看到它。

2372 2362 

2373<h3 id="permissiondenied">2363<h3 id="permissiondenied">

2374 PermissionDenied2364 PermissionDenied

2375</h3>2365</h3>

2376 2366 

2377在 [自動模式](/docs/zh-TW/permission-modes#eliminate-prompts-with-auto-mode) 拒絕工具呼叫時執行,包括當它拒絕而沒有分類器判決時,因為 [與自動模式分開的安全檢查拒絕了分類器自己的請求](/docs/zh-TW/errors#auto-mode-cannot-determine-the-safety-of-an-action) 或其回應沒有解析。此 hook 僅在自動模式中觸發:當您手動拒絕權限對話、`PreToolUse` hook 阻止呼叫或 `deny` 規則匹配時,它不執行。使用它來記錄拒絕、調整配置或告訴模型它可能重試工具呼叫。2367在 [自動模式](/docs/zh-TW/permission-modes#eliminate-prompts-with-auto-mode) 拒絕工具呼叫時執行,包括當它拒絕而沒有分類器判決時,因為 [自動模式分開的安全檢查拒絕了分類器自己的請求](/docs/zh-TW/errors#auto-mode-cannot-determine-the-safety-of-an-action) 或其回應沒有解析。此 hook 僅在自動模式中觸發:當您手動拒絕權限對話、`PreToolUse` hook 阻止呼叫或 `deny` 規則匹配時,它不執行。使用它來記錄拒絕、調整配置或告訴模型它可能重試工具呼叫。

2378 2368 

2379在工具名稱上匹配,與 PreToolUse 相同的值。2369在工具名稱上匹配,與 PreToolUse 相同的值。

2380 2370 


2403 2393 

2404| 欄位 | 描述 |2394| 欄位 | 描述 |

2405| :- | :- |2395| :- | :- |

2406| `reason` | 拒絕原因。對於分類器判決,在大多數工作階段中它命名方括號中的匹配規則,例如 `[Data Exfiltration]`;請參閱 [審查拒絕](/docs/zh-TW/auto-mode-config#review-denials),了解其他形式。對於 [無判決拒絕](#permissiondenied-decision-control),它以 `Auto mode could not evaluate this action and is blocking it for safety` 開頭。對於因分類器模型不可用而拒絕,它是固定文字 `Classifier unavailable` |2396| `reason` | 拒絕原因。對於分類器判決,在大多數工作階段中,它命名方括號中的匹配規則,例如 `[Data Exfiltration]`;請參閱 [審查拒絕](/docs/zh-TW/auto-mode-config#review-denials),了解其他形式。對於 [無判決拒絕](#permissiondenied-decision-control),它以 `Auto mode could not evaluate this action and is blocking it for safety` 開頭。對於拒絕,因為分類器模型不可用,它是固定文字 `Classifier unavailable` |

2407 2397 

2408<h4 id="permissiondenied-decision-control">2398<h4 id="permissiondenied-decision-control">

2409 PermissionDenied 決策控制2399 PermissionDenied 決策控制

2410</h4>2400</h4>

2411 2401 

2412PermissionDenied hooks 可以告訴模型它可能重試被拒絕的工具呼叫。傳回一個 JSON 物件,其 `hookSpecificOutput.retry` 設定為 `true`:2402PermissionDenied hooks 可以告訴模型它可能重試被拒絕的工具呼叫。返回一個 JSON 物件,其 `hookSpecificOutput.retry` 設定為 `true`:

2413 2403 

2414```json theme={null}2404```json theme={null}

2415{2405{


2420}2410}

2421```2411```

2422 2412 

2423當 `retry` 為 `true` 時,Claude Code 向對話新增一條訊息,告訴模型它可能重試工具呼叫。Claude Code 不反轉拒絕本身。如果您的 hook 不傳回 JSON,或傳回 `retry: false`,拒絕成立,模型接收原始拒絕訊息。2413當 `retry` 為 `true` 時,Claude Code 向對話新增一條訊息,告訴模型它可能重試工具呼叫。Claude Code 不會反轉拒絕本身。如果您的 hook 不返回 JSON,或返回 `retry: false`,拒絕成立,模型接收原始拒絕訊息。

2424 2414 

2425當分類器對動作產生 [無判決](/docs/zh-TW/errors#auto-mode-cannot-determine-the-safety-of-an-action) 時,Claude Code 忽略 `retry: true`:其回應沒有解析,或與自動模式分開的安全檢查拒絕了分類器自己的請求。對於這些拒絕,Claude Code 已在拒絕訊息中告訴模型是否稍後重試或繼續。2415當分類器對動作產生 [無判決](/docs/zh-TW/errors#auto-mode-cannot-determine-the-safety-of-an-action) 時,Claude Code 忽略 `retry: true`:其回應沒有解析,或自動模式分開的安全檢查拒絕了分類器自己的請求。對於這些拒絕,Claude Code 已在拒絕訊息中告訴模型是否稍後重試或繼續。

2426 2416 

2427<h3 id="notification">2417<h3 id="notification">

2428 Notification2418 Notification


2430 2420 

2431在 Claude Code 傳送通知時執行。在通知類型上匹配。省略匹配器以對所有通知類型執行 hooks。2421在 Claude Code 傳送通知時執行。在通知類型上匹配。省略匹配器以對所有通知類型執行 hooks。

2432 2422 

2433即使桌面通知關閉,您也會接收這些 hook 事件:`preferredNotifChannel` 設定(包括 `notifications_disabled`)僅更改您如何被警報,而不是您的 hook 是否執行。2423即使桌面通知關閉,您也會接收這些 hook 事件:`preferredNotifChannel` 設定(包括 `notifications_disabled`)僅更改您如何被警告,而不是您的 hook 是否執行。

2434 2424 

2435| 匹配器 | 何時觸發 |2425| 匹配器 | 何時觸發 |

2436| :- | :- |2426| :- | :- |

2437| `permission_prompt` | Claude 需要您核准工具使用或沙箱命令的 [網路請求](/docs/zh-TW/sandboxing#network-isolation),提示已等待約六秒 |2427| `permission_prompt` | Claude 需要您核准工具使用或沙箱命令的 [網路請求](/docs/zh-TW/sandboxing#network-isolation),提示已等待約六秒 |

2438| `idle_prompt` | Claude 約 60 秒前完成回應,您自那以後沒有輸入 |2428| `idle_prompt` | Claude 約 60 秒前完成回應,您自那以後沒有輸入 |

2439| `auth_success` | 驗證完成 |2429| `auth_success` | 驗證完成 |

2440| `elicitation_dialog` | MCP 伺服器開啟引誘表單,您約六秒沒有輸入 |2430| `elicitation_dialog` | MCP 伺服器開啟引出表單,您約六秒沒有輸入 |

2441| `elicitation_url_dialog` | MCP 伺服器要求您開啟瀏覽器 URL,您約六秒沒有輸入 |2431| `elicitation_url_dialog` | MCP 伺服器要求您開啟瀏覽器 URL,您約六秒沒有輸入 |

2442| `elicitation_complete` | MCP 伺服器報告 [URL 模式引誘](#elicitation-input) 完成 |2432| `elicitation_complete` | MCP 伺服器報告 [URL 模式引出](#elicitation-input) 完成 |

2443| `elicitation_response` | MCP 引誘回應傳送回伺服器 |2433| `elicitation_response` | MCP 引出回應傳送回伺服器 |

2444| `agent_needs_input` | 背景工作階段在 [agent view](/docs/zh-TW/agent-view) 在終端中開啟時開始等待您的輸入,或目前工作階段詢問您 [agent team](/docs/zh-TW/agent-teams) 隊友的終端設定問題,您約六秒沒有輸入 |2434| `agent_needs_input` | 背景工作階段在 [agent view](/docs/zh-TW/agent-view) 在終端中開啟時開始等待您的輸入,或目前工作階段詢問您 [agent team 隊友的終端設定問題](/docs/zh-TW/agent-teams#choose-a-display-mode),您約六秒沒有輸入 |

2445| `agent_completed` | 背景工作階段完成或失敗。僅在 [agent view](/docs/zh-TW/agent-view) 在終端中開啟時觸發 |2435| `agent_completed` | 背景工作階段完成或失敗。僅在 [agent view](/docs/zh-TW/agent-view) 在終端中開啟時觸發 |

2446| `quota_auto_resume_fired` | Claude Code 在 claude.ai 使用限制暫停後繼續您的任務:在重設時,或更早當您在 Claude Code 中做某事時,例如新增使用額度、升級您的計畫或切換模型,使使用可用,具有 [模型設定例外](/docs/zh-TW/interactive-mode#wait-for-a-usage-limit-to-reset) |2436| `quota_auto_resume_fired` | Claude Code 在 claude.ai 使用限制暫停後繼續您的任務:在重設時,或更早當您在 Claude Code 中執行某事時,例如新增使用額度、升級您的計畫或切換模型,使使用可用,具有 [模型設定例外](/docs/zh-TW/interactive-mode#wait-for-a-usage-limit-to-reset) |

2447| `quota_auto_resume_stale` | claude.ai 使用限制在您的電腦睡眠超過約 30 分鐘時重設。Claude Code 等待您按 `Enter` 而不是繼續。在更短的睡眠後它繼續並改為觸發 `quota_auto_resume_fired` |2437| `quota_auto_resume_stale` | claude.ai 使用限制在您的電腦睡眠超過約 30 分鐘時重設。Claude Code 等待您按 `Enter` 而不是繼續。在更短的睡眠後,它繼續並改為觸發 `quota_auto_resume_fired` |

2448| `quota_auto_resume_disabled` | Claude Code 結束其對 claude.ai 使用限制的等待而不繼續您的任務:[`autoContinueAtUsageLimit`](/docs/zh-TW/settings-reference#autocontinueatusagelimit) 關閉或重設在 Claude Code 自己啟動的等待期間移動超過 24 小時,繼續的任務持續命中限制,或繼續在到達模型之前被阻止。當您按 `Esc` 或 `Ctrl+C` 或選擇 **Don't continue automatically** 時不觸發 |2438| `quota_auto_resume_disabled` | Claude Code 結束其對 claude.ai 使用限制的等待而不繼續您的任務:[`autoContinueAtUsageLimit`](/docs/zh-TW/settings-reference#autocontinueatusagelimit) 關閉或重設在 Claude Code 自己啟動的等待期間移動超過 24 小時,繼續的任務持續命中限制,或繼續在到達模型之前被阻止。當您按 `Esc` 或 `Ctrl+C` 或選擇 **不要自動繼續** 時不觸發 |

2449 2439 

2450`agent_needs_input` 和 `agent_completed` 類型需要 Claude Code v2.1.198 或更新版本。2440`agent_needs_input` 和 `agent_completed` 類型需要 Claude Code v2.1.198 或更新版本。

2451 2441 


2456隊友終端設定問題的 `agent_needs_input` 需要 Claude Code v2.1.248 或更新版本。2446隊友終端設定問題的 `agent_needs_input` 需要 Claude Code v2.1.248 或更新版本。

2457 2447 

2458<Note>2448<Note>

2459 `permission_prompt`、`idle_prompt`、`elicitation_dialog` 和 `elicitation_url_dialog` 類型與桌面通知共享其計時,因此在終端工作階段中您僅在您似乎遠離終端時看到它們:2449 `permission_prompt`、`idle_prompt`、`elicitation_dialog` 和 `elicitation_url_dialog` 類型與桌面通知共享其計時,因此在終端工作階段中,您僅在您似乎遠離終端時看到它們:

2460 2450 

2461 * 期望 `permission_prompt` 一旦您約六秒沒有輸入。計時器在權限提示出現時啟動,每次按鍵都會延遲它。若要在 Claude 要求許可使用工具時立即執行 hook,請改用 [PermissionRequest](#permissionrequest)。2451 * 期望 `permission_prompt` 一旦您約六秒沒有輸入。計時器在權限提示出現時啟動,每次按鍵都會延遲它。若要在 Claude 要求許可使用工具時立即執行 hook,請改用 [PermissionRequest](#permissionrequest)。

2462 * 期望 `idle_prompt` 約 60 秒後 Claude 完成回應,並且僅當您自那以後沒有輸入時。Claude Code 在等待 claude.ai 使用限制重設時不傳送 `idle_prompt`。當等待自己結束時,其中一個 `quota_auto_resume_*` 類型觸發。2452 * 期望 `idle_prompt` 約 60 秒後 Claude 完成回應,並且僅當您自那以後沒有輸入時。Claude Code 在等待 claude.ai 使用限制重設時不傳送 `idle_prompt`。當等待自己結束時,其中一個 `quota_auto_resume_*` 類型觸發。

2463 * 期望 `elicitation_dialog` 對於引誘表單,或 `elicitation_url_dialog` 對於瀏覽器 URL 請求,一旦您約六秒沒有輸入。兩者共享與 `permission_prompt` 相同的六秒閘門:計時器在對話出現時啟動,每次按鍵都會延遲它。2453 * 期望 `elicitation_dialog` 對於引出表單,或 `elicitation_url_dialog` 對於瀏覽器 URL 請求,一旦您約六秒沒有輸入。兩者共享與 `permission_prompt` 相同的六秒閘門:計時器在對話出現時啟動,每次按鍵都會延遲它。

2464 2454 

2465 在另一個對話在螢幕上時到達的權限請求或引誘與開啟的請求保持相同的六秒閘門,從請求到達時計時。其通知可以在請求仍在開啟對話後面等待時到達您。2455 權限請求或引出在另一個對話在螢幕上時到達會保持相同的六秒閘門,從請求到達時計時。其通知可以在請求仍在開啟對話後面等待時到達您。

2466</Note>2456</Note>

2467 2457 

2468Claude Code 在傳送權限請求給 Agent SDK 的 [`canUseTool` 回呼](/docs/zh-TW/agent-sdk/user-input) 的工作階段中以不同方式計時 `permission_prompt`,這是 Claude Desktop 和 VS Code 擴充功能如何託管 Claude Code 的方式:2458Claude Code 在工作階段中計時 `permission_prompt` 不同,其中它傳送權限請求給 Agent SDK 的 [`canUseTool` 回呼](/docs/zh-TW/agent-sdk/user-input),這是 Claude Desktop 和 VS Code 擴充功能託管 Claude Code 的方式:

2469 2459 

2470* 期望 `permission_prompt` 約六秒後 Claude 要求許可。Claude Code 在您輸入時不延遲它。2460* 期望 `permission_prompt` 約六秒後 Claude 要求許可。Claude Code 在您輸入時不延遲它。

2471* 如果您或 [PermissionRequest](#permissionrequest) hook 更早回答,Claude Code 不執行 `permission_prompt`。2461* 如果您或 [PermissionRequest](#permissionrequest) hook 更早回答,Claude Code 不執行 `permission_prompt`。


2506 Notification 輸入2496 Notification 輸入

2507</h4>2497</h4>

2508 2498 

2509除了 [常見輸入欄位](#common-input-fields) 外,Notification hooks 接收 `message` 與通知文字、可選 `title` 和 `notification_type` 指示哪個類型觸發。2499除了 [常見輸入欄位](#common-input-fields) 外,Notification hooks 接收 `message` 搭配通知文字、可選 `title` 和 `notification_type` 指示哪個類型觸發。

2510 2500 

2511```json theme={null}2501```json theme={null}

2512{2502{


2520}2510}

2521```2511```

2522 2512 

2523Notification hooks 無法阻止或修改通知。Claude Code 捨棄它們的 `systemMessage` 和 `continue` 欄位,但仍發出 [`terminalSequence`](#emit-terminal-notifications),這是桌面通知範例所依賴的。Notification hooks 用於副作用,例如將通知轉發到外部服務。2513Notification hooks 無法阻止或修改通知。Claude Code 捨棄它們的 `systemMessage` 和 `continue` 欄位,但仍然發出 [`terminalSequence`](#emit-terminal-notifications),這是桌面通知範例所依賴的。Notification hooks 用於副作用,例如將通知轉發到外部服務。

2524 2514 

2525<h3 id="subagentstart">2515<h3 id="subagentstart">

2526 SubagentStart2516 SubagentStart


2528 2518 

2529在 Claude 使用 Agent 工具生成子代理時執行,當 Claude [恢復子代理](/docs/zh-TW/sub-agents#resume-subagents) 時,以及每次進程內 [agent team](/docs/zh-TW/agent-teams) 隊友處理新訊息時執行。支援匹配器以按代理類型名稱篩選。對於內建代理,這是代理名稱,例如 `general-purpose`、`Explore` 或 `Plan`。對於 [自訂子代理](/docs/zh-TW/sub-agents),這是代理 frontmatter 中的 `name` 欄位,而不是檔案名稱。2519在 Claude 使用 Agent 工具生成子代理時執行,當 Claude [恢復子代理](/docs/zh-TW/sub-agents#resume-subagents) 時,以及每次進程內 [agent team](/docs/zh-TW/agent-teams) 隊友處理新訊息時執行。支援匹配器以按代理類型名稱篩選。對於內建代理,這是代理名稱,例如 `general-purpose`、`Explore` 或 `Plan`。對於 [自訂子代理](/docs/zh-TW/sub-agents),這是代理 frontmatter 中的 `name` 欄位,而不是檔案名稱。

2530 2520 

2531對於由 [外掛](/docs/zh-TW/plugins/overview) 提供的子代理,代理類型是外掛範圍的識別碼,例如 `my-plugin:reviewer`,而不是裸 frontmatter 名稱。冒號將外掛範圍的名稱放在正規表達式路徑上,因此使用 `^` 和 `$` 錨定匹配器以進行精確匹配:`^my-plugin:reviewer$`。2521對於由 [外掛](/docs/zh-TW/plugins/overview) 提供的子代理,代理類型是外掛範圍的識別碼,例如 `my-plugin:reviewer`,而不是裸露的 frontmatter 名稱。冒號將外掛範圍的名稱放在正規表達式路徑上,因此使用 `^` 和 `$` 錨定匹配器以進行精確匹配:`^my-plugin:reviewer$`。

2532 2522 

2533<h4 id="subagentstart-input">2523<h4 id="subagentstart-input">

2534 SubagentStart 輸入2524 SubagentStart 輸入

2535</h4>2525</h4>

2536 2526 

2537除了 [常見輸入欄位](#common-input-fields) 外,SubagentStart hooks 接收 `agent_id` 與子代理的唯一識別碼和 `agent_type` 與匹配器篩選的代理名稱。2527除了 [常見輸入欄位](#common-input-fields) 外,SubagentStart hooks 接收 `agent_id` 搭配子代理的唯一識別碼和 `agent_type` 搭配匹配器篩選的代理名稱。

2538 2528 

2539```json theme={null}2529```json theme={null}

2540{2530{


2547}2537}

2548```2538```

2549 2539 

2550SubagentStart hooks 無法阻止子代理建立,但它們可以將背景資訊注入子代理。除了 [所有 hooks 可用的 JSON 輸出欄位](#json-output) 外,您可以傳回:2540SubagentStart hooks 無法阻止子代理建立,但它們可以將背景資訊注入子代理。除了所有 hooks 可用的 [JSON 輸出欄位](#json-output) 外,您可以返回:

2551 2541 

2552| 欄位 | 描述 |2542| 欄位 | 描述 |

2553| :- | :- |2543| :- | :- |


2562}2552}

2563```2553```

2564 2554 

2565當 hook 再次對同一子代理執行時,Claude Code 僅在子代理的背景資訊還不包含來自較早執行的複本時注入傳回的背景資訊。在啟動時注入的複本保留在位置,保持子代理的 [prompt cache](/docs/zh-TW/prompt-caching#subagents-and-the-cache) 完整。在 [自動壓縮](/docs/zh-TW/sub-agents#auto-compaction) 捨棄該複本後,Claude Code 再次注入下一次執行的背景資訊。2555當 hook 再次對同一子代理執行時,Claude Code 僅在子代理的背景資訊還不包含來自較早執行的複本時注入返回的背景資訊。在啟動時注入的複本保留在位置,保持子代理的 [prompt cache](/docs/zh-TW/prompt-caching#subagents-and-the-cache) 完整。在 [自動壓縮](/docs/zh-TW/sub-agents#auto-compaction) 捨棄該複本後,Claude Code 再次注入下一次執行的背景資訊。

2566 2556 

2567<h3 id="subagentstop">2557<h3 id="subagentstop">

2568 SubagentStop2558 SubagentStop


2574 SubagentStop 輸入2564 SubagentStop 輸入

2575</h4>2565</h4>

2576 2566 

2577除了 [常見輸入欄位](#common-input-fields) 外,SubagentStop hooks 接收 `stop_hook_active`、`agent_id`、`agent_type`、`agent_transcript_path` 和 `last_assistant_message`。`agent_type` 欄位是用於匹配器篩選的值。`transcript_path` 是主工作階段的文字記錄,而 `agent_transcript_path` 是子代理自己的文字記錄,儲存在巢狀 `subagents/` 資料夾中。`last_assistant_message` 欄位包含子代理最終回應的文字內容,因此 hooks 可以存取它而不解析文字記錄檔案。2567除了 [常見輸入欄位](#common-input-fields) 外,SubagentStop hooks 接收 `stop_hook_active`、`agent_id`、`agent_type`、`agent_transcript_path` 和 `last_assistant_message`。`agent_type` 欄位是用於匹配器篩選的值。`transcript_path` 是主工作階段的文字記錄,而 `agent_transcript_path` 是子代理自己的文字記錄,儲存在巢狀 `subagents/` 資料夾中。`last_assistant_message` 欄位包含子代理最終回應的文字內容,因此 hooks 可以存取它而無需解析文字記錄檔案。

2578 2568 

2579並非每個 SubagentStop 事件都來自 Claude 生成的子代理。Claude Code 也為其某些自己的功能執行內部代理,例如 [prompt suggestions](/docs/zh-TW/interactive-mode#prompt-suggestions) 和 [`/btw` side questions](/docs/zh-TW/interactive-mode#side-questions-with-%2Fbtw),SubagentStop 在其中一個完成時觸發。對於這些事件,`agent_type` 是工作階段本身執行的代理名稱,例如使用 [`--agent`](/docs/zh-TW/cli-reference#cli-flags) 或 [`agent` 設定](/docs/zh-TW/settings-reference#agent) 設定的,以及當工作階段執行而不使用一個時的空字串。2569並非每個 SubagentStop 事件都來自 Claude 生成的子代理。Claude Code 也為其某些自己的功能執行內部代理,例如 [提示建議](/docs/zh-TW/interactive-mode#prompt-suggestions) 和 [`/btw` 側問題](/docs/zh-TW/interactive-mode#side-questions-with-%2Fbtw),當其中一個完成時 SubagentStop 觸發。對於這些事件,`agent_type` 是工作階段本身執行的代理名稱,例如使用 [`--agent`](/docs/zh-TW/cli-reference#cli-flags) 或 [`agent` 設定](/docs/zh-TW/settings-reference#agent) 設定的,以及當工作階段執行而不使用一個時的空字串。

2580 2570 

2581不命名代理類型的 `matcher` 不匹配空 `agent_type`。其匹配器為省略、`""`、`"*"` 或是匹配空字串的正規表達式的 hook 也對具有空 `agent_type` 的事件執行。2571不命名代理類型的 `matcher` 不匹配空 `agent_type`。其匹配器為省略、`""`、`"*"` 或是匹配空字串的正規表達式的 hook 也對具有空 `agent_type` 的事件執行。

2582 2572 

2583在 Claude Code v2.1.271 或更新版本上,使用 [`SubagentHandback`](/docs/zh-TW/tools-reference) 工具執行的子代理在停止之前透過該工具傳遞其報告。`last_assistant_message` 欄位然後保持子代理的結束文字(如果有),這不是傳遞的報告。報告是該呼叫的 `message` 輸入,`PreToolUse` 或 `PostToolUse` hook 匹配 `SubagentHandback` 在 `tool_input.message` 中接收。2573在 Claude Code v2.1.271 或更新版本上,使用 [`SubagentHandback`](/docs/zh-TW/tools-reference) 工具執行的子代理在停止之前透過該工具傳遞其報告。`last_assistant_message` 欄位然後保持子代理的結束文字(如果有),這不是傳遞的報告。報告是該呼叫的 `message` 輸入,`PreToolUse` 或 `PostToolUse` hook 匹配 `SubagentHandback` 在 `tool_input.message` 中接收。

2584 2574 

2585SubagentStop hooks 也接收 [Stop input](#stop-input) 下描述的 `background_tasks` 和 `session_crons` 陣列。兩個陣列的範圍是父工作階段,而不是子代理。2575SubagentStop hooks 也接收 [Stop 輸入](#stop-input) 下描述的 `background_tasks` 和 `session_crons` 陣列。兩個陣列都限定於父工作階段,而不是子代理。

2586 2576 

2587```json theme={null}2577```json theme={null}

2588{2578{


2601}2591}

2602```2592```

2603 2593 

2604SubagentStop hooks 使用與 [Stop hooks](#stop-decision-control) 相同的決策控制格式,包括 `hookSpecificOutput.additionalContext`,其 `hookEventName` 設定為 `"SubagentStop"`,用於保持子代理執行的非錯誤回饋。傳回 `decision: "block"` 搭配 `reason` 保持子代理執行並將 `reason` 作為其下一個指示傳遞給子代理。透過退出 2 阻止的 hook 以相同方式傳遞其 stderr 訊息。若要在子代理傳回後將背景資訊注入父工作階段,請改用 [PostToolUse](#posttooluse) hook 在 `Agent` 工具上。2594SubagentStop hooks 使用與 [Stop hooks](#stop-decision-control) 相同的決策控制格式,包括 `hookSpecificOutput.additionalContext` 搭配 `hookEventName` 設定為 `"SubagentStop"`,用於保持子代理執行的非錯誤反饋。返回 `decision: "block"` 搭配 `reason` 保持子代理執行並將 `reason` 作為其下一個指示傳遞給子代理。透過退出 2 阻止的 hook 以相同方式傳遞其 stderr 訊息。若要在子代理返回後將背景資訊注入父工作階段,請改用 [`PostToolUse`](#posttooluse) hook 在 `Agent` 工具上。

2605 2595 

2606<h3 id="taskcreated">2596<h3 id="taskcreated">

2607 TaskCreated2597 TaskCreated


2643 TaskCreated 決策控制2633 TaskCreated 決策控制

2644</h4>2634</h4>

2645 2635 

2646TaskCreated hook 可以透過兩種方式阻止建立。任一方式,Claude Code 刪除任務並將您的訊息傳回給 Claude 作為工具的錯誤。Claude Code 忽略此事件的 `continue: false`,Claude 繼續工作。2636TaskCreated hook 可以透過兩種方式阻止建立。任一方式,Claude Code 刪除任務並將您的訊息作為工具的錯誤返回給 Claude。Claude Code 忽略此事件的 `continue: false`,Claude 繼續工作。

2647 2637 

2648* **退出代碼 2**:Claude Code 將 stderr 文字傳回為訊息。2638* **退出代碼 2**:Claude Code 將 stderr 文字作為訊息返回。

2649* **JSON `{"decision": "block", "reason": "..."}`**:Claude Code 將 `reason` 傳回為訊息。2639* **JSON `{"decision": "block", "reason": "..."}`**:Claude Code 將 `reason` 作為訊息返回。

2650 2640 

2651此範例阻止主題不遵循所需格式的任務:2641此範例阻止主題不遵循所需格式的任務:

2652 2642 


2706 2696 

2707TaskCompleted hooks 支援兩種方式來控制任務完成:2697TaskCompleted hooks 支援兩種方式來控制任務完成:

2708 2698 

2709* **退出代碼 2**:任務未被標記為完成,stderr 訊息被反饋給模型作為回饋。2699* **退出代碼 2**:任務未被標記為完成,stderr 訊息被反饋給模型作為反饋。

2710* **JSON `{"continue": false, "stopReason": "..."}`**:當隊友完成其回合觸發事件時,完全停止隊友,匹配 `Stop` hook 行為。`stopReason` 顯示給使用者。當 `TaskUpdate` 工具觸發事件時,Claude Code 忽略 `continue: false`;退出代碼 2 仍然阻止完成。2700* **JSON `{"continue": false, "stopReason": "..."}`**:當隊友完成其回合觸發事件時,完全停止隊友,匹配 `Stop` hook 行為。`stopReason` 顯示給使用者。當 `TaskUpdate` 工具觸發事件時,Claude Code 忽略 `continue: false`;退出代碼 2 仍然阻止完成。

2711 2701 

2712此範例執行測試並在它們失敗時阻止任務完成:2702此範例執行測試並在它們失敗時阻止任務完成:


2732在主 Claude Code 代理完成回應時執行。如果停止發生是由於使用者中斷,則不執行。API 錯誤改為觸發 [StopFailure](#stopfailure)。2722在主 Claude Code 代理完成回應時執行。如果停止發生是由於使用者中斷,則不執行。API 錯誤改為觸發 [StopFailure](#stopfailure)。

2733 2723 

2734<Tip>2724<Tip>

2735 [`/goal`](/docs/zh-TW/goal) 命令是工作階段範圍提示型 Stop hook 的內建快捷方式。當您想讓 Claude 在不編寫 hook 配置的情況下朝著條件繼續工作時,使用它。2725 [`/goal`](/docs/zh-TW/goal) 命令是工作階段範圍提示型 Stop hook 的內建快捷方式。當您想要 Claude 在不編寫 hook 配置的情況下朝著條件繼續工作時,使用它。

2736</Tip>2726</Tip>

2737 2727 

2738<h4 id="stop-input">2728<h4 id="stop-input">

2739 Stop 輸入2729 Stop 輸入

2740</h4>2730</h4>

2741 2731 

2742除了 [常見輸入欄位](#common-input-fields) 外,Stop hooks 接收 `stop_hook_active`、`last_assistant_message`、`background_tasks` 和 `session_crons`。`stop_hook_active` 欄位在 Claude Code 已作為 stop hook 的結果繼續時為 `true`。檢查此值或處理文字記錄以避免在永遠不會解決的條件上阻止。Claude Code 在 8 個連續阻止後覆寫 hook 並結束回合。2732除了 [常見輸入欄位](#common-input-fields) 外,Stop hooks 接收 `stop_hook_active`、`last_assistant_message`、`background_tasks` 和 `session_crons`。`stop_hook_active` 欄位在 Claude Code 已作為 stop hook 的結果繼續時為 `true`。檢查此值或處理文字記錄以避免在永遠不會解決的條件上阻止。Claude Code 應用 8 連續繼續上限:在 stop hooks 連續繼續回合八次後,Claude Code 覆寫下一個阻止並結束回合。若要提高上限,設定 [`CLAUDE_CODE_STOP_HOOK_BLOCK_CAP`](/docs/zh-TW/env-vars)。

2743 2733 

2744`last_assistant_message` 欄位包含 Claude 最終回應的文字內容,因此 hooks 可以存取它而不解析文字記錄檔案。對於作用於剛完成回合的 hooks,例如朗讀或通知 hooks,使用此欄位而不是讀取 `transcript_path`:文字記錄檔案不保證在所有版本上的 Stop 時間包含最終訊息。2734`last_assistant_message` 欄位包含 Claude 最終回應的文字內容,因此 hooks 可以存取它而無需解析文字記錄檔案。對於作用於剛完成回合的 hooks,例如朗讀或通知 hooks,使用此欄位而不是讀取 `transcript_path`:文字記錄檔案不保證在所有版本的 Stop 時間包含最終訊息。

2745 2735 

2746`background_tasks` 和 `session_crons` 陣列讓 hooks 區分「工作階段完成」與「工作階段暫停等待背景工作喚醒它」。當任務登錄可到達時兩個陣列都存在,當沒有任何東西在飛行或排程時為空。2736`background_tasks` 和 `session_crons` 陣列讓 hooks 區分「工作階段完成」與「工作階段暫停等待背景工作喚醒它」。當任務登錄可到達時兩個陣列都存在,當沒有進行中或排程的內容時為空。

2747 2737 

2748`background_tasks` 中的每個項目描述一個進行中的任務,並使用這些欄位:2738`background_tasks` 中的每個項目描述一個進行中的任務,並使用這些欄位:

2749 2739 


2752| `id` | 任務識別碼 |2742| `id` | 任務識別碼 |

2753| `type` | 友善的任務類型標籤,例如 `shell`、`subagent`、`monitor`、`workflow`、`teammate`、`cloud session` 或 `MCP task`。每個標籤識別哪個 Claude Code 功能建立了任務。對於無法識別的類型,回退到原始判別式 |2743| `type` | 友善的任務類型標籤,例如 `shell`、`subagent`、`monitor`、`workflow`、`teammate`、`cloud session` 或 `MCP task`。每個標籤識別哪個 Claude Code 功能建立了任務。對於無法識別的類型,回退到原始判別式 |

2754| `status` | 目前任務狀態 |2744| `status` | 目前任務狀態 |

2755| `description` | 自由文字描述,上限 1000 個字元,當剪裁時在字串中有 `… [+N chars]` 標記 |2745| `description` | 自由文字描述,上限為 1000 個字元,當剪裁時在字串中有 `… [+N chars]` 標記 |

2756| `command` | Shell 命令行,上限 1000 個字元。僅對 `shell` 任務出現 |2746| `command` | Shell 命令行,上限為 1000 個字元。僅對 `shell` 任務出現 |

2757| `agent_type` | 子代理類型名稱。僅對 `subagent` 任務出現 |2747| `agent_type` | 子代理類型名稱。僅對 `subagent` 任務出現 |

2758| `server` | MCP 伺服器名稱。僅對 `monitor` 和 `MCP task` 任務出現 |2748| `server` | MCP 伺服器名稱。僅對 `monitor` 和 `MCP task` 任務出現 |

2759| `tool` | MCP 工具名稱。僅對 `monitor` 和 `MCP task` 任務出現 |2749| `tool` | MCP 工具名稱。僅對 `monitor` 和 `MCP task` 任務出現 |

2760| `name` | 工作流程名稱。僅對 `workflow` 任務出現 |2750| `name` | 工作流名稱。僅對 `workflow` 任務出現 |

2761 2751 

2762`session_crons` 中的每個項目描述一個工作階段範圍的排程喚醒,來自 `CronCreate`、`ScheduleWakeup` 和 `/loop`:2752`session_crons` 中的每個項目描述一個工作階段範圍的排程喚醒,來自 `CronCreate`、`ScheduleWakeup` 和 `/loop`:

2763 2753 


2765| :- | :- |2755| :- | :- |

2766| `id` | Cron 任務識別碼 |2756| `id` | Cron 任務識別碼 |

2767| `schedule` | Cron 表達式,例如 `0 9 * * 1-5` |2757| `schedule` | Cron 表達式,例如 `0 9 * * 1-5` |

2768| `recurring` | 對於其排程編碼單個觸發時間的一次性喚醒為 `false`,對於在每個匹配上重新觸發的任務為 `true` |2758| `recurring` | 對於一次性喚醒(其排程編碼單個觸發時間)為 `false`,對於在每個匹配上重新觸發的任務為 `true` |

2769| `prompt` | 當 cron 觸發時提交的提示,上限 1000 個字元,具有相同的 `… [+N chars]` 標記 |2759| `prompt` | 當 cron 觸發時提交的提示,上限為 1000 個字元,具有相同的 `… [+N chars]` 標記 |

2770 2760 

2771此範例顯示一個 Stop 輸入,具有一個進行中的 shell 任務和一個循環 cron:2761此範例顯示一個 Stop 輸入,具有一個進行中的 shell 任務和一個循環 cron:

2772 2762 


2803 Stop 決策控制2793 Stop 決策控制

2804</h4>2794</h4>

2805 2795 

2806`Stop` 和 `SubagentStop` hooks 可以控制 Claude 是否繼續。除了 [所有 hooks 可用的 JSON 輸出欄位](#json-output) 外,您的 hook 指令碼可以傳回這些事件特定的欄位:2796`Stop` 和 `SubagentStop` hooks 可以控制 Claude 是否繼續。除了所有 hooks 可用的 [JSON 輸出欄位](#json-output) 外,您的 hook 指令碼可以返回這些事件特定的欄位:

2807 2797 

2808| 欄位 | 描述 |2798| 欄位 | 描述 |

2809| :- | :- |2799| :- | :- |

2810| `decision` | `"block"` 防止 Claude 停止。省略以允許 Claude 停止 |2800| `decision` | `"block"` 防止 Claude 停止。省略以允許 Claude 停止 |

2811| `reason` | 當 `decision` 為 `"block"` 時需要。告訴 Claude 為什麼它應該繼續 |2801| `reason` | 當 `decision` 為 `"block"` 時需要。告訴 Claude 為什麼它應該繼續 |

2812| `hookSpecificOutput.additionalContext` | Claude 的非錯誤回饋。對話繼續,以便 Claude 可以作用於它,但與 `decision: "block"` 不同,它在文字記錄中顯示為 hook 回饋,而不是 hook 錯誤 |2802| `hookSpecificOutput.additionalContext` | Claude 的非錯誤反饋。對話繼續,以便 Claude 可以作用於它,但與 `decision: "block"` 不同,它在文字記錄中顯示為 hook 反饋,而不是 hook 錯誤 |

2813 2803 

2814透過退出 2 阻止的 hook 以與 `reason` 相同的方式路由:Claude 接收 stderr 訊息作為為什麼它應該繼續的說明。2804透過退出 2 阻止的 hook 路由方式與 `reason` 相同:Claude 接收 stderr 訊息作為為什麼它應該繼續的解釋。

2815 2805 

2816```json theme={null}2806```json theme={null}

2817{2807{


2820}2810}

2821```2811```

2822 2812 

2823當 hook 按設計工作並給予 Claude 指導時,使用 `additionalContext`,例如「在完成前執行測試套件」。它透過與 `decision: "block"` 相同的迴圈保護保持對話進行,即 `stop_hook_active` 輸入和 8 個連續繼續上限,但文字記錄將其標籤為 `Stop hook feedback`,不顯示 hook 錯誤通知:2813當 hook 按設計工作並給予 Claude 指導時,使用 `additionalContext`,例如「在完成前執行測試套件」。它透過與 `decision: "block"` 相同的迴圈保護保持對話進行,即 `stop_hook_active` 輸入和 8 連續繼續上限,但文字記錄將其標籤為 `Stop hook feedback`,不顯示 hook 錯誤通知:

2824 2814 

2825```json theme={null}2815```json theme={null}

2826{2816{


2835 StopFailure2825 StopFailure

2836</h3>2826</h3>

2837 2827 

2838在回合因 API 錯誤結束時執行,而不是 [Stop](#stop)。Claude Code 忽略 hook 的輸出和退出代碼,除了 [`terminalSequence`](#emit-terminal-notifications)。使用此來記錄失敗、傳送警報或在 Claude 因速率限制、驗證問題或其他 API 錯誤無法完成回應時採取復原動作。2828在回合因 API 錯誤結束時執行,而不是 [Stop](#stop)。Claude Code 忽略 hook 的輸出和退出代碼,除了 [`terminalSequence`](#emit-terminal-notifications)。使用此來記錄失敗、傳送警報或在 Claude 因速率限制、驗證問題或其他 API 錯誤無法完成回應時採取恢復動作。

2839 2829 

2840<h4 id="stopfailure-input">2830<h4 id="stopfailure-input">

2841 StopFailure 輸入2831 StopFailure 輸入

2842</h4>2832</h4>

2843 2833 

2844除了 [常見輸入欄位](#common-input-fields) 外,StopFailure hooks 接收 `error`、可選 `error_details` 和可選 `last_assistant_message`。`error` 欄位識別錯誤類型,用於匹配器篩選。2834除了 [常見輸入欄位](#common-input-fields) 外,StopFailure hooks 接收 `error`、可選的 `error_details` 和可選的 `last_assistant_message`。`error` 欄位識別錯誤類型,用於匹配器篩選。

2845 2835 

2846| 欄位 | 描述 |2836| 欄位 | 描述 |

2847| :- | :- |2837| :- | :- |


2900 2890 

2901TeammateIdle hooks 支援兩種方式來控制隊友行為:2891TeammateIdle hooks 支援兩種方式來控制隊友行為:

2902 2892 

2903* **退出代碼 2**:隊友接收 stderr 訊息作為回饋,並繼續工作而不是閒置。2893* **退出代碼 2**:隊友接收 stderr 訊息作為反饋,並繼續工作而不是閒置。

2904* **JSON `{"continue": false, "stopReason": "..."}`**:完全停止隊友,匹配 `Stop` hook 行為。`stopReason` 顯示給使用者。2894* **JSON `{"continue": false, "stopReason": "..."}`**:完全停止隊友,匹配 `Stop` hook 行為。`stopReason` 顯示給使用者。

2905 2895 

2906此範例檢查建置成品存在,然後允許隊友閒置:2896此範例檢查建置成品存在,然後允許隊友閒置:


2989}2979}

2990```2980```

2991 2981 

2992`policy_settings` 變更無法被阻止。當機器上的受管設定檔變更時,Hooks 仍對 `policy_settings` 來源觸發,因此您可以使用它們來記錄這些編輯,但任何阻止決策都會被忽略。這確保企業受管設定始終生效。當 [伺服器受管設定](/docs/zh-TW/server-managed-settings) 到達或重新整理時,Claude Code 不執行 `ConfigChange` hooks。2982`policy_settings` 變更無法被阻止。當機器上的受管設定檔變更時,Hooks 仍然對 `policy_settings` 來源觸發,因此您可以使用它們來記錄這些編輯,但任何阻止決策都被忽略。這確保企業受管設定始終生效。當 [伺服器受管設定](/docs/zh-TW/server-managed-settings) 到達或重新整理時,Claude Code 不執行 `ConfigChange` hooks。

2993 2983 

2994Claude Code 從 ConfigChange hook 的 JSON 輸出作用於阻止決策,並捨棄 `systemMessage` 和 `continue`。被阻止的變更不會向您或 Claude 呈現任何訊息,無論您使用 `reason` 還是退出 2 的 stderr 阻止。Claude Code 僅將一行寫入 debug log。2984Claude Code 從 ConfigChange hook 的 JSON 輸出作用於阻止決策,並捨棄 `systemMessage` 和 `continue`。被阻止的變更不會向您或 Claude 呈現任何訊息,無論您是使用 `reason` 還是在退出 2 時使用 stderr 阻止。Claude Code 僅將一行寫入 debug log。

2995 2985 

2996<h3 id="cwdchanged">2986<h3 id="cwdchanged">

2997 CwdChanged2987 CwdChanged

2998</h3>2988</h3>

2999 2989 

3000在主對話中的 shell 命令變更工作目錄時執行,例如當 Claude 執行 `cd` 命令時。使用此來對目錄變更做出反應:重新載入環境變數、啟用專案特定的工具鏈,或自動執行設定指令碼。與 [FileChanged](#filechanged) 配對,用於 [direnv](https://direnv.net/) 等管理每個目錄環境的工具。2990在主對話中的 shell 命令變更工作目錄時執行,例如當 Claude 執行 `cd` 命令時。使用此來對目錄變更做出反應:重新載入環境變數、啟用專案特定的工具鏈或自動執行設定指令碼。與 [FileChanged](#filechanged) 配對,用於 [direnv](https://direnv.net/) 等管理每個目錄環境的工具。

3001 2991 

3002CwdChanged hooks 可以存取 [`CLAUDE_ENV_FILE`](#persist-environment-variables)。寫入該檔案的變數會保留到後續 Bash 命令,直到下一個 CwdChanged 事件,當 Claude Code 清除它們時。2992CwdChanged hooks 可以存取 [`CLAUDE_ENV_FILE`](#persist-environment-variables)。寫入該檔案的變數會保留到後續 Bash 命令,直到下一個 CwdChanged 事件,當 Claude Code 清除它們時。

3003 2993 


3024 CwdChanged 輸出3014 CwdChanged 輸出

3025</h4>3015</h4>

3026 3016 

3027除了 [所有 hooks 可用的 JSON 輸出欄位](#json-output) 外,CwdChanged hooks 可以傳回 `watchPaths` 以動態設定 [FileChanged](#filechanged) 監視的檔案路徑:3017除了所有 hooks 可用的 [JSON 輸出欄位](#json-output) 外,CwdChanged hooks 可以返回 `watchPaths` 以動態設定 [FileChanged](#filechanged) 監視的檔案路徑:

3028 3018 

3029| 欄位 | 描述 |3019| 欄位 | 描述 |

3030| :- | :- |3020| :- | :- |

3031| `watchPaths` | 絕對路徑的陣列。替換目前的動態監視清單。來自您 `matcher` 配置的路徑始終被監視。進入新目錄時傳回空陣列是典型的 |3021| `watchPaths` | 絕對路徑陣列。替換目前的動態監視清單。來自您 `matcher` 配置的路徑始終被監視。進入新目錄時返回空陣列是典型的 |

3032 3022 

3033CwdChanged hooks 沒有決策控制。它們無法阻止目錄變更。3023CwdChanged hooks 沒有決策控制。它們無法阻止目錄變更。

3034 3024 


3038 DirectoryAdded3028 DirectoryAdded

3039</h3>3029</h3>

3040 3030 

3041在您使用 `/add-dir` 命令在工作階段中新增工作目錄後執行,或在 SDK 用戶端使用 `register_repo_root` 控制請求新增一個後執行。使用此來準備新增的儲存庫,例如安裝其相依性。3031在您使用 `/add-dir` 命令中途新增工作目錄後執行,或在 SDK 用戶端使用 `register_repo_root` 控制請求新增一個後執行。使用此來準備新增的儲存庫,例如安裝其相依性。

3042 3032 

3043Claude Code 在以下情況下不觸發此事件:3033Claude Code 在以下情況下不觸發此事件:

3044 3034 


3046* 您在 `/permissions` Workspace 標籤上新增目錄3036* 您在 `/permissions` Workspace 標籤上新增目錄

3047* 您新增已是工作目錄或在其內部的目錄3037* 您新增已是工作目錄或在其內部的目錄

3048 3038 

3049Claude Code 在重新整理 sandbox 和權限狀態後觸發 DirectoryAdded,因此沙箱工具在您的 hook 執行時已看到新目錄。Hook 命令本身執行未沙箱化。3039Claude Code 在重新整理沙箱和權限狀態後觸發 DirectoryAdded,因此沙箱工具在您的 hook 執行時已看到新目錄。Hook 命令本身執行未沙箱化。

3050 3040 

3051Claude Code 不等待 hook:新增立即完成,hook 在背景執行,具有 600 秒的預設逾時。3041Claude Code 不等待 hook:新增立即完成,hook 在背景執行,具有 600 秒的預設逾時。

3052 3042 


3065 3055 

3066| 欄位 | 描述 |3056| 欄位 | 描述 |

3067| :- | :- |3057| :- | :- |

3068| `directory` | 已新增目錄的絕對路徑 |3058| `directory` | 新增的目錄的絕對路徑 |

3069| `source` | 目錄如何被新增,`/add-dir` 為 `"slash_command"` 或 SDK 控制請求為 `"register_repo_root"` |3059| `source` | 目錄如何被新增,`/add-dir` 為 `"slash_command"` 或 SDK 控制請求為 `"register_repo_root"` |

3070 3060 

3071```json theme={null}3061```json theme={null}


3079}3069}

3080```3070```

3081 3071 

3082DirectoryAdded hooks 沒有決策控制。它們無法阻止新增,這在 hook 執行時已完成。Claude Code 從其 JSON 輸出捨棄 `continue` 欄位,並根據來源以不同方式呈現其餘部分:3072DirectoryAdded hooks 沒有決策控制。它們無法阻止新增,這在 hook 執行時已完成。Claude Code 從其 JSON 輸出捨棄 `continue` 欄位,並根據來源不同地呈現其餘部分:

3083 3073 

3084* `slash_command`:Claude Code 將 hook 的 `systemMessage` 作為背景資訊傳遞給 Claude,在下一個對話回合上,而不是向您顯示。失敗 hooks 的計數出現在文字記錄中。完整失敗輸出進入 debug log3074* `slash_command`:Claude Code 將 hook 的 `systemMessage` 作為背景資訊傳遞給 Claude,在下一個對話回合上,而不是向您顯示。失敗 hooks 的計數出現在文字記錄中。完整失敗輸出進入 debug log

3085* `register_repo_root`:Claude Code 僅將 `systemMessage` 輸出和失敗輸出寫入 debug log3075* `register_repo_root`:Claude Code 僅將 `systemMessage` 輸出和失敗輸出寫入 debug log


3088 FileChanged3078 FileChanged

3089</h3>3079</h3>

3090 3080 

3091在監視的檔案在磁碟上變更時執行。Claude Code 使用檔案系統監視器偵測變更,而不是檢查工具呼叫,因此無論什麼變更檔案,它都執行 hook:`Edit` 或 `Write` 工具呼叫、Claude 使用 `Bash` 執行的指令碼,或 Claude Code 外的程序。常見用途是在專案配置檔案變更時重新載入環境變數。3081在監視的檔案在磁碟上變更時執行。Claude Code 使用檔案系統監視器檢測變更,而不是檢查工具呼叫,因此無論什麼變更檔案,它都執行 hook:`Edit` 或 `Write` 工具呼叫、Claude 使用 `Bash` 執行的指令碼,或 Claude Code 外的程序。常見用途是在專案配置檔案變更時重新載入環境變數。

3092 3082 

3093此事件的 `matcher` 有兩個角色:3083此事件的 `matcher` 有兩個角色:

3094 3084 

3095* **建立監視清單**:值在 `|` 上分割,每個段落註冊為工作目錄中的字面檔案名稱,因此 `".envrc|.env"` 恰好監視這兩個檔案。正規表達式模式在這裡不有用:`^\.env` 之類的值會監視字面名稱為 `^\.env` 的檔案。3085* **建立監視清單**:值在 `|` 上分割,每個段註冊為工作目錄中的字面檔案名稱,因此 `".envrc|.env"` 監視恰好這兩個檔案。正規表達式模式在這裡不有用:`^\.env` 之類的值會監視字面名稱為 `^\.env` 的檔案。

3096* **篩選哪些 hooks 執行**:當監視的檔案變更時,相同的值使用標準 [匹配器規則](#matcher-patterns) 針對變更檔案的基名篩選哪個 hook 群組執行。3086* **篩選哪些 hooks 執行**:當監視的檔案變更時,相同的值使用標準 [匹配器規則](#matcher-patterns) 針對變更檔案的基名篩選哪些 hook 群組執行。

3097 3087 

3098此範例在任何變更後正規化 `data.csv` 中的行結尾,包括 `Bash` 命令或外部指令碼重寫檔案:3088此範例在任何變更後規範化 `data.csv` 中的行結尾,包括 `Bash` 命令或外部指令碼重寫檔案:

3099 3089 

3100```json theme={null}3090```json theme={null}

3101{3091{


3115}3105}

3116```3106```

3117 3107 

3118Hook 從 [JSON 輸入](#filechanged-input) 的 `file_path` 欄位讀取變更檔案的絕對路徑,在 stdin 上。其 `grep` 守衛測試與 `perl` 移除的相同,行尾的 CR,因此在正規化後執行退出而不觸及檔案。較鬆散的守衛會無限迴圈,因為 `perl -i` 重寫檔案,即使它替換任何東西,Claude Code 在每次重寫後執行 hook。將此指令碼儲存在 `/path/to/normalize-line-endings.sh` 並使其可執行:3108Hook 從 [JSON 輸入](#filechanged-input) 的 `file_path` 欄位讀取變更檔案的絕對路徑,在 stdin 上。其 `grep` 守衛測試 `perl` 移除的相同內容,行尾的 CR,因此在規範化後執行退出而不觸及檔案。較鬆散的守衛會無限迴圈,因為 `perl -i` 重寫檔案,即使它不替換任何內容,Claude Code 在每次重寫後執行 hook。將此指令碼儲存在 `/path/to/normalize-line-endings.sh` 並使其可執行:

3119 3109 

3120```bash theme={null}3110```bash theme={null}

3121#!/bin/bash3111#!/bin/bash


3125fi3115fi

3126```3116```

3127 3117 

3128若要確認 hook 有效,要求 Claude 使用 Bash 命令將 CRLF 行附加到 `data.csv`。Claude Code 執行 hook,檔案最終使用 LF 結尾。3118若要確認 hook 有效,要求 Claude 使用 `Bash` 命令將 CRLF 行附加到 `data.csv`。Claude Code 執行 hook,檔案最終具有 LF 結尾。

3129 3119 

3130若要監視您無法提前命名的檔案,從 hook 傳回 [`watchPaths`](#filechanged-output) 以動態更新監視清單。Claude Code 僅在某事命名要監視的檔案時啟動監視器,因此使用命名至少一個檔案的 FileChanged 群組播種清單,或使用 [SessionStart](#sessionstart-decision-control) 或 [CwdChanged](#cwdchanged) hook 傳回 `watchPaths`。匹配器仍篩選當監視的檔案變更時哪個 hook 群組執行,因此給處理動態路徑的群組一個省略的匹配器,它匹配每個監視的檔案,並不向監視清單新增任何東西。`"*"` 匹配器也匹配每個檔案,但 Claude Code 像任何其他值一樣在監視清單中註冊它,作為字面名稱為 `*` 的檔案。3120若要監視您無法提前命名的檔案,從 hook 返回 [`watchPaths`](#filechanged-output) 以動態更新監視清單。Claude Code 僅在某事命名要監視的檔案時啟動監視器,因此使用命名至少一個檔案的 FileChanged 群組播種清單,或使用 [SessionStart](#sessionstart-decision-control) 或 [CwdChanged](#cwdchanged) hook 返回 `watchPaths`。匹配器仍然篩選當監視的檔案變更時哪些 hook 群組執行,因此給處理動態路徑的群組一個省略的匹配器,它匹配每個監視的檔案,不向監視清單新增任何內容。`"*"` 匹配器也匹配每個檔案,但 Claude Code 像任何其他值一樣在監視清單中註冊它,作為字面名稱為 `*` 的檔案。

3131 3121 

3132FileChanged hooks 可以存取 [`CLAUDE_ENV_FILE`](#persist-environment-variables)。寫入該檔案的變數會保留到後續 Bash 命令,直到下一個 [CwdChanged](#cwdchanged) 事件,當 Claude Code 清除它們時。3122FileChanged hooks 可以存取 [`CLAUDE_ENV_FILE`](#persist-environment-variables)。寫入該檔案的變數會保留到後續 Bash 命令,直到下一個 [CwdChanged](#cwdchanged) 事件,當 Claude Code 清除它們時。

3133 3123 


3139 3129 

3140| 欄位 | 描述 |3130| 欄位 | 描述 |

3141| :- | :- |3131| :- | :- |

3142| `file_path` | 變更檔案的絕對路徑 |3132| `file_path` | 變更的檔案的絕對路徑 |

3143| `event` | 發生了什麼:修改檔案為 `"change"`、建立的檔案為 `"add"`,或刪除的檔案為 `"unlink"` |3133| `event` | 發生的事情:修改的檔案為 `"change"`、建立的檔案為 `"add"` 或刪除的檔案為 `"unlink"` |

3144 3134 

3145```json theme={null}3135```json theme={null}

3146{3136{


3157 FileChanged 輸出3147 FileChanged 輸出

3158</h4>3148</h4>

3159 3149 

3160除了 [所有 hooks 可用的 JSON 輸出欄位](#json-output) 外,FileChanged hooks 可以傳回 `watchPaths` 以動態更新監視的檔案路徑:3150除了所有 hooks 可用的 [JSON 輸出欄位](#json-output) 外,FileChanged hooks 可以返回 `watchPaths` 以動態更新監視的檔案路徑:

3161 3151 

3162| 欄位 | 描述 |3152| 欄位 | 描述 |

3163| :- | :- |3153| :- | :- |

3164| `watchPaths` | 絕對路徑的陣列。替換目前的動態監視清單。來自您 `matcher` 配置的路徑始終被監視。當您的 hook 指令碼根據變更檔案探索要監視的額外檔案時,使用此 |3154| `watchPaths` | 絕對路徑陣列。替換目前的動態監視清單。來自您 `matcher` 配置的路徑始終被監視。當您的 hook 指令碼根據變更的檔案發現要監視的額外檔案時,使用此 |

3165 3155 

3166FileChanged hooks 沒有決策控制。它們無法阻止檔案變更發生。3156FileChanged hooks 沒有決策控制。它們無法阻止檔案變更發生。

3167 3157 


3171 WorktreeCreate3161 WorktreeCreate

3172</h3>3162</h3>

3173 3163 

3174在建立 worktree 時執行,無論是從 `claude --worktree`、從 [使用 `isolation: "worktree"` 的子代理](/docs/zh-TW/sub-agents#choose-the-subagent-scope),或對於 Claude Code 在其自己的 worktree 中隔離的 [背景工作階段](/docs/zh-TW/agent-view#how-file-edits-are-isolated)。預設情況下,Claude Code 使用 `git worktree` 建立隔離的工作副本。配置 WorktreeCreate hook 替換該預設 git 行為,讓您使用不同的版本控制系統,如 SVN、Perforce 或 Mercurial。3164在建立 worktree 時執行,無論是從 `claude --worktree`、從 [子代理使用 `isolation: "worktree"`](/docs/zh-TW/sub-agents#choose-the-subagent-scope),還是對於 Claude Code 在其自己的 worktree 中隔離的 [背景工作階段](/docs/zh-TW/agent-view#how-file-edits-are-isolated)。預設情況下,Claude Code 使用 `git worktree` 建立隔離的工作副本。配置 WorktreeCreate hook 替換該預設 git 行為,讓您使用不同的版本控制系統,如 SVN、Perforce 或 Mercurial。

3175 3165 

3176因為 hook 完全替換預設行為,[`.worktreeinclude`](/docs/zh-TW/worktrees#copy-gitignored-files-into-worktrees) 不被處理。如果您需要將本機配置檔案(如 `.env`)複製到新 worktree,請在您的 hook 指令碼內執行。3166因為 hook 完全替換預設行為,[`.worktreeinclude`](/docs/zh-TW/worktrees#copy-gitignored-files-into-worktrees) 不被處理。如果您需要將本機配置檔案(如 `.env`)複製到新 worktree,請在您的 hook 指令碼內執行。

3177 3167 

3178Hook 必須傳回建立的 worktree 目錄的路徑。Claude Code 使用此路徑作為隔離工作階段的工作目錄。請參閱 [WorktreeCreate 輸出](#worktreecreate-output),了解每個 hook 類型如何傳回路徑。3168Hook 必須返回建立的 worktree 目錄的路徑。Claude Code 使用此路徑作為隔離工作階段的工作目錄。請參閱 [WorktreeCreate 輸出](#worktreecreate-output),了解每個 hook 類型如何返回路徑。

3179 3169 

3180Claude Code 作用於 hook 的成功和傳回的路徑,並捨棄 `systemMessage` 和 `continue`。3170Claude Code 作用於 hook 的成功和返回的路徑,並捨棄 `systemMessage` 和 `continue`。

3181 3171 

3182此範例建立 SVN 工作副本並列印路徑供 Claude Code 使用。將儲存庫 URL 替換為您自己的:3172此範例建立 SVN 工作副本並列印路徑供 Claude Code 使用。將儲存庫 URL 替換為您自己的:

3183 3173 


3198}3188}

3199```3189```

3200 3190 

3201Hook 從 stdin 上的 JSON 輸入讀取 worktree `name`,將新副本簽出到新目錄,並列印目錄路徑。最後一行的 `echo` 是 Claude Code 讀取為 worktree 路徑的內容。將任何其他輸出重新導向到 stderr,以便它不會干擾路徑。3191Hook 從 JSON 輸入讀取 worktree `name`,檢出新目錄中的新副本,並列印目錄路徑。最後一行的 `echo` 是 Claude Code 讀取為 worktree 路徑的內容。將任何其他輸出重定向到 stderr,以便它不會干擾路徑。

3202 3192 

3203<h4 id="worktreecreate-input">3193<h4 id="worktreecreate-input">

3204 WorktreeCreate 輸入3194 WorktreeCreate 輸入

3205</h4>3195</h4>

3206 3196 

3207除了 [常見輸入欄位](#common-input-fields) 外,WorktreeCreate hooks 接收 `name` 欄位。這是新 worktree 的 slug 識別碼,由使用者指定或自動產生,例如 `bold-oak-a3f2`。3197除了 [常見輸入欄位](#common-input-fields) 外,WorktreeCreate hooks 接收 `name` 欄位。這是新 worktree 的 slug 識別碼,由使用者指定或自動生成,例如 `bold-oak-a3f2`。

3208 3198 

3209```json theme={null}3199```json theme={null}

3210{3200{


3220 WorktreeCreate 輸出3210 WorktreeCreate 輸出

3221</h4>3211</h4>

3222 3212 

3223WorktreeCreate hooks 不使用標準允許/阻止決策模型。相反,hook 的成功或失敗決定結果。Hook 必須傳回建立的 worktree 目錄的路徑:3213WorktreeCreate hooks 不使用標準允許/阻止決策模型。相反,hook 的成功或失敗決定結果。Hook 必須返回建立的 worktree 目錄的路徑:

3224 3214 

3225* **命令 hooks** (`type: "command"`):將路徑列印為 stdout 的最後一個非空行。Claude Code 在讀取該行之前去除 ANSI 逸出代碼,因此在您的 `echo` 之前列印的 shell 啟動橫幅會被忽略。將任何其他 hook 輸出重新導向到 stderr。3215* **命令 hooks** (`type: "command"`):將路徑列印為 stdout 的最後一個非空行。Claude Code 在讀取該行之前去除 ANSI 逃逸代碼,因此在您的 `echo` 之前列印的 shell 啟動橫幅被忽略。將任何其他 hook 輸出重定向到 stderr。

3226* **HTTP hooks** (`type: "http"`):在回應主體中傳回 `{ "hookSpecificOutput": { "hookEventName": "WorktreeCreate", "worktreePath": "/absolute/path" } }`。3216* **HTTP hooks** (`type: "http"`):在回應主體中返回 `{ "hookSpecificOutput": { "hookEventName": "WorktreeCreate", "worktreePath": "/absolute/path" } }`。

3227 3217 

3228如果 hook 失敗或不產生路徑,worktree 建立失敗,出現錯誤。3218如果 hook 失敗或不產生路徑,worktree 建立失敗,出現錯誤。

3229 3219 

3230Claude Code 根據 hook 執行的目錄解決相對路徑,折疊其中的任何 `.` 或 `..` 段。如果結果路徑不是 Claude Code 可以進入的目錄,工作階段列印命名路徑的錯誤並以代碼 1 退出。3220Claude Code 根據 hook 執行的目錄解決相對路徑,折疊其中的任何 `.` 或 `..` 段。如果結果路徑不是 Claude Code 可以進入的目錄,工作階段列印命名路徑的錯誤並以代碼 1 退出。

3231 3221 

3232Claude Code 拒絕包含 `.` 或 `..` 段的絕對路徑,以及通過儲存庫根下方符號連結的任何路徑,因為提交到儲存庫的符號連結可能會將 worktree 重新導向到其外部。錯誤命名被拒絕的元件。傳回不通過儲存庫內符號連結的正規化路徑。在 v2.1.216 之前,worktree 建立遵循 hook 的路徑,而不進行此篩選。3222Claude Code 拒絕包含 `.` 或 `..` 段的絕對路徑,以及通過儲存庫根下方符號連結的任何路徑,因為提交到儲存庫的符號連結可能將 worktree 重定向到其外部。錯誤命名被拒絕的元件。返回不通過儲存庫內符號連結的規範化路徑。在 v2.1.216 之前,worktree 建立遵循 hook 的路徑,而不進行此篩選。

3233 3223 

3234<h3 id="worktreeremove">3224<h3 id="worktreeremove">

3235 WorktreeRemove3225 WorktreeRemove

3236</h3>3226</h3>

3237 3227 

3238在移除 worktree 時執行。這是 [WorktreeCreate](#worktreecreate) 的清理對應項。事件在以下情況下觸發:3228在移除 worktree 時執行。這是 [WorktreeCreate](#worktreecreate) 的清理對應物。事件在以下情況下觸發:

3239 3229 

3240* 您退出 `--worktree` 工作階段並選擇移除它3230* 您退出 `--worktree` 工作階段並選擇移除它

3241* 具有 `isolation: "worktree"` 的子代理完成3231* 具有 `isolation: "worktree"` 的子代理完成

3242* 您刪除 [背景工作階段](/docs/zh-TW/agent-view#what-deleting-a-session-removes),其 worktree hook 建立3232* 您刪除 [背景工作階段](/docs/zh-TW/agent-view#what-deleting-a-session-removes),其 worktree 由 hook 建立

3243 

3244對於基於 git 的 worktrees,Claude Code 使用 `git worktree remove` 自動處理清理。如果您為非 git 版本控制系統配置了 WorktreeCreate hook,請將其與 WorktreeRemove hook 配對以處理清理。沒有它,worktree 目錄會保留在磁碟上。

3245 3233 

3246Claude Code 捨棄 WorktreeRemove hook 的 [JSON 輸出欄位](#json-output),例如 `systemMessage` 和 `continue`。3234對於基於 git 的 worktrees,Claude Code 使用 `git worktree remove` 自動處理清理。如果您為非 git 版本控制系統配置了 WorktreeCreate hook,請將其與 WorktreeRemove hook 配對以處理清理。沒有它,worktree 目錄保留在磁碟上。

3247 3235 

3248對於背景工作階段刪除,Claude Code 在執行 hook 之前驗證儲存的 worktree 路徑,並拒絕儲存庫根下方是符號連結或通過符號連結的路徑。Hook 僅對仍包含檔案的 worktree 執行,當您在 [agent view](/docs/zh-TW/agent-view#what-deleting-a-session-removes) 中確認刪除時;對於這樣的 worktree,[`claude rm`](/docs/zh-TW/agent-view#manage-sessions-from-the-shell) 保持工作階段和 worktree。在 v2.1.216 之前,hook 在儲存的路徑上執行,而不進行這些檢查。3236對於背景工作階段刪除,Claude Code 在執行 hook 之前驗證儲存的 worktree 路徑,並拒絕是符號連結或通過儲存庫根下方符號連結的路徑。Hook 僅對仍包含檔案的 worktree 執行,當您在 [agent view](/docs/zh-TW/agent-view#what-deleting-a-session-removes) 中確認刪除時;對於這樣的 worktree,[`claude rm`](/docs/zh-TW/agent-view#manage-sessions-from-the-shell) 保持工作階段和 worktree。在 v2.1.216 之前,hook 在儲存的路徑上執行,而不進行這些檢查。

3249 3237 

3250Claude Code 將 WorktreeCreate 傳回的路徑作為 `worktree_path` 在 hook 輸入中傳遞。此範例讀取該路徑並移除目錄:3238Claude Code 將 WorktreeCreate 返回的路徑作為 `worktree_path` 在 hook 輸入中傳遞。此範例讀取該路徑並移除目錄:

3251 3239 

3252```json theme={null}3240```json theme={null}

3253{3241{


3270 WorktreeRemove 輸入3258 WorktreeRemove 輸入

3271</h4>3259</h4>

3272 3260 

3273除了 [常見輸入欄位](#common-input-fields) 外,WorktreeRemove hooks 接收 `worktree_path` 欄位,即被移除的 worktree 的絕對路徑。3261除了 [常見輸入欄位](#common-input-fields) 外,WorktreeRemove hooks 接收 `worktree_path` 欄位,這是正在移除的 worktree 的絕對路徑。

3274 3262 

3275```json theme={null}3263```json theme={null}

3276{3264{


3282}3270}

3283```3271```

3284 3272 

3285WorktreeRemove hook 的退出代碼決定結果。當 hook 以非零退出且 `worktree_path` 處的目錄仍存在時,移除失敗:3273WorktreeRemove hook 的退出代碼決定結果。當 hook 以非零退出且 `worktree_path` 處的目錄仍然存在時,移除失敗:

3286 3274 

3287* Worktree 保留在磁碟上,hook 的命令和 stderr 進入 [debug log](#debug-hooks)。3275* Worktree 保留在磁碟上,hook 的命令和 stderr 進入 [debug log](#debug-hooks)。

3288* 如果您刪除背景工作階段,工作階段也保留。[agent view](/docs/zh-TW/agent-view#what-deleting-a-session-removes) 中的拒絕訊息報告 hook 如何結束,例如 `exited 1`,引用其 stderr 的開頭,並說明再次刪除工作階段是否無論如何移除目錄。3276* 如果您刪除背景工作階段,工作階段也保留。[agent view](/docs/zh-TW/agent-view#what-deleting-a-session-removes) 中的拒絕訊息報告 hook 如何結束,例如 `exited 1`,引用其 stderr 的開頭,並說明再次刪除工作階段是否無論如何移除目錄。


3291 PreCompact3279 PreCompact

3292</h3>3280</h3>

3293 3281 

3294在 Claude Code 即將執行壓縮操作時執行。3282在 Claude Code 即將執行壓縮操作之前執行。

3295 3283 

3296匹配器值指示壓縮是手動還是自動觸發:3284匹配器值指示壓縮是手動還是自動觸發:

3297 3285 


3300| `manual` | `/compact` |3288| `manual` | `/compact` |

3301| `auto` | 當對話到達 [自動壓縮視窗](/docs/zh-TW/model-config#set-the-auto-compact-window) 時自動壓縮 |3289| `auto` | 當對話到達 [自動壓縮視窗](/docs/zh-TW/model-config#set-the-auto-compact-window) 時自動壓縮 |

3302 3290 

3303以代碼 2 退出以阻止壓縮。對於手動 `/compact`,stderr 訊息顯示給使用者。您也可以透過傳回 JSON 搭配 `"decision": "block"` 來阻止。3291以代碼 2 退出以阻止壓縮。對於手動 `/compact`,stderr 訊息顯示給使用者。您也可以透過返回 JSON 搭配 `"decision": "block"` 來阻止。

3304 3292 

3305阻止自動壓縮根據何時觸發有不同的效果。如果壓縮在背景限制之前主動觸發,Claude Code 跳過它,對話繼續未壓縮。如果壓縮被觸發以從 API 已傳回的背景限制錯誤復原,基礎錯誤呈現,目前請求失敗。3293阻止自動壓縮根據何時觸發有不同的效果。如果壓縮在背景限制之前主動觸發,Claude Code 跳過它,對話繼續未壓縮。如果壓縮被觸發以從 API 已返回的背景限制錯誤恢復,基礎錯誤呈現,目前請求失敗。

3306 3294 

3307Claude Code 捨棄 PreCompact hook 的 `systemMessage` 和 `continue` 欄位。3295Claude Code 捨棄 PreCompact hook 的 `systemMessage` 和 `continue` 欄位。

3308 3296 


3310 PreCompact 輸入3298 PreCompact 輸入

3311</h4>3299</h4>

3312 3300 

3313除了 [常見輸入欄位](#common-input-fields) 外,PreCompact hooks 接收 `trigger` 和 `custom_instructions`。對於 `manual`,`custom_instructions` 包含使用者傳遞到 `/compact` 的內容,當他們傳遞任何東西時為 `null`。對於 `auto`,`custom_instructions` 為 `null`。3301除了 [常見輸入欄位](#common-input-fields) 外,PreCompact hooks 接收 `trigger` 和 `custom_instructions`。對於 `manual`,`custom_instructions` 包含使用者傳遞到 `/compact` 的內容,當他們傳遞任何內容時為 `null`。對於 `auto`,`custom_instructions` 為 `null`。

3314 3302 

3315```json theme={null}3303```json theme={null}

3316{3304{


3327 PostCompact3315 PostCompact

3328</h3>3316</h3>

3329 3317 

3330在 Claude Code 完成壓縮操作後執行。使用此事件對新壓縮狀態做出反應,例如記錄產生的摘要或更新外部狀態。Claude Code 捨棄 PostCompact hook 的 `systemMessage` 和 `continue` 欄位。3318在 Claude Code 完成壓縮操作後執行。使用此事件對新壓縮狀態做出反應,例如記錄生成的摘要或更新外部狀態。Claude Code 捨棄 PostCompact hook 的 `systemMessage` 和 `continue` 欄位。

3331 3319 

3332與 `PreCompact` 相同的匹配器值適用:3320與 `PreCompact` 相同的匹配器值適用:

3333 3321 


3340 PostCompact 輸入3328 PostCompact 輸入

3341</h4>3329</h4>

3342 3330 

3343除了 [常見輸入欄位](#common-input-fields) 外,PostCompact hooks 接收 `trigger` 和 `compact_summary`。`compact_summary` 欄位包含壓縮操作產生的對話摘要。3331除了 [常見輸入欄位](#common-input-fields) 外,PostCompact hooks 接收 `trigger` 和 `compact_summary`。`compact_summary` 欄位包含壓縮操作生成的對話摘要。

3344 3332 

3345```json theme={null}3333```json theme={null}

3346{3334{


3366* `/model <name>` 和 `/model` 選擇器3354* `/model <name>` 和 `/model` 選擇器

3367* `Option+P` 或 `Alt+P` 模型選擇器3355* `Option+P` 或 `Alt+P` 模型選擇器

3368* `/config` 中的 Model 設定3356* `/config` 中的 Model 設定

3369* 當那改變工作階段的模型時開啟 [fast mode](/docs/zh-TW/fast-mode)3357* 當那改變工作階段的模型時打開 [fast mode](/docs/zh-TW/fast-mode)

3370* 來自 [Agent SDK](/docs/zh-TW/agent-sdk/typescript#query-object) 主機或 [Remote Control](/docs/zh-TW/remote-control) 的 `set_model` 請求,或 `apply_flag_settings` 請求中的模型變更3358* 來自 [Agent SDK](/docs/zh-TW/agent-sdk/typescript#query-object) 主機或 [Remote Control](/docs/zh-TW/remote-control) 的 `set_model` 請求,或 `apply_flag_settings` 請求中的模型變更

3371 3359 

3372Claude Code 不為它自己進行的切換執行 PreModelSwitch hooks,例如 [自動模型回退](/docs/zh-TW/model-config#automatic-model-fallback) 或恢復工作階段時恢復模型。這些變更僅到達 [PostModelSwitch](#postmodelswitch)。3360Claude Code 不為它自己進行的切換執行 PreModelSwitch hooks,例如 [自動模型回退](/docs/zh-TW/model-config#automatic-model-fallback) 或恢復工作階段時還原模型。這些變更僅到達 [PostModelSwitch](#postmodelswitch)。

3373 3361 

3374Claude Code 根據工作階段切換到的模型的規範名稱比較匹配器,忽略任何 `[1m]` 後綴。別名(如 `opus`)、日期模型 ID 和提供者特定 ID(如 Amazon Bedrock 模型 ID)都匹配它們解決到的一個規範名稱,因此 `claude-opus-5` 涵蓋 Opus 5 的每個拼寫。3362Claude Code 根據工作階段切換到的模型的規範名稱比較匹配器,忽略任何 `[1m]` 後綴。別名(如 `opus`)、日期模型 ID 和提供者特定 ID(如 Amazon Bedrock 模型 ID)都匹配它們解決到的一個規範名稱,因此 `claude-opus-5` 涵蓋 Opus 5 的每個拼寫。

3375 3363 

3376當 Claude Code 無法確定目標的規範名稱時,例如只有您的 [LLM gateway](/docs/zh-TW/llm-gateway) 知道的自訂模型 ID,它執行每個 PreModelSwitch hook,無論匹配器如何。阻止的 hook 應該從其輸入檢查 `to_model` 而不是僅依賴匹配器。3364當 Claude Code 無法確定目標的規範名稱時,例如只有您的 [LLM gateway](/docs/zh-TW/llm-gateway) 知道的自訂模型 ID,它執行每個 PreModelSwitch hook,無論匹配器如何。阻止的 hook 應該從其輸入檢查 `to_model` 而不是單獨依賴匹配器。

3377 3365 

3378將匹配器寫為精確名稱、`|` 分隔清單(如 `claude-opus-4-6|claude-opus-5`)或正規表達式(如 `.*opus.*`)。此範例使用精確名稱匹配器,也從 hook 輸入檢查 `to_model`,因此它拒絕切換到 Opus 4.6,透過以代碼 2 退出,並讓任何其他目標通過:3366將匹配器寫為精確名稱、`|` 分隔清單(如 `claude-opus-4-6|claude-opus-5`)或正規表達式(如 `.*opus.*`)。此範例使用精確名稱匹配器,也從 hook 輸入檢查 `to_model`,因此它拒絕切換到 Opus 4.6,透過以代碼 2 退出,並讓任何其他目標通過:

3379 3367 


3453| :- | :- | :- |3441| :- | :- | :- |

3454| `from_model` | string | 切換變更的模型 ID |3442| `from_model` | string | 切換變更的模型 ID |

3455| `to_model` | string | 切換變更為的模型 ID。匹配器根據此模型的規範名稱比較 |3443| `to_model` | string | 切換變更為的模型 ID。匹配器根據此模型的規範名稱比較 |

3456| `requested_model` | string or `null` | 請求命名的模型:別名(如 `opus`)、完整模型 ID,或當請求為預設模型時 `null` |3444| `requested_model` | string or `null` | 請求命名的模型:別名(如 `opus`)、完整模型 ID 或當請求用於預設模型時為 `null` |

3457| `source` | string | 請求來自何處:`/model <name>`、`/config` 中的 Model 設定或開啟 fast mode 的 `"command"`;模型選擇器的 `"picker"`;來自 Agent SDK 主機或 Remote Control 的 `set_model` 請求或 `apply_flag_settings` 請求中的模型變更的 `"sdk"` |3445| `source` | string | 請求來自何處:`/model <name>`、`/config` 中的 Model 設定或打開 fast mode 的 `"command"`;模型選擇器的 `"picker"`;來自 Agent SDK 主機或 Remote Control 的 `set_model` 請求或 `apply_flag_settings` 請求中的模型變更的 `"sdk"` |

3458| `context_tokens` | number | 下一個請求重新傳送為其提示的權杖:主對話中最後回應的輸入、快取讀取、快取建立和輸出權杖,結合。第一個回應前為 `0` |3446| `context_tokens` | number | 下一個請求重新傳送作為其提示的令牌:主對話中最後回應的輸入、快取讀取、快取建立和輸出令牌,合併。第一個回應前為 `0` |

3459| `prompt_cache_warm` | boolean | 目前模型的 prompt cache 是否可能仍然溫暖,意味著切換放棄它 |3447| `prompt_cache_warm` | boolean | 目前模型的 prompt cache 是否可能仍然溫暖,意味著切換放棄它 |

3460| `cache_ttl` | string | [Prompt cache 生命週期](/docs/zh-TW/prompt-caching#cache-lifetime) Claude Code 為此工作階段要求:`"5m"` 或 `"1h"` |3448| `cache_ttl` | string | [Prompt cache 生命週期](/docs/zh-TW/prompt-caching#cache-lifetime) Claude Code 為此工作階段要求:`"5m"` 或 `"1h"` |

3461| `estimated_cache_write_usd` | number | 在 `to_model` 上以 `cache_ttl` 速率將 `context_tokens` 寫入 prompt cache 的估計成本(美元),不包括下一個回應。伺服器可能不需要重新快取整個背景資訊,因此將其視為估計 |3449| `estimated_cache_write_usd` | number | 在 `to_model` 上以 `cache_ttl` 速率將 `context_tokens` 寫入 prompt cache 的估計成本(美元),不包括下一個回應。伺服器可能不需要重新快取整個背景資訊,因此將其視為估計 |

3462| `pricing` | string | Claude Code 如何定價 `estimated_cache_write_usd`:當您的組織配置了它們時以您組織自己的速率為 `"configured"`,以清單價格為 `"catalog"`,或當 `to_model` 沒有已知價格且 Claude Code 假設預設速率時為 `"default"` |3450| `pricing` | string | Claude Code 如何定價 `estimated_cache_write_usd`:當您的組織配置了它們時在您的組織自己的速率處為 `"configured"`、在列表價格處為 `"catalog"`,或當 `to_model` 沒有已知價格且 Claude Code 假設預設速率時為 `"default"` |

3463 3451 

3464此範例顯示在 Sonnet 5 執行的工作階段中 `/model opus` 的輸入:3452此範例顯示在 Sonnet 5 執行的工作階段中 `/model opus` 的輸入:

3465 3453 


3485 PreModelSwitch 決策控制3473 PreModelSwitch 決策控制

3486</h4>3474</h4>

3487 3475 

3488`PreModelSwitch` hooks 可以取消切換、要求使用者確認它,或讓它進行。退出代碼 2 或頂級 `decision: "block"` 取消切換。3476`PreModelSwitch` hooks 可以取消切換、要求使用者確認它或讓它進行。退出代碼 2 或頂級 `decision: "block"` 取消切換。

3489 3477 

3490為了更精細的控制,在 `hookSpecificOutput` 物件中傳回 `permissionDecision` 和 `permissionDecisionReason`,如 [PreToolUse](#pretooluse-decision-control)。`PreModelSwitch` 接受 `"allow"`、`"deny"` 和 `"ask"`。它不接受 `"defer"`、`updatedInput` 或 `additionalContext`。下表描述兩個欄位:3478為了更精細的控制,在 `hookSpecificOutput` 物件中返回 `permissionDecision` 和 `permissionDecisionReason`,如 [PreToolUse](#pretooluse-decision-control) 上。`PreModelSwitch` 接受 `"allow"`、`"deny"` 和 `"ask"`。它不接受 `"defer"`、`updatedInput` 或 `additionalContext`。下表描述兩個欄位:

3491 3479 

3492| 欄位 | 描述 |3480| 欄位 | 描述 |

3493| :- | :- |3481| :- | :- |

3494| `permissionDecision` | `"allow"` 進行並跳過 [Claude Code 在 prompt cache 溫暖時顯示的確認](/docs/zh-TW/prompt-caching#switching-models)。`"deny"` 取消切換。`"ask"` 提示使用者確認它 |3482| `permissionDecision` | `"allow"` 進行並跳過 [Claude Code 在 prompt cache 溫暖時顯示的確認](/docs/zh-TW/prompt-caching#switching-models)。`"deny"` 取消切換。`"ask"` 提示使用者確認它 |

3495| `permissionDecisionReason` | 對於 `"deny"`,顯示給使用者作為切換被阻止的原因,或作為 `set_model` 請求的錯誤傳回。對於 `"ask"`,在確認提示中顯示。對於 `"allow"` 忽略 |3483| `permissionDecisionReason` | 對於 `"deny"`,顯示給使用者作為切換被阻止的原因,或作為 `set_model` 請求的錯誤返回。對於 `"ask"`,在確認提示中顯示。對於 `"allow"` 忽略 |

3496 3484 

3497僅互動式工作階段中的 `/model` 可以顯示 `"ask"` 提示。在每個其他表面上,包括非互動模式搭配 `-p` 旗標、`/config` 和 `set_model` 請求,Claude Code 將 `"ask"` 視為拒絕。3485僅互動式工作階段中的 `/model` 可以顯示 `"ask"` 提示。在每個其他表面上,包括非互動模式搭配 `-p` 旗標、`/config` 和 `set_model` 請求,Claude Code 將 `"ask"` 視為拒絕。

3498 3486 

3499此範例要求使用者確認並引用來自 `context_tokens` 的權杖計數:3487此範例要求使用者確認並引用 `context_tokens` 中的令牌計數:

3500 3488 

3501```json theme={null}3489```json theme={null}

3502{3490{


3508}3496}

3509```3497```

3510 3498 

3511當多個 PreModelSwitch hooks 傳回不同的決策時,優先順序為 `deny` > `ask` > `allow`。3499當多個 PreModelSwitch hooks 返回不同的決策時,優先順序為 `deny` > `ask` > `allow`。

3512 3500 

3513Claude Code 無論決策如何都顯示您的 hook 傳回的任何 `systemMessage`,因此成本報告 hook 可以傳回 `{"systemMessage": "..."}` 並退出 0。3501Claude Code 無論決策如何都顯示您的 hook 返回的任何 `systemMessage`,因此成本報告 hook 可以返回 `{"systemMessage": "..."}` 並退出 0。

3514 3502 

3515在其逾時前未回應的 PreModelSwitch hook 會阻止切換。在 [PreToolUse](#timeouts) 上,相比之下,逾時的命令 hook 讓工具呼叫繼續。此事件的預設逾時為 30 秒。`PreModelSwitch` 僅執行 `command`、`http` 和 `mcp_tool` hooks,因此 `prompt` 和 `agent` 預設不適用。3503在其逾時前不回應的 PreModelSwitch hook 會阻止切換。在 [PreToolUse](#timeouts) 上,相比之下,逾時的命令 hook 讓工具呼叫繼續。此事件的預設逾時為 30 秒。`PreModelSwitch` 僅執行 `command`、`http` 和 `mcp_tool` hooks,因此 `prompt` 和 `agent` 預設不適用。

3516 3504 

3517以 0 或 2 以外的代碼退出且不列印 JSON 決策的 hook 不阻止:Claude Code 顯示其 stderr 並應用切換,如 [其他退出代碼](#other-exit-codes) 下所述。3505以 0 或 2 以外的代碼退出且列印無 JSON 決策的 hook 不阻止:Claude Code 顯示其 stderr 並應用切換,如 [其他退出代碼](#other-exit-codes) 下所述。

3518 3506 

3519<h3 id="postmodelswitch">3507<h3 id="postmodelswitch">

3520 PostModelSwitch3508 PostModelSwitch

3521</h3>3509</h3>

3522 3510 

3523在工作階段的模型變更後執行。使用它來給予 Claude 模型特定的指導,而不編輯每個 CLAUDE.md,例如僅在某些模型上適用的組織範圍指示。3511在工作階段的模型變更後執行。使用它給 Claude 模型特定的指導,而不編輯每個 CLAUDE.md,例如僅在某些模型上適用的組織範圍指示。

3524 3512 

3525PostModelSwitch 需要 Claude Code v2.1.251 或更新版本。它無法阻止,因為模型已變更。Claude Code 在這些變更後執行 PostModelSwitch hooks:3513PostModelSwitch 需要 Claude Code v2.1.251 或更新版本。它無法阻止,因為模型已變更。Claude Code 在這些變更後執行 PostModelSwitch hooks:

3526 3514 

3527* 您或用戶端要求的切換3515* 您或用戶端要求的切換

3528* [自動模型回退](/docs/zh-TW/model-config#automatic-model-fallback),改變工作階段的模型3516* [自動模型回退](/docs/zh-TW/model-config#automatic-model-fallback),改變工作階段的模型

3529* 設定(如 [`opusplan`](/docs/zh-TW/model-config#opusplan-model-setting))進入或離開 plan mode3517* 設定(如 [`opusplan`](/docs/zh-TW/model-config#opusplan-model-setting))進入或離開 plan mode

3530* Claude Code 在您恢復工作階段時恢復模型3518* Claude Code 在您恢復工作階段時還原模型

3531 3519 

3532當 [回退模型鏈](/docs/zh-TW/model-config#fallback-model-chains) 中的模型服務回合時,Claude Code 不執行 PostModelSwitch hooks,因為該替換持續一個回合,並保持工作階段的模型不變。3520當 [回退模型鏈](/docs/zh-TW/model-config#fallback-model-chains) 中的模型服務回合時,Claude Code 不執行 PostModelSwitch hooks,因為該替換持續一個回合並保持工作階段的模型不變。

3533 3521 

3534匹配器遵循與 [PreModelSwitch](#premodelswitch) 相同的規則:Claude Code 根據工作階段切換到的模型的規範名稱比較它。3522匹配器遵循與 [PreModelSwitch](#premodelswitch) 相同的規則:Claude Code 根據工作階段切換到的模型的規範名稱比較它。

3535 3523 


3559 PostModelSwitch 輸入3547 PostModelSwitch 輸入

3560</h4>3548</h4>

3561 3549 

3562PostModelSwitch hooks 接收與 [PreModelSwitch](#premodelswitch-input) 相同的欄位,其 `hook_event_name` 設定為 `"PostModelSwitch"` 和兩個更多 `source` 值:`"auto"` 對於自動回退或 Claude Code 自己進行的其他變更,以及 `"resume"` 對於您恢復工作階段時恢復的模型。3550PostModelSwitch hooks 接收與 [PreModelSwitch](#premodelswitch-input) 相同的欄位,`hook_event_name` 設定為 `"PostModelSwitch"` 和兩個更多 `source` 值:`"auto"` 對於自動回退或 Claude Code 自己進行的其他變更,以及 `"resume"` 對於您恢復工作階段時還原的模型。

3563 3551 

3564當 `source` 為 `"auto"` 時,`requested_model` 為 `null`。當 `source` 為 `"resume"` 時,它是 Claude Code 恢復的儲存模型設定。3552當 `source` 為 `"auto"` 時,`requested_model` 為 `null`。當 `source` 為 `"resume"` 時,它是 Claude Code 還原的儲存模型設定。

3565 3553 

3566<h4 id="postmodelswitch-decision-control">3554<h4 id="postmodelswitch-decision-control">

3567 PostModelSwitch 決策控制3555 PostModelSwitch 決策控制

3568</h4>3556</h4>

3569 3557 

3570Claude Code 採用您的 hook 的 [純文字 stdout](#exit-code-0) 在退出 0 上,或來自 JSON 輸出的 `additionalContext`,並在切換後的下一個請求中將其傳遞給 Claude。除了 [所有 hooks 可用的 JSON 輸出欄位](#json-output) 外,您可以傳回:3558Claude Code 採用您的 hook 的 [純文字 stdout](#exit-code-0) 在退出 0 時,或來自 JSON 輸出的 `additionalContext`,並在切換後的下一個請求中將其傳遞給 Claude。除了所有 hooks 可用的 [JSON 輸出欄位](#json-output) 外,您可以返回:

3571 3559 

3572| 欄位 | 描述 |3560| 欄位 | 描述 |

3573| :- | :- |3561| :- | :- |


3596 SessionEnd 輸入3584 SessionEnd 輸入

3597</h4>3585</h4>

3598 3586 

3599除了 [常見輸入欄位](#common-input-fields) 外,SessionEnd hooks 接收 `reason` 欄位,指示工作階段為什麼結束。請參閱上面的 [原因表](#sessionend) 以獲得所有值。3587除了 [常見輸入欄位](#common-input-fields) 外,SessionEnd hooks 接收 `reason` 欄位,指示工作階段為什麼結束。請參閱上面的 [原因表](#sessionend) 以獲取所有值。

3600 3588 

3601```json theme={null}3589```json theme={null}

3602{3590{


3610 3598 

3611SessionEnd hooks 沒有決策控制。它們無法阻止工作階段終止,但可以執行清理任務。Claude Code 捨棄它們的 [JSON 輸出欄位](#json-output),例如 `systemMessage`。3599SessionEnd hooks 沒有決策控制。它們無法阻止工作階段終止,但可以執行清理任務。Claude Code 捨棄它們的 [JSON 輸出欄位](#json-output),例如 `systemMessage`。

3612 3600 

3613SessionEnd hooks 的預設逾時為 1.5 秒。它在您退出、執行 `/clear` 或使用互動式 `/resume` 切換工作階段時適用。您可以透過兩種方式給予 hook 更多時間:3601SessionEnd hooks 的預設逾時為 1.5 秒。當您退出、執行 `/clear` 或使用互動式 `/resume` 切換工作階段時適用。您可以透過兩種方式給 hook 更多時間:

3614 3602 

3615* **每個 hook `timeout`**:在該 hook 的配置中設定 `timeout`。整體預算自動上升以符合您設定檔中最高的每個 hook `timeout`,最多 60 秒。如果您以這種方式提高預算,沒有自己 `timeout` 的 hook 仍保持預設。在外掛提供的 hooks 上設定的逾時不會提高預算。3603* **每個 hook `timeout`**:在該 hook 的配置中設定 `timeout`。整體預算自動上升以匹配您設定檔中最高的每個 hook `timeout`,最多 60 秒。如果您以這種方式提高預算,沒有自己的 `timeout` 的 hook 仍然保持預設。在外掛提供的 hooks 上設定的逾時不提高預算。

3616* **`CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS`**:將此環境變數設定為毫秒以明確覆寫預算。您設定的值也成為每個沒有自己 `timeout` 的 hook 的逾時。3604* **`CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS`**:在毫秒中設定此環境變數以明確覆寫預算。您設定的值也成為每個沒有自己的 `timeout` 的 hook 的逾時。

3617 3605 

3618此範例將預算設定為 5 秒:3606此範例將預算設定為 5 秒:

3619 3607 


3621CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS=5000 claude3609CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS=5000 claude

3622```3610```

3623 3611 

3624在 v2.1.268 之前,`CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS` 僅提高整體預算,沒有自己 `timeout` 的 hook 仍在 1.5 秒後被取消。3612在 v2.1.268 之前,`CLAUDE_CODE_SESSIONEND_HOOKS_TIMEOUT_MS` 僅提高整體預算,沒有自己的 `timeout` 的 hook 在 1.5 秒後仍被取消。

3625 3613 

3626<h3 id="elicitation">3614<h3 id="elicitation">

3627 Elicitation3615 Elicitation

3628</h3>3616</h3>

3629 3617 

3630在 MCP 伺服器要求使用者輸入中期任務時執行。預設情況下,Claude Code 為使用者回應顯示互動式對話。Hooks 可以攔截此請求並以程式設計方式回應,完全跳過對話。3618在 MCP 伺服器在任務中途要求使用者輸入時執行。預設情況下,Claude Code 為使用者回應顯示互動式對話。Hooks 可以攔截此請求並以程式設計方式回應,完全跳過對話。

3631 3619 

3632匹配器欄位根據 MCP 伺服器名稱匹配。3620匹配器欄位根據 MCP 伺服器名稱匹配。

3633 3621 


3637 3625 

3638除了 [常見輸入欄位](#common-input-fields) 外,Elicitation hooks 接收 `mcp_server_name`、`message` 和可選的 `mode`、`url`、`elicitation_id` 和 `requested_schema` 欄位。3626除了 [常見輸入欄位](#common-input-fields) 外,Elicitation hooks 接收 `mcp_server_name`、`message` 和可選的 `mode`、`url`、`elicitation_id` 和 `requested_schema` 欄位。

3639 3627 

3640對於表單模式引誘,最常見的情況:3628對於表單模式引出,最常見的情況:

3641 3629 

3642```json theme={null}3630```json theme={null}

3643{3631{


3657}3645}

3658```3646```

3659 3647 

3660對於 URL 模式引誘,用於基於瀏覽器的驗證:3648對於 URL 模式引出,用於基於瀏覽器的驗證:

3661 3649 

3662```json theme={null}3650```json theme={null}

3663{3651{


3676 Elicitation 輸出3664 Elicitation 輸出

3677</h4>3665</h4>

3678 3666 

3679若要以程式設計方式回應而不顯示對話,傳回具有 `hookSpecificOutput` 的 JSON 物件:3667若要以程式設計方式回應而不顯示對話,返回具有 `hookSpecificOutput` 的 JSON 物件:

3680 3668 

3681```json theme={null}3669```json theme={null}

3682{3670{


3695| `action` | `accept`、`decline`、`cancel` | 是否接受、拒絕或取消請求 |3683| `action` | `accept`、`decline`、`cancel` | 是否接受、拒絕或取消請求 |

3696| `content` | object | 要提交的表單欄位值。僅在 `action` 為 `accept` 時使用 |3684| `content` | object | 要提交的表單欄位值。僅在 `action` 為 `accept` 時使用 |

3697 3685 

3698退出代碼 2 拒絕引誘。Claude Code 不在任何地方顯示您的 stderr 訊息。3686退出代碼 2 拒絕引出。Claude Code 不在任何地方顯示您的 stderr 訊息。

3699 3687 

3700Claude Code 從 Elicitation hook 的 JSON 輸出作用於 `hookSpecificOutput`,並捨棄 `systemMessage` 和 `continue`。3688Claude Code 從 Elicitation hook 的 JSON 輸出作用於 `hookSpecificOutput`,並捨棄 `systemMessage` 和 `continue`。

3701 3689 


3703 ElicitationResult3691 ElicitationResult

3704</h3>3692</h3>

3705 3693 

3706在使用者回應 MCP 引誘後執行。Hooks 可以觀察、修改或阻止回應,然後將其傳送回 MCP 伺服器。3694在使用者回應 MCP 引出後執行。Hooks 可以觀察、修改或阻止回應,然後將其傳送回 MCP 伺服器。

3707 3695 

3708匹配器欄位根據 MCP 伺服器名稱匹配。3696匹配器欄位根據 MCP 伺服器名稱匹配。

3709 3697 


3731 ElicitationResult 輸出3719 ElicitationResult 輸出

3732</h4>3720</h4>

3733 3721 

3734若要覆寫使用者的回應,傳回具有 `hookSpecificOutput` 的 JSON 物件:3722若要覆寫使用者的回應,返回具有 `hookSpecificOutput` 的 JSON 物件:

3735 3723 

3736```json theme={null}3724```json theme={null}

3737{3725{


3804 3792 

3805基於提示的 hooks 不執行 Bash 命令,而是:3793基於提示的 hooks 不執行 Bash 命令,而是:

3806 3794 

38071. 將 hook 輸入和您的提示發送到 Claude 模型,預設為 Haiku37951. 將 hook 輸入和您的提示發送到 Claude 模型,預設為 Claude Code 用於[背景功能](/docs/zh-TW/costs#background-token-usage)的模型

38082. LLM 以包含決定的結構化 JSON 回應37962. LLM 以包含決定的結構化 JSON 回應

38093. Claude Code 自動處理決定37973. Claude Code 自動處理決定

3810 3798 


3814 3802 

3815將 `type` 設定為 `"prompt"` 並提供 `prompt` 字串而不是 `command`。使用 `$ARGUMENTS` 佔位符將 hook 的 JSON 輸入資料注入到您的提示文字中。3803將 `type` 設定為 `"prompt"` 並提供 `prompt` 字串而不是 `command`。使用 `$ARGUMENTS` 佔位符將 hook 的 JSON 輸入資料注入到您的提示文字中。

3816 3804 

3817此 `Stop` hook 詢問 LLM 在允許 Claude 完成之前是否應該停止:3805此 `Stop` hook 詢問 LLM 在允許 Claude 完成之前是否應該評估所有任務是否完成:

3818 3806 

3819```json theme={null}3807```json theme={null}

3820{3808{


3837| :- | :- | :- |3825| :- | :- | :- |

3838| `type` | 是 | 必須為 `"prompt"` |3826| `type` | 是 | 必須為 `"prompt"` |

3839| `prompt` | 是 | 要發送到 LLM 的提示文字。使用 `$ARGUMENTS` 作為 hook 輸入 JSON 的佔位符。如果 `$ARGUMENTS` 不存在,輸入 JSON 會附加到提示 |3827| `prompt` | 是 | 要發送到 LLM 的提示文字。使用 `$ARGUMENTS` 作為 hook 輸入 JSON 的佔位符。如果 `$ARGUMENTS` 不存在,輸入 JSON 會附加到提示 |

3840| `model` | 否 | 用於評估的模型。預設為快速模型 |3828| `model` | 否 | 用於評估的模型。預設為 Claude Code 用於[背景功能](/docs/zh-TW/costs#background-token-usage)的模型 |

3841| `timeout` | 否 | 逾時(秒)。預設值:30 |3829| `timeout` | 否 | 逾時(秒)。預設值:30 |

3842| `continueOnBlock` | 否 | 在適用的事件上,`true` 將 `ok: false` 原因反饋給 Claude 並繼續而不是結束轉換。預設值:`false`。請參閱[回應架構](#response-schema)以了解每個事件的行為 |3830| `continueOnBlock` | 否 | 在適用的事件上,`true` 將 `ok: false` 原因反饋給 Claude 並繼續而不是結束轉換。預設值:`false`。請參閱[回應架構](#response-schema)以了解每個事件的行為 |

3843 3831 

hooks-guide.md +75 −75

Details

494保持匹配器盡可能狹窄。在 `.*` 上進行匹配或留空匹配器會自動批准每個工具權限提示,包括檔案寫入和 shell 命令。有關決策欄位的完整集合,請參閱 [PermissionRequest 參考](/docs/zh-TW/hooks#permissionrequest-decision-control)。494保持匹配器盡可能狹窄。在 `.*` 上進行匹配或留空匹配器會自動批准每個工具權限提示,包括檔案寫入和 shell 命令。有關決策欄位的完整集合,請參閱 [PermissionRequest 參考](/docs/zh-TW/hooks#permissionrequest-decision-control)。

495 495 

496<h2 id="how-hooks-work">496<h2 id="how-hooks-work">

497 Hooks 如何工作497 hooks 如何運作

498</h2>498</h2>

499 499 

500Claude Code 在其生命週期的特定點觸發 hook 事件。當事件觸發時,Claude Code 會並行執行所有匹配的 hooks;請參閱 [Hook 處理程式欄位](/docs/zh-TW/hooks#hook-handler-fields)以了解如何處理重複的處理程式。下表顯示每個事件及其觸發時間:500Claude Code 在其生命週期的特定時間點觸發 hook 事件。當事件觸發時,Claude Code 會並行執行所有相符的 hooks;請參閱 [Hook 處理程式欄位](/docs/zh-TW/hooks#hook-handler-fields) 以了解重複處理程式的處理方式。下表顯示每個事件及其觸發時機:

501 501 

502| 事件 | 何時觸發 |502| 事件 | 何時觸發 |

503| :- | :- |503| :- | :- |


535| `ElicitationResult` | 在使用者回應 MCP 引出後,在回應傳送回伺服器之前 |535| `ElicitationResult` | 在使用者回應 MCP 引出後,在回應傳送回伺服器之前 |

536| `SessionEnd` | 當工作階段終止時 |536| `SessionEnd` | 當工作階段終止時 |

537 537 

538每個 hook 都有一個 `type` 來決定它如何執行。大多數 hooks 使用 `"type": "command"`,它執行 shell 命令。還有四種其他類型可用:538每個 hook 都有一個 `type` 決定其執行方式。大多數 hooks 使用 `"type": "command"`,它執行 shell 命令。還有四種其他類型可用:

539 539 

540* `"type": "http"`:POST 事件資料到 URL。請參閱 [HTTP hooks](#http-hooks)。540* `"type": "http"`:將事件資料 POST 到 URL。請參閱 [HTTP hooks](#http-hooks)。

541* `"type": "mcp_tool"`:在已連接的 MCP 伺服器上呼叫工具。請參閱 [MCP tool hooks](/docs/zh-TW/hooks#mcp-tool-hook-fields)。541* `"type": "mcp_tool"`:在已設定的 MCP 伺服器上呼叫工具。請參閱 [MCP tool hooks](/docs/zh-TW/hooks#mcp-tool-hook-fields)。

542* `"type": "prompt"`:單輪 LLM 評估。請參閱 [Prompt-based hooks](#prompt-based-hooks)。542* `"type": "prompt"`:單輪 LLM 評估。請參閱 [Prompt-based hooks](#prompt-based-hooks)。

543* `"type": "agent"`:具有工具存取的多輪驗證。Agent hooks 是實驗性的,可能會改變。請參閱 [Agent-based hooks](#agent-based-hooks)。543* `"type": "agent"`:具有工具存取的多輪驗證。Agent hooks 是實驗性的,可能會變更。請參閱 [Agent-based hooks](#agent-based-hooks)。

544 544 

545<h3 id="combine-results-from-multiple-hooks">545<h3 id="combine-results-from-multiple-hooks">

546 合併來自多個 hooks 的結果546 合併來自多個 hooks 的結果

547</h3>547</h3>

548 548 

549當多個 hooks 相符同一事件時,每個 hook 的命令都會執行到完成,然後 Claude Code 合併結果。一個 hook 傳回 `deny` 不會阻止同級 hooks 執行。不要依賴一個 hook 的 `deny` 來抑制另一個 hook 中的副作用。549當多個 hooks 相符同一事件時,每個 hook 的命令都會執行到完成,然後 Claude Code 才會合併結果。一個 hook 傳回 `deny` 不會阻止同層 hooks 執行。不要依賴一個 hook 的 `deny` 來抑制另一個 hook 中的副作用。

550 550 

551所有匹配的 hooks 完成後,Claude Code 合併它們的輸出。對於 `PreToolUse` 權限決策,最具限制性的答案獲勝,順序為 `deny`、`defer`、`ask`、`allow`。來自 `additionalContext` 的文字會從每個 hook 保留並一起傳遞給 Claude。551所有相符的 hooks 完成後,Claude Code 會合併其輸出。對於 `PreToolUse` 權限決定,最嚴格的答案適用,順序為 `deny`、`defer`、`ask`、`allow`。來自 `additionalContext` 的文字會從每個 hook 保留並一起傳遞給 Claude。

552 552 

553下面的範例在 `Bash` 上註冊了兩個 `PreToolUse` hooks。第一個將每個命令附加到日誌檔案並退出 0。第二個執行一個指令碼,當命令包含 `rm -rf` 時退出 2 以拒絕:553下面的範例在 `Bash` 上註冊兩個 `PreToolUse` hooks。第一個將每個命令附加到日誌檔案並以 0 結束。第二個執行一個指令碼,當命令包含 `rm -rf` 時以 2 結束以拒絕:

554 554 

555```json theme={null}555```json theme={null}

556{556{


574}574}

575```575```

576 576 

577當 Claude 嘗試執行 `rm -rf /tmp/build` 時,兩個 hooks 並行執行。日誌記錄 hook 將命令寫入 `~/.claude/bash.log` 並退出 0,這表示沒有決策。防護欄 hook 退出 2,這拒絕了工具呼叫。拒絕獲勝,所以 Claude Code 阻止命令並向 Claude 顯示防護欄的 stderr。日誌項仍然被寫入,因為日誌記錄 hook 已經執行。577當 Claude 嘗試執行 `rm -rf /tmp/build` 時,兩個 hooks 並行執行。日誌 hook 將命令寫入 `~/.claude/bash.log` 並以 0 結束,這表示沒有決定。護欄 hook 以 2 結束,這拒絕了工具呼叫。拒絕優先,所以 Claude Code 阻止命令並向 Claude 顯示護欄的 stderr。日誌項目仍然被寫入,因為日誌 hook 已經執行。

578 578 

579<h3 id="read-input-and-return-output">579<h3 id="read-input-and-return-output">

580 讀取輸入並傳回輸出580 讀取輸入並傳回輸出

581</h3>581</h3>

582 582 

583Hooks 透過 stdin、stdout、stderr 和退出代碼與 Claude Code 通訊。當事件觸發時,Claude Code 將事件特定的資料作為 JSON 傳遞到您的指令的 stdin。您的指令讀取該資料、執行其工作,並透過退出代碼告訴 Claude Code 接下來要做什麼。583Hooks 通過 stdin、stdout、stderr 和結束代碼與 Claude Code 通訊。當事件觸發時,Claude Code 將事件特定資料作為 JSON 傳遞到您的指令碼的 stdin。您的指令碼讀取該資料,執行其工作,並通過結束代碼告訴 Claude Code 接下來要做什麼。

584 584 

585<h4 id="hook-input">585<h4 id="hook-input">

586 Hook 輸入586 Hook 輸入

587</h4>587</h4>

588 588 

589每個事件都包含常見欄位,如 `session_id`(工作階段的唯一 ID)和 `cwd`(事件觸發時的工作目錄),但每個事件類型都新增不同的資料。當 Claude 執行 Bash 命令時,`PreToolUse` hook 在 stdin 上接收這些欄位:589每個事件都包含常見欄位,如 `session_id`(會話的唯一 ID)和 `cwd`(事件觸發時的工作目錄),但每個事件類型都會新增不同的資料。當 Claude 執行 Bash 命令時,`PreToolUse` hook 在 stdin 上接收這些欄位:

590 590 

591* `hook_event_name`:觸發 hook 的事件591* `hook_event_name`:觸發 hook 的事件

592* `tool_name`:Claude 即將使用的工具592* `tool_name`:Claude 即將使用的工具

593* `tool_input`:Claude 傳遞給工具的引數。對於 Bash,其 `command` 欄位保存 shell 命令。593* `tool_input`:Claude 傳遞給工具的引數。對於 Bash,其 `command` 欄位保存 shell 命令。

594 594 

595例如,`npm test` 命令的 hook 輸入看起來像這樣:595例如,`npm test` 命令的 hook 輸入如下所示:

596 596 

597```json theme={null}597```json theme={null}

598{598{


606}606}

607```607```

608 608 

609您的指令可以解析該 JSON 並對任何這些欄位採取行動。`UserPromptSubmit` hooks 改為取得 `prompt` 文字,`SessionStart` hooks 取得 `source`(`startup`、`resume`、`clear`、`compact` 或 `fork`),等等。有關共享欄位,請參閱參考中的 [Common input fields](/docs/zh-TW/hooks#common-input-fields),以及每個事件的部分以了解事件特定的架構。609您的指令碼可以解析該 JSON 並對任何這些欄位採取行動。`UserPromptSubmit` hooks 改為取得 `prompt` 文字,`SessionStart` hooks 取得 `startup`、`resume`、`clear`、`compact` 或 `fork` 的 `source`,以此類推。請參閱參考中的 [常見輸入欄位](/docs/zh-TW/hooks#common-input-fields) 以了解共享欄位,以及每個事件的部分以了解事件特定的結構描述。

610 610 

611<h4 id="hook-output">611<h4 id="hook-output">

612 Hook 輸出612 Hook 輸出

613</h4>613</h4>

614 614 

615您的指令透過寫入 stdout 或 stderr 並以特定代碼退出來告訴 Claude Code 接下來要做什麼。以下 `PreToolUse` hook 阻止命令:615您的指令碼通過寫入 stdout 或 stderr 並以特定代碼結束來告訴 Claude Code 接下來要做什麼。以下 `PreToolUse` hook 阻止命令:

616 616 

617```bash theme={null}617```bash theme={null}

618#!/bin/bash618#!/bin/bash


620COMMAND=$(echo "$INPUT" | jq -r '.tool_input.command')620COMMAND=$(echo "$INPUT" | jq -r '.tool_input.command')

621 621 

622if echo "$COMMAND" | grep -q "drop table"; then622if echo "$COMMAND" | grep -q "drop table"; then

623 echo "Blocked: dropping tables is not allowed" >&2 # stderr 變成 Claude 的回饋623 echo "Blocked: dropping tables is not allowed" >&2 # stderr becomes Claude's feedback

624 exit 2 # exit 2 = 阻止操作624 exit 2 # exit 2 = block the action

625fi625fi

626 626 

627exit 0 # exit 0 = 沒有決策;正常的權限流程適用627exit 0 # exit 0 = no decision; the normal permission flow applies

628```628```

629 629 

630退出代碼決定接下來會發生什麼:630結束代碼決定接下來會發生什麼:

631 631 

632* **Exit 0**:您的 hook 透過其退出代碼報告沒有異議。632* **結束代碼 0**:您的 hook 通過其結束代碼報告無異議。

633 * 對於 `PreToolUse` hook,這不會批准工具呼叫:正常的 [permission flow](/docs/zh-TW/permissions) 仍然適用。633 * 對於 `PreToolUse` hook,這不會核准工具呼叫:正常的 [權限流程](/docs/zh-TW/permissions) 仍然適用。

634 * 對於 `UserPromptSubmit`、`UserPromptExpansion`、`SessionStart` 和 `PostModelSwitch` hooks,Claude Code 將 stdout [視為純文字](/docs/zh-TW/hooks#exit-code-0)新增到 Claude 的上下文中。634 * 對於 `UserPromptSubmit`、`UserPromptExpansion`、`SessionStart` 和 `PostModelSwitch` hooks,Claude Code 將 stdout [視為純文字](/docs/zh-TW/hooks#exit-code-0) 新增到 Claude 的上下文。

635* **Exit 2**:Claude Code 阻止操作。寫入原因到 stderr。它落在哪裡取決於事件:某些事件將其提供給 Claude 作為回饋,以便它可以調整,其他事件向使用者顯示它,還有一些(例如 `ConfigChange` 和 `Elicitation`)不顯示任何訊息。某些事件無法被阻止:對於 `SessionStart` 和其他事件,exit 2 向使用者顯示 stderr,執行繼續。有關完整清單,請參閱 [exit code 2 behavior per event](/docs/zh-TW/hooks#exit-code-2-behavior-per-event)。635* **結束代碼 2**:Claude Code 阻止該動作。將原因寫入 stderr。它的位置取決於事件:某些事件將其提供給 Claude 作為回饋,以便它可以調整,其他事件將其顯示給使用者,還有一些(如 `ConfigChange` 和 `Elicitation`)不顯示任何訊息。某些事件無法被阻止:對於 `SessionStart` 和其他事件,結束代碼 2 向使用者顯示 stderr 並繼續執行。請參閱 [每個事件的結束代碼 2 行為](/docs/zh-TW/hooks#exit-code-2-behavior-per-event) 以取得完整清單。

636* **任何其他退出代碼**:對於大多數事件,結果取決於您的 hook 列印到 stdout 的內容:636* **任何其他結束代碼**:對於大多數事件,結果取決於您的 hook 列印到 stdout 的內容:

637 * 通過架構驗證的已解析物件:Claude Code 忽略退出代碼,JSON 單獨決定結果,hook 不被報告為錯誤。每個事件的例外(例如 `WorktreeCreate` 在任何非零退出時失敗)列在參考的 [Exit code output](/docs/zh-TW/hooks#exit-code-output) 部分中。637 * 通過結構描述驗證的已解析物件:Claude Code 忽略結束代碼,JSON 單獨決定結果,hook 不會報告為錯誤。每個事件的例外情況(如 `WorktreeCreate` 在任何非零結束代碼上失敗)列在參考的 [結束代碼輸出](/docs/zh-TW/hooks#exit-code-output) 部分中。

638 * 未通過架構驗證的已解析物件,或 Claude Code [嘗試解析為 JSON](/docs/zh-TW/hooks#exit-code-0) 但不是有效 JSON 的 stdout:非阻止錯誤;通知包含驗證或解析訊息。638 * 通過結構描述驗證失敗的已解析物件,或 Claude Code [嘗試解析為 JSON](/docs/zh-TW/hooks#exit-code-0) 但不是有效 JSON 的 stdout:非阻止性錯誤;通知包含驗證或解析訊息。

639 * Claude Code [視為純文字](/docs/zh-TW/hooks#exit-code-0)的 stdout,或空 stdout:操作作為非阻止錯誤進行。文字記錄顯示 `<hook name> hook error` 通知,然後是 stderr 的第一行,前綴為 `Failed with non-blocking status code:`。若要捕獲完整的 stderr,請使用 `claude --debug` 或在工作階段中執行 `/debug` 啟用 [debug logging](/docs/zh-TW/hooks#debug-hooks)。639 * Claude Code [視為純文字](/docs/zh-TW/hooks#exit-code-0) 的 stdout,或空 stdout:動作以非阻止性錯誤進行。文字記錄顯示 `<hook name> hook error` 通知,然後是 stderr 的第一行,前綴為 `Failed with non-blocking status code:`。要擷取完整的 stderr,請使用 `claude --debug` 或在會話中執行 `/debug` 來啟用 [偵錯日誌](/docs/zh-TW/hooks#debug-hooks)。

640 640 

641<h4 id="structured-json-output">641<h4 id="structured-json-output">

642 結構化 JSON 輸出642 結構化 JSON 輸出

643</h4>643</h4>

644 644 

645退出代碼只讓您阻止或保持沉默。為了獲得更多控制,退出 0 並改為將 JSON 物件列印到 stdout。645結束代碼只允許您阻止或保持沉默。為了獲得更多控制,結束代碼 0 並改為列印 JSON 物件到 stdout。

646 646 

647<Note>647<Note>

648 使用 exit 2 以 stderr 訊息阻止,或使用 exit 0 和 JSON 進行結構化控制。每個 hook 選擇一種方法。有關混合它們時會發生什麼,請參閱 [Exit code output](/docs/zh-TW/hooks#exit-code-output)。648 使用結束代碼 2 以 stderr 訊息阻止,或使用結束代碼 0 和 JSON 進行結構化控制。每個 hook 選擇一種方法。有關混合它們時會發生什麼,請參閱 [結束代碼輸出](/docs/zh-TW/hooks#exit-code-output)。

649</Note>649</Note>

650 650 

651例如,`PreToolUse` hook 可以拒絕工具呼叫並告訴 Claude 為什麼,或將其升級給使用者以獲得批准:651例如,`PreToolUse` hook 可以拒絕工具呼叫並告訴 Claude 原因,或將其升級給使用者以供核准:

652 652 

653```json theme={null}653```json theme={null}

654{654{


660}660}

661```661```

662 662 

663使用 `"deny"`,Claude Code 會取消工具呼叫並將 `permissionDecisionReason` 回饋給 Claude。663使用 `"deny"`,Claude Code 取消工具呼叫並將 `permissionDecisionReason` 回饋給 Claude。

664 664 

665在 `PreToolUse` 上,Claude Code 處理每個 `permissionDecision` 值如下:665在 `PreToolUse` 上,Claude Code 按如下方式處理每個 `permissionDecision` 值:

666 666 

667* `"allow"`:跳過互動式權限提示。拒絕和詢問規則(包括企業受管拒絕清單)仍然適用,標記為 [`requiresUserInteraction`](/docs/zh-TW/mcp#require-approval-for-a-specific-tool) 的 MCP 工具的提示,以及[您的組織設定為 `ask`](/docs/zh-TW/mcp#organization-controls-on-connector-tools) 的連接器工具在該設定到達 Claude Code 的工作階段中的提示也同樣適用667* `"allow"`:跳過互動式權限提示。拒絕和詢問規則(包括企業管理的拒絕清單)仍然適用,標記為 [`requiresUserInteraction`](/docs/zh-TW/mcp#require-approval-for-a-specific-tool) 的 MCP 工具的提示以及您的組織在該設定到達 Claude Code 的會話中設定為 `ask` 的連接器工具 [](/docs/zh-TW/mcp#organization-controls-on-connector-tools) 也是如此

668* `"deny"`:取消工具呼叫並將原因傳送給 Claude668* `"deny"`:取消工具呼叫並將原因傳送給 Claude

669* `"ask"`:照常向使用者顯示權限提示669* `"ask"`:向使用者正常顯示權限提示

670 670 

671第四個值 `"defer"` 在 [non-interactive mode](/docs/zh-TW/headless) 中使用 `-p` 旗標時可用。它以保留的工具呼叫退出程序,以便 Agent SDK 包裝器可以收集輸入並繼續。請參閱參考中的 [Defer a tool call for later](/docs/zh-TW/hooks#defer-a-tool-call-for-later)。671第四個值 `"defer"` 在 [非互動模式](/docs/zh-TW/headless) 中使用 `-p` 旗標時可用。它以保留的工具呼叫結束程序,以便 Agent SDK 包裝器可以收集輸入並繼續。請參閱參考中的 [延遲工具呼叫以供稍後使用](/docs/zh-TW/hooks#defer-a-tool-call-for-later)。

672 672 

673`PreModelSwitch` hook 傳回相同的 `permissionDecision` 欄位:`"allow"` 讓模型切換進行,`"deny"` 取消它。`"ask"` 在您在互動工作階段中執行 `/model` 時讓您確認切換;在其他地方,Claude Code 將 `"ask"` 視為拒絕。請參閱 [PreModelSwitch decision control](/docs/zh-TW/hooks#premodelswitch-decision-control)。673`PreModelSwitch` hook 傳回相同的 `permissionDecision` 欄位:`"allow"` 允許模型切換進行,`"deny"` 取消它。`"ask"` 在您在互動式會話中執行 `/model` 時要求您確認切換;在其他地方,Claude Code 將 `"ask"` 視為拒絕。請參閱 [PreModelSwitch 決定控制](/docs/zh-TW/hooks#premodelswitch-decision-control)。

674 674 

675其他事件使用不同的決策模式。例如,`PostToolUse` 和 `Stop` hooks 使用頂級 `decision: "block"` 欄位,而 `PermissionRequest` 使用 `hookSpecificOutput.decision.behavior`。有關按事件的完整分解,請參閱參考中的 [summary table](/docs/zh-TW/hooks#decision-control)。675其他事件使用不同的決定模式。例如,`PostToolUse` 和 `Stop` hooks 使用頂層 `decision: "block"` 欄位,而 `PermissionRequest` 使用 `hookSpecificOutput.decision.behavior`。請參閱參考中的 [摘要表](/docs/zh-TW/hooks#decision-control) 以取得按事件的完整細目。

676 676 

677對於 `UserPromptSubmit` hooks,改用 `hookSpecificOutput.additionalContext` 將文字注入到 Claude 的上下文中。將 `additionalContext` 嵌套在 `hookSpecificOutput` 內;如果您將其放在 JSON 的頂級,Claude Code 會無聲地忽略它。例如,此輸出將目前分支狀態新增到每個提示:677對於 `UserPromptSubmit` hooks,改為使用 `hookSpecificOutput.additionalContext` 將文字注入 Claude 的上下文。將 `additionalContext` 嵌套在 `hookSpecificOutput` 內;如果您將其放在 JSON 的頂層,Claude Code 會以無聲方式忽略它。例如,此輸出將目前分支狀態新增到每個提示:

678 678 

679```json theme={null}679```json theme={null}

680{680{


685}685}

686```686```

687 687 

688有關完整的輸出形狀(包括阻止提示和設定工作階段標題),請參閱 [UserPromptSubmit decision control](/docs/zh-TW/hooks#userpromptsubmit-decision-control)。688請參閱 [UserPromptSubmit 決定控制](/docs/zh-TW/hooks#userpromptsubmit-decision-control) 以取得完整的輸出形狀,包括阻止提示和設定會話標題。

689 689 

690具有 `type: "prompt"` 的 Hooks 以不同方式處理輸出:請參閱 [Prompt-based hooks](#prompt-based-hooks)。690具有 `type: "prompt"` 的 Hooks 以不同方式處理輸出:請參閱 [Prompt-based hooks](#prompt-based-hooks)。

691 691 


693 使用匹配器篩選 hooks693 使用匹配器篩選 hooks

694</h3>694</h3>

695 695 

696沒有匹配器,hook 會在其事件的每次出現時觸發。匹配器讓您縮小範圍。例如,如果您只想在檔案編輯後執行格式化程式(而不是在每次工具呼叫後),請將匹配器新增到您的 `PostToolUse` hook:696沒有匹配器,hook 會在其事件的每次出現時觸發。匹配器可讓您縮小範圍。例如,如果您只想在檔案編輯後執行格式化程式,而不是在每次工具呼叫後,請將匹配器新增到您的 `PostToolUse` hook:

697 697 

698```json theme={null}698```json theme={null}

699{699{


710}710}

711```711```

712 712 

713`"Edit|Write"` 匹配器只在 Claude 使用 `Edit` 或 `Write` 工具時觸發,而不是在它使用 `Bash`、`Read` 或任何其他工具時。逗號以相同方式分隔替代項,因此 `"Edit, Write"` 是等效的。請參閱 [Matcher patterns](/docs/zh-TW/hooks#matcher-patterns) 以了解純名稱和正規表達式如何被評估。713`"Edit|Write"` 匹配器只在 Claude 使用 `Edit` 或 `Write` 工具時觸發,不在使用 `Bash`、`Read` 或任何其他工具時觸發。逗號以相同方式分隔替代項,所以 `"Edit, Write"` 是等效的。請參閱 [匹配器模式](/docs/zh-TW/hooks#matcher-patterns) 以了解純名稱和正規表達式的評估方式。

714 714 

715<Note>715<Note>

716 Claude 也可以透過執行 shell 命令來建立或修改檔案。如果您的 hook 必須看到每個檔案變更(例如用於合規掃描或稽核日誌),請新增一個 [`Stop`](/docs/zh-TW/hooks#stop) hook,它每輪掃描一次工作樹。為了獲得每次呼叫的覆蓋範圍,也請匹配 `Bash|PowerShell` 並讓您的指令使用 `git status --porcelain` 列出修改和未追蹤的檔案。[PowerShell hook input section](/docs/zh-TW/hooks#powershell) 解釋了為什麼單獨匹配 `Bash` 是不夠的。若要在特定檔案在磁碟上變更時執行 hook(無論是什麼寫入它),請使用 [FileChanged](/docs/zh-TW/hooks#filechanged) hook。716 Claude 也可以通過執行 shell 命令來建立或修改檔案。如果您的 hook 必須看到每個檔案變更,例如用於合規性掃描或稽核日誌,請新增一個 [`Stop`](/docs/zh-TW/hooks#stop) hook,每輪掃描一次工作樹。對於每次呼叫的覆蓋範圍,也請匹配 `Bash|PowerShell` 並讓您的指令碼使用 `git status --porcelain` 列出修改和未追蹤的檔案。[PowerShell hook 輸入部分](/docs/zh-TW/hooks#powershell) 說明了為什麼僅匹配 `Bash` 是不夠的。要在特定檔案在磁碟上變更時執行 hook,無論是什麼寫入它,請使用 [FileChanged](/docs/zh-TW/hooks#filechanged) hook。

717</Note>717</Note>

718 718 

719每個事件類型都在特定欄位上進行匹配:719每個事件類型都在特定欄位上進行匹配:


721| 事件 | 匹配器篩選的內容 | 範例匹配器值 |721| 事件 | 匹配器篩選的內容 | 範例匹配器值 |

722| :- | :- | :- |722| :- | :- | :- |

723| `PreToolUse`、`PostToolUse`、`PostToolUseFailure`、`PermissionRequest`、`PermissionDenied` | 工具名稱 | `Bash`、`Edit\|Write`、`mcp__.*` |723| `PreToolUse`、`PostToolUse`、`PostToolUseFailure`、`PermissionRequest`、`PermissionDenied` | 工具名稱 | `Bash`、`Edit\|Write`、`mcp__.*` |

724| `SessionStart` | 工作階段如何開始 | `startup`、`resume`、`clear`、`compact`、`fork` |724| `SessionStart` | 會話如何開始 | `startup`、`resume`、`clear`、`compact`、`fork` |

725| `Setup` | 哪個 CLI 旗標觸發了設定 | `init`、`maintenance` |725| `Setup` | 哪個 CLI 旗標觸發設定 | `init`、`maintenance` |

726| `SessionEnd` | 工作階段為什麼結束 | `clear`、`resume`、`logout`、`prompt_input_exit`、`other` |726| `SessionEnd` | 會話為什麼結束 | `clear`、`resume`、`logout`、`prompt_input_exit`、`other` |

727| `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` |727| `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` |

728| `SubagentStart` | agent 類型 | `general-purpose`、`Explore`、`Plan` 或自訂 agent 名稱 |728| `SubagentStart` | 代理類型 | `general-purpose`、`Explore`、`Plan` 或自訂代理名稱 |

729| `PreCompact`、`PostCompact` | 什麼觸發了壓縮 | `manual`、`auto` |729| `PreCompact`、`PostCompact` | 什麼觸發了壓縮 | `manual`、`auto` |

730| `PreModelSwitch`、`PostModelSwitch` | 工作階段切換到的模型的規範名稱,如 [PreModelSwitch](/docs/zh-TW/hooks#premodelswitch) 下所述 | `claude-opus-5`、`claude-opus-4-6\|claude-opus-5`、`.*opus.*` |730| `PreModelSwitch`、`PostModelSwitch` | 會話切換到的模型的規範名稱,如 [PreModelSwitch](/docs/zh-TW/hooks#premodelswitch) 下所述 | `claude-opus-5`、`claude-opus-4-6\|claude-opus-5`、`.*opus.*` |

731| `SubagentStop` | agent 類型 | 與 `SubagentStart` 相同的值 |731| `SubagentStop` | 代理類型 | 與 `SubagentStart` 相同的值 |

732| `ConfigChange` | 配置來源 | `user_settings`、`project_settings`、`local_settings`、`policy_settings`、`skills` |732| `ConfigChange` | 設定來源 | `user_settings`、`project_settings`、`local_settings`、`policy_settings`、`skills` |

733| `DirectoryAdded` | 目錄如何被新增 | `slash_command`、`register_repo_root` |733| `DirectoryAdded` | 目錄如何被新增 | `slash_command`、`register_repo_root` |

734| `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` |734| `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` |

735| `InstructionsLoaded` | 載入原因 | `session_start`、`nested_traversal`、`path_glob_match`、`include`、`compact` |735| `InstructionsLoaded` | 載入原因 | `session_start`、`nested_traversal`、`path_glob_match`、`include`、`compact` |

736| `Elicitation` | MCP 伺服器名稱 | 您配置的 MCP 伺服器名稱 |736| `Elicitation` | MCP 伺服器名稱 | 您已設定的 MCP 伺服器名稱 |

737| `ElicitationResult` | MCP 伺服器名稱 | 與 `Elicitation` 相同的值 |737| `ElicitationResult` | MCP 伺服器名稱 | 與 `Elicitation` 相同的值 |

738| `FileChanged` | 字面檔案名稱以監視(請參閱 [FileChanged](/docs/zh-TW/hooks#filechanged)) | `.envrc\|.env` |738| `FileChanged` | 要監視的字面檔案名稱(請參閱 [FileChanged](/docs/zh-TW/hooks#filechanged)) | `.envrc\|.env` |

739| `UserPromptExpansion` | 命令名稱 | 您的 skill 或命令名稱 |739| `UserPromptExpansion` | 命令名稱 | 您的技能或命令名稱 |

740| `UserPromptSubmit`、`PostToolBatch`、`Stop`、`TeammateIdle`、`TaskCreated`、`TaskCompleted`、`WorktreeCreate`、`WorktreeRemove`、`CwdChanged`、`MessageDisplay` | 不支援匹配器 | 始終在每次出現時觸發 |740| `UserPromptSubmit`、`PostToolBatch`、`Stop`、`TeammateIdle`、`TaskCreated`、`TaskCompleted`、`WorktreeCreate`、`WorktreeRemove`、`CwdChanged`、`MessageDisplay` | 不支援匹配器 | 始終在每次出現時觸發 |

741 741 

742下面的標籤頁顯示不同事件類型上匹配器的更多範例。742下面的標籤顯示不同事件類型上的一些其他匹配器。

743 743 

744<Tabs>744<Tabs>

745 <Tab title="記錄每個 Bash 命令">745 <Tab title="記錄每個 Bash 命令">

746 只匹配 `Bash` 工具呼叫並將每個命令記錄到檔案。`PostToolUse` 事件在命令完成後觸發,因此 `tool_input.command` 包含執行的內容。hook 在 stdin 上接收事件資料作為 JSON,`jq -r '.tool_input.command'` 只提取命令字串,`>>` 將其附加到日誌檔案:746 僅匹配 `Bash` 工具呼叫並將每個命令記錄到檔案。`PostToolUse` 事件在命令完成後觸發,所以 `tool_input.command` 包含執行的內容。hook 在 stdin 上接收事件資料作為 JSON,`jq -r '.tool_input.command'` 僅提取命令字串,`>>` 將其附加到日誌檔案:

747 747 

748 ```json theme={null}748 ```json theme={null}

749 {749 {


765 </Tab>765 </Tab>

766 766 

767 <Tab title="匹配 MCP 工具">767 <Tab title="匹配 MCP 工具">

768 MCP 工具使用與內建工具不同的命名慣例:`mcp__<server>__<tool>`,其中 `<server>` 是 MCP 伺服器名稱,`<tool>` 是它提供的工具。例如,`mcp__github__search_repositories` 或 `mcp__filesystem__read_file`。來自 [plugin-bundled server](/docs/zh-TW/mcp#plugin-provided-mcp-servers) 的工具使用範圍伺服器段,例如 `mcp__plugin_my-plugin_db__query`。使用正規表達式匹配器來針對來自特定伺服器的所有工具,或使用 `mcp__.*__write.*` 之類的模式跨伺服器進行匹配。有關完整的範例列表,請參閱參考中的 [Match MCP tools](/docs/zh-TW/hooks#match-mcp-tools)。768 MCP 工具使用與內建工具不同的命名慣例:`mcp__<server>__<tool>`,其中 `<server>` 是 MCP 伺服器名稱,`<tool>` 是它提供的工具。例如,`mcp__github__search_repositories` 或 `mcp__filesystem__read_file`。來自 [plugin-bundled 伺服器](/docs/zh-TW/mcp#plugin-provided-mcp-servers) 的工具改為使用範圍伺服器區段,例如 `mcp__plugin_my-plugin_db__query`。使用正規表達式匹配器來針對來自特定伺服器的所有工具,或使用 `mcp__.*__write.*` 之類的模式跨伺服器進行匹配。請參閱參考中的 [匹配 MCP 工具](/docs/zh-TW/hooks#match-mcp-tools) 以取得完整的範例清單。

769 769 

770 下面的命令使用 `jq` 從 hook 的 JSON 輸入中提取工具名稱,並將其寫入 stderr。寫入 stderr 會保持 stdout 乾淨以用於 JSON 輸出,並將訊息發送到 [debug log](/docs/zh-TW/hooks#debug-hooks):770 下面的命令使用 `jq` 從 hook 的 JSON 輸入中提取工具名稱,並將其寫入 stderr。寫入 stderr 可保持 stdout 清潔以用於 JSON 輸出,並將訊息傳送到 [偵錯日誌](/docs/zh-TW/hooks#debug-hooks):

771 771 

772 ```json theme={null}772 ```json theme={null}

773 {773 {


788 ```788 ```

789 </Tab>789 </Tab>

790 790 

791 <Tab title="在工作階段結束時清理">791 <Tab title="在會話結束時清理">

792 `SessionEnd` 事件支援工作階段結束原因的匹配器。此 hook 只在 `clear` 時觸發(當您執行 `/clear` 時),而不是在正常退出時:792 `SessionEnd` 事件支援會話結束原因的匹配器。此 hook 只在 `clear` 原因上觸發,在您執行 `/clear` 時設定,而不是在正常結束時:

793 793 

794 ```json theme={null}794 ```json theme={null}

795 {795 {


815 使用 `if` 欄位按工具名稱和引數篩選815 使用 `if` 欄位按工具名稱和引數篩選

816</h4>816</h4>

817 817 

818`if` 欄位使用 [permission rule syntax](/docs/zh-TW/permissions) 按工具名稱和引數一起篩選 hooks,因此 hook 程序只在工具呼叫相符時生成。這超越了 `matcher`,它只在工具名稱級別篩選。818`if` 欄位使用 [權限規則語法](/docs/zh-TW/permissions) 按工具名稱和引數一起篩選 hooks,因此 hook 程序只在工具呼叫相符時生成。這超越了 `matcher`,它只在工具名稱級別按工具名稱篩選。

819 819 

820例如,這個配置只在 Claude 使用 `git` 命令而不是所有 Bash 命令時執行 hook:820例如,此設定只在 Claude 使用 `git` 命令而不是所有 Bash 命令時執行 hook:

821 821 

822```json theme={null}822```json theme={null}

823{823{


840 840 

841您的 hook 命令是否執行取決於您的 `if` 模式的形狀和 Claude 正在呼叫的 Bash 命令:841您的 hook 命令是否執行取決於您的 `if` 模式的形狀和 Claude 正在呼叫的 Bash 命令:

842 842 

843| `if` 模式 | Bash 命令 | Hook 執行? | 為什麼 |843| `if` 模式 | Bash 命令 | Hook 執行? | 原因 |

844| :- | :- | :- | :- |844| :- | :- | :- | :- |

845| `Bash(git *)` | `git push` | 是 | 命令名稱相符 |845| `Bash(git *)` | `git push` | 是 | 命令名稱相符 |

846| `Bash(git *)` | `npm test && git push` | 是 | 每個子命令都被檢查;`git push` 相符 |846| `Bash(git *)` | `npm test && git push` | 是 | 每個子命令都被檢查;`git push` 相符 |


848| `Bash(git *)` | `echo $(date)` | 否 | 沒有子命令相符 `git *` |848| `Bash(git *)` | `echo $(date)` | 否 | 沒有子命令相符 `git *` |

849| `Bash(git push *)` | `echo $(date)` | 是 | 指定超過命令名稱的模式在 `$()`、反引號或 `$VAR` 上執行 hook |849| `Bash(git push *)` | `echo $(date)` | 是 | 指定超過命令名稱的模式在 `$()`、反引號或 `$VAR` 上執行 hook |

850 850 

851當 Claude Code 無法確定 Bash 輸入執行哪些命令時,它會無論如何執行您的 hook。[Bash matching table](/docs/zh-TW/hooks#bash-if-matching) 涵蓋 Claude Code 可以和不能按子命令縮小的命令形狀。因為篩選器是盡力而為,請使用 [permission system](/docs/zh-TW/permissions) 而不是 hook 來強制執行硬允許或拒絕。851當 Claude Code 無法確定 Bash 輸入執行哪些命令時,無論模式如何,它都會執行您的 hook。[Bash 匹配表](/docs/zh-TW/hooks#bash-if-matching) 涵蓋 Claude Code 可以和不能按子命令縮小的命令形狀。因為篩選是盡力而為,請使用 [權限系統](/docs/zh-TW/permissions) 而不是 hook 來強制執行硬允許或拒絕。

852 852 

853`if` 欄位接受與權限規則相同的模式:`"Bash(git *)"`、`"Edit(*.ts)"` 等。若要匹配多個工具名稱,請使用每個都有自己的 `if` 值的單獨處理程式,或在 `matcher` 級別進行匹配,其中支援管道交替。853`if` 欄位接受與權限規則相同的模式:`"Bash(git *)"`、`"Edit(*.ts)"` 等。要匹配多個工具名稱,請使用各自具有自己 `if` 值的單獨處理程式,或在支援管道替代的 `matcher` 級別進行匹配。

854 854 

855`if` 只適用於工具事件:`PreToolUse`、`PostToolUse`、`PostToolUseFailure`、`PermissionRequest` 和 `PermissionDenied`。將其新增到任何其他事件會防止 hook 執行。855`if` 只適用於工具事件:`PreToolUse`、`PostToolUse`、`PostToolUseFailure`、`PermissionRequest` 和 `PermissionDenied`。將其新增到任何其他事件會防止 hook 執行。

856 856 

857<h3 id="configure-hook-location">857<h3 id="configure-hook-location">

858 配置 hook 位置858 設定 hook 位置

859</h3>859</h3>

860 860 

861您新增 hook 的位置決定了其範圍:861您新增 hook 的位置決定其範圍:

862 862 

863| 位置 | 範圍 | 可共享 |863| 位置 | 範圍 | 可共享 |

864| :- | :- | :- |864| :- | :- | :- |

865| `~/.claude/settings.json` | 您的所有專案 | 否,本機到您的機器 |865| `~/.claude/settings.json` | 您的所有專案 | 否,本機到您的機器 |

866| `.claude/settings.json` | 單個專案 | 是,可以提交到儲存庫 |866| `.claude/settings.json` | 單一專案 | 是,可以提交到儲存庫 |

867| `.claude/settings.local.json` | 單個專案 | 否,gitignored 當 Claude Code 建立它時 |867| `.claude/settings.local.json` | 單一專案 | 否,當 Claude Code 將設定儲存到它時被 gitignored |

868| 受管理的原則設定 | 組織範圍 | 是,由管理員控制 |868| 受管理的原則設定 | 組織範圍 | 是,由管理員控制 |

869| [Plugin](/docs/zh-TW/plugins/overview) `hooks/hooks.json` | 啟用外掛時 | 是,與外掛捆綁 |869| [Plugin](/docs/zh-TW/plugins/overview) `hooks/hooks.json` | 啟用 plugin 時 | 是,與 plugin 一起打包 |

870| [Skill](/docs/zh-TW/skills) frontmatter | 一旦 skill 被呼叫,工作階段的其餘部分。請參閱 [Hooks in skills and agents](/docs/zh-TW/hooks#hooks-in-skills-and-agents) | 是,在 skill 檔案中定義 |870| [Skill](/docs/zh-TW/skills) frontmatter | 叫用技能後的會話其餘部分。請參閱 [Hooks in skills and agents](/docs/zh-TW/hooks#hooks-in-skills-and-agents) | 是,在技能檔案中定義 |

871| [Subagent](/docs/zh-TW/sub-agents) frontmatter | 當該 subagent 執行時 | 是,在 subagent 檔案中定義 |871| [Subagent](/docs/zh-TW/sub-agents) frontmatter | 該 subagent 執行時 | 是,在 subagent 檔案中定義 |

872 872 

873在 Claude Code 中執行 [`/hooks`](/docs/zh-TW/hooks#the-%2Fhooks-menu) 以瀏覽按事件分組的所有配置的 hooks。873在 Claude Code 中執行 [`/hooks`](/docs/zh-TW/hooks#the-%2Fhooks-menu) 以瀏覽按事件分組的所有已設定 hooks。

874 874 

875若要禁用 hooks,請在設定檔中設定 `"disableAllHooks": true`。Claude Code 讀取 [settings precedence](/docs/zh-TW/hooks#disable-or-remove-hooks) 適用後剩下的值,因此專案的設定檔可以覆蓋您的。在受管理的設定中配置的 Hooks 仍會執行,除非 `disableAllHooks` 也在那裡設定。有關每個級別的完整範圍,請參閱 [`disableAllHooks`](/docs/zh-TW/settings-reference#disableallhooks)。875要停用 hooks,請在您的設定檔案中設定 `"disableAllHooks": true`。Claude Code 讀取 [設定優先順序](/docs/zh-TW/hooks#disable-or-remove-hooks) 適用後剩下的值,因此專案的設定檔案可以覆蓋您的。在受管理的設定中設定的 Hooks 仍然執行,除非 `disableAllHooks` 也在那裡設定。對於每個級別的完整範圍,請參閱 [`disableAllHooks`](/docs/zh-TW/settings-reference#disableallhooks)。

876 876 

877如果您在 Claude Code 執行時直接編輯設定檔,檔案監視程式通常會自動選取 hook 變更。877如果您在 Claude Code 執行時直接編輯設定檔案,檔案監視程式通常會自動選取 hook 變更。

878 878 

879<h2 id="prompt-based-hooks">879<h2 id="prompt-based-hooks">

880 基於提示的 hooks880 基於提示的 hooks

881</h2>881</h2>

882 882 

883對於需要判斷而不是確定性規則的決策,使用 `type: "prompt"` hooks。Claude Code 不執行 shell 命令,而是將您的提示和 hook 的輸入資料傳送到 Claude 模型(預設為 Haiku)以做出決策。如果您需要更多功能,可以使用 `model` 欄位指定不同的模型。883對於需要判斷而不是確定性規則的決策,使用 `type: "prompt"` hooks。Claude Code 不執行 shell 命令,而是將您的提示和 hook 的輸入資料傳送到 Claude 模型以做出決策。如果您需要更多功能,可以使用 `model` 欄位指定不同的模型。

884 884 

885模型的唯一工作是傳回其決策作為 JSON:885模型的唯一工作是傳回其決策作為 JSON:

886 886 


995 995 

996設計 hooks 時請記住這些限制:996設計 hooks 時請記住這些限制:

997 997 

998* 命令 hooks 只透過 stdout、stderr 和退出代碼通訊。它們無法觸發 `/` 命令或工具呼叫。透過 `additionalContext` 傳回的文字會作為系統提醒注入,Claude 將其讀取為純文字。HTTP hooks 改為透過回應主體通訊。998* 命令 hooks 只透過 stdout、stderr 和退出代碼通訊。它們無法觸發 `/` 命令或工具呼叫。透過 `additionalContext` 傳回的文字會作為[系統提醒](/docs/zh-TW/glossary#system-reminder)注入,Claude 將其讀取為純文字。HTTP hooks 改為透過回應主體通訊。

999* Hook 超時因類型而異。透過 `timeout` 欄位(以秒為單位)按 hook 覆寫。999* Hook 超時因類型而異。透過 `timeout` 欄位(以秒為單位)按 hook 覆寫。

1000 * `command`、`http`、`mcp_tool`:10 分鐘。Claude Code 將 `UserPromptSubmit`、`PreModelSwitch` 和 `PostModelSwitch` hooks 的預設值降低至 30 秒,將 `MessageDisplay` 的預設值降低至 10 秒。1000 * `command`、`http`、`mcp_tool`:10 分鐘。Claude Code 將 `UserPromptSubmit`、`PreModelSwitch` 和 `PostModelSwitch` hooks 的預設值降低至 30 秒,將 `MessageDisplay` 的預設值降低至 10 秒。

1001 * `prompt`:30 秒。1001 * `prompt`:30 秒。

Details

144 144 

145如需互動式逐步說明,請參閱[探索上下文視窗](/docs/zh-TW/context-window)。145如需互動式逐步說明,請參閱[探索上下文視窗](/docs/zh-TW/context-window)。

146 146 

147<h4 id="context-claude-code-adds-on-its-own">

148 Claude Code 自行新增的上下文

149</h4>

150 

151如果 Claude 遵循您未撰寫的規則,例如在提交中新增 `Co-Authored-By` 預告片,該規則可能來自[系統提醒](/docs/zh-TW/glossary#system-reminder)。當您工作時,Claude Code 會在您的訊息旁邊將自己的上下文新增到對話中:

152 

153* 您的 CLAUDE.md 檔案

154* 您的[輸出樣式](/docs/zh-TW/output-styles)的指示

155* 當 Claude 之前讀取的檔案在磁碟上變更時的備註

156* 提交和拉取請求的歸屬行

157 

158要變更或移除歸屬行,請設定 [`attribution`](/docs/zh-TW/settings-reference#attribution)。要移除 Claude Code 的內建提交和拉取請求指示,請將 [`includeGitInstructions`](/docs/zh-TW/settings-reference#includegitinstructions) 設定為 `false`。如需其他開關,請參閱[關閉您的代理程式替換的上下文](/docs/zh-TW/agent-sdk/modifying-system-prompts#turn-off-the-context-your-agent-replaces)。

159 

147<h4 id="when-context-fills-up">160<h4 id="when-context-fills-up">

148 當上下文填滿時161 當上下文填滿時

149</h4>162</h4>


188 201 

189選擇許可模式以設定 Claude 可以在不詢問您的情況下執行的操作。按 `Shift+Tab` 循環通過許可模式:202選擇許可模式以設定 Claude 可以在不詢問您的情況下執行的操作。按 `Shift+Tab` 循環通過許可模式:

190 203 

191* **Auto**:分類器在背景中檢查大多數操作,並阻止風險操作而不是詢問您。在 Pro、Max 和 Team 方案上,它是互動式終端和 VS Code 工作階段的[內建起始許可模式](/docs/zh-TW/permission-modes#which-mode-a-session-starts-in)204* **Auto**:分類器在背景中檢查大多數操作,並阻止風險操作而不是詢問您。在 Claude Code v2.1.283 或更新版本中,它是互動式終端和 VS Code 工作階段的[內建起始許可模式](/docs/zh-TW/permission-modes#which-mode-a-session-starts-in),在較早版本中僅在 Pro、Max 和 Team 方案上

192* **Manual**:Claude 在檔案編輯和 shell 命令之前詢問205* **Manual**:Claude 在檔案編輯和 shell 命令之前詢問

193* **Accept edits**:Claude 編輯檔案並執行常見的檔案系統命令(如 `mkdir` 和 `mv`)而不詢問,仍然詢問其他命令206* **Accept edits**:Claude 編輯檔案並執行常見的檔案系統命令(如 `mkdir` 和 `mv`)而不詢問,仍然詢問其他命令

194* **Plan**:Claude 探索並提出計畫而不編輯您的原始檔案207* **Plan**:Claude 探索並提出計畫而不編輯您的原始檔案

Details

34| `Ctrl+T` | 切換 Claude 的工作清單 | 在狀態區域中顯示或隱藏 [Claude 的待辦事項清單](#task-list)。這不是背景工作檢視;使用 [`/tasks`](/docs/zh-TW/commands) 以查看執行中的 shell 和子代理 |34| `Ctrl+T` | 切換 Claude 的工作清單 | 在狀態區域中顯示或隱藏 [Claude 的待辦事項清單](#task-list)。這不是背景工作檢視;使用 [`/tasks`](/docs/zh-TW/commands) 以查看執行中的 shell 和子代理 |

35| `Ctrl+S` | 隱藏或復原提示 | 輸入中有文字時,隱藏它並清除提示。在空提示上再次按下時,復原隱藏的文字、游標位置、貼上的內容和輸入模式,所以隱藏的 `!` [shell 命令](#shell-mode-with-prefix)會以 shell 模式回來 |35| `Ctrl+S` | 隱藏或復原提示 | 輸入中有文字時,隱藏它並清除提示。在空提示上再次按下時,復原隱藏的文字、游標位置、貼上的內容和輸入模式,所以隱藏的 `!` [shell 命令](#shell-mode-with-prefix)會以 shell 模式回來 |

36| `Ctrl+Z` | 暫停 Claude Code | 僅限 Unix。將程序暫停到您的 shell;執行 `fg` 以繼續 |36| `Ctrl+Z` | 暫停 Claude Code | 僅限 Unix。將程序暫停到您的 shell;執行 `fg` 以繼續 |

37| `Left/Right arrows` | 在對話框標籤之間循環 | 在權限對話框和功能表中的標籤之間導覽 |37| `Left/Right arrows` | 在對話框標籤之間循環 | 在權限對話框和功能表中的標籤之間導覽。在標籤式對話框中,當標籤列具有焦點時,這些鍵會切換標籤。請參閱[標籤動作](/docs/zh-TW/keybindings#tabs-actions)以了解焦點如何移動 |

38| `Tab` | 接受自動完成建議,或在權限答案中新增註解 | 當自動完成建議在提示輸入中顯示時,接受選定的建議。在大多數權限提示上,當**是**或**否**獲得焦點時,會在該選項上開啟註解欄位,再次按下會關閉欄位。請參閱[在您回答權限提示時新增註解](/docs/zh-TW/permissions#add-a-comment-when-you-answer-a-permission-prompt) |38| `Tab` | 接受自動完成建議,或在權限答案中新增註解 | 當自動完成建議在提示輸入中顯示時,接受選定的建議。在大多數權限提示上,當**是**或**否**獲得焦點時,會在該選項上開啟註解欄位,再次按下會關閉欄位。請參閱[在您回答權限提示時新增註解](/docs/zh-TW/permissions#add-a-comment-when-you-answer-a-permission-prompt) |

39| `Up/Down arrows` 或 `Ctrl+P`/`Ctrl+N` | 移動游標或導覽命令歷史記錄 | 當輸入跨越多個視覺行時(無論是換行還是多行),首先在提示內移動游標。一旦游標在第一行或最後一行視覺行上,再次按下會導覽命令歷史記錄。當您有訊息排隊時,從第一行按 `Up` 會改為[取回您排隊的內容](#take-back-what-you-queued) |39| `Up/Down arrows` 或 `Ctrl+P`/`Ctrl+N` | 移動游標或導覽命令歷史記錄 | 當輸入跨越多個視覺行時(無論是換行還是多行),首先在提示內移動游標。一旦游標在第一行或最後一行視覺行上,再次按下會導覽命令歷史記錄。當您有訊息排隊時,從第一行按 `Up` 會改為[取回您排隊的內容](#take-back-what-you-queued) |

40| `Esc` | 中斷 Claude 或關閉對話框 | 停止目前的回應或工具呼叫中途,以便您可以重新導向。Claude 會保留迄今為止完成的工作。如果您有[訊息排隊](#queue-messages-while-claude-works),Claude Code 會在下一步傳送它們。當對話框開啟時,`Esc` 會關閉對話框。在權限提示上,`Esc` 會拒絕該操作,與[**否**(不含註解)](/docs/zh-TW/permissions#add-a-comment-when-you-answer-a-permission-prompt)相同 |40| `Esc` | 中斷 Claude 或關閉對話框 | 停止目前的回應或工具呼叫中途,以便您可以重新導向。Claude 會保留迄今為止完成的工作。如果您有[訊息排隊](#queue-messages-while-claude-works),Claude Code 會在下一步傳送它們。當對話框開啟時,`Esc` 會關閉對話框。當頁尾項目被選中時(例如提示下方的[子代理面板](/docs/zh-TW/sub-agents#run-subagents-in-foreground-or-background)中的一列),`Esc` 會[取消選中它](/docs/zh-TW/keybindings#footer-actions)而不是中斷。在權限提示上,`Esc` 會拒絕該操作,與[**否**(不含註解)](/docs/zh-TW/permissions#add-a-comment-when-you-answer-a-permission-prompt)相同 |

41| `Esc` + `Esc` | 清除輸入草稿或回溯 | 當提示輸入包含文字時,雙 `Esc` 會清除它並將草稿儲存到歷史記錄,以便 `Up` 可以回憶它。當輸入為空時,雙 `Esc` 會開啟[回溯功能表](/docs/zh-TW/checkpointing)以從先前的時間點復原或摘要程式碼和對話 |41| `Esc` + `Esc` | 清除輸入草稿或回溯 | 當提示輸入包含文字時,雙 `Esc` 會清除它並將草稿儲存到歷史記錄,以便 `Up` 可以回憶它。當輸入為空時,雙 `Esc` 會開啟[回溯功能表](/docs/zh-TW/checkpointing)以從先前的時間點復原或摘要程式碼和對話 |

42| `Ctrl+Enter` 或 `Ctrl+X Ctrl+S` | 立即傳送排隊的訊息 | 傳送您的[排隊訊息](#queue-messages-while-claude-works)和您的草稿與它們一起立即發出。[Claude Code 何時傳送您排隊的內容](#when-claude-code-sends-what-you-queued)涵蓋了 Claude 正在處理的回合會發生什麼。在[shell 模式](#shell-mode-with-prefix)中,該鍵只會將您的命令排隊。在不報告延伸鍵的終端中,`Ctrl+Enter` 會以純 `Enter` 的形式到達;`Ctrl+X Ctrl+S` 在任何終端中都有效。需要 Claude Code v2.1.275 或更新版本 |42| `Ctrl+Enter` 或 `Ctrl+X Ctrl+S` | 立即傳送排隊的訊息 | 傳送您的[排隊訊息](#queue-messages-while-claude-works)和您的草稿與它們一起立即發出。[Claude Code 何時傳送您排隊的內容](#when-claude-code-sends-what-you-queued)涵蓋了 Claude 正在處理的回合會發生什麼。在[shell 模式](#shell-mode-with-prefix)中,該鍵只會將您的命令排隊。在不報告延伸鍵的終端中,`Ctrl+Enter` 會以純 `Enter` 的形式到達;`Ctrl+X Ctrl+S` 在任何終端中都有效。需要 Claude Code v2.1.275 或更新版本 |

43| `Shift+Tab` 或 `Alt+M`(當 Node 或 Bun 執行時間未啟用 VT 輸入模式時在 Windows 上) | 循環權限模式 | 循環通過 `default`(在模式指示器中標記為 Manual)、`acceptEdits`、`plan` 和(如果可用)`bypassPermissions`,然後是 `auto`。從 `auto`,第一次按下會切換到 `default`。請參閱[權限模式](/docs/zh-TW/permission-modes)。在檔案權限提示上,相同的鍵會關閉開啟的[註解欄位](/docs/zh-TW/permissions#add-a-comment-when-you-answer-a-permission-prompt)。沒有開啟欄位時,它會選擇允許該操作以供工作階段其餘部分的選項(當提示提供該選項時) |43| `Shift+Tab` 或 `Alt+M`(當 Node 或 Bun 執行時間未啟用 VT 輸入模式時在 Windows 上) | 循環權限模式 | 循環通過 `default`(在模式指示器中標記為 Manual)、`acceptEdits`、`plan` 和(如果可用)`bypassPermissions`,然後是 `auto`。從 `auto`,第一次按下會切換到 `default`。請參閱[權限模式](/docs/zh-TW/permission-modes)。在檔案權限提示上,相同的鍵會關閉開啟的[註解欄位](/docs/zh-TW/permissions#add-a-comment-when-you-answer-a-permission-prompt)。沒有開啟欄位時,它會選擇允許該操作以供工作階段其餘部分的選項(當提示提供該選項時) |

44| `Option+P`(macOS)或 `Alt+P`(Windows/Linux) | 切換模型 | 切換模型而不清除您的提示 |44| `Option+P`(macOS)或 `Alt+P`(Windows/Linux) | 切換模型 | 切換模型而不清除您的提示 |

45| `Option+T`(macOS)或 `Alt+T`(Windows/Linux) | 切換延伸思考 | 啟用或停用延伸思考模式。對 Opus 5.5 或 Fable 模型沒有影響,它們始終使用延伸思考。在 macOS 上無需設定 Option 為 Meta 即可運作 |45| `Option+T`(macOS)或 `Alt+T`(Windows/Linux) | 切換延伸思考 | 啟用或停用延伸思考模式。對 Opus 5.5、Sonnet 5.5 或 Fable 模型沒有影響,它們始終使用延伸思考。在 macOS 上無需設定 Option 為 Meta 即可運作 |

46| `Option+O`(macOS)或 `Alt+O`(Windows/Linux) | 切換快速模式 | 啟用或停用[快速模式](/docs/zh-TW/fast-mode) |46| `Option+O`(macOS)或 `Alt+O`(Windows/Linux) | 切換快速模式 | 啟用或停用[快速模式](/docs/zh-TW/fast-mode) |

47 47 

48<h3 id="text-editing">48<h3 id="text-editing">


235| 命令 | 動作 |235| 命令 | 動作 |

236| :- | :- |236| :- | :- |

237| `x` | 刪除字元 |237| `x` | 刪除字元 |

238| `r{char}` | 將游標下的字元取代為 `{char}` |

238| `dd` | 刪除行 |239| `dd` | 刪除行 |

239| `D` | 刪除到行尾 |240| `D` | 刪除到行尾 |

240| `dw`/`de`/`db` | 刪除單字/到結尾/向後 |241| `dw`/`de`/`db` | 刪除單字/到結尾/向後 |

241| `df{char}`/`dt{char}` | 刪除到並包括,或刪除到下一個字元出現位置之前 |242| `df{char}`/`dt{char}` | 刪除到並包括,或刪除到下一個字元出現位置之前 |

243| `dj`/`dk` | 刪除目前行和下方或上方的行 |

244| `dgg`/`dG` | 從目前行刪除到第一行或最後一行 |

245| `d0`/`c0`/`y0` | 從游標刪除、變更或複製回到行首。需要 Claude Code v2.1.281 或更新版本 |

242| `cc` | 變更行 |246| `cc` | 變更行 |

243| `C` | 變更到行尾 |247| `C` | 變更到行尾 |

244| `cw`/`ce`/`cb` | 變更單字/到結尾/向後 |248| `cw`/`ce`/`cb` | 變更單字/到結尾/向後 |


342* 提示 Claude Code 在背景執行命令346* 提示 Claude Code 在背景執行命令

343* 按 `Ctrl+B` 將一般 Bash 工具叫用移至背景。Tmux 使用者必須按 `Ctrl+B` 兩次,因為 tmux 的前置鍵。347* 按 `Ctrl+B` 將一般 Bash 工具叫用移至背景。Tmux 使用者必須按 `Ctrl+B` 兩次,因為 tmux 的前置鍵。

344 348 

349當命令在完成前達到逾時時,Claude Code 會自動[將其移至背景](/docs/zh-TW/tools-reference#background-commands),而不是停止它,除非命令以 `sleep` 開頭。若要變更命令執行多久後才會發生這種情況,請設定 [Bash 逾時環境變數](/docs/zh-TW/tools-reference#timeout-and-output-limits)。

350 

345**主要功能:**351**主要功能:**

346 352 

347* 輸出會寫入檔案,Claude 可以使用 Read 工具擷取它353* 輸出會寫入檔案,Claude 可以使用 Read 工具擷取它

348* 背景工作具有唯一的 ID,用於追蹤和輸出擷取354* 背景工作具有唯一的 ID,用於追蹤和輸出擷取

349* 當 Claude Code 結束時,背景工作會自動清理。在 macOS 和 Linux 上,當您從 [`/tasks`](/docs/zh-TW/commands) 停止背景工作或 Claude Code 在結束時停止它時,從工作的 shell 分離的程序(例如在 `setsid` 或 `timeout` 下啟動的程序)也會停止355* 當 Claude Code 結束時,背景工作會自動清理。在 macOS 和 Linux 上,當您從 [`/tasks`](/docs/zh-TW/commands) 停止背景工作或 Claude Code 在結束時停止它時,從工作的 shell 分離的程序(例如在 `setsid` 或 `timeout` 下啟動的程序)也會停止

350* 如果您將工作階段放在背景而不是結束它,您的背景工作會繼續在背景工作階段中執行。請參閱[將執行中的工作階段放在背景](/docs/zh-TW/agent-view#from-inside-a-session)356* 如果您將工作階段放在背景而不是結束它,您的背景工作會繼續在背景工作階段中執行。請參閱[將執行中的工作階段放在背景](/docs/zh-TW/agent-view#from-inside-a-session)

351* 如果輸出超過 5GB,背景工作會自動終止,stderr 中會有說明原因的備註357* 背景工作如果輸出超過 5GB,會自動終止,stderr 中會有說明原因的備註

352* 在 macOS 和 Linux 上,當作業系統發出記憶體壓力信號時,Claude Code 會終止執行中的背景工作,前提是工作階段已閒置至少 30 分鐘且沒有執行任何轉向或子代理。需要 Claude Code v2.1.193 或更新版本358* 在 macOS 和 Linux 上,當作業系統發出記憶體壓力信號時,Claude Code 會終止執行中的背景工作,前提是工作階段已閒置至少 30 分鐘且沒有執行任何轉向或子代理。需要 Claude Code v2.1.193 或更新版本

353 * [偵錯日誌](/docs/zh-TW/debug-your-config)會說明為什麼工作被停止,或為什麼壓力事件讓它們繼續執行359 * [偵錯日誌](/docs/zh-TW/debug-your-config)會說明為什麼工作被停止,或為什麼壓力事件讓它們繼續執行

354 * 將 [`CLAUDE_CODE_DISABLE_BG_SHELL_PRESSURE_REAP`](/docs/zh-TW/env-vars) 設定為 `1` 以關閉記憶體壓力停止360 * 將 [`CLAUDE_CODE_DISABLE_BG_SHELL_PRESSURE_REAP`](/docs/zh-TW/env-vars) 設定為 `1` 以關閉記憶體壓力停止


395 在 Claude 工作時排隊傳送訊息401 在 Claude 工作時排隊傳送訊息

396</h2>402</h2>

397 403 

398在 Claude 工作時輸入訊息並按 `Enter`。Claude Code 會將訊息排隊而不是中斷該輪次,並在輸入框上方列出排隊的項目,直到傳送為止。您可以用相同的方式排隊 `!` [shell 命令](#shell-mode-with-prefix)和大多數 [commands](/docs/zh-TW/commands),除了 `/status` 等 Claude Code 會在您傳送時立即執行的命令。404在 Claude 工作時輸入訊息並按 `Enter`。Claude Code 會將訊息排隊而不是中斷該輪次,並在對話中列出排隊的項目,直到傳送為止。您可以用相同的方式排隊 `!` [shell 命令](#shell-mode-with-prefix)和大多數 [commands](/docs/zh-TW/commands),除了 `/status` 等 Claude Code 會在您傳送時立即執行的命令。

399 405 

400已傳送和排隊的訊息會以灰色顯示,直到 Claude 開始回應它們為止,因此您可以看出 Claude 還沒有開始處理哪些訊息。406已傳送和排隊的訊息會以灰色顯示,直到 Claude 開始回應它們為止,因此您可以看出 Claude 還沒有開始處理哪些訊息。

401 407 

408如果您從 [connected IDE](/docs/zh-TW/vs-code#the-built-in-ide-mcp-server) 或 [diff panel](#diff-panel) 排隊帶有選取項目的訊息,它會保留您按下 `Enter` 時的選取項目,無論您之後選取什麼。

409 

402<h3 id="when-claude-code-sends-what-you-queued">410<h3 id="when-claude-code-sends-what-you-queued">

403 Claude Code 何時傳送您排隊的內容411 Claude Code 何時傳送您排隊的內容

404</h3>412</h3>

jetbrains.md +18 −14

Details

231 安全考量231 安全考量

232</h2>232</h2>

233 233 

234當 Claude Code 在啟用 [`acceptEdits` 權限模式](/docs/zh-TW/permission-modes#auto-approve-file-edits-with-acceptedits-mode)的 JetBrains IDE 中執行時,它可能能夠修改可由您的 IDE 自動執行的 IDE 設定檔。這可能會增加在 `acceptEdits` 模式下執行 Claude Code 的風險,並允許繞過 Claude Code 對 Bash 執行的權限提示。234當 Claude Code 在 JetBrains IDE 中以 [`acceptEdits` 權限模式](/docs/zh-TW/permission-modes#auto-approve-file-edits-with-acceptedits-mode)執行時,它可能能夠修改 IDE 設定檔,這些檔案可能會被您的 IDE 自動執行。這可能會增加在 `acceptEdits` 模式中執行 Claude Code 的風險,並允許繞過 Claude Code 對 Bash 執行的權限提示。

235 235 

236在 JetBrains IDEs 中執行時,請考慮:236在 JetBrains IDE 中執行時,請考慮:

237 237 

238* 對編輯使用手動模式,因為 `acceptEdits` 和自動模式都會核准您工作目錄內的編輯,除了[受保護的路徑](/docs/zh-TW/permission-modes#protected-paths)外,不會詢問238* 對編輯使用手動模式,因為 `acceptEdits` 和自動模式都會批准您工作目錄內的編輯而不詢問,除了在[受保護的路徑](/docs/zh-TW/permission-modes#protected-paths)中

239* 特別注意確保 Claude 僅與受信任的提示一起使用239* 特別小心確保 Claude 僅與受信任的提示一起使用

240* 注意 Claude Code 有權限修改的檔案240* 注意 Claude Code 有權限修改哪些檔案

241 241 

242如需 IDE 外的 Claude Code 安裝或登入問題,請參閱[疑難排解安裝和登入](/docs/zh-TW/troubleshoot-install)。242如需 IDE 外部的 Claude Code 安裝或登入問題,請參閱[疑難排解安裝和登入](/docs/zh-TW/troubleshoot-install)。

243 243 

244<h3 id="the-built-in-ide-mcp-server">244<h3 id="the-built-in-ide-mcp-server">

245 內建 IDE MCP 伺服器245 內建的 IDE MCP 伺服器

246</h3>246</h3>

247 247 

248當外掛程式處於活動狀態時,它會執行一個本機 MCP 伺服器,CLI 會自動連接到該伺服器。這就是 CLI 如何在 IDE 的原生差異檢視器中開啟差異、讀取您目前的選擇以進行 `@`-提及,以及讓 Claude 讀取檢查診斷的方式。248當外掛程式處於活動狀態時,它會執行一個本機 MCP 伺服器,CLI 會自動連接到該伺服器。這是 CLI 在 IDE 的原生差異檢視器中開啟差異、讀取您目前的 `@`-提及選擇,以及讓 Claude 讀取檢查診斷的方式。

249 249 

250伺服器名稱為 `ide`,並且從 `/mcp` 中隱藏,因為沒有任何內容可配置。不過,如果您的組織使用 [`PreToolUse` hook](/docs/zh-TW/hooks#pretooluse) 來允許列表 MCP 工具,您需要知道它存在。250伺服器名稱為 `ide`,並且從 `/mcp` 隱藏,因為沒有任何要設定的內容。不過,如果您的組織使用 [`PreToolUse` hook](/docs/zh-TW/hooks#pretooluse) 來允許列表 MCP 工具,您需要知道它存在。

251 251 

252**選擇和開啟檔案內容。** 連接時,CLI 會在您傳送的每個提示上包含您目前的編輯器選擇和活動檔案的路徑作為內容。當發生這種情況時,文字記錄會顯示 `⧉ Selected N lines from <file>` 行。若要排除敏感檔案(例如 `.env`),請為其路徑新增 [`Read` 拒絕規則](/docs/zh-TW/permissions#read-and-edit)。匹配的拒絕規則可防止該檔案的選定文字和開啟檔案通知到達 Claude。252**選擇和開啟檔案的內容。** 連接時,CLI 會在您傳送的每個提示上包含您目前的編輯器選擇和活動檔案的路徑作為內容。當發生這種情況時,文字記錄會顯示一行 `⧉ Selected N lines from <file>`。

253 253 

254**傳輸和驗證。** 伺服器在 OS 指派的暫時連接埠上進行監聽,該連接埠不可配置。傳輸是未加密的 `ws://`;在迴圈上,任何可以捕獲流量的程序也可以從鎖定檔案讀取權杖,因此 TLS 不會對本機攻擊者增加保護。每次 IDE 啟動都會產生一個新的隨機驗證權杖,將其寫入 `~/.claude/ide/<port>.lock` 的鎖定檔案,CLI 必須將其作為 `X-Claude-Code-Ide-Authorization` 標頭呈現才能連接。如果設定了 `CLAUDE_CONFIG_DIR`,鎖定檔案會改為寫入 `$CLAUDE_CONFIG_DIR/ide/`。254如果您[在 Claude 工作時佇列訊息](/docs/zh-TW/interactive-mode#queue-messages-while-claude-works),它會保留您按下 `Enter` 時的選擇,無論您之後選擇什麼。

255 255 

256**向模型公開的工具。** 伺服器裝載多個工具,但只有一個對模型可見。其餘的是 CLI 用於自己的 UI 的內部 RPC,例如開啟差異和讀取選擇,並在工具清單到達 Claude 之前被篩選出來。256若要排除敏感檔案(例如 `.env`),請為其路徑新增[`Read` 拒絕規則](/docs/zh-TW/permissions#read-and-edit)。相符的拒絕規則會防止該檔案的選定文字和開啟檔案通知到達 Claude。

257 

258**傳輸和驗證。** 伺服器在作業系統指派的暫時連接埠上接聽,該連接埠不可設定。傳輸是未加密的 `ws://`;在迴圈介面上,任何可以擷取流量的程序也可以從鎖定檔案讀取權杖,因此 TLS 不會對本機攻擊者增加保護。每次 IDE 啟動都會產生一個新的隨機驗證權杖,將其寫入 `~/.claude/ide/<port>.lock` 的鎖定檔案,CLI 必須將其作為 `X-Claude-Code-Ide-Authorization` 標頭呈現才能連接。如果設定了 `CLAUDE_CONFIG_DIR`,鎖定檔案會改為寫入 `$CLAUDE_CONFIG_DIR/ide/`。

259 

260**向模型公開的工具。** 伺服器裝載多個工具,但只有一個對模型可見。其餘的是 CLI 用於自己的 UI 的內部 RPC,例如開啟差異和讀取選擇,在工具清單到達 Claude 之前會被篩選出來。

257 261 

258| 工具名稱(如 hooks 所見) | 它的作用 | 唯讀 |262| 工具名稱(如 hooks 所見) | 它的作用 | 唯讀 |

259| - | - | - |263| - | - | - |


261 265 

262JetBrains 外掛程式不會向模型公開程式碼執行工具。266JetBrains 外掛程式不會向模型公開程式碼執行工具。

263 267 

264**監聽介面。** 伺服器繫結到的網路介面由 **Settings → Tools → Claude Code \[Beta] → Networking (Advanced)** 下的 **Accept connections from all network interfaces** 控制。禁用該設定時,伺服器僅在 `127.0.0.1` 上進行監聽,無法從其他主機到達。啟用時,連接埠可從您的本機網路到達。該設定存在於 CLI 無法透過迴圈到達 IDE 的情況,例如具有預設 NAT 網路的 WSL2 或遠端 IDE 設定;請參閱 [WSL 配置](#wsl-configuration)以了解該情況。268**接聽介面。** 伺服器繫結到哪個網路介面由**設定 → 工具 → Claude Code \[Beta] → 網路(進階)**下的**接受來自所有網路介面的連接**控制。停用此設定時,伺服器僅在 `127.0.0.1` 上接聽,無法從其他主機到達。啟用時,連接埠可從您的本機網路到達。此設定適用於 CLI 無法透過迴圈介面到達 IDE 的情況,例如具有預設 NAT 網路的 WSL2 或遠端 IDE 設定;請參閱[WSL 設定](#wsl-configuration)以了解該情況。

265 269 

266<Warning>270<Warning>

267 啟用 **Accept connections from all network interfaces** 會使 IDE MCP 連接埠可從您的本機網路到達。連接仍需要來自鎖定檔案的驗證權杖,但由於傳輸是未加密的 `ws://`,當設定開啟時,工作階段流量和該權杖都會以明文形式跨越網路。僅在迴圈確實無法運作時才開啟它。對於 WSL2,偏好[鏡像網路](#switch-wsl2-to-mirrored-networking),以便 Windows 迴圈介面與 Linux VM 共享,且通訊端可以保持在迴圈上。271 啟用**接受來自所有網路介面的連接**會使 IDE MCP 連接埠可從您的本機網路到達。連接仍需要來自鎖定檔案的驗證權杖,但由於傳輸是未加密的 `ws://`,當設定開啟時,工作階段流量和該權杖都會以明文形式跨越網路。僅在迴圈介面無法運作時才開啟它。對於 WSL2,偏好[鏡像網路](#switch-wsl2-to-mirrored-networking),以便 Windows 迴圈介面與 Linux VM 共享,且通訊端可以保持在迴圈介面上。

268</Warning>272</Warning>

keybindings.md +90 −69

Details

80動作遵循 `namespace:action` 格式,例如 `chat:submit` 用於傳送訊息,或 `app:toggleTodos` 用於顯示工作清單。每個上下文都有特定的可用動作。80動作遵循 `namespace:action` 格式,例如 `chat:submit` 用於傳送訊息,或 `app:toggleTodos` 用於顯示工作清單。每個上下文都有特定的可用動作。

81 81 

82<h3 id="app-actions">82<h3 id="app-actions">

83 App 動作83 應用程式動作

84</h3>84</h3>

85 85 

86在 `Global` 上下文中可用的動作:86在 `Global` 上下文中可用的動作:


94| `app:toggleTranscript` | Ctrl+O | 切換詳細文字記錄 |94| `app:toggleTranscript` | Ctrl+O | 切換詳細文字記錄 |

95 95 

96<h3 id="history-actions">96<h3 id="history-actions">

97 History 動作97 歷史記錄動作

98</h3>98</h3>

99 99 

100用於導覽命令歷史記錄的動作:100用於導覽命令歷史記錄的動作:


106| `history:next` | Down | 下一個歷史記錄項目 |106| `history:next` | Down | 下一個歷史記錄項目 |

107 107 

108<h3 id="chat-actions">108<h3 id="chat-actions">

109 Chat 動作109 聊天動作

110</h3>110</h3>

111 111 

112在 `Chat` 上下文中可用的動作:112在 `Chat` 上下文中可用的動作:


116| `chat:cancel` | Escape | 取消目前的輸入 |116| `chat:cancel` | Escape | 取消目前的輸入 |

117| `chat:clearInput` | Ctrl+L | 強制進行完整螢幕重繪,保留輸入和對話 |117| `chat:clearInput` | Ctrl+L | 強制進行完整螢幕重繪,保留輸入和對話 |

118| `chat:clearScreen` | Cmd+K | 與 `chat:clearInput` 相同。請參閱 [清除對話](/docs/zh-TW/fullscreen#clear-the-conversation) 以了解 Cmd+K 在 iTerm2 和 Terminal.app 上的行為 |118| `chat:clearScreen` | Cmd+K | 與 `chat:clearInput` 相同。請參閱 [清除對話](/docs/zh-TW/fullscreen#clear-the-conversation) 以了解 Cmd+K 在 iTerm2 和 Terminal.app 上的行為 |

119| `chat:killAgents` | Ctrl+X Ctrl+K | 停止此工作階段中所有執行中的 [背景子代理](/docs/zh-TW/sub-agents#run-subagents-in-foreground-or-background),並關閉此工作階段其餘部分的 [成品自動回覆](/docs/zh-TW/artifacts#let-claude-reply-to-comments-on-its-own) |119| `chat:killAgents` | Ctrl+X Ctrl+K | 停止此工作階段中所有執行中的 [背景子代理](/docs/zh-TW/sub-agents#run-subagents-in-foreground-or-background),並關閉其餘工作階段的 [成品自動回覆](/docs/zh-TW/artifacts#let-claude-reply-to-comments-on-its-own) |

120| `chat:cycleMode` | Shift+Tab\* | 循環權限模式 |120| `chat:cycleMode` | Shift+Tab\* | 循環權限模式 |

121| `chat:modelPicker` | Meta+P | 開啟模型選擇器 |121| `chat:modelPicker` | Meta+P | 開啟模型選擇器 |

122| `chat:fastMode` | Meta+O | 切換快速模式 |122| `chat:fastMode` | Meta+O | 切換快速模式 |

123| `chat:thinkingToggle` | Meta+T | 切換延伸思考 |123| `chat:thinkingToggle` | Meta+T | 切換延伸思考 |

124| `chat:submit` | Enter | 提交訊息 |124| `chat:submit` | Enter | 提交訊息 |

125| `chat:queueSubmit` | Ctrl+X Enter | 提交訊息,標記為等待輪次:當 Claude 正在工作時,Claude Code [將其排隊](/docs/zh-TW/interactive-mode#queue-messages-while-claude-works),永遠不會中斷輪次。與 `chat:submit` 不同,即使自動完成建議被突出顯示,它也會提交草稿。需要 v2.1.247 或更新版本 |125| `chat:queueSubmit` | Ctrl+X Enter | 提交訊息,標記為等待輪次:當 Claude 正在工作時,Claude Code [將其排隊](/docs/zh-TW/interactive-mode#queue-messages-while-claude-works),永遠不會中斷輪次。與 `chat:submit` 不同,即使自動完成建議被突出顯示,它也會提交草稿。需要 v2.1.247 或更新版本 |

126| `chat:sendNow` | Ctrl+Enter, Ctrl+X Ctrl+S | 立即傳送您的 [排隊訊息](/docs/zh-TW/interactive-mode#queue-messages-while-claude-works) 和您的草稿。[Claude Code 傳送您排隊的內容時](/docs/zh-TW/interactive-mode#when-claude-code-sends-what-you-queued) 涵蓋了 Claude 正在處理的輪次會發生什麼。當沒有任何操作執行時,該鍵會提交草稿,在 [shell 模式](/docs/zh-TW/interactive-mode#shell-mode-with-prefix) 中它只會排隊命令。不報告延伸鍵的終端機會將 `Ctrl+Enter` 傳遞為純 `Enter`,因此 `Ctrl+X Ctrl+S` 是在任何終端機中都能運作的綁定。需要 v2.1.275 或更新版本 |126| `chat:sendNow` | Ctrl+Enter, Ctrl+X Ctrl+S | 立即傳送您的 [排隊訊息](/docs/zh-TW/interactive-mode#queue-messages-while-claude-works) 和您的草稿。[Claude Code 傳送您排隊的內容時](/docs/zh-TW/interactive-mode#when-claude-code-sends-what-you-queued) 涵蓋 Claude 正在處理的輪次會發生什麼。當沒有任何內容執行時,該按鍵會提交草稿,在 [shell 模式](/docs/zh-TW/interactive-mode#shell-mode-with-prefix) 中,它只會排隊命令。不報告延伸按鍵的終端機會將 `Ctrl+Enter` 傳遞為純 `Enter`,因此 `Ctrl+X Ctrl+S` 是在任何終端機中都能運作的綁定。需要 v2.1.275 或更新版本 |

127| `chat:newline` | Ctrl+J | 插入新行而不提交 |127| `chat:newline` | Ctrl+J | 插入新行而不提交 |

128| `chat:undo` | Ctrl+\_, Ctrl+Shift+- | 復原上一個動作 |128| `chat:undo` | Ctrl+\_, Ctrl+Shift+- | 復原上一個動作 |

129| `chat:externalEditor` | Ctrl+G, Ctrl+X Ctrl+E | 在外部編輯器中開啟。[代理檢視分派輸入](/docs/zh-TW/agent-view#keyboard-shortcuts) 也遵循此動作的單鍵擊綁定 |129| `chat:externalEditor` | Ctrl+G, Ctrl+X Ctrl+E | 在外部編輯器中開啟。[代理檢視分派輸入](/docs/zh-TW/agent-view#keyboard-shortcuts) 也遵循此動作的單按鍵綁定 |

130| `chat:stash` | Ctrl+S | 隱藏目前的提示 |130| `chat:stash` | Ctrl+S | 暫存目前的提示 |

131| `chat:imagePaste` | Ctrl+V (Windows 和 WSL 上為 Alt+V) | 從剪貼簿貼上影像。在 WSL 上,預設會綁定兩個快捷鍵 |131| `chat:imagePaste` | Ctrl+V (Windows 和 WSL 上為 Alt+V) | 從剪貼簿貼上圖片。在 WSL 上,預設會綁定兩個快捷鍵 |

132 132 

133\*在沒有 VT 模式的 Windows 上 (Node \<24.2.0/\<22.17.0, Bun \<1.2.23),預設為 Meta+M。133\*在沒有 VT 模式的 Windows 上 (Node \<24.2.0/\<22.17.0, Bun \<1.2.23),預設為 Meta+M。

134 134 

135<h3 id="autocomplete-actions">135<h3 id="autocomplete-actions">

136 Autocomplete 動作136 自動完成動作

137</h3>137</h3>

138 138 

139在 `Autocomplete` 上下文中可用的動作:139在 `Autocomplete` 上下文中可用的動作:


141| 動作 | 預設 | 說明 |141| 動作 | 預設 | 說明 |

142| :- | :- | :- |142| :- | :- | :- |

143| `autocomplete:accept` | Tab | 接受建議 |143| `autocomplete:accept` | Tab | 接受建議 |

144| `autocomplete:dismiss` | Escape | 關閉選單 |144| `autocomplete:dismiss` | Escape | 關閉功能表 |

145| `autocomplete:previous` | Up | 上一個建議 |145| `autocomplete:previous` | Up | 上一個建議 |

146| `autocomplete:next` | Down | 下一個建議 |146| `autocomplete:next` | Down | 下一個建議 |

147 147 

148<h3 id="confirmation-actions">148<h3 id="confirmation-actions">

149 Confirmation 動作149 確認動作

150</h3>150</h3>

151 151 

152在 `Confirmation` 上下文中可用的動作:152在 `Confirmation` 上下文中可用的動作:


160| `confirm:nextField` | Tab | 下一個欄位 |160| `confirm:nextField` | Tab | 下一個欄位 |

161| `confirm:previousField` | (未綁定) | 上一個欄位 |161| `confirm:previousField` | (未綁定) | 上一個欄位 |

162| `confirm:toggle` | Space | 切換選擇 |162| `confirm:toggle` | Space | 切換選擇 |

163| `confirm:cycleMode` | Shift+Tab\* | 循環權限模式。在檔案權限提示上,關閉開啟的 [評論欄位](/docs/zh-TW/permissions#add-a-comment-when-you-answer-a-permission-prompt);沒有開啟的欄位時,選擇允許此工作階段其餘部分的動作的選項,當提示提供該選項時 |163| `confirm:cycleMode` | Shift+Tab\* | 循環權限模式。在檔案權限提示上,關閉開啟的 [評論欄位](/docs/zh-TW/permissions#add-a-comment-when-you-answer-a-permission-prompt);沒有開啟的欄位時,選擇允許該動作用於工作階段其餘部分的選項,當提示提供該選項時 |

164 164 

165\*在沒有 VT 模式的 Windows 上 (Node \<24.2.0/\<22.17.0, Bun \<1.2.23),預設為 Meta+M。165\*在沒有 VT 模式的 Windows 上 (Node \<24.2.0/\<22.17.0, Bun \<1.2.23),預設為 Meta+M。

166 166 

167在 v2.1.257 之前,`confirm:toggleExplanation` 動作綁定到 `Ctrl+E`,預設情況下在 Bash 和 PowerShell 權限提示上顯示模型生成的命令說明。167在 v2.1.257 之前,`confirm:toggleExplanation` 動作綁定到 `Ctrl+E`,預設情況下在 Bash 和 PowerShell 權限提示上顯示模型生成的命令說明。

168 168 

169對話框使用 `confirm:yes` 和 `confirm:no` 來接受和取消,即使它們不提出是或否的問題。如果您在此上下文中綁定裸字母(例如 `y` 或 `n`),該字母也會作用於從不將其顯示為鍵的對話框。顯示 `y` 和 `n` 作為其鍵的對話框會自行讀取這些字母,不需要綁定。169對話框使用 `confirm:yes` 和 `confirm:no` 來接受和取消,即使它們不提出是或否的問題。如果您在此上下文中綁定裸字母(例如 `y` 或 `n`),該字母也會作用於從不將其顯示為按鍵的對話框。顯示 `y` 和 `n` 作為其按鍵的對話框會自行讀取這些字母,不需要綁定。

170 

171在大多數對話框中,按 `Ctrl+C` 或 `Ctrl+D` 兩次會關閉對話框,而不是結束 Claude Code。第一次按下後的提示會說明第二次按下是關閉對話框還是結束。兩個按鍵都是 [保留的](#reserved-shortcuts),無法重新綁定。

170 172 

171此範例將 `y` 綁定到 `confirm:yes`,將 `n` 綁定到 `confirm:no`:173此範例將 `y` 綁定到 `confirm:yes`,將 `n` 綁定到 `confirm:no`:

172 174 


189在 v2.1.280 之前,`y` 也預設綁定到 `confirm:yes`,`n` 綁定到 `confirm:no`。如果您在 v2.1.280 之前使用 `/keybindings` 建立了 `keybindings.json`,該檔案會列出兩個綁定,它們會保持有效,直到您刪除這兩行。191在 v2.1.280 之前,`y` 也預設綁定到 `confirm:yes`,`n` 綁定到 `confirm:no`。如果您在 v2.1.280 之前使用 `/keybindings` 建立了 `keybindings.json`,該檔案會列出兩個綁定,它們會保持有效,直到您刪除這兩行。

190 192 

191<h3 id="permission-actions">193<h3 id="permission-actions">

192 Permission 動作194 權限動作

193</h3>195</h3>

194 196 

195在 `Confirmation` 上下文中可用於權限對話框的動作:197在 `Confirmation` 上下文中可用的動作,用於權限對話框:

196 198 

197| 動作 | 預設 | 說明 |199| 動作 | 預設 | 說明 |

198| :- | :- | :- |200| :- | :- | :- |

199| `permission:toggleDebug` | (未綁定) | 切換權限偵錯資訊。Ctrl+D 的先前預設值在 v2.1.146 中被移除,因為它遮蔽了 `app:exit` |201| `permission:toggleDebug` | (未綁定) | 切換權限偵錯資訊。Ctrl+D 的先前預設值在 v2.1.146 中被移除,因為它遮蔽了 `app:exit` |

200 202 

201<h3 id="transcript-actions">203<h3 id="transcript-actions">

202 Transcript 動作204 文字記錄動作

203</h3>205</h3>

204 206 

205在 `Transcript` 上下文中可用的動作:207在 `Transcript` 上下文中可用的動作:


209| `transcript:toggleShowAll` | Ctrl+E | 切換顯示所有內容 |211| `transcript:toggleShowAll` | Ctrl+E | 切換顯示所有內容 |

210| `transcript:exit` | q, Ctrl+C, Escape | 結束文字記錄檢視 |212| `transcript:exit` | q, Ctrl+C, Escape | 結束文字記錄檢視 |

211 213 

212`transcript:toggleShowAll` 僅適用於經典轉譯器;在 [全螢幕轉譯](/docs/zh-TW/fullscreen) 中,文字記錄檢視器不提供顯示全部切換。214`transcript:toggleShowAll` 僅在經典轉譯器中適用;在 [全螢幕轉譯](/docs/zh-TW/fullscreen) 中,文字記錄檢視器不提供顯示全部切換。

213 215 

214<h3 id="history-search-actions">216<h3 id="history-search-actions">

215 History search 動作217 歷史記錄搜尋動作

216</h3>218</h3>

217 219 

218在 `HistorySearch` 上下文中可用的動作:220在 `HistorySearch` 上下文中可用的動作:


225| `historySearch:execute` | Enter | 執行選定的命令 |227| `historySearch:execute` | Enter | 執行選定的命令 |

226| `historySearch:cycleScope` | Ctrl+S | 循環範圍:工作階段、專案、任何地方 |228| `historySearch:cycleScope` | Ctrl+S | 循環範圍:工作階段、專案、任何地方 |

227 229 

228`historySearch:next`、`historySearch:accept`、`historySearch:cancel` 和 `historySearch:execute` 預設值適用於經典轉譯器中的內嵌歷史記錄搜尋,它始終搜尋來自所有專案的提示。`historySearch:cycleScope` 僅在 [全螢幕轉譯](/docs/zh-TW/fullscreen) 中生效,其中 `Ctrl+R` 開啟搜尋對話框,`Ctrl+S` 循環其範圍。對話框的其他鍵是固定的,無法重新綁定:`Enter` 或 `Tab` 將突出顯示的符合項放在提示輸入中,`Esc` 取消。230`historySearch:next`、`historySearch:accept`、`historySearch:cancel` 和 `historySearch:execute` 預設值適用於經典轉譯器中的內嵌歷史記錄搜尋,它始終搜尋來自所有專案的提示。`historySearch:cycleScope` 僅在 [全螢幕轉譯](/docs/zh-TW/fullscreen) 中生效,其中 `Ctrl+R` 開啟搜尋對話框,`Ctrl+S` 循環其範圍。對話框的其他按鍵是固定的,無法重新綁定:`Enter` 或 `Tab` 將突出顯示的符合項放在提示輸入中,`Esc` 取消。

229 231 

230<h3 id="task-actions">232<h3 id="task-actions">

231 Task 動作233 工作動作

232</h3>234</h3>

233 235 

234在 `Task` 上下文中可用的動作:236在 `Task` 上下文中可用的動作:

235 237 

236| 動作 | 預設 | 說明 |238| 動作 | 預設 | 說明 |

237| :- | :- | :- |239| :- | :- | :- |

238| `task:background` | Ctrl+B, Ctrl+X Ctrl+B | 背景化目前的工作。Ctrl+X Ctrl+B 和弦避免了 tmux 前綴衝突 |240| `task:background` | Ctrl+B, Ctrl+X Ctrl+B | 背景化目前的工作。Ctrl+X Ctrl+B 組合避免了 tmux 前綴衝突 |

239 241 

240<h3 id="theme-actions">242<h3 id="theme-actions">

241 Theme 動作243 主題動作

242</h3>244</h3>

243 245 

244在 `ThemePicker` 上下文中可用的動作:246在 `ThemePicker` 上下文中可用的動作:

245 247 

246| 動作 | 預設 | 說明 |248| 動作 | 預設 | 說明 |

247| :- | :- | :- |249| :- | :- | :- |

248| `theme:toggleSyntaxHighlighting` | Ctrl+T | 切換語法醒目提示 |250| `theme:toggleSyntaxHighlighting` | Ctrl+T | 切換語法突出顯示 |

249 251 

250<h3 id="help-actions">252<h3 id="help-actions">

251 Help 動作253 說明動作

252</h3>254</h3>

253 255 

254在 `Help` 上下文中可用的動作:256在 `Help` 上下文中可用的動作:

255 257 

256| 動作 | 預設 | 說明 |258| 動作 | 預設 | 說明 |

257| :- | :- | :- |259| :- | :- | :- |

258| `help:dismiss` | Escape | 關閉說明選單 |260| `help:dismiss` | Escape | 關閉說明功能表 |

259 261 

260<h3 id="tabs-actions">262<h3 id="tabs-actions">

261 Tabs 動作263 標籤動作

262</h3>264</h3>

263 265 

264在 `Tabs` 上下文中可用的動作:266在 `Tabs` 上下文中可用的動作:


268| `tabs:next` | Tab, Right | 下一個標籤 |270| `tabs:next` | Tab, Right | 下一個標籤 |

269| `tabs:previous` | Shift+Tab, Left | 上一個標籤 |271| `tabs:previous` | Shift+Tab, Left | 上一個標籤 |

270 272 

273在標籤式對話框中,當標籤列有焦點時,`tabs:next` 和 `tabs:previous` 會切換標籤。在某些對話框中,例如 `/help` 和 `/sandbox`,標籤切換按鍵也可以從標籤的內容內部運作。

274 

275`Up` 和 `Down` 在標籤列和標籤的內容之間移動焦點,內容中的清單僅在有焦點時才會回應按鍵。

276 

271<h3 id="attachments-actions">277<h3 id="attachments-actions">

272 Attachments 動作278 附件動作

273</h3>279</h3>

274 280 

275在 `Attachments` 上下文中可用的動作:281在 `Attachments` 上下文中可用的動作:


282| `attachments:exit` | Down, Escape | 結束附件導覽 |288| `attachments:exit` | Down, Escape | 結束附件導覽 |

283 289 

284<h3 id="footer-actions">290<h3 id="footer-actions">

285 Footer 動作291 頁尾動作

286</h3>292</h3>

287 293 

288在 `Footer` 上下文中可用的動作:294在 `Footer` 上下文中可用的動作:


291| :- | :- | :- |297| :- | :- | :- |

292| `footer:next` | Right | 下一個頁尾項目 |298| `footer:next` | Right | 下一個頁尾項目 |

293| `footer:previous` | Left | 上一個頁尾項目 |299| `footer:previous` | Left | 上一個頁尾項目 |

294| `footer:up` | Up | 在頁尾中向上導覽(在頂部取消選擇) |300| `footer:up` | Up | 在頁尾中向上導覽 (在頂部取消選擇) |

295| `footer:down` | Down | 在頁尾中向下導覽 |301| `footer:down` | Down | 在頁尾中向下導覽 |

296| `footer:openSelected` | Enter | 開啟選定的頁尾項目 |302| `footer:openSelected` | Enter | 開啟選定的頁尾項目 |

297| `footer:clearSelection` | Escape | 清除頁尾選擇 |303| `footer:clearSelection` | Escape | 清除頁尾選擇 |

298| `footer:dismiss` | Backspace, Delete | 從頁尾中關閉選定的 [成品](/docs/zh-TW/artifacts) 連結;已發佈的成品本身不受影響。在其他頁尾列上,這些鍵無效。需要 v2.1.217 或更新版本 |304| `footer:dismiss` | (未綁定) | 在 v2.1.281 中移除。仍然命名該動作的 `keybindings.json` 保持有效,綁定不執行任何操作。在 v2.1.281 之前,Backspace 和 Delete 會從頁尾中關閉選定的成品連結 |

299 305 

300當選定頁尾項目時(例如提示下方代理面板中的列),即使您在 `Chat` 上下文中將 `Enter` 重新綁定到 `chat:queueSubmit` 或 `chat:newline`,`Enter` 也會開啟它。306當選定頁尾項目時,例如提示下方代理面板中的列,即使您在 `Chat` 上下文中將 `Enter` 重新綁定到 `chat:queueSubmit` 或 `chat:newline`,按 `Enter` 也會開啟它。

301 307 

302`Chat` 在 `Footer` 上下文未綁定的鍵上的綁定(例如 `Shift+Tab` 用於 `chat:cycleMode`)在選定項目時保持有效。308`Chat` 在 `Footer` 上下文未綁定的按鍵上的綁定,例如 `Shift+Tab` 用於 `chat:cycleMode`,在選定項目時保持運作。

303 309 

304<h3 id="message-selector-actions">310<h3 id="message-selector-actions">

305 Message selector 動作311 訊息選擇器動作

306</h3>312</h3>

307 313 

308在 `MessageSelector` 上下文中可用的動作:314在 [倒帶功能表](/docs/zh-TW/checkpointing) 的訊息清單中,您可以使用 [選擇動作](#select-actions) 及其預設按鍵在訊息中移動並選擇一個。您對這些動作的 `Select` 綁定也適用於此處。`MessageSelector` 上下文沒有自己的動作或預設綁定。使用它來僅為此清單變更按鍵,方法是在 `MessageSelector` 區塊中綁定選擇動作,例如 `select:accept`。

309 315 

310| 動作 | 預設 | 說明 |316此範例將 `o` 綁定到在倒帶功能表中選擇突出顯示的訊息,而不變更任何其他清單:

311| :- | :- | :- |317 

312| `messageSelector:up` | Up, K, Ctrl+P | 在清單中向上移動 |318```json theme={null}

313| `messageSelector:down` | Down, J, Ctrl+N | 在清單中向下移動 |319{

314| `messageSelector:top` | Ctrl+Up, Shift+Up, Meta+Up, Shift+K | 跳到頂部 |320 "bindings": [

315| `messageSelector:bottom` | Ctrl+Down, Shift+Down, Meta+Down, Shift+J | 跳到底部 |321 {

316| `messageSelector:select` | Enter | 選擇訊息 |322 "context": "MessageSelector",

323 "bindings": {

324 "o": "select:accept"

325 }

326 }

327 ]

328}

329```

330 

331在 v2.1.283 之前,此清單忽略了 `Select` 綁定,並有自己的動作:`messageSelector:up`、`messageSelector:down`、`messageSelector:top`、`messageSelector:bottom` 和 `messageSelector:select`。如果您的 `keybindings.json` 綁定了其中一個名稱,綁定會在此清單中保持運作,作為執行相同操作的選擇動作。`Home` 和 `End` 跳轉到清單的任一端;在 v2.1.283 之前,`Shift+K` 和 `Shift+J` 等按鍵預設會執行此操作。

317 332 

318<h3 id="diff-actions">333<h3 id="diff-actions">

319 Diff 動作334 差異動作

320</h3>335</h3>

321 336 

322在 `DiffDialog` 上下文中可用的動作:337在 `DiffDialog` 上下文中可用的動作:

323 338 

324| 動作 | 預設 | 說明 |339| 動作 | 預設 | 說明 |

325| :- | :- | :- |340| :- | :- | :- |

326| `diff:dismiss` | Escape | 關閉差異檢視器;從詳細檢視中,返回到檔案清單 |341| `diff:dismiss` | Escape | 關閉差異檢視器;從詳細檢視返回到檔案清單 |

327| `diff:previousSource` | Left | 上一個差異來源 |342| `diff:previousSource` | Left | 上一個差異來源 |

328| `diff:nextSource` | Right | 下一個差異來源 |343| `diff:nextSource` | Right | 下一個差異來源 |

329| `diff:previousFile` | Up, K | 檔案清單中的上一個檔案;在詳細檢視中向上捲動一行 |344| `diff:previousFile` | Up, K | 檔案清單中的上一個檔案;在詳細檢視中向上捲動一行 |

330| `diff:nextFile` | Down, J | 檔案清單中的下一個檔案;在詳細檢視中向下捲動一行 |345| `diff:nextFile` | Down, J | 檔案清單中的下一個檔案;在詳細檢視中向下捲動一行 |

331| `diff:viewDetails` | Enter | 檢視差異詳細資訊 |

332| `diff:back` | (未綁定) | 在差異檢視器中返回。Escape 透過 `diff:dismiss` 執行返回動作。詳細檢視中 Left 的先前預設值在 v2.1.203 中被移除 |346| `diff:back` | (未綁定) | 在差異檢視器中返回。Escape 透過 `diff:dismiss` 執行返回動作。詳細檢視中 Left 的先前預設值在 v2.1.203 中被移除 |

333 347 

334差異詳細檢視也將尋呼機樣式鍵綁定到標準 [捲動動作](#scroll-actions)。這些綁定是 `DiffDialog` 上下文的一部分,僅適用於詳細檢視;[捲動動作](#scroll-actions) 下列出的 `Scroll` 上下文預設值保持不變。348檔案清單也透過 [選擇動作](#select-actions) 回應,透過其預設按鍵和您的 `Select` 綁定。`select:previous` 和 `select:next` 移動到上一個和下一個檔案,`Enter` 透過 `select:accept` 開啟選定檔案的差異。若要僅為檔案清單變更其中一個按鍵,請在 `DiffDialog` 區塊中綁定選擇動作。

349 

350在 v2.1.283 之前,檔案清單忽略了 `Select` 綁定,`Enter` 透過單獨的 `diff:viewDetails` 動作開啟選定檔案的差異。如果您的 `keybindings.json` 綁定了 `diff:viewDetails`,綁定會在檔案清單中保持運作,作為 `select:accept`。

351 

352差異詳細檢視也將尋呼機樣式按鍵綁定到標準 [捲動動作](#scroll-actions)。這些綁定是 `DiffDialog` 上下文的一部分,僅在詳細檢視中適用;[捲動動作](#scroll-actions) 下列出的 `Scroll` 上下文預設值保持不變。

335 353 

336| 動作 | 預設 | 說明 |354| 動作 | 預設 | 說明 |

337| :- | :- | :- |355| :- | :- | :- |

338| `scroll:pageUp` | PageUp | 向上捲動半個檢視區 |356| `scroll:pageUp` | PageUp | 向上捲動半個檢視區 |

339| `scroll:pageDown` | PageDown | 向下捲動半個檢視區 |357| `scroll:pageDown` | PageDown | 向下捲動半個檢視區 |

340| `scroll:fullPageUp` | Shift+Space, B | 向上捲動整個檢視區 |358| `scroll:fullPageUp` | Shift+Space, B | 向上捲動完整檢視區 |

341| `scroll:fullPageDown` | Space | 向下捲動整個檢視區 |359| `scroll:fullPageDown` | Space | 向下捲動完整檢視區 |

342| `scroll:top` | G, Home | 跳到頂部 |360| `scroll:top` | G, Home | 跳到頂部 |

343| `scroll:bottom` | Shift+G, End | 跳到底部 |361| `scroll:bottom` | Shift+G, End | 跳到底部 |

344 362 

345<h3 id="diff-panel-actions">363<h3 id="diff-panel-actions">

346 Diff panel 動作364 差異面板動作

347</h3>365</h3>

348 366 

349用於 [差異面板](/docs/zh-TW/interactive-mode#diff-panel) 的動作,`/diff` 在全螢幕轉譯中開啟。`app:cycleDiffBase` 在 `DiffPanel` 上下文中,在面板開啟時有效;其他的在 `Global` 中。該面板需要 Claude Code v2.1.260 或更新版本。367用於 `/diff` 在全螢幕轉譯中開啟的 [差異面板](/docs/zh-TW/interactive-mode#diff-panel) 的動作。`app:cycleDiffBase` 在 `DiffPanel` 上下文中,在面板開啟時有效;其他的在 `Global` 中。面板需要 Claude Code v2.1.260 或更新版本。

350 368 

351| 動作 | 預設 | 說明 |369| 動作 | 預設 | 說明 |

352| :- | :- | :- |370| :- | :- | :- |


358| `app:toggleDiffPreSession` | (未綁定) | 展開或摺疊此工作階段之前的變更 |376| `app:toggleDiffPreSession` | (未綁定) | 展開或摺疊此工作階段之前的變更 |

359 377 

360<h3 id="model-picker-actions">378<h3 id="model-picker-actions">

361 Model picker 動作379 模型選擇器動作

362</h3>380</h3>

363 381 

364在 `ModelPicker` 上下文中可用的動作:382在 `ModelPicker` 上下文中可用的動作:


370| `modelPicker:thisSessionOnly` | s | 將突出顯示的模型套用到此工作階段 |388| `modelPicker:thisSessionOnly` | s | 將突出顯示的模型套用到此工作階段 |

371 389 

372<h3 id="effort-slider-actions">390<h3 id="effort-slider-actions">

373 Effort slider 動作391 努力滑塊動作

374</h3>392</h3>

375 393 

376在 `EffortSlider` 上下文中可用的動作,當您執行不帶引數的 `/effort` 時開啟的滑塊。滑塊的 Left、Right、Enter 和 Escape 鍵無法重新綁定。394在 `EffortSlider` 上下文中可用的動作,當您執行不帶引數的 `/effort` 時開啟的滑塊。滑塊的 Enter 和 Escape 按鍵無法重新綁定。

377 395 

378| 動作 | 預設 | 說明 |396| 動作 | 預設 | 說明 |

379| :- | :- | :- |397| :- | :- | :- |

398| `effortSlider:decreaseEffort` | Left | 將滑塊移動到下一個較低的努力等級。需要 v2.1.284 或更新版本 |

399| `effortSlider:increaseEffort` | Right | 將滑塊移動到下一個較高的努力等級。需要 v2.1.284 或更新版本 |

400| `effortSlider:toggleUltracode` | Tab | 為此工作階段開啟或關閉 [ultracode](/docs/zh-TW/workflows#let-claude-decide-with-ultracode),當滑塊 [提供它](/docs/zh-TW/model-config#when-ultracode-is-available) 時。需要 v2.1.284 或更新版本 |

380| `effortSlider:thisSessionOnly` | s | 將焦點 [努力等級](/docs/zh-TW/model-config#adjust-effort-level) 套用到此工作階段。需要 v2.1.257 或更新版本 |401| `effortSlider:thisSessionOnly` | s | 將焦點 [努力等級](/docs/zh-TW/model-config#adjust-effort-level) 套用到此工作階段。需要 v2.1.257 或更新版本 |

381 402 

382<h3 id="select-actions">403<h3 id="select-actions">

383 Select 動作404 選擇動作

384</h3>405</h3>

385 406 

386在 `Select` 上下文中可用的動作:407在 `Select` 上下文中可用的動作:


396| `select:accept` | Enter | 接受選擇 |417| `select:accept` | Enter | 接受選擇 |

397| `select:cancel` | Escape | 取消選擇 |418| `select:cancel` | Escape | 取消選擇 |

398 419 

399Claude Code 在 `/skills` 選單中套用您的 `select:pageUp`、`select:pageDown`、`select:first` 和 `select:last` 綁定。在大多數其他清單中,例如 `/model` 選擇器,您的 `select:first` 和 `select:last` 綁定適用。PageUp 和 PageDown 在這些清單中分頁選項,無論您的綁定如何。420在清單面板中,例如 `/skills` 和 `/mcp`,Claude Code 會套用您的 `select:pageUp`、`select:pageDown`、`select:first` 和 `select:last` 綁定。在大多數其他清單中,例如 `/model` 選擇器,您的 `select:first` 和 `select:last` 綁定會套用。PageUp 和 PageDown 會在這些清單中分頁選項,無論您的綁定如何。

400 421 

401在 v2.1.280 之前,這些其他清單忽略了 Home、End 和您的 `select:first` 和 `select:last` 綁定。422在 v2.1.280 之前,這些其他清單忽略了 Home、End 和您的 `select:first` 和 `select:last` 綁定。

402 423 

403<h3 id="plugin-actions">424<h3 id="plugin-actions">

404 Plugin 動作425 外掛程式動作

405</h3>426</h3>

406 427 

407在 `Plugin` 上下文中可用的動作:428在 `Plugin` 上下文中可用的動作:


410| :- | :- | :- |431| :- | :- | :- |

411| `plugin:toggle` | Space | 切換外掛程式選擇 |432| `plugin:toggle` | Space | 切換外掛程式選擇 |

412| `plugin:install` | I | 安裝選定的外掛程式 |433| `plugin:install` | I | 安裝選定的外掛程式 |

413| `plugin:favorite` | F | 將選定的外掛程式設為最愛,使其在已安裝標籤頂部附近排序 |434| `plugin:favorite` | F | 將選定的外掛程式設為最愛,使其在已安裝標籤附近排序 |

414 435 

415<h3 id="settings-actions">436<h3 id="settings-actions">

416 Settings 動作437 設定動作

417</h3>438</h3>

418 439 

419在 `Settings` 上下文中可用的動作。`select:accept` 和 `confirm:no` 動作從 [Select](#select-actions) 和 [Confirmation](#confirmation-actions) 上下文重複使用,具有特定於設定的行為:變更會在您變更時立即套用到每個設定,因此 Escape 會關閉面板並保存您的變更,而不是拒絕。440在 `Settings` 上下文中可用的動作。`select:accept` 和 `confirm:no` 動作會從 [選擇](#select-actions) 和 [確認](#confirmation-actions) 上下文重複使用,具有設定特定的行為:變更會在您變更時立即套用到每個設定,因此 Escape 會關閉面板並保存您的變更,而不是拒絕。

420 441 

421| 動作 | 預設 | 說明 |442| 動作 | 預設 | 說明 |

422| :- | :- | :- |443| :- | :- | :- |

423| `settings:search` | / | 進入搜尋模式 |444| `settings:search` | / | 進入搜尋模式 |

424| `settings:retry` | R | 在錯誤時重試載入使用量資料 |445| `settings:retry` | R | 在錯誤時重試載入使用量資料 |

425| `select:accept` | Enter, Space | 變更選定的設定或開啟其子選單 |446| `select:accept` | Enter, Space | 變更選定的設定或開啟其子功能表 |

426| `confirm:no` | Escape | 關閉面板。變更已保存 |447| `confirm:no` | Escape | 關閉面板。變更已保存 |

427 448 

428<h3 id="agents-actions">449<h3 id="agents-actions">

429 Agents 動作450 代理動作

430</h3>451</h3>

431 452 

432在 `Agents` 上下文中可用的動作,適用於 [代理檢視](/docs/zh-TW/agent-view),使用 `claude agents` 開啟。需要 v2.1.257 或更新版本。453在 `Agents` 上下文中可用的動作,適用於 [代理檢視](/docs/zh-TW/agent-view),使用 `claude agents` 開啟。需要 v2.1.257 或更新版本。

433 454 

434| 動作 | 預設 | 說明 |455| 動作 | 預設 | 說明 |

435| :- | :- | :- |456| :- | :- | :- |

436| `agents:switchView` | Ctrl+S | 在狀態和目錄之間切換 [工作階段分組](/docs/zh-TW/agent-view#organize-the-list) |457| `agents:switchView` | Ctrl+S | 在 [工作階段分組](/docs/zh-TW/agent-view#organize-the-list) 之間切換狀態和目錄 |

437| `agents:togglePin` | Ctrl+T | [釘選或取消釘選](/docs/zh-TW/agent-view#organize-the-list) 選定的工作階段 |458| `agents:togglePin` | Ctrl+T | [釘選或取消釘選](/docs/zh-TW/agent-view#organize-the-list) 選定的工作階段 |

438 459 

439當代理檢視開啟時,Claude Code 對 `Agents` 上下文綁定的任何鍵使用 `Agents` 綁定,並忽略同一鍵上的 `Chat` 或 `Global` 綁定。例如,在代理檢視中按 Ctrl+S 會切換工作階段分組,而不是觸發預設的 `chat:stash`。460當代理檢視開啟時,Claude Code 會對 `Agents` 上下文綁定的任何按鍵使用 `Agents` 綁定,並忽略同一按鍵上的 `Chat` 或 `Global` 綁定。例如,在代理檢視中按 Ctrl+S 會切換工作階段分組,而不是觸發預設的 `chat:stash`。

440 461 

441分派輸入的外部編輯器快捷鍵不是 `Agents` 動作。代理檢視遵循 `Chat` 上下文的 `chat:externalEditor` 綁定,預設為 Ctrl+G。462分派輸入的外部編輯器快捷鍵不是 `Agents` 動作。代理檢視遵循 `Chat` 上下文的 `chat:externalEditor` 綁定,預設為 Ctrl+G。

442 463 

443在代理檢視中,綁定在單個按鍵上觸發,因此綁定到 `chat:externalEditor` 的 Ctrl+X Ctrl+E 和弦不會在那裡開啟編輯器。464綁定在代理檢視中的單個按鍵上觸發,因此綁定到 `chat:externalEditor` 的 Ctrl+X Ctrl+E 組合不會在那裡開啟編輯器。

444 465 

445<h3 id="voice-actions">466<h3 id="voice-actions">

446 Voice 動作467 語音動作

447</h3>468</h3>

448 469 

449當 [語音聽寫](/docs/zh-TW/voice-dictation) 啟用時,在 `Chat` 上下文中可用的動作:470當 [語音聽寫](/docs/zh-TW/voice-dictation) 啟用時,在 `Chat` 上下文中可用的動作:


453| `voice:pushToTalk` | Space | 聽寫提示。根據 `/voice` 模式按住或點擊 |474| `voice:pushToTalk` | Space | 聽寫提示。根據 `/voice` 模式按住或點擊 |

454 475 

455<h3 id="scroll-actions">476<h3 id="scroll-actions">

456 Scroll 動作477 捲動動作

457</h3>478</h3>

458 479 

459當 [全螢幕轉譯](/docs/zh-TW/fullscreen) 啟用時,在 `Scroll` 上下文中可用的動作:480當 [全螢幕轉譯](/docs/zh-TW/fullscreen) 啟用時,在 `Scroll` 上下文中可用的動作:

460 481 

461| 動作 | 預設 | 說明 |482| 動作 | 預設 | 說明 |

462| :- | :- | :- |483| :- | :- | :- |

463| `scroll:lineUp` | `wheelup` | 向上捲動一行。滑鼠滾輪捲動觸發此動作 |484| `scroll:lineUp` | `wheelup` | 向上捲動一行。滑鼠滾輪捲動會觸發此動作 |

464| `scroll:lineDown` | `wheeldown` | 向下捲動一行。滑鼠滾輪捲動觸發此動作 |485| `scroll:lineDown` | `wheeldown` | 向下捲動一行。滑鼠滾輪捲動會觸發此動作 |

465| `scroll:pageUp` | PageUp | 向上捲動檢視區高度的一半 |486| `scroll:pageUp` | PageUp | 向上捲動檢視區高度的一半 |

466| `scroll:pageDown` | PageDown | 向下捲動檢視區高度的一半 |487| `scroll:pageDown` | PageDown | 向下捲動檢視區高度的一半 |

467| `scroll:top` | Ctrl+Home | 跳到對話的開始 |488| `scroll:top` | Ctrl+Home | 跳到對話的開始 |

468| `scroll:bottom` | Ctrl+End | 跳到最新訊息並重新啟用自動跟隨 |489| `scroll:bottom` | Ctrl+End | 跳到最新訊息並重新啟用自動跟隨 |

469| `scroll:halfPageUp` | (未綁定) | 向上捲動檢視區高度的一半。與 `scroll:pageUp` 相同的行為,為 vi 樣式重新綁定提供 |490| `scroll:halfPageUp` | (未綁定) | 向上捲動檢視區高度的一半。與 `scroll:pageUp` 相同的行為,為 vi 樣式重新綁定提供 |

470| `scroll:halfPageDown` | (未綁定) | 向下捲動檢視區高度的一半。與 `scroll:pageDown` 相同的行為,為 vi 樣式重新綁定提供 |491| `scroll:halfPageDown` | (未綁定) | 向下捲動檢視區高度的一半。與 `scroll:pageDown` 相同的行為,為 vi 樣式重新綁定提供 |

471| `scroll:fullPageUp` | (未綁定) | 向上捲動整個檢視區高度 |492| `scroll:fullPageUp` | (未綁定) | 向上捲動完整檢視區高度 |

472| `scroll:fullPageDown` | (未綁定) | 向下捲動整個檢視區高度 |493| `scroll:fullPageDown` | (未綁定) | 向下捲動完整檢視區高度 |

473| `selection:copy` | Ctrl+Shift+C / Cmd+C | 將選定的文字複製到剪貼簿 |494| `selection:copy` | Ctrl+Shift+C / Cmd+C | 將選定的文字複製到剪貼簿 |

474| `selection:clear` | (未綁定) | 清除有效的文字選擇。需要 v2.1.234 或更新版本 |495| `selection:clear` | (未綁定) | 清除有效的文字選擇。需要 v2.1.234 或更新版本 |

475| `selection:extendLeft` | Shift+Left | 將有效選擇向左延伸一欄 |496| `selection:extendLeft` | Shift+Left | 將有效選擇向左延伸一欄 |

llm-gateway.md +1 −1

Details

49 訂閱和 gateway49 訂閱和 gateway

50</h2>50</h2>

51 51 

52當[gateway 憑證變數](/docs/zh-TW/llm-gateway-connect#set-the-credential-variable)或 `apiKeyHelper` 處於活動狀態時,開發人員的 claude.ai 訂閱不被使用:憑證替換該會話的訂閱登錄,訂閱的使用限制不適用。該流量按令牌計費給擁有 gateway 轉發的憑證的人,例如您的組織的 Anthropic Console 帳戶,或當 gateway 路由到那裡時您的 Amazon Bedrock、Google Cloud 的 Agent Platform 或 Microsoft Foundry 帳戶。52當[gateway 憑證變數](/docs/zh-TW/llm-gateway-connect#set-the-credential-variable)或 `apiKeyHelper` 處於活動狀態時,請求會使用該憑證,而不是開發人員的 claude.ai 訂閱登錄,且訂閱的使用限制不適用於這些請求。Claude Code 在機器上保存了 claude.ai 登錄,但不會在這些請求中發送它。該流量按令牌計費給擁有 gateway 轉發的憑證的人,例如您的組織的 Anthropic Console 帳戶,或當 gateway 路由到那裡時您的 Amazon Bedrock、Google Cloud 的 Agent Platform 或 Microsoft Foundry 帳戶。

53 53 

54[`ANTHROPIC_BASE_URL`](/docs/zh-TW/llm-gateway-connect#set-the-base-url-and-credential)是指向 Claude Code 指向 gateway 的變數。僅設置該變數而不設置 gateway 憑證不會替換訂閱。請求仍然透過 gateway 路由,但保存的 claude.ai 登錄保持活動憑證,因此其使用限制和計費適用。將此流量轉發給 Anthropic 的 gateway 必須轉發 `anthropic-beta` 中的 OAuth 功能;請參閱[請求標頭參考](/docs/zh-TW/llm-gateway-protocol#request-headers)。54[`ANTHROPIC_BASE_URL`](/docs/zh-TW/llm-gateway-connect#set-the-base-url-and-credential)是指向 Claude Code 指向 gateway 的變數。僅設置該變數而不設置 gateway 憑證不會替換訂閱。請求仍然透過 gateway 路由,但保存的 claude.ai 登錄保持活動憑證,因此其使用限制和計費適用。將此流量轉發給 Anthropic 的 gateway 必須轉發 `anthropic-beta` 中的 OAuth 功能;請參閱[請求標頭參考](/docs/zh-TW/llm-gateway-protocol#request-headers)。

55 55 

Details

140<Tabs>140<Tabs>

141 <Tab title="Bash or Zsh">141 <Tab title="Bash or Zsh">

142 ```bash theme={null}142 ```bash theme={null}

143 curl -X POST "$ANTHROPIC_BASE_URL/v1/messages" \143 curl -sS -w '\n%{http_code}\n' -X POST "$ANTHROPIC_BASE_URL/v1/messages" \

144 -H "Authorization: Bearer $ANTHROPIC_AUTH_TOKEN" \144 -H "Authorization: Bearer $ANTHROPIC_AUTH_TOKEN" \

145 -H "anthropic-version: 2023-06-01" \145 -H "anthropic-version: 2023-06-01" \

146 -H "content-type: application/json" \146 -H "content-type: application/json" \


594| `/fast` 在使用 `ANTHROPIC_AUTH_TOKEN` 驗證的會話中報告 `Fast mode has been disabled by your organization`,儘管組織已啟用快速模式 | 可用性檢查需要 claude.ai 登入或 Anthropic API 金鑰;僅使用持有人令牌,Claude Code 會將快速模式視為已禁用,而不發送檢查 | 設定 `CLAUDE_CODE_SKIP_FAST_MODE_ORG_CHECK=1`;請參閱[在代理和 LLM 閘道後面使用快速模式](/docs/zh-TW/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways) |594| `/fast` 在使用 `ANTHROPIC_AUTH_TOKEN` 驗證的會話中報告 `Fast mode has been disabled by your organization`,儘管組織已啟用快速模式 | 可用性檢查需要 claude.ai 登入或 Anthropic API 金鑰;僅使用持有人令牌,Claude Code 會將快速模式視為已禁用,而不發送檢查 | 設定 `CLAUDE_CODE_SKIP_FAST_MODE_ORG_CHECK=1`;請參閱[在代理和 LLM 閘道後面使用快速模式](/docs/zh-TW/fast-mode#use-fast-mode-behind-proxies-and-llm-gateways) |

595| Claude Code 要求您登入,儘管 [curl 測試](#verify-the-connection)成功 | CLI 沒有自己的認證:可達的基礎 URL 不是一個,在互動會話中,專案的 `.claude/settings.json` 或 `.claude/settings.local.json` 中的 `env` 區塊僅在首次執行嚮導和[信任提示](/docs/zh-TW/permissions#what-runs-before-you-trust-a-folder)後應用 | 在 Claude Code 在首次執行設定之前讀取的位置設定 `ANTHROPIC_AUTH_TOKEN`:shell 匯出、`~/.claude/settings.json` 中的 `env` 區塊或受管設定 |595| Claude Code 要求您登入,儘管 [curl 測試](#verify-the-connection)成功 | CLI 沒有自己的認證:可達的基礎 URL 不是一個,在互動會話中,專案的 `.claude/settings.json` 或 `.claude/settings.local.json` 中的 `env` 區塊僅在首次執行嚮導和[信任提示](/docs/zh-TW/permissions#what-runs-before-you-trust-a-folder)後應用 | 在 Claude Code 在首次執行設定之前讀取的位置設定 `ANTHROPIC_AUTH_TOKEN`:shell 匯出、`~/.claude/settings.json` 中的 `env` 區塊或受管設定 |

596| `ANTHROPIC_API_KEY` 已設定但被忽略,無提示 | 金鑰在互動會話中需要一次性批准,之前拒絕的金鑰被忽略而不再詢問 | 使用 `Use custom API key` 選項在 `/config` 下啟用它 |596| `ANTHROPIC_API_KEY` 已設定但被忽略,無提示 | 金鑰在互動會話中需要一次性批准,之前拒絕的金鑰被忽略而不再詢問 | 使用 `Use custom API key` 選項在 `/config` 下啟用它 |

597| `This machine's managed settings require a first-party login` | 受管設定包括 `forceLoginMethod` 或 `forceLoginOrgUUID`,不能與 `ANTHROPIC_API_KEY`、`ANTHROPIC_AUTH_TOKEN` 或 `apiKeyHelper` 共存 | 您的管理員必須從受管設定中移除 `forceLoginMethod` 和 `forceLoginOrgUUID` 以使用閘道認證,或移除閘道認證以使用第一方登入。兩者無法結合 |597| `This machine's managed settings require a first-party login`,或當受管設定將 `forceLoginMethod` 設定為 `"gateway"` 或也設定 `forceLoginGatewayUrl` 時的 [`Administrator policy requires a Cloud gateway sign-in`](/docs/zh-TW/errors#administrator-policy-requires-a-cloud-gateway-sign-in) | 受管設定包括 `forceLoginMethod` 或 `forceLoginOrgUUID`,不能與 `ANTHROPIC_API_KEY`、`ANTHROPIC_AUTH_TOKEN` 或 `apiKeyHelper` 共存 | 您的管理員必須從受管設定中移除 `forceLoginMethod`、`forceLoginOrgUUID` 和 `forceLoginGatewayUrl` 以使用閘道認證,或移除閘道認證以使用受管設定要求的登入。兩者無法結合 |

598| `403` 帶有 HTML 正文,例如 `403 Forbidden`,當閘道自己的日誌顯示未收到請求時 | 閘道前面的網頁應用程式防火牆或反向代理在到達閘道之前阻止了請求正文。Claude Code 提示包括 XML 樣式標籤和與跨站點指令碼正文規則匹配的原始程式碼,因此短 curl 測試通過而實際會話不通過 | 豁免閘道的 `/v1/messages` 路徑免受請求正文檢查。在 AWS WAF 上,這是 `CrossSiteScripting_Body` 受管規則;在帶有 ModSecurity 的 nginx 上,它是等效的 OWASP CRS 正文規則 |598| `403` 帶有 HTML 正文,例如 `403 Forbidden`,當閘道自己的日誌顯示未收到請求時 | 閘道前面的網頁應用程式防火牆或反向代理在到達閘道之前阻止了請求正文。Claude Code 提示包括 XML 樣式標籤和與跨站點指令碼正文規則匹配的原始程式碼,因此短 curl 測試通過而實際會話不通過 | 豁免閘道的 `/v1/messages` 路徑免受請求正文檢查。在 AWS WAF 上,這是 `CrossSiteScripting_Body` 受管規則;在帶有 ModSecurity 的 nginx 上,它是等效的 OWASP CRS 正文規則 |

599| 憑證或 TLS 錯誤,例如 `SSL certificate verification failed` 或 `Self-signed certificate detected`,當 [curl 測試](#verify-the-connection)成功時 | Claude Code 的執行時不信任 `curl` 使用的相同憑證授權。在公司 TLS 檢查代理後面很常見 | 將 `NODE_EXTRA_CA_CERTS` 設定為 CA 束路徑;請參閱 [CA 憑證存儲](/docs/zh-TW/network-config#ca-certificate-store) |599| 憑證或 TLS 錯誤,例如 `SSL certificate verification failed` 或 `Self-signed certificate detected`,當 [curl 測試](#verify-the-connection)成功時 | Claude Code 的執行時不信任 `curl` 使用的相同憑證授權。在公司 TLS 檢查代理後面很常見 | 將 `NODE_EXTRA_CA_CERTS` 設定為 CA 束路徑;請參閱 [CA 憑證存儲](/docs/zh-TW/network-config#ca-certificate-store) |

600 600 

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` 變體下。

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` 鍵不會清除它。

79 

76當用戶端使用 Amazon Bedrock 格式時,不修改地轉發 `InvokeModelWithResponseStream` 回應本體及其 `Content-Type: application/vnd.amazon.eventstream` 標頭,並且不要將串流轉換為伺服器發送事件。請參閱[閘道或代理後面的串流錯誤](/docs/zh-TW/amazon-bedrock#streaming-errors-behind-a-gateway-or-proxy)。80當用戶端使用 Amazon Bedrock 格式時,不修改地轉發 `InvokeModelWithResponseStream` 回應本體及其 `Content-Type: application/vnd.amazon.eventstream` 標頭,並且不要將串流轉換為伺服器發送事件。請參閱[閘道或代理後面的串流錯誤](/docs/zh-TW/amazon-bedrock#streaming-errors-behind-a-gateway-or-proxy)。

77 81 

78也轉發保活 ping。在透過 `ANTHROPIC_BASE_URL` 或 `ANTHROPIC_AWS_BASE_URL` 的連線上,Claude Code 計算您的閘道轉發的每一位元組,包括 SSE `ping` 事件和註解行,並預設在 300 秒內中止無聲的串流。上游的 ping 是長思考暫停期間唯一的流量,因此如果您的閘道剝離或緩衝它們,Claude Code 會在這些暫停期間中止串流;[自動重試](/docs/zh-TW/errors#automatic-retries)涵蓋根據回應進度有多遠而中止的串流報告。完全不發送 ping 的上游(例如 Amazon Bedrock 的二進位事件串流)在這些暫停期間沒有任何東西可轉發。從這樣的上游轉譯時,在無聲間隙期間發出您自己的 `ping` 事件。透過 `ANTHROPIC_BEDROCK_BASE_URL`、`ANTHROPIC_VERTEX_BASE_URL` 或 `ANTHROPIC_FOUNDRY_BASE_URL` 到達的閘道不會被此位元組級監視狗包裝,即使它們轉發 Anthropic Messages 格式;在那裡,[5 分鐘閒置逾時](/docs/zh-TW/env-vars)會改為中止無聲串流,在 `ANTHROPIC_BEDROCK_BASE_URL` 連線上,您可以使用 [`CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK`](/docs/zh-TW/env-vars) 新增位元組監視狗。82也轉發保活 ping。在透過 `ANTHROPIC_BASE_URL` 或 `ANTHROPIC_AWS_BASE_URL` 的連線上,Claude Code 計算您的閘道轉發的每一位元組,包括 SSE `ping` 事件和註解行,並預設在 300 秒內中止無聲的串流。上游的 ping 是長思考暫停期間唯一的流量,因此如果您的閘道剝離或緩衝它們,Claude Code 會在這些暫停期間中止串流;[自動重試](/docs/zh-TW/errors#automatic-retries)涵蓋根據回應進度有多遠而中止的串流報告。完全不發送 ping 的上游(例如 Amazon Bedrock 的二進位事件串流)在這些暫停期間沒有任何東西可轉發。從這樣的上游轉譯時,在無聲間隙期間發出您自己的 `ping` 事件。透過 `ANTHROPIC_BEDROCK_BASE_URL`、`ANTHROPIC_VERTEX_BASE_URL` 或 `ANTHROPIC_FOUNDRY_BASE_URL` 到達的閘道不會被此位元組級監視狗包裝,即使它們轉發 Anthropic Messages 格式;在那裡,[5 分鐘閒置逾時](/docs/zh-TW/env-vars)會改為中止無聲串流,在 `ANTHROPIC_BEDROCK_BASE_URL` 連線上,您可以使用 [`CLAUDE_ENABLE_BYTE_WATCHDOG_BEDROCK`](/docs/zh-TW/env-vars) 新增位元組監視狗。


158 162 

159將 `CLAUDE_CODE_GATEWAY_HINT_HEADERS` 設定為 `0` 會停止每個連接上的標頭。163將 `CLAUDE_CODE_GATEWAY_HINT_HEADERS` 設定為 `0` 會停止每個連接上的標頭。

160 164 

161標頭只攜帶下面列出的內容:固定詞彙、工具名稱和持續時間,永遠不會是提示文字或檔案內容。每個值都是可列印的 ASCII。165標頭只攜帶下面列出的內容:固定詞彙、工具名稱、持續時間和隨機提示識別碼,永遠不會是提示文字或檔案內容。每個值都是可列印的 ASCII。

162 166 

163| 標頭 | 描述 |167| 標頭 | 描述 |

164| :- | :- |168| :- | :- |


167| `x-claude-code-compaction` | 在[壓縮](/docs/zh-TW/prompt-caching#compacting-the-conversation)期間摘要對話的請求上存在。該值說明觸發了什麼:`auto` 當上下文視窗接近容量時,`manual` 用於 `/compact`,或 `reactive` 當 API 拒絕請求太長時。在所有其他請求上不存在 |171| `x-claude-code-compaction` | 在[壓縮](/docs/zh-TW/prompt-caching#compacting-the-conversation)期間摘要對話的請求上存在。該值說明觸發了什麼:`auto` 當上下文視窗接近容量時,`manual` 用於 `/compact`,或 `reactive` 當 API 拒絕請求太長時。在所有其他請求上不存在 |

168| `x-claude-code-context-compacted` | 在壓縮後的第一個主對話請求上存在一次,具有與 `x-claude-code-compaction` 相同的值。此請求之前的對話前綴不再使用,因此可以刪除以其為鍵的快取 |172| `x-claude-code-context-compacted` | 在壓縮後的第一個主對話請求上存在一次,具有與 `x-claude-code-compaction` 相同的值。此請求之前的對話前綴不再使用,因此可以刪除以其為鍵的快取 |

169| `x-claude-code-prev-tool-durations` | 此請求攜帶其結果的工具呼叫的測量執行時間,格式為 `<name>=<ms>;<name>=<ms>`,例如 `Bash=742;Read=9`。在同一對話的下一個請求之後傳送,來自主工作階段或子代理的一批工具呼叫 |173| `x-claude-code-prev-tool-durations` | 此請求攜帶其結果的工具呼叫的測量執行時間,格式為 `<name>=<ms>;<name>=<ms>`,例如 `Bash=742;Read=9`。在同一對話的下一個請求之後傳送,來自主工作階段或子代理的一批工具呼叫 |

174| `x-claude-code-prompt-id` | 隨機 UUID,識別請求所服務的使用者提示。服務一個提示的請求共享該值,包括該提示啟動的子代理的回合。未歸屬於提示的請求會省略它。使用它按提示對工作階段的請求進行分組。需要 Claude Code v2.1.283 或更新版本 |

170 175 

171在解析 `x-claude-code-prev-tool-durations` 之前,請檢查 Claude Code 如何建立該值以及它遺漏了什麼:176在解析 `x-claude-code-prev-tool-durations` 之前,請檢查 Claude Code 如何建立該值以及它遺漏了什麼:

172 177 


265 禁用預發佈功能270 禁用預發佈功能

266</h3>271</h3>

267 272 

268`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1` 停止 Claude Code 在每個提供者上發送預發佈功能及其請求體欄位,包括上下文管理和測試版工具欄位。該變數不影響自適應推理,後者由模型而不是測試版選擇。它永遠不會抑制訂閱驗證所需的 OAuth 功能。273`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1` 停止 Claude Code 發送預發佈功能及其請求體欄位,包括上下文管理和測試版工具欄位。該變數不影響自適應推理,後者由模型而不是測試版選擇。它永遠不會抑制訂閱驗證所需的 OAuth 功能。

274 

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` 以在那裡停止它。

269 276 

270在 Claude Code v2.1.227 或更新版本上,您的組織可以通過[受管設定](/docs/zh-TW/managed-settings)在此變數下保持 [MCP 工具搜尋](/docs/zh-TW/mcp#scale-with-mcp-tool-search)開啟。Claude Code 在該覆蓋就位時發送的內容取決於您如何連接:277在 Claude Code v2.1.227 或更新版本上,您的組織可以通過[受管設定](/docs/zh-TW/managed-settings)在此變數下保持 [MCP 工具搜尋](/docs/zh-TW/mcp#scale-with-mcp-tool-search)開啟。Claude Code 在該覆蓋就位時發送的內容取決於您如何連接:

271 278 


340當發現的 ID 與選擇器中已有的列匹配時,它不會獲得自己的列:347當發現的 ID 與選擇器中已有的列匹配時,它不會獲得自己的列:

341 348 

342* 相同 ID:發現的 ID 完全匹配現有列的 ID,或兩個 ID 是同一 [Fable](/docs/zh-TW/model-config#work-with-fable) 版本的拼寫。349* 相同 ID:發現的 ID 完全匹配現有列的 ID,或兩個 ID 是同一 [Fable](/docs/zh-TW/model-config#work-with-fable) 版本的拼寫。

343* 與內建別名相同的模型:當發現的明確 ID 命名內建別名目前解析到的模型時,選擇器僅顯示別名列。例如,當 `sonnet` 解析為 `claude-sonnet-5` 時,發現的 `claude-sonnet-5` 會折疊到 `sonnet` 列中,而發現的 `claude-sonnet-4-6` 仍會獲得自己的列。在 v2.1.197 之前,Claude Code 沒有將這些 ID 折疊到內建列中,因此 `claude-sonnet-5` 也會獲得自己的「來自 gateway」列。350* 與內建別名相同的模型:當發現的明確 ID 命名內建別名目前解析到的模型時,選擇器僅顯示別名列。例如,當 `sonnet` 解析為 `claude-sonnet-5-5` 時,發現的 `claude-sonnet-5-5` 會折疊到 `sonnet` 列中,而發現的 `claude-sonnet-5` 仍會獲得自己的列。在 v2.1.197 之前,Claude Code 沒有將這些 ID 折疊到內建列中,因此別名解析到的 ID 也會獲得自己的「來自 gateway」列。

344 351 

345結果被快取到 `~/.claude/cache/gateway-models.json`,或在 Windows 上 `%USERPROFILE%\.claude\cache\gateway-models.json`,並在每次啟動時刷新。如果您設定 [`CLAUDE_CONFIG_DIR`](/docs/zh-TW/env-vars),快取會改為位於該目錄下。如果請求失敗或 gateway 未實現 `/v1/models`,選擇器會回退到上次啟動的快取清單或內建模型清單。如果您的 gateway 在不匹配發現篩選器的別名下提供 Claude 模型,開發人員可以使用[模型配置](/docs/zh-TW/model-config)變數手動添加這些別名。352結果被快取到 `~/.claude/cache/gateway-models.json`,或在 Windows 上 `%USERPROFILE%\.claude\cache\gateway-models.json`,並在每次啟動時刷新。如果您設定 [`CLAUDE_CONFIG_DIR`](/docs/zh-TW/env-vars),快取會改為位於該目錄下。如果請求失敗或 gateway 未實現 `/v1/models`,選擇器會回退到上次啟動的快取清單或內建模型清單。如果您的 gateway 在不匹配發現篩選器的別名下提供 Claude 模型,開發人員可以使用[模型配置](/docs/zh-TW/model-config)變數手動添加這些別名。

346 353 

Details

208 208 

209將表中的條件變數新增到相同的 `env` 區塊。受管 `ANTHROPIC_BASE_URL` 被強制執行,無法被開發者的殼層匯出覆蓋,因為 Claude Code 在程序環境和較低優先順序設定上應用它。209將表中的條件變數新增到相同的 `env` 區塊。受管 `ANTHROPIC_BASE_URL` 被強制執行,無法被開發者的殼層匯出覆蓋,因為 Claude Code 在程序環境和較低優先順序設定上應用它。

210 210 

211不要在受管設定中包括 `forceLoginMethod` 或 `forceLoginOrgUUID` 以及閘道認證。任一金鑰在啟動時阻止 `ANTHROPIC_API_KEY`、`ANTHROPIC_AUTH_TOKEN` 和 `apiKeyHelper`,開發者無法繼續。他們看到 `This machine's managed settings require a first-party login`,或在 `"gateway"` 值下看到 [`Administrator policy requires a Cloud gateway sign-in`](/docs/zh-TW/errors#administrator-policy-requires-a-cloud-gateway-sign-in)。211不要在受管設定中包括 `forceLoginMethod`、`forceLoginOrgUUID` 或 `forceLoginGatewayUrl` 以及閘道認證。`forceLoginMethod` 或 `forceLoginOrgUUID`,任一金鑰在啟動時阻止 `ANTHROPIC_API_KEY`、`ANTHROPIC_AUTH_TOKEN` 和 `apiKeyHelper`,開發者無法繼續。他們看到 `This machine's managed settings require a first-party login`,或當檔案將 `forceLoginMethod` 設定為 `"gateway"` 或設定 `forceLoginGatewayUrl` 時看到 [`Administrator policy requires a Cloud gateway sign-in`](/docs/zh-TW/errors#administrator-policy-requires-a-cloud-gateway-sign-in)。

212 212 

213[伺服器受管設定](/docs/zh-TW/server-managed-settings#platform-availability)傳遞需要直接連接到 `api.anthropic.com`,因此無法到達閘道路由的工作階段。閘道部署使用此檔案型受管設定路徑,它強制執行相同的金鑰。213[伺服器受管設定](/docs/zh-TW/server-managed-settings#platform-availability)傳遞需要直接連接到 `api.anthropic.com`,因此無法到達閘道路由的工作階段。閘道部署使用此檔案型受管設定路徑,它強制執行相同的金鑰。

214 214 

managed-mcp.md +1 −1

Details

526 監控 MCP 使用526 監控 MCP 使用

527</h2>527</h2>

528 528 

529當 [OpenTelemetry 匯出](/docs/zh-TW/monitoring-usage) 配置時,Claude Code 可以記錄使用者呼叫的 MCP 伺服器和工具。設定 `OTEL_LOG_TOOL_DETAILS=1` 以在工具事件中包含 MCP 伺服器和工具名稱,然後在您的收集器中聚合它們以查看您的使用者實際連接到的伺服器。請參閱 [監控](/docs/zh-TW/monitoring-usage) 以設定匯出器和完整事件架構。529當您配置 [OpenTelemetry 匯出](/docs/zh-TW/monitoring-usage) 時,Claude Code 可以記錄使用者呼叫的 MCP 伺服器和工具。設定 `OTEL_LOG_TOOL_DETAILS=1` 以在工具事件和 [成本和權杖計數器](/docs/zh-TW/monitoring-usage#cost-counter) 中包含 MCP 伺服器和工具名稱,然後在您的收集器中聚合它們以查看您的使用者實際連接到的伺服器。請參閱 [監控](/docs/zh-TW/monitoring-usage) 以設定匯出器和完整事件架構。

530 530 

531<h2 id="configuration-summary">531<h2 id="configuration-summary">

532 配置摘要532 配置摘要

Details

75| [伺服器受管設定](/docs/zh-TW/server-managed-settings) | 在 claude.ai 管理主控台中,或在自託管[Claude 應用程式閘道](/docs/zh-TW/claude-apps-gateway)上 | 在啟動時擷取並每小時輪詢一次;請參閱[需要批准的變更](#where-and-when-a-policy-applies) | 您想要一個地方為 claude.ai 組織變更原則,而不需要接觸每台機器 |75| [伺服器受管設定](/docs/zh-TW/server-managed-settings) | 在 claude.ai 管理主控台中,或在自託管[Claude 應用程式閘道](/docs/zh-TW/claude-apps-gateway)上 | 在啟動時擷取並每小時輪詢一次;請參閱[需要批准的變更](#where-and-when-a-policy-applies) | 您想要一個地方為 claude.ai 組織變更原則,而不需要接觸每台機器 |

76| MDM 或作業系統層級原則 | 作為 macOS 設定設定檔或 Windows `HKLM` 登錄值,透過 Jamf、Intune、群組原則或類似工具;請參閱[每個機制儲存原則的位置](#where-each-mechanism-stores-the-policy) | 在啟動時讀取並每 30 分鐘檢查一次變更 | 您已經使用 MDM 或群組原則管理裝置 |76| MDM 或作業系統層級原則 | 作為 macOS 設定設定檔或 Windows `HKLM` 登錄值,透過 Jamf、Intune、群組原則或類似工具;請參閱[每個機制儲存原則的位置](#where-each-mechanism-stores-the-policy) | 在啟動時讀取並每 30 分鐘檢查一次變更 | 您已經使用 MDM 或群組原則管理裝置 |

77| 基於檔案 | 作為每台機器上系統目錄中的 `managed-settings.json`;請參閱[每個機制儲存原則的位置](#where-each-mechanism-stores-the-policy) | 在啟動時讀取並在檔案變更時重新載入 | 沒有 MDM 的機器、Linux 主機或您自己建置的映像 |77| 基於檔案 | 作為每台機器上系統目錄中的 `managed-settings.json`;請參閱[每個機制儲存原則的位置](#where-each-mechanism-stores-the-policy) | 在啟動時讀取並在檔案變更時重新載入 | 沒有 MDM 的機器、Linux 主機或您自己建置的映像 |

78| HKCU 登錄、Windows 和 WSL | 作為 Windows `HKCU` 登錄值;請參閱[每個機制儲存原則的位置](#where-each-mechanism-stores-the-policy) | 在啟動時讀取並每 30 分鐘檢查一次變更;Claude Code 僅在沒有其他受管來源傳遞原則金鑰且沒有[主機提供的父設定](#let-an-embedding-host-add-policy)提供限制性金鑰時才使用它 | 您無法寫入機器層級 `HKLM` 金鑰 |78| HKCU 登錄、Windows 和 WSL | 作為 Windows `HKCU` 登錄值;請參閱[每個機制儲存原則的位置](#where-each-mechanism-stores-the-policy) | 在啟動時讀取並每 30 分鐘檢查一次變更;Claude Code 僅在沒有[管理文件存在於其上方](#present-admin-documents)且沒有[主機提供的父設定](#let-an-embedding-host-add-policy)提供限制性金鑰時才使用它 | 您無法寫入機器層級 `HKLM` 金鑰 |

79 79 

80Jamf、Iru、Intune 和群組原則的入門範本位於 [MDM 範例儲存庫](https://github.com/anthropics/claude-code/tree/main/examples/mdm)。80Jamf、Iru、Intune 和群組原則的入門範本位於 [MDM 範例儲存庫](https://github.com/anthropics/claude-code/tree/main/examples/mdm)。

81 81 


141 Claude Code 如何結合受管來源141 Claude Code 如何結合受管來源

142</h2>142</h2>

143 143 

144當您的組織向同一部機器提供多個受管來源時,[`managedSourcesBehavior`](/docs/zh-TW/settings-reference#managedsourcesbehavior) 金鑰決定 Claude Code 對其他來源的處理方式:144當您的組織向同一台機器提供多個受管來源時,[`managedSourcesBehavior`](/docs/zh-TW/settings-reference#managedsourcesbehavior) 金鑰決定 Claude Code 對其他來源的處理方式:

145 145 

146* **`"first-wins"`,預設值**:Claude Code 使用提供至少一個原則金鑰的最高排名來源,並忽略其餘來源,而不是合併它們,除了 [從每個管理員來源讀取的金鑰](#keys-read-from-every-admin-source) 中的金鑰。Claude Code 不會對它跳過的來源顯示警告;`/status` [命名它使用的來源和跳過的來源](#read-the-source-in-/status)。146* **`"first-wins"`,預設值**:Claude Code 使用提供至少一個原則金鑰的最高排名來源,並忽略其餘來源,而不是合併它們,除了 [從每個管理員來源讀取的金鑰](#keys-read-from-every-admin-source) 中的金鑰。Claude Code 不會對它跳過的來源顯示警告;`/status` [命名它使用的來源和跳過的來源](#read-the-source-in-/status)。

147* **`"merge"`**:Claude Code 應用提供原則金鑰的每個管理員來源,並按金鑰類型結合它們:在大多數金鑰上,較高排名來源的值適用,列表聯合,鎖定採用最嚴格的值。[組合每個受管來源](#compose-every-managed-source) 說明在何處設定金鑰以及每種金鑰類型如何結合。需要 Claude Code v2.1.242 或更新版本。147* **`"merge"`**:Claude Code 應用提供原則金鑰的每個管理員來源,並按金鑰類型結合它們:在大多數金鑰上,較高排名來源的值適用,列表聯合,鎖定採用最嚴格的值。[組合每個受管來源](#compose-every-managed-source) 說明在何處設定金鑰以及每種金鑰類型如何結合。需要 Claude Code v2.1.242 或更新版本。


149兩個設定以相同方式排名來源。這些術語在本節中重複出現:149兩個設定以相同方式排名來源。這些術語在本節中重複出現:

150 150 

151* **原則金鑰**:除了兩個控制金鑰 [`wslInheritsWindowsSettings`](/docs/zh-TW/settings-reference#wslinheritswindowssettings) 和 [`managedSourcesBehavior`](/docs/zh-TW/settings-reference#managedsourcesbehavior) 之外的任何設定金鑰。只包含這些的受管設定檔或 MDM 原則不計算,Claude Code 會移至下一個來源。151* **原則金鑰**:除了兩個控制金鑰 [`wslInheritsWindowsSettings`](/docs/zh-TW/settings-reference#wslinheritswindowssettings) 和 [`managedSourcesBehavior`](/docs/zh-TW/settings-reference#managedsourcesbehavior) 之外的任何設定金鑰。只包含這些的受管設定檔或 MDM 原則不計算,Claude Code 會移至下一個來源。

152* **管理員來源**:以下前三個來源之一。HKCU 登錄是使用者可寫的,不是其中之一。152* **管理員來源**:下面前三個來源之一。HKCU 登錄是使用者可寫的,不是其中之一。

153 153 

154Claude Code 按此順序檢查來源,最高優先順序優先:154Claude Code 按此順序檢查來源,最高優先順序優先:

155 155 

1561. 遠端設定,從 claude.ai 作為 [伺服器管理的設定](/docs/zh-TW/server-managed-settings) 或通過 [Claude 應用程式閘道](/docs/zh-TW/claude-apps-gateway) 提供。Claude Code 僅在工作階段使用 [符合條件的登入或金鑰](/docs/zh-TW/server-managed-settings#platform-availability) 直接向 Anthropic 的 API 進行身份驗證,或使用 `/login` 登入閘道時才會擷取此來源。在其他提供者上,或當 `ANTHROPIC_BASE_URL` 指向 Anthropic API 以外的地方時,它從下一個來源開始1561. 遠端設定,從 claude.ai 作為 [伺服器管理的設定](/docs/zh-TW/server-managed-settings) 或通過 [Claude 應用程式閘道](/docs/zh-TW/claude-apps-gateway) 提供。Claude Code 僅在工作階段使用 [符合條件的登入或金鑰](/docs/zh-TW/server-managed-settings#platform-availability) 直接向 Anthropic 的 API 進行身份驗證,或使用 `/login` 登入閘道時才會擷取此來源。在其他提供者上,或當 `ANTHROPIC_BASE_URL` 指向 Anthropic API 以外的地方時,它從下一個來源開始

1572. MDM 或作業系統層級原則:macOS plist 或 HKLM 登錄金鑰1572. MDM 或作業系統層級原則:macOS plist 或 HKLM 登錄金鑰

1583. 受管設定檔,`managed-settings.d/*.json` 和 `managed-settings.json` 合併在一起1583. 受管設定檔,`managed-settings.d/*.json` 和 `managed-settings.json` 合併在一起

1594. HKCU 登錄,在 Windows 上,以及在 WSL 上,一旦 HKLM 登錄或 Windows 受管設定檔開啟 [`wslInheritsWindowsSettings`](/docs/zh-TW/settings-reference#wslinheritswindowssettings) 並且 HKCU 值也設定它。Claude Code 僅在上面沒有來源提供原則金鑰且沒有 [主機提供的父設定](#let-an-embedding-host-add-policy) 提供限制性金鑰時才讀取它1594. HKCU 登錄,在 Windows 上,以及在 WSL 上,一旦 HKLM 登錄或 Windows 受管設定檔開啟 [`wslInheritsWindowsSettings`](/docs/zh-TW/settings-reference#wslinheritswindowssettings) 並且 HKCU 值也設定它。Claude Code 僅在其上方沒有管理員文件且沒有 [主機提供的父設定](#let-an-embedding-host-add-policy) 提供限制性金鑰時才讀取它

160 160 

161此圖表顯示排名,以及 Claude Code 在任一設定下從前三個來源讀取的跨來源金鑰的範例:161<span id="present-admin-documents" />

162 162 

163<img src="https://mintcdn.com/claude-code/zuWID2B-Rxm8DEC8/images/managed-source-precedence.svg?fit=max&auto=format&n=zuWID2B-Rxm8DEC8&q=85&s=53f6be49f06eff48e01422c8ae1bc2e6" className="dark:hidden" alt="Diagram showing the four managed settings sources ranked from remote settings at the top through MDM, managed settings files, and the HKCU registry at the bottom. By default the first source with a policy key supplies the policy and the rest are skipped; with managedSourcesBehavior set to merge, every admin source with a policy key contributes, combined by kind of key, and the HKCU registry stays out. A side panel shows that cross-source keys such as the sandbox locks, forceRemoteSettingsRefresh, and the per-variable env merge are read from every admin source, which excludes the HKCU registry." width="680" height="330" data-path="images/managed-source-precedence.svg" />163Claude Code 永遠不會在存在的管理員文件下方應用使用者可寫的 HKCU 登錄。當文件將任何原則金鑰設定為 `null` 以外的值時,該文件就存在,即使是 Claude Code 無法讀取的值。無法讀取的 HKLM 值、受管設定檔或 `managed-settings.d` 目錄也存在。在 WSL 上,`/etc/claude-code` 也是使用者可寫的,[`wslInheritsWindowsSettings`](/docs/zh-TW/settings-reference#wslinheritswindowssettings) 項目說明 Windows 文件何時位於其上方。

164 164 

165<img src="https://mintcdn.com/claude-code/zuWID2B-Rxm8DEC8/images/managed-source-precedence-dark.svg?fit=max&auto=format&n=zuWID2B-Rxm8DEC8&q=85&s=ae407a9a08a3d680e80cf1a2af845d71" className="hidden dark:block" alt="Diagram showing the four managed settings sources ranked from remote settings at the top through MDM, managed settings files, and the HKCU registry at the bottom. By default the first source with a policy key supplies the policy and the rest are skipped; with managedSourcesBehavior set to merge, every admin source with a policy key contributes, combined by kind of key, and the HKCU registry stays out. A side panel shows that cross-source keys such as the sandbox locks, forceRemoteSettingsRefresh, and the per-variable env merge are read from every admin source, which excludes the HKCU registry." width="680" height="330" data-path="images/managed-source-precedence-dark.svg" />165此圖表顯示排名,以及 Claude Code 在任一設定下從前三個來源讀取的跨來源金鑰示例:

166 

167<img src="https://mintcdn.com/claude-code/zuWID2B-Rxm8DEC8/images/managed-source-precedence.svg?fit=max&auto=format&n=zuWID2B-Rxm8DEC8&q=85&s=53f6be49f06eff48e01422c8ae1bc2e6" className="dark:hidden" alt="圖表顯示四個受管設定來源的排名,從頂部的遠端設定到 MDM、受管設定檔和底部的 HKCU 登錄。預設情況下,具有原則金鑰的第一個來源提供原則,其餘的被跳過;將 managedSourcesBehavior 設定為合併時,每個具有原則金鑰的管理員來源都會貢獻,按金鑰類型結合,HKCU 登錄保持不變。側面板顯示跨來源金鑰(如沙箱鎖、forceRemoteSettingsRefresh 和每個變數 env 合併)從每個管理員來源讀取,不包括 HKCU 登錄。" width="680" height="330" data-path="images/managed-source-precedence.svg" />

168 

169<img src="https://mintcdn.com/claude-code/zuWID2B-Rxm8DEC8/images/managed-source-precedence-dark.svg?fit=max&auto=format&n=zuWID2B-Rxm8DEC8&q=85&s=ae407a9a08a3d680e80cf1a2af845d71" className="hidden dark:block" alt="圖表顯示四個受管設定來源的排名,從頂部的遠端設定到 MDM、受管設定檔和底部的 HKCU 登錄。預設情況下,具有原則金鑰的第一個來源提供原則,其餘的被跳過;將 managedSourcesBehavior 設定為合併時,每個具有原則金鑰的管理員來源都會貢獻,按金鑰類型結合,HKCU 登錄保持不變。側面板顯示跨來源金鑰(如沙箱鎖、forceRemoteSettingsRefresh 和每個變數 env 合併)從每個管理員來源讀取,不包括 HKCU 登錄。" width="680" height="330" data-path="images/managed-source-precedence-dark.svg" />

166 170 

167<h3 id="keys-read-from-every-admin-source">171<h3 id="keys-read-from-every-admin-source">

168 從每個管理員來源讀取的金鑰172 從每個管理員來源讀取的金鑰


170 174 

171在預設的 `"first-wins"` 設定下,Claude Code 僅從 [它選擇的來源](#how-claude-code-combines-managed-sources) 讀取大多數金鑰,並忽略較低排名來源中的值,即使選定的來源未設定該金鑰。175在預設的 `"first-wins"` 設定下,Claude Code 僅從 [它選擇的來源](#how-claude-code-combines-managed-sources) 讀取大多數金鑰,並忽略較低排名來源中的值,即使選定的來源未設定該金鑰。

172 176 

173少數金鑰的工作方式不同。Claude Code 從每個管理員來源讀取它們,因此當選定的來源未設定時,較低排名的 MDM 原則或受管設定檔仍然可以設定它們。Claude Code 將使用者可寫的 HKCU 登錄排除在該掃描之外;當 HKCU 是唯一的來源且沒有主機提供父設定時,HKCU 適用於任何選定的來源。177少數金鑰的工作方式不同。Claude Code 從每個管理員來源讀取它們,因此當選定的來源不設定時,較低排名的 MDM 原則或受管設定檔仍然可以設定它們。Claude Code 將使用者可寫的 HKCU 登錄排除在該掃描之外;當 HKCU 是唯一的來源且沒有主機提供父設定時,HKCU 像任何選定的來源一樣應用。

174 178 

175跨來源金鑰包括:179跨來源金鑰包括:

176 180 

177* `sandbox.network.allowManagedDomainsOnly` 和 `sandbox.filesystem.allowManagedReadPathsOnly`:任何管理員來源中的 `true` 會開啟鎖定。當鎖定開啟時,Claude Code 會聯合它鎖定的允許清單,`sandbox.network.allowedDomains` 連同 `WebFetch(domain:...)` 允許規則,或 `sandbox.filesystem.allowRead`,跨每個管理員來源。沒有鎖定,Claude Code 會將允許清單視為任何其他金鑰,因此在 `"first-wins"` 下,未選定的管理員來源的允許清單會被忽略181* `sandbox.network.allowManagedDomainsOnly` 和 `sandbox.filesystem.allowManagedReadPathsOnly`:任何管理員來源中的 `true` 會開啟鎖定。當鎖定開啟時,Claude Code 聯合它鎖定的允許清單,`sandbox.network.allowedDomains` 與 `WebFetch(domain:...)` 允許規則,或 `sandbox.filesystem.allowRead`,跨每個管理員來源。沒有鎖定,Claude Code 將允許清單視為任何其他金鑰,因此在 `"first-wins"` 下,未選定的管理員來源的允許清單被忽略

178* `allowAllClaudeAiMcps`182* `allowAllClaudeAiMcps`

179* `allowManagedMcpServersOnly`:任何管理員來源中的 `true` 會開啟 MCP 允許清單鎖定。當鎖定開啟時,受管的 `allowedMcpServers` 列表來自設定一個的最高排名管理員來源。伺服器管理的列表會取代較低來源的列表,而不是與其結合。183* `allowManagedMcpServersOnly`:任何管理員來源中的 `true` 會開啟 MCP 允許清單鎖定。當鎖定開啟時,受管的 `allowedMcpServers` 列表來自設定列表的最高排名管理員來源。伺服器管理的列表替換較低來源的列表,而不是與其結合。

180 184 

181 如果沒有管理員來源設定列表,每個通過拒絕清單的伺服器都會載入,除非 [父設定](#let-an-embedding-host-add-policy) 提供列表。185 如果沒有管理員來源設定列表,每個通過拒絕清單的伺服器都會載入,除非 [父設定](#let-an-embedding-host-add-policy) 提供列表。

182 186 

183 沒有鎖定,Claude Code 從它應用的受管來源讀取 `allowedMcpServers`,因此在 `"first-wins"` 下,未選定的管理員來源的列表會被忽略。需要 Claude Code v2.1.273 或更新版本187 沒有鎖定,Claude Code 從它應用的受管來源讀取 `allowedMcpServers`,因此在 `"first-wins"` 下,未選定的管理員來源的列表被忽略。需要 Claude Code v2.1.273 或更新版本

184* `deniedMcpServers` 和 [`disableClaudeAiConnectors`](/docs/zh-TW/settings-reference#disableclaudeaiconnectors):任何管理員來源中的項目或 `true` 都會適用。需要 Claude Code v2.1.273 或更新版本188* `deniedMcpServers` 和 [`disableClaudeAiConnectors`](/docs/zh-TW/settings-reference#disableclaudeaiconnectors):任何管理員來源中的項目或 `true` 適用。需要 Claude Code v2.1.273 或更新版本

185* 沙箱二進位路徑 `sandbox.bwrapPath` 和 `sandbox.socatPath`189* 沙箱二進位路徑 `sandbox.bwrapPath` 和 `sandbox.socatPath`

186* 沙箱 `ripgrep` 二進位,[`sandbox.ripgrep`](/docs/zh-TW/settings-reference#sandbox-ripgrep)190* 沙箱 `ripgrep` 二進位,[`sandbox.ripgrep`](/docs/zh-TW/settings-reference#sandbox-ripgrep)

187* `sandbox.filesystem.disabled` 和 `sandbox.network.strictAllowlist`191* `sandbox.filesystem.disabled` 和 `sandbox.network.strictAllowlist`

188* [`useAutoModeDuringPlan`](/docs/zh-TW/settings-reference#useautomodeduringplan)、[`syncClaudeAiSkills`](/docs/zh-TW/settings-reference#syncclaudeaiskills) 和 [`syncClaudeAiPlugins`](/docs/zh-TW/settings-reference#syncclaudeaiplugins),其中任何管理員來源的 `false` 會關閉該行為。開發人員的使用者或本機設定中的 `false` 也會關閉它;每個金鑰只能拒絕192* [`useAutoModeDuringPlan`](/docs/zh-TW/settings-reference#useautomodeduringplan)、[`syncClaudeAiSkills`](/docs/zh-TW/settings-reference#syncclaudeaiskills) 和 [`syncClaudeAiPlugins`](/docs/zh-TW/settings-reference#syncclaudeaiplugins),其中任何管理員來源的 `false` 會關閉行為。開發人員的使用者或本機設定中的 `false` 也會關閉它;每個金鑰只能拒絕

189* [`enableArtifact`](/docs/zh-TW/settings-reference#enableartifact),其中任何管理員來源的 `false` 會關閉 [Artifact 工具](/docs/zh-TW/artifacts)。開發人員的使用者、專案或本機設定中的 `false` 也會關閉它,沒有來源會將其重新開啟;請參閱 [哪些較低層級的值仍然計算](/docs/zh-TW/settings#exceptions-to-managed-settings-precedence)。需要 Claude Code v2.1.242 或更新版本193* [`enableArtifact`](/docs/zh-TW/settings-reference#enableartifact),其中任何管理員來源的 `false` 會關閉 [Artifact 工具](/docs/zh-TW/artifacts)。開發人員的使用者、專案或本機設定中的 `false` 也會關閉它,沒有來源會將其開啟;請參閱 [哪些較低層級的值仍然計算](/docs/zh-TW/settings#exceptions-to-managed-settings-precedence)。需要 Claude Code v2.1.242 或更新版本

190* [`maxEffortLevel`](/docs/zh-TW/settings-reference#maxeffortlevel),其中任何管理員來源中的最低上限適用。如果開發人員在自己的設定或使用 `--settings` 中設定較低的上限,Claude Code 會應用該上限;沒有來源可以提高上限。需要 Claude Code v2.1.267 或更新版本194* [`maxEffortLevel`](/docs/zh-TW/settings-reference#maxeffortlevel),其中任何管理員來源中的最低上限適用。如果開發人員在自己的設定或使用 `--settings` 中設定較低的上限,Claude Code 會應用該上限;沒有來源可以提高上限。需要 Claude Code v2.1.267 或更新版本

191* `attribution` 中的提交預告片選擇退出,或在已棄用的 `includeCoAuthoredBy` 中,來自任何層級195* `attribution` 中的提交預告片選擇退出,或在已棄用的 `includeCoAuthoredBy` 中,來自任何層級

192* [`forceRemoteSettingsRefresh`](/docs/zh-TW/server-managed-settings)196* [`forceRemoteSettingsRefresh`](/docs/zh-TW/server-managed-settings)

193* 跨管理員來源的 `env`,按變數合併:每個變數來自定義它的最高優先順序來源,因此較低來源填充較高來源未設定的變數。少數變數遵循自己的規則;[受管來源間的按金鑰例外](/docs/zh-TW/server-managed-settings#per-key-exceptions-across-managed-sources) 命名每一個。需要 Claude Code v2.1.223 或更新版本。在 v2.1.223 之前,Claude Code 僅應用選定來源的整個 `env` 區塊197* `env`,跨管理員來源按變數合併:每個變數來自定義它的最高優先順序來源,因此較低來源填充較高來源未設定的變數。少數變數遵循自己的規則;[跨受管來源的每個金鑰例外](/docs/zh-TW/server-managed-settings#per-key-exceptions-across-managed-sources) 命名每一個。需要 Claude Code v2.1.223 或更新版本。在 v2.1.223 之前,Claude Code 僅應用選定來源的整個 `env` 區塊

194 198 

195[閘道登入金鑰](#choose-a-delivery-mechanism) 遵循單獨的規則。Claude Code 永遠不會從伺服器管理的設定讀取它們,因此當伺服器管理的設定是選定的來源時,機器上排名最高的管理員來源仍然提供它們。排名低於該來源的管理員來源中的值,或 HKCU 登錄中的值,會被忽略。199[閘道登入金鑰](#choose-a-delivery-mechanism) 遵循單獨的規則。Claude Code 永遠不會從伺服器管理的設定讀取它們,因此當伺服器管理的設定是選定的來源時,機器上具有原則金鑰的最高排名管理員來源仍然提供它們。在排名低於該來源的管理員來源中的值,或在 HKCU 登錄中的值,被忽略。

196 200 

197當管理員來源設定 `allowManagedMcpServersOnly` 或 `allowedMcpServers` 列表且該值不是生效的值時,`/status` 和 `claude doctor` 會命名該來源和金鑰。201當管理員來源設定 `allowManagedMcpServersOnly` 或 `allowedMcpServers` 列表且該值不是生效的值時,`/status` 和 `claude doctor` 命名該來源和金鑰。

198 202 

199<h3 id="compose-every-managed-source">203<h3 id="compose-every-managed-source">

200 組合每個受管來源204 組合每個受管來源

201</h3>205</h3>

202 206 

203要讓 Claude Code 應用您的組織提供的每個管理員來源,請在您部署的最高排名來源中將 [`managedSourcesBehavior`](/docs/zh-TW/settings-reference#managedsourcesbehavior) 設定為 `"merge"`。Claude Code 僅從攜帶金鑰或原則金鑰的最高排名來源讀取金鑰,因此較低來源無法選擇自己合併到上面的來源,並且從不接收伺服器管理設定的機器也需要在其 MDM 設定檔中有金鑰。使用者可寫的 HKCU 登錄永遠不會與另一個來源合併。需要 Claude Code v2.1.242 或更新版本。207要讓 Claude Code 應用您的組織提供的每個管理員來源,請在您部署的最高排名來源中將 [`managedSourcesBehavior`](/docs/zh-TW/settings-reference#managedsourcesbehavior) 設定為 `"merge"`。Claude Code 僅從具有金鑰或原則金鑰的最高排名來源讀取該金鑰,因此較低來源無法選擇自己合併到上面的來源,永遠不會接收伺服器管理設定的機器也需要在其 MDM 設定檔中有該金鑰。使用者可寫的 HKCU 登錄永遠不會與另一個來源合併。需要 Claude Code v2.1.242 或更新版本。

204 208 

205在 `"merge"` 下,Claude Code 添加較低來源的列表項目,例如 `permissions.allow` 規則和 hooks,到原則,因此僅在排名低於最高來源的每個來源都在管理員控制下時才開啟它。209在 `"merge"` 下,Claude Code 添加較低來源的列表項目,例如 `permissions.allow` 規則和 hooks,到原則,因此僅在排名低於最高來源的每個來源都在管理員控制下時才開啟它。

206 210 

207此表格顯示 Claude Code 在 `"merge"` 下如何結合每種金鑰。[`managedSourcesBehavior` 項目](/docs/zh-TW/settings-reference#managedsourcesbehavior) 命名三個行中的每個金鑰:限制允許清單、整體採用的值和僅從最高排名來源讀取的金鑰。211此表格顯示 Claude Code 在 `"merge"` 下如何結合每種金鑰。[`managedSourcesBehavior` 項目](/docs/zh-TW/settings-reference#managedsourcesbehavior) 命名三行中的每個金鑰:限制允許清單、整體採用的值和僅從最高排名來源讀取的金鑰。

208 212 

209| 金鑰類型 | Claude Code 如何結合它 | 範例 |213| 金鑰類型 | Claude Code 如何結合它 | 示例 |

210| :- | :- | :- |214| :- | :- | :- |

211| 列表 | 結合來自每個來源的項目 | `permissions.allow`、`hooks`、`sandbox.network.allowedDomains`、`deniedMcpServers` |215| 列表 | 結合來自每個來源的項目 | `permissions.allow`、`hooks`、`sandbox.network.allowedDomains`、`deniedMcpServers`、`deniedModels` |

212| 鎖定 | 應用任何來源設定的最嚴格值;較寬鬆的值僅從最高排名來源適用 | `allowManagedHooksOnly`、`permissions.disableBypassPermissionsMode`、`crossSessionInbound` |216| 鎖定 | 應用任何來源設定的最嚴格值;較寬鬆的值僅從最高排名來源適用 | `allowManagedHooksOnly`、`permissions.disableBypassPermissionsMode`、`crossSessionInbound`、`availableModelsMatch` |

213| 限制允許清單 | 從設定它的最高排名來源整體採用列表,不添加來自較低來源的項目 | `availableModels`、`allowedMcpServers`、`strictKnownMarketplaces`、`allowedChannelPlugins` 和 `fallbackModel` 鏈 |217| 限制允許清單 | 從設定它的最高排名來源整體採用列表,不添加來自較低來源的項目 | `availableModels`、`allowedMcpServers`、`strictKnownMarketplaces`、`allowedChannelPlugins` 和 `fallbackModel` 鏈 |

214| 整體採用的值 | 從設定它的最高排名來源整體採用值,不結合來自較低來源的項目或欄位 | `sandbox.credentials.awsPairs`、`sandbox.ripgrep` |218| 整體採用的值 | 從設定它的最高排名來源整體採用值,不結合來自較低來源的項目或欄位 | `sandbox.credentials.awsPairs`、`sandbox.ripgrep` |

215| 提供的 MCP 伺服器 | 結合來自每個來源的伺服器名稱;當兩個來源設定相同名稱時,應用較高排名來源的整個項目 | `managedMcpServers` |219| 提供的 MCP 伺服器 | 結合來自每個來源的伺服器名稱;當兩個來源設定相同名稱時,應用較高排名來源的整個項目 | `managedMcpServers` |

216| 僅從最高排名來源讀取的金鑰 | 忽略每個較低來源中的金鑰,即使最高排名來源未設定它 | 認證幫助程式,例如 `apiKeyHelper`、登入 PIN,例如 `forceLoginOrgUUID`、`modelPicker`、`permissions.defaultMode` |220| 僅從最高排名來源讀取的金鑰 | 忽略每個較低來源中的金鑰,即使最高排名來源未設定它 | 認證幫助程式,例如 `apiKeyHelper`、登入 pin,例如 `forceLoginOrgUUID`、`modelPicker`、`permissions.defaultMode` |

217| `env` | 在任一設定下跨管理員來源按變數合併,如 [從每個管理員來源讀取的金鑰](#keys-read-from-every-admin-source) 所述 | |221| `env` | 在任一設定下跨管理員來源按變數合併,如 [從每個管理員來源讀取的金鑰](#keys-read-from-every-admin-source) 所述 | |

218| 每個其他金鑰 | 從設定它的最高排名來源採用值 | `model`、`cleanupPeriodDays` |222| 所有其他金鑰 | 從設定它的最高排名來源採用值 | `model`、`cleanupPeriodDays` |

219 223 

220要確認機器上結合了哪些來源,[讀取 `/status` 中的 `Setting sources` 行](#read-the-source-in-/status);該部分說明每個標籤的含義。224要確認機器上結合了哪些來源,[讀取 `/status` 中的 `Setting sources` 行](#read-the-source-in-/status);該部分說明每個標籤的含義。

221 225 


223 使用幫助程式計算原則227 使用幫助程式計算原則

224</h3>228</h3>

225 229 

226[`policyHelper`](/docs/zh-TW/settings-reference#policyhelper) 是您的 MDM 原則或受管設定檔命名的可執行檔,Claude Code 在啟動時運行它以計算受管設定。當選定的來源配置一個並且幫助程式發出 `managedSettings` 物件時,該輸出會改變 Claude Code 讀取的內容:230[`policyHelper`](/docs/zh-TW/settings-reference#policyhelper) 是您的 MDM 原則或受管設定檔命名的可執行檔,Claude Code 在啟動時運行它以計算受管設定。當選定的來源配置一個並且幫助程式發出 `managedSettings` 物件時,該輸出改變 Claude Code 讀取的內容:

227 231 

228* **發出的 `managedSettings` 物件是工作階段的唯一受管設定**,包括 [它以其他方式從每個管理員來源讀取的金鑰](#keys-read-from-every-admin-source),除了 [`forceRemoteSettingsRefresh`,它有自己的啟動規則](/docs/zh-TW/settings-reference#forceremotesettingsrefresh)232* **發出的 `managedSettings` 物件是工作階段的唯一受管設定**,包括 [它在其他情況下從每個管理員來源讀取的金鑰](#keys-read-from-every-admin-source),除了 [`forceRemoteSettingsRefresh`,它有自己的啟動規則](/docs/zh-TW/settings-reference#forceremotesettingsrefresh)

229 233 

230有關幫助程式運行失敗的情況以及 Claude Code 在失敗時的處理方式,請參閱 [幫助程式失敗](/docs/zh-TW/settings-reference#helper-failures)。234有關哪些幫助程式運行失敗,以及 Claude Code 在失敗時的處理方式,請參閱 [幫助程式失敗](/docs/zh-TW/settings-reference#helper-failures)。

231 235 

232<span id="parent-settings-from-embedding-hosts" />236<span id="parent-settings-from-embedding-hosts" />

233 237 


245 249 

246要讓 Claude Code 將父設定與管理員來源合併,請在最高優先順序受管來源中將 [`parentSettingsBehavior`](/docs/zh-TW/settings-reference#parentsettingsbehavior) 設定為 `"merge"`;Claude Code 僅從該來源讀取金鑰。250要讓 Claude Code 將父設定與管理員來源合併,請在最高優先順序受管來源中將 [`parentSettingsBehavior`](/docs/zh-TW/settings-reference#parentsettingsbehavior) 設定為 `"merge"`;Claude Code 僅從該來源讀取金鑰。

247 251 

248Claude Code 然後僅保留主機限制 Claude 可以執行的操作的值,有一個需要了解的間隙:除非您也設定 `allowManaged*Only` 鎖定,主機的權限允許規則和沙箱允許清單仍然適用。請參閱 [限制父設定](/docs/zh-TW/claude-apps-gateway#restrict-parent-settings) 以了解鎖定。252Claude Code 然後僅保留限制 Claude 可以做什麼的主機值,有一個需要了解的間隙:除非您也設定 `allowManaged*Only` 鎖定,主機的權限允許規則和沙箱允許清單仍然適用。請參閱 [限制父設定](/docs/zh-TW/claude-apps-gateway#restrict-parent-settings) 以了解鎖定。

249 253 

250[`policyHelper`](/docs/zh-TW/settings-reference#policyhelper) 可以關閉父合併,無論此金鑰如何;其項目說明何時。254[`policyHelper`](/docs/zh-TW/settings-reference#policyhelper) 可以關閉父合併,無論此金鑰如何;其項目說明何時。

251 255 

252Claude Code 也對父提供的值本身應用這些檢查:256Claude Code 也對父提供的值本身應用這些檢查:

253 257 

254* 當任何管理員來源設定 `allowManagedPermissionRulesOnly` 時,Claude Code 會在讀取時刪除 [父提供的](/docs/zh-TW/claude-apps-gateway#restrict-parent-settings) 權限允許規則和 `additionalDirectories`,即使較高優先順序來源未設定金鑰。金鑰對您自己的權限規則的影響來自 Claude Code 應用的受管設定,或來自您選擇合併的父設定258* 當任何管理員來源設定 `allowManagedPermissionRulesOnly` 時,Claude Code 在讀取時刪除 [父提供的](/docs/zh-TW/claude-apps-gateway#restrict-parent-settings) 權限允許規則和 `additionalDirectories`,即使較高優先順序來源未設定金鑰。金鑰對您自己的權限規則的影響來自 Claude Code 應用的受管設定,或來自您選擇合併的父設定

255* Claude Code 強制執行它應用的受管設定中的 `forceLoginOrgUUID` 或 `allowedMcpServers` 值,並阻止父提供的值。在 MCP 允許清單鎖定之外,Claude Code 不應用的較低管理員來源中的值既不應用也不阻止父的值。259* Claude Code 強制執行它應用的受管設定中的 `forceLoginOrgUUID` 或 `allowedMcpServers` 值,並阻止父提供的值。在 MCP 允許清單鎖定之外,Claude Code 不應用的較低管理員來源中的值既不適用也不阻止父的。

256 260 

257 在 Claude Code v2.1.273 或更新版本上,當 `allowManagedMcpServersOnly` 開啟時,來自設定一個的最高排名管理員來源的 `allowedMcpServers` 列表適用並阻止父的值,作為 [跨來源金鑰](#keys-read-from-every-admin-source)。父的列表僅在沒有管理員來源設定一個時適用。[`managedSourcesBehavior`](/docs/zh-TW/settings-reference#managedsourcesbehavior) 項目說明在 `"merge"` 下哪個來源提供每個金鑰。在 v2.1.223 之前,任何管理員來源中的值都會阻止父的值261 在 Claude Code v2.1.273 或更新版本上,當 `allowManagedMcpServersOnly` 開啟時,來自設定列表的最高排名管理員來源的 `allowedMcpServers` 列表適用並阻止父的,作為 [跨來源金鑰](#keys-read-from-every-admin-source)。父的列表僅在沒有管理員來源設定列表時適用。[`managedSourcesBehavior`](/docs/zh-TW/settings-reference#managedsourcesbehavior) 項目說明在 `"merge"` 下哪個來源提供每個金鑰。在 v2.1.223 之前,任何管理員來源中的值阻止父的

258* 對於 `availableModels`,Claude Code 強制執行它應用的受管設定中的值並阻止父提供的列表262* 對於 `availableModels`,Claude Code 強制執行它應用的受管設定中的值,並阻止父提供的列表

259* 對於 `strictKnownMarketplaces`,Claude Code 同樣強制執行它應用的受管設定中的列表並阻止父提供的列表。父的列表僅在沒有應用的受管來源設定一個時適用。需要 Claude Code v2.1.282 或更新版本263* 對於 `strictKnownMarketplaces`,Claude Code 同樣強制執行它應用的受管設定中的列表,並阻止父提供的列表。父的列表僅在沒有應用的受管來源設定列表時適用。需要 Claude Code v2.1.282 或更新版本

260* 父提供的 `blockedMarketplaces` 除了受管來源設定的任何封鎖清單外還會適用。需要 Claude Code v2.1.282 或更新版本264* 父提供的 `blockedMarketplaces` 除了受管來源設定的任何拒絕清單外還適用。需要 Claude Code v2.1.282 或更新版本

261 265 

262<h4 id="keep-cowork-folder-access-when-only-managed-rules-apply">266<h4 id="keep-cowork-folder-access-when-only-managed-rules-apply">

263 當僅應用受管規則時保持 Cowork 資料夾存取267 當僅應用受管規則時保持 Cowork 資料夾存取

264</h4>268</h4>

265 269 

266Claude Desktop 應用程式中的 [Cowork](https://claude.com/docs/cowork/overview) 在 Claude Code 上運行其工作階段,並通過它在啟動工作階段時提供的允許規則授予每個工作階段對其工作資料夾(例如使用者連接的資料夾)的存取權限。當您的受管原則設定 [`allowManagedPermissionRulesOnly`](/docs/zh-TW/settings-reference#allowmanagedpermissionrulesonly) 時,Claude Code 僅保留受管原則中的允許規則:它刪除主機作為父設定、`--allowedTools` 或設定檔中提供的允許規則,因此對這些資料夾的寫入會失去預先批准。在要求編輯前的 Cowork 工作階段中,Cowork 無法顯示提示,Claude 將每次寫入報告為被阻止,因為路徑解析為受保護位置或連接資料夾外的路徑。270[Cowork](https://claude.com/docs/cowork/overview) 在 Claude Desktop 應用程式中在 Claude Code 上運行其工作階段,並通過它在啟動工作階段時提供的允許規則授予每個工作階段對其工作資料夾(例如使用者連接的資料夾)的存取權限。當您的受管原則設定 [`allowManagedPermissionRulesOnly`](/docs/zh-TW/settings-reference#allowmanagedpermissionrulesonly) 時,Claude Code 僅保留受管原則中的允許規則:它刪除主機作為父設定、`--allowedTools` 或設定檔提供的允許規則,因此對這些資料夾的寫入失去預先批准。在要求編輯前的 Cowork 工作階段中,Cowork 無法顯示提示,Claude 將每次寫入報告為被阻止,因為路徑解析為受保護的位置或連接資料夾外的路徑。

267 271 

268要恢復寫入,請為這些資料夾添加允許規則到 Claude Code [選擇](#precedence-within-the-managed-tier) 的受管來源在這些機器上:在 MDM 管理的機隊上,那是 MDM 原則而不是單獨的受管設定檔。此範例使用檔案形式,MDM 原則採用相同的金鑰。它保持 `allowManagedPermissionRulesOnly` 設定並允許在每個使用者主目錄中的 `CoworkProjects` 資料夾下編輯;將路徑替換為您的使用者連接的資料夾:272要恢復寫入,請為這些資料夾添加允許規則到 Claude Code [選擇](#precedence-within-the-managed-tier) 的受管來源在這些機器上:在 MDM 管理的車隊上,那是 MDM 原則而不是單獨的受管設定檔。此示例使用檔案形式,MDM 原則採用相同的金鑰。它保持 `allowManagedPermissionRulesOnly` 設定並允許在每個使用者主目錄中的 `CoworkProjects` 資料夾下編輯;將路徑替換為您的使用者連接的資料夾:

269 273 

270```json managed-settings.json theme={null}274```json managed-settings.json theme={null}

271{275{


284 開發人員可以更改的內容288 開發人員可以更改的內容

285</h3>289</h3>

286 290 

287開發人員自己的設定檔、`--settings` 值和專案檔案永遠不會覆蓋受管值;[例外](/docs/zh-TW/settings#exceptions-to-managed-settings-precedence) 僅允許更嚴格的較低層級值計算。這些情況位於該規則之外:291開發人員自己的設定檔、`--settings` 值和專案檔案永遠不會覆蓋受管值;[例外](/docs/zh-TW/settings#exceptions-to-managed-settings-precedence) 僅允許較嚴格的較低層級值計算。這些情況位於該規則之外:

288 292 

289* **工作階段的模型**:受管 `model` 是預設值,不是鎖定。`--model` 和 `ANTHROPIC_MODEL` 仍然為該工作階段選擇模型,因此部署 [`availableModels`](/docs/zh-TW/settings-reference#availablemodels) 以限制選擇。293* **工作階段的模型**:受管 `model` 是預設值,不是鎖定。`--model` 和 `ANTHROPIC_MODEL` 仍然為該工作階段選擇模型,因此部署 [`availableModels`](/docs/zh-TW/settings-reference#availablemodels) 以限制選擇。

290* **本機管理員權限**:作為機器上管理員的開發人員可以編輯受管來源本身,這就是為什麼 MDM 工具可以按計劃重新部署設定檔或檔案,以及為什麼 HKLM 登錄和 macOS 受管偏好設定域存在。294* **本機管理員權限**:作為機器上管理員的開發人員可以編輯受管來源本身,這就是為什麼 MDM 工具可以按計劃重新部署設定檔或檔案,以及為什麼 HKLM 登錄和 macOS 受管偏好設定域存在。


332 尋找 Claude Code 丟棄的項目336 尋找 Claude Code 丟棄的項目

333</h3>337</h3>

334 338 

335當受管理設定檔案、MDM 設定檔、登錄檔值或伺服器管理承載未通過架構驗證時,Claude Code 首先跳過它可以修復的個別項目(例如一個無效的權限規則),並為每個項目發出警告,然後丟棄任何頂級金鑰,其值仍然失敗,並繼續強制執行每個剩餘的有效金鑰。339如果受管理設定檔案、MDM 設定檔、登錄檔值或伺服器管理承載未通過架構驗證,Claude Code 首先跳過它可以修復的個別項目(例如一個無效的權限規則),並為每個項目發出警告。Claude Code 然後丟棄任何仍然失敗的值,除非該值屬於[失敗關閉](#keys-that-fail-closed)的金鑰之一。

336 340 

337Claude Code 對 [`policyHelper`](/docs/zh-TW/settings-reference#policyhelper) 發出的 `managedSettings` 更加嚴格:它進行相同的項目修復,但任何倖存的架構違規都會導致整個 helper 執行失敗,在啟動時 Claude Code 拒絕啟動,與 helper 以非零狀態退出的情況相同。341Claude Code 對 [`policyHelper`](/docs/zh-TW/settings-reference#policyhelper) 發出的 `managedSettings` 更加嚴格:它進行相同的項目修復,但任何倖存的架構違規都會導致整個 helper 執行失敗,在啟動時 Claude Code 拒絕啟動,與 helper 以非零狀態退出的情況相同。

338 342 


360 失敗關閉的金鑰364 失敗關閉的金鑰

361</h4>365</h4>

362 366 

363少數強制執行金鑰在無效時不會被丟棄。Claude Code 強制執行更嚴格的備用方案,直到修復該值;該表格顯示了它為每個金鑰強制執行的內容:367當受管理來源設定具有單一限制性值的頂級金鑰(例如 `allowManagedPermissionRulesOnly`、`disableAutoMode` 或 `skipDangerousModePermissionPrompt`)為 Claude Code 無法讀取的內容時,該金鑰讀取為該值,直到您修復它。報告說該金鑰 `was present but invalid`,並命名 Claude Code 將其視為的值。對於 `sandbox` 內的金鑰,請參閱[`sandbox` 內的無效值](#invalid-values-inside-sandbox)。

368 

369這些情況不會失敗關閉:

370 

371* `null` 移除金鑰。

372* 無效的 `disableAllHooks`(即使是引號的布林值)被丟棄並發出警告,因為強制執行 `true` 也會卸載您自己的受管理設定部署的 hook。

373* 對於規則涵蓋的每個其他布林金鑰,字串 `"true"` 或 `"false"` 讀取為該布林值,在 `/status` 中發出通知要求您移除引號。

374 

375Claude Code 按欄位而不是整體丟棄來修復 `permissions`、`autoMode`、`worktree` 和 `attribution` 區塊:

376 

377* 其中的鎖(例如 `permissions.disableBypassPermissionsMode`)讀取為其限制性值。

378* 無效的 `permissions.defaultMode` 讀取為 `default`。

379* 當 `permissions` 中的 `deny` 或 `ask` 列表根本無法讀取時,Claude Code 扣留 `allow` 和 `additionalDirectories`,因此授予永遠不會應用而沒有寫在旁邊的限制。報告命名每個扣留的授予和無法讀取的列表。

380* 在 `autoMode` 中,無法讀取的 `soft_deny` 或 `hard_deny` 列表,或失去無效項目的列表,以相同方式扣留 `allow` 和 `environment`。

381 

382具有單一限制性值的金鑰的失敗關閉規則和按欄位修復需要 Claude Code v2.1.282 或更新版本。

383 

384這些金鑰有自己的備用方案:

364 385 

365| 欄位 | 存在但無效時的行為 |386| 欄位 | 存在但無效時的行為 |

366| :- | :- |387| :- | :- |


369| `httpHookAllowedEnvVars` | Claude Code 強制執行空的受管理[允許清單](/docs/zh-TW/settings-reference#httphookallowedenvvars),直到您修復該值,因此標頭變數只有在另一個設定檔案命名它時才會被插值。如果只有個別項目無效,Claude Code 會剝離該項目並強制執行其餘項目。 |390| `httpHookAllowedEnvVars` | Claude Code 強制執行空的受管理[允許清單](/docs/zh-TW/settings-reference#httphookallowedenvvars),直到您修復該值,因此標頭變數只有在另一個設定檔案命名它時才會被插值。如果只有個別項目無效,Claude Code 會剝離該項目並強制執行其餘項目。 |

370| `allowedChannelPlugins` | Claude Code 強制執行空的允許清單,直到您修復該值,因此傳遞給 `--channels` 的任何頻道外掛都不被允許。如果只有個別項目無效,它會剝離該項目並強制執行其餘項目。 |391| `allowedChannelPlugins` | Claude Code 強制執行空的允許清單,直到您修復該值,因此傳遞給 `--channels` 的任何頻道外掛都不被允許。如果只有個別項目無效,它會剝離該項目並強制執行其餘項目。 |

371| `strictKnownMarketplaces` | 強制執行為空的允許清單,直到修復該值,因此沒有[市場來源](/docs/zh-TW/plugins/org#restrict-what-users-can-install)被允許。無效或無法強制執行的個別項目(例如無法編譯的 `hostPattern` 正規表達式)被剝離,有效子集被強制執行。 |392| `strictKnownMarketplaces` | 強制執行為空的允許清單,直到修復該值,因此沒有[市場來源](/docs/zh-TW/plugins/org#restrict-what-users-can-install)被允許。無效或無法強制執行的個別項目(例如無法編譯的 `hostPattern` 正規表達式)被剝離,有效子集被強制執行。 |

372| `allowManagedHooksOnly` | 視為 `true` 直到修復:[hook 限制](/docs/zh-TW/settings-reference#allowmanagedhooksonly)適用,除非 `disableCommandPluginSources` 明確為 `false`,否則命令來源的外掛被禁用。 |

373| `allowManagedMcpServersOnly` | 視為 `true`。 |

374| `disableCommandPluginSources` | 視為 `true`,因此命令來源的外掛保持禁用,直到修復該值。 |

375| `disableSideloadFlags` | 視為 `true` 直到修復該值,具有為 [`disableSideloadFlags`](/docs/zh-TW/settings-reference#disablesideloadflags) 列出的效果。 |

376| `availableModels` | 強制執行為空的允許清單直到修復,因此只有預設模型可用;非字串項目被剝離,有效子集被強制執行。 |393| `availableModels` | 強制執行為空的允許清單直到修復,因此只有預設模型可用;非字串項目被剝離,有效子集被強制執行。 |

377| `enforceAvailableModels` | 視為 `true`。 |394| [`availableModelsMatch`](/docs/zh-TW/settings-reference#availablemodelsmatch) | 視為 `exact` 直到修復該值。 |

378| `syncClaudeAiPlugins` | 視為 `false`,因此[claude.ai 外掛](/docs/zh-TW/settings-reference#syncclaudeaiplugins)的同步關閉,直到修復該值。 |

379| `forceLoginOrgUUID` | 直到修復該值,不允許任何組織登入。 |395| `forceLoginOrgUUID` | 直到修復該值,不允許任何組織登入。 |

380| `gatewayInternalNetworks` | 當無效值來自機器上最高的受管理來源時,`/login` 拒絕該機器上的每個新[雲端閘道](/docs/zh-TW/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own)登入,直到修復該值。 |396| `gatewayInternalNetworks` | 當無效值來自機器上最高的受管理來源時,`/login` 拒絕該機器上的每個新[雲端閘道](/docs/zh-TW/claude-apps-gateway#allow-a-gateway-on-public-address-space-you-own)登入,直到修復該值。 |

381| `crossSessionInbound` | 視為 `refuse`(最限制性的值),因此入站[跨工作階段訊息](/docs/zh-TW/cross-session-messaging#control-inbound-messages)被拒絕,直到修復該值。開發人員看到[警告](/docs/zh-TW/errors#crosssessioninbound-must-be-one-of-accept-hold-refuse)。 |397| `crossSessionInbound` | 視為 `refuse`(最限制性的值),因此入站[跨工作階段訊息](/docs/zh-TW/cross-session-messaging#control-inbound-messages)被拒絕,直到修復該值。開發人員看到[警告](/docs/zh-TW/errors#crosssessioninbound-must-be-one-of-accept-hold-refuse)。 |

382| `deniedMcpServers` | 個別無效項目被剝離,有效子集被強制執行。完全無效的值被丟棄並發出警告,因為拒絕每個伺服器會阻止政策從未命名的伺服器。 |398| `deniedMcpServers` | 個別無效項目被剝離,有效子集被強制執行。完全無效的值被丟棄並發出警告,因為拒絕每個伺服器會阻止政策從未命名的伺服器。 |

399| [`deniedModels`](/docs/zh-TW/settings-reference#deniedmodels) | 非字串項目被剝離,清單的其餘部分被強制執行。完全無效的值被丟棄並發出警告,在修復前不會阻止任何模型。 |

383| `blockedMarketplaces` | 個別無效項目被剝離,有效子集被強制執行。解析但永遠無法匹配的項目(例如無法編譯的 `hostPattern` 正規表達式)被保留並發出警告。它在修復前不會阻止任何內容,但[市場限制](/docs/zh-TW/plugins/org#restrict-what-users-can-install)保持活躍。完全無效的值被丟棄並發出警告,因為阻止每個市場會阻止政策從未命名的來源。 |400| `blockedMarketplaces` | 個別無效項目被剝離,有效子集被強制執行。解析但永遠無法匹配的項目(例如無法編譯的 `hostPattern` 正規表達式)被保留並發出警告。它在修復前不會阻止任何內容,但[市場限制](/docs/zh-TW/plugins/org#restrict-what-users-can-install)保持活躍。完全無效的值被丟棄並發出警告,因為阻止每個市場會阻止政策從未命名的來源。 |

384| `sandbox.credentials` | 可恢復的無效項目被降級為 `mode: "deny"` 並發出警告;無法恢復的項目被剝離;有效項目保持強制執行。請參閱[受管理設定中的無效認證項目](/docs/zh-TW/settings-reference#invalid-credential-entries-in-managed-settings) |401| `sandbox` | 當區塊內的一個值無效時,Claude Code 不會丟棄整個區塊。對於每種無效欄位發生的情況,請參閱[`sandbox` 內的無效值](#invalid-values-inside-sandbox)。 |

402| `sandbox.credentials` | 可恢復的無效項目被降級為 `mode: "deny"` 並發出警告;無法恢復的項目被剝離;有效項目保持強制執行。請參閱[受管理設定中的無效認證項目](/docs/zh-TW/settings-reference#invalid-credential-entries-in-managed-settings)。 |

403| `strictPluginOnlyCustomization` | 視為 `true`(鎖定所有四個表面),當該值既不是布林值也不是陣列時。此版本不識別為表面的陣列項目不鎖定任何內容;狀態注意計算此類項目,以便您可以檢查它們是否有拼寫錯誤。 |

404| `enabledPlugins` | 無效項目被丟棄並發出警告,其他項目保持強制執行。不是外掛 ID 的映射,或其每個項目都無效的值被整體丟棄並發出警告。 |

385 405 

386`allowedHttpHookUrls` 和 `httpHookAllowedEnvVars` 跨設定檔案合併,因此您的使用者、專案或本機設定中的項目在受管理清單為空時仍然適用。406`allowedHttpHookUrls` 和 `httpHookAllowedEnvVars` 跨設定檔案合併,因此您的使用者、專案或本機設定中的項目在受管理清單為空時仍然適用。

387 407 

388這兩個金鑰和 `allowedChannelPlugins` 的備用方案需要 Claude Code v2.1.267 或更新版本;較早的版本在其值或任何項目無效時丟棄整個金鑰。`strictKnownMarketplaces`、`blockedMarketplaces` 和 `disableSideloadFlags` 備用方案需要 Claude Code v2.1.277 或更新版本;較早的版本在其值或任何項目無效時丟棄整個金鑰。408這兩個金鑰和 `allowedChannelPlugins` 的備用方案需要 Claude Code v2.1.267 或更新版本;較早的版本在其值或任何項目無效時丟棄整個金鑰。`strictKnownMarketplaces` 和 `blockedMarketplaces` 備用方案需要 Claude Code v2.1.277 或更新版本;較早的版本在其值或任何項目無效時丟棄整個金鑰。`strictPluginOnlyCustomization` 和 `enabledPlugins` 備用方案需要 Claude Code v2.1.282 或更新版本。

389 409 

390`requiredMinimumVersion` 和 `requiredMaximumVersion` 按設計開放失敗:無效值被丟棄而不是強制執行。410`requiredMinimumVersion` 和 `requiredMaximumVersion` 按設計開放失敗:無效值被丟棄而不是強制執行。

391 411 

392此容差僅適用於受管理設定。使用者、專案和本機設定檔案保持嚴格:JSON 或頂級形狀驗證失敗的檔案被整體拒絕並報告,失敗的個別項目(例如格式不正確的權限規則)被跳過並發出警告,而檔案的其餘部分適用。412此容差僅適用於受管理設定。使用者、專案和本機設定檔案保持嚴格:JSON 或頂級形狀驗證失敗的檔案被整體拒絕並報告,失敗的個別項目(例如格式不正確的權限規則)被跳過並發出警告,而檔案的其餘部分適用。

393 413 

414<h4 id="invalid-values-inside-sandbox">

415 `sandbox` 內的無效值

416</h4>

417 

418當您的受管理 `sandbox` 區塊中的一個值無效時,Claude Code 不會丟棄整個區塊,因為它會單獨驗證每個欄位。這種按欄位處理需要 Claude Code v2.1.283 或更新版本。在 v2.1.283 之前的版本上,當 `credentials` 外的值無效時,Claude Code 會丟棄除 [`credentials`](/docs/zh-TW/settings-reference#invalid-credential-entries-in-managed-settings) 外的每個 `sandbox` 欄位。

419 

420您為無效欄位獲得的警告會命名該欄位並告訴您它發生了什麼。發生的情況取決於該欄位控制的內容:

421 

422* 如果您將布林金鑰設定為引號的 `"true"` 或 `"false"`,該值計為該布林值。而不是警告,`/status` 顯示通知要求您移除引號。

423* 如果 `failIfUnavailable` 無效,Claude Code 會丟棄該值而不是將其視為 `true`,因此無法讀取的值永遠不會停止整個機隊中的工作階段啟動。

424* Claude Code 將每個其他無效布林視為保持沙箱最嚴格的值,直到您修復它。打開沙箱或其限制之一的金鑰(例如 `enabled` 或 `network.allowManagedDomainsOnly`)計為 `true`。鬆散它的金鑰(例如 `allowUnsandboxedCommands`)計為 `false`。

425* 在 `credentials` 外的列表中,例如 `excludedCommands` 或 `network.allowedDomains`,Claude Code 會丟棄無效項目並保留清單的其餘部分。不是陣列的列表,或沒有有效項目的列表,根本不適用。

426* 當 `network.deniedDomains` 或其中任何項目無效時,Claude Code 也會扣留 `network.allowedDomains`,因此受管理允許清單不會授予任何內容,直到您修復拒絕清單。

427* 當 `filesystem.denyRead`、`filesystem.denyWrite` 或其中任何項目無效時,Claude Code 也會扣留 `filesystem.allowRead` 和 `filesystem.allowWrite`,直到您修復拒絕清單。

428 

394<span id="managed-only-settings" />429<span id="managed-only-settings" />

395 430 

396<h2 id="keys-only-a-managed-source-can-set">431<h2 id="keys-only-a-managed-source-can-set">


401 436 

402其中大多數是鎖定:鎖定所管理的值,例如權限規則或 `sandbox.network.allowedDomains`,是任何層級都可以設定的普通金鑰,而鎖定會告訴 Claude Code 只遵守受管理的值。437其中大多數是鎖定:鎖定所管理的值,例如權限規則或 `sandbox.network.allowedDomains`,是任何層級都可以設定的普通金鑰,而鎖定會告訴 Claude Code 只遵守受管理的值。

403 438 

404該表涵蓋權限、外掛程式和傳遞控制。對於此處未列出的任何金鑰,[設定參考](/docs/zh-TW/settings-reference#all-settings)索引的「範圍」欄會說明它是否為僅受管理;其中剩餘的僅受管理金鑰包括閘道登入 URL、版本、瀏覽器、行動模擬器、SSH 主機、Desktop 本機工作階段、沙箱二進位路徑、模型定價和 CLAUDE.md 控制。439該表涵蓋權限、外掛程式和傳遞控制。對於此處未列出的任何金鑰,[設定參考](/docs/zh-TW/settings-reference#all-settings)索引的「範圍」欄會說明它是否為僅受管理;其中剩餘的僅受管理金鑰包括閘道登入 URL、版本、瀏覽器、行動模擬器、SSH 主機、Desktop 本機工作階段、沙箱二進位路徑、模型定價、模型限制和 CLAUDE.md 控制。

405 440 

406| 設定 | 說明 |441| 設定 | 說明 |

407| :- | :- |442| :- | :- |


425| [`sandbox.network.allowManagedDomainsOnly`](/docs/zh-TW/settings-reference#sandbox-network-allowmanageddomainsonly) | 只遵守受管理的 `allowedDomains` 和 `WebFetch(domain:...)` 允許規則;封鎖其他網域而不提示 |460| [`sandbox.network.allowManagedDomainsOnly`](/docs/zh-TW/settings-reference#sandbox-network-allowmanageddomainsonly) | 只遵守受管理的 `allowedDomains` 和 `WebFetch(domain:...)` 允許規則;封鎖其他網域而不提示 |

426| [`strictKnownMarketplaces`](/docs/zh-TW/settings-reference#strictknownmarketplaces) | 控制使用者可以新增和安裝外掛程式的外掛程式市集來源。請參閱[受管理市集限制](/docs/zh-TW/plugins/org#restrict-what-users-can-install) |461| [`strictKnownMarketplaces`](/docs/zh-TW/settings-reference#strictknownmarketplaces) | 控制使用者可以新增和安裝外掛程式的外掛程式市集來源。請參閱[受管理市集限制](/docs/zh-TW/plugins/org#restrict-what-users-can-install) |

427| [`strictPluginOnlyCustomization`](/docs/zh-TW/settings-reference#strictpluginonlycustomization) | 從使用者和專案來源封鎖技能、代理程式、hooks 和 MCP 伺服器;`true` 鎖定全部四個,陣列命名哪個 |462| [`strictPluginOnlyCustomization`](/docs/zh-TW/settings-reference#strictpluginonlycustomization) | 從使用者和專案來源封鎖技能、代理程式、hooks 和 MCP 伺服器;`true` 鎖定全部四個,陣列命名哪個 |

428| [`wslInheritsWindowsSettings`](/docs/zh-TW/settings-reference#wslinheritswindowssettings) | 當在 HKLM 登錄或 `C:\Program Files\ClaudeCode` 下的檔案中設定時,讓 WSL 讀取 Windows 原則鏈,並且只在該目錄下沒有受管理設定檔或放置項目傳遞[原則金鑰](#how-claude-code-combines-managed-sources)時才讀取 `/etc/claude-code`;該項目給出順序 |463| [`wslInheritsWindowsSettings`](/docs/zh-TW/settings-reference#wslinheritswindowssettings) | 當在 HKLM 登錄或 `C:\Program Files\ClaudeCode` 下的檔案中設定時,讓 WSL 讀取 Windows 原則鏈,並且只在[沒有 Windows 管理員文件存在](#present-admin-documents)時才讀取 `/etc/claude-code`;該項目給出順序 |

429 464 

430<Note>465<Note>

431 在 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) 設定按裝置停用。雲端工作階段沒有按裝置的受管理設定金鑰。466 在 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) 設定按裝置停用。雲端工作階段沒有按裝置的受管理設定金鑰。


449 484 

450Claude Code 應用 `1` 的值而不向使用者顯示[批准對話](/docs/zh-TW/server-managed-settings#environment-variables-and-the-approval-dialog)。485Claude Code 應用 `1` 的值而不向使用者顯示[批准對話](/docs/zh-TW/server-managed-settings#environment-variables-and-the-approval-dialog)。

451 486 

452如果您關閉遙測,Claude Code 停止發送為原則到達的開發者提供您的組織[分析儀表板](/docs/zh-TW/analytics)的使用資料。變數也關閉功能標誌擷取,這使得遠端控制、預設自動模式和其他[需要功能標誌擷取的功能](/docs/zh-TW/env-vars#features-that-need-feature-flag-fetching)對這些開發者不可用。487如果您關閉遙測,Claude Code 停止發送為原則到達的開發者提供您的組織[分析儀表板](/docs/zh-TW/analytics)的使用資料。變數也關閉[功能標誌擷取](/docs/zh-TW/env-vars#features-that-need-feature-flag-fetching),適用於這些開發者。如需遠端控制,請參閱[遠端控制需求](/docs/zh-TW/remote-control#requirements)。

453 488 

454[原則應用的位置和時間](#where-and-when-a-policy-applies)說明哪個傳遞機制到達每個表面,[平台可用性](/docs/zh-TW/server-managed-settings#platform-availability)說明哪些工作階段跳過伺服器受管設定擷取。489[原則應用的位置和時間](#where-and-when-a-policy-applies)說明哪個傳遞機制到達每個表面,[平台可用性](/docs/zh-TW/server-managed-settings#platform-availability)說明哪些工作階段跳過伺服器受管設定擷取。

455 490 

mcp.md +660 −273

Details

47 /plugin install mcp-server-dev@claude-plugins-official47 /plugin install mcp-server-dev@claude-plugins-official

48 ```48 ```

49 49 

50 如果 Claude Code 報告找不到 marketplace,請先執行 `/plugin marketplace add anthropics/claude-plugins-official`,然後重試安裝。安裝完成後,執行 `/reload-plugins` 以在目前工作階段中啟用它。50 如果安裝失敗,請符合 Claude Code 報告的訊息:

51 

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

53 * [plugin 在 marketplace 中找不到](/docs/zh-TW/plugins/install#install-a-plugin):檢查 plugin 名稱。

54 

55 如果安裝摘要報告 `Run /reload-plugins to activate.`,Claude Code 會為您執行該重新載入。如果重新載入警告您的下一則訊息會重新讀取對話,請執行 `/reload-plugins --force`。

51 </Step>56 </Step>

52 57 

53 <Step title="執行建立 skill">58 <Step title="執行建立 skill">


87 92 

88沒有 `type` 但有 `url` 的 JSON 項目是配置錯誤,因為 Claude Code 將沒有 `type` 的項目讀取為 stdio server。Claude Code 會跳過該 server 並報告 `MCP server "<name>" has a "url" but no "type"; add "type": "http" (or "sse" / "ws") to this entry`。在 v2.1.202 之前,Claude Code 將此配置錯誤報告為 `command: expected string, received undefined`。93沒有 `type` 但有 `url` 的 JSON 項目是配置錯誤,因為 Claude Code 將沒有 `type` 的項目讀取為 stdio server。Claude Code 會跳過該 server 並報告 `MCP server "<name>" has a "url" but no "type"; add "type": "http" (or "sse" / "ws") to this entry`。在 v2.1.202 之前,Claude Code 將此配置錯誤報告為 `command: expected string, received undefined`。

89 94 

95只有 SDK 主機應用程式(例如 [Agent SDK](/docs/zh-TW/agent-sdk/mcp) 應用程式或 [桌面應用程式](/docs/zh-TW/desktop))可以註冊進程內 `"type": "sdk"` server。Claude Code 會跳過 `.mcp.json`、`~/.claude.json` 或設定中的 `"type": "sdk"` 項目,並報告 `Skipped — MCP server "<name>" declares type "sdk", which only an SDK host application can register`。

96 

97在 `--output-format stream-json` 執行中,Claude Code 也會在 `system/init` 事件的 [`mcp_server_errors` 欄位](/docs/zh-TW/headless#stream-responses)中報告跳過的 `--mcp-config` 項目,因此指令碼可以偵測到 server 從未載入。這需要 Claude Code v2.1.219 或更新版本。

98 

90<h3 id="option-2-add-a-remote-sse-server">99<h3 id="option-2-add-a-remote-sse-server">

91 選項 2:新增遠端 SSE server100 選項 2:新增遠端 SSE server

92</h3>101</h3>


95 SSE (Server-Sent Events) 傳輸已棄用。請改用 HTTP servers(如果可用)。104 SSE (Server-Sent Events) 傳輸已棄用。請改用 HTTP servers(如果可用)。

96</Warning>105</Warning>

97 106 

107某些服務仍然只公開 SSE 端點。使用與 [HTTP server](#option-1-add-a-remote-http-server) 相同的 `claude mcp add --transport http <name> <url>` 命令新增這些。Claude Code 首先嘗試 HTTP 傳輸,當 server 不接受時切換到 SSE。自動切換需要 Claude Code v2.1.265 或更新版本。

108 

109在較早的版本上,或直接透過 SSE 連接,請改為傳遞 `--transport sse`:

110 

98```bash theme={null}111```bash theme={null}

99# 基本語法112# 基本語法

100claude mcp add --transport sse <name> <url>113claude mcp add --transport sse <name> <url>


117 130 

118`CLAUDE_PROJECT_DIR` 是穩定的專案根目錄,在 session 中途新增或移除工作目錄時不會變更。限制自身檔案系統存取到一組允許目錄的 server 應該改為實作 MCP `roots/list` 請求。Claude Code 使用 session 的啟動目錄加上您透過 `--add-dir`、`/add-dir` 或 `additionalDirectories` 設定授予的每個[額外工作目錄](/docs/zh-TW/permissions#working-directories)來回答 `roots/list`。當該集合變更時,Claude Code 會傳送 `notifications/roots/list_changed`。在 v2.1.203 之前,`roots/list` 只傳回啟動目錄,Claude Code 不會傳送 `notifications/roots/list_changed`。131`CLAUDE_PROJECT_DIR` 是穩定的專案根目錄,在 session 中途新增或移除工作目錄時不會變更。限制自身檔案系統存取到一組允許目錄的 server 應該改為實作 MCP `roots/list` 請求。Claude Code 使用 session 的啟動目錄加上您透過 `--add-dir`、`/add-dir` 或 `additionalDirectories` 設定授予的每個[額外工作目錄](/docs/zh-TW/permissions#working-directories)來回答 `roots/list`。當該集合變更時,Claude Code 會傳送 `notifications/roots/list_changed`。在 v2.1.203 之前,`roots/list` 只傳回啟動目錄,Claude Code 不會傳送 `notifications/roots/list_changed`。

119 132 

120此變數在 server 的環境中設定,而不是在 Claude Code 自己的環境中,因此在專案或使用者範圍的 `.mcp.json` `command` 或 `args` 中透過 `${VAR}` 擴展參考它需要預設值,例如 `${CLAUDE_PROJECT_DIR:-.}`。Plugin 提供的 MCP 配置直接替換 `${CLAUDE_PROJECT_DIR}`,不需要預設值。133此變數在 server 的環境中設定,而不是在 Claude Code 自己的環境中,因此在專案範圍的 `.mcp.json` 項目或本機或使用者範圍的 server 項目中透過 `${VAR}` 擴展參考它需要預設值,例如 `${CLAUDE_PROJECT_DIR:-.}`。Plugin 提供的 MCP 配置直接替換 `${CLAUDE_PROJECT_DIR}`,不需要預設值。

121 134 

122```bash theme={null}135```bash theme={null}

123# 基本語法136# 基本語法


140 153 

141 沒有 `--`,Claude Code 會嘗試解析 server 的旗標(例如上面的 `--port`)作為自己的選項。154 沒有 `--`,Claude Code 會嘗試解析 server 的旗標(例如上面的 `--port`)作為自己的選項。

142 155 

143 `--env` 接受多個 `KEY=value` 對。如果 server 名稱直接跟在 `--env` 之後,CLI 會將該名稱讀取為另一對並拒絕它,因此請在 `--env` 和 server 名稱之間放置至少一個其他選項,如上面的範例所示。156 `--env` 接受多個 `KEY=value` 對。如果 server 名稱直接跟在 `--env` 之後,CLI 會將該名稱讀取為另一對並拒絕它,因此請在 `--env` 和 server 名稱之間放置至少一個其他選項,例如 `--transport stdio`。

144</Note>157</Note>

145 158 

146<h3 id="option-4-add-a-remote-websocket-server">159<h3 id="option-4-add-a-remote-websocket-server">


158 171 

159`type: "ws"` 項目接受與 `http` 相同的 `url`、`headers`、`headersHelper`、`timeout` 和 `alwaysLoad` 欄位。驗證僅限標頭,因此在 `headers` 中傳遞靜態 token,或在連接時使用 [`headersHelper`](#use-dynamic-headers-for-custom-authentication) 生成一個。`claude mcp add --transport` 旗標不接受 `ws`。172`type: "ws"` 項目接受與 `http` 相同的 `url`、`headers`、`headersHelper`、`timeout` 和 `alwaysLoad` 欄位。驗證僅限標頭,因此在 `headers` 中傳遞靜態 token,或在連接時使用 [`headersHelper`](#use-dynamic-headers-for-custom-authentication) 生成一個。`claude mcp add --transport` 旗標不接受 `ws`。

160 173 

174<h3 id="add-a-server-from-setup-instructions-written-for-another-client">

175 從為另一個用戶端編寫的設定指示新增 server

176</h3>

177 

178MCP servers 不是 Claude Code 特有的,因此 server 的設定指示可能是為 Claude Desktop、Cursor 或另一個 MCP 用戶端編寫的,並且不提供 `claude mcp add` 命令。若要新增 server,請在這些指示中尋找 URL、啟動命令或 JSON 區塊:

179 

180* **URL**,例如 `https://mcp.example.com/mcp`:server 是遠端的。

181* **啟動命令**,例如 `npx -y @example/mcp-server`:server 在您的機器上執行。

182* **`mcpServers` JSON 區塊**:為另一個用戶端的設定檔案編寫的配置。

183 

184每一個都是 [安裝 MCP servers](#installing-mcp-servers) 中四個選項之一所採用的輸入。在下面找到您擁有的形狀,以將其轉換為 Claude Code 接受的命令。除非您新增 `--scope project` 或 `--scope user`,否則每個命令都會寫入[本機範圍](#local-scope)。

185 

186<h4 id="from-a-url">

187 從 URL

188</h4>

189 

190URL 表示 server 是遠端的。對於 `https://` 端點,使用 `--transport http` 新增它,或當指示說端點使用 SSE 時遵循[選項 2](#option-2-add-a-remote-sse-server)。對於 `wss://` 端點,改為使用[選項 4](#option-4-add-a-remote-websocket-server),因為 `--transport` 不接受 `ws`:

191 

192```bash theme={null}

193claude mcp add --transport http example https://mcp.example.com/mcp

194```

195 

196如果指示也提供 API 金鑰或 token 標頭,請使用 `--header` 傳遞它,如[選項 1](#option-1-add-a-remote-http-server) 所示。

197 

198<h4 id="from-an-npx-uvx-or-binary-command">

199 從 `npx`、`uvx` 或二進位命令

200</h4>

201 

202啟動命令表示 server 作為本機 stdio 程序執行。將整個命令放在 `--` 之後,以便 Claude Code 將 `-y` 等旗標傳遞給啟動 server 的命令,而不是將它們讀取為自己的選項。使用 `--env` 傳遞指示要求的任何環境變數,在 server 名稱之後和 `--` 之前:

203 

204```bash theme={null}

205claude mcp add example --env API_KEY=your-key -- npx -y @example/mcp-server

206```

207 

208[選項 3](#option-3-add-a-local-stdio-server) 完整涵蓋 `--` 分隔符。

209 

210<h4 id="from-an-mcpservers-json-block">

211 從 `mcpServers` JSON 區塊

212</h4>

213 

214為另一個 MCP 用戶端(例如 Claude Desktop)編寫的 `mcpServers` 區塊使用 Claude Code 讀取的包裝器金鑰和項目形狀。將 `mcpServers` 內的物件傳遞給 `claude mcp add-json`,而不是包裝器。兩個項目需要先修復:

215 

216* **沒有 `type` 的 `url`**:新增 `"type": "http"`、`"type": "sse"` 或 `"type": "ws"` 以符合端點。Claude Code 將沒有 `type` 的項目讀取為 stdio server,因此沒有 `type` 的 `url` 項目會失敗。

217* **具有字母、數字、連字號和底線以外字元的金鑰**:選擇僅使用這些字元的 server 名稱。否則金鑰是 server 名稱。

218 

219例如,此區塊:

220 

221```json theme={null}

222{

223 "mcpServers": {

224 "example": {

225 "command": "npx",

226 "args": ["-y", "@example/mcp-server"]

227 }

228 }

229}

230```

231 

232變成此命令:

233 

234```bash theme={null}

235claude mcp add-json example '{"command":"npx","args":["-y","@example/mcp-server"]}'

236```

237 

238[從 JSON 配置新增 MCP servers](#add-mcp-servers-from-json-configuration) 涵蓋 `add-json` 的 shell 逃逸和 `--scope` 旗標。若要改為與您的團隊共享 server,請新增 `--scope project`,或在您的專案根目錄的 `.mcp.json` 中的 `mcpServers` 下新增項目並提交它。[專案範圍](#project-scope)涵蓋 Claude Code 如何載入和批准該檔案。

239 

240每個 `claude mcp add` 和 `claude mcp add-json` 命令都會列印一行 `Added ...`。若要檢查 Claude Code 是否已連接,請執行 `claude mcp get <name>`;[Server 狀態](#server-status)涵蓋它顯示的狀態和 `.mcp.json` servers 的批准步驟。

241 

161<h3 id="managing-your-servers">242<h3 id="managing-your-servers">

162 管理您的 servers243 管理您的 servers

163</h3>244</h3>


169claude mcp list250claude mcp list

170 251 

171# 取得特定 server 的詳細資訊252# 取得特定 server 的詳細資訊

172claude mcp get github253claude mcp get notion

173 254 

174# 移除 server255# 移除 server

175claude mcp remove github256claude mcp remove notion

176 257 

177# (在 Claude Code 中) 檢查 server 狀態258# (在 Claude Code 中) 檢查 server 狀態

178/mcp259/mcp

179```260```

180 261 

181來自 `.mcp.json` 的專案範圍 servers 等待您的批准時,會在 `claude mcp list` 中顯示為 `⏸ Pending approval`。執行 `claude` 互動式命令以檢查和批准它們。`claude mcp get <name>` 將待處理的 servers 顯示為 `⏸ Pending approval`,將被拒絕的 servers 顯示為 `✗ Rejected`。262當您移除遠端 server 時,Claude Code 也會刪除為該 server 儲存的 OAuth tokens 和用戶端註冊。

263 

264<h4 id="server-status">

265 Server 狀態

266</h4>

267 

268`claude mcp add` 透過列印 `Added ...` 行確認成功新增,這表示配置已寫入。`claude mcp list` 然後在它列出的每個 server 旁邊顯示健康狀態,例如 `✔ Connected`、`! Needs authentication` 或 `✘ Failed to connect`。失敗狀態表示 Claude Code 無法連接到該 server,而不是列表命令失敗。

269 

270此列表中的狀態報告配置決定而不是連接嘗試,因此 Claude Code 在不連接到 server 的情況下列印它們:

271 

272* ``⏸ Pending approval (run `claude` to approve)``:來自 `.mcp.json` 的專案範圍 server,您尚未批准。Claude Code 在 `claude mcp list` 和 `claude mcp get <name>` 中都顯示它。執行 `claude` 互動式命令以檢查和批准它。

273* `✘ Rejected (see disabledMcpjsonServers in settings)`:由 [`disabledMcpjsonServers`](/docs/zh-TW/settings-reference#disabledmcpjsonservers) 項目拒絕的 `.mcp.json` server。Claude Code 只在 `claude mcp get <name>` 中顯示它。

274* `⊘ Disabled for this project (re-enable via /mcp)`:專案的 [`disabledMcpServers`](#disable-a-server-without-removing-it) 列表命名的 server。Claude Code 在 `claude mcp list` 和 `claude mcp get <name>` 中都顯示它。從 `/mcp` 面板重新開啟 server。在 v2.1.238 之前,兩個命令都連接到已停用的 server 以進行健康檢查並報告連接結果。

275 

276WebSocket servers 不會出現在 `claude mcp list` 輸出中。使用 `claude mcp get <name>` 或 `/mcp` 面板檢查它們。

182 277 

183自 v2.1.196 起,`claude mcp list` 和 `claude mcp get` 只從未簽入儲存庫的設定檔案中讀取 `.mcp.json` 批准,直到您透過在其中執行 `claude` 並接受工作區信任對話框來信任工作區。複製的儲存庫無法批准自己的 servers:提交到專案 `.claude/settings.json` 的 [`enableAllProjectMcpServers` 或 `enabledMcpjsonServers`](/docs/zh-TW/settings#available-settings) 在不受信任的資料夾中被忽略,server 保持在 `⏸ Pending approval` 而不是被連接和健康檢查。278<h4 id="project-server-approvals-and-workspace-trust">

279 專案 server 批准和工作區信任

280</h4>

281 

282自 v2.1.196 起,`claude mcp list` 和 `claude mcp get` 只從未簽入儲存庫的設定檔案中讀取 `.mcp.json` 批准,直到您透過在其中執行 `claude` 並接受工作區信任對話框來信任工作區。複製的儲存庫無法批准自己的 servers:提交到專案 `.claude/settings.json` 的 [`enableAllProjectMcpServers`](/docs/zh-TW/settings-reference#enableallprojectmcpservers) 或 [`enabledMcpjsonServers`](/docs/zh-TW/settings-reference#enabledmcpjsonservers) 在不受信任的資料夾中被忽略,server 保持在 `⏸ Pending approval` 而不是被連接和健康檢查。

184 283 

185這些來源的批准仍然適用於不受信任的資料夾:284這些來源的批准仍然適用於不受信任的資料夾:

186 285 


188* 受管設定287* 受管設定

189* 使用 `--settings` 傳遞的設定288* 使用 `--settings` 傳遞的設定

190 289 

191未追蹤的 `.claude/settings.local.json` 中的批准也適用,但僅在您接受該資料夾或其父目錄之一的信任對話框後:Claude Code 執行 git 以檢查檔案是否被追蹤,並且僅在受信任的資料夾中執行該檢查。在您從未信任的資料夾中,檔案的批准會等待信任對話框,除非該資料夾是您自己的配置主目錄:您的主目錄,或您已設定為 [`CLAUDE_CONFIG_DIR`](/docs/zh-TW/env-vars) 的 `.claude` 的目錄。在 v2.1.207 之前,未追蹤的 `.claude/settings.local.json` 在您從未信任的資料夾中批准了 servers。290Claude Code 也會套用來自未追蹤 `.claude/settings.local.json` 的批准,但它執行 git 以檢查檔案是否被追蹤,並且它只在[受信任的資料夾](/docs/zh-TW/permissions#project-allow-rules-and-workspace-trust)中執行該檢查。在您從未信任的資料夾中,Claude Code 會等待信任對話框,然後才能套用檔案的批准,除非該資料夾是您自己的配置主目錄:您的主目錄,或您已設定為 [`CLAUDE_CONFIG_DIR`](/docs/zh-TW/env-vars) 的 `.claude` 的目錄。在 v2.1.207 之前,Claude Code 在您從未信任的資料夾中套用了來自未追蹤 `.claude/settings.local.json` 的批准。

192 291 

193任何設定檔案中的 `disabledMcpjsonServers` 項目仍然會拒絕 server。292任何設定檔案中的 `disabledMcpjsonServers` 項目仍然會拒絕 server。

194 293 

195`/mcp` 面板會在每個已連接的 server 旁邊顯示工具計數,並標記宣告工具功能但未公開任何工具的 servers。294<h4 id="server-status-detail">

295 Server 狀態詳細資訊

296</h4>

297 

298在 `/mcp` 中(包括 server 的選單)和 [`/plugin`](/docs/zh-TW/plugins/install) 管理器中,您之前使用過的遠端 HTTP 或 SSE server 可以顯示 `cached` 狀態,例如 `cached 2h ago · connects on first use · 5 tools`。Claude Code 從發現快取(在上一個 session 中儲存)載入了 server 的工具列表,而不是在啟動時連接,Claude Code 在 Claude 首次呼叫 server 的其中一個工具時連接 server。工具從您的第一條訊息開始可用,因此您無需執行任何操作。發現快取及其 `cached` 狀態需要 Claude Code v2.1.221 或更新版本。

299 

300發現快取預設為關閉,除非逐步推出已為您的帳戶啟用它。設定 [`MCP_DISCOVERY_CACHE=1`](/docs/zh-TW/env-vars) 以開啟它,或設定 `0` 以在推出啟用它時保持關閉。在 v2.1.238 之前,快取預設為開啟。

301 

302當您從 server 選單中選擇 **Disable** 或 **Clear authentication** 時,Claude Code 也會捨棄該 server 的快取項目。**Reconnect** 在已連接或失敗的 server 上也會捨棄它;在 `cached` server 上,**Reconnect** 現在連接 server 並保留項目。捨棄項目後,Claude Code 從 server 而不是從快取中擷取 server 的工具列表。

303 

304當 server 的狀態為 `✘ Failed to connect` 時,`claude mcp list` 會將失敗詳細資訊附加到該狀態行,`claude mcp get <name>` 在 `Issue:` 行上顯示它:HTTP 狀態或錯誤代碼,加上 server 傳回的任何錯誤文字。server 在 `/mcp` 中的詳細檢視在其 `Issue:` 列中包含相同的 server 報告文字。Claude Code 從此詳細資訊中編輯類似認證的文字,並且永遠不會包含擴展的 server URL,它可能攜帶機密。Claude Code 不會將詳細資訊附加到 `✘ Connection error` 狀態,因為它會列印的例外文字可以嵌入該 URL。在 v2.1.219 之前,兩個命令都只顯示裸失敗狀態,沒有狀態代碼或 server 的錯誤文字。

305 

306當您從 `/mcp` 完成驗證且連接仍然因 HTTP 狀態或傳輸錯誤代碼而失敗時,Claude Code 會在嘗試後列印的訊息中新增該代碼和 server URL 的來源。來源是方案和主機,加上 URL 命名時的連接埠,例如 `https://mcp.example.com`。

196 307 

197配置為空 `url` 的遠端 server 在 `/mcp`、`claude mcp list` 和 [`/plugin`](/docs/zh-TW/plugins) 管理器中顯示為 `not configured`,Claude Code 不會嘗試連接到它。Plugin 可以包含一個佔位符項目,例如此項目,用於您稍後配置的連接器,因此 Claude Code 不會將其報告為錯誤或設定問題。server 在 `/mcp` 中的詳細檢視會讀取 `No URL configured for this server`;設定項目的 `url` 以連接它。在 v2.1.208 之前,Claude Code 將空 `url` 報告為配置問題,並提示重新連接。308* 路徑和查詢永遠不會出現在該訊息中。

309* 對於本機、專案或使用者[範圍](#mcp-installation-scopes)中的 server 或受管 MCP 配置中的 server,來源顯示在該配置中寫入的主機,因此主機中的 `${VAR}` 參考在訊息中不會展開。

310* 對於沒有狀態或錯誤代碼的失敗,Claude Code 顯示錯誤文字而不顯示來源。

198 311 

199如果您的請求需要來自仍在背景連接的 server 的工具,Claude 會在繼續之前等待該 server。啟用 [tool search](#scale-with-mcp-tool-search)(預設啟用)後,等待會在 `ToolSearch` 呼叫內進行。在沒有工具搜尋的配置中,例如 Google Cloud 的 Agent Platform、自訂 `ANTHROPIC_BASE_URL` 或 `ENABLE_TOOL_SEARCH=false`,Claude 會改用 `WaitForMcpServers` 工具。312配置為空 `url` 的遠端 server 在 `/mcp`、`claude mcp list` 和 [`/plugin`](/docs/zh-TW/plugins/install) 管理器中顯示為 `not configured`,Claude Code 不會嘗試連接到它。Plugin 可以包含一個佔位符項目,例如此項目,用於您稍後配置的連接器,因此 Claude Code 不會將其報告為錯誤或設定問題。server 在 `/mcp` 中的詳細檢視會讀取 `No URL configured for this server`;設定項目的 `url` 以連接它。在 v2.1.208 之前,Claude Code 將空 `url` 報告為配置問題,並提示重新連接。

200 313 

201某些 server 名稱保留供 Claude Code 的內建 servers 使用:`workspace`、`claude-in-chrome`、`computer-use`、`Claude Preview` 和 `Claude Browser`。如果您的配置定義了具有保留名稱的 server,Claude Code 會在載入時跳過它,並顯示警告要求您重新命名它。`claude mcp add` 會以錯誤拒絕保留名稱。314<h4 id="configuration-warnings">

315 配置警告

316</h4>

202 317 

203`Claude Preview` 和 `Claude Browser` 都命名了 [Claude Code 桌面應用程式的預覽窗格](/docs/zh-TW/desktop#preview-your-app)使用的內建 server。在 v2.1.205 之前,`Claude Browser` 未被保留,因此使用者配置的 server 可以在該名稱下註冊。318Claude Code 警告下面的配置問題。每個項目說明 Claude Code 檢查的內容以及如何清除警告:

319 

320* **隱藏的空白**:當 MCP 配置值攜帶隱藏的前導或尾隨空白時,Claude Code 會發出警告,這通常來自貼上帶有尾隨換行符的 token。Claude Code 檢查 `command`、`url`、每個 `args` 項目以及 `env` 和 `headers` 下的值和金鑰名稱。Claude Code 在 `claude mcp list` 輸出和 `/mcp` 中顯示警告,命名受影響的欄位而不回顯其值,例如 `Leading or trailing whitespace in: headers.Authorization`。Claude Code 不會修剪空白,並完全按照寫入的方式使用值,因此編輯配置以移除它。

321* **在多個範圍中具有相同名稱**:如果您在多個[範圍](#mcp-installation-scopes)中定義相同的 server 名稱,具有不同的端點,Claude Code 會在 `claude mcp list` 輸出和 `/mcp` 中警告衝突。Claude Code 按端點儲存 OAuth 登入,因此當您驗證在一個專案中載入的定義時,您仍然需要在不同定義載入的專案中單獨登入。保留您想要的端點並使用 `claude mcp remove <name> --scope <scope>` 移除其他端點。在警告中,Claude Code 引用每個範圍的端點,如在您的配置中寫入的,具有[`${VAR}` 參考](#environment-variable-expansion-in-mcp-json)未展開,因此它永遠不會顯示已解析的值,例如 API 金鑰。

322* **保留名稱**:Claude Code 保留其內建 servers 的名稱,包括 `workspace`、`claude-in-chrome`、`computer-use`、`Claude Preview` 和 `Claude Browser`。如果您的配置定義了具有保留名稱的 server,Claude Code 會在載入時跳過它,並顯示警告要求您重新命名它。`claude mcp add` 會以錯誤拒絕保留名稱。`Claude Preview` 和 `Claude Browser` 都命名了 [Claude Code 桌面應用程式的預覽窗格](/docs/zh-TW/desktop#preview-your-app)使用的內建 server。在 v2.1.205 之前,`Claude Browser` 未被保留,因此使用者配置的 server 可以在該名稱下註冊。

323* **遺漏的環境變數**:如果配置中的 [`${VAR}` 參考](#environment-variable-expansion-in-mcp-json)命名未設定且沒有 `:-default` 的變數,Claude Code 會在 `claude mcp list` 輸出和 `/mcp` 中警告,命名變數,並仍然使用 `${VAR}` 文字未展開載入 server。設定變數或新增 `${VAR:-default}` 後備。在遠端 server 的 `url` 和 `headers` 中,某些認證變數[讀取為空](#credential-variables-that-read-as-empty),沒有警告。

324 

325<h4 id="tool-availability">

326 工具可用性

327</h4>

328 

329`/mcp` 面板在每個已連接的 server 旁邊顯示工具計數,並標記宣告工具功能但未公開任何工具的 servers。

330 

331如果您的請求需要來自仍在背景連接的 server 的工具,Claude 會在繼續之前等待該 server。等待如何發生取決於您的配置:

332 

333* **使用[工具搜尋](#scale-with-mcp-tool-search)(預設)**:等待發生在 `ToolSearch` 呼叫內。

334* **沒有工具搜尋**:Claude 改為使用 `WaitForMcpServers` 工具。沒有工具搜尋的配置包括自訂 `ANTHROPIC_BASE_URL`、`ENABLE_TOOL_SEARCH=false` 和 Google Cloud 的 Agent Platform 上早於 Claude 4.5 世代的模型。

335* **在 Microsoft Foundry [部署託管在 Azure 上](https://platform.claude.com/docs/en/build-with-claude/claude-in-microsoft-foundry#hosting-options)**:Claude 在工具搜尋路徑上啟動,而不是使用 `WaitForMcpServers`,因為 Claude Code 只從 API 發現部署的伺服器端拒絕。Claude Code 將該部署切換到[前期載入](#scale-with-mcp-tool-search)後,來自完成連接的 server 的工具在 Claude 的下一個請求上變得可用。

336 

337啟用工具搜尋後,當 server 在 Claude 工作時完成連接時,Claude Code 在同一輪的下一個請求中將 server 的工具名稱列出給 Claude。Claude 然後可以搜尋和呼叫這些工具,而無需等待您的下一條訊息。

338 

339<h3 id="disable-a-server-without-removing-it">

340 停用 server 而不移除它

341</h3>

342 

343在 `/mcp` 面板中切換 server 關閉,以停止 Claude Code 連接到它,而不會失去其配置。Claude Code 仍然在 `/mcp` 中列出 server,標記為已停用。

344 

345當您切換 server 時,Claude Code 在 `~/.claude.json` 中按專案記錄您的選擇,在兩個涵蓋不相交 server 集合的列表之一中:

346 

347* `disabledMcpServers`:使用者配置的 servers、plugin servers、您的組織[透過受管設定提供](/docs/zh-TW/managed-mcp#provide-servers-through-managed-settings)的 servers、Claude Code [自己擷取](#how-connectors-reach-claude-code)的 claude.ai 連接器以及預設為開啟的內建 servers 的選擇退出列表。Claude Code 不會連接到您在此列出的 server。當您使用[停用 claude.ai 連接器](#disable-claude-ai-connectors)中所述的按專案 `/mcp` 切換停用 claude.ai 連接器時,Claude Code 會在此列表下使用其顯示名稱(例如 `claude.ai Slack`)寫入它。

348* `enabledMcpServers`:預設為關閉的內建 servers(例如 `computer-use`)的選擇加入列表。Claude Code 只在您在此列出時連接到預設關閉的 server。

349 

350Claude Code 為每個 server 查詢恰好兩個列表之一,因此兩個列表都不會覆蓋另一個。如果您將常規 server 新增到 `enabledMcpServers`,或將預設關閉的內建 server 新增到 `disabledMcpServers`,Claude Code 會忽略該項目。

351 

352`disabledMcpServers` 和 `enabledMcpServers` 與 [`enabledMcpjsonServers`](/docs/zh-TW/settings-reference#enabledmcpjsonservers) 和 [`disabledMcpjsonServers`](/docs/zh-TW/settings-reference#disabledmcpjsonservers) 無關,它們控制專案 `.mcp.json` 檔案中定義的 servers 的批准。

353 

354<h3 id="mcp-client-runtimes">

355 MCP 用戶端執行時

356</h3>

357 

358Claude Code 透過兩個用戶端執行時之一連接到 MCP servers。v1 執行時建立在 MCP TypeScript SDK 1.x 上。v2 執行時是 [MCP TypeScript SDK 2.0](https://ts.sdk.modelcontextprotocol.io/v2/) 上的相同代碼,它新增了 MCP 協議修訂版 2026-07-28。此頁面的其餘部分適用於兩個執行時,除非某個部分命名 v2 執行時。

359 

360Claude Code 每次啟動時選擇執行時,並保持到您退出。在[擷取功能旗標](/docs/zh-TW/env-vars#features-that-need-feature-flag-fetching)的 sessions 中,它在 Claude Code v2.1.232 或更新版本上使用 v2 執行時。

361 

362在不擷取功能旗標的 sessions 中,Claude Code 在 Claude Code v2.1.274 或更新版本上預設使用 v2 執行時:

363 

364* Amazon Bedrock、Claude Platform on AWS、Google Cloud 的 Agent Platform 或 Microsoft Foundry 上的 Sessions,除非嵌入 Claude Code 的主機平台設定 [`CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST`](/docs/zh-TW/env-vars)

365* 透過 [Claude apps gateway](/docs/zh-TW/claude-apps-gateway) 登入的 Sessions

366* 您關閉遙測或功能旗標擷取的 Sessions,例如使用 `DISABLE_TELEMETRY`

367 

368在 v2 上,Claude Code 也:

369 

370* 詢問 HTTP servers 是否支援較新的修訂版,並與支援的 servers 一起使用它。它也在擷取功能旗標的 sessions 中詢問 claude.ai 連接器 servers。若要讓它詢問 stdio servers 或每個 session 中的連接器 servers,請設定 [`MCP_PROTOCOL_NEGOTIATION`](/docs/zh-TW/env-vars) 為 `auto`。它連接到每個其他 server,如 v1 所做的那樣。

371* 從較新修訂版上的 servers 接收 `list_changed` 通知,透過它保持開啟的[流](#notification-streams-on-the-v2-runtime)。

372* 不註冊在較新修訂版上連接的[channel](#push-messages-with-channels) server,因為該修訂版無法攜帶 channel 訊息。

373* 失敗[MCP OAuth 登入](#authenticate-with-remote-mcp-servers),其授權回應命名意外的簽發者。

374 

375Anthropic 可以使用 Claude Code 擷取的功能旗標將特定 server 保持在較早的協議上,或關閉該流。

376 

377若要自己選擇執行時,請設定 [`MCP_SDK_GENERATION`](/docs/zh-TW/env-vars) 為 `v1` 或 `v2`。若要決定 Claude Code 是否詢問,請設定 [`MCP_PROTOCOL_NEGOTIATION`](/docs/zh-TW/env-vars) 為 `auto` 或 `legacy`。

204 378 

205<h3 id="dynamic-tool-updates">379<h3 id="dynamic-tool-updates">

206 動態工具更新380 動態工具更新


208 382 

209Claude Code 支援 MCP `list_changed` 通知,允許 MCP servers 動態更新其可用工具、提示和資源,而無需您斷開連接並重新連接。當 MCP server 傳送 `list_changed` 通知時,Claude Code 會自動重新整理該 server 的可用功能。383Claude Code 支援 MCP `list_changed` 通知,允許 MCP servers 動態更新其可用工具、提示和資源,而無需您斷開連接並重新連接。當 MCP server 傳送 `list_changed` 通知時,Claude Code 會自動重新整理該 server 的可用功能。

210 384 

385如果重新整理請求失敗,Claude Code 會保留 server 之前發現的工具、提示和資源,直到稍後的重新整理成功。在 v2.1.214 之前,重新整理期間的暫時性錯誤會將 server 的工具、提示和資源替換為空列表。

386 

387<h4 id="notification-streams-on-the-v2-runtime">

388 v2 執行時上的通知流

389</h4>

390 

391在 [v2 執行時](#mcp-client-runtimes)上,Claude Code 從較新協議修訂版上的 server 接收 `list_changed` 通知,透過它保持開啟的流。當流關閉時,Claude Code 會重新開啟它,有兩個限制:

392 

393* **流在 10 秒內再次關閉**:Claude Code 最多重新開啟它三次,然後停止該連接。

394* **流保持開啟超過 10 秒,然後關閉**,如流到無伺服器主機通常所做的那樣:在一小時內五次重新開啟後,Claude Code 在下一次之前等待約六小時。

395 

396直到流重新開啟,您保留 server 的最後擷取的工具、提示和資源。若要更快地選擇其變更,請從 `/mcp` 重新連接 server。

397 

211<h3 id="automatic-reconnection">398<h3 id="automatic-reconnection">

212 自動重新連接399 自動重新連接

213</h3>400</h3>

214 401 

215如果 HTTP 或 SSE server 在 session 中途斷開連接,Claude Code 會自動以指數退避方式重新連接:最多五次嘗試,從一秒延遲開始,每次加倍。在 `/mcp` 中,server 會顯示為待處理狀態,同時重新連接正在進行中。五次失敗嘗試後,server 被標記為失敗,您可以從 `/mcp` 手動重試。Stdio servers 是本機程序,不會自動重新連接。402Claude Code 重新連接在 session 中途斷開的遠端 server,並在暫時性錯誤後重試 HTTP 或 SSE server 的首次連接。Stdio servers 是本機程序,Claude Code 不會自動重新連接它們。

403 

404<h4 id="mid-session-drops-of-a-remote-server">

405 遠端 server 的中途斷開

406</h4>

407 

408Claude Code 使用指數退避重新連接已斷開的遠端 server:最多五次嘗試,從一秒延遲開始,每次加倍。您看到的內容取決於您如何執行 Claude Code:

409 

410* **在互動式 session 中**:`/mcp` 在 Claude Code 重新連接時將 server 顯示為待處理。五次失敗嘗試後,Claude Code 將 server 標記為失敗,或在 server 需要再次授權時標記為需要驗證。當它將 server 標記為失敗時,您會看到 `MCP server "<name>" disconnected · open /mcp to reconnect` 通知。您可以從 `/mcp` 手動重試。

411* **在 [`claude -p`](/docs/zh-TW/headless) 執行和 [Agent SDK](/docs/zh-TW/agent-sdk/overview) sessions 中**:Claude Code 按相同的時間表重新連接,沒有 `/mcp` 面板顯示嘗試。

412 

413<h4 id="failed-first-connections">

414 失敗的首次連接

415</h4>

416 

417當 HTTP 或 SSE server 的首次連接因暫時性錯誤(例如 5xx 回應、連接被拒絕或逾時)失敗時,Claude Code 最多重試三次。如果連接仍然失敗,Claude Code 將 server 標記為失敗。Claude Code 在啟動時和 server 在 session 中途新增時以這種方式重試。這包括 Claude Code 從其配置新增到[雲端 session](/docs/zh-TW/claude-code-on-the-web) 的 server 和您使用 Agent SDK 的 [`setMcpServers()`](/docs/zh-TW/agent-sdk/typescript) 新增的 server。

216 418 

217相同的退避策略適用於 HTTP 或 SSE server 在啟動時初始連接失敗的情況。自 v2.1.121 起,Claude Code 在暫時性錯誤(例如 5xx 回應、連接被拒絕或逾時)上最多重試初始連接三次,如果仍無法連接,則將 server 標記為失敗。驗證和找不到錯誤不會重試,因為它們需要配置變更才能解決。419Claude Code 在這些情況下不會重試:

218 420 

219當配置的 server 無法連接時,Claude Code 會告訴 Claude 哪個 server 失敗及其連接錯誤,包括在找不到匹配工具的 `ToolSearch` 結果中,因此 Claude 會在其回應中報告連接失敗。需要 [tool search](#scale-with-mcp-tool-search),預設啟用。在沒有工具搜尋的配置中,例如自訂 `ANTHROPIC_BASE_URL`、`ENABLE_TOOL_SEARCH=false` 或不支援工具搜尋的模型,以及在 Amazon Bedrock、Google Cloud 的 Agent Platform 和 Microsoft Foundry 上,Claude Code 不會向 Claude 報告失敗的 server 連接。在 v2.1.205 之前,Claude Code 不會將連接錯誤傳遞給 Claude,Claude 可能會回應,就像失敗的 server 的工具從未被配置一樣。421* WebSocket server 的首次連接

422* 驗證或找不到錯誤,因為它需要配置變更才能解決。當 [`headersHelper`](#use-dynamic-headers-for-custom-authentication) 是 server 的 `Authorization` 標頭的唯一來源時,Claude Code 無論如何都會重試驗證錯誤,因為它在每次嘗試時重新執行 helper 並可以選擇新的認證

220 423 

221自 v2.1.191 起,在成功連接後執行的功能探索請求(例如 `tools/list`、`prompts/list` 和 `resources/list`)也會在短退避的情況下重試暫時性網路和 server 錯誤最多三次。驗證錯誤、4xx 回應和請求逾時不會重試。424<h4 id="failed-discovery-requests">

425 失敗的發現請求

426</h4>

427 

428server 連接後,Claude Code 向它傳送功能發現請求,例如 `tools/list`、`prompts/list` 和 `resources/list`。Claude Code 在暫時性網路或 server 錯誤後最多重試這些請求三次,短退避。它不會重試驗證錯誤、4xx 回應或請求逾時。

429 

430<h4 id="how-claude-learns-that-a-server-failed">

431 Claude 如何了解 server 失敗

432</h4>

433 

434Claude Code 是否告訴 Claude 配置的 server 無法連接取決於[工具搜尋](#scale-with-mcp-tool-search),預設為開啟:

435 

436* 使用工具搜尋,Claude Code 告訴 Claude 哪個 server 失敗及其連接錯誤,因此 Claude 在其回應中報告連接失敗。Claude Code 在找不到匹配工具的 `ToolSearch` 結果中包含相同的資訊。

437* 在任何[沒有工具搜尋的配置](#configure-tool-search)中,Claude Code 不會向 Claude 報告失敗的 server 連接。

222 438 

223<h3 id="push-messages-with-channels">439<h3 id="push-messages-with-channels">

224 使用 channels 推送訊息440 使用 channels 推送訊息


226 442 

227MCP server 也可以直接將訊息推送到您的 session 中,以便 Claude 可以回應外部事件,例如 CI 結果、監控警報或聊天訊息。若要啟用此功能,您的 server 宣告 `claude/channel` 功能,並在啟動時使用 `--channels` 旗標選擇加入。請參閱 [Channels](/docs/zh-TW/channels) 以使用官方支援的 channel,或 [Channels reference](/docs/zh-TW/channels-reference) 以建立您自己的。443MCP server 也可以直接將訊息推送到您的 session 中,以便 Claude 可以回應外部事件,例如 CI 結果、監控警報或聊天訊息。若要啟用此功能,您的 server 宣告 `claude/channel` 功能,並在啟動時使用 `--channels` 旗標選擇加入。請參閱 [Channels](/docs/zh-TW/channels) 以使用官方支援的 channel,或 [Channels reference](/docs/zh-TW/channels-reference) 以建立您自己的。

228 444 

445在 [v2 執行時](#mcp-client-runtimes)上,如果您設定 [`MCP_PROTOCOL_NEGOTIATION`](/docs/zh-TW/env-vars) 為 `auto` 且 channel server 協商 MCP 協議修訂版 2026-07-28,它無法傳遞 channel 訊息,因此 Claude Code 不會將其註冊為 channel。保留變數未設定,或將其設定為 `legacy`,將 stdio servers 保持在較早的握手上。

446 

229<Tip>447<Tip>

230 提示:448 提示:

231 449 

232 * 使用 `-s` 或 `--scope` 旗標指定配置的儲存位置:450 * 使用 `-s` 或 `--scope` 旗標指定配置的儲存位置:

233 * `local` (預設):僅在目前專案中對您可用。較舊版本稱此範圍為 `project`451 * `local` (預設):僅在目前專案中對您可用

234 * `project`:透過 `.mcp.json` 檔案與專案中的所有人共享452 * `project`:透過 `.mcp.json` 檔案與專案中的所有人共享

235 * `user`:在所有專案中對您可用。較舊版本稱此範圍為 `global`453 * `user`:在所有專案中對您可用

236 * 使用 `-e` 或 `--env` 旗標設定環境變數 (例如,`-e KEY=value`)454 * 使用 `-e` 或 `--env` 旗標設定環境變數 (例如,`-e KEY=value`)

237 * `--transport` 和 `--header` 旗標也接受 `-t` 和 `-H` 短形式455 * `--transport` 和 `--header` 旗標也接受 `-t` 和 `-H` 短形式

238 * 使用 `MCP_TIMEOUT` 環境變數配置 MCP server 啟動逾時 (例如,`MCP_TIMEOUT=10000 claude` 設定 10 秒逾時)456 * 使用 `MCP_TIMEOUT` 環境變數配置 MCP server 啟動逾時 (例如,`MCP_TIMEOUT=10000 claude` 設定 10 秒逾時)


241 * 使用 `/mcp` 向需要 OAuth 2.0 驗證的遠端 servers 進行驗證459 * 使用 `/mcp` 向需要 OAuth 2.0 驗證的遠端 servers 進行驗證

242</Tip>460</Tip>

243 461 

244每個 server 的 `timeout` 是每個工具呼叫的硬牆鐘限制,來自 server 的進度通知不會延長它。低於 1000 的值會被忽略並落回到 `MCP_TOOL_TIMEOUT`,或在該變數未設定時落回到其預設值約 28 小時。對於 HTTP、SSE 或 [claude.ai connector](/docs/zh-TW/mcp#use-mcp-servers-from-claude-ai) server,還有第二個每個請求的計時器,涵蓋每個請求直到 server 的第一個回應位元組。該計時器為 60 秒,除非您設定每個 server 的 `timeout` 或 `MCP_TOOL_TIMEOUT`;將任一設定為 60 秒或更高會將每個請求的計時器提高到該值,較低的值不會縮短它,未設定的 `MCP_TOOL_TIMEOUT` 的 28 小時預設值永遠不會提供給它。Stdio 和 WebSocket servers 沒有每個請求的計時器。在 v2.1.162 之前,低於 1000 的值被調整為一秒。462每個 server 的 `timeout` 是每個工具呼叫的硬牆鐘限制,來自 server 的進度通知不會延長它。低於 1000 的值會被忽略並落回到 `MCP_TOOL_TIMEOUT`,或在該變數未設定時落回到其預設值約 28 小時。對於 HTTP、SSE 或[claude.ai 連接器](/docs/zh-TW/mcp#use-mcp-servers-from-claude-ai) server,還有第二個每個請求的計時器,涵蓋每個請求直到 server 的第一個回應位元組。Claude Code 將該計時器設定為三個值中最大的:60 秒、適用於 server 的工具逾時和 `MCP_TIMEOUT`。未設定的 `MCP_TOOL_TIMEOUT` 的 28 小時預設值不會進入該比較,低於 60 秒的值不會縮短計時器。Stdio 和 WebSocket servers 沒有每個請求的計時器。

245 463 

246每個 server 至少 1000 的 `timeout` 也會作為下面所述的閒置逾時的下限:Claude Code 永遠不會因為閒置而在每個 server 的 `timeout` 之前中止該 server 的工具呼叫。需要 Claude Code v2.1.203 或更新版本。464每個 server 至少 1000 的 `timeout` 也會作為下面所述的閒置逾時的下限:Claude Code 永遠不會因為閒置而在每個 server 的 `timeout` 之前中止該 server 的工具呼叫。需要 Claude Code v2.1.203 或更新版本。

247 465 

248對遠端 MCP server 的工具呼叫如果在閒置視窗內沒有傳送回應和進度通知,會以錯誤中止,而不是等待牆鐘限制。閒置逾時需要 Claude Code v2.1.187 或更新版本。它適用於除 IDE servers 和 SDK 進程內 servers 之外的每種 server 類型。HTTP、SSE、WebSocket 和 [claude.ai connector](#use-mcp-servers-from-claude-ai) servers 的閒置視窗預設為五分鐘,stdio servers 的預設為 30 分鐘。在 v2.1.203 之前,stdio servers 不受閒置逾時限制。466對遠端 MCP server 的工具呼叫如果在閒置視窗內沒有傳送回應和進度通知,會以錯誤中止,而不是等待牆鐘限制。它適用於除 IDE servers 和 SDK 進程內 servers 之外的每種 server 類型。HTTP、SSE、WebSocket 和 [claude.ai 連接器](#use-mcp-servers-from-claude-ai) servers 的閒置視窗預設為五分鐘,stdio servers 的預設為 30 分鐘。在 v2.1.203 之前,stdio servers 不受閒置逾時限制。

249 467 

250在毫秒中設定 [`CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT`](/docs/zh-TW/env-vars) 環境變數以變更閒置視窗,或將其設定為 `0` 以停用檢查。468在毫秒中設定 [`CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT`](/docs/zh-TW/env-vars) 環境變數以變更閒置視窗,或將其設定為 `0` 以停用檢查。

251 469 

470這些逾時限制呼叫可以執行多長時間,不一定總是它阻止 session 多長時間:執行超過兩分鐘的主對話呼叫會先移至背景工作。請參閱[長工具呼叫的自動背景化](#automatic-backgrounding-of-long-tool-calls)。

471 

472<h3 id="automatic-backgrounding-of-long-tool-calls">

473 長工具呼叫的自動背景化

474</h3>

475 

476主對話中仍在執行兩分鐘後的 MCP 工具呼叫會移至背景工作,而不是阻止 session。Claude 立即接收工作 ID 並繼續工作,結果在呼叫解決時作為工作通知到達。自動背景化需要 Claude Code v2.1.212 或更新版本。

477 

478工作出現在 [`/tasks`](/docs/zh-TW/commands#all-commands) 中,您也可以在其中停止它,它不會在退出 session 時存活。每個呼叫限制仍然適用於呼叫在背景執行時:由每個 server `timeout` 或 [`MCP_TOOL_TIMEOUT`](/docs/zh-TW/env-vars) 設定的牆鐘限制,以及由 [`CLAUDE_CODE_MCP_TOOL_IDLE_TIMEOUT`](/docs/zh-TW/env-vars) 設定的閒置逾時。

479 

480設定 [`CLAUDE_CODE_MCP_AUTO_BACKGROUND_MS`](/docs/zh-TW/env-vars) 環境變數(以毫秒為單位)以變更閾值,或將其設定為 `0` 以關閉自動背景化。設定 `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` 為 `1` 也會關閉它,以及所有其他背景工作功能。

481 

482某些呼叫永遠不會移至背景:

483 

484* 來自 [subagents](/docs/zh-TW/sub-agents) 的呼叫;Claude Code 只背景化主對話呼叫

485* 對 IDE servers 的呼叫

486* 在[非互動式模式](/docs/zh-TW/headless)中的呼叫,除非 `CLAUDE_AUTO_BACKGROUND_TASKS` 設定為 `1`,因為一次性執行可能在結果到達之前結束

487 

488等待開啟[引發對話](#respond-to-mcp-elicitation-requests)的呼叫在對話開啟時不會背景化;server 被阻止在您的輸入上,而不是緩慢,因此 Claude Code 會延遲移動,直到對話關閉。

489 

252<h3 id="plugin-provided-mcp-servers">490<h3 id="plugin-provided-mcp-servers">

253 Plugin 提供的 MCP servers491 Plugin 提供的 MCP servers

254</h3>492</h3>

255 493 

256[Plugins](/docs/zh-TW/plugins) 可以捆綁 MCP servers,在啟用 plugin 時自動提供工具和整合。Plugin MCP servers 的工作方式與使用者配置的 servers 相同。494[Plugins](/docs/zh-TW/plugins/overview) 可以捆綁 MCP servers,在啟用 plugin 時提供工具和整合。Plugin MCP servers 的工作方式與使用者配置的 servers 相同。

257 495 

258**Plugin MCP servers 的工作方式**:496**Plugin MCP servers 的工作方式**:

259 497 

260* Plugins 在 plugin 根目錄的 `.mcp.json` 中或在 `plugin.json` 中內聯定義 MCP servers498* Plugins 在 plugin 根目錄的 `.mcp.json` 中或在 `plugin.json` 中內聯定義 MCP servers

261* 啟用 plugin 時,其 MCP servers 會自動啟動499* 啟用 plugin 時,其 MCP servers 會自動啟動

262* Plugin MCP 工具與手動配置的 MCP 工具一起出現500* Claude Code 將 plugin MCP 工具與手動配置的 MCP 工具一起提供

263* Plugin servers 透過 plugin 安裝進行管理,不是 `/mcp` 命令501* 您透過安裝或卸載 plugin 新增和移除 plugin servers,而不是使用 `/mcp` 命令。您仍然可以在 `/mcp` 中[切換已安裝的 plugin server 關閉](#disable-a-server-without-removing-it),這會停止 Claude Code 連接到它,而不會移除 plugin

264 502 

265**Plugin MCP 配置範例**:503**Plugin MCP 配置範例**:

266 504 


296 534 

297**Plugin MCP 功能**:535**Plugin MCP 功能**:

298 536 

299* **自動生命週期**:在 session 啟動時,已啟用 plugins 的 servers 會自動連接。如果您在 session 期間啟用或停用 plugin,請執行 `/reload-plugins` 以連接或斷開其 MCP servers537* **自動生命週期**:servers 在這些點連接和斷開:

300* **路徑佔位符**:`${CLAUDE_PLUGIN_ROOT}` 解析為 plugin 的安裝目錄,`${CLAUDE_PLUGIN_DATA}` 解析為其[持久狀態](/docs/zh-TW/plugins-reference#persistent-data-directory)目錄,`${CLAUDE_PROJECT_DIR}` 解析為穩定的專案根目錄。替換適用於:538 * 在 session 啟動時,Claude Code 自動連接已啟用 plugins 的 servers。在 `/mcp` 中,您之前使用過的遠端 (HTTP 或 SSE) plugin server 可以顯示[`cached` 狀態](#server-status-detail)而不是;Claude Code 在 Claude 首次呼叫其其中一個工具時連接它

539 * 如果您在 session 期間啟用或停用 plugin,Claude Code 在變更套用時連接或斷開其 MCP servers。[在不重新啟動的情況下套用 plugin 變更](/docs/zh-TW/plugins/cli-reference#reload-plugins)描述何時發生。在沒有互動式終端的 session 中,`/reload-plugins` 不會連接或斷開 plugin MCP servers;這些變更在您的下一個 session 中生效

540 * 當您重新載入時,Claude Code 保留配置未變更的 plugin servers 的即時連接,並在您[替換 session 的 MCP server 列表](/docs/zh-TW/agent-sdk/typescript#mcpsetserversresult)而不命名它們時執行相同操作

541 * 當您在 v2.1.246 或更新版本上[使用 `/cd` 移動 session](/docs/zh-TW/permissions#move-the-session-to-another-directory) 時,Claude Code 連接新目錄的設定啟用的 plugins 的 servers,並斷開不再啟用的 plugins 的 servers,因此您不需要在移動後執行 `/reload-plugins`

542 * 在[雲端 sessions](/docs/zh-TW/claude-code-on-the-web) 中,對尚未連接的 plugin server 的 MCP 呼叫(例如在閒置 session 喚醒後),按需啟動 server 並等待它連接

543* **路徑佔位符**:`${CLAUDE_PLUGIN_ROOT}` 解析為 plugin 的安裝目錄,`${CLAUDE_PLUGIN_DATA}` 解析為其[持久狀態](/docs/zh-TW/plugins/components#path-variables-and-persistent-data)目錄,`${CLAUDE_PROJECT_DIR}` 解析為穩定的專案根目錄。替換適用於:

301 * `stdio` servers:`command`、`args`、`env`544 * `stdio` servers:`command`、`args`、`env`

302 * `http`、`sse` 和 `ws` servers:`url`、`headers` 和 `headersHelper`。在 v2.1.195 之前,`headersHelper` 將佔位符作為字面字符串傳遞545 * `http`、`sse` 和 `ws` servers:`url`、`headers` 和 `headersHelper`。在 v2.1.195 之前,`headersHelper` 將佔位符作為字面字符串傳遞

303* **使用者環境存取**:存取與手動配置的 servers 相同的環境變數546* **使用者環境存取**:存取與手動配置的 servers 相同的環境變數

304* **多種傳輸類型**:支援 stdio、SSE、HTTP 和 WebSocket 傳輸,傳輸支援可能因 server 而異547* **多種傳輸類型**:支援 stdio、SSE、HTTP 和 WebSocket 傳輸,傳輸支援可能因 server 而異

305 548 

306**檢視 plugin MCP servers**:549Plugin servers 在 `/mcp` 中出現,並有指示器顯示它們來自 plugins。

307 

308```bash theme={null}

309# 在 Claude Code 中,查看所有 MCP servers,包括 plugin 的

310/mcp

311```

312 

313Plugin servers 在列表中出現,並有指示器顯示它們來自 plugins。

314 550 

315**Plugin MCP 工具名稱**:551**Plugin MCP 工具名稱**:

316 552 


324 560 

325server 本身在範圍名稱 `plugin:<plugin-name>:<server-name>` 下註冊,例如 `plugin:my-plugin:database-tools`。在需要配置的 server 名稱的地方使用該名稱,例如 [`mcp_tool` hook 的 `server` 欄位](/docs/zh-TW/hooks#mcp-tool-hook-fields)。561server 本身在範圍名稱 `plugin:<plugin-name>:<server-name>` 下註冊,例如 `plugin:my-plugin:database-tools`。在需要配置的 server 名稱的地方使用該名稱,例如 [`mcp_tool` hook 的 `server` 欄位](/docs/zh-TW/hooks#mcp-tool-hook-fields)。

326 562 

327**Plugin MCP servers 的優點**:563請參閱 [plugin 元件參考](/docs/zh-TW/plugins/components#mcp-servers),了解有關使用 plugins 捆綁 MCP servers 的詳細資訊。

328 

329* **捆綁分發**:工具和 servers 一起打包

330* **自動設定**:無需手動 MCP 配置

331* **團隊一致性**:安裝 plugin 時,每個人都會獲得相同的工具

332 

333請參閱 [plugin 元件參考](/docs/zh-TW/plugins-reference#mcp-servers),了解有關使用 plugins 捆綁 MCP servers 的詳細資訊。

334 564 

335<h2 id="mcp-installation-scopes">565<h2 id="mcp-installation-scopes">

336 MCP 安裝範圍566 MCP 安裝範圍

337</h2>567</h2>

338 568 

339MCP servers 可以在三個不同的範圍級別進行配置。您選擇的範圍控制 server 在哪些專案中載入,以及配置是否與您的團隊共享。管理員也可以透過[受管配置](#managed-mcp-configuration)在企業級別部署 servers。569MCP servers 可以在三個不同的範圍級別進行配置。您選擇的範圍控制 server 在哪些專案中載入,以及配置是否與您的團隊共享。管理員也可以透過[受管配置](#managed-mcp-configuration)為每個使用者部署或提供 servers。

340 570 

341| 範圍 | 載入位置 | 與團隊共享 | 儲存位置 |571| 範圍 | 載入位置 | 與團隊共享 | 儲存位置 |

342| - | - | - | - |572| - | - | - | - |


351Local scope 是預設值。本機範圍的 server 僅在您新增它的專案中載入,並對您保持私密。Claude Code 將其儲存在 `~/.claude.json` 中該專案的路徑下,因此相同的 server 不會出現在您的其他專案中。使用本機範圍進行個人開發 servers、實驗配置或包含您不想在版本控制中的認證的 servers。581Local scope 是預設值。本機範圍的 server 僅在您新增它的專案中載入,並對您保持私密。Claude Code 將其儲存在 `~/.claude.json` 中該專案的路徑下,因此相同的 server 不會出現在您的其他專案中。使用本機範圍進行個人開發 servers、實驗配置或包含您不想在版本控制中的認證的 servers。

352 582 

353<Note>583<Note>

354 MCP servers 的「local scope」術語與一般本機設定不同。MCP 本機範圍的 servers 儲存在 `~/.claude.json` (您的主目錄) 中,而一般本機設定使用 `.claude/settings.local.json` (在專案目錄中)。請參閱 [Settings](/docs/zh-TW/settings#settings-files) 了解設定檔案位置的詳細資訊。584 MCP servers 的「local scope」術語與一般本機設定不同。MCP 本機範圍的 servers 儲存在 `~/.claude.json` (您的主目錄) 中,而一般本機設定使用 `.claude/settings.local.json` (在專案目錄中)。請參閱 [Settings](/docs/zh-TW/settings#where-settings-live) 了解設定檔案位置的詳細資訊。

355</Note>585</Note>

356 586 

357```bash theme={null}587```bash theme={null}


383 Project scope613 Project scope

384</h3>614</h3>

385 615 

386Project scope 的 servers 透過在專案根目錄中儲存配置在 `.mcp.json` 檔案中來啟用團隊協作。此檔案設計為簽入版本控制,確保所有團隊成員都能存取相同的 MCP 工具和服務。新增 project scope 的 server 時,Claude Code 會自動建立或更新此檔案,使用適當的配置結構。616Project scope 的 servers 透過在專案根目錄中儲存配置在 `.mcp.json` 檔案中來啟用團隊協作。當您新增 project scope 的 server 時,Claude Code 會自動建立或更新此檔案,使用適當的配置結構。將 `.mcp.json` 簽入版本控制,以便您的團隊中的每個人都能取得相同的 MCP 工具和服務。

387 617 

388```bash theme={null}618```bash theme={null}

389# 新增 project scope 的 server619# 新增 project scope 的 server

390claude mcp add --transport http paypal --scope project https://mcp.paypal.com/mcp620claude mcp add --transport http shared-server --scope project https://example.com/mcp

391```621```

392 622 

393產生的 `.mcp.json` 檔案遵循標準化格式:623產生的 `.mcp.json` 檔案遵循標準化格式:


396{626{

397 "mcpServers": {627 "mcpServers": {

398 "shared-server": {628 "shared-server": {

399 "command": "/path/to/server",629 "type": "http",

400 "args": [],630 "url": "https://example.com/mcp"

401 "env": {}

402 }631 }

403 }632 }

404}633}

405```634```

406 635 

407出於安全考慮,Claude Code 在使用來自 `.mcp.json` 檔案的 project scope servers 之前會提示批准。如果您需要重設這些批准選擇,請使用 `claude mcp reset-project-choices` 命令。636出於安全考慮,Claude Code 在互動式工作階段中使用來自 `.mcp.json` 檔案的 project scope servers 之前會提示批准。若要重設這些批准選擇,請執行 `claude mcp reset-project-choices`。

637 

638在 `claude -p` 執行、[Agent SDK](/docs/zh-TW/headless) 工作階段和[雲端工作階段](/docs/zh-TW/claude-code-on-the-web)中,Claude Code 無法顯示該提示:它會載入 project scope servers 而不詢問。Claude Code 也會在您以 `bypassPermissions` 模式啟動的工作階段中跳過提示,其中在您的使用者設定或受管設定中設定了 [`skipDangerousModePermissionPrompt`](/docs/zh-TW/settings-reference#skipdangerousmodepermissionprompt)。若要無論如何保持 server 不被使用:

639 

640* 將其新增到 [`disabledMcpjsonServers`](/docs/zh-TW/settings-reference#disabledmcpjsonservers),這會在每個權限模式中阻止它。

641* 使用 [`--setting-sources`](/docs/zh-TW/cli-reference#cli-flags) 或 SDK 的 `settingSources` 選項完全排除專案設定。

642* 使用 [`--strict-mcp-config`](/docs/zh-TW/cli-reference#cli-flags) 啟動工作階段。Claude Code 隨後只使用您透過 `--mcp-config` 傳遞的 MCP servers。跳過 Claude Code 未載入的 project scope servers 的批准提示需要 Claude Code v2.1.246 或更新版本;在 v2.1.246 之前,嚴格工作階段仍會等待它們的批准,這會導致背景工作階段在啟動時等待。請參閱[使用 managed-mcp.json 進行獨佔控制](/docs/zh-TW/managed-mcp#exclusive-control-with-managed-mcp-json)了解該旗標在受管 MCP 檔案下的作用。

643 

644[Project server 批准和工作區信任](#project-server-approvals-and-workspace-trust)涵蓋提交到儲存庫的批准如何與工作區信任互動。

408 645 

409<h3 id="user-scope">646<h3 id="user-scope">

410 User scope647 User scope


4261. Local scope6631. Local scope

4272. Project scope6642. Project scope

4283. User scope6653. User scope

4294. [Plugin-provided servers](/docs/zh-TW/plugins)6664. [Plugin-provided servers](/docs/zh-TW/plugins/components#mcp-servers)

4305. [claude.ai connectors](#use-mcp-servers-from-claude-ai)6675. [claude.ai connectors](#use-mcp-servers-from-claude-ai)

431 668 

432三個範圍按名稱符合重複項。Plugins 和 connectors 按端點符合,因此指向與上述 server 相同 URL 或命令的端點被視為重複項。669Claude Code 按名稱符合三個範圍中的重複項。它按端點符合 plugins 和 connectors,因此指向與上述 server 相同 URL 或命令的端點被視為重複項。

670 

671當兩個 URL 拼寫僅在配置或主機的字母大小寫、配置的預設連接埠 (例如 `https` 上的 `:443`) 或尾部斜線上有所不同時,它們被視為相同的端點。不同的路徑、查詢字串、使用者資訊或非預設連接埠會使兩個 servers 不同。

672 

673您的組織透過 [`managedMcpServers`](/docs/zh-TW/managed-mcp#provide-servers-through-managed-settings) 受管設定提供的 server 排名高於所有這些,因此當其中一個重複它時,Claude Code 連接組織的定義。需要 Claude Code v2.1.259 或更新版本。

674 

675如果您在[桌面應用程式的 Code 標籤](/docs/zh-TW/desktop#mcp-servers-from-the-claude-desktop-chat-app)中開啟本機工作階段,其中 `~/.claude.json` (user scope) 的頂層和 `.mcp.json` 中有相同的 stdio server 名稱,Code 標籤會使用 `~/.claude.json` 定義。

433 676 

434<h3 id="environment-variable-expansion-in-mcp-json">677<h3 id="environment-variable-expansion-in-mcp-json">

435 `.mcp.json` 中的環境變數擴展678 `.mcp.json` 中的環境變數擴展


437 680 

438Claude Code 支援 `.mcp.json` 檔案中的環境變數擴展,允許團隊共享配置,同時保持機器特定路徑和 API 金鑰等敏感值的靈活性。681Claude Code 支援 `.mcp.json` 檔案中的環境變數擴展,允許團隊共享配置,同時保持機器特定路徑和 API 金鑰等敏感值的靈活性。

439 682 

440**支援的語法:**683<h4 id="supported-syntax">

684 支援的語法

685</h4>

441 686 

442* `${VAR}` - 擴展為環境變數 `VAR` 的值687* `${VAR}`:擴展為環境變數 `VAR` 的值

443* `${VAR:-default}` - 如果設定了 `VAR`,則擴展為 `VAR`,否則使用 `default`688* `${VAR:-default}`:如果設定了 `VAR`,則擴展為 `VAR`,否則使用 `default`

689 

690<h4 id="expansion-locations">

691 擴展位置

692</h4>

444 693 

445**擴展位置:**

446環境變數可以在以下位置擴展:694環境變數可以在以下位置擴展:

447 695 

448* `command` - server 可執行檔路徑696* `command`:server 可執行檔路徑

449* `args` - 命令列引數697* `args`:命令列引數

450* `env` - 傳遞給 server 的環境變數698* `env`:傳遞給 server 的環境變數

451* `url` - 對於 HTTP server 類型699* `url`:對於 HTTP server 類型

452* `headers` - 對於 HTTP server 驗證700* `headers`:對於 HTTP server 驗證

453 701 

454**使用變數擴展的範例:**702<h4 id="example-with-variable-expansion">

703 使用變數擴展的範例

704</h4>

455 705 

456```json theme={null}706```json theme={null}

457{707{


467}717}

468```718```

469 719 

470如果未設定必需的環境變數且沒有預設值,Claude Code 會將字面 `${VAR}` 文字保留在值中,並為該 server 報告遺漏變數警告。配置仍會載入,因此請設定變數或新增 `:-default` 後備,以便 server 使用您預期的值啟動。720<h4 id="unset-variables-without-a-default">

721 未設定預設值的未設定變數

722</h4>

471 723 

472<h2 id="practical-examples">724如果參考的環境變數未設定且沒有預設值,配置仍會載入:Claude Code 在 `claude mcp list` 輸出中為該 server 報告遺漏變數警告,並按原樣使用未擴展的 `${VAR}` 文字。設定變數或新增 `:-default` 後備,以便 server 使用您預期的值啟動。在遠端 server 的 `url` 和 `headers` 中,某些認證變數[讀取為空](#credential-variables-that-read-as-empty),沒有警告。

473 實用範例

474</h2>

475 725 

476<h3 id="example-monitor-errors-with-sentry">726<h4 id="credential-variables-that-read-as-empty">

477 範例:使用 Sentry 監控錯誤727 讀取為空的認證變數

478</h3>728</h4>

479 729 

480```bash theme={null}730在遠端 server 的 `url` 和 `headers` 中,Claude Code 從您的環境讀取認證變數為空,而不是擴展它們。這可防止專案的 `.mcp.json` 或 plugin 將您的 Claude Code 或雲端提供者認證傳送到它命名的 server。如果您寫入 `Bearer ${ANTHROPIC_AUTH_TOKEN}`,server 會收到 `Bearer ` 且沒有認證,並拒絕請求,通常會出現 `401`。Claude Code 將其報告為連接失敗。

481claude mcp add --transport http sentry https://mcp.sentry.dev/mcp

482```

483 731 

484使用您的 Sentry 帳戶進行驗證:732涵蓋的名稱包括:

485 733 

486```text theme={null}734* Claude Code 自己的認證,例如 `ANTHROPIC_API_KEY` 和 `ANTHROPIC_AUTH_TOKEN`

487/mcp735* 您的雲端提供者的認證,例如 `AWS_BEARER_TOKEN_BEDROCK`

488```736* 您的環境攜帶的其他認證,例如 `HTTPS_PROXY` 和 `NPM_TOKEN`

489 737 

490然後除錯生產問題:738涵蓋的名稱讀取為空,無論您是否設定了變數,其上的 `:-default` 後備會被忽略。提供者基礎 URL (例如 `ANTHROPIC_BASE_URL`) 仍會擴展,因此 `"url": "${ANTHROPIC_BASE_URL}/mcp"` 有效,除非 URL 的值本身嵌入認證,例如使用者名稱和密碼。

491 739 

492```text theme={null}740此集合外的名稱 (例如 `API_KEY`) 按原樣擴展。若要為 server 提供涵蓋的認證之一,請將其複製到具有您自己名稱的變數中,並改為參考該名稱。

493過去 24 小時內最常見的錯誤是什麼?

494```

495 741 

496```text theme={null}742當遠端 server 的 `url` 或 `headers` 參考您已設定的涵蓋變數時,Claude Code 在偵錯日誌行中命名它。若要讀取該行,請執行 `claude --debug-file /tmp/claude-debug.log` 並在該檔案中搜尋 `never expanded toward a remote server`。

497顯示錯誤 ID abc123 的堆疊追蹤

498```

499 743 

500```text theme={null}744<h4 id="how-references-appear-in-/mcp-and-cli-output">

501哪個部署引入了這些新錯誤?745 參考在 `/mcp` 和 CLI 輸出中的顯示方式

502```746</h4>

747 

748對於本機、專案或使用者[範圍](#mcp-installation-scopes)中的 server,以下表面按名稱而不是其解析值顯示 `${VAR}` 參考:

749 

750* server 的 `/mcp` 詳細檢視中的 URL 或命令行

751* `claude mcp list` 和 `claude mcp get` 輸出

752 

753`/mcp` 詳細檢視在 Claude Code v2.1.268 或更新版本中以這種方式顯示參考。

754 

755對於您的組織透過 `managedMcpServers` 設定提供的 server,這些表面顯示[僅 URL 的主機](/docs/zh-TW/managed-mcp#what-users-can-see-and-change)。

756 

757若要檢查當連接失敗時 `claude mcp list`、`claude mcp get` 和 `/mcp` 顯示的內容,請參閱 [Server 狀態詳細資訊](#server-status-detail)。

758 

759<h2 id="practical-examples">

760 實用範例

761</h2>

503 762 

504<h3 id="example-connect-to-github-for-code-reviews">763<h3 id="example-connect-to-github-for-code-reviews">

505 範例:連接到 GitHub 進行程式碼審查764 範例:連接到 GitHub 進行程式碼審查


512 --header "Authorization: Bearer YOUR_GITHUB_PAT"771 --header "Authorization: Bearer YOUR_GITHUB_PAT"

513```772```

514 773 

774將 `YOUR_GITHUB_PAT` 替換為您的個人存取 token。`claude mcp add` 命令會儲存設定而不驗證認證,因此此處接受預留位置值,但 server 稍後無法連接。若要驗證連接,請執行 `/mcp` 並檢查 server 是否顯示 `connected`。具有不良認證的 server 會顯示 `failed`,失敗詳細資訊包括 server 傳回的 HTTP 狀態,例如 401。

775 

515然後使用 GitHub:776然後使用 GitHub:

516 777 

517```text theme={null}778```text wrap theme={null}

518審查 PR #456 並建議改進779審查 PR #456 並建議改進

519```780```

520 781 

521```text theme={null}782```text wrap theme={null}

522為我們剛發現的錯誤建立新問題783為我們剛發現的錯誤建立新問題

523```784```

524 785 

525```text theme={null}786```text wrap theme={null}

526顯示所有指派給我的開放 PRs787顯示所有指派給我的開放 PRs

527```788```

528 789 


530 範例:查詢您的 PostgreSQL 資料庫791 範例:查詢您的 PostgreSQL 資料庫

531</h3>792</h3>

532 793 

794[DBHub](https://github.com/bytebase/dbhub),`@bytebase/dbhub` 套件,是一個 MCP server,可將 Claude 連接到您在 `--dsn` 中傳遞的連接字串的關聯式資料庫。在連接字串中使用唯讀資料庫使用者,以便 Claude 執行的查詢無法修改資料:

795 

533```bash theme={null}796```bash theme={null}

534claude mcp add --transport stdio db -- npx -y @bytebase/dbhub \797claude mcp add --transport stdio db -- npx -y @bytebase/dbhub \

535 --dsn "postgresql://readonly:pass@prod.db.com:5432/analytics"798 --dsn "postgresql://readonly:pass@prod.db.com:5432/analytics"

536```799```

537 800 

801若要確認 server 啟動,請執行 `/mcp` 並檢查 `db` 是否顯示 `connected`。

802 

538然後自然地查詢您的資料庫:803然後自然地查詢您的資料庫:

539 804 

540```text theme={null}805```text wrap theme={null}

541本月我們的總收入是多少?806本月我們的總收入是多少?

542```807```

543 808 

544```text theme={null}809```text wrap theme={null}

545顯示 orders 表的架構810顯示 orders 表的架構

546```811```

547 812 

548```text theme={null}813```text wrap theme={null}

549找到 90 天內未進行購買的客戶814找到 90 天內未進行購買的客戶

550```815```

551 816 

552<h2 id="authenticate-with-remote-mcp-servers">817<h2 id="authenticate-with-remote-mcp-servers">

553 使用遠端 MCP servers 進行驗證818 使用遠端 MCP 伺服器進行身份驗證

554</h2>819</h2>

555 820 

556許多雲端 MCP servers 需要驗證。Claude Code 支援 OAuth 2.0 以進行安全連接。821許多雲端 MCP 伺服器需要身份驗證。Claude Code 支援 OAuth 2.0 以進行安全連線。

822 

823當伺服器回應 `401 Unauthorized` 或 `403 Forbidden` 時,Claude Code 會將遠端伺服器標記為需要身份驗證。Claude Code 顯示的內容取決於伺服器:

824 

825* 對於您尚未登入的伺服器,任一狀態碼都會在 `/mcp` 中標記它,以便您完成 OAuth 流程。

826* 對於 [claude.ai 連接器](#use-mcp-servers-from-claude-ai),由 claude.ai 拒絕您的工作階段令牌導致的 `401` 不會標記連接器,因為重新授權連接器無法修復您的登入。Claude Code 改為顯示 [工作階段令牌被拒絕狀態](/docs/zh-TW/errors#claude-ai-rejected-the-session-token)。

827* 對於您在 `headers` 中或透過 [`headersHelper`](#use-dynamic-headers-for-custom-authentication) 設定 `Authorization` 標頭的伺服器,連線時的 `401` 或 `403` 不會標記伺服器,因為要修復的認證是您設定的認證。Claude Code 改為報告連線失敗。如果您從 `${VAR}` 參考設定該標頭,請檢查該變數是否是 Claude Code [讀取為空](#credential-variables-that-read-as-empty) 的變數之一。

828* 對於 [傳遞到雲端工作階段的連接器](#how-connectors-reach-claude-code),Claude Code 不會執行登入流程,因為工作階段的代理使用您在 claude.ai 中授予的授權向連接器進行身份驗證。當那裡的連接器需要再次授權時,請在 [claude.ai/customize/connectors](https://claude.ai/customize/connectors) 重新連接它,而不是從工作階段進行。

557 829 

558Claude Code 會在 server 以 `401 Unauthorized` 或 `403 Forbidden` 回應時,將遠端 server 標記為需要驗證。任一狀態碼都會在 `/mcp` 中標記 server,以便您可以完成 OAuth 流程。830當對您已登入的 OAuth 伺服器的請求返回 `401 Unauthorized` 時,Claude Code 會重新整理儲存的令牌、重新連接並重試請求一次。只有在該重試也失敗時,它才會在 `/mcp` 中標記伺服器。在 v2.1.206 之前,因暫時性原因(例如網路錯誤)失敗的令牌重新整理會將 OAuth 伺服器標記為在該工作階段的其餘時間需要身份驗證,即使其重新整理令牌仍然有效。

559 831 

560當對您已登入的 OAuth server 的請求傳回 `401 Unauthorized` 時,Claude Code 會重新整理儲存的 token、重新連接,並重試請求一次。只有在該重試也失敗時,它才會在 `/mcp` 中標記 server。在 v2.1.206 之前,因為暫時性原因 (例如網路錯誤) 而失敗的 token 重新整理會將 OAuth server 標記為在整個 session 期間需要驗證,即使其重新整理 token 仍然有效。832當伺服器拒絕儲存的重新整理令牌時,Claude Code 會立即顯示指向 `/mcp` 的通知。開啟 `/mcp` 並在伺服器上選擇 **Re-authenticate** 以在下一個工具呼叫失敗之前再次登入。

561 833 

562從 v2.1.195 開始,當 token 重新整理失敗,因為 server 拒絕儲存的重新整理 token 時,Claude Code 會立即顯示指向 `/mcp` 的通知。連接的 server 的功能表會提供「重新驗證」選項,因此您可以在下一個工具呼叫失敗之前重新登入。834傳回指向其授權伺服器的 `WWW-Authenticate` 標頭的自訂伺服器會獲得與任何其他遠端伺服器相同的自動探索。

563 835 

564傳回指向其授權 server 的 `WWW-Authenticate` 標頭的自訂 server 會獲得與任何其他遠端 server 相同的自動探索。836當一個或多個已設定的伺服器需要身份驗證時,Claude Code 也會顯示啟動通知,因此您不必開啟 `/mcp` 來探索哪些伺服器需要登入。該通知需要 Claude Code v2.1.193 或更新版本。它只計算您可以從 Claude Code 登入的伺服器。在 v2.1.218 之前,它也計算在 claude.ai 中未連接的 [claude.ai 連接器](#use-mcp-servers-from-claude-ai),您只能從 claude.ai 設定進行連接。

565 837 

566從 v2.1.193 開始,Claude Code 也會在啟動時顯示通知,當一個或多個已配置的 servers 需要驗證時,因此您不必開啟 `/mcp` 來探索哪些 servers 需要登入。838該通知會宣佈每個伺服器一次,並在後續啟動時將其排除在計數之外,直到該伺服器已連接並再次需要登入。`/mcp` 仍會列出每個需要登入的伺服器。

567 839 

568在非互動模式中,沒有 `/mcp` 面板,因此 Claude Code 無法為您執行 OAuth 流程。從 v2.1.196 開始,當已配置的 server 在 `claude -p` 或啟用[工具搜尋](#scale-with-mcp-tool-search)的 Agent SDK 執行期間需要驗證時 (這是預設值),Claude Code 會告訴 Claude 該 server 的工具不可用,直到您授權它。Claude 可以命名需要登入的 server,而不是回應為好像 server 未配置。從使用 `/mcp` 或 `claude mcp login <name>` 的互動 session 完成登入。840在非互動模式下,沒有 `/mcp` 面板,因此 Claude Code 無法為您執行 OAuth 流程。從 v2.1.196 開始,當已設定的伺服器在啟用 [工具搜尋](#scale-with-mcp-tool-search)(預設值)的 `claude -p` 或 Agent SDK 執行期間需要身份驗證時,Claude Code 會告訴 Claude 該伺服器的工具不可用,直到您授權它。Claude 可以命名需要登入的伺服器,而不是回應為好像伺服器未設定。從具有 `/mcp` 或 `claude mcp login <name>` 的互動工作階段完成登入。

569 841 

570如果您為 server 配置了 `headers.Authorization`,而 server 拒絕該標頭,Claude Code 會將連接報告為失敗,而不是回退到 OAuth。檢查 token 對 MCP 端點是否有效,或移除標頭以使用 OAuth 流程。842如果您為伺服器設定了 `headers.Authorization` 且伺服器拒絕該標頭,Claude Code 會報告連線失敗,而不是回退到 OAuth。檢查令牌對 MCP 端點是否有效,或移除標頭以使用 OAuth 流程。

571 843 

572<Steps>844<Steps>

573 <Step title="新增需要驗證的 server">845 <Step title="新增需要身份驗證的伺服器">

574 例如:846 如果您已在 [MCP 快速入門](/docs/zh-TW/mcp-quickstart#connect-a-server-that-requires-sign-in) 中新增了 `sentry` 伺服器,請跳過此步驟:在相同範圍使用相同伺服器名稱再次執行 `claude mcp add` 會失敗,並顯示 `MCP server sentry already exists in local config`。否則,執行:

575 847 

576 ```bash theme={null}848 ```bash theme={null}

577 claude mcp add --transport http sentry https://mcp.sentry.dev/mcp849 claude mcp add --transport http sentry https://mcp.sentry.dev/mcp


581 <Step title="在 Claude Code 中使用 /mcp 命令">853 <Step title="在 Claude Code 中使用 /mcp 命令">

582 在 Claude Code 中,使用命令:854 在 Claude Code 中,使用命令:

583 855 

584 ```text theme={null}856 ```text wrap theme={null}

585 /mcp857 /mcp

586 ```858 ```

587 859 


592<Tip>864<Tip>

593 提示:865 提示:

594 866 

595 * 驗證 tokens 安全儲存並自動重新整理867 * 身份驗證令牌儲存安全且自動重新整理

596 * 使用 `/mcp` 功能表中的「Clear authentication」撤銷存取權868 * 使用 `/mcp` 功能表中的「Clear authentication」撤銷存取權

597 * 如果瀏覽器未自動開啟,請複製提供的 URL 並手動開啟869 * 如果瀏覽器未自動開啟,請複製提供的 URL 並手動開啟

598 * 如果瀏覽器重新導向在驗證後失敗並出現連接錯誤,請將瀏覽器位址列中的完整回呼 URL 貼到 Claude Code 中出現的 URL 提示中870 * 如果瀏覽器重新導向在驗證後因連線錯誤而失敗,請將瀏覽器位址列中的完整回呼 URL 貼到 Claude Code 中出現的 URL 提示中

599 * OAuth 驗證適用於 HTTP servers871 * OAuth 身份驗證適用於 HTTP 伺服器

600</Tip>872</Tip>

601 873 

602<h3 id="authenticate-from-the-command-line">874<h3 id="authenticate-from-the-command-line">

603 從命令列進行驗證875 從命令列進行身份驗證

604</h3>876</h3>

605 877 

606從 v2.1.186 開始,`claude mcp login <name>` 直接從您的 shell 執行已配置 server 的 OAuth 流程,因此您不需要在 session 內開啟 `/mcp` 面板。878`claude mcp login <name>` 命令直接從您的 shell 執行已設定伺服器的 OAuth 流程,因此您不需要在工作階段內開啟 `/mcp` 面板。

607 879 

608```bash theme={null}880```bash theme={null}

609claude mcp login sentry881claude mcp login sentry


611 883 

612若要稍後清除儲存的認證,請執行 `claude mcp logout <name>`。884若要稍後清除儲存的認證,請執行 `claude mcp logout <name>`。

613 885 

614從 v2.1.191 開始,該命令會偵測何時沒有本機瀏覽器可用,例如在 SSH session 期間或在沒有顯示伺服器的 Linux 上,並列印授權 URL 而不是嘗試開啟瀏覽器。在您的本機機器上開啟 URL,然後將瀏覽器位址列中的完整重新導向 URL 貼回提示處。該命令需要互動式終端以進行貼上步驟,因此請使用 `ssh -t` 連接。傳遞 `--no-browser` 以強制 URL 提示,即使偵測到本機瀏覽器。886`claude mcp login` 會偵測何時沒有本機瀏覽器可用(例如在 SSH 工作階段期間或在沒有顯示伺服器的 Linux 上),並列印授權 URL,而不是嘗試開啟瀏覽器。在您的本機機器上開啟 URL,然後將瀏覽器位址列中的完整重新導向 URL 貼回提示。該命令需要互動式終端進行貼上步驟,因此請使用 `ssh -t` 連接。傳遞 `--no-browser` 以強制 URL 提示,即使偵測到本機瀏覽器。

615 887 

616```bash theme={null}888```bash theme={null}

617claude mcp login sentry --no-browser889claude mcp login sentry --no-browser


621 使用固定的 OAuth 回呼連接埠893 使用固定的 OAuth 回呼連接埠

622</h3>894</h3>

623 895 

624某些 MCP servers 需要預先註冊的特定重新導向 URI。根據預設,Claude Code 為 OAuth 回呼選擇隨機可用連接埠。使用 `--callback-port` 固定連接埠,使其符合 `http://localhost:PORT/callback` 形式的預先註冊重新導向 URI。896某些 MCP 伺服器需要預先註冊的特定重新導向 URI。根據預設,Claude Code 為 OAuth 回呼選擇隨機可用連接埠。使用 `--callback-port` 固定連接埠,使其符合 `http://localhost:PORT/callback` 形式的預先註冊重新導向 URI。如果在 Claude Code v2.1.229 上登入因重新導向 URI 不符而失敗,請參閱 [使用預先設定的 OAuth 認證](#use-pre-configured-oauth-credentials) 下的版本說明。

625 897 

626您可以單獨使用 `--callback-port` (使用動態用戶端註冊) 或與 `--client-id` 一起使用 (使用預先配置的認證)。898您可以單獨使用 `--callback-port`(使用動態用戶端註冊)或與 `--client-id` 一起使用(使用預先設定的認證)。

627 899 

628```bash theme={null}900```bash theme={null}

629# 使用動態用戶端註冊的固定回呼連接埠901# 使用動態用戶端註冊的固定回呼連接埠


633```905```

634 906 

635<h3 id="use-pre-configured-oauth-credentials">907<h3 id="use-pre-configured-oauth-credentials">

636 使用預先配置的 OAuth 認證908 使用預先設定的 OAuth 認證

637</h3>909</h3>

638 910 

639某些 MCP servers 不支援透過 Dynamic Client Registration 進行自動 OAuth 設定。如果您看到類似「Incompatible auth server: does not support dynamic client registration」的錯誤,server 需要預先配置的認證。Claude Code 也支援使用 Client ID Metadata Document (CIMD) 而不是 Dynamic Client Registration 的 servers,並自動探索這些。如果自動探索失敗,請先透過 server 的開發人員入口網站註冊 OAuth 應用程式,然後在新增 server 時提供認證。911某些 MCP 伺服器不支援透過動態用戶端註冊進行自動 OAuth 設定。如果您看到類似「Incompatible auth server: does not support dynamic client registration」的錯誤,伺服器需要預先設定的認證。Claude Code 也支援使用用戶端 ID 中繼資料文件 (CIMD) 而不是動態用戶端註冊的伺服器,並自動探索這些伺服器。如果自動探索失敗,請先透過伺服器的開發人員入口網站註冊 OAuth 應用程式,然後在新增伺服器時提供認證。

640 912 

641<Steps>913<Steps>

642 <Step title="使用 server 註冊 OAuth 應用程式">914 <Step title="使用伺服器註冊 OAuth 應用程式">

643 透過 server 的開發人員入口網站建立應用程式,並記下您的用戶端 ID 和用戶端密碼。915 透過伺服器的開發人員入口網站建立應用程式,並記下您的用戶端 ID 和用戶端密碼。

916 

917 如果註冊表單要求重新導向 URI,請選擇任何可用連接埠並輸入 `http://localhost:PORT/callback`(使用該連接埠)。您將在下一步中使用相同的連接埠。

644 918 

645 許多 servers 也需要重新導向 URI。如果是這樣,請選擇一個連接埠並以 `http://localhost:PORT/callback` 的格式註冊重新導向 URI。在下一步中使用該相同連接埠搭配 `--callback-port`。919 在 v2.1.229 中,Claude Code 改為傳送 `http://127.0.0.1:PORT/callback`,而精確符合已註冊重新導向 URI 的伺服器會因重新導向 URI 不符而拒絕登入。Claude Code v2.1.231 恢復了 `localhost` 形式。若要在 v2.1.229 上復原,請升級 Claude Code,或暫時將 `http://127.0.0.1:PORT/callback` 形式新增到伺服器的已註冊重新導向 URI。

646 </Step>920 </Step>

647 921 

648 <Step title="使用您的認證新增 server">922 <Step title="使用您的認證新增伺服器">

649 選擇以下方法之一。用於 `--callback-port` 的連接埠可以是任何可用的連接埠。它只需要符合您在上一步中註冊的重新導向 URI。923 這些標籤涵蓋兩個命令:`claude mcp add` 將您的用戶端 ID 和回呼連接埠作為旗標,`claude mcp add-json` 在 `oauth` 物件中採用它們。如果您註冊了重新導向 URI,請將回呼連接埠設定為該 URI 中的連接埠。

650 924 

651 <Tabs>925 <Tabs>

652 <Tab title="claude mcp add">926 <Tab title="claude mcp add">


660 </Tab>934 </Tab>

661 935 

662 <Tab title="claude mcp add-json">936 <Tab title="claude mcp add-json">

663 在 JSON 配置中包含 `oauth` 物件,並將 `--client-secret` 作為單獨的旗標傳遞:937 在 JSON 設定中包含 `oauth` 物件,並將 `--client-secret` 作為單獨的旗標傳遞:

664 938 

665 ```bash theme={null}939 ```bash theme={null}

666 claude mcp add-json my-server \940 claude mcp add-json my-server \


670 </Tab>944 </Tab>

671 945 

672 <Tab title="claude mcp add-json (僅回呼連接埠)">946 <Tab title="claude mcp add-json (僅回呼連接埠)">

673 使用 `--callback-port` 而不使用用戶端 ID 來固定連接埠,同時使用動態用戶端註冊:947 若要僅固定回呼連接埠並讓 Claude Code 自動註冊用戶端,請單獨設定 `callbackPort`:

674 948 

675 ```bash theme={null}949 ```bash theme={null}

676 claude mcp add-json my-server \950 claude mcp add-json my-server \


678 ```952 ```

679 </Tab>953 </Tab>

680 954 

681 <Tab title="CI / env var">955 <Tab title="CI / 環境變數">

682 透過環境變數設定密碼以跳過互動式提示:956 透過環境變數設定密碼以跳過互動式提示:

683 957 

684 ```bash theme={null}958 ```bash theme={null}


690 </Tabs>964 </Tabs>

691 </Step>965 </Step>

692 966 

693 <Step title="在 Claude Code 中進行驗證">967 <Step title="在 Claude Code 中進行身份驗證">

694 在 Claude Code 中執行 `/mcp` 並按照瀏覽器登入流程。968 在 Claude Code 中執行 `/mcp` 並按照瀏覽器登入流程。

695 </Step>969 </Step>

696</Steps>970</Steps>


698<Tip>972<Tip>

699 提示:973 提示:

700 974 

701 * 用戶端密碼安全地儲存在您的系統鑰匙圈 (macOS) 或認證檔案中,而不是在您的配置中975 * 用戶端密碼安全地儲存在您的系統鑰匙圈 (macOS) 或認證檔案中,而不是在您的設定中

702 * 如果 server 使用沒有密碼的公開 OAuth 用戶端,請僅使用 `--client-id` 而不使用 `--client-secret`976 * 您只能在新增伺服器時設定用戶端密碼。當您使用 `claude mcp login` 或從 `/mcp` 進行身份驗證時,Claude Code 會使用儲存的密碼,不會提示輸入密碼或讀取 `MCP_CLIENT_SECRET`

703 * `--callback-port` 可以與或不與 `--client-id` 一起使用977 * 若要稍後新增或變更密碼,請使用 `claude mcp remove <name>` 移除伺服器,然後使用 `--client-secret` 和相同的 `--scope` 再次新增它

704 * 這些旗標僅適用於 HTTP 和 SSE 傳輸。它們對 stdio servers 沒有影響978 * 如果伺服器使用沒有密碼的公開 OAuth 用戶端,請僅使用 `--client-id` 而不使用 `--client-secret`

705 * 使用 `claude mcp get <name>` 驗證為 server 配置了 OAuth 認證979 * 這些旗標僅適用於 HTTP 和 SSE 傳輸。它們對 stdio 伺服器沒有影響

980 * 使用 `claude mcp get <name>` 驗證為伺服器設定了 OAuth 認證

706</Tip>981</Tip>

707 982 

708<h3 id="override-oauth-metadata-discovery">983<h3 id="override-oauth-metadata-discovery">

709 覆蓋 OAuth 中繼資料探索984 覆寫 OAuth 中繼資料探索

710</h3>985</h3>

711 986 

712指向 Claude Code 特定的 OAuth 授權 server 中繼資料 URL 以繞過預設探索鏈。當 MCP server 的標準端點出錯時,或當您想要透過內部代理路由探索時,設定 `authServerMetadataUrl`。根據預設,Claude Code 首先檢查 RFC 9728 Protected Resource Metadata at `/.well-known/oauth-protected-resource`,然後回退到 RFC 8414 authorization server metadata at `/.well-known/oauth-authorization-server`。987指向 Claude Code 特定的 OAuth 授權伺服器中繼資料 URL 以繞過預設探索鏈。當 MCP 伺服器的標準端點出錯時,或當您想透過內部代理路由探索時,設定 `authServerMetadataUrl`。根據預設,Claude Code 首先檢查 `/.well-known/oauth-protected-resource` 的 RFC 9728 受保護資源中繼資料,然後回退到 `/.well-known/oauth-authorization-server` 的 RFC 8414 授權伺服器中繼資料。

713 988 

714在 `.mcp.json` 中 server 配置的 `oauth` 物件中設定 `authServerMetadataUrl`:989在 `.mcp.json` 中您伺服器設定的 `oauth` 物件中設定 `authServerMetadataUrl`:

715 990 

716```json theme={null}991```json theme={null}

717{992{


727}1002}

728```1003```

729 1004 

730URL 必須使用 `https://`。中繼資料 URL 的 `scopes_supported` 會覆蓋上游 server 宣傳的範圍。1005URL 必須使用 `https://`。中繼資料 URL 的 `scopes_supported` 會覆寫上游伺服器公告的範圍。

731 1006 

732<h3 id="restrict-oauth-scopes">1007<h3 id="restrict-oauth-scopes">

733 限制 OAuth 範圍1008 限制 OAuth 範圍

734</h3>1009</h3>

735 1010 

736設定 `oauth.scopes` 以固定 Claude Code 在授權流程中要求的範圍。這是限制 MCP server 到安全團隊批准的子集的支援方式,當上游授權 server 宣傳的範圍超過您想要授予的範圍時。該值是單個空格分隔的字串,符合 RFC 6749 §3.3 中的 `scope` 參數格式。1011設定 `oauth.scopes` 以固定 Claude Code 在授權流程期間要求的範圍。這是當上游授權伺服器公告的範圍超過您想授予的範圍時,將 MCP 伺服器限制為安全團隊批准的子集的支援方式。該值是單個空格分隔的字串,符合 RFC 6749 §3.3 中的 `scope` 參數格式。

737 1012 

738```json theme={null}1013```json theme={null}

739{1014{


749}1024}

750```1025```

751 1026 

752`oauth.scopes` 優先於 `authServerMetadataUrl` 和 server 在 `/.well-known` 發現的範圍。保持未設定以讓 MCP server 決定要求的範圍集。1027`oauth.scopes` 優先於 `authServerMetadataUrl` 和伺服器在 `/.well-known` 探索的範圍。將其保留為未設定以讓 MCP 伺服器決定要求的範圍集。

1028 

1029從 v2.1.196 開始,當未設定 `oauth.scopes` 時,Claude Code 會要求伺服器的 `WWW-Authenticate` 標頭或其受保護資源中繼資料提供的範圍,並在兩者都未提供時不傳送 `scope` 參數。它不再要求自動探索的授權伺服器中繼資料中的完整 `scopes_supported` 目錄。要求該目錄導致公告僅限管理員或範本範圍的身份提供者以 `invalid_scope` 錯誤拒絕授權請求。從已設定的 `authServerMetadataUrl` 擷取的中繼資料仍會將其 `scopes_supported` 作為要求的範圍提供。

753 1030 

754從 v2.1.196 開始,當未設定 `oauth.scopes` 時,Claude Code 會要求 server 的 `WWW-Authenticate` 標頭或其受保護資源中繼資料提供的範圍,當兩者都未提供時不傳送 `scope` 參數。它不再要求自動探索的授權 server 中繼資料中的完整 `scopes_supported` 目錄。要求該目錄使得宣傳僅限管理員或範本範圍的身分提供者以 `invalid_scope` 錯誤拒絕授權要求。從配置的 `authServerMetadataUrl` 擷取的中繼資料仍然提供其 `scopes_supported` 作為要求的範圍。1031如果授權伺服器在 `scopes_supported` 中公告 `offline_access`,Claude Code 會將其附加到固定範圍,以便可以在不進行新瀏覽器登入的情況下重新整理存取令牌。

755 1032 

756如果授權 server 在 `scopes_supported` 中宣傳 `offline_access`,Claude Code 會將其附加到固定範圍,以便可以在沒有新瀏覽器登入的情況下重新整理存取 token。1033如果伺服器稍後為工具呼叫傳回 403 `insufficient_scope`,該呼叫會失敗,並顯示 [`needs additional permissions`](/docs/zh-TW/errors#mcp-server-needs-you-to-sign-in-again) 訊息,該訊息命名伺服器要求的範圍。伺服器在 `/mcp` 中顯示為需要身份驗證。

757 1034 

758如果 server 稍後為工具呼叫傳回 403 `insufficient_scope`,Claude Code 會使用相同的固定範圍重新驗證。當您需要的工具需要固定範圍外的範圍時,擴展 `oauth.scopes`。1035如果該範圍不在您的固定 `oauth.scopes` 中,請新增它,然後執行 `/mcp` 並再次驗證伺服器。Claude Code 要求固定範圍而不是伺服器命名的範圍,因此如果您在不新增它的情況下再次驗證,您獲得的令牌仍然缺少它。

759 1036 

760<h3 id="use-dynamic-headers-for-custom-authentication">1037<h3 id="use-dynamic-headers-for-custom-authentication">

761 使用動態標頭進行自訂驗證1038 使用動態標頭進行自訂身份驗證

762</h3>1039</h3>

763 1040 

764如果您的 MCP server 使用 OAuth 以外的驗證方案 (例如 Kerberos、短期 tokens 或內部 SSO),請使用 `headersHelper` 在連接時產生請求標頭。Claude Code 執行命令並將其輸出合併到連接標頭中。1041如果您的 MCP 伺服器使用 OAuth 以外的身份驗證方案,例如 Kerberos、短期令牌或內部 SSO,請使用 `headersHelper` 在連線時產生請求標頭。Claude Code 執行命令並將其輸出合併到連線標頭中。

765 1042 

766```json theme={null}1043```json theme={null}

767{1044{


775}1052}

776```1053```

777 1054 

778命令也可以內聯:1055該命令也可以是內聯的:

779 1056 

780```json theme={null}1057```json theme={null}

781{1058{


792**需求:**1069**需求:**

793 1070 

794* 命令必須將字串鍵值對的 JSON 物件寫入 stdout1071* 命令必須將字串鍵值對的 JSON 物件寫入 stdout

795* 命令在 shell 中執行,逾時時間為 10 秒,從 session 的目前工作目錄執行。使用絕對路徑或 `PATH` 上的命令來執行指令碼1072* Claude Code 在 shell 中執行命令,並在 10 秒後放棄

796* 動態標頭會覆蓋任何具有相同名稱的靜態 `headers`1073* Claude Code 根據 [您設定伺服器的位置](#where-the-helper-runs) 選擇命令的工作目錄,因此請將指令碼作為絕對路徑提供或將其放在 `PATH` 上

1074* 動態標頭會覆寫任何具有相同名稱的靜態 `headers`

797 1075 

798helper 在每次連接時執行 (在 session 啟動和重新連接時)。沒有快取,因此您的指令碼負責任何 token 重複使用。1076Claude Code 在每次連線時執行新的 helper,在工作階段開始和重新連接時,一旦 [專案和本機範圍伺服器的信任規則](#trust-a-folder-before-its-headershelper-runs) 允許它執行。它不會快取結果,因此您的指令碼負責任何令牌重用。

799 1077 

800從 v2.1.193 開始,如果工具呼叫傳回 `401 Unauthorized` 或 `403 Forbidden`,Claude Code 會自動重新執行 helper、使用新標頭重新連接,並重試呼叫一次。Claude Code 只有在該重試也失敗時,才會在 `/mcp` 中將 server 標記為需要驗證。1078如果工具呼叫傳回 `401 Unauthorized` 或 `403 Forbidden`,Claude Code 會自動在相同規則下重新執行 helper、使用新標頭重新連接並重試呼叫一次。Claude Code 只有在該重試也失敗時才會在 `/mcp` 中將伺服器標記為需要身份驗證。

1079 

1080當 helper 的輸出包含 `Authorization` 標頭時,Claude Code 會使用該認證作為伺服器的身份驗證,不會回退到伺服器的 OAuth。

1081 

1082如果伺服器在連線時拒絕 helper 的認證,Claude Code 會報告連線失敗,而不是將伺服器標記為需要身份驗證。修復您的 helper 傳回的認證,然後從 `/mcp` 重新連接以重新執行 helper。

801 1083 

802Claude Code 在執行 helper 時設定這些環境變數:1084Claude Code 在執行 helper 時設定這些環境變數:

803 1085 

804| 變數 | 值 |1086| 變數 | 值 |

805| :- | :- |1087| :- | :- |

806| `CLAUDE_CODE_MCP_SERVER_NAME` | MCP server 的名稱 |1088| `CLAUDE_CODE_MCP_SERVER_NAME` | MCP 伺服器的名稱 |

807| `CLAUDE_CODE_MCP_SERVER_URL` | MCP server 的 URL |1089| `CLAUDE_CODE_MCP_SERVER_URL` | MCP 伺服器的 URL |

808| `CLAUDE_PLUGIN_ROOT` | 外掛程式的根目錄。僅當[外掛程式](/docs/zh-TW/plugins-reference#mcp-servers)提供 server 時設定 |1090| `CLAUDE_PLUGIN_ROOT` | 外掛程式的根目錄。僅當 [外掛程式](/docs/zh-TW/plugins/components#mcp-servers) 提供伺服器時設定 |

809 1091 

810使用這些來編寫為多個 MCP servers 服務的單一 helper 指令碼。1092使用這些來編寫為多個 MCP 伺服器服務的單個 helper 指令碼。

811 1093 

812對於外掛程式提供的 server,helper 也會在其工作目錄設定為外掛程式根目錄的情況下執行,因此相對 `headersHelper` 路徑會在外掛程式目錄內解析,而不是針對 session 的工作目錄。需要 Claude Code v2.1.195 或更新版本。1094外掛程式提供的 `headersHelper` 無法參考外掛程式的 [`${user_config.*}`](/docs/zh-TW/plugins/manifest-reference#user-configuration) 值,因為命令透過 shell 執行。Claude Code 報告伺服器設定錯誤,並顯示 [錯誤](/docs/zh-TW/errors#plugin-command-references-user-config),不會替換該值。改為將 `${user_config.KEY}` 放在伺服器的 `headers` 欄位中,該欄位不會進行 shell 解析,或讓 helper 指令碼從設定檔讀取該值。在 v2.1.207 之前,`headersHelper` 替換了 `${user_config.*}` 值。

813 1095 

814外掛程式提供的 `headersHelper` 無法參考外掛程式的 [`${user_config.*}`](/docs/zh-TW/plugins-reference#user-configuration) 值,因為命令透過 shell 執行。Claude Code 會報告 server 為配置錯誤,並顯示[錯誤](/docs/zh-TW/errors#plugin-command-references-user-config),且不會替換該值。改為將 `${user_config.KEY}` 放在 server 的 `headers` 欄位中,該欄位不會進行 shell 解析,或讓 helper 指令碼從其自己的環境或配置檔案中讀取該值。在 v2.1.207 之前,`headersHelper` 替換了 `${user_config.*}` 值。1096<h4 id="where-the-helper-runs">

1097 Helper 執行的位置

1098</h4>

815 1099 

816<Note>1100Claude Code 從宣告伺服器的設定中選擇 `headersHelper` 命令的工作目錄。Claude 在 Bash 中執行的 `cd` 不會移動它,[`/cd`](/docs/zh-TW/permissions#move-the-session-to-another-directory) 僅對從工作階段主要工作目錄執行的伺服器移動它。下表中的每一行給出您的 `headersHelper` 命令中相對路徑解析的目錄。

817 `headersHelper` 執行任意 shell 命令。在專案或本機範圍定義時,它僅在您接受工作區信任對話框後執行。1101 

818</Note>1102| 您設定伺服器的位置 | 工作目錄 |

1103| :- | :- |

1104| [外掛程式](/docs/zh-TW/plugins/components#mcp-servers) | 外掛程式的根目錄。需要 Claude Code v2.1.195 或更新版本 |

1105| 專案 `.mcp.json` 或 [本機範圍](#local-scope) 伺服器 | 宣告伺服器的專案目錄 |

1106| 您專案中的代理檔案、來自 SDK 的 `mcpServers` 選項或 `setMcpServers()` 方法的伺服器,或 [`--mcp-config`](/docs/zh-TW/cli-reference) | 工作階段的 [主要工作目錄](/docs/zh-TW/permissions#working-directories) |

1107| [使用者範圍](#user-scope)、[受管 MCP](/docs/zh-TW/managed-mcp)、[claude.ai 連接器](#use-mcp-servers-from-claude-ai),或來自您專案外的代理檔案,包括來自 `--add-dir` 目錄的檔案 | 您的設定目錄,`~/.claude`,除非您設定 [`CLAUDE_CONFIG_DIR`](/docs/zh-TW/env-vars) |

1108 

1109在 v2.1.238 之前,Claude Code 也從您啟動它的目錄執行使用者範圍、受管和 claude.ai 連接器伺服器的 helper,以及來自您專案外的代理檔案。

1110 

1111<h4 id="which-variables-a-helper-can-read">

1112 Helper 可以讀取哪些變數

1113</h4>

1114 

1115存放庫或外掛程式提供的 `headersHelper` 是您未編寫的命令,因此 Claude Code 執行它時不會從您的環境中提供認證變數,例如 `ANTHROPIC_API_KEY`。您設定伺服器的位置決定是否適用:

1116 

1117* **已移除**:專案 `.mcp.json` 或外掛程式中的伺服器,以及來自您專案或 `--add-dir` 目錄的代理檔案中的內聯伺服器

1118* **未移除**:[使用者](#user-scope) 或 [本機範圍](#local-scope) 的伺服器、[受管 MCP](/docs/zh-TW/managed-mcp) 中的伺服器、來自 [claude.ai 連接器](#use-mcp-servers-from-claude-ai) 的伺服器、由 SDK 或 [`--mcp-config`](/docs/zh-TW/cli-reference) 提供的伺服器,以及來自 `~/.claude/agents/`、受管設定或使用 `--agents` 傳遞的代理檔案中的內聯伺服器

1119 

1120除了 Git 的 `GIT_CONFIG_KEY_<n>` 變數外,Claude Code 會從您的環境中移除名稱看起來像認證的每個變數,例如名稱中包含 `TOKEN`、`SECRET`、`PASSWORD`、`KEY` 或 `AUTH` 的名稱(無論大小寫),因此 `ANTHROPIC_API_KEY` 和 `MY_REGISTRY_TOKEN` 都會被移除。Claude Code 也會移除名稱不遵循該模式的固定認證變數清單,例如 `ANTHROPIC_CUSTOM_HEADERS`。

1121 

1122當這適用於您的 helper 時,讓指令碼從檔案或認證存放區讀取其認證。如果伺服器的 `url` [帶有這些變數之一的即時值](#environment-variable-expansion-in-mcp-json),例如 `MY_REGISTRY_TOKEN`,helper 接收的 `CLAUDE_CODE_MCP_SERVER_URL` 值也會將該部分替換為 `REDACTED`。

1123 

1124<h4 id="trust-a-folder-before-its-headershelper-runs">

1125 在 headersHelper 執行之前信任資料夾

1126</h4>

1127 

1128Claude Code 執行 `headersHelper` 作為任意 shell 命令。對於專案 `.mcp.json` 中的伺服器或 [本機範圍](#local-scope),它只在您接受宣告伺服器的專案目錄的 [信任對話](/docs/zh-TW/permissions#project-allow-rules-and-workspace-trust) 後執行 helper。在 v2.1.238 之前,`claude -p` 或 SDK 工作階段執行這些 helper 而不檢查信任,互動式工作階段在您信任父資料夾後執行它們。

1129 

1130* **不計算的信任**:父資料夾的信任,以及 `claude -p` 或 SDK 工作階段為 [設定檔案中的 hook](/docs/zh-TW/permissions#what-runs-before-you-trust-a-folder) 獲得的自動信任

1131* **直到您信任資料夾**:Claude Code 僅使用其靜態 `headers` 連接伺服器。在 `claude -p` 或 SDK 工作階段中,它也會列印一個 [`headersHelper not run`](/docs/zh-TW/errors#headershelper-not-run) 行到 stderr,告訴您如何授予信任。

1132* **無對話的信任**:在 `~/.claude.json` 中設定 `projects["<path>"].hasTrustDialogAccepted` 為 `true`。`<path>` 是資料夾 [專案允許規則和工作區信任](/docs/zh-TW/permissions#project-allow-rules-and-workspace-trust) 說 Claude Code 信任的鍵。

1133 

1134Claude Code 將相同規則應用於在 [代理檔案](/docs/zh-TW/sub-agents#scope-mcp-servers-to-a-subagent) 中內聯宣告的伺服器,檢查該代理檔案來自何處:您的專案(對於其 `.claude/agents/` 目錄中的檔案)或 `--add-dir` 目錄。直到您 [信任該專案或目錄本身](/docs/zh-TW/permissions#what-runs-before-you-trust-a-folder),Claude Code 不會載入伺服器,因此其 helper 也永遠不會執行。

819 1135 

820<h2 id="add-mcp-servers-from-json-configuration">1136<h2 id="add-mcp-servers-from-json-configuration">

821 從 JSON 配置新增 MCP servers1137 從 JSON 配置新增 MCP servers


893</Tip>1209</Tip>

894 1210 

895<h2 id="use-mcp-servers-from-claude-ai">1211<h2 id="use-mcp-servers-from-claude-ai">

896 使用來自 claude.ai 的 MCP servers1212 使用來自 claude.ai 的 MCP 伺服器

897</h2>1213</h2>

898 1214 

899如果您已使用 [claude.ai](https://claude.ai) 帳戶登入 Claude Code,您在 claude.ai 中新增的 MCP servers(稱為 [connectors](https://claude.com/docs/connectors))會自動在 Claude Code 中可用:1215如果您已使用 [claude.ai](https://claude.ai) 帳戶登入 Claude Code,您在 claude.ai 中新增的 MCP 伺服器(稱為 [connectors](https://claude.com/docs/connectors))會自動在 Claude Code 中可用:

900 1216 

901<Steps>1217<Steps>

902 <Step title="在 claude.ai 中配置 MCP servers">1218 <Step title="在 claude.ai 中設定 MCP 伺服器">

903 在 [claude.ai/customize/connectors](https://claude.ai/customize/connectors) 新增 servers。在 Team 和 Enterprise 計畫上,只有管理員可以新增 servers。1219 在 [claude.ai/customize/connectors](https://claude.ai/customize/connectors) 新增伺服器。在 Team 和 Enterprise 方案上,只有管理員可以新增伺服器。

904 </Step>1220 </Step>

905 1221 

906 <Step title="驗證 MCP server">1222 <Step title="驗證 MCP 伺服器">

907 在 claude.ai 中完成任何必需的驗證步驟。1223 在 claude.ai 中完成任何必要的驗證步驟。

908 </Step>1224 </Step>

909 1225 

910 <Step title="在 Claude Code 中檢視和管理 servers">1226 <Step title="在 Claude Code 中檢視和管理伺服器">

911 在 Claude Code 中,使用命令:1227 在 Claude Code 中,使用命令:

912 1228 

913 ```text theme={null}1229 ```text wrap theme={null}

914 /mcp1230 /mcp

915 ```1231 ```

916 1232 

917 Claude.ai servers 在列表中出現,並有指示器顯示它們來自 claude.ai。1233 來自 claude.ai 的伺服器會出現在清單中,並有指示器顯示它們來自 claude.ai。

918 </Step>1234 </Step>

919</Steps>1235</Steps>

920 1236 

921從 v2.1.161 開始,您從未登入過的 connectors 會在 claude.ai 部分末尾的 `Show unused connectors` 列後面摺疊,因此組織佈建的列表不會填滿面板。選擇該列以展開它們。您之前登入過的 connector 即使目前需要重新驗證,也會保持可見。1237Anthropic 也自行提供一些 connectors,無需您或管理員新增。在可使用 [Claude Docs](/docs/zh-TW/artifacts#write-a-document-with-claude-docs) 的帳戶上,`/mcp` 會列出 `claude.ai Claude Docs`,無需設定,當您要求建立供他人使用的文件時,Claude 會使用它。若要關閉它,請將 `"claude.ai Claude Docs"` 的 `serverName` 項目新增至 `deniedMcpServers`,或使用 `/mcp` 切換,兩者都在 [停用 claude.ai connectors](#disable-claude-ai-connectors) 中說明。

1238 

1239當您的組織在 claude.ai 中管理其驗證時,Claude Code 會在 `/mcp` 和 [`/plugin`](/docs/zh-TW/plugins/install) 管理員中將 connector 標記為 `managed`。Managed 狀態不會改變 Claude Code 連接到 connector 的方式,也不會改變您組織的 [工具控制](#organization-controls-on-connector-tools) 的應用方式。

1240 

1241您從未登入過的 Connectors 會在 claude.ai 區段末尾的 `Show unused connectors` 列後面摺疊,因此組織佈建的清單不會填滿面板。選擇該列以展開它們。您之前登入過的 connector 即使目前需要重新驗證,仍會保持可見。

1242 

1243Connectors 來自 claude.ai 時,只有在您的作用中 [驗證方法](/docs/zh-TW/authentication#authentication-precedence) 是 claude.ai 訂閱登入時才會擷取。即使您之前執行過 `/login`,在以下情況下也不會載入:

1244 

1245* `ANTHROPIC_API_KEY`、`ANTHROPIC_AUTH_TOKEN` 或 `apiKeyHelper` 處於作用中

1246* Amazon Bedrock 或 Google Cloud 的 Agent Platform 等第三方提供者處於作用中

1247* `ANTHROPIC_PROFILE`、federation 變數或作用中的 [Anthropic 設定檔](/docs/zh-TW/authentication#anthropic-profiles-and-federation-credentials) 提供認證

1248* `CLAUDE_CODE_OAUTH_TOKEN` 持有來自 [`claude setup-token`](/docs/zh-TW/authentication#generate-a-long-lived-token) 的權杖,該權杖只能進行模型請求

1249 

1250如果 `/mcp` 未列出您新增的 connector,請執行 `/status` 以確認哪個驗證方法處於作用中。取消設定該環境變數、移除 `apiKeyHelper` 設定,或 [關閉設定檔](/docs/zh-TW/authentication#anthropic-profiles-and-federation-credentials),然後執行 `/login` 以選擇您的 claude.ai 帳戶。

1251 

1252如果暫時性網路問題導致您的工作階段啟動時無法載入 connector 清單,Claude Code 會在背景中重試擷取最多三次,一旦重試成功,connectors 就會出現。如果它們仍未出現,請重新啟動 Claude Code 以再次擷取清單。

1253 

1254如果 `/mcp` 顯示 connector 為 `connected · session token rejected`,或其詳細檢視顯示 [`claude.ai rejected the session token`](/docs/zh-TW/errors#claude-ai-rejected-the-session-token),則 claude.ai 拒絕了來自您 Claude Code 登入的權杖,通常是因為登入已過期且無法重新整理。再次授權 connector 不會清除此狀態,因為被拒絕的不是 connector 在 claude.ai 中的授權。若要清除它:

1255 

12561. 執行 `/login` 以再次登入。

12572. 從 `/mcp` 重新連接 connector。

1258 

1259在 v2.1.222 之前,Claude Code 將 connectors 標記為需要驗證,授權它們無法解決此問題。

1260 

1261您在 Claude Code 中新增的伺服器會 [優先於](#scope-hierarchy-and-precedence) 指向相同 URL 的 claude.ai connector。發生這種情況時,`/mcp` 會將 connector 列為隱藏,並顯示如何移除重複項(如果您寧願使用 connector)。

922 1262 

923Claude.ai connectors 只有在您的活躍[驗證方法](/docs/zh-TW/authentication#authentication-precedence)是您的 claude.ai 訂閱時才會被取得。當 `ANTHROPIC_API_KEY`、`ANTHROPIC_AUTH_TOKEN`、`apiKeyHelper` 或第三方提供者(例如 Amazon Bedrock 或 Google Cloud 的 Agent Platform)處於活躍狀態時,它們不會被載入,即使您之前執行過 `/login`。如果 `/mcp` 沒有列出您新增的 connector,請執行 `/status` 以確認哪個驗證方法處於活躍狀態,取消設定該環境變數或移除 `apiKeyHelper` 設定,然後執行 `/login` 以選擇您的 claude.ai 帳戶。1263某些 Anthropic 託管的 connectors(例如 Microsoft 365、Gmail 和 Google Calendar)不支援來自 Claude Code 的本機 OAuth,因為上游身分識別提供者只接受 claude.ai 註冊的重新導向 URL。當您使用 `claude mcp add` 或在 `.mcp.json` 中新增的伺服器指向這些主機之一,且您從 `/mcp` 或使用 `claude mcp login` 登入時,Claude Code 會顯示 [`is Anthropic-hosted and doesn't support local OAuth`](/docs/zh-TW/errors#anthropic-hosted-and-doesnt-support-local-oauth),指導您改為在 [claude.ai/customize/connectors](https://claude.ai/customize/connectors) 連接服務。

924 1264 

925您在 Claude Code 中新增的 server 優先於指向相同 URL 的 claude.ai connector。發生這種情況時,`/mcp` 會將 connector 列為隱藏,並顯示如何移除重複項(如果您寧願使用 connector)。1265在您使用 `claude mcp remove <name>` 移除您的項目並在 claude.ai 上連接服務後,connector 會自動出現在 Claude Code 中。

926 1266 

927某些 Anthropic 託管的 connectors(例如 Microsoft 365、Gmail 和 Google Calendar)不支援來自 Claude Code 的本機 OAuth,因為上游身分識別提供者只接受 claude.ai 註冊的重新導向 URL。從 v2.1.162 開始,在 `/mcp` 中驗證其中一個主機會顯示一條訊息,指導您改為在 claude.ai 上的設定 → Connectors 中連接它。連接後,connector 會自動出現在 Claude Code 中。1267<h3 id="how-connectors-reach-claude-code">

1268 Connectors 如何到達 Claude Code

1269</h3>

1270 

1271哪些設定控制 claude.ai connector 取決於您的工作階段在何處執行,因為只有某些工作階段本身從 claude.ai 擷取 connectors。下表中的每一列命名 connectors 在一種工作階段中的到達方式及其控制方式。桌面應用程式的 [WSL 工作階段](/docs/zh-TW/desktop-wsl#what-works-in-a-wsl-session) 沒有列,因為 connectors 在其中尚不可用。

1272 

1273| 工作階段執行位置 | Connectors 如何到達 | 控制它們的因素 |

1274| :- | :- | :- |

1275| Terminal、[VS Code](/docs/zh-TW/vs-code)、[JetBrains](/docs/zh-TW/jetbrains) 和 [Agent SDK](/docs/zh-TW/agent-sdk/claude-code-features) 工作階段 | Claude Code 從 claude.ai 擷取它們 | 本節中的設定和 [managed MCP 設定](/docs/zh-TW/managed-mcp) |

1276| [Cloud 工作階段](/docs/zh-TW/claude-code-on-the-web) | 雲端主機傳入它們 | 您的 claude.ai 組織設定,加上到達工作階段的 [allowlist 和 denylist](/docs/zh-TW/managed-mcp#policy-based-control-with-allowlists-and-denylists) 設定,以及執行它的主機上的任何 `managed-mcp.json` |

1277| [桌面應用程式](/docs/zh-TW/desktop) 的本機和 SSH 工作階段 | 桌面應用程式在程序中傳遞它們 | 您組織的 [connector 工具控制](#organization-controls-on-connector-tools) 中的 `blocked` 項目 |

1278 

1279[`disableClaudeAiConnectors`](#disable-claude-ai-connectors)、`ENABLE_CLAUDEAI_MCP_SERVERS` 和 [`allowAllClaudeAiMcps`](/docs/zh-TW/settings-reference#allowallclaudeaimcps) 只作用於第一列,Claude Code 本身擷取的 connectors。其他兩列在以下方面與其不同:

1280 

1281* **Cloud 工作階段**:到達工作階段的 `allowedMcpServers` 和 `deniedMcpServers` 項目(例如透過 [server-managed 設定](/docs/zh-TW/server-managed-settings))也會篩選傳遞的 connectors。工作階段的代理會重寫每個 connector 的 URL,因此為 connector 自己的 URL 編寫的 `serverUrl` 模式不會符合它。若要在自託管環境中的 URL allowlist 旁邊允許傳遞的 connectors,請新增 [Connector 流量離開您的網路](/docs/zh-TW/self-hosted-environments-deploy#connector-traffic-leaves-your-network) 下列出的 `serverUrl` 項目。當執行工作階段的主機上存在 `managed-mcp.json` 時(例如 [self-hosted runner 主機](/docs/zh-TW/self-hosted-environments-configuration#mcp-servers)),Claude Code 會捨棄傳遞的 connectors,無論您是否設定 `allowAllClaudeAiMcps`。

1282* **桌面應用程式本機和 SSH 工作階段**:桌面應用程式將 connectors 註冊為程序內 `type: "sdk"` 伺服器,沒有 MCP 設定或 `managed-mcp.json` 到達它們。使用者可以透過在 [claude.ai/customize/connectors](https://claude.ai/customize/connectors) 斷開連接來將 connector 排除在自己的工作階段之外。組織可以阻止 connector 的 [工具](#organization-controls-on-connector-tools) 或完全 [關閉桌面應用程式中的 Claude Code](/docs/zh-TW/desktop#admin-console-controls)。

928 1283 

929<h3 id="organization-controls-on-connector-tools">1284<h3 id="organization-controls-on-connector-tools">

930 組織對 connector 工具的控制1285 組織對 connector 工具的控制

931</h3>1286</h3>

932 1287 

933您的組織可以在 [claude.ai connectors](https://claude.com/docs/connectors) 上設定每個工具的控制。Claude Code 在啟動時讀取這些設定並在本機強制執行。執行 `/mcp` 以查看哪個設定適用於 connector 上的每個工具。1288您的組織可以在 [claude.ai connectors](https://claude.com/docs/connectors) 上設定每個工具的控制。Claude Code 在啟動時讀取這些設定並在本機強制執行,除了桌面應用程式的 [本機和 SSH 工作階段](#how-connectors-reach-claude-code)。在那裡,桌面應用程式在傳遞 connector 之前會隱藏 `blocked` 工具,`ask` 設定不會到達 Claude Code,因此它會將工作階段的普通 [權限規則](/docs/zh-TW/permissions) 應用於這些工具,而不是在每次呼叫時提示。在 Claude Code 本身擷取 connectors 的工作階段中,執行 `/mcp` 以查看哪個設定適用於 connector 上的每個工具。

934 

935* **工具設定為 `ask`**:Claude Code 會在每次呼叫時提示,原因為 `Your organization requires approval for this tool`。即使在 `acceptEdits`、`auto` 和 `bypassPermissions` [權限模式](/docs/zh-TW/permissions#permission-modes)中,提示也會出現,並且永遠不會提供記住您選擇的選項。符合該工具的[允許規則](/docs/zh-TW/permissions)也不會跳過提示。在 `dontAsk` 模式中(永遠不提示),Claude Code 會改為拒絕呼叫。

936* **工具設定為 `blocked`**:Claude Code 在 Claude 看到之前會過濾掉該工具,因此它永遠不會出現在工具列表中。

937 1289 

938強制執行這些控制需要 Claude Code v2.1.129 或更新版本。較早的版本會忽略設定並應用標準權限流程。1290* **工具設定為 `ask`**:Claude Code 會在每次呼叫時提示,原因為 `Your organization requires approval for this tool`。即使在 `acceptEdits`、`auto` 和 `bypassPermissions` [權限模式](/docs/zh-TW/permissions#permission-modes) 中,提示也會出現,且永遠不會提供記住您選擇的選項。符合工具的 [Allow 規則](/docs/zh-TW/permissions) 也不會跳過提示。在 `dontAsk` 模式中(永遠不提示),Claude Code 會改為拒絕呼叫。

1291* **工具設定為 `blocked`**:Claude Code 在 Claude 看到它之前會篩選出工具,因此它永遠不會出現在工具清單中。桌面應用程式和 claude.ai 聊天應用相同的 `blocked` 設定,因此 Claude 也無法在那裡使用工具,您無法從桌面應用程式的工作階段中隱藏工具,同時在聊天中保持可用。桌面應用程式會跳過所有工具都被阻止的 connector。

939 1292 

940<h3 id="disable-claude-ai-connectors">1293<h3 id="disable-claude-ai-connectors">

941 停用 claude.ai connectors1294 停用 claude.ai connectors

942</h3>1295</h3>

943 1296 

944若要在 Claude Code 中停用 claude.ai MCP servers,請將 [`disableClaudeAiConnectors`](/docs/zh-TW/settings#available-settings) 設定為 `true`(在任何設定範圍中):1297Claude Code 只將 [`disableClaudeAiConnectors`](/docs/zh-TW/settings-reference#disableclaudeaiconnectors) 應用於它 [本身擷取](#how-connectors-reach-claude-code) 的 connectors,而不是雲端主機或桌面應用程式傳遞的 connectors。若要關閉它擷取的 connectors,請在任何設定範圍中將設定設為 `true`:

945 1298 

946```json theme={null}1299```json theme={null}

947{1300{


949}1302}

950```1303```

951 1304 

952此設定使用任何來源為真的語義:任何設定來源中的 `true` 優先。已簽入的專案 `.claude/settings.json` 可以選擇退出雲端 connectors,但專案層級的 `false` 無法重新啟用使用者或政策層級 `true` 已停用的 connectors。透過 `--mcp-config` 明確傳遞的 servers 不受影響。1305此設定使用任何來源為真的語義:任何設定來源中的 `true` 優先。簽入的專案 `.claude/settings.json` 可以選擇退出 Claude Code 本身擷取的 connectors,但專案層級的 `false` 無法重新啟用使用者或原則層級 `true` 已停用的 connectors。透過 `--mcp-config` 明確傳遞的伺服器不受影響。

953 1306 

954您也可以將 `ENABLE_CLAUDEAI_MCP_SERVERS` 環境變數設定為 `false`,這對目前的 shell 工作階段有相同的效果:1307您也可以將 `ENABLE_CLAUDEAI_MCP_SERVERS` 環境變數設為 `false`,這對目前的 shell 工作階段有相同的效果:

955 1308 

956```bash theme={null}1309```bash theme={null}

957ENABLE_CLAUDEAI_MCP_SERVERS=false claude1310ENABLE_CLAUDEAI_MCP_SERVERS=false claude

958```1311```

959 1312 

960若要阻止個別 claude.ai connectors 而不是全部,請按名稱或 URL 模式將它們新增至 [`deniedMcpServers`](/docs/zh-TW/managed-mcp)。例如,`serverName` 項目 `"claude.ai Slack"` 會阻止 Slack connector。若要僅針對目前專案切換 connector 的開啟或關閉,請使用 `/mcp` 面板。1313若要阻止個別 claude.ai connectors 而不是全部,請按名稱或 URL 模式將它們新增至 [`deniedMcpServers`](/docs/zh-TW/managed-mcp)。例如,`"claude.ai Slack"` 的 `serverName` 項目會阻止 Slack connector。您也可以執行 `/mcp` 以針對目前專案切換 Claude Code 擷取的任何 connector。

961 

962<Note>

963 這些用戶端設定管理本機 Claude Code 工作階段。在 [Claude Code on the web](/docs/zh-TW/claude-code-on-the-web) 工作階段中,claude.ai connectors 由遠端主機佈建,並作為明確的 `--mcp-config` 項目到達,因此 `disableClaudeAiConnectors` 不適用於此處。Connector URL 也會透過工作階段代理重寫,因此針對廠商 URL 的 `deniedMcpServers` `serverUrl` 模式將不會符合。從您的 claude.ai 組織設定管理雲端工作階段可以使用哪些 connectors。

964</Note>

965 1314 

966<h2 id="use-claude-code-as-an-mcp-server">1315<h2 id="use-claude-code-as-an-mcp-server">

967 使用 Claude Code 作為 MCP server1316 將 Claude Code 用作 MCP 伺服器

968</h2>1317</h2>

969 1318 

970您可以使用 Claude Code 本身作為其他應用程式可以連接到的 MCP server:1319您可以將 Claude Code 本身用作 MCP 伺服器,其他應用程式可以連接到它:

971 1320 

972```bash theme={null}1321```bash theme={null}

973# 啟動 Claude 作為 stdio MCP server1322# 啟動 Claude 作為 stdio MCP 伺服器

974claude mcp serve1323claude mcp serve

975```1324```

976 1325 

977您可以透過將此配置新增到 claude\_desktop\_config.json 在 Claude Desktop 中使用它:1326該命令在啟動時不會列印任何內容。stdio MCP 伺服器透過 stdin 和 stdout 進行通訊,因此沉默、被阻止的終端表示伺服器正在執行並等待用戶端連接。

1327 

1328您可以透過將此設定新增到 claude\_desktop\_config.json 在 Claude Desktop 中使用它:

978 1329 

979```json theme={null}1330```json theme={null}

980{1331{


990```1341```

991 1342 

992<Warning>1343<Warning>

993 **配置可執行檔路徑**:`command` 欄位必須參考 Claude Code 可執行檔。如果 `claude` 命令不在您的系統 PATH 中,您需要指定可執行檔的完整路徑。1344 **設定可執行檔路徑**:`command` 欄位必須參考 Claude Code 可執行檔。如果 `claude` 命令不在您系統的 PATH 中,您需要指定可執行檔的完整路徑。

994 1345 

995 若要找到完整路徑:1346 若要找到完整路徑:

996 1347 


998 which claude1349 which claude

999 ```1350 ```

1000 1351 

1001 然後在您的配置中使用完整路徑:1352 然後在您的設定中使用完整路徑:

1002 1353 

1003 ```json theme={null}1354 ```json theme={null}

1004 {1355 {


1013 }1364 }

1014 ```1365 ```

1015 1366 

1016 沒有正確的可執行檔路徑,您會遇到類似 `spawn claude ENOENT` 的錯誤。1367 沒有正確的可執行檔路徑,您會遇到像 `spawn claude ENOENT` 這樣的錯誤。

1017</Warning>1368</Warning>

1018 1369 

1019<Tip>1370<Tip>

1020 提示:1371 提示:

1021 1372 

1022 * server 提供對 Claude 工具 (如 View、Edit、LS 等) 的存取

1023 * 在 Claude Desktop 中,嘗試要求 Claude 讀取目錄中的檔案、進行編輯等。1373 * 在 Claude Desktop 中,嘗試要求 Claude 讀取目錄中的檔案、進行編輯等。

1024 * 請注意,此 MCP server 僅將 Claude Code 的工具公開給您的 MCP 用戶端,因此您自己的用戶端負責為個別工具呼叫實現使用者確認。1374 * 此 MCP 伺服器只向您的 MCP 用戶端公開 Claude Code 的工具,因此您自己的用戶端負責為個別工具呼叫實施使用者確認。

1025</Tip>1375</Tip>

1026 1376 

1027<h2 id="mcp-output-limits-and-warnings">1377<h2 id="mcp-output-limits-and-warnings">

1028 MCP 輸出限制和警告1378 MCP 輸出限制和警告

1029</h2>1379</h2>

1030 1380 

1031當 MCP 工具產生大型輸出時,Claude Code 可幫助管理 token 使用情況,以防止淹沒您的對話內容:1381當 MCP 工具產生大量輸出時,Claude Code 會幫助管理權杖使用量,以防止淹沒您的對話上下文:

1032 1382 

1033* **輸出警告閾值**:當任何 MCP 工具輸出超過 10,000 個 tokens 時,Claude Code 會顯示警告1383* **輸出警告閾值**:當任何 MCP 工具輸出超過 10,000 個權杖時,Claude Code 會顯示警告

1034* **可配置限制**:您可以使用 `MAX_MCP_OUTPUT_TOKENS` 環境變數調整最大允許的 MCP 輸出 tokens1384* **可配置的限制**:您可以使用 `MAX_MCP_OUTPUT_TOKENS` 環境變數調整允許的最大 MCP 輸出權杖數

1035* **預設限制**:預設最大值為 25,000 個 tokens1385* **預設限制**:預設最大值為 25,000 個權杖

1036* **範圍**:環境變數適用於未宣告自己限制的工具。設定 [`anthropic/maxResultSizeChars`](#raise-the-limit-for-a-specific-tool) 的工具使用該值代替文字內容,無論 `MAX_MCP_OUTPUT_TOKENS` 設定為什麼。傳回影像資料的工具仍受 `MAX_MCP_OUTPUT_TOKENS` 限制1386* **範圍**:環境變數適用於未聲明自己限制的工具。設定 [`anthropic/maxResultSizeChars`](#raise-the-limit-for-a-specific-tool) 的工具會針對文字內容使用該值,無論 `MAX_MCP_OUTPUT_TOKENS` 設定為何。傳回影像資料的工具仍受 `MAX_MCP_OUTPUT_TOKENS` 限制

1387* **超過限制**:當沒有影像內容的結果超過限制時,Claude Code 會將其儲存到檔案,並在對話中用命名檔案路徑的訊息取代它,以便 Claude 在需要內容時讀取該檔案。該檔案位於 [`~/.claude/projects/`](/docs/zh-TW/claude-directory#cleaned-up-automatically) 下的工作階段 `tool-results` 目錄中。

1037 1388 

1038若要增加產生大型輸出的工具的限制:1389若要增加產生大量輸出的工具的限制:

1039 1390 

1040```bash theme={null}1391```bash theme={null}

1041export MAX_MCP_OUTPUT_TOKENS=500001392export MAX_MCP_OUTPUT_TOKENS=50000

1042claude1393claude

1043```1394```

1044 1395 

1045這在使用以下 MCP servers 時特別有用:

1046 

1047* 查詢大型資料集或資料庫

1048* 產生詳細報告或文件

1049* 處理廣泛的日誌檔案或除錯資訊

1050 

1051<h3 id="raise-the-limit-for-a-specific-tool">1396<h3 id="raise-the-limit-for-a-specific-tool">

1052 提高特定工具的限制1397 提高特定工具的限制

1053</h3>1398</h3>

1054 1399 

1055如果您正在建立 MCP server,您可以透過在工具的 `tools/list` 回應項目中設定 `_meta["anthropic/maxResultSizeChars"]` 來允許個別工具傳回超過預設持久化到磁碟閾值的結果。Claude Code 將該工具的閾值提高到註解值,最高為 500,000 個字元的硬上限。1400如果您正在建置 MCP 伺服器,可以透過在工具的 `tools/list` 回應項目中設定 `_meta["anthropic/maxResultSizeChars"]`,允許個別工具傳回超過預設持久化到磁碟閾值的結果。Claude Code 會將該工具的閾值提高到註解值,最高可達 500,000 個字元的硬性上限。

1056 1401 

1057這對於傳回本質上很大但必要的輸出的工具很有用,例如資料庫架構或完整檔案樹。沒有註解,超過預設閾值的結果會持久化到磁碟,並在對話中被檔案參考取代。1402這對於傳回本質上很大但必要的輸出的工具很有用,例如資料庫結構描述或完整檔案樹。沒有註解的情況下,超過預設閾值的結果會被持久化到磁碟,並在對話中被檔案參考取代。

1058 1403 

1059```json theme={null}1404```json theme={null}

1060{1405{


1066}1411}

1067```1412```

1068 1413 

1069對於文字內容,註解獨立於 `MAX_MCP_OUTPUT_TOKENS` 應用,因此使用者無需提高環境變數來使用宣告它的工具。傳回影像資料的工具仍受 token 限制。1414該註解對文字內容獨立於 `MAX_MCP_OUTPUT_TOKENS` 應用,因此使用者不需要為聲明它的工具提高環境變數。傳回影像資料的工具仍受權杖限制。

1070 1415 

1071<Warning>1416<Warning>

1072 如果您經常遇到特定 MCP servers 的輸出警告,請考慮增加 `MAX_MCP_OUTPUT_TOKENS` 限制。您也可以要求 server 作者新增 `anthropic/maxResultSizeChars` 註解或分頁其回應。註解對傳回影像內容的工具沒有影響;對於這些,提高 `MAX_MCP_OUTPUT_TOKENS` 是唯一的選項。1417 如果您經常遇到特定 MCP 伺服器的輸出警告,而您無法控制這些伺服器,請考慮增加 `MAX_MCP_OUTPUT_TOKENS` 限制。您也可以要求伺服器作者新增 `anthropic/maxResultSizeChars` 註解或對其回應進行分頁。該註解對傳回影像內容的工具無效;對於這些工具,提高 `MAX_MCP_OUTPUT_TOKENS` 是唯一的選項。

1073</Warning>1418</Warning>

1074 1419 

1420<h3 id="images-in-tool-results">

1421 工具結果中的影像

1422</h3>

1423 

1424當 MCP 工具傳回 PNG、JPEG、GIF 或 WebP 影像時,Claude 會在對話中內嵌看到該影像。內嵌副本可能會縮小或壓縮以符合模型的影像大小限制。Claude Code 也會將原始位元組儲存到 [`~/.claude/projects/`](/docs/zh-TW/claude-directory#cleaned-up-automatically) 下的工作階段 `tool-results` 目錄中的檔案,並提供 Claude 路徑。Claude 隨後可以使用 Bash 等工具裁剪、轉換或重複使用完整解析度檔案。

1425 

1426如果您使用 [`--no-session-persistence`](/docs/zh-TW/cli-reference#cli-flags) 或 [`CLAUDE_CODE_SKIP_PROMPT_HISTORY`](/docs/zh-TW/env-vars) 停用工作階段持久性,Claude Code 不會寫入影像檔案,Claude 只會收到內嵌副本。

1427 

1428將 MCP 影像結果儲存到檔案需要 Claude Code v2.1.283 或更新版本。

1429 

1075<h2 id="tool-input-schemas-with-a-root-level-combinator">1430<h2 id="tool-input-schemas-with-a-root-level-combinator">

1076 具有根層級組合器的工具輸入架構1431 具有根層級組合器的工具輸入綱要

1077</h2>1432</h2>

1078 1433 

1079某些 MCP servers 將工具的輸入架構宣告為 JSON Schema 聯合,在架構的頂層具有 `anyOf`、`oneOf` 或 `allOf`。Claude API 不接受這些關鍵字在架構根目錄。它接受在 `properties` 內嵌套的組合器,Claude Code 會原封不動地傳送。1434某些 MCP 伺服器將工具的輸入綱要宣告為 JSON Schema 聯合,在綱要的最上層使用 `anyOf`、`oneOf` 或 `allOf`。Claude API 不接受這些關鍵字在綱要根層級。它確實接受嵌套在 `properties` 內的組合器,Claude Code 會原封不動地傳送這些組合器。

1080 1435 

1081從 Claude Code v2.1.195 開始,具有根層級組合器的工具保持可用。在將工具傳送到 API 之前,Claude Code 會將架構平坦化為單個物件,並在工具的描述前面加上一句話,告訴 Claude 哪些參數組屬於一起:1436具有根層級組合器的工具仍然可用。在將工具傳送到 API 之前,Claude Code 會將綱要平坦化為單一物件,並在工具的描述前面加上一句話,告訴 Claude 哪些參數群組屬於一起:

1082 1437 

1083* `allOf`:來自每個分支的屬性被合併,每個分支的 `required` 列表仍然適用1438* `allOf`:來自每個分支的屬性會被合併,每個分支的 `required` 清單仍然適用

1084* `anyOf` 和 `oneOf`:來自每個分支的屬性被合併,每個分支的 `required` 列表在工具描述中描述,而不是由架構強制執行1439* `anyOf` 和 `oneOf`:來自每個分支的屬性會被合併,每個分支的 `required` 清單會在工具描述中說明,而不是由綱要強制執行

1085 1440 

1086您的 server 會接收 Claude 選擇的任何引數,因此請繼續在伺服器端驗證組合。1441您的伺服器會接收 Claude 選擇的任何引數,因此請繼續在伺服器端驗證組合。

1442 

1443當 Claude Code 無法產生 API 接受的綱要,或在未收到啟用重寫的遠端設定的部署上時,它會跳過該工具,在伺服器的日誌中記錄原因,並讓伺服器的其他工具保持可用。早於 v2.1.195 的版本會跳過每個輸入綱要具有根層級 `anyOf`、`oneOf` 或 `allOf` 的工具。

1444 

1445<h2 id="tools-with-invalid-input-schemas">

1446 具有無效輸入綱要的工具

1447</h2>

1087 1448 

1088當 Claude Code 無法產生 API 接受的架構,或在不接收啟用重寫的遠端配置的部署上時(例如離線機器),它會跳過該工具,在 server 的日誌中記錄原因,並保持 server 的其他工具可用。早於 v2.1.195 的版本會跳過輸入架構具有根層級 `anyOf`、`oneOf` 或 `allOf` 的每個工具。1449Claude API 會檢查請求中每個工具的輸入綱要,當任何一個綱要失敗時,會拒絕整個請求並返回 400 錯誤。Claude Code 在載入伺服器的工具時會自行執行 API 的兩項檢查,並排除每個會失敗的工具,以便伺服器的其他工具繼續運作:

1450 

1451* 頂層屬性名稱必須為 1 到 64 個字元長,且只能使用 ASCII 字母和數字、`_`、`.` 和 `-`

1452* 綱要必須對 JSON Schema draft 2020-12 元綱要有效。Claude Code 會對未宣告 `$schema` 的綱要和宣告 draft 2020-12 的綱要套用此檢查。宣告任何其他方言的綱要會跳過此檢查,但上述屬性名稱檢查仍然適用

1453 

1454Claude Code 會在[根層級組合子重寫](#tool-input-schemas-with-a-root-level-combinator)之後執行檢查,對它實際會傳送的綱要進行檢查。

1455 

1456當 Claude Code 排除一個工具時,它會在伺服器的日誌中記錄原因,並告訴 Claude 它排除了哪些工具以及原因,以便您可以詢問 Claude 為什麼工具遺失。如果您修復伺服器上的綱要,下次 Claude Code 載入伺服器的工具時,該工具就會恢復。

1457 

1458Claude Code 透過從 Anthropic 取得的功能旗標來開啟排除功能。在[停用旗標取得的部署](/docs/zh-TW/env-vars#features-that-need-feature-flag-fetching)上,或在旗標從未到達的機器上(例如隔離的機器),Claude Code 仍會執行檢查並在伺服器的日誌中記錄哪個工具會被拒絕,但仍會將工具的綱要傳送給 API。API 會拒絕包含該綱要的請求,並[返回 400 錯誤,按位置命名工具](/docs/zh-TW/errors#tool-input-schema-is-invalid)。在 v2.1.216 之前,沒有部署執行這些檢查。

1459 

1460[根層級組合子處理](#tool-input-schemas-with-a-root-level-combinator)是獨立的,當旗標取得關閉或旗標從未到達時,會保持自己的行為。

1089 1461 

1090<h2 id="require-approval-for-a-specific-tool">1462<h2 id="require-approval-for-a-specific-tool">

1091 要求特定工具的批准1463 要求特定工具的批准

1092</h2>1464</h2>

1093 1465 

1094如果您正在建立 MCP server,您可以透過在工具的 `tools/list` 回應項目中將 `_meta["anthropic/requiresUserInteraction"]` 設定為 `true` 來標記工具為在每次呼叫時需要明確批准。該值必須是 JSON 布林值 `true`;任何其他值都會被忽略。1466如果您正在建立 MCP 伺服器,可以透過在工具的 `tools/list` 回應項目中將 `_meta["anthropic/requiresUserInteraction"]` 設定為 `true`,來標記工具在每次呼叫時都需要明確批准。該值必須是 JSON 布林值 `true`;任何其他值都會被忽略。

1095 1467 

1096Claude Code 在每次呼叫時顯示該工具的權限提示,即使在 `acceptEdits`、`auto` 和 `bypassPermissions` [permission modes](/docs/zh-TW/permissions#permission-modes) 中,並且不提供「不再詢問」選項。[Allow rules](/docs/zh-TW/permissions#permission-rule-syntax) 符合該工具的也不會跳過提示。在 `dontAsk` 模式中(從不提示),Claude Code 會改為拒絕呼叫。1468Claude Code 會在每次呼叫時顯示該工具的權限提示,即使在 `acceptEdits`、`auto` 和 `bypassPermissions` [權限模式](/docs/zh-TW/permissions#permission-modes)中也是如此,並且不會為其提供「不再詢問」選項。與該工具相符的[允許規則](/docs/zh-TW/permissions#permission-rule-syntax)也不會跳過提示。在 `dontAsk` 模式中(從不提示),Claude Code 會改為拒絕該呼叫。

1097 1469 

1098提示必須到達一個人。在非互動模式下使用 [`--permission-prompt-tool`](/docs/zh-TW/cli-reference#cli-flags),來自提示工具的 `allow` 結果對於標記的工具會轉換為拒絕,訊息為 `MCP tool requires user interaction; not supported via --permission-prompt-tool`。Agent SDK 的 [`canUseTool` 回呼](/docs/zh-TW/agent-sdk/permissions) 確實會接收這些呼叫並可以批准它們,因為 SDK 主機應該向使用者顯示它們。1470提示必須到達一個人。在非互動模式下使用 [`--permission-prompt-tool`](/docs/zh-TW/cli-reference#cli-flags),來自提示工具的 `allow` 結果對於標記的工具會被轉換為拒絕,並顯示訊息 `MCP tool requires user interaction; not supported via --permission-prompt-tool`。Agent SDK 的 [`canUseTool` 回呼](/docs/zh-TW/agent-sdk/permissions)確實會接收這些呼叫並可以批准它們,因為您的 SDK 應用程式應該會將它們顯示給使用者。

1099 1471 

1100將此用於其權限提示本身就是重點的工具,例如同意或存取授予步驟,其中自動批准意味著沒有人類曾經同意。來自同一 server 的其他工具保持其正常權限行為。1472將此用於權限提示本身就是重點的工具,例如同意或存取授予步驟,其中自動批准意味著沒有人類曾經同意。來自同一伺服器的其他工具保持其正常的權限行為。

1101 1473 

1102以下 `tools/list` 項目將一個工具標記為始終需要批准。1474以下 `tools/list` 項目將一個工具標記為始終需要批准。

1103 1475 


1111}1483}

1112```1484```

1113 1485 

1114`anthropic/requiresUserInteraction` 註解需要 Claude Code v2.1.199 或更新版本。較早的版本會忽略它並應用標準權限流程。1486`anthropic/requiresUserInteraction` 註解需要 Claude Code v2.1.199 或更新版本。較早的版本會忽略它並套用標準權限流程。

1487 

1488某些介面,例如 [Remote Control](/docs/zh-TW/remote-control) 和基於 [Agent SDK](/docs/zh-TW/agent-sdk/overview) 建立的應用程式,通常允許您透過一次點擊來批准工具呼叫。對於使用此註解標記的工具,Claude Code 會隱藏一次點擊動作並改為顯示工具的完整權限提示,因此批准仍然來自於回答提示的人,而不是點擊。

1115 1489 

1116當 session 連接到 [Remote Control](/docs/zh-TW/remote-control) 或 SDK 主機時,Claude Code 會將權限請求標記為需要使用者互動,因此用戶端會向您顯示工具的權限提示,而不是單點擊批准操作。1490Claude Code 對於任何只有終端對話框才能完整呈現的權限請求(例如包含安全警告或遠端介面無法顯示的始終允許選項的請求),也會以相同方式隱藏一次點擊批准。您在終端對話框中回答該請求,而不是從 Remote Control 回答。需要 Claude Code v2.1.214 或更新版本。

1117 1491 

1118<h2 id="respond-to-mcp-elicitation-requests">1492<h2 id="respond-to-mcp-elicitation-requests">

1119 回應 MCP 引發請求1493 回應 MCP 徵詢請求

1120</h2>1494</h2>

1121 1495 

1122MCP servers 可以使用引發在任務中途要求您提供結構化輸入。當 server 需要無法自行取得的資訊時,Claude Code 會顯示互動式對話框並將您的回應傳回給 server。您無需進行任何配置:當 server 要求時,引發對話框會自動出現。1496MCP 伺服器可以在任務進行中使用徵詢功能向您請求結構化輸入。當伺服器需要無法自行取得的資訊時,Claude Code 會顯示互動式對話框,並將您的回應傳回給伺服器。您無需進行任何設定:當伺服器請求徵詢對話框時,它們會自動出現。

1123 1497 

1124Servers 可以透過兩種方式要求輸入:1498伺服器可以透過兩種方式請求輸入:

1125 1499 

1126* **表單模式**:Claude Code 顯示一個對話框,其中包含 server 定義的表單欄位 (例如,使用者名稱和密碼提示)。填入欄位並提交。1500* **表單模式**:Claude Code 顯示一個對話框,其中包含伺服器定義的表單欄位(例如,使用者名稱和密碼提示)。填入欄位並提交。

1127* **URL 模式**:Claude Code 開啟瀏覽器 URL 以進行驗證或批准。在瀏覽器中完成流程,然後在 CLI 中確認。1501* **URL 模式**:Claude Code 詢問是否在您的瀏覽器中開啟連結,當您接受時會開啟它。伺服器使用此模式進行在終端外完成的流程,例如登入。

1128 1502 

1129若要自動回應引發請求而不顯示對話框,請使用 [`Elicitation` hook](/docs/zh-TW/hooks#elicitation)。1503在 URL 模式中,Claude Code 會將 URL 作為命令列引數傳遞給您系統的 URL 處理程式,並限制該引數的長度。當 URL 經過命令列轉義後超過該限制時,您只能拒絕請求。每個需要轉義的字元,例如 `%` 或 `&`,都會計為上限的四倍:其本身的字元加上三個轉義字元。沒有這些字元的 URL 在約 8,000 個字元時達到上限。主要由百分比轉義組成的 URL,其中每三個字元中有一個是 `%`,在大約 4,000 個字元時達到上限。

1130 1504 

1131如果您正在建立使用引發的 MCP server,請參閱 [MCP 引發規格](https://modelcontextprotocol.io/docs/learn/client-concepts#elicitation),了解協議詳細資訊和架構範例。1505若要自動回應徵詢請求而不顯示對話框,請使用 [`Elicitation` hook](/docs/zh-TW/hooks#elicitation)。

1506 

1507如果您正在建置使用徵詢功能的 MCP 伺服器,請參閱 [MCP 徵詢規格](https://modelcontextprotocol.io/docs/learn/client-concepts#elicitation)以了解協定詳細資訊和結構描述範例。

1508 

1509在使用 [protocol revision 2026-07-28](#mcp-client-runtimes) 的連線上,Claude Code 在其用戶端功能中宣告 `elicitation: {form: {}, url: {}}`,因此該處的伺服器可以透過協定的標準徵詢請求來請求任一模式。

1132 1510 

1133<h2 id="use-mcp-resources">1511<h2 id="use-mcp-resources">

1134 使用 MCP 資源1512 使用 MCP 資源

1135</h2>1513</h2>

1136 1514 

1137MCP servers 可以公開資源,您可以使用 @ 提及來參考,類似於您參考檔案的方式。1515MCP 伺服器可以公開資源,您可以使用 @ 提及來參考這些資源,類似於您參考檔案的方式。

1138 1516 

1139<h3 id="reference-mcp-resources">1517<h3 id="reference-mcp-resources">

1140 參考 MCP 資源1518 參考 MCP 資源


1142 1520 

1143<Steps>1521<Steps>

1144 <Step title="列出可用資源">1522 <Step title="列出可用資源">

1145 在您的提示中輸入 `@` 以查看所有連接的 MCP servers 中的可用資源。資源與檔案一起出現在自動完成功能表中。1523 在您的提示中輸入 `@` 以查看來自所有已連接 MCP 伺服器的可用資源。資源會與檔案一起出現在自動完成選單中。

1146 </Step>1524 </Step>

1147 1525 

1148 <Step title="參考特定資源">1526 <Step title="參考特定資源">

1149 使用格式 `@server:protocol://resource/path` 來參考資源:1527 使用格式 `@server:protocol://resource/path` 來參考資源:

1150 1528 

1151 ```text theme={null}1529 ```text wrap theme={null}

1152 Can you analyze @github:issue://123 and suggest a fix?1530 Can you analyze @github:issue://123 and suggest a fix?

1153 ```1531 ```

1154 1532 

1155 ```text theme={null}1533 ```text wrap theme={null}

1156 Please review the API documentation at @docs:file://api/authentication1534 Please review the API documentation at @docs:file://api/authentication

1157 ```1535 ```

1158 </Step>1536 </Step>

1159 1537 

1160 <Step title="多個資源參考">1538 <Step title="多個資源參考">

1161 您可以在單個提示中參考多個資源:1539 您可以在單一提示中參考多個資源:

1162 1540 

1163 ```text theme={null}1541 ```text wrap theme={null}

1164 Compare @postgres:schema://users with @docs:file://database/user-model1542 Compare @postgres:schema://users with @docs:file://database/user-model

1165 ```1543 ```

1166 </Step>1544 </Step>


1169<Tip>1547<Tip>

1170 提示:1548 提示:

1171 1549 

1172 * 資源在參考時會自動取得並作為附件包含1550 * 資源在被參考時會自動擷取並作為附件包含

1173 * 資源路徑在 @ 提及自動完成中可進行模糊搜尋1551 * 資源路徑在 @ 提及自動完成中可進行模糊搜尋

1174 * Claude Code 在 servers 支援時自動提供列出和讀取 MCP 資源的工具1552 * Claude Code 會在伺服器支援時自動提供列出和讀取 MCP 資源的工具

1175 * 資源可以包含 MCP server 提供的任何類型的內容 (文字、JSON、結構化資料等)1553 * 資源可以包含 MCP 伺服器提供的任何類型的內容(文字、JSON、結構化資料等)

1176</Tip>1554</Tip>

1177 1555 

1556MCP Apps UI 資源是具有 `ui://` URI 或 `text/html;profile=mcp-app` 媒體類型的項目:供主應用程式呈現的頁面,而不是供 Claude 讀取的內容。它們不會出現在 `@` 建議或資源列表工具的結果中,而且只提供 UI 資源的伺服器會顯示空的資源列表。按其 URI 讀取 UI 資源仍然有效。

1557 

1178<h2 id="scale-with-mcp-tool-search">1558<h2 id="scale-with-mcp-tool-search">

1179 使用 MCP Tool Search 進行擴展1559 使用 MCP 工具搜尋進行擴展

1180</h2>1560</h2>

1181 1561 

1182Tool search 透過延遲工具定義直到 Claude 需要它們來保持 MCP 內容使用低。只有工具名稱和伺服器指示在 session 啟動時載入,因此新增更多 MCP servers 對您的內容視窗的影響最小。Claude Code 不會對每個伺服器施加固定的工具上限;實際限制是您的內容視窗預算。1562工具搜尋透過延遲工具定義直到 Claude 需要時才載入,來保持 MCP 內容使用量較低。只有工具名稱和伺服器指令在工作階段開始時載入,因此新增更多 MCP 伺服器對您的內容視窗影響最小。Claude Code 不會對每個伺服器施加固定的工具上限;實際限制是您的內容視窗預算。

1183 1563 

1184<h3 id="how-it-works">1564<Note>

1185 工作原理1565 工具搜尋在 Microsoft Foundry [部署於 Azure 的部署](https://platform.claude.com/docs/en/build-with-claude/claude-in-microsoft-foundry#hosting-options)上不受支援,該部署在伺服器端拒絕它:Claude Code 偵測到拒絕並改為對該部署預先載入 MCP 工具。[`ENABLE_TOOL_SEARCH`](#configure-tool-search) 無法覆蓋此設定,因為拒絕來自部署本身。

1186</h3>1566</Note>

1187 

1188Tool search 預設啟用。MCP 工具被延遲而不是預先載入到內容中,Claude 使用搜尋工具在任務需要時探索相關的工具。只有 Claude 實際使用的工具才會進入內容。從您的角度來看,MCP 工具的工作方式完全相同。

1189 

1190如果您偏好基於閾值的載入,請設定 `ENABLE_TOOL_SEARCH=auto` 以在工具適合內容視窗的 10% 內時預先載入架構,並僅延遲溢出。請參閱 [配置 tool search](#configure-tool-search) 了解所有選項。

1191 1567 

1192<h3 id="for-mcp-server-authors">1568<h3 id="for-mcp-server-authors">

1193 對於 MCP server 作者1569 針對 MCP 伺服器作者

1194</h3>1570</h3>

1195 1571 

1196如果您正在建立 MCP server,啟用 Tool Search 時 server 指示欄位會變得更有用。Server 指示可幫助 Claude 了解何時搜尋您的工具,類似於 [skills](/docs/zh-TW/skills) 的工作方式。1572如果您正在建立 MCP 伺服器,啟用工具搜尋時伺服器指令欄位會變得更有用。伺服器指令幫助 Claude 瞭解何時搜尋您的工具,類似於 [skills](/docs/zh-TW/skills) 的運作方式。

1197 1573 

1198新增清晰、描述性的 server 指示,說明:1574新增清晰、描述性的伺服器指令,說明:

1199 1575 

1200* 您的工具處理的任務類別1576* 您的工具處理的任務類別

1201* Claude 應何時搜尋您的工具1577* Claude 應何時搜尋您的工具

1202* 您的 server 提供的關鍵功能1578* 您的伺服器提供的關鍵功能

1579 

1580Claude Code 預設將每個工具描述和每個伺服器的指令截斷為 2,048 個字元。保持簡潔,並將關鍵詳細資訊放在開頭。

1203 1581 

1204Claude Code 將工具描述和 server 指示截斷為每個 2KB。保持簡潔以避免截斷,並將關鍵詳細資訊放在開始處。1582若要變更工作階段中每個 MCP 伺服器的限制,請將 [`CLAUDE_CODE_MAX_MCP_DESCRIPTION_LENGTH`](/docs/zh-TW/env-vars#variables) 設定為字元數。此變數需要 Claude Code v2.1.280 或更新版本。

1205 1583 

1206<h3 id="configure-tool-search">1584<h3 id="configure-tool-search">

1207 配置 tool search1585 設定工具搜尋

1208</h3>1586</h3>

1209 1587 

1210Tool search 預設啟用:MCP 工具被延遲並按需探索。Claude Code 在 Google Cloud 的 Agent Platform 上預設停用它。當 `ANTHROPIC_BASE_URL` 指向非第一方主機時,它也被停用,因為大多數代理不轉發 `tool_reference` 區塊。設定 `ENABLE_TOOL_SEARCH` 明確以覆蓋任一回退。1588工具搜尋預設為啟用:MCP 工具被延遲並按需發現。當 `ANTHROPIC_BASE_URL` 指向非第一方主機時,Claude Code 會停用它,因為大多數代理不轉發 `tool_reference` 區塊。設定 `ENABLE_TOOL_SEARCH` 明確覆蓋該後備方案。

1589 

1590設定 [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS`](/docs/zh-TW/env-vars) 保持工具搜尋關閉。您無法透過自己設定 `ENABLE_TOOL_SEARCH` 來覆蓋它。您的組織可以透過 [managed settings](/docs/zh-TW/managed-settings) 在 Claude Code v2.1.227 或更新版本上保持工具搜尋開啟。[停用預發行功能](/docs/zh-TW/llm-gateway-protocol#disable-pre-release-capabilities) 涵蓋覆蓋適用的位置以及變數移除的內容。

1211 1591 

1212設定 [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS`](/docs/zh-TW/env-vars) 保持 tool search 關閉,且 `ENABLE_TOOL_SEARCH` 無法覆蓋它。該變數會移除 `defer_loading` 工具定義和 `tool_reference` 內容區塊所需的 beta 標頭。1592工具搜尋需要支援 `tool_reference` 區塊的模型:Claude Sonnet 4.5、Claude Haiku 4.5、Claude Opus 4.5 及更新版本的模型。請參閱 [API 文件中的模型相容性](https://platform.claude.com/docs/en/agents-and-tools/tool-use/tool-search-tool#model-compatibility)以取得目前清單。

1213 1593 

1214Tool search 需要支援 `tool_reference` 區塊的模型:Claude Sonnet 4.5、Claude Haiku 4.5、Claude Opus 4.5 及更新版本。請參閱 [API 文件中的模型相容性](https://platform.claude.com/docs/en/agents-and-tools/tool-use/tool-search-tool#model-compatibility) 以取得目前清單。在 Google Cloud 的 Agent Platform 上,tool search 支援 Claude Sonnet 4.5 及更新版本和 Claude Opus 4.5 及更新版本。1594在 Google Cloud 的 Agent Platform 上,Claude Code 按模型世代決定:

1215 1595 

1216使用 `ENABLE_TOOL_SEARCH` 環境變數控制 tool search 行為:1596* **Claude Opus 4.5、Sonnet 4.5、Haiku 4.5 及更新版本**:工具搜尋預設為開啟,與 Anthropic API 上相同。

1597* **較早的 Agent Platform 模型**:Claude Code 預先載入所有 MCP 工具,因為它們的服務堆疊拒絕所需的測試版標頭。`ENABLE_TOOL_SEARCH=true` 不會覆蓋此設定。

1598 

1599在 v2.1.221 之前,Claude Code 在 Google Cloud 的 Agent Platform 上對所有模型停用工具搜尋,除非您設定 `ENABLE_TOOL_SEARCH=true`。

1600 

1601使用 `ENABLE_TOOL_SEARCH` 環境變數控制工具搜尋行為:

1217 1602 

1218| 值 | 行為 |1603| 值 | 行為 |

1219| :- | :- |1604| :- | :- |

1220| (未設定) | 所有 MCP 工具被延遲並按需載入。在 Google Cloud 的 Agent Platform 上或當 `ANTHROPIC_BASE_URL` 是非第一方主機時回退到預先載入 |1605| (未設定) | 所有 MCP 工具延遲並按需載入。在 Google Cloud 的 Agent Platform 模型早於 Claude 4.5 世代時、當 `ANTHROPIC_BASE_URL` 是非第一方主機時,或在部署於 Azure 的 Microsoft Foundry 部署上時,回退到預先載入 |

1221| `true` | 所有 MCP 工具被延遲。Claude Code 即使在 Google Cloud 的 Agent Platform 上和透過代理也會傳送 beta 標頭。在 Google Cloud 的 Agent Platform 模型早於 Sonnet 4.5 或 Opus 4.5 上,或在不支援 `tool_reference` 區塊的代理上,請求會失敗 |1606| `true` | 所有 MCP 工具延遲,除了在部署於 Azure 的 Microsoft Foundry 部署上,伺服器端拒絕仍強制預先載入,以及在 Google Cloud 的 Agent Platform 模型早於 Claude 4.5 世代上,Claude Code 保持預先載入工具。Claude Code 透過代理傳送測試版標頭,並在不支援 `tool_reference` 區塊的代理上要求失敗 |

1222| `auto` | 閾值模式:如果工具適合內容視窗的 10% 內,則預先載入,否則延遲 |1607| `auto` | 閾值模式:Claude Code 預先載入它會延遲的工具,同時它們的定義總計少於內容視窗的 10%,一旦定義達到 10% 就延遲所有工具 |

1223| `auto:N` | 閾值模式,具有自訂百分比,其中 `N` 是 0-100。例如,`auto:5` 表示 5% |1608| `auto:N` | 具有自訂百分比的閾值模式,其中 `N` 是 0-100。例如,`auto:5` 表示 5% |

1224| `false` | 所有 MCP 工具預先載入,無延遲 |1609| `false` | 所有 MCP 工具預先載入,無延遲 |

1225 1610 

1226```bash theme={null}1611```bash theme={null}

1227# 使用自訂 5% 閾值1612# 使用自訂 5% 閾值

1228ENABLE_TOOL_SEARCH=auto:5 claude1613ENABLE_TOOL_SEARCH=auto:5 claude

1229 1614 

1230# 完全停用 tool search1615# 完全停用工具搜尋

1231ENABLE_TOOL_SEARCH=false claude1616ENABLE_TOOL_SEARCH=false claude

1232```1617```

1233 1618 

1234或在您的 [settings.json `env` 欄位](/docs/zh-TW/settings#available-settings) 中設定值。1619或在您的 [settings.json `env` 欄位](/docs/zh-TW/settings-reference#env)中設定值。

1235 1620 

1236您也可以特別停用 `ToolSearch` 工具:1621您也可以特別停用 `ToolSearch` 工具:

1237 1622 


1244```1629```

1245 1630 

1246<h3 id="exempt-a-server-from-deferral">1631<h3 id="exempt-a-server-from-deferral">

1247 豁免伺服器延遲1632 豁免伺服器不延遲

1248</h3>1633</h3>

1249 1634 

1250如果伺服器的工具應始終對 Claude 可見而無需搜尋步驟,請在該伺服器的配置中將 `alwaysLoad` 設定為 `true`。該伺服器的每個工具隨後都會在 session 啟動時載入到內容中,無論 `ENABLE_TOOL_SEARCH` 設定如何。對於 Claude 在每個回合都需要的少量工具,請使用此選項,因為每個預先載入的工具會消耗內容,否則這些內容將可用於您的對話。1635如果伺服器的工具應始終對 Claude 可見而無需搜尋步驟,請在該伺服器的設定中將 `alwaysLoad` 設定為 `true`。該伺服器的每個工具隨後在工作階段開始時載入到內容中,無論 `ENABLE_TOOL_SEARCH` 設定如何。對於 Claude 在每個回合都需要的少量工具使用此設定,因為每個預先載入的工具會消耗原本可用於您的對話的內容。

1251 1636 

1252以下 `.mcp.json` 項目豁免一個 HTTP 伺服器,同時保持其他伺服器延遲:1637以下 `.mcp.json` 項目豁免一個 HTTP 伺服器,同時保持其他伺服器延遲:

1253 1638 


1263}1648}

1264```1649```

1265 1650 

1266`alwaysLoad` 欄位在所有伺服器類型上可用,需要 Claude Code v2.1.121 或更新版本。MCP 伺服器也可以透過在工具的 `_meta` 物件中包含 `"anthropic/alwaysLoad": true` 來標記個別工具為始終載入,這對該工具只有相同的效果。1651`alwaysLoad` 欄位在所有伺服器類型上都可用。MCP 伺服器也可以透過在工具的 `_meta` 物件中包含 `"anthropic/alwaysLoad": true` 來標記個別工具為始終載入,這對該工具只有相同的效果。

1267 1652 

1268設定 `alwaysLoad: true` 也會阻止啟動直到伺服器連線,上限為標準 5 秒連線逾時。即使 MCP 啟動在其他方面[預設為非阻塞](/docs/zh-TW/env-vars),這也適用,因為工具必須在建立第一個提示時存在。其他伺服器繼續在背景中連線。1653設定 `alwaysLoad: true` 也會使啟動等待伺服器的工具,上限為標準 5 秒連線逾時,因為它們必須在建立第一個提示時存在。具有有效 [`cached` 項目](#server-status-detail)的遠端伺服器從快取提供其工具而無需連線,因此它不會延遲啟動。其他伺服器預設在背景連線;設定 [`MCP_CONNECTION_NONBLOCKING=0`](/docs/zh-TW/env-vars) 也使啟動等待它們。

1269 1654 

1270<h2 id="use-mcp-prompts-as-commands">1655<h2 id="use-mcp-prompts-as-commands">

1271 使用 MCP 提示作為命令1656 使用 MCP 提示作為命令

1272</h2>1657</h2>

1273 1658 

1274MCP servers 可以公開提示,這些提示在 Claude Code 中變成可用的命令。1659MCP 伺服器可以公開提示,這些提示在 Claude Code 中成為可用的命令。

1660 

1661來自名為 `anthropic-skills` 的伺服器的提示不會出現,因為 Claude Code [保留該名稱](/docs/zh-TW/skills#names-reserved-for-synced-skills)用於從 claude.ai 同步的技能。伺服器的工具仍然有效。在您的 MCP 設定中重新命名伺服器以列出其提示。

1275 1662 

1276<h3 id="execute-mcp-prompts">1663<h3 id="execute-mcp-prompts">

1277 執行 MCP 提示1664 執行 MCP 提示

1278</h3>1665</h3>

1279 1666 

1280<Steps>1667<Steps>

1281 <Step title="探索可用提示">1668 <Step title="探索可用的提示">

1282 輸入 `/` 以查看所有可用命令,包括來自 MCP servers 的命令。MCP 提示以 `/mcp__servername__promptname` 的格式出現。1669 輸入 `/` 以查看您可用的命令,包括來自 MCP 伺服器的命令。Claude Code 將每個 MCP 提示列為 `/servername:promptname (MCP)`。輸入 `/mcp__servername__promptname` 也會執行它。

1283 </Step>1670 </Step>

1284 1671 

1285 <Step title="執行沒有引數的提示">1672 <Step title="執行沒有引數的提示">

1286 ```text theme={null}1673 ```text wrap theme={null}

1287 /mcp__github__list_prs1674 /mcp__github__list_prs

1288 ```1675 ```

1289 </Step>1676 </Step>

1290 1677 

1291 <Step title="執行帶有引數的提示">1678 <Step title="執行帶有引數的提示">

1292 許多提示接受引數。在命令後以空格分隔的方式傳遞它們:1679 許多提示接受引數。在命令後以空格分隔的方式傳遞它們。Claude Code 在空白處分割引數,因此每個引數是單一令牌:

1293 1680 

1294 ```text theme={null}1681 ```text wrap theme={null}

1295 /mcp__github__pr_review 4561682 /mcp__github__pr_review 456

1296 ```1683 ```

1297 1684 

1298 ```text theme={null}1685 ```text wrap theme={null}

1299 /mcp__jira__create_issue "Bug in login flow" high1686 /mcp__jira__create_issue login-bug high

1300 ```1687 ```

1301 </Step>1688 </Step>

1302</Steps>1689</Steps>


1304<Tip>1691<Tip>

1305 提示:1692 提示:

1306 1693 

1307 * MCP 提示從連接的 servers 動態探索1694 * MCP 提示從連接的伺服器動態探索

1308 * 引數根據提示的定義參數進行解析1695 * 引數根據提示的定義參數進行解析

1309 * 提示結果直接注入到對話中1696 * 提示結果直接注入到對話中

1310 * Server 和提示名稱已標準化,空格變成底線1697 * 在 `/mcp__servername__promptname` 形式中,Claude Code 將伺服器名稱中 `A-Z`、`a-z`、`0-9`、`_` 和 `-` 之外的任何字元替換為 `_`,並使用伺服器聲明的提示名稱

1311</Tip>1698</Tip>

1312 1699 

1313<h2 id="managed-mcp-configuration">1700<h2 id="managed-mcp-configuration">

1314 受管理的 MCP 配置1701 Managed MCP 設定

1315</h2>1702</h2>

1316 1703 

1317對於需要對使用者可以連接的 MCP servers 進行集中控制的組織,請參閱 [受管理的 MCP 配置](/docs/zh-TW/managed-mcp)。它涵蓋使用 `managed-mcp.json` 部署固定的 server 集合、使用 `allowedMcpServers` 和 `deniedMcpServers` 限制 servers,以及當 server 被阻止時使用者看到的內容。1704對於需要集中控制使用者可以連接哪些 MCP 伺服器的組織,請參閱 [Managed MCP 設定](/docs/zh-TW/managed-mcp)。它涵蓋使用 `managed-mcp.json` 部署固定伺服器集、使用 `managedMcpServers` 為每個使用者提供伺服器、使用 `allowedMcpServers` 和 `deniedMcpServers` 限制伺服器,以及當伺服器被阻止時使用者看到的內容。

memory.md +9 −0

Details

103 103 

104**一致性**:如果兩個規則相互矛盾,Claude 可能會任意選擇一個。定期審查您的 CLAUDE.md 檔案、子目錄中的巢狀 CLAUDE.md 檔案和 [`.claude/rules/`](#organize-rules-with-claude/rules/) 以移除過時或衝突的指令。在 monorepos 中,使用 [`claudeMdExcludes`](#exclude-specific-claude-md-files) 跳過來自與您的工作無關的其他團隊的 CLAUDE.md 檔案。104**一致性**:如果兩個規則相互矛盾,Claude 可能會任意選擇一個。定期審查您的 CLAUDE.md 檔案、子目錄中的巢狀 CLAUDE.md 檔案和 [`.claude/rules/`](#organize-rules-with-claude/rules/) 以移除過時或衝突的指令。在 monorepos 中,使用 [`claudeMdExcludes`](#exclude-specific-claude-md-files) 跳過來自與您的工作無關的其他團隊的 CLAUDE.md 檔案。

105 105 

106若要讓 Claude 檢查這些檔案是否有過時或衝突的指令,請在工作階段中執行 `/doctor prompt-audit`。Claude 讀取您的 CLAUDE.md、CLAUDE.local.md 和 AGENTS.md 檔案,加上 `.claude/` 和 `~/.claude/` 下的規則、skills、命令、子代理和輸出樣式。它尋找問題,例如為舊版模型編寫的指令、對不存在的檔案或命令的參考,以及相互矛盾的檔案。您會獲得發現報告和一組建議的編輯,在您要求 Claude 應用它們之前,您的檔案中不會有任何變更。

107 

108若要改為審計一個檔案或目錄,請傳遞其路徑,例如 `/doctor prompt-audit .claude/skills/deploy`。審計透過捆綁的 `/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 或更新版本。

109 

106<h3 id="import-additional-files">110<h3 id="import-additional-files">

107 匯入其他檔案111 匯入其他檔案

108</h3>112</h3>


273ln -s ~/company-standards/security.md .claude/rules/security.md277ln -s ~/company-standards/security.md .claude/rules/security.md

274```278```

275 279 

280如果您將 `.claude/rules/` 或 `CLAUDE.md` 符號連結指向網路路徑(例如 UNC 共享 `\\server\share` 或 `/net` 或 `/Network` 下的路徑),連結的指令不會載入。Claude Code 不會跟隨連結,因為查詢此類路徑可能會聯絡它命名的主機。`\\wsl$` 路徑不計為網路路徑。

281 

276<h4 id="user-level-rules">282<h4 id="user-level-rules">

277 使用者級規則283 使用者級規則

278</h4>284</h4>


620* 檢查相關的 CLAUDE.md 是否位於為您的工作階段載入的位置(請參閱 [選擇 CLAUDE.md 檔案的位置](#choose-where-to-put-claude-md-files))。626* 檢查相關的 CLAUDE.md 是否位於為您的工作階段載入的位置(請參閱 [選擇 CLAUDE.md 檔案的位置](#choose-where-to-put-claude-md-files))。

621* 使指令更具體。「使用 2 空格縮排」比「正確格式化程式碼」效果更好。627* 使指令更具體。「使用 2 空格縮排」比「正確格式化程式碼」效果更好。

622* 查找跨 CLAUDE.md 檔案的衝突指令。如果兩個檔案為相同行為提供不同的指導,Claude 可能會任意選擇一個。628* 查找跨 CLAUDE.md 檔案的衝突指令。如果兩個檔案為相同行為提供不同的指導,Claude 可能會任意選擇一個。

629* 檢查您的指令是否與 Claude Code 自行新增的指導相競爭。如果您的 CLAUDE.md 設定提交或提取請求規則,請使用 [`includeGitInstructions`](/docs/zh-TW/settings-reference#includegitinstructions) 關閉內建規則,並使用 [`attribution`](/docs/zh-TW/settings-reference#attribution) 設定歸屬文字。

623 630 

624如果指令是必須在特定時間點執行的內容,例如在每次提交前或每次檔案編輯後,請改為將其寫成 [hook](/docs/zh-TW/hooks-guide)。Hooks 在固定的生命週期事件中作為 shell 命令執行,並且無論 Claude 決定做什麼都適用。631如果指令是必須在特定時間點執行的內容,例如在每次提交前或每次檔案編輯後,請改為將其寫成 [hook](/docs/zh-TW/hooks-guide)。Hooks 在固定的生命週期事件中作為 shell 命令執行,並且無論 Claude 決定做什麼都適用。

625 632 


657 664 

658超過 200 行的檔案消耗更多上下文,可能會降低遵守度。Claude Code 會跳過超過 4 MiB 的檔案。使用 [路徑範圍規則](#path-specific-rules) 僅在 Claude 處理符合的檔案時載入指令,或修剪不是每個工作階段都需要的內容。分割成 [`@path` 匯入](#import-additional-files) 有助於組織,但不會減少上下文,因為匯入的檔案在啟動時載入。665超過 200 行的檔案消耗更多上下文,可能會降低遵守度。Claude Code 會跳過超過 4 MiB 的檔案。使用 [路徑範圍規則](#path-specific-rules) 僅在 Claude 處理符合的檔案時載入指令,或修剪不是每個工作階段都需要的內容。分割成 [`@path` 匯入](#import-additional-files) 有助於組織,但不會減少上下文,因為匯入的檔案在啟動時載入。

659 666 

667如果您的其中一個指令檔案超過建議長度,您會在啟動時和執行 `/status` 時看到警告。當在工作階段開始時各自在該長度內的檔案加起來超過合併限制時,您也會看到警告。每個 CLAUDE.md、規則檔案和 `@path` 匯入都計為單獨的檔案。

668 

660[`/doctor`](/docs/zh-TW/commands#all-commands) 檢查會為已簽入的 CLAUDE.md 提出修剪建議:它會刪除 Claude 可以從程式碼庫衍生的內容,例如目錄配置、相依性清單和架構概述,並保留與工具預設值不同的陷阱、基本原理和慣例。修剪檢查需要 Claude Code v2.1.206 或更新版本。669[`/doctor`](/docs/zh-TW/commands#all-commands) 檢查會為已簽入的 CLAUDE.md 提出修剪建議:它會刪除 Claude 可以從程式碼庫衍生的內容,例如目錄配置、相依性清單和架構概述,並保留與工具預設值不同的陷阱、基本原理和慣例。修剪檢查需要 Claude Code v2.1.206 或更新版本。

661 670 

662<h3 id="instructions-seem-lost-after-/compact">671<h3 id="instructions-seem-lost-after-/compact">

mobile.md +1 −1

Details

43| 功能 | 您連接到的內容 | 何時使用 |43| 功能 | 您連接到的內容 | 何時使用 |

44| :- | :- | :- |44| :- | :- | :- |

45| [雲端工作階段](/docs/zh-TW/claude-code-on-the-web) | 雲端基礎設施上的工作階段,預設由 Anthropic 管理 | 您的儲存庫在 GitHub 上,工作應在您放下手機後繼續執行。請參閱[雲端快速入門](/docs/zh-TW/web-quickstart)進行設定。 |45| [雲端工作階段](/docs/zh-TW/claude-code-on-the-web) | 雲端基礎設施上的工作階段,預設由 Anthropic 管理 | 您的儲存庫在 GitHub 上,工作應在您放下手機後繼續執行。請參閱[雲端快速入門](/docs/zh-TW/web-quickstart)進行設定。 |

46| [專案](/docs/zh-TW/claude-projects) | Claude 協調平行雲端工作階段作為執行緒的對話 | 您有一系列相關的工作而不是一個工作,並想查看哪些執行緒已完成或需要您。 |46| [專案](/docs/zh-TW/claude-projects) | Claude 協調平行工作執行緒並回報的對話 | 您有一系列相關的工作而不是一個工作,並想查看哪些執行緒已完成或需要您。 |

47| [遠端控制](/docs/zh-TW/remote-control) | 在您的電腦上執行的 Claude Code 工作階段 | 工作需要您的本機檔案系統、工具或 MCP 伺服器。 |47| [遠端控制](/docs/zh-TW/remote-control) | 在您的電腦上執行的 Claude Code 工作階段 | 工作需要您的本機檔案系統、工具或 MCP 伺服器。 |

48| [Dispatch](/docs/zh-TW/desktop#sessions-from-dispatch) | 您電腦上的桌面應用程式 | 您想傳送工作訊息並讓 Dispatch 決定如何執行它。需要 Pro 或 Max 方案。 |48| [Dispatch](/docs/zh-TW/desktop#sessions-from-dispatch) | 您電腦上的桌面應用程式 | 您想傳送工作訊息並讓 Dispatch 決定如何執行它。需要 Pro 或 Max 方案。 |

49 49 

Details

39 39 

40若要驗證匯出指標的設定,請檢查您的後端是否有 `claude_code.session.count` 指標,Claude Code 會在工作階段啟動時發出此指標。若要驗證僅限日誌的設定,請提交提示並檢查 `claude_code.user_prompt` 事件。40若要驗證匯出指標的設定,請檢查您的後端是否有 `claude_code.session.count` 指標,Claude Code 會在工作階段啟動時發出此指標。若要驗證僅限日誌的設定,請提交提示並檢查 `claude_code.user_prompt` 事件。

41 41 

42如果沒有任何內容到達,請執行 `claude --debug` 並檢查除錯日誌。Claude Code 會將您配置的匯出器失敗報告為 `[3P telemetry]` 錯誤,其中 3P 表示第三方。以 `[Anthropic telemetry]` 為前綴的行描述 [Anthropic 的獨立營運遙測](/docs/zh-TW/data-usage#telemetry-services),不表示您的設定有問題。42如果沒有任何內容到達,請使用 `claude --debug-file <path>` 啟動 Claude Code,並檢查它寫入該路徑的日誌。Claude Code 會將您配置的匯出器失敗報告為 `[3P telemetry]` 錯誤,其中 3P 表示第三方。以 `[Anthropic telemetry]` 為前綴的行描述 [Anthropic 的獨立營運遙測](/docs/zh-TW/data-usage#telemetry-services),不表示您的設定有問題。

43 43 

44如需完整配置選項,請參閱 [OpenTelemetry 規範](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/protocol/exporter.md#configuration-options)。44如需完整配置選項,請參閱 [OpenTelemetry 規範](https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/protocol/exporter.md#configuration-options)。

45 45 


72 受管設定如何鎖定 OTLP 目的地72 受管設定如何鎖定 OTLP 目的地

73</h3>73</h3>

74 74 

75當您在受管設定中設定 `OTEL_EXPORTER_OTLP_*` 變數時,Claude Code 會在啟動時移除衝突的開發人員設定變數,並記錄您可以透過 `claude --debug` 查看的警告。它移除的內容取決於您設定的變數:75當您在受管設定中設定 `OTEL_EXPORTER_OTLP_*` 變數時,Claude Code 會在啟動時移除衝突的開發人員設定變數,並在偵錯日誌中記錄警告。它移除的內容取決於您設定的變數:

76 76 

77* **端點**:當您設定 `OTEL_EXPORTER_OTLP_ENDPOINT` 時,Claude Code 會移除每個開發人員設定的每個信號端點。開發人員無法將一個信號指向不同的收集器,因此您不需要在受管設定中也設定每個信號的端點變數。77* **端點**:當您設定 `OTEL_EXPORTER_OTLP_ENDPOINT` 時,Claude Code 會移除每個開發人員設定的每個信號端點。開發人員無法將一個信號指向不同的收集器,因此您不需要在受管設定中也設定每個信號的端點變數。

78* **協議**:當您設定 `OTEL_EXPORTER_OTLP_PROTOCOL` 時,Claude Code 會移除每個開發人員設定的每個信號協議。78* **協議**:當您設定 `OTEL_EXPORTER_OTLP_PROTOCOL` 時,Claude Code 會移除每個開發人員設定的每個信號協議。


123| `OTEL_LOGS_EXPORT_INTERVAL` | 日誌匯出間隔(毫秒)(預設值:5000) | `1000`、`10000` |123| `OTEL_LOGS_EXPORT_INTERVAL` | 日誌匯出間隔(毫秒)(預設值:5000) | `1000`、`10000` |

124| `OTEL_LOG_USER_PROMPTS` | 啟用使用者提示內容的日誌記錄(預設值:停用) | `1` 啟用 |124| `OTEL_LOG_USER_PROMPTS` | 啟用使用者提示內容的日誌記錄(預設值:停用) | `1` 啟用 |

125| `OTEL_LOG_ASSISTANT_RESPONSES` | 在 `assistant_response` 事件上啟用助理回應文字的日誌記錄(預設值:停用)。未設定時,回退到 `OTEL_LOG_USER_PROMPTS` 的值。需要 Claude Code v2.1.193 或更新版本 | `1` 啟用,`0` 保持編輯 |125| `OTEL_LOG_ASSISTANT_RESPONSES` | 在 `assistant_response` 事件上啟用助理回應文字的日誌記錄(預設值:停用)。未設定時,回退到 `OTEL_LOG_USER_PROMPTS` 的值。需要 Claude Code v2.1.193 或更新版本 | `1` 啟用,`0` 保持編輯 |

126| `OTEL_LOG_TOOL_DETAILS` | 啟用工具事件和追蹤跨度屬性中的工具參數和輸入引數的日誌記錄:Bash 命令、MCP 伺服器和工具名稱、技能名稱、使用者撰寫的工作流程名稱和工具輸入。也在 `user_prompt` 事件上啟用自訂、外掛程式和 MCP 命令名稱(預設值:停用)。對於 Claude Desktop 的內建伺服器,在 Claude Desktop 擁有的工作階段中,即使關閉旗標,`mcp_server_name`/`mcp_tool_name` 也會在 `tool_decision`/`tool_result` 上發出。例外需要 Claude Code v2.1.214 或更新版本 | `1` 啟用 |126| `OTEL_LOG_TOOL_DETAILS` | 啟用工具事件和追蹤跨度屬性中的工具參數和輸入引數的日誌記錄:Bash 命令、MCP 伺服器和工具名稱、技能名稱、使用者撰寫的工作流程名稱和工具輸入。也在 `user_prompt` 事件上啟用自訂、外掛程式和 MCP 命令名稱,以及[成本和權杖計數器](#cost-counter)上的真實代理、技能、外掛程式和 MCP 伺服器和工具名稱(預設值:停用)。對於 Claude Desktop 的內建伺服器,在 Claude Desktop 擁有的工作階段中,即使關閉旗標,`mcp_server_name`/`mcp_tool_name` 也會在 `tool_decision`/`tool_result` 上發出。例外需要 Claude Code v2.1.214 或更新版本 | `1` 啟用 |

127| `OTEL_LOG_TOOL_CONTENT` | 啟用 [`tool.output` 跨度事件](#tool-output-span-event)中工具內容的日誌記錄(預設值:停用)。跨度屬性在[其自己的閘道](#new-context-gates)下攜帶工具內容。需要[追蹤](#traces-beta)。內容在內容限制處截斷(預設值:60 KB) | `1` 啟用 |127| `OTEL_LOG_TOOL_CONTENT` | 啟用 [`tool.output` 跨度事件](#tool-output-span-event)中工具內容的日誌記錄(預設值:停用)。跨度屬性在[其自己的閘道](#new-context-gates)下攜帶工具內容。需要[追蹤](#traces-beta)。內容在內容限制處截斷(預設值:60 KB) | `1` 啟用 |

128| `OTEL_LOG_MANAGED_SETTINGS` | 將編輯的受管設定和設定編輯前的 SHA-256 摘要新增到[受管設定已解決](#managed-settings-resolved-event)事件(預設值:停用)。專案或本機設定中的值不會將其開啟。需要 Claude Code v2.1.274 或更新版本 | `1` 啟用 |128| `OTEL_LOG_MANAGED_SETTINGS` | 將編輯的受管設定和設定編輯前的 SHA-256 摘要新增到[受管設定已解決](#managed-settings-resolved-event)事件(預設值:停用)。專案或本機設定中的值不會將其開啟。需要 Claude Code v2.1.274 或更新版本 | `1` 啟用 |

129| `OTEL_LOG_RAW_API_BODIES` | 將完整的 Anthropic Messages API 請求和回應 JSON 作為 `api_request_body` / `api_response_body` 日誌事件發出(預設值:停用)。主體包括整個對話歷史記錄。啟用此項意味著同意 `OTEL_LOG_USER_PROMPTS`、`OTEL_LOG_TOOL_DETAILS` 和 `OTEL_LOG_TOOL_CONTENT` 會揭露的所有內容 | `1` 表示在內容限制處截斷的內聯主體(預設值:60 KB),或 `file:<dir>` 表示磁碟上未截斷的主體,在事件中帶有 `body_ref` 指標 |129| `OTEL_LOG_RAW_API_BODIES` | 將完整的 Anthropic Messages API 請求和回應 JSON 作為 `api_request_body` / `api_response_body` 日誌事件發出(預設值:停用)。主體包括整個對話歷史記錄。啟用此項意味著同意 `OTEL_LOG_USER_PROMPTS`、`OTEL_LOG_TOOL_DETAILS` 和 `OTEL_LOG_TOOL_CONTENT` 會揭露的所有內容 | `1` 表示在內容限制處截斷的內聯主體(預設值:60 KB),或 `file:<dir>` 表示磁碟上未截斷的主體,在事件中帶有 `body_ref` 指標 |


164較低的基數通常意味著更好的效能和更低的儲存成本,但分析的資料粒度較低。164較低的基數通常意味著更好的效能和更低的儲存成本,但分析的資料粒度較低。

165 165 

166<h3 id="traces-beta">166<h3 id="traces-beta">

167 追蹤(測試版)167 Traces(測試版)

168</h3>168</h3>

169 169 

170分散式追蹤匯出跨度,將每個使用者提示連結到它觸發的 API 請求和工具執行,因此您可以在追蹤後端中將完整請求檢視為單一追蹤。170分散式追蹤匯出跨度,將每個使用者提示連結到它觸發的 API 請求和工具執行,因此您可以在追蹤後端中將完整請求檢視為單一追蹤。


174| 環境變數 | 說明 | 範例值 |174| 環境變數 | 說明 | 範例值 |

175| - | - | - |175| - | - | - |

176| `CLAUDE_CODE_ENHANCED_TELEMETRY_BETA` | 啟用跨度追蹤(必需)。也接受 `ENABLE_ENHANCED_TELEMETRY_BETA` | `1` |176| `CLAUDE_CODE_ENHANCED_TELEMETRY_BETA` | 啟用跨度追蹤(必需)。也接受 `ENABLE_ENHANCED_TELEMETRY_BETA` | `1` |

177| `OTEL_TRACES_EXPORTER` | 追蹤匯出工具類型,以逗號分隔。使用 `none` 停用 | `console`、`otlp`、`none` |177| `OTEL_TRACES_EXPORTER` | Traces 匯出工具類型,以逗號分隔。使用 `none` 停用 | `console`、`otlp`、`none` |

178| `OTEL_EXPORTER_OTLP_TRACES_PROTOCOL` | 追蹤的協議,覆蓋 `OTEL_EXPORTER_OTLP_PROTOCOL` | `grpc`、`http/json`、`http/protobuf` |178| `OTEL_EXPORTER_OTLP_TRACES_PROTOCOL` | Traces 的協議,覆蓋 `OTEL_EXPORTER_OTLP_PROTOCOL` | `grpc`、`http/json`、`http/protobuf` |

179| `OTEL_EXPORTER_OTLP_TRACES_ENDPOINT` | OTLP 追蹤端點,覆蓋 `OTEL_EXPORTER_OTLP_ENDPOINT` | `http://localhost:4318/v1/traces` |179| `OTEL_EXPORTER_OTLP_TRACES_ENDPOINT` | OTLP Traces 端點,覆蓋 `OTEL_EXPORTER_OTLP_ENDPOINT` | `http://localhost:4318/v1/traces` |

180| `OTEL_EXPORTER_OTLP_TRACES_HEADERS` | 追蹤的驗證標頭,與 `OTEL_EXPORTER_OTLP_HEADERS` 合併 | `Authorization=Bearer token` |180| `OTEL_EXPORTER_OTLP_TRACES_HEADERS` | Traces 的驗證標頭,與 `OTEL_EXPORTER_OTLP_HEADERS` 合併 | `Authorization=Bearer token` |

181| `OTEL_TRACES_EXPORT_INTERVAL` | 跨度批次匯出間隔(毫秒)(預設值:5000) | `1000`、`10000` |181| `OTEL_TRACES_EXPORT_INTERVAL` | 跨度批次匯出間隔(毫秒)(預設值:5000) | `1000`、`10000` |

182 182 

183跨度預設會編輯使用者提示文字、工具輸入詳細資訊和工具內容。設定 `OTEL_LOG_USER_PROMPTS=1`、`OTEL_LOG_TOOL_DETAILS=1` 和 `OTEL_LOG_TOOL_CONTENT=1` 以包含它們。183跨度預設會編輯使用者提示文字、工具輸入詳細資訊和工具內容。設定 `OTEL_LOG_USER_PROMPTS=1`、`OTEL_LOG_TOOL_DETAILS=1` 和 `OTEL_LOG_TOOL_CONTENT=1` 以包含它們。


195在互動作用中時發出的記錄會攜帶互動跨度的 ID,即使 Claude Code 在跨度的非同步內容外發出它,例如在權限提示回呼或在啟動期間緩衝並稍後匯出的記錄中。在沒有作用中互動跨度的情況下發出的記錄會直接攜帶入站 `TRACEPARENT` ID。在 v2.1.214 之前,在跨度的非同步內容外發出的記錄會攜帶入站 `TRACEPARENT` ID 而不是跨度的 ID。在 v2.1.212 之前,在作用中跨度外發出的事件記錄不會攜帶 `trace_id` 或 `span_id`。195在互動作用中時發出的記錄會攜帶互動跨度的 ID,即使 Claude Code 在跨度的非同步內容外發出它,例如在權限提示回呼或在啟動期間緩衝並稍後匯出的記錄中。在沒有作用中互動跨度的情況下發出的記錄會直接攜帶入站 `TRACEPARENT` ID。在 v2.1.214 之前,在跨度的非同步內容外發出的記錄會攜帶入站 `TRACEPARENT` ID 而不是跨度的 ID。在 v2.1.212 之前,在作用中跨度外發出的事件記錄不會攜帶 `trace_id` 或 `span_id`。

196 196 

197<h4 id="span-hierarchy">197<h4 id="span-hierarchy">

198 跨度階層198 Span 階層

199</h4>199</h4>

200 200 

201每個使用者提示都會啟動 `claude_code.interaction` 根跨度。API 呼叫、工具呼叫和掛鉤執行會記錄為其子項。工具跨度有兩個自己的子跨度:一個用於等待權限決定的時間,一個用於執行本身。當 Agent 工具或舊版 Task 工具產生子代理時,子代理的 API 和工具跨度會巢狀在父項的 `claude_code.tool` 跨度下。201每個使用者提示都會啟動 `claude_code.interaction` 根跨度。API 呼叫、工具呼叫和掛鉤執行會記錄為其子項。工具跨度有兩個自己的子跨度:一個用於等待權限決定的時間,一個用於執行本身。當 Agent 工具或舊版 Task 工具產生子代理時,子代理的 API 和工具跨度會巢狀在父項的 `claude_code.tool` 跨度下。


215當 `PreToolUse` 掛鉤[延遲工具呼叫](/docs/zh-TW/hooks#defer-a-tool-call-for-later)時,Claude Code 會儲存延遲它的回合的追蹤內容。當您繼續工作階段且工具重新執行時,工具的跨度會作為該較早回合的 `claude_code.interaction` 跨度的子項加入該回合的追蹤。215當 `PreToolUse` 掛鉤[延遲工具呼叫](/docs/zh-TW/hooks#defer-a-tool-call-for-later)時,Claude Code 會儲存延遲它的回合的追蹤內容。當您繼續工作階段且工具重新執行時,工具的跨度會作為該較早回合的 `claude_code.interaction` 跨度的子項加入該回合的追蹤。

216 216 

217<h4 id="span-attributes">217<h4 id="span-attributes">

218 跨度屬性218 Span 屬性

219</h4>219</h4>

220 220 

221每個跨度都會攜帶[標準屬性](#standard-attributes)加上與其名稱相符的 `span.type` 屬性。下表列出在每個跨度上設定的其他屬性。`llm_request`、`tool.execution` 和 `hook` 跨度在記錄失敗時設定 OpenTelemetry 狀態 `ERROR`;其他跨度始終以狀態 `UNSET` 結束。221每個跨度都會攜帶[標準屬性](#standard-attributes)加上與其名稱相符的 `span.type` 屬性。下表列出在每個跨度上設定的其他屬性。`llm_request`、`tool.execution` 和 `hook` 跨度在記錄失敗時設定 OpenTelemetry 狀態 `ERROR`;其他跨度始終以狀態 `UNSET` 結束。


241| `query_source_safe` | `query_source` 的有界形式,無論詳細測試版追蹤是否作用中都會發出,具有 `repl_main_thread` 或 `agent.builtin.general-purpose` 等值。`:` 變成 `.`,使用者命名的代理顯示為 `agent.custom`。需要 Claude Code v2.1.268 或更新版本 | |241| `query_source_safe` | `query_source` 的有界形式,無論詳細測試版追蹤是否作用中都會發出,具有 `repl_main_thread` 或 `agent.builtin.general-purpose` 等值。`:` 變成 `.`,使用者命名的代理顯示為 `agent.custom`。需要 Claude Code v2.1.268 或更新版本 | |

242| `agent_id` | 發出請求的子代理或隊友的識別碼。在主工作階段上不存在 | |242| `agent_id` | 發出請求的子代理或隊友的識別碼。在主工作階段上不存在 | |

243| `parent_agent_id` | 產生此代理的代理的識別碼。對於主工作階段和直接從它產生的代理不存在 | |243| `parent_agent_id` | 產生此代理的代理的識別碼。對於主工作階段和直接從它產生的代理不存在 | |

244| `workflow.run_id` | 產生此代理的[工作流程](/docs/zh-TW/workflows)工具執行的執行識別碼,前綴為 `wf_`。對於不是由工作流程產生的代理不存在 | |244| `workflow.run_id` | 產生此代理的 [Workflow](/docs/zh-TW/workflows) 工具執行的執行識別碼,前綴為 `wf_`。對於不是由工作流程產生的代理不存在 | |

245| `workflow.name` | 產生此代理的工作流程的名稱。使用者撰寫的名稱會被替換為 `custom`,除非設定了閘道 | `OTEL_LOG_TOOL_DETAILS` |245| `workflow.name` | 產生此代理的工作流程的名稱。使用者撰寫的名稱會被替換為 `custom`,除非設定了閘道 | `OTEL_LOG_TOOL_DETAILS` |

246| `speed` | `fast` 或 `normal` | |246| `speed` | `fast` 或 `normal` | |

247| `effort` | [努力等級](/docs/zh-TW/model-config#adjust-effort-level)應用於請求:`low`、`medium`、`high`、`xhigh` 或 `max`。當 Claude Code 不傳送努力等級時不存在,例如在不支援努力的模型上。需要 Claude Code v2.1.274 或更新版本 | |247| `effort` | [努力等級](/docs/zh-TW/model-config#adjust-effort-level)應用於請求:`low`、`medium`、`high`、`xhigh` 或 `max`。當 Claude Code 不傳送努力等級時不存在,例如在不支援努力的模型上。需要 Claude Code v2.1.274 或更新版本 | |


253| `output_tokens` | 輸出權杖計數 | |253| `output_tokens` | 輸出權杖計數 | |

254| `cache_read_tokens` | 從提示快取讀取的權杖 | |254| `cache_read_tokens` | 從提示快取讀取的權杖 | |

255| `cache_creation_tokens` | 寫入提示快取的權杖 | |255| `cache_creation_tokens` | 寫入提示快取的權杖 | |

256| `request_id` | 來自 `request-id` 回應標頭的 Anthropic API 請求 ID | |256| `request_id` | API 請求 ID。與 `request_id` [事件相關屬性](#event-correlation-attributes)相同的值 | |

257| `gen_ai.response.id` | 與 `request_id` 相同的值。OpenTelemetry GenAI 語義慣例 | |257| `gen_ai.response.id` | 與 `request_id` 相同的值。OpenTelemetry GenAI 語義慣例 | |

258| `client_request_id` | 最終嘗試的用戶端產生的 `x-client-request-id` | |258| `client_request_id` | 最終嘗試的用戶端產生的 `x-client-request-id` | |

259| `attempt` | 為此請求進行的總嘗試次數 | |259| `attempt` | 為此請求進行的總嘗試次數 | |


292 292 

293如果您設定 `OTEL_LOG_TOOL_CONTENT=1`,Read 和 Bash 呼叫可以在 `claude_code.tool` 跨度上記錄 `tool.output` 跨度事件。Edit 和 Write 呼叫僅在您也設定 `OTEL_LOG_TOOL_DETAILS=1` 時才記錄一個。該變數不限於這兩個工具,因此請檢查其[設定表中的列](#common-configuration-variables)以了解它在其他地方新增的引數。293如果您設定 `OTEL_LOG_TOOL_CONTENT=1`,Read 和 Bash 呼叫可以在 `claude_code.tool` 跨度上記錄 `tool.output` 跨度事件。Edit 和 Write 呼叫僅在您也設定 `OTEL_LOG_TOOL_DETAILS=1` 時才記錄一個。該變數不限於這兩個工具,因此請檢查其[設定表中的列](#common-configuration-variables)以了解它在其他地方新增的引數。

294 294 

295MCP 工具、WebFetch 和 WebSearch 也會在 Claude Code v2.1.283 或更新版本上記錄此事件。

296 

295Claude Code 從工具呼叫的成功返回寫入此事件,因此引發錯誤的呼叫不會記錄任何內容,無論工具如何。在確實返回的呼叫中,它不會為以下項目記錄 `tool.output` 事件:297Claude Code 從工具呼叫的成功返回寫入此事件,因此引發錯誤的呼叫不會記錄任何內容,無論工具如何。在確實返回的呼叫中,它不會為以下項目記錄 `tool.output` 事件:

296 298 

297* 對除 Read、Edit、Write 和 Bash 之外的任何工具的呼叫,包括 MCP 工具和 WebFetch299* 對除 Read、Edit、Write、Bash、WebFetch、WebSearch 和 MCP 工具之外的任何工具的呼叫

298* 返回除檔案文字以外的任何內容的 Read,例如影片、PDF 或重新讀取其內容未變更的檔案300* 返回除檔案文字以外的任何內容的 Read,例如影片、PDF 或重新讀取其內容未變更的檔案

299* Edit 或 Write 呼叫,除非您也設定 `OTEL_LOG_TOOL_DETAILS=1`301* Edit 或 Write 呼叫,除非您也設定 `OTEL_LOG_TOOL_DETAILS=1`

302* 一個 WebFetch 或 WebSearch 呼叫,Claude Code 將其移到背景,因為您中斷了回合以[立即傳送您的佇列訊息](/docs/zh-TW/interactive-mode#when-claude-code-sends-what-you-queued),而呼叫執行。Claude 稍後會收到該結果,在工具跨度結束後

300 303 

301該事件攜帶這些屬性,每個都在內容限制處截斷(預設值:60 KB)。`由以下控制` 命名屬性在 `OTEL_LOG_TOOL_CONTENT=1` 之上需要的變數,對於 Edit 和 Write,該變數控制事件本身而不是屬性。304該事件攜帶這些屬性,每個都在內容限制處截斷(預設值:60 KB)。`由以下控制` 命名屬性在 `OTEL_LOG_TOOL_CONTENT=1` 之上需要的變數,對於 Edit 和 Write,該變數控制事件本身而不是屬性。

302 305 

303| 屬性 | 說明 | 由以下控制 |306| 屬性 | 說明 | 由以下控制 |

304| - | - | - |307| - | - | - |

305| `content` | Read 工具返回的文字,或 Write 呼叫被要求寫入的文字 | `OTEL_LOG_TOOL_DETAILS` 對於 Write 工具 |308| `content` | Read 工具返回的文字,或 Write 呼叫被要求寫入的文字 | `OTEL_LOG_TOOL_DETAILS` 對於 Write 工具 |

306| `output` | Bash 命令的組合輸出,stderr 交錯到 stdout | |309| `output` | 對於 Bash 工具,命令的組合輸出,stderr 交錯到 stdout。對於 MCP 工具、WebFetch 或 WebSearch,工具返回的結果:文字區塊由換行符連接,影像或文件被替換為佔位符,例如 `[image]` | |

307| `diff` | Edit 工具應用的結構化修補程式 | `OTEL_LOG_TOOL_DETAILS` |310| `diff` | Edit 工具應用的結構化修補程式 | `OTEL_LOG_TOOL_DETAILS` |

308| `file_path` | Read、Edit 和 Write 工具的目標檔案路徑,重複跨度屬性的相同名稱 | `OTEL_LOG_TOOL_DETAILS` |311| `file_path` | Read、Edit 和 Write 工具的目標檔案路徑,重複跨度屬性的相同名稱 | `OTEL_LOG_TOOL_DETAILS` |

309| `bash_command` | Bash 工具的命令字串 | `OTEL_LOG_TOOL_DETAILS` |312| `bash_command` | Bash 工具的命令字串 | `OTEL_LOG_TOOL_DETAILS` |


557 560 

558設定 `OTEL_METRICS_INCLUDE_REPOSITORY=true` 以使用工作階段儲存庫的身分標籤指標和事件,以便共用收集器可以按儲存庫歸因使用情況。需要 Claude Code v2.1.269 或更新版本。561設定 `OTEL_METRICS_INCLUDE_REPOSITORY=true` 以使用工作階段儲存庫的身分標籤指標和事件,以便共用收集器可以按儲存庫歸因使用情況。需要 Claude Code v2.1.269 或更新版本。

559 562 

560Claude Code 每個工作階段從儲存庫的 `origin` 遠端衍生這些屬性一次。一個儲存庫的 HTTPS 和 SSH 遠端會產生相同的值:563Claude Code 每個工作階段從儲存庫的 `origin` 遠端衍生這些屬性一次。當儲存庫的 HTTPS 和 SSH 遠端命名相同的主機和相同的路徑時(如在 GitHub、GitLab 和 Bitbucket Cloud 上一樣),兩者都會產生相同的值:

561 564 

562| 屬性 | 值 |565| 屬性 | 值 |

563| - | - |566| - | - |


568 571 

569值會轉換為小寫,遠端 URL 中的認證、查詢字串和片段永遠不會出現在其中。當工作階段沒有 `origin` 遠端、遠端不是 URL 形狀或唯一的封閉儲存庫是您的主目錄時,屬性會被省略。572值會轉換為小寫,遠端 URL 中的認證、查詢字串和片段永遠不會出現在其中。當工作階段沒有 `origin` 遠端、遠端不是 URL 形狀或唯一的封閉儲存庫是您的主目錄時,屬性會被省略。

570 573 

574若要從[雲端工作階段](/docs/zh-TW/claude-code-on-the-web)取得這些屬性,請在其[雲端環境](/docs/zh-TW/cloud-environments#set-environment-variables)上設定遙測變數,包括 `OTEL_METRICS_INCLUDE_REPOSITORY`。也允許您的收集器的網域在環境的[網路存取](/docs/zh-TW/cloud-environments#network-access)中。

575 

571您在 [`OTEL_RESOURCE_ATTRIBUTES`](#multi-team-organization-support) 中宣告的 `vcs.*` 金鑰會替換該金鑰的衍生值。如果您宣告 `vcs.repository.url.full`,Claude Code 永遠不會讀取遠端,只會報告您宣告的金鑰。576您在 [`OTEL_RESOURCE_ATTRIBUTES`](#multi-team-organization-support) 中宣告的 `vcs.*` 金鑰會替換該金鑰的衍生值。如果您宣告 `vcs.repository.url.full`,Claude Code 永遠不會讀取遠端,只會報告您宣告的金鑰。

572 577 

578如果一個儲存庫的 HTTPS 和 SSH 複製報告不同的值,例如在自託管安裝上,其 HTTPS 複製 URL 攜帶 SSH URL 缺少的路徑前綴,請在 `OTEL_RESOURCE_ATTRIBUTES` 中宣告 `vcs.repository.url.full` 以及您想要報告的每個其他 `vcs.*` 金鑰。每個複製然後報告您宣告的身分。

579 

573屬性只流向您自己的匯出器;Anthropic 的遙測會捨棄每個 `vcs.*` 金鑰。580屬性只流向您自己的匯出器;Anthropic 的遙測會捨棄每個 `vcs.*` 金鑰。

574 581 

575<h3 id="metrics">582<h3 id="metrics">


646 653 

647在每個 API 請求後遞增。654在每個 API 請求後遞增。

648 655 

656`agent.name`、`skill.name`、`plugin.name`、`mcp_server.name` 和 `mcp_tool.name` 屬性預設會將某些名稱編輯為 `"custom"` 或 `"third-party"` 佔位符。如果您設定 `OTEL_LOG_TOOL_DETAILS=1`,它們會改為攜帶真實名稱。在 v2.1.273 之前,成本和權杖計數器以及 `api_request`、`api_error` 和 `api_refusal` 事件即使設定了 `OTEL_LOG_TOOL_DETAILS=1` 也攜帶編輯的值。

657 

649**屬性**:658**屬性**:

650 659 

651* 所有[標準屬性](#standard-attributes)660* 所有[標準屬性](#standard-attributes)

652* `model`:模型識別碼(例如 "claude-sonnet-5")661* `model`:模型識別碼(例如 "claude-sonnet-5")

653* `query_source`:發出請求的子系統的類別。`"main"`、`"subagent"` 或 `"auxiliary"` 之一662* `query_source`:發出請求的子系統的類別。`"main"`、`"subagent"` 或 `"auxiliary"` 之一

654* `speed`:當請求使用快速模式時為 `"fast"`。否則不存在663* `speed`:當請求使用快速模式時為 `"fast"`。否則不存在

655* `effort`:套用到請求的[努力等級](/docs/zh-TW/model-config#adjust-effort-level):`"low"`、`"medium"`、`"high"`、`"xhigh"` 或 `"max"`。當模型不支援努力時不存在。664* `effort`:套用到請求的[努力等級](/docs/zh-TW/model-config#adjust-effort-level):`"low"`、`"medium"`、`"high"`、`"xhigh"` 或 `"max"`。當 Claude Code 不傳送努力等級時不存在,例如在不支援努力的模型上。

656* `agent.name`:發出請求的子代理程式類型。內建代理程式名稱和來自官方市場的外掛程式的代理程式逐字出現。其他使用者定義的代理程式名稱會被替換為 `"custom"`,除非設定了 `OTEL_LOG_TOOL_DETAILS=1`。當請求不是由具名子代理程式類型發出時不存在。665* `agent.name`:發出請求的子代理程式類型。內建代理程式名稱和來自官方市場外掛程式的代理程式逐字出現。其他使用者定義的代理程式名稱會被替換為 `"custom"`。當請求不是由具名子代理程式類型發出時不存在。

657* `skill.name`:對請求有效的技能,由技能工具、`/` 命令設定或由產生的子代理程式繼承。內建、捆綁、使用者定義和官方市場外掛程式技能名稱逐字出現。第三方外掛程式技能名稱會被替換為 `"third-party"`,除非設定了 `OTEL_LOG_TOOL_DETAILS=1`。當沒有技能有效時不存在。666* `skill.name`:對請求有效的技能,由技能工具或 `/` 命令設定,或由產生的子代理程式繼承。內建、捆綁、使用者定義和官方市場外掛程式技能名稱逐字出現。第三方外掛程式技能名稱會被替換為 `"third-party"`。當沒有技能有效時不存在。

658* `plugin.name`:當有效技能或子代理程式由外掛程式提供時的擁有外掛程式。官方市場外掛程式名稱逐字出現。第三方外掛程式名稱會被替換為 `"third-party"`,除非設定了 `OTEL_LOG_TOOL_DETAILS=1`。當技能和子代理程式都沒有擁有外掛程式時不存在。667* `plugin.name`:當有效技能或子代理程式由外掛程式提供時的擁有外掛程式。官方市場外掛程式名稱逐字出現。第三方外掛程式名稱會被替換為 `"third-party"`。當技能和子代理程式都沒有擁有外掛程式時不存在。

659* `marketplace.name`:擁有外掛程式的安裝來源市場。僅針對官方市場外掛程式發出。否則不存在。668* `marketplace.name`:擁有外掛程式的安裝來源市場。僅針對官方市場外掛程式發出,即使設定了 `OTEL_LOG_TOOL_DETAILS=1`。否則不存在。

660* `mcp_server.name`:此請求消耗其工具結果的 MCP 伺服器。內建、claude.ai 代理和官方登錄伺服器名稱逐字出現。使用者設定的伺服器名稱會被替換為 `"custom"`,除非設定了 `OTEL_LOG_TOOL_DETAILS=1`。當請求未消耗任何 MCP 工具結果時不存在。在 v2.1.222 之前,Claude Code 在每個 MCP 工具呼叫後的每個請求上設定此屬性,而不僅是在消耗工具結果的請求上,因此聚合它的儀表板在升級後會顯示下降。669* `mcp_server.name`:此請求消耗其工具結果的 MCP 伺服器。內建、claude.ai 代理和官方登錄伺服器名稱逐字出現。使用者設定的伺服器名稱會被替換為 `"custom"`。當請求未消耗任何 MCP 工具結果時不存在。在 v2.1.222 之前,Claude Code 在每個 MCP 工具呼叫後的每個請求上設定此屬性,而不僅是在消耗工具結果的請求上,因此聚合它的儀表板在升級後會顯示下降。

661* `mcp_tool.name`:此請求消耗其結果的 MCP 工具,具有與 `mcp_server.name` 相同的編輯和版本行為。當請求未消耗任何 MCP 工具結果時不存在。670* `mcp_tool.name`:此請求消耗其結果的 MCP 工具,具有與 `mcp_server.name` 相同的編輯和版本行為。當請求未消耗任何 MCP 工具結果時不存在。

662 671 

663<h4 id="token-counter">672<h4 id="token-counter">


718| `prompt.id` | UUID v4 識別碼,連結處理單一使用者提示時產生的所有事件 |727| `prompt.id` | UUID v4 識別碼,連結處理單一使用者提示時產生的所有事件 |

719| `event.sequence` | 0 為基礎的計數器,用於排序事件,按 Claude Code 程序而非按工作階段計數 |728| `event.sequence` | 0 為基礎的計數器,用於排序事件,按 Claude Code 程序而非按工作階段計數 |

720| `message.uuid` | 訊息的 UUID,如工作階段文字記錄中所保存,`~/.claude/projects/*/*.jsonl` 檔案。出現在 `assistant_response` 上,以及 `api_response_body` 上,以及 `user_prompt` 上,除了命令分派外,它可以產生零個或多個訊息。在 `assistant_response` 和 `api_response_body` 上,這是回應的最終文字記錄項目,下一個回合的 `parentUuid` 從其鏈接。需要 Claude Code v2.1.214 或更新版本,或 v2.1.274 或更新版本在 `api_response_body` 上 |729| `message.uuid` | 訊息的 UUID,如工作階段文字記錄中所保存,`~/.claude/projects/*/*.jsonl` 檔案。出現在 `assistant_response` 上,以及 `api_response_body` 上,以及 `user_prompt` 上,除了命令分派外,它可以產生零個或多個訊息。在 `assistant_response` 和 `api_response_body` 上,這是回應的最終文字記錄項目,下一個回合的 `parentUuid` 從其鏈接。需要 Claude Code v2.1.214 或更新版本,或 v2.1.274 或更新版本在 `api_response_body` 上 |

730| `request_id` | 伺服器指派的 API 請求 ID,從 `request-id` 回應標頭讀取,例如 `req_011...`。在沒有 `request-id` 標頭的回應上,如在 [Amazon Bedrock](/docs/zh-TW/amazon-bedrock),值來自 `x-amzn-requestid` 標頭。出現在 `api_request`、`api_error`、`api_refusal`、`assistant_response` 和 `api_response_body` 上,當回應攜帶任一標頭時。與 `llm_request` 追蹤跨度上的相同屬性相符。`x-amzn-requestid` 來源需要 Claude Code v2.1.282 或更新版本 |

721| `client_request_id` | 用戶端產生的 UUID,作為 `x-client-request-id` 請求標頭傳送。出現在第一方 API 連線上的 `api_request` 和 `api_error` 上;在第三方提供者後端上不存在,以及當請求透過非串流回退重試時。將請求與其回應配對,並且對於永遠不會產生伺服器 `request_id` 的逾時等失敗仍然可用。與 `llm_request` 追蹤跨度上的相同屬性相符。需要 Claude Code v2.1.214 或更新版本 |731| `client_request_id` | 用戶端產生的 UUID,作為 `x-client-request-id` 請求標頭傳送。出現在第一方 API 連線上的 `api_request` 和 `api_error` 上;在第三方提供者後端上不存在,以及當請求透過非串流回退重試時。將請求與其回應配對,並且對於永遠不會產生伺服器 `request_id` 的逾時等失敗仍然可用。與 `llm_request` 追蹤跨度上的相同屬性相符。需要 Claude Code v2.1.214 或更新版本 |

722 732 

723若要追蹤由單一提示觸發的所有活動,請按特定 `prompt.id` 值篩選您的事件。這會傳回 user\_prompt 事件、任何 api\_request 事件以及處理該提示時發生的任何 tool\_result 事件。733若要追蹤由單一提示觸發的所有活動,請按特定 `prompt.id` 值篩選您的事件。這會傳回 user\_prompt 事件、任何 api\_request 事件以及處理該提示時發生的任何 tool\_result 事件。


767* `response_length`:回應文字的長度(以字元為單位)777* `response_length`:回應文字的長度(以字元為單位)

768* `response`:回應文字,在內容限制處截斷(預設為 60 KB)。預設情況下編輯為 `<REDACTED>`。設定 `OTEL_LOG_ASSISTANT_RESPONSES=1` 以包含它。當 `OTEL_LOG_ASSISTANT_RESPONSES` 未設定時,`OTEL_LOG_USER_PROMPTS` 會控制它,因此設定 `OTEL_LOG_ASSISTANT_RESPONSES=0` 以在啟用提示記錄時保持回應編輯778* `response`:回應文字,在內容限制處截斷(預設為 60 KB)。預設情況下編輯為 `<REDACTED>`。設定 `OTEL_LOG_ASSISTANT_RESPONSES=1` 以包含它。當 `OTEL_LOG_ASSISTANT_RESPONSES` 未設定時,`OTEL_LOG_USER_PROMPTS` 會控制它,因此設定 `OTEL_LOG_ASSISTANT_RESPONSES=0` 以在啟用提示記錄時保持回應編輯

769* `model`:模型識別碼(例如 "claude-sonnet-5")779* `model`:模型識別碼(例如 "claude-sonnet-5")

770* `request_id`:來自回應的 `request-id` 標頭的 Anthropic API 請求 ID。僅當 API 傳回時才存在780* `request_id`:API 請求 ID,在[事件關聯屬性](#event-correlation-attributes)下所述

771* `message.uuid`:回應的最終文字記錄項目的 UUID。API 回應會保存為每個內容區塊一個文字記錄項目;這是最後一個,下一個回合的 `parentUuid` 從其鏈接。需要 Claude Code v2.1.214 或更新版本781* `message.uuid`:回應的最終文字記錄項目的 UUID。API 回應會保存為每個內容區塊一個文字記錄項目;這是最後一個,下一個回合的 `parentUuid` 從其鏈接。需要 Claude Code v2.1.214 或更新版本

772* `query_source`:發出請求的子系統,例如 `"repl_main_thread"`、`"compact"` 或子代理程式名稱782* `query_source`:發出請求的子系統,例如 `"repl_main_thread"`、`"compact"` 或子代理程式名稱

773 783 


827* `output_tokens`:輸出權杖數837* `output_tokens`:輸出權杖數

828* `cache_read_tokens`:從快取讀取的權杖數838* `cache_read_tokens`:從快取讀取的權杖數

829* `cache_creation_tokens`:用於快取建立的權杖數839* `cache_creation_tokens`:用於快取建立的權杖數

830* `request_id`:來自回應的 `request-id` 標頭的 Anthropic API 請求 ID,例如 `"req_011..."`。僅當 API 傳回時才存在。840* `request_id`:API 請求 ID,例如 `"req_011..."`,在[事件關聯屬性](#event-correlation-attributes)下所述。

831* `client_request_id`:用戶端產生的 UUID,作為 `x-client-request-id` 請求標頭傳送;請參閱[事件關聯屬性](#event-correlation-attributes)表以瞭解何時存在。需要 Claude Code v2.1.214 或更新版本841* `client_request_id`:用戶端產生的 UUID,作為 `x-client-request-id` 請求標頭傳送;請參閱[事件關聯屬性](#event-correlation-attributes)表以瞭解何時存在。需要 Claude Code v2.1.214 或更新版本

832* `speed`:`"fast"` 或 `"normal"`,指示快速模式是否有效842* `speed`:`"fast"` 或 `"normal"`,指示快速模式是否有效

833* `query_source`:發出請求的子系統,例如 `"repl_main_thread"`、`"compact"` 或子代理程式名稱843* `query_source`:發出請求的子系統,例如 `"repl_main_thread"`、`"compact"` 或子代理程式名稱


853* `status_code`:HTTP 狀態碼作為數字。對於非 HTTP 錯誤(例如連線失敗)不存在。863* `status_code`:HTTP 狀態碼作為數字。對於非 HTTP 錯誤(例如連線失敗)不存在。

854* `duration_ms`:請求持續時間(以毫秒為單位)864* `duration_ms`:請求持續時間(以毫秒為單位)

855* `attempt`:進行的嘗試總數,包括初始請求(`1` 表示未發生重試)865* `attempt`:進行的嘗試總數,包括初始請求(`1` 表示未發生重試)

856* `request_id`:來自回應的 `request-id` 標頭的 Anthropic API 請求 ID,例如 `"req_011..."`。僅當 API 傳回時才存在。866* `request_id`:API 請求 ID,例如 `"req_011..."`,在[事件關聯屬性](#event-correlation-attributes)下所述。

857* `client_request_id`:用戶端產生的 UUID,作為 `x-client-request-id` 請求標頭傳送。即使失敗(例如逾時或連線錯誤)永遠不會產生伺服器 `request_id` 時也可用;請參閱[事件關聯屬性](#event-correlation-attributes)表以瞭解何時存在。需要 Claude Code v2.1.214 或更新版本867* `client_request_id`:用戶端產生的 UUID,作為 `x-client-request-id` 請求標頭傳送。即使失敗(例如逾時或連線錯誤)永遠不會產生伺服器 `request_id` 時也可用;請參閱[事件關聯屬性](#event-correlation-attributes)表以瞭解何時存在。需要 Claude Code v2.1.214 或更新版本

858* `speed`:`"fast"` 或 `"normal"`,指示快速模式是否有效868* `speed`:`"fast"` 或 `"normal"`,指示快速模式是否有效

859* `query_source`:發出請求的子系統,例如 `"repl_main_thread"`、`"compact"` 或子代理程式名稱869* `query_source`:發出請求的子系統,例如 `"repl_main_thread"`、`"compact"` 或子代理程式名稱


875* `event.timestamp`:ISO 8601 時間戳記885* `event.timestamp`:ISO 8601 時間戳記

876* `event.sequence`:單調遞增的計數器,用於排序工作階段內的事件,在[事件關聯屬性](#event-correlation-attributes)下所述886* `event.sequence`:單調遞增的計數器,用於排序工作階段內的事件,在[事件關聯屬性](#event-correlation-attributes)下所述

877* `model`:來自請求的模型識別碼887* `model`:來自請求的模型識別碼

878* `request_id`:來自回應的 `request-id` 標頭的 Anthropic API 請求 ID,例如 `"req_011..."`。僅當 API 傳回時才存在。888* `request_id`:API 請求 ID,例如 `"req_011..."`,在[事件關聯屬性](#event-correlation-attributes)下所述。

879* `query_source`:發出請求的子系統,例如 `"repl_main_thread"`、`"compact"` 或子代理程式名稱。請參閱 [`api_request`](#api-request-event) 以取得定義。889* `query_source`:發出請求的子系統,例如 `"repl_main_thread"`、`"compact"` 或子代理程式名稱。請參閱 [`api_request`](#api-request-event) 以取得定義。

880* `speed`:當[快速模式](/docs/zh-TW/fast-mode)有效時為 `"fast"`,或 `"normal"`890* `speed`:當[快速模式](/docs/zh-TW/fast-mode)有效時為 `"fast"`,或 `"normal"`

881* `attempt`:重試嘗試編號。第一次嘗試是 `1`。891* `attempt`:重試嘗試編號。第一次嘗試是 `1`。


930* `body_truncated`:當發生內聯截斷時為 `"true"`。在檔案模式下不存在,未發生截斷時不存在。940* `body_truncated`:當發生內聯截斷時為 `"true"`。在檔案模式下不存在,未發生截斷時不存在。

931* `model`:模型識別碼941* `model`:模型識別碼

932* `query_source`:發出請求的子系統942* `query_source`:發出請求的子系統

933* `request_id`:來自回應的 `request-id` 標頭的 Anthropic API 請求 ID,例如 `"req_011..."`。僅當 API 傳回時才存在。943* `request_id`:API 請求 ID,例如 `"req_011..."`,在[事件關聯屬性](#event-correlation-attributes)下所述。

934* `request_body_id`:此回應回答的 [`api_request_body` 事件](#api-request-body-event)的 `request_body_id`。需要 Claude Code v2.1.274 或更新版本944* `request_body_id`:此回應回答的 [`api_request_body` 事件](#api-request-body-event)的 `request_body_id`。需要 Claude Code v2.1.274 或更新版本

935* `message.id`:API 指派給回應的訊息 ID,回應本體的 `id` 欄位。需要 Claude Code v2.1.274 或更新版本945* `message.id`:API 指派給回應的訊息 ID,回應本體的 `id` 欄位。需要 Claude Code v2.1.274 或更新版本

936* `message.uuid`:回應的最終文字記錄項目的 UUID。與 `request_body_id` 一起,它將文字記錄訊息連結到其後面的請求和回應本體。需要 Claude Code v2.1.274 或更新版本946* `message.uuid`:回應的最終文字記錄項目的 UUID。與 `request_body_id` 一起,它將文字記錄訊息連結到其後面的請求和回應本體。需要 Claude Code v2.1.274 或更新版本


1559}1569}

1560```1570```

1561 1571 

1562若要確認事件已到達,請在執行此設定的工作階段中提交提示,並檢查您的 SIEM 是否有 `claude_code.user_prompt` 事件。如果沒有任何內容到達,請執行 `claude --debug` 並檢查偵錯日誌中的 `[3P telemetry]` 匯出錯誤。1572若要確認事件已到達,請在執行此設定的工作階段中提交提示,並檢查您的 SIEM 是否有 `claude_code.user_prompt` 事件。如果沒有任何內容到達,請執行 `claude --debug-file <path>` 並檢查該日誌中的 `[3P telemetry]` 匯出錯誤。

1563 1573 

1564<h2 id="backend-considerations">1574<h2 id="backend-considerations">

1565 後端考量1575 後端考量


1629 * `tool_result` 和 `tool_decision` 事件包含 `tool_parameters` 屬性,其中包含 Bash 命令、MCP 伺服器和工具名稱以及技能名稱。`full_command` 等欄位未截斷地發出1639 * `tool_result` 和 `tool_decision` 事件包含 `tool_parameters` 屬性,其中包含 Bash 命令、MCP 伺服器和工具名稱以及技能名稱。`full_command` 等欄位未截斷地發出

1630 * `tool_result` 事件另外包含 `tool_input` 屬性,其中包含檔案路徑、URL、搜尋模式和其他引數。超過 512 個字元的個別值會被截斷,總計上限約為 4 K 字元1640 * `tool_result` 事件另外包含 `tool_input` 屬性,其中包含檔案路徑、URL、搜尋模式和其他引數。超過 512 個字元的個別值會被截斷,總計上限約為 4 K 字元

1631 * `user_prompt` 事件包含自訂、plugin 和 MCP 命令的逐字 `command_name`1641 * `user_prompt` 事件包含自訂、plugin 和 MCP 命令的逐字 `command_name`

1642 * [成本和權杖計數器](#cost-counter)以及 `api_request`、`api_error` 和 `api_refusal` 事件在其歸因屬性中帶有真實的代理、技能、plugin 和 MCP 伺服器和工具名稱

1632 * 追蹤跨度包含相同的 `tool_input` 屬性和輸入衍生屬性,例如 `file_path`,截斷方式與 `tool_input` 相同1643 * 追蹤跨度包含相同的 `tool_input` 屬性和輸入衍生屬性,例如 `file_path`,截斷方式與 `tool_input` 相同

1633* 工具內容預設不在追蹤跨度中記錄。若要包含它,請設定 `OTEL_LOG_TOOL_CONTENT=1`。`claude_code.tool` 跨度隨後帶有 [`tool.output` 跨度事件](#tool-output-span-event),其中包含原始檔案內容和 Bash 命令輸出,在內容限制(預設 60 KB)處按屬性截斷。工具內容也透過 [`new_context` 到達跨度,其控制因跨度而異](#new-context-gates)。根據需要配置您的遙測後端以篩選或編輯這些屬性1644* 工具內容預設不在追蹤跨度中記錄。若要包含它,請設定 `OTEL_LOG_TOOL_CONTENT=1`。`claude_code.tool` 跨度隨後帶有 [`tool.output` 跨度事件](#tool-output-span-event),其中包含原始檔案內容、Bash 命令輸出,以及 MCP 工具、WebFetch 和 WebSearch 傳回的內容,在內容限制(預設 60 KB)處按屬性截斷。來自 MCP 工具、WebFetch 和 WebSearch 的結果需要 Claude Code v2.1.283 或更新版本。工具內容也透過 [`new_context` 到達跨度,其控制因跨度而異](#new-context-gates)。根據需要配置您的遙測後端以篩選或編輯這些屬性

1634* 原始 Anthropic Messages API 請求和回應主體預設不記錄。若要包含它們,請在您的 shell、使用者設定或受管設定中設定 `OTEL_LOG_RAW_API_BODIES`。在[專案和本機設定](/docs/zh-TW/settings-reference#variables-claude-code-ignores-in-env)中會被忽略。主體包含完整的對話歷史記錄,包括系統提示、每個先前的使用者和助手輪次以及工具結果,因此啟用此選項意味著同意其他 `OTEL_LOG_*` 內容旗標會揭露的所有內容。Claude Code 始終從這些主體中編輯 Claude 的擴展思考內容,無論其他設定如何。您設定的值決定了 Claude Code 如何傳遞主體:1645* 原始 Anthropic Messages API 請求和回應主體預設不記錄。若要包含它們,請在您的 shell、使用者設定或受管設定中設定 `OTEL_LOG_RAW_API_BODIES`。在[專案和本機設定](/docs/zh-TW/settings-reference#variables-claude-code-ignores-in-env)中會被忽略。主體包含完整的對話歷史記錄,包括系統提示、每個先前的使用者和助手輪次以及工具結果,因此啟用此選項意味著同意其他 `OTEL_LOG_*` 內容旗標會揭露的所有內容。Claude Code 始終從這些主體中編輯 Claude 的擴展思考內容,無論其他設定如何。您設定的值決定了 Claude Code 如何傳遞主體:

1635 * 使用 `=1` 時,Claude Code 為每個 API 呼叫發出 `api_request_body` 和 `api_response_body` 日誌事件。事件的 `body` 屬性帶有 JSON 序列化的承載,在內容限制(預設 60 KB)處截斷1646 * 使用 `=1` 時,Claude Code 為每個 API 呼叫發出 `api_request_body` 和 `api_response_body` 日誌事件。事件的 `body` 屬性帶有 JSON 序列化的承載,在內容限制(預設 60 KB)處截斷

1636 * 使用 `=file:<dir>` 時,Claude Code 將未截斷的主體寫入該目錄下的 `.request.json` 和 `.response.json` 檔案,事件帶有 `body_ref` 路徑而不是內聯主體。使用日誌收集器或邊車傳送目錄,而不是透過遙測流1647 * 使用 `=file:<dir>` 時,Claude Code 將未截斷的主體寫入該目錄下的 `.request.json` 和 `.response.json` 檔案,事件帶有 `body_ref` 路徑而不是內聯主體。使用日誌收集器或邊車傳送目錄,而不是透過遙測流

overview.md +3 −1

Details

18 <Tab title="終端機">18 <Tab title="終端機">

19 功能完整的 CLI,用於直接在您的終端機中使用 Claude Code。編輯檔案、執行命令,並從命令列管理您的整個專案。19 功能完整的 CLI,用於直接在您的終端機中使用 Claude Code。編輯檔案、執行命令,並從命令列管理您的整個專案。

20 20 

21 若要安裝 Claude Code,請使用下列其中一種方法:21 若要安裝 Claude Code,請開啟終端機並執行適用於您系統的命令。如果您之前未使用過終端機,[終端機指南](/docs/zh-TW/terminal-guide)會說明如何開啟終端機並貼上命令。

22 22 

23 <Tabs>23 <Tabs>

24 <Tab title="原生安裝(建議)">24 <Tab title="原生安裝(建議)">


40 curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd40 curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd

41 ```41 ```

42 42 

43 當安裝程式完成時,請開啟新的終端機視窗並執行 `claude --version`。正常的安裝會列印版本號碼。如果您的殼層說找不到 `claude` 或無法識別,安裝目錄還未在您的 PATH 上:請參閱[修正您的 PATH](/docs/zh-TW/troubleshoot-install#command-not-found-claude-after-installation)。

44 

43 如果您看到 `The token '&&' is not a valid statement separator`,表示您在 PowerShell 中,而非 CMD。如果您看到 `'irm' is not recognized as an internal or external command`,表示您在 CMD 中,而非 PowerShell。當您在 PowerShell 中時,提示符會顯示 `PS C:\`,而在 CMD 中時會顯示 `C:\`(不含 `PS`)。45 如果您看到 `The token '&&' is not a valid statement separator`,表示您在 PowerShell 中,而非 CMD。如果您看到 `'irm' is not recognized as an internal or external command`,表示您在 CMD 中,而非 PowerShell。當您在 PowerShell 中時,提示符會顯示 `PS C:\`,而在 CMD 中時會顯示 `C:\`(不含 `PS`)。

44 46 

45 如果安裝命令失敗並出現 `syntax error near unexpected token '<'`、`403` 或其他 curl 錯誤,請參閱[疑難排解安裝](/docs/zh-TW/troubleshoot-install#find-your-error)以將錯誤與修正相對應,並查看替代安裝方法。47 如果安裝命令失敗並出現 `syntax error near unexpected token '<'`、`403` 或其他 curl 錯誤,請參閱[疑難排解安裝](/docs/zh-TW/troubleshoot-install#find-your-error)以將錯誤與修正相對應,並查看替代安裝方法。

permission-modes.md +169 −131

Details

8 8 

9權限模式設定 Claude 在工作階段中可以執行哪些操作而無需先詢問您。在 Manual 模式中,Claude Code 會在大多數編輯檔案、執行 shell 命令或存取網路的操作前停止並詢問您。在[自動模式](#eliminate-prompts-with-auto-mode)中,第二個模型(分類器)會審查操作而不是您;[分類器如何評估操作](#how-the-classifier-evaluates-actions)列出它審查的操作以及跳過的操作。9權限模式設定 Claude 在工作階段中可以執行哪些操作而無需先詢問您。在 Manual 模式中,Claude Code 會在大多數編輯檔案、執行 shell 命令或存取網路的操作前停止並詢問您。在[自動模式](#eliminate-prompts-with-auto-mode)中,第二個模型(分類器)會審查操作而不是您;[分類器如何評估操作](#how-the-classifier-evaluates-actions)列出它審查的操作以及跳過的操作。

10 10 

11在 Pro、Max 和 Team 方案上,內建的起始權限模式是自動模式。[工作階段在哪個模式中啟動](#which-mode-a-session-starts-in)涵蓋改變起始權限模式的表面和設定。您也可以隨時改變執行中工作階段的權限模式。11在 Claude Code v2.1.283 或更新版本中,自動模式是互動式終端和 VS Code 工作階段的內建起始權限模式。在較早版本中,它只在 Pro、Max 和 Team 方案上是內建的起始權限模式。[工作階段在哪個模式中啟動](#which-mode-a-session-starts-in)涵蓋改變起始權限模式的表面和設定。您也可以隨時改變執行中工作階段的權限模式。

12 12 

13<h2 id="available-modes">13<h2 id="available-modes">

14 可用的模式14 可用的模式


57| 自己審查每個操作 | Manual 模式:`claude --permission-mode default` | 無 | 敏感工作、不熟悉的程式碼 |57| 自己審查每個操作 | Manual 模式:`claude --permission-mode default` | 無 | 敏感工作、不熟悉的程式碼 |

58| 在本地迭代,提示更少,無需分類器 | Manual 模式加上 Bash 沙箱在[自動允許模式](/docs/zh-TW/sandboxing#sandbox-modes)中:`claude --permission-mode default`,然後執行 `/sandbox` 並選擇自動允許 | 內建 Bash 沙箱,在 macOS、Linux 和 WSL2 上 | 拒絕規則仍然適用,詢問規則命名命令(例如 `Bash(git push *)`)仍然提示。若要改為從設定檔開啟沙箱,請將 [`sandbox.enabled`](/docs/zh-TW/settings-reference#sandbox-enabled) 設定為 `true` |58| 在本地迭代,提示更少,無需分類器 | Manual 模式加上 Bash 沙箱在[自動允許模式](/docs/zh-TW/sandboxing#sandbox-modes)中:`claude --permission-mode default`,然後執行 `/sandbox` 並選擇自動允許 | 內建 Bash 沙箱,在 macOS、Linux 和 WSL2 上 | 拒絕規則仍然適用,詢問規則命名命令(例如 `Bash(git push *)`)仍然提示。若要改為從設定檔開啟沙箱,請將 [`sandbox.enabled`](/docs/zh-TW/settings-reference#sandbox-enabled) 設定為 `true` |

59| 在變更任何內容前探索 | `claude --permission-mode plan` | 無 | Claude Code 會阻止編輯,直到您[批准計畫](#review-and-approve-a-plan) |59| 在變更任何內容前探索 | `claude --permission-mode plan` | 無 | Claude Code 會阻止編輯,直到您[批准計畫](#review-and-approve-a-plan) |

60| 在自動模式中無人值守工作 | `claude --permission-mode auto`、Pro、Max 和 Team 上的[內建起始權限模式](#which-mode-a-session-starts-in) | 無;沙箱或容器增加深度防禦 | 需要[支援的模型](#eliminate-prompts-with-auto-mode),您的組織可以[關閉自動模式](#eliminate-prompts-with-auto-mode) |60| 在自動模式中無人值守工作 | `claude --permission-mode auto`、[內建起始權限模式](#which-mode-a-session-starts-in)(v2.1.283 或更新版本) | 無;沙箱或容器增加深度防禦 | 需要[支援的模型](#eliminate-prompts-with-auto-mode),您的組織可以[關閉自動模式](#eliminate-prompts-with-auto-mode) |

61| 在 CI 中使用精確允許清單執行 | `claude -p "run the test suite" --permission-mode dontAsk --allowedTools "Bash(npm test)" "Read"` | 無,超出您的 CI 執行器提供的 | [Claude Code on the web](/docs/zh-TW/claude-code-on-the-web) 忽略設定檔中的 `dontAsk` |61| 在 CI 中使用精確允許清單執行 | `claude -p "run the test suite" --permission-mode dontAsk --allowedTools "Bash(npm test)" "Read"` | 無,超出您的 CI 執行器提供的 | [雲端工作階段](/docs/zh-TW/claude-code-on-the-web)忽略設定檔中的 `dontAsk` |

62| 在容器內完全無人值守執行 | `claude -p "<prompt>" --dangerously-skip-permissions` | 必需:容器、虛擬機或[沙箱執行時](/docs/zh-TW/sandbox-environments#sandbox-runtime);在 Linux 和 macOS 上,以[非 root 使用者](#skip-all-checks-with-bypasspermissions-mode)執行 | Claude Code on the web 忽略設定檔中的此模式。在此 `-p` 執行中,[仍會提示的少數呼叫](#skip-all-checks-with-bypasspermissions-mode)會被拒絕 |62| 在容器內完全無人值守執行 | `claude -p "<prompt>" --dangerously-skip-permissions` | 必需:容器、虛擬機或[沙箱執行時](/docs/zh-TW/sandbox-environments#sandbox-runtime);在 Linux 和 macOS 上,以[非 root 使用者](#skip-all-checks-with-bypasspermissions-mode)執行 | 雲端工作階段忽略設定檔中的此模式。在此 `-p` 執行中,[仍會提示的少數呼叫](#skip-all-checks-with-bypasspermissions-mode)會被拒絕 |

63 63 

64Bash 沙箱和自動模式獨立工作並結合,除了[沙箱模式](/docs/zh-TW/sandboxing#sandbox-modes)下列出的例外。如需完整互動,請參閱[沙箱化如何與權限和權限模式相關](/docs/zh-TW/sandboxing#how-sandboxing-relates-to-permissions-and-permission-modes)和[隔離如何與權限模式相關](/docs/zh-TW/sandbox-environments#how-isolation-relates-to-permission-modes)。64Bash 沙箱和自動模式獨立工作並結合,除了[沙箱模式](/docs/zh-TW/sandboxing#sandbox-modes)下列出的例外。如需完整互動,請參閱[沙箱化如何與權限和權限模式相關](/docs/zh-TW/sandboxing#how-sandboxing-relates-to-permissions-and-permission-modes)和[隔離如何與權限模式相關](/docs/zh-TW/sandbox-environments#how-isolation-relates-to-permission-modes)。

65 65 


81 81 

82內建 `auto` 預設在 macOS、Linux 和 WSL 上需要 Claude Code v2.1.228 或更新版本,在原生 Windows 上需要 v2.1.233 或更新版本。在較早的版本上,內建預設是 Manual。82內建 `auto` 預設在 macOS、Linux 和 WSL 上需要 Claude Code v2.1.228 或更新版本,在原生 Windows 上需要 v2.1.233 或更新版本。在較早的版本上,內建預設是 Manual。

83 83 

84內建預設取決於您如何執行 Claude Code、您的方案以及 Claude Code 是否可以擷取其功能旗標。符合的第一行適用。該表涵蓋您在終端或透過 VS Code 擴充功能啟動的工作階段;對於桌面應用程式和 claude.ai,請參閱[切換權限模式](#switch-permission-modes)中的 Desktop 和 Web 標籤。84內建預設取決於您如何執行 Claude Code。符合的第一行適用。該表涵蓋您在終端或透過 VS Code 擴充功能啟動的工作階段;對於桌面應用程式和 claude.ai,請參閱[切換權限模式](#switch-permission-modes)中的 Desktop 和 Web 標籤。

85 85 

86| 您如何執行 Claude Code | 內建起始權限模式 |86| 您如何執行 Claude Code | 內建起始權限模式 |

87| :- | :- |87| :- | :- |

88| 任何設定檔將 `disableAutoMode` 設定為 `"disable"` | `default` |88| 任何設定檔將 `disableAutoMode` 設定為 `"disable"` | `default` |

89| [功能旗標擷取](/docs/zh-TW/env-vars#features-that-need-feature-flag-fetching)已關閉 | `default` |

90| 您的[安裝 Claude Code 或升級後的第一個工作階段](/docs/zh-TW/env-vars#first-session-after-an-install-or-upgrade)到新增此預設的版本,除非在全新安裝後,Claude Code 及時擷取旗標 | `default` |

91| `claude -p` 或 [Agent SDK](/docs/zh-TW/agent-sdk/permissions) | `default` |89| `claude -p` 或 [Agent SDK](/docs/zh-TW/agent-sdk/permissions) | `default` |

92| Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry、[Claude Platform on AWS](/docs/zh-TW/claude-platform-on-aws) 或已登入的 [Claude 應用程式閘道](/docs/zh-TW/claude-apps-gateway)工作階段 | `default` |90| 在終端或透過 [VS Code 擴充功能](/docs/zh-TW/vs-code) | Claude Code v2.1.283 或更新版本上的 `auto`;在較早的版本上,Pro、Max 或 Team 方案上的 `auto`(在[擷取功能旗標](/docs/zh-TW/env-vars#features-that-need-feature-flag-fetching)的工作階段中),否則為 `default` |

93| Pro、Max 或 Team 方案,在終端或透過 [VS Code 擴充功能](/docs/zh-TW/vs-code) | `auto` |

94| Enterprise 方案或 Claude Console API 金鑰 | `default` |

95 91 

96當功能旗標擷取已關閉或在[安裝或升級後的第一個工作階段](/docs/zh-TW/env-vars#first-session-after-an-install-or-upgrade)中旗標尚未到達時,VS Code 擴充功能在選擇起始權限模式時會忽略每個設定檔。92在您[安裝或升級後的第一個工作階段](/docs/zh-TW/env-vars#first-session-after-an-install-or-upgrade)中,Claude Code 可以在其功能旗標到達之前選擇起始權限模式。該工作階段可能以不同的權限模式啟動,而不是表格給出的模式,您的下一個工作階段符合表格。

97 93 

98當旗標、設定檔或內建預設選擇 `auto` 但自動模式對工作階段不可用時,Claude Code 會改為以 Manual 啟動工作階段。當工作階段不符合[可用性要求](#eliminate-prompts-with-auto-mode)時,自動模式不可用,例如設定檔關閉它或不支援它的模型,或當 Anthropic 已在伺服器端暫時關閉它時。94當旗標、設定檔或內建預設選擇 `auto` 但自動模式對工作階段不可用時,Claude Code 會改為以 Manual 啟動工作階段。當工作階段不符合[可用性要求](#eliminate-prompts-with-auto-mode)時,自動模式不可用,例如設定檔關閉它或不支援它的模型,或當 Anthropic 已在伺服器端暫時關閉它時。

99 95 


177 173 

178 1. `claudeCode.initialPermissionMode`174 1. `claudeCode.initialPermissionMode`

179 2. 您上次從模式指示器選擇的模式,如果它是 Manual、Edit automatically 或 Auto。選擇 Plan 或 Bypass permissions 僅適用於該對話175 2. 您上次從模式指示器選擇的模式,如果它是 Manual、Edit automatically 或 Auto。選擇 Plan 或 Bypass permissions 僅適用於該對話

180 3. 來自[受管設定](/docs/zh-TW/managed-settings)或 `~/.claude/settings.json` 的 `permissions.defaultMode`,在 Pro、Max 和 Team 方案上具有[功能旗標擷取](#which-mode-a-session-starts-in)可用176 3. 來自[受管設定](/docs/zh-TW/managed-settings)或 `~/.claude/settings.json` 的 `permissions.defaultMode`

181 4. 您的方案、提供者和組織設定的[內建預設](#which-mode-a-session-starts-in)177 4. 您的方案、提供者和組織設定的[內建預設](#which-mode-a-session-starts-in)

182 178 

183 擴充功能永遠不會從專案的 `.claude/settings.json` 或 `.claude/settings.local.json` 讀取起始權限模式,在不符合第 3 項條件的對話中根本不讀取任何設定檔。當設定 `claudeCode.claudeProcessWrapper` 時,第 3 和 4 項也不適用:這些對話以 Manual 啟動,除非第 1 或 2 項設定權限模式。179 擴充功能永遠不會從專案的 `.claude/settings.json` 或 `.claude/settings.local.json` 讀取起始權限模式。當設定 `claudeCode.claudeProcessWrapper` 時,第 3 和 4 項也不適用:這些對話以 Manual 啟動,除非第 1 或 2 項設定權限模式。

180 

181 在 v2.1.283 之前,第 3 項僅在 Pro、Max 和 Team 方案上適用於[擷取功能旗標](/docs/zh-TW/env-vars#features-that-need-feature-flag-fetching)的工作階段。

184 182 

185 當[自動模式可用](#eliminate-prompts-with-auto-mode)時,Auto 會在模式指示器中出現。183 當[自動模式可用](#eliminate-prompts-with-auto-mode)時,Auto 會在模式指示器中出現。

186 184 


213 <Tab title="Web and mobile">211 <Tab title="Web and mobile">

214 在 [claude.ai/code](https://claude.ai/code) 或行動應用程式中使用提示框旁邊的模式下拉式選單。權限提示會在 claude.ai 中出現以供批准。出現的模式取決於工作階段在何處執行:212 在 [claude.ai/code](https://claude.ai/code) 或行動應用程式中使用提示框旁邊的模式下拉式選單。權限提示會在 claude.ai 中出現以供批准。出現的模式取決於工作階段在何處執行:

215 213 

216 * **Cloud sessions**:在 [Claude Code on the web](/docs/zh-TW/claude-code-on-the-web) 上:接受編輯、Plan 和 Auto。接受編輯對應於 `default` 模式:雲端工作階段預先批准檔案編輯,無論模式為何,因此下拉式選單會顯示接受編輯而不是 Manual。雲端工作階段仍然遵守設定中的 `defaultMode: "acceptEdits"`。Auto 模式僅在您的組織允許且選定的模型支援時出現。Bypass permissions 不可用。214 * **[Cloud sessions](/docs/zh-TW/claude-code-on-the-web)**:接受編輯、Plan 和 Auto。接受編輯對應於 `default` 模式:雲端工作階段預先批准檔案編輯,無論模式為何,因此下拉式選單會顯示接受編輯而不是 Manual。雲端工作階段仍然遵守設定中的 `defaultMode: "acceptEdits"`。Auto 模式僅在您的組織允許且選定的模型支援時出現。Bypass permissions 不可用。

217 * **[Remote Control](/docs/zh-TW/remote-control) sessions** 在您的本機機器上:Manual、接受編輯和 Plan。您無法從應用程式選擇 Auto 或 Bypass permissions。215 * **[Remote Control](/docs/zh-TW/remote-control) sessions** 在您的本機機器上:Manual、接受編輯和 Plan(適用於您自己啟動的工作階段),您無法從應用程式選擇 Auto 或 Bypass permissions。如需在您的電腦上執行的專案執行緒,請參閱[在您自己的電腦上執行執行緒](/docs/zh-TW/claude-projects#run-a-thread-on-your-own-computer)。

218 * 除了 Bypass permissions,下拉式選單顯示本機工作階段所在的權限模式,包括從終端設定的模式。它在應用程式或終端中權限模式變更時更新。工作階段永遠不會向 claude.ai 報告 Bypass permissions,因此從終端切換到它不會變更下拉式選單顯示的內容。216 * 除了 Bypass permissions,下拉式選單顯示本機工作階段所在的權限模式,包括從終端設定的模式。它在應用程式或終端中權限模式變更時更新。工作階段永遠不會向 claude.ai 報告 Bypass permissions,因此從終端切換到它不會變更下拉式選單顯示的內容。

219 * 由[桌面應用程式](/docs/zh-TW/desktop)或 [VS Code 擴充功能](/docs/zh-TW/vs-code)託管的工作階段在權限模式變更時向 claude.ai 報告,與在終端中託管的工作階段相同。217 * 由[桌面應用程式](/docs/zh-TW/desktop)或 [VS Code 擴充功能](/docs/zh-TW/vs-code)託管的工作階段在權限模式變更時向 claude.ai 報告,與在終端中託管的工作階段相同。

220 * 在 v2.1.202 之前,使用 `/remote-control` 或 `claude --remote-control` 連線的工作階段根本不報告其權限模式,因此 claude.ai 和行動應用程式可能會顯示工作階段不在的權限模式。不匹配僅影響標籤。Claude Code 從工作階段的實際權限模式產生權限提示,它們仍然在應用程式中出現以供批准。218 * 在 v2.1.202 之前,使用 `/remote-control` 或 `claude --remote-control` 連線的工作階段根本不報告其權限模式,因此 claude.ai 和行動應用程式可能會顯示工作階段不在的權限模式。不匹配僅影響標籤。Claude Code 從工作階段的實際權限模式產生權限提示,它們仍然在應用程式中出現以供批准。


233 231 

234`acceptEdits` 模式讓 Claude 在您的工作目錄中建立和編輯檔案,無需提示。當此模式處於活動狀態時,狀態列會顯示 `⏵⏵ accept edits on`。232`acceptEdits` 模式讓 Claude 在您的工作目錄中建立和編輯檔案,無需提示。當此模式處於活動狀態時,狀態列會顯示 `⏵⏵ accept edits on`。

235 233 

236除了檔案編輯外,`acceptEdits` 模式還會自動批准常見的檔案系統 Bash 命令:`mkdir`、`touch`、`rm`、`rmdir`、`mv`、`cp` 和 `sed`。當這些命令以安全環境變數(例如 `LANG=C` 或 `NO_COLOR=1`)或程序包裝器(例如 `timeout`、`nice` 或 `nohup`)作為前綴時,也會自動批准。與檔案編輯一樣,自動批准僅適用於工作目錄或 `additionalDirectories` 內的路徑。超出該範圍的路徑、寫入[受保護路徑](#protected-paths)、`rm` 和 `rmdir` 移除針對[關鍵路徑](#critical-paths)以及所有其他 Bash 命令(除了[內建唯讀集合](/docs/zh-TW/permissions#read-only-commands))仍會提示。234除了檔案編輯外,`acceptEdits` 模式還會自動批准常見的檔案系統 Bash 命令:`mkdir`、`touch`、`rm`、`rmdir`、`mv`、`cp` 和 `sed`。當這些命令以安全環境變數(例如 `LANG=C` 或 `NO_COLOR=1`)或程序包裝器(例如 `timeout`、`nice` 或 `nohup`)作為前綴時,也會自動批准。與檔案編輯一樣,自動批准僅適用於工作目錄或 `additionalDirectories` 內的路徑。

235 

236每個路徑也會經過[符號連結檢查](/docs/zh-TW/permissions#symlinks),因此解析到該範圍外的寫入不會自動批准。超出該範圍的路徑、寫入[受保護路徑](#protected-paths)、`rm` 和 `rmdir` 移除針對[關鍵路徑](#critical-paths),以及所有其他 Bash 命令(除了[內建唯讀集合](/docs/zh-TW/permissions#read-only-commands))仍會提示。

237 237 

238當[PowerShell 工具](/docs/zh-TW/tools-reference#powershell-tool)啟用時,`acceptEdits` 模式也會自動批准 `Set-Content`、`Add-Content`、`Clear-Content` 和 `Remove-Item` 在範圍內的路徑上,以及它們的常見別名。相同的範圍和受保護路徑規則適用,`Remove-Item` 有[自己的檢查](#remove-item-in-powershell)。包含引號字元的位置引數(例如 `Set-Content .\notes.txt "It's done"` 中的撇號)仍會在範圍內路徑上提示,因為 Claude Code 無法靜態驗證其引用和未引用讀數不同的引數。透過命名參數(例如 `-Value`)傳遞內容以避免提示。238當[PowerShell 工具](/docs/zh-TW/tools-reference#powershell-tool)啟用時,`acceptEdits` 模式也會自動批准 `Set-Content`、`Add-Content`、`Clear-Content` 和 `Remove-Item` 在範圍內的路徑上,以及它們的常見別名。相同的範圍和受保護路徑規則適用,`Remove-Item` 有[自己的檢查](#remove-item-in-powershell)。包含引號字元的位置引數(例如 `Set-Content .\notes.txt "It's done"` 中的撇號)仍會在範圍內路徑上提示,因為 Claude Code 無法靜態驗證其引用和未引用讀數不同的引數。透過命名參數(例如 `-Value`)傳遞內容以避免提示。

239 239 


251 251 

252Plan Mode 告訴 Claude 在進行變更前先研究並提出建議。Claude 會讀取檔案、執行 shell 命令進行探索,並撰寫計畫,但不會編輯您的原始碼。除了在具有[略過權限可用](#skip-all-checks-with-bypasspermissions-mode)的互動式終端機工作階段中,編輯會保持被阻止,直到您核准計畫。252Plan Mode 告訴 Claude 在進行變更前先研究並提出建議。Claude 會讀取檔案、執行 shell 命令進行探索,並撰寫計畫,但不會編輯您的原始碼。除了在具有[略過權限可用](#skip-all-checks-with-bypasspermissions-mode)的互動式終端機工作階段中,編輯會保持被阻止,直到您核准計畫。

253 253 

254當[自動模式](/docs/zh-TW/auto-mode-config)可用且 `useAutoModeDuringPlan` 設定已開啟(預設為開啟)時,分類器會在規劃期間檢查 shell 命令,而不是提示您。已核准的命令會執行,被拒絕的命令會被阻止。否則,[內建唯讀集合](/docs/zh-TW/permissions#read-only-commands)之外的命令會提示您核准,包括當沙箱的[自動允許模式](/docs/zh-TW/sandboxing#sandbox-modes)已啟用時。在具有可用略過權限的互動式終端機工作階段中,分類器和提示都不適用於規劃命令;[使用 bypassPermissions Mode 略過所有檢查](#skip-all-checks-with-bypasspermissions-mode)涵蓋了仍在該處提示的少數事項。在 v2.1.212 至 v2.1.217 中,沒有略過權限的工作階段會針對唯讀集合之外的每個命令提示,無論自動模式是否可用。254shell 命令在規劃期間發生的情況取決於工作階段,以及以下第一個符合的情況適用:

255 

256* **具有可用略過權限的互動式終端機工作階段**:分類器和提示都不適用於規劃命令。[使用 bypassPermissions Mode 略過所有檢查](#skip-all-checks-with-bypasspermissions-mode)涵蓋了仍在該處提示的少數事項。

257* **[自動模式](/docs/zh-TW/auto-mode-config)可用且 `useAutoModeDuringPlan` 設定已開啟**,預設為開啟:分類器會檢查 shell 命令([關鍵路徑移除](#critical-paths)除外),而不是提示您。已核准的命令會執行,被拒絕的命令會被阻止。

258* **自動模式不可用,或 `useAutoModeDuringPlan` 關閉**:[內建唯讀集合](/docs/zh-TW/permissions#read-only-commands)之外的命令會提示您核准,包括當沙箱的[自動允許模式](/docs/zh-TW/sandboxing#sandbox-modes)已啟用時。

255 259 

256按 `Shift+Tab` 或在單一提示前加上 `/plan` 來進入 Plan Mode。您也可以從 CLI 開始使用 Plan Mode:260按 `Shift+Tab` 或在單一提示前加上 `/plan` 來進入 Plan Mode。您也可以從 CLI 開始使用 Plan Mode:

257 261 


289 293 

290自動模式讓 Claude 無需例行權限提示即可執行。一個獨立的分類器模型在操作執行前進行審查,阻止任何超出您請求範圍、針對無法識別的基礎設施或似乎由 Claude 讀取的惡意內容驅動的操作。明確的[詢問規則](/docs/zh-TW/permissions#manage-permissions)仍會強制提示。294自動模式讓 Claude 無需例行權限提示即可執行。一個獨立的分類器模型在操作執行前進行審查,阻止任何超出您請求範圍、針對無法識別的基礎設施或似乎由 Claude 讀取的惡意內容驅動的操作。明確的[詢問規則](/docs/zh-TW/permissions#manage-permissions)仍會強制提示。

291 295 

292在 Pro、Max 和 Team 計畫上,自動模式是[會話開始時的內建預設權限模式](#which-mode-a-session-starts-in)。296使用 Claude Code v2.1.283 或更新版本,自動模式是所有計畫和提供者上互動式終端和 VS Code 工作階段的[內建起始權限模式](#which-mode-a-session-starts-in)。在較早版本上,它僅在 Pro、Max 和 Team 計畫上是內建起始權限模式。

293 297 

294分類器也會審查 Claude 使用 [`SendMessage`](/docs/zh-TW/tools-reference) 發送給另一個代理的每條訊息,無論是純文字還是結構化的[代理團隊](/docs/zh-TW/agent-teams)訊息,在 Claude Code 傳遞之前,無論是在自動模式還是在[計畫模式中分類器審查命令](#analyze-before-you-edit-with-plan-mode)時;發送審查需要 Claude Code v2.1.222 或更新版本。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 或更新版本。

295 299 

296分類器也會審查並批准或阻止針對[關鍵路徑](#critical-paths)的 `rm` 和 `rmdir` 移除,例如 `rm -rf /` 和 `rm -rf ~`,包括當移除位於命令或程序替換內時。300預設情況下,分類器不審查針對關鍵路徑(例如 `rm -rf /` 或 `rm -rf ~`)的 `rm` 和 `rmdir` 移除。[關鍵路徑](#critical-paths)涵蓋在每個權限模式中對它們的處理。

297 301 

298自動模式也會促使 Claude 繼續工作而不停下來提出澄清問題,儘管當您的提示或技能明確依賴它時 Claude 仍會詢問。如需在仍會提示您的模式中獲得更強的自主行為,請改為設定[主動輸出風格](/docs/zh-TW/output-styles)。302自動模式也會促使 Claude 繼續工作而不停下來提出澄清問題,儘管當您的提示或技能明確依賴它時 Claude 仍會詢問。為了在仍會提示您的模式中獲得更強的自主行為,請改為設定[主動輸出風格](/docs/zh-TW/output-styles)。

299 303 

300<Warning>304<Warning>

301 自動模式減少了權限提示,但不保證安全性。將其用於您信任一般方向的任務,而不是作為敏感操作審查的替代品。305 自動模式減少了權限提示,但不保證安全性。將其用於您信任一般方向的任務,而不是作為敏感操作審查的替代品。

302</Warning>306</Warning>

303 307 

304自動模式僅在您的帳戶符合以下所有要求時才可用:308自動模式僅在您的帳戶符合所有這些要求時可用:

305 309 

306* **計畫**:所有計畫。310* **計畫**:所有計畫。

307* **組織**:在 Team 和 Enterprise 上,自動模式預設可用。管理員可以通過在[受管設定](/docs/zh-TW/managed-settings)中將 `permissions.disableAutoMode` 設定為 `"disable"` 來為組織關閉它。311* **組織**:在 Team 和 Enterprise 上,自動模式預設可用。管理員可以通過在[受管設定](/docs/zh-TW/managed-settings)中將 `permissions.disableAutoMode` 設定為 `"disable"` 來為組織關閉它。

308* **模型**:在 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 模型,在任何提供者上都不受支援。

309* **提供者**:在 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 應用程式閘道工作階段上預設可用。

310 314 

311如果 Claude Code 報告自動模式不可用,首先檢查這些要求以及任何設定檔是否設定了 [`disableAutoMode`](/docs/zh-TW/settings-reference#disableautomode)。Anthropic 也可能已在伺服器端關閉自動模式,或伺服器可能已為您的帳戶拒絕自動模式。收到任一答案的會話會保持自動模式關閉直到會話結束,因此稍後啟動新會話。315如果 Claude Code 報告自動模式不可用,首先檢查這些要求以及任何設定檔是否設定了 [`disableAutoMode`](/docs/zh-TW/settings-reference#disableautomode)。Anthropic 也可能已在伺服器端關閉自動模式,或伺服器可能已為您的帳戶拒絕自動模式。收到任一答案的工作階段會保持自動模式關閉直到工作階段結束,因此稍後啟動新工作階段。

312 316 

313一條單獨的訊息,命名一個模型並說自動模式「無法確定」操作的安全性,意味著分類器請求失敗。該失敗通常是暫時的,但在 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)以了解原因和應對方法。

314 318 

315如果您在[設定](/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)中。

316 320 

317<h3 id="enable-auto-mode-on-bedrock-agent-platform-or-foundry">321<h3 id="enable-auto-mode-on-bedrock-agent-platform-or-foundry">

318 Bedrock、Agent Platform 或 Foundry 上的自動模式322 Bedrock、Agent Platform 或 Foundry 上的自動模式

319</h3>323</h3>

320 324 

321在 [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)會話上,自動模式預設出現在 `Shift+Tab` 循環中。出現在循環中不會改變會話開始時的權限模式:在這些提供者上,終端會話以您的 [`defaultMode`](/docs/zh-TW/settings-reference#permissions-defaultmode) 開始,除非您更改它,否則為手動模式,而 [VS Code 擴充功能](/docs/zh-TW/vs-code)中的對話除非 `claudeCode.initialPermissionMode` 或您在擴充功能中選擇的模式設定了一個,否則以手動模式開始。這些提供者上僅支援 Claude Sonnet 5、Opus 4.7 或更新版本以及 Fable 模型。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)工作階段上,自動模式預設可用。使用 Claude Code v2.1.283 或更新版本,它也是互動式終端和 [VS Code](/docs/zh-TW/vs-code) 工作階段的[內建起始權限模式](#which-mode-a-session-starts-in)。要自己選擇起始權限模式,請按照[以不同權限模式啟動](#start-in-a-different-mode)的描述設定 `permissions.defaultMode`,或從 VS Code 擴充功能的模式指示器中選擇權限模式。

322 326 

323要使自動模式成為預設啟動權限模式,請在使用者或受管設定中設定 `"permissions": {"defaultMode": "auto"}`。在 VS Code 擴充功能啟動的會話中,改為從模式指示器選擇 **Auto**。[切換權限模式](#switch-permission-modes)涵蓋了什麼優先於該選擇。327這些提供者上僅支援 Claude Sonnet 5、Opus 4.7 或更新版本以及 Fable 模型。在任何其他模型上,工作階段改為以手動模式啟動。

324 328 

325[`/doctor`](/docs/zh-TW/commands#all-commands)檢查在這些提供者上提議此使用者設定預設,就像在 Anthropic API 上一樣。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 之前,執行中的工作階段會保持自動模式直到它結束。

326 

327要防止開發人員使用自動模式,請在[受管設定](/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 之前,執行中的會話會保持自動模式直到它結束。

328 330 

329在 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 開始沒有效果。

330 332 


332 伺服器端分類器審查334 伺服器端分類器審查

333</h3>335</h3>

334 336 

335在自動模式中,Claude Code 可以要求伺服器檢查[決策順序](#how-the-classifier-evaluates-actions)發送進行審查的操作,作為會話模型請求的一部分,而不是發送自己的分類器請求。這些會話詢問:337在自動模式中,Claude Code 可以要求伺服器檢查[決策順序](#how-the-classifier-evaluates-actions)發送進行審查的操作,作為工作階段模型請求的一部分,而不是發送自己的分類器請求。這些工作階段詢問:

336 338 

337* **直接連接到 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**:在互動式終端工作階段中,在每個 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)的工作階段,例如因為您關閉了遙測,在任何類型的工作階段中預設詢問伺服器。

338* **雲端提供者、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 或更新版本。

339* **已登入的 [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 或更新版本

340 342 

341伺服器審查操作的地方,其判決決定了它們。另外兩個結果是可能的:343伺服器審查操作的地方,其判決決定了它們。還有兩種其他可能的結果:

342 344 

343* **伺服器不審查會話**:回應完成時沒有審查結果,或伺服器回答它不審查此會話。最常見的原因是 LLM 閘道或代理丟棄了審查請求或結果,以及平台、區域或認證還沒有伺服器端檢查。Claude Code 回退到自己的分類器請求。一旦該回退在會話的其餘部分保持,它會在那些請求被計費的帳戶上顯示[關於分類器請求費用的通知](/docs/zh-TW/auto-mode-classifier-billing)。345* **伺服器不審查工作階段**:回應完成時沒有審查結果,或伺服器回答它不審查此工作階段。最常見的原因是 LLM 閘道或代理丟棄審查請求或結果,以及平台、區域或認證還沒有伺服器端檢查。Claude Code 回退到自己的分類器請求。一旦該回退在工作階段的其餘部分保持,它會在這些請求被計費的帳戶上顯示[關於分類器請求費用的通知](/docs/zh-TW/auto-mode-classifier-billing)。

344* **伺服器對操作沒有給出判決**: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)涵蓋拒絕訊息、拒絕重複時發生的情況以及應對方法。

345 347 

346要跳過詢問伺服器並始終使用 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 也會停止詢問伺服器。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)所述的情況。

347 349 

348<h3 id="what-the-classifier-blocks-by-default">350<h3 id="what-the-classifier-blocks-by-default">

349 分類器預設阻止的內容351 分類器預設阻止的內容

350</h3>352</h3>

351 353 

352分類器信任您的工作目錄和會話啟動時為其配置的遠端。在會話期間使用 `git remote add` 或 `git remote set-url` 添加或重新指向的遠端不受信任,其他所有內容都被視為外部,直到您[配置受信任的基礎設施](/docs/zh-TW/auto-mode-config)。在 v2.1.200 之前,會話中期添加的遠端也受信任。354分類器信任您的工作目錄和為它配置的遠端,當工作階段啟動時。在工作階段期間使用 `git remote add` 或 `git remote set-url` 新增或重新指向的遠端不受信任,其他所有內容都被視為外部,直到您[配置受信任的基礎設施](/docs/zh-TW/auto-mode-config)。在 v2.1.200 之前,中途新增的遠端也受信任。

353 355 

354**預設阻止**:356**預設阻止**:

355 357 

356* 下載並執行程式碼,例如 `curl | bash`358* 下載並執行程式碼,例如 `curl | bash`

357* 將敏感資料發送到外部端點359* 將敏感資料傳送到外部端點

358* 生產部署和遷移360* 生產部署和遷移

359* 雲端儲存上的大量刪除361* 雲端儲存上的大量刪除

360* 授予 IAM 或儲存庫權限362* 授予 IAM 或儲存庫權限

361* 修改共享基礎設施363* 修改共享基礎設施

362* 不可逆地銷毀會話前存在的檔案364* 不可逆地銷毀工作階段前存在的檔案

363* 強制推送365* 強制推送

364* 提交或推送會將秘密或敏感資料發送到儲存庫外的更改,或擴大部署公開的內容。這涵蓋將秘密傳遞給不已接收它的目的地的 CI 工作流程或部署配置、讀取秘密存儲並發送資料的指令碼或設定步驟,以及擴大部署發佈內容的配置更改,例如登錄、可見性、工件或來源地圖設定。檢查適用於任何分支,即使儲存庫是公開的也適用,並在提交或推送時觸發,無論該提交或推送是否觸發管道;清除它需要命名執行效果,而不僅僅是提交或推送。在 v2.1.211 之前,此檢查的範圍限於預設分支:推送到那裡時,如果它攜帶敏感內容、相對於您要求的隱藏或誤述的更改、從儲存庫外部移植的內容或繞過您要求的審查的內容,則被阻止366* 提交或推送會在執行時將秘密或敏感資料傳送到儲存庫外的變更,或擴大部署公開的內容。這涵蓋將秘密傳遞到尚未接收它的目的地的 CI 工作流程或部署配置、讀取秘密存儲並傳送資料的指令碼或設定步驟,以及擴大部署發佈內容的配置變更,例如登錄、可見性、成品或來源地圖設定。檢查適用於任何分支,即使儲存庫是公開的也適用,並在提交或推送時觸發,無論該提交或推送是否觸發管道;清除它需要命名執行效果,而不僅僅是提交或推送。在 v2.1.211 之前,此檢查的範圍限於預設分支:推送到那裡時,如果它攜帶敏感內容、相對於您要求的隱藏或誤述的變更、從儲存庫外移植的內容或繞過您要求的審查的內容,則被阻止

365* `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`,分類器推測會丟棄未提交的變更

366* `git commit --amend` 當 HEAD 的提交不是在此會話中建立的368* `git commit --amend` 當 HEAD 的提交不是在此工作階段中建立的

367* 從 v2.1.198 開始,`git commit --amend` 當 HEAD 的提交已經被推送。僅訊息重述不被阻止:`--amend -m` 沒有新暫存的內容,在 Claude 在此會話期間建立的提交上369* 從 v2.1.198 開始,`git commit --amend` 當 HEAD 的提交已經被推送時。僅訊息重述不被阻止:`--amend -m` 沒有新暫存的內容,在 Claude 在此工作階段期間建立的提交上

368* `terraform destroy`、`pulumi destroy`、`cdk destroy` 或 `terragrunt destroy`,以及應用銷毀資源的計畫370* `terraform destroy`、`pulumi destroy`、`cdk destroy` 或 `terragrunt destroy`,以及應用銷毀資源的計畫

369 371 

370Claude Code v2.1.195 及更新版本預設阻止更多類別。其中幾個取決於[環境](/docs/zh-TW/auto-mode-config#define-trusted-infrastructure)條目,例如敏感遠端目標和受保護的 IaC 範圍,您可以將其縮小到具體名稱。372Claude Code v2.1.195 及更新版本預設阻止更多類別。其中幾個取決於[環境](/docs/zh-TW/auto-mode-config#define-trusted-infrastructure)條目,例如敏感遠端目標和受保護的 IaC 範圍,您可以將其縮小到具體名稱。

371 373 

372* 寫入秘密管理器,或更改 DNS 記錄或 TLS 憑證374* 寫入秘密管理器,或變更 DNS 記錄或 TLS 憑證

373* 合併沒有人類批准的拉取請求、批准 Claude 自己的拉取請求或禁用 CI 檢查375* 合併沒有人類批准的拉取請求、批准 Claude 自己的拉取請求或禁用 CI 檢查

374* 發佈本身是自動化命令的評論,例如 `atlantis apply` 或機器人的 `/deploy` 或 `/merge`376* 發佈本身是自動化命令的評論,例如 `atlantis apply` 或機器人的 `/deploy` 或 `/merge`

375* 切換、調整或刪除生產功能標誌377* 切換、調整或刪除生產功能旗標

376* 將基礎設施更改應用於受保護的 IaC 範圍,或排空並移除叢集節點378* 將基礎設施變更應用於受保護的 IaC 範圍,或排空並移除叢集節點

377* 寫入超出您命名的資源的共享計算叢集,例如標籤選擇器或 `--all` 捕獲其他使用者的工作379* 寫入超出您命名的資源的共享計算叢集,例如標籤選擇器或 `--all` 捕捉其他使用者的工作

378* 建立在每個節點上執行或攔截叢集流量的 Kubernetes 資源,例如 DaemonSets 和准入 webhooks380* 建立在每個節點上執行或攔截叢集流量的 Kubernetes 資源,例如 DaemonSets 和准入 Webhooks

379* 互動式 shell 或連接埠轉發到敏感遠端目標381* 互動式殼層或連接埠轉發到敏感遠端目標

380* 開啟隧道或反向 shell,使本地服務可從公開網際網路訪問382* 開啟隧道或反向殼層使本地服務可從公開網際網路到達

381* 將即時認證或令牌列印到文字記錄或檔案中383* 將即時認證或權杖列印到文字記錄或檔案中

382* 訪問在您的[環境](/docs/zh-TW/auto-mode-config#define-trusted-infrastructure)中列為敏感資料位置的位置,或從其中複製資料。從 v2.1.198 開始,這也會阻止從一個發送資料到該條目排除的受眾384* 存取在您的[環境](/docs/zh-TW/auto-mode-config#define-trusted-infrastructure)中列為敏感資料位置的位置,或從其中複製資料。從 v2.1.198 開始,這也會阻止從一個傳送資料到該條目排除的對象

383* 將套件安裝繞過您的內部套件登錄路由到公開登錄。從 v2.1.198 開始,這也適用於您在對話中告訴 Claude 內部登錄或鏡像存在的情況,而不僅僅是在您的環境中列出的情況385* 繞過您的內部套件登錄將套件安裝路由到公開登錄。從 v2.1.198 開始,當您在對話中告訴 Claude 內部登錄或鏡像存在時,這也適用,而不僅僅是在您的環境中列出時

384* 使用禁用安全防護的標誌執行命令,例如 `--insecure`386* 使用禁用安全防護的旗標執行命令,例如 `--insecure`

385* 啟動在沒有人類批准或沙箱的情況下執行的自主代理迴圈,例如使用 `--dangerously-skip-permissions` 或 `--no-sandbox` 啟動的迴圈。從 v2.1.198 開始,這也涵蓋執行第三方代理或評估工具,隔離和按操作批准禁用,例如使用 `--yes-always` 啟動的執行器387* 啟動在沒有人類批准或沙箱的情況下執行的自主代理迴圈,例如使用 `--dangerously-skip-permissions` 或 `--no-sandbox` 啟動的迴圈。從 v2.1.198 開始,這也涵蓋執行第三方代理或評估工具,隔離和每個操作批准禁用,例如使用 `--yes-always` 啟動的執行器

386* [Chrome 中的 Claude](/docs/zh-TW/chrome)瀏覽器操作,可能會將頁面內容、Cookie 或認證發送到跨來源388* [Chrome 中的 Claude](/docs/zh-TW/chrome)瀏覽器操作可能會將頁面內容、Cookie 或認證傳送到跨來源

387 389 

388Claude Code v2.1.198 及更新版本也預設阻止這些:390Claude Code v2.1.198 及更新版本也預設阻止這些:

389 391 

390* 按萬用字元、glob 或年齡篩選器而不是按特定命名路徑刪除 `/tmp`、`$TMPDIR` 或另一個共享暫存或快取目錄中的檔案392* 通過萬用字元、glob 或年齡篩選器而不是特定命名路徑刪除 `/tmp`、`$TMPDIR` 或其他共享暫存或快取目錄中的檔案

391* 在內容發送、上傳、發佈或寫入其他人或共享系統時包含敏感詳細資訊,當您自己的訊息沒有授權這些詳細資訊給該收件人時。PR 和問題正文、提交訊息和評論在儲存庫在信任邊界外或公開時計為此類出站內容,包括您組織自己的公開儲存庫;內部檔案路徑、代碼名稱、即時 API 回應資料(例如電子郵件或帳戶識別碼)和基礎設施識別碼計為敏感詳細資訊。PR、問題和提交訊息範圍需要 Claude Code v2.1.200 或更新版本。PR 或問題正文中的即時個人資料(例如電子郵件地址、帳戶或組織識別碼或使用指標)需要您命名這些詳細資訊和收件人,無論儲存庫的可見性或信任邊界如何。該檢查需要 Claude Code v2.1.203 或更新版本393* 在您自己的訊息未授權這些詳細資訊給該收件人時,將敏感詳細資訊包含在傳送、上傳、發佈或寫入其他人或共享系統的內容中。PR 和問題正文、提交訊息和評論在儲存庫在信任邊界外或公開時計為此類出站內容,包括您組織自己的公開儲存庫;內部檔案路徑、代碼名稱、即時 API 回應資料(例如電子郵件或帳戶識別碼)和基礎設施識別碼計為敏感詳細資訊。PR、問題和提交訊息範圍需要 Claude Code v2.1.200 或更新版本。PR 或問題正文中的即時個人資料(例如電子郵件地址、帳戶或組織識別碼或使用指標)需要您命名這些詳細資訊和收件人,無論儲存庫的可見性或信任邊界如何。該檢查需要 Claude Code v2.1.203 或更新版本

392* 將按鍵發送到 Claude Code 自己的 tmux 窗格以驅動其自己的介面,分類器將其視為 Claude 更改自己的權限或監督394* 傳送按鍵到 Claude Code 自己的 tmux 窗格以驅動其自己的介面,分類器將其視為 Claude 變更自己的權限或監督

393 395 

394Claude Code v2.1.200 及更新版本也預設阻止這些:396Claude Code v2.1.200 及更新版本也預設阻止這些:

395 397 

396* 註解掉、刪除或強制通過保護安全行為的測試或斷言,例如身份驗證、存取控制、輸入驗證或沙箱398* 註解掉、刪除或強制通過保護安全行為的測試或斷言,例如驗證、存取控制、輸入驗證或沙箱

397* 刪除或拆除有狀態資源 Claude 在會話中沒有建立的資源,當沒有更具體的刪除規則適用且您沒有命名該資源時399* 刪除或拆除 Claude 在工作階段中未建立的有狀態資源,當沒有更具體的刪除規則適用且您未命名該資源時

398* 在不適合任務的第三方主機上重新指向 API 基礎 URL、代理端點、webhook 接收器或登錄鏡像,包括在 `.env.example` 等範例檔案中400* 將 API 基礎 URL、代理端點、Webhook 接收器或登錄鏡像重新指向不適合任務的第三方主機,包括在 `.env.example` 等範例檔案中

399* 使用 `git remote set-url` 或 `git remote add` 更改推送去向,除非您命名了新遠端401* 使用 `git remote set-url` 或 `git remote add` 變更推送去向,除非您命名了新遠端

400* 推送秘密或個人或受信任的資料到已知為公開的儲存庫,或推送不是該儲存庫自己工作一部分的機密材料到那裡。dotfiles 儲存庫自己的主題是個人或受信任資料的唯一例外,來自私有儲存庫到任何公開表面的內容以相同方式被阻止;兩項改進都需要 Claude Code v2.1.203 或更新版本。在 v2.1.203 之前,個人資料與機密材料分組,僅當它不是該儲存庫自己工作的一部分時才被阻止。當儲存庫的可見性未確定時,分類器不會單獨基於此進行阻止;它改為根據其他規則判斷內容402* 推送秘密或個人或受信任資料到已知為公開的儲存庫,或推送不屬於該儲存庫自己工作的機密材料到那裡。Dotfiles 儲存庫自己的主題是個人或受信任資料的唯一例外,來自私有儲存庫到任何公開表面的內容以相同方式被阻止;兩項改進都需要 Claude Code v2.1.203 或更新版本。在 v2.1.203 之前,個人資料與機密材料分組,僅當它不屬於該儲存庫自己的工作時才被阻止。當儲存庫的可見性未確定時,分類器不單獨在此阻止;它改為根據其他規則判斷內容

401* 針對不同儲存庫或組織開啟拉取請求、使用 `gh repo fork` 進行分叉或推送到第三方儲存庫,除非您命名了該外部目標403* 針對不同儲存庫或組織開啟拉取請求、使用 `gh repo fork` 進行分叉或推送到第三方儲存庫,除非您命名了該外部目標

402 404 

403Claude Code v2.1.203 及更新版本也預設阻止這些:405Claude Code v2.1.203 及更新版本也預設阻止這些:

404 406 

405* 來自敏感本地存儲或其名稱、路徑或類型將其標記為敏感的檔案的內容進入提交、推送、PR 或問題文字、gist 或貼上或套件發佈,除非您命名了來源和目的地。會話文字記錄和對話日誌、認證和配置點資料夾(例如 SSH 金鑰、雲端認證、瀏覽器設定檔和 shell 歷史記錄)以及使用者資料匯出都計為此類,儲存庫是私有的不會清除它407* 來自敏感本地存儲或檔案名稱、路徑或類型將其標記為敏感的檔案的內容進入提交、推送、PR 或問題文字、gist 或貼上或套件發佈,除非您命名了來源和目的地。工作階段文字記錄和對話日誌、認證和配置點資料夾(例如 SSH 金鑰、雲端認證、瀏覽器設定檔和殼層歷史記錄)以及使用者資料匯出都計為此類,儲存庫為私有不會清除它

406 408 

407Claude Code v2.1.205 及更新版本也預設阻止這些:409Claude Code v2.1.205 及更新版本也預設阻止這些:

408 410 

409* 寫入 Claude Code 會話文字記錄、`~/.claude/projects/` 下的 `.jsonl` 歷史檔案或您配置的配置目錄,無論是直接還是通過 shell 命令。該規則也涵蓋 Claude Code 為其自己的檢查附加到每個文字記錄條目的中繼資料行。讀取文字記錄不被阻止411* 寫入 Claude Code 工作階段文字記錄、`~/.claude/projects/` 下的 `.jsonl` 歷史檔案或您配置的配置目錄,無論是直接還是通過殼層命令。該規則也涵蓋 Claude Code 為其自己的檢查附加到每個文字記錄條目的中繼資料行。讀取文字記錄不被阻止

410* 遞迴強制刪除,例如 `rm -rf "$VAR"` 或 `Remove-Item -Recurse -Force $dir`,其目標是 shell 變數或以其為根的 glob,在對話中分類器看到的任何地方都沒有指派。該值僅來自較早的命令輸出,分類器永遠不會收到,因此分類器無法根據其他刪除規則驗證刪除目標。當您命名正在刪除的確切路徑或 Claude 使用寫入命令的已解析文字路徑重新執行刪除時,該塊會清除。分類器可以解析其目標的刪除不受影響。`Remove-Item` 目標是裸 `*` 或以 `/*` 或 `\*` 結尾的目標永遠不會到達分類器:Claude Code [直接拒絕它們](#remove-item-in-powershell)412* 遞迴強制刪除,例如 `rm -rf "$VAR"` 或 `Remove-Item -Recurse -Force $dir`,其目標是分類器看不到的殼層變數,在對話中的任何地方都未指派,或以此類變數為根的 glob。該值僅來自較早的命令輸出,分類器永遠不會收到,因此分類器無法根據其他刪除規則驗證刪除目標。當您命名被刪除的確切路徑或 Claude 使用寫入命令的已解析文字路徑重新執行刪除時,該塊會清除。目標分類器可以解析的刪除不受影響。

413 

414 直接在變數下的 glob,如 `rm -rf "$VAR"/*`,是[關鍵路徑](#critical-paths)。`Remove-Item` 目標為裸 `*` 或以 `/*` 或 `\*` 結尾的永遠不會到達分類器:Claude Code [直接拒絕它們](#remove-item-in-powershell)。

411 415 

412Claude Code v2.1.257 及更新版本也預設阻止這些:416Claude Code v2.1.257 及更新版本也預設阻止這些:

413 417 

414* 從雲端實例中繼資料端點(例如 `169.254.169.254`)請求認證,或使用機器自己的服務帳戶或節點身份明確驗證雲端、叢集或登錄呼叫418* 從雲端實例中繼資料端點(例如 `169.254.169.254`)請求認證,或使用機器自己的服務帳戶或節點身份明確驗證雲端、叢集或登錄呼叫

415* 通過直接請求以外的路由到達公開主機,例如隧道、反向 shell 或重寫為指向外部的解析器或代理配置419* 通過直接請求以外的路由到達公開主機,例如隧道、反向殼層或重寫為指向外部的解析器或代理配置

416* 讀取屬於主機而不是您的任務的認證,例如節點憑證或節點的容器登錄身份驗證420* 讀取屬於主機而不是您的任務的認證,例如節點憑證或節點的容器登錄驗證

417* 連接到或掃描 Claude 沒有啟動的同級容器、pod 或 VM,或容器下的節點421* 連接到或掃描 Claude 未啟動的同級容器、Pod 或 VM,或容器下的節點

418 422 

419如果 Claude Code 在允許其中之一的地方執行,請在 `autoMode.environment` 中的[主機包含條目](/docs/zh-TW/auto-mode-config#define-trusted-infrastructure)中描述該設定。423如果 Claude Code 在允許其中之一的地方執行,請在 `autoMode.environment` 中的[主機包含條目](/docs/zh-TW/auto-mode-config#define-trusted-infrastructure)中描述該設定。

420 424 

421Claude Code v2.1.261 及更新版本也預設阻止這些:425Claude Code v2.1.261 及更新版本也預設阻止這些:

422 426 

423* 在訊息、PR 或問題文字、文件或連結將被開啟或提取的任何其他地方發佈或寫入公開貼上、圖表或資料共享服務的連結,當 URL 本身攜帶正在共享的內容時,除非您命名了該服務427* 在訊息、PR 或問題文字、文件或連結將被開啟或獲取的任何其他地方發佈或寫入公開貼上、圖表或資料共享服務的連結,當 URL 本身攜帶被共享的內容時,除非您命名了該服務

424 428 

425**預設允許**:429**預設允許**:

426 430 

427* 您工作目錄中的本地檔案操作431* 您工作目錄中的本地檔案操作

428* 安裝在您的鎖定檔案或清單中聲明的依賴項432* 安裝在您的鎖定檔案或清單中宣告的依賴項

429* 讀取 `.env` 並將認證發送到其匹配的 API433* 讀取 `.env` 並將認證傳送到其匹配的 API

430* 唯讀 HTTP 請求434* 唯讀 HTTP 請求

431* 推送到您正在處理的儲存庫的任何分支,包括預設分支。其名稱將其標記為部署或發佈目標的非預設分支,例如 `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* 推送到您正在處理的儲存庫的任何分支,包括預設分支。名稱將其標記為部署或發佈目標的非預設分支,例如 `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 之前任何直接推送到預設分支都被阻止

432 436 

433Claude Code v2.1.195 及更新版本也預設允許這些:437Claude Code v2.1.195 及更新版本也預設允許這些:

434 438 

435* 刪除 Claude 在同一會話中較早建立的確切工作439* 刪除 Claude 在同一工作階段中較早建立的確切工作

436* 作為您的任務的一部分讀取、審查或寫入安全相關的程式碼、配置和威脅模型440* 作為您的任務的一部分讀取、審查或寫入安全相關的程式碼、配置和威脅模型

437* 在同一多代理會話中一起工作的代理之間的訊息441* 在同一多代理工作階段中一起工作的代理之間的訊息

438* 將資料發送到您在 [`environment`](/docs/zh-TW/auto-mode-config#define-trusted-infrastructure) 中列出的受信任域、儲存桶和服務。這僅涵蓋資料流,而不是同一基礎設施上的破壞性或認證操作442* 將資料傳送到您在 [`environment`](/docs/zh-TW/auto-mode-config#define-trusted-infrastructure) 中列出的受信任域、儲存桶和服務。這僅涵蓋資料流,而不是相同基礎設施上的破壞性或認證操作

439* [Chrome 中的 Claude](/docs/zh-TW/chrome)導航到受信任的內部域、localhost 或您命名的 URL443* [Chrome 中的 Claude](/docs/zh-TW/chrome)導航到受信任的內部域、localhost 或您命名的 URL

440 444 

441沙箱命令預設沒有網路存取。Claude 在命令本身上命名命令需要的主機,分類器與命令一起審查它們,批准的列表僅為該一個命令開啟這些主機。[按命令允許的域](/docs/zh-TW/sandboxing#per-command-allowed-domains-in-auto-mode)涵蓋列表可以和不能開啟什麼以及當命令到達未列出的主機時會發生什麼。445沙箱命令預設不獲得網路存取。Claude 在命令本身上命名命令需要的主機,分類器與命令一起審查它們,批准的清單僅為該一個命令開啟這些主機。[每個命令允許的域](/docs/zh-TW/sandboxing#per-command-allowed-domains-in-auto-mode)涵蓋清單可以和不能開啟什麼以及命令到達未列出主機時發生的情況。

442 446 

443執行 `claude auto-mode defaults` 以將完整規則列表列印為 JSON。如果例行操作被阻止,管理員可以通過 `autoMode.environment` 設定添加受信任的儲存庫、儲存桶和服務:請參閱[配置自動模式](/docs/zh-TW/auto-mode-config)。447執行 `claude auto-mode defaults` 以將完整規則清單列印為 JSON。如果例行操作被阻止,管理員可以通過 `autoMode.environment` 設定新增受信任的儲存庫、儲存桶和服務:請參閱[配置自動模式](/docs/zh-TW/auto-mode-config)。

444 448 

445推送到您正在處理的儲存庫的任何分支並建立與您的請求相符的拉取請求無需提示即可執行,除非推送或拉取請求屬於[阻止列表](#what-the-classifier-blocks-by-default),例如秘密或敏感資料離開儲存庫,或針對不同儲存庫或組織的拉取請求。要在保持自動模式的同時要求這些命令前的人類檢查點,請添加 `permissions.ask` 規則,這些規則與命令[按書寫](/docs/zh-TW/permissions#bash-rule-limits)相符:請參閱[常見邊界](/docs/zh-TW/auto-mode-config#common-boundaries)。449推送到您正在處理的儲存庫的任何分支並建立與您的請求相符的拉取請求無需提示即可執行,除非推送或拉取請求屬於[阻止清單](#what-the-classifier-blocks-by-default),例如秘密或敏感資料離開儲存庫,或針對不同儲存庫或組織的拉取請求。要在保持自動模式的同時要求這些命令前的人類檢查點,請新增 `permissions.ask` 規則,這些規則與命令[按書寫](/docs/zh-TW/permissions#bash-rule-limits)相符:請參閱[常見邊界](/docs/zh-TW/auto-mode-config#common-boundaries)。

446 450 

447<h3 id="first-read-outside-the-working-directories">451<h3 id="first-read-outside-the-working-directories">

448 工作目錄外的第一次讀取452 工作目錄外的第一次讀取

449</h3>453</h3>

450 454 

451當 [`permissions.blockReadsOutsideWorkingDirectories`](/docs/zh-TW/settings-reference#permissions-blockreadsoutsideworkingdirectories) 關閉時,檔案讀取在自動模式中無需提示即可執行,包括在[工作目錄](/docs/zh-TW/permissions#working-directories)外的讀取。Claude 第一次在工作目錄外的路徑上使用 Read、Grep 或 Glob 工具時,Claude Code 會詢問您是否繼續允許這些讀取。455當 [`permissions.blockReadsOutsideWorkingDirectories`](/docs/zh-TW/settings-reference#permissions-blockreadsoutsideworkingdirectories) 關閉時,檔案讀取在自動模式中無需提示即可執行,包括在[工作目錄](/docs/zh-TW/permissions#working-directories)外的讀取。Claude 第一次在它們外的路徑上使用 Read、Grep 或 Glob 工具時,Claude Code 詢問您是否繼續允許這些讀取。

452 456 

453該提示不會出現在非互動式 `-p` 執行或背景會話中;那裡的讀取照常執行。457該提示不會出現在非互動式 `-p` 執行或背景工作階段中;那裡的讀取如前所述執行。

454 458 

455無論您的答案如何,Claude 都會繼續工作:459無論您回答什麼,Claude 都會繼續工作:

456 460 

457* **繼續允許**:讀取執行,稍後對工作目錄外的讀取照常執行,Claude Code 記錄您的答案,以便提示不會再次出現461* **是,並繼續允許工作目錄外的任何讀取**:讀取執行,稍後對工作目錄外的讀取如前所述執行,Claude Code 記錄您的答案以便提示不再出現

458* **從現在開始阻止**:讀取被拒絕,Claude Code 在您的使用者設定中將 [`permissions.blockReadsOutsideWorkingDirectories`](/docs/zh-TW/settings-reference#permissions-blockreadsoutsideworkingdirectories) 設定為 `true`,這使檔案工具在每個稍後的會話和每種權限模式中拒絕此類讀取。要稍後讓 Claude 讀取此類路徑,請使用 `/add-dir` 添加其目錄或移除該設定。462* **否,並從現在開始阻止工作目錄外的讀取**:讀取被拒絕,Claude Code 在您的使用者設定中將 [`permissions.blockReadsOutsideWorkingDirectories`](/docs/zh-TW/settings-reference#permissions-blockreadsoutsideworkingdirectories) 設定為 `true`,這使檔案工具在每個稍後的工作階段和每個權限模式中拒絕此類讀取。要稍後讓 Claude 讀取此類路徑,請使用 `/add-dir` 新增其目錄或移除設定。

459* **下次再詢問**:讀取被拒絕,下一次對工作目錄外的讀取會再次提示463* **否,下次再詢問**:讀取被拒絕,下一次對工作目錄外的讀取再次提示

464* **是,但下次再詢問**:讀取執行,沒有任何內容被儲存,下一次對工作目錄外的讀取再次提示

460 465 

461<h3 id="boundaries-you-state-in-conversation">466<h3 id="boundaries-you-state-in-conversation">

462 您在對話中陳述的邊界467 您在對話中陳述的邊界

463</h3>468</h3>

464 469 

465分類器將您在對話中陳述的邊界視為阻止信號。如果您告訴 Claude「不要推送」或「在我審查後再部署」,分類器會阻止匹配的操作,即使預設規則會允許它們。邊界保持有效,直到您在稍後的訊息中解除它。Claude 自己的判斷認為條件已滿足不會解除它。470分類器將您在對話中陳述的邊界視為阻止信號。如果您告訴 Claude「不要推送」或「在我審查前等待再部署」,分類器會阻止匹配的操作,即使預設規則會允許它們。邊界保持有效直到您在稍後的訊息中解除它。Claude 自己的判斷條件已滿足不會解除它。

466 471 

467邊界不作為規則儲存。分類器在每次檢查時從文字記錄重新讀取它們,因此如果[上下文壓縮](/docs/zh-TW/costs#reduce-token-usage)移除陳述邊界的訊息,邊界可能會丟失。為了硬保證,請改為添加[拒絕規則](/docs/zh-TW/permissions#permission-rule-syntax)。472邊界不作為規則儲存。分類器在每次檢查時從文字記錄重新讀取它們,因此如果[上下文壓縮](/docs/zh-TW/costs#reduce-token-usage)移除陳述邊界的訊息,邊界可能會丟失。為了硬保證,請改為新增[拒絕規則](/docs/zh-TW/permissions#permission-rule-syntax)。

468 473 

469<h3 id="approvals-you-state-in-conversation">474<h3 id="approvals-you-state-in-conversation">

470 您在對話中陳述的批准475 您在對話中陳述的批准

471</h3>476</h3>

472 477 

473如果您告訴 Claude 被阻止的操作是允許的,分類器會將其讀取為您的批准,並可以清除該塊。您如何措辭決定了操作是否執行以及批准的範圍有多遠:478如果您告訴 Claude 被阻止的操作是允許的,分類器將其讀取為您的批准並可以清除阻止。您如何措辭決定了操作是否執行以及批准到達多遠:

474 479 

475* **命名操作及其細節**:您的訊息必須命名操作和使其危險的具體事物,例如強制推送的分支。僅命名動詞不會清除任何內容,因此「您可以強制推送」會使塊保持原位。480* **命名操作及其細節**:您的訊息必須命名操作和使其危險的具體事物,例如強制推送的分支。僅命名動詞不會清除任何內容,因此「您可以強制推送」會使阻止保持有效。

476* **期望它涵蓋一個操作**:批准涵蓋您命名的破壞性操作,因此稍後的操作會再次被阻止,除非您授予批准作為常設。要停止一次批准一個例行模式,請將其添加到 [`autoMode.allow`](/docs/zh-TW/auto-mode-config#override-the-block-and-allow-rules)。481* **期望它涵蓋一個操作**:批准涵蓋您命名的破壞性操作,因此稍後的操作再次被阻止,除非您授予批准為常設。要停止一次一個批准例行模式,請將其新增到 [`autoMode.allow`](/docs/zh-TW/auto-mode-config#override-the-block-and-allow-rules)。

477* **某些塊保持原位**:[分類器的優先順序](/docs/zh-TW/auto-mode-config#override-the-block-and-allow-rules)列出了您的批准可以到達的塊。要執行它不會清除的步驟,[離開自動模式](#switch-permission-modes)並回答權限提示。482* **某些阻止保持有效**:[分類器的優先順序](/docs/zh-TW/auto-mode-config#override-the-block-and-allow-rules)列出您的批准可以到達的阻止。要執行它不會清除的步驟,[離開自動模式](#switch-permission-modes)並回答權限提示。

478 483 

479<h3 id="when-auto-mode-falls-back">484<h3 id="when-auto-mode-falls-back">

480 當自動模式回退時485 當自動模式回退時

481</h3>486</h3>

482 487 

483當自動模式無法批准您的會話操作時,會發生什麼取決於情況:488當自動模式無法批准您工作階段的操作時,發生的情況取決於情況:

484 489 

485* **被阻止的操作**:Claude Code 顯示通知並在 `/permissions` 下的 **Recently denied** 標籤中列出操作,您可以按 `r` 使用手動批准重試它。當分類器對操作[沒有產生判決](/docs/zh-TW/errors#auto-mode-cannot-determine-the-safety-of-an-action)時,因為自動模式以外的安全檢查拒絕了分類器自己的請求或其回應沒有解析,Claude Code 拒絕該操作而沒有通知或 **Recently denied** 條目。490* **被阻止的操作**:Claude Code 顯示通知並在 `/permissions` 下的**最近拒絕**標籤中列出操作,您可以按 `r` 使用手動批准重試它。當分類器對操作[沒有給出判決](/docs/zh-TW/errors#auto-mode-cannot-determine-the-safety-of-an-action)時,因為分類器自己的請求或其回應未解析的安全檢查拒絕了它,Claude Code 拒絕操作而沒有通知或**最近拒絕**條目。

486* **重複塊**:如果分類器連續 3 次或總共 20 次阻止操作,自動模式暫停,Claude Code 恢復提示。批准提示的操作會恢復自動模式。這些閾值不可配置。任何允許的操作重置連續計數器,而總計數器在會話期間持續,僅在其自己的限制觸發回退時重置。當[自動模式以外的安全檢查拒絕分類器的請求](/docs/zh-TW/errors#auto-mode-cannot-determine-the-safety-of-an-action)時,Claude Code 不會計算拒絕以達到任一閾值;連結的條目涵蓋 Claude Code 如何處理這些拒絕。491* **重複阻止**:如果分類器連續 3 次或總共 20 次阻止操作,自動模式暫停,Claude Code 恢復提示。批准提示的操作恢復自動模式。這些閾值不可配置。任何允許的操作重置連續計數器,而總計數器在工作階段中持續並僅在其自己的限制觸發回退時重置。當[分類器自己的請求的安全檢查拒絕](/docs/zh-TW/errors#auto-mode-cannot-determine-the-safety-of-an-action)時,Claude Code 不計算拒絕到任一閾值;連結的條目涵蓋 Claude Code 如何處理這些拒絕。

487* **無法提示的會話**:沒有 [`--permission-prompt-tool`](/docs/zh-TW/cli-reference#cli-flags) 的[非互動式](/docs/zh-TW/headless) `-p` 執行沒有回退提示。當重複塊達到閾值時,操作不執行,Claude 繼續工作。當[自動模式以外的安全檢查拒絕分類器的請求](/docs/zh-TW/errors#auto-mode-cannot-determine-the-safety-of-an-action)時也適用相同情況。Claude Code 在任一情況下都不會停止執行。492* **無法提示的工作階段**:沒有 [`--permission-prompt-tool`](/docs/zh-TW/cli-reference#cli-flags) 的[非互動式](/docs/zh-TW/headless) `-p` 執行沒有回退提示。當重複阻止達到閾值時,操作不執行,Claude 繼續工作。當[分類器自己的請求的安全檢查拒絕](/docs/zh-TW/errors#auto-mode-cannot-determine-the-safety-of-an-action)時也適用相同情況。Claude Code 在任一情況下都不停止執行。

488* **伺服器沒有返回安全判決**:在[伺服器端分類器審查](#server-side-classifier-review)下,Claude Code 拒絕伺服器沒有給出判決的操作,並在一行中十個回應沒有判決後停止轉向。請參閱[伺服器沒有返回安全判決](/docs/zh-TW/errors#the-server-returned-no-safety-verdict)。493* **伺服器沒有判決**:在[伺服器端分類器審查](#server-side-classifier-review)下,Claude Code 拒絕伺服器沒有給出判決的操作,並在連續十個沒有判決的回應後停止轉向。請參閱[伺服器未返回安全判決](/docs/zh-TW/errors#the-server-returned-no-safety-verdict)。

489* **檢查期間的模式切換**:如果您在分類器檢查待處理時切換權限模式,Claude Code 會丟棄新模式不會請求的判決,而不是應用它:您會被提示進行批准,或在 [`dontAsk` 模式](#allow-only-pre-approved-tools-with-dontask-mode)中自動拒絕操作。494* **檢查期間的模式切換**:如果您在分類器檢查待決時切換權限模式,Claude Code 丟棄新模式不會請求的判決,而不是應用它:您改為被提示批准,或操作在 [`dontAsk` 模式](#allow-only-pre-approved-tools-with-dontask-mode)中自動拒絕。

490 495 

491重複塊通常意味著分類器缺少關於您的基礎設施的上下文。使用 `/feedback` 報告誤報,或讓管理員[配置受信任的基礎設施](/docs/zh-TW/auto-mode-config)。496重複阻止通常意味著分類器缺少關於您基礎設施的上下文。使用 `/feedback` 報告誤報,或讓管理員[配置受信任的基礎設施](/docs/zh-TW/auto-mode-config)。

492 497 

493<span id="how-the-classifier-evaluates-actions" />498<span id="how-the-classifier-evaluates-actions" />

494 499 


496 <Accordion title="分類器如何評估操作">501 <Accordion title="分類器如何評估操作">

497 每個操作都經過固定的決策順序。第一個匹配的步驟獲勝:502 每個操作都經過固定的決策順序。第一個匹配的步驟獲勝:

498 503 

499 1. 與您的[允許、詢問或拒絕規則](/docs/zh-TW/permissions#manage-permissions)相符的操作立即解決,但以下例外:504 1. 與您的[允許、詢問或拒絕規則](/docs/zh-TW/permissions#manage-permissions)相符的操作立即解決,但有以下例外:

500 * 寫入[受保護路徑](#protected-paths)的操作會路由到分類器,即使允許規則相符,`rm` 和 `rmdir` 移除針對 Claude Code v2.1.218 及更新版本中的[關鍵路徑](#critical-paths)也是如此505 * 寫入[受保護路徑](#protected-paths)的操作即使允許規則相符也路由到分類器

501 * 標記為 [`requiresUserInteraction`](/docs/zh-TW/mcp#require-approval-for-a-specific-tool) 的 MCP 工具即使允許規則相符也會直接提示您,您的組織設定為 [`ask`](/docs/zh-TW/mcp#organization-controls-on-connector-tools) 的連接器工具在該設定到達 Claude Code 的會話中也是如此506 * 沒有允許規則批准針對[關鍵路徑](#critical-paths)的 `rm` 和 `rmdir` 移除

502 * 攜帶[按命令允許的域](/docs/zh-TW/sandboxing#per-command-allowed-domains-in-auto-mode)的 shell 命令也會路由到分類器,即使允許規則相符,因為規則批准命令,而不是其主機507 * 標記為 [`requiresUserInteraction`](/docs/zh-TW/mcp#require-approval-for-a-specific-tool) 的 MCP 工具即使允許規則相符也直接提示您,組織設定為 [`ask`](/docs/zh-TW/mcp#organization-controls-on-connector-tools) 的連接器工具在該設定到達 Claude Code 的工作階段中也是如此

508 * 攜帶[每個命令允許的域](/docs/zh-TW/sandboxing#per-command-allowed-domains-in-auto-mode)的殼層命令即使允許規則相符也路由到分類器,因為規則批准命令,而不是其主機

503 * 在命令內容上相符的詢問規則,例如 `Bash(git push *)`,回退到權限提示509 * 在命令內容上相符的詢問規則,例如 `Bash(git push *)`,回退到權限提示

504 2. 唯讀操作和您工作目錄中的檔案編輯會自動批准,除了寫入[受保護路徑](#protected-paths)和[工作目錄外的第一次讀取](#first-read-outside-the-working-directories),這會提示您510 * 寫入[符號連結檢查](/docs/zh-TW/permissions#symlinks)解析到受保護路徑的路徑會在 Claude 請求的路徑本身不受保護時提示您

505 * 在具有[伺服器端分類器審查](#server-side-classifier-review)的會話中,唯讀和[沙箱](/docs/zh-TW/sandboxing#sandbox-modes) shell 命令等待該審查,如果它標記它們則被阻止511 2. 唯讀操作和您工作目錄中的檔案編輯自動批准,除了寫入[受保護路徑](#protected-paths)和[工作目錄外的第一次讀取](#first-read-outside-the-working-directories),這會提示您

506 3. 其他所有內容都進入分類器。在步驟 1 中直接提示您的連接器工具和 `requiresUserInteraction` MCP 工具永遠不會到達分類器,因此既不是組織要求的批准也不是同意步驟會自動批准512 * 在具有[伺服器端分類器審查](#server-side-classifier-review)的工作階段中,唯讀和[沙箱](/docs/zh-TW/sandboxing#sandbox-modes)殼層命令等待該審查並在其標記時被阻止

507 4. 如果分類器阻止,Claude 收到原因並嘗試替代方案。在大多數會話中,原因命名分類器相符的規則,例如 `[Data Exfiltration]`,而不是給出書面解釋;請參閱[審查拒絕](/docs/zh-TW/auto-mode-config#review-denials)513 * 您工作目錄中的寫入,[符號連結檢查](/docs/zh-TW/permissions#symlinks)解析到其外的位置會提示您

514 3. 其他所有內容都進入分類器,除了[關鍵路徑移除](#critical-paths)在其預設處理下。在步驟 1 中直接提示您的連接器工具和 `requiresUserInteraction` MCP 工具永遠不會到達分類器,因此組織要求的批准或同意步驟都不會自動批准

515 4. 如果分類器阻止,Claude 收到原因並嘗試替代方案。在大多數工作階段中,原因命名分類器相符的規則,例如 `[Data Exfiltration]`,而不是給出書面解釋;請參閱[審查拒絕](/docs/zh-TW/auto-mode-config#review-denials)

508 516 

509 進入自動模式時,授予任意程式碼執行的廣泛允許規則會被丟棄:517 進入自動模式時,授予任意程式碼執行的廣泛允許規則被丟棄:

510 518 

511 * 無條件 `Bash(*)` 或 `PowerShell(*)`519 * 無條件 `Bash(*)` 或 `PowerShell(*)`

512 * 萬用字元解釋器,例如 `Bash(python*)`520 * 萬用字元解釋器,例如 `Bash(python*)`

513 * 套件管理器執行命令521 * 套件管理器執行命令

514 * `Agent` 允許規則522 * `Agent` 允許規則

515 * [`Monitor`](/docs/zh-TW/tools-reference#monitor-tool) 允許規則,因為 Claude Code 通過 shell 執行 Monitor 命令523 * [`Monitor`](/docs/zh-TW/tools-reference#monitor-tool) 允許規則,因為 Claude Code 通過殼層執行 Monitor 命令

516 524 

517 狹窄的規則,例如 `Bash(npm test)` 保持有效。Claude Code 在您離開自動模式時恢復丟棄的規則。在 v2.1.236 之前,Claude Code 在自動模式中保持 `Monitor` 允許規則有效,因此與整個工具相符的規則批准 Monitor 命令而無需分類器審查。525 窄規則,例如 `Bash(npm test)` 保持有效。Claude Code 在您離開自動模式時恢復丟棄的規則。在 v2.1.236 之前,Claude Code 在自動模式中保持 `Monitor` 允許規則有效,因此與整個工具相符的規則批准 Monitor 命令而不進行分類器審查。

518 526 

519 Claude Code 也在會丟棄未提交工作的命令(例如 `git reset --hard` 或 `rm -rf`)之前自己執行 `git status`,並向分類器顯示是否存在暫存、修改或未追蹤的工作。Claude Code 在該檢查中報告未追蹤的檔案,即使儲存庫的 git 配置設定 `status.showUntrackedFiles=no`。527 Claude Code 也在會丟棄未提交工作的命令前執行 `git status`,例如 `git reset --hard` 或 `rm -rf`,並向分類器顯示是否存在暫存、修改或未追蹤的工作。Claude Code 在該檢查中報告未追蹤的檔案,即使儲存庫的 git 配置設定 `status.showUntrackedFiles=no`。

520 528 

521 在 Claude Code 本身發送的分類器請求中,分類器看到使用者訊息、除了唯讀查詢(例如檔案讀取和搜尋)之外的工具呼叫以及您的 CLAUDE.md 內容。工具結果從這些請求中被剝離,因此檔案或網頁中的惡意內容無法直接操縱分類器。529 在 Claude Code 本身發送的分類器請求中,分類器看到使用者訊息、除了唯讀查詢(例如檔案讀取和搜尋)之外的工具呼叫以及您的 CLAUDE.md 內容。工具結果從這些請求中被剝離,因此檔案或網頁中的惡意內容無法直接操縱分類器。

522 530 

523 您可以使用 [PostToolUse hook 的 `classifierContext` 欄位](/docs/zh-TW/hooks#annotate-a-result-for-the-auto-mode-classifier)註解呼叫的結果,分類器將其讀取為應用程式提供的上下文。該欄位需要 Claude Code v2.1.236 或更新版本。531 您可以使用 [PostToolUse hook 的 `classifierContext` 欄位](/docs/zh-TW/hooks#annotate-a-result-for-the-auto-mode-classifier)註解呼叫的結果,分類器將其讀取為應用程式提供的上下文。該欄位需要 Claude Code v2.1.236 或更新版本。

524 532 

525 一個單獨的伺服器端探針掃描傳入的工具結果並在 Claude 讀取之前標記可疑內容。有關這些層如何協同工作的更多資訊,請參閱[自動模式公告](https://claude.com/blog/auto-mode)和[工程深入探討](https://www.anthropic.com/engineering/claude-code-auto-mode)。533 單獨的伺服器端探針掃描傳入的工具結果並在 Claude 讀取前標記可疑內容。有關這些層如何協同工作的更多資訊,請參閱[自動模式公告](https://claude.com/blog/auto-mode)和[工程深入探討](https://www.anthropic.com/engineering/claude-code-auto-mode)。

526 </Accordion>534 </Accordion>

527 535 

528 <Accordion title="自動模式如何處理子代理">536 <Accordion title="自動模式如何處理子代理">

529 分類器在三個點檢查[子代理](/docs/zh-TW/sub-agents)工作:537 分類器在三個點檢查[子代理](/docs/zh-TW/sub-agents)工作:

530 538 

531 1. 在子代理啟動之前,委派的任務描述被評估,因此看起來危險的任務在生成時被阻止。539 1. 在子代理啟動前,委派的任務描述被評估,因此危險看起來的任務在生成時被阻止。

532 2. 當子代理執行時,其每個操作都通過分類器,使用與父會話相同的規則,子代理前言中的任何 `permissionMode` 都被忽略。540 2. 當子代理執行時,其每個操作都通過分類器進行,使用與父工作階段相同的規則,子代理前言中的任何 `permissionMode` 都被忽略。

533 3. 當子代理完成時,分類器審查其工作和最終報告,然後父代讀取報告。當分類器標記子代理的工作或報告,或單獨的 API 安全檢查拒絕審查時,報告仍被傳遞,前面加上安全警告。當分類器對審查不可用時,報告到達時帶有驗證子代理工作的說明,然後再根據它採取行動。541 3. 當子代理完成時,分類器審查其工作和最終報告,然後父讀取報告。當分類器標記子代理的工作或報告,或單獨的 API 安全檢查拒絕審查時,報告仍被傳遞,前面加上安全警告。當分類器對審查不可用時,報告到達時帶有在對其採取行動前驗證子代理工作的注意。

534 </Accordion>542 </Accordion>

535 543 

536 <Accordion title="成本和延遲">544 <Accordion title="成本和延遲">

537 分類器預設在 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 模型。545 分類器預設在 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 模型。

538 546 

539 會話的第一個自動模式請求驗證 Sonnet 5 預設:如果請求成功,Sonnet 5 保持會話的分類器模型,如果它失敗因為模型不可用,會話改為使用回退。在該驗證解決後,分類器的模型在會話期間不會改變。547 工作階段的第一個自動模式請求驗證 Sonnet 5 預設:如果請求成功,Sonnet 5 保持工作階段的分類器模型,如果它因模型不可用而失敗,工作階段改為使用回退。在該驗證解決後,分類器的模型在工作階段中不變。

540 548 

541 在 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)。549 在 Enterprise 計畫和使用 Claude API 的帳戶、[AWS 上的 Claude Platform](/docs/zh-TW/claude-platform-on-aws)、Amazon Bedrock、Google Cloud 的 Agent Platform 或 Microsoft Foundry 上,分類器呼叫計入您的權杖使用。每次檢查發送文字記錄的一部分加上待決操作,在執行前新增往返。讀取和工作目錄編輯在受保護路徑外跳過分類器,因此開銷主要來自殼層命令和網路操作。伺服器審查操作作為工作階段模型請求的一部分的地方,沒有單獨的分類器呼叫計數;請參閱[伺服器端分類器審查](#server-side-classifier-review)。

542 550 

543 沙箱網路存取不添加按連接分類器請求。分類器判斷[命令命名的主機](/docs/zh-TW/sandboxing#per-command-allowed-domains-in-auto-mode)與命令一起在一次審查中,Claude Code 檢查每個連接對批准列表而無需再次呼叫分類器。551 沙箱網路存取不新增每個連接分類器請求。分類器與命令一起判斷[命令命名的主機](/docs/zh-TW/sandboxing#per-command-allowed-domains-in-auto-mode),Claude Code 根據批准的清單檢查每個連接而不再次呼叫分類器。

544 </Accordion>552 </Accordion>

545</AccordionGroup>553</AccordionGroup>

546 554 


568 576 

569`bypassPermissions` 模式會停用權限提示和安全檢查,使工具呼叫立即執行,包括寫入[受保護路徑](#protected-paths)。577`bypassPermissions` 模式會停用權限提示和安全檢查,使工具呼叫立即執行,包括寫入[受保護路徑](#protected-paths)。

570 578 

571[任何模式都不會自動批准的操作](#actions-no-mode-auto-approves)在此模式中仍會提示。579[任何模式都不會自動批准的操作](#actions-no-mode-auto-approves)在此模式中仍會提示。[PowerShell 中的 Remove-Item](#remove-item-in-powershell) 拒絕也適用於此模式。

572 580 

573兩個[跨工作階段訊息傳遞](/docs/zh-TW/cross-session-messaging)保護措施在此模式中仍然適用,以及在有可用的略過權限的計畫模式工作階段中:581兩個[跨工作階段訊息傳遞](/docs/zh-TW/cross-session-messaging)保護措施在此模式中仍然適用,以及在有可用的略過權限的計畫模式工作階段中:

574 582 


625 633 

626在使用 [`--restricted`](/docs/zh-TW/cli-reference#cli-flags) 啟動的工作階段中,需要 Claude Code v2.1.248 或更新版本,分類器無法批准受保護路徑寫入。634在使用 [`--restricted`](/docs/zh-TW/cli-reference#cli-flags) 啟動的工作階段中,需要 Claude Code v2.1.248 或更新版本,分類器無法批准受保護路徑寫入。

627 635 

628設定檔案中的 [`permissions.allow`](/docs/zh-TW/permissions#manage-permissions) 規則不會預先批准受保護路徑的寫入。安全檢查在 Claude Code 評估設定中的允許規則之前執行,因此在 `~/.claude/settings.json` 或 `.claude/settings.json` 中的 `Edit(.claude/**)` 之類的項目不會改變上表中的每個模式結果。在提示的模式中,`.claude/` 寫入的提示會提供**是的,並允許 Claude 在此工作階段編輯其自身設定**,這會在該工作階段中批准後續的 `.claude/` 寫入而無需再次提示。636在將受保護路徑寫入路由到分類器的模式中,當 Claude 要求的路徑本身不受保護時,[符號連結檢查](/docs/zh-TW/permissions#symlinks)解析為受保護路徑的寫入會改為提示您。

637 

638設定檔案中的 [`permissions.allow`](/docs/zh-TW/permissions#manage-permissions) 規則不會預先批准受保護路徑的寫入。安全檢查在 Claude Code 評估設定中的允許規則之前執行,因此在 `~/.claude/settings.json` 或 `.claude/settings.json` 中的 `Edit(.claude/**)` 之類的項目不會改變上表中的每個模式結果。在提示的模式中,對專案的 `.claude/` 資料夾或 `~/.claude/` 的寫入提示可以提供以下其中一個工作階段範圍的選項:

639 

640* 對於專案的 `.claude/` 資料夾:**是的,並允許 Claude 在此工作階段編輯此專案的 .claude 資料夾中的檔案**

641* 對於 `~/.claude/`:**是的,並允許 Claude 在此工作階段編輯其 \~/.claude 資料夾中的檔案**

629 642 

630受保護的目錄:643受保護的目錄:

631 644 


663| 模式 | Claude Code 對關鍵路徑移除的操作 |676| 模式 | Claude Code 對關鍵路徑移除的操作 |

664| :- | :- |677| :- | :- |

665| `default`、`acceptEdits` | 要求您批准它 |678| `default`、`acceptEdits` | 要求您批准它 |

666| `plan` | 要求您批准它。當[自動模式在規劃期間可用](#analyze-before-you-edit-with-plan-mode)且沒有略過權限可用時,改為傳送到分類器 |679| `plan` | 要求您批准它。當[分類器在規劃期間檢查命令](#analyze-before-you-edit-with-plan-mode)且沒有可用的略過權限時,改為在 `auto` 模式中處理 |

667| `auto` | 傳送到[分類器](#eliminate-prompts-with-auto-mode) |680| `auto` | 在終端中要求您批准它,有時間限制。在其他地方,拒絕它 |

668| `dontAsk` | 拒絕它 |681| `dontAsk` | 拒絕它 |

669| `bypassPermissions` | 要求您批准它 |682| `bypassPermissions` | 要求您批准它,在終端中有時間限制 |

683 

684如果明確的[詢問規則](/docs/zh-TW/permissions#manage-permissions)符合命令,Claude Code 即使在 `auto` 模式中也會詢問您,且沒有時間限制。在詢問的模式中,[`PermissionRequest` hook](/docs/zh-TW/hooks#permissionrequest) 可以回答提示。

685 

686`auto` 和 `bypassPermissions` 處理需要 Claude Code v2.1.281 或更新版本。要關閉它,請在啟動 Claude Code 的環境中設定 [`CLAUDE_CODE_DISABLE_DANGEROUS_RM_TIMEOUT=1`](/docs/zh-TW/env-vars#variables)。在 `auto` 模式中,關鍵路徑移除隨後會進入分類器,在 `bypassPermissions` 模式中提示沒有時間限制。

670 687 

671如果明確的[詢問規則](/docs/zh-TW/permissions#manage-permissions)符合命令,Claude Code 即使在 `auto` 模式中也會詢問您。在詢問的模式中,[`PermissionRequest` hook](/docs/zh-TW/hooks#permissionrequest) 可以像回答任何其他提示一樣回答提示。688在 `auto` 和 `bypassPermissions` 模式中,終端提示顯示兩分鐘倒計時:

689 

690* 如果倒計時在您回答之前用完,Claude Code 會拒絕命令並告訴 Claude 該怎麼做,因此無人值守的工作階段會繼續運作。

691* 在提示開啟時按任何鍵以停止倒計時並保持提示等待您的回答。

692* 在一個工作階段中,這些提示中的三個無人回答後,Claude Code 會停止顯示它們並立即拒絕進一步的關鍵路徑移除。傳送新訊息會重新開始計數。

693 

694在 `auto` 模式中,無論 Claude Code 無法向您顯示終端提示的地方,它都會立即拒絕命令,例如在[非互動式執行](/docs/zh-TW/headless)中使用 `-p`、在 [Agent SDK](/docs/zh-TW/agent-sdk/permissions) 工作階段中,以及在 VS Code 擴充功能的聊天面板和桌面應用程式中。拒絕告訴 Claude 報告它想刪除的內容並將移除留給您。

672 695 

673Claude Code 將 `rm` 或 `rmdir` 目標視為關鍵路徑,當它是以下任何一個時:696Claude Code 將 `rm` 或 `rmdir` 目標視為關鍵路徑,當它是以下任何一個時:

674 697 


686* 對於像 `$DIR` 這樣的變數,保護每個擴展,使得當變數未設定或為空時 shell 會停止並出現錯誤,如 `rm -rf "${DIR:?}"/*`,或使用字面路徑709* 對於像 `$DIR` 這樣的變數,保護每個擴展,使得當變數未設定或為空時 shell 會停止並出現錯誤,如 `rm -rf "${DIR:?}"/*`,或使用字面路徑

687* 對於通常已設定的變數,例如 `$HOME`,使用字面路徑710* 對於通常已設定的變數,例如 `$HOME`,使用字面路徑

688 711 

689其擴展都以這種方式保護的移除不是關鍵路徑移除,因此在 `bypassPermissions` 模式中它會在沒有提示的情況下執行。712其擴展都以這種方式保護的移除通過此檢查,因此在 `bypassPermissions` 模式中它會在沒有提示的情況下執行,除非此部分中的另一個檢查標記它。

713 

714Claude Code 也將這些目標視為關鍵路徑:

715 

716* **shell 變數後跟一個頂級目錄名稱**,例如 `rm -rf "$TMPDIR/mnt"`:當變數擴展為空時,命令會移除 `/mnt`。這涵蓋常見的頂級名稱,例如 `mnt`、`tmp`、`usr` 和 `Users`。

717* **同一命令從目錄列印替換指派的變數**,例如 `D=$(pwd); rm -rf "$D"` 或來自 `$(git rev-parse --show-toplevel)` 的指派:該值可以命名您的工作目錄或儲存庫根目錄。`"${D:?}"` 保護不會清除此檢查,因為變數不是空的;改為使用字面路徑。

718* **僅反斜線目標**,例如 `rm -rf "\\"`:Windows 上的 Git Bash 將單個反斜線讀取為目前磁碟機的根目錄,因此檢查適用於每個平台。

719* **僅命令替換的輸出**,例如 `rm -rf "$(pwd)"`,當 `rm` 是遞迴時:Claude Code 無法在命令執行前檢查目標,因此提示告訴 Claude 先自行執行替換,然後移除它列印的字面路徑。要關閉此檢查,請在啟動 Claude Code 的環境中設定 [`CLAUDE_CODE_DISABLE_SUBSTITUTION_RM_PROMPT=1`](/docs/zh-TW/env-vars#variables)。

720 

721當尾部命令替換可以擴展為空時,如 `rm -rf ~/$(cmd)`,Claude Code 會檢查保留的路徑,在此範例中為您的主目錄。

690 722 

691使用 `(...)` 的子殼層、使用 `{ ...; }` 的大括號群組、使用 `$(...)` 或反引號的命令替換,或使用 `<(...)` 的程序替換隱藏移除,不會跳過檢查。Claude Code 找到關鍵路徑移除,無論它位於巢狀形式內部(如 `(rm -rf ~)` 或 `echo "$(rm -rf ~)"`),還是位於同一命令中的其他地方。723使用 `(...)` 的子殼層、使用 `{ ...; }` 的大括號群組、使用 `$(...)` 或反引號的命令替換,或使用 `<(...)` 的程序替換隱藏移除,不會跳過檢查。Claude Code 找到關鍵路徑移除,無論它位於巢狀形式內部(如 `(rm -rf ~)` 或 `echo "$(rm -rf ~)"`),還是位於同一命令中的其他地方。

692 724 


694 PowerShell 中的 Remove-Item726 PowerShell 中的 Remove-Item

695</h3>727</h3>

696 728 

697當您啟用 [PowerShell 工具](/docs/zh-TW/tools-reference#powershell-tool)時,Claude Code 為 `Remove-Item` 提供自己的檢查,與 `rm` 關鍵路徑清單分開。結果取決於目標,第一個匹配的情況適用:729當您啟用 [PowerShell 工具](/docs/zh-TW/tools-reference#powershell-tool)時,Claude Code 為 `Remove-Item` 和 `cmd` 內建命令 `rd`、`rmdir`、`del` 和 `erase` 提供自己的檢查,與 `rm` 關鍵路徑清單分開。對於 `Remove-Item`,結果取決於目標,第一個匹配的情況適用:

698 730 

699* **系統路徑**:檔案系統根目錄及其頂級目錄、磁碟機根目錄及其頂級目錄以及您的主目錄。Claude Code 在每種模式中拒絕命令,無需詢問您。731* **系統路徑**:檔案系統根目錄及其頂級目錄、磁碟機根目錄及其頂級目錄以及您的主目錄。Claude Code 在每種模式中拒絕命令,無需詢問您。

700* **萬用字元**:裸 `*` 或任何以 `/*` 或 `\*` 結尾的目標,包括 shell 變數下的 glob,例如 `$dir/*`。Claude Code 在每種模式中拒絕命令,無需詢問您,在[分類器](#eliminate-prompts-with-auto-mode)看到它之前。732* **萬用字元**:裸 `*` 或任何以 `/*` 或 `\*` 結尾的目標,包括 shell 變數下的 glob,例如 `$dir/*`。Claude Code 在每種模式中拒絕命令,無需詢問您,在[分類器](#eliminate-prompts-with-auto-mode)看到它之前。

701* **您的工作目錄或其中一個父目錄,使用 `-Recurse`**:Claude Code 將命令視為任何其他在您的權限模式中需要批准的命令,因此它在詢問的模式中詢問您,在 `auto` 模式中傳送到分類器,在 `dontAsk` 模式中拒絕它。`bypassPermissions` 模式跳過此檢查。733* **您的工作目錄或其中一個父目錄,使用 `-Recurse`**:Claude Code 將命令視為任何其他在您的權限模式中需要批准的命令,因此它在詢問的模式中詢問您,在 `auto` 模式中傳送到分類器,在 `dontAsk` 模式中拒絕它。`bypassPermissions` 模式跳過此檢查。

702 734 

735系統路徑情況也適用於 `rd`、`rmdir`、`del` 和 `erase`,當 Claude 通過 `cmd` 執行它們時,例如 `cmd /c rd /s /q C:\Users`。預設情況下,Claude Code 在每種模式中拒絕此類命令,無需詢問您。此 `cmd` 檢查需要 Claude Code v2.1.283 或更新版本。

736 

737在判斷 `cmd` 目標時,Claude Code 將跟隨字面文字的 PowerShell 變數視為空。這使得 `cmd /c rd /s /q "C:\$name"` 成為 `C:\` 的移除,因此它也被拒絕。尾部萬用字元計為它清空的資料夾,因此 `cmd /c del /q C:\*` 被拒絕,而您專案中的 `cmd /c del /q dist\*` 則不被拒絕。

738 

739要關閉 `cmd` 檢查,請在啟動 Claude Code 的環境中設定 [`CLAUDE_CODE_DISABLE_POWERSHELL_CMD_RM_DENY=1`](/docs/zh-TW/env-vars#variables)。Claude Code 在設定檔的 `env` 區塊中忽略此變數。系統路徑上的 `Remove-Item` 無論如何都保持被拒絕。

740 

703<h2 id="see-also">741<h2 id="see-also">

704 另請參閱742 另請參閱

705</h2>743</h2>

permissions.md +32 −3

Details

457* Claude Code 讀取 `!` 模式相對於目前目錄,即使 `/`、`~/` 或 `//` 跟隨 `!`,所以模式無法到達以其中一個前綴錨定的規則。`Read(!~/notes/public/**)` 不切割 `Read(~/notes/**)` 中的任何內容。457* Claude Code 讀取 `!` 模式相對於目前目錄,即使 `/`、`~/` 或 `//` 跟隨 `!`,所以模式無法到達以其中一個前綴錨定的規則。`Read(!~/notes/public/**)` 不切割 `Read(~/notes/**)` 中的任何內容。

458* 切割出無法重新開啟規則整體阻止的目錄內的檔案。使用 `Read(secrets/**)` 和 `Read(!secrets/public/**)`,Claude Code 仍然阻止 `secrets/public` 以及 `secrets` 的其餘部分。458* 切割出無法重新開啟規則整體阻止的目錄內的檔案。使用 `Read(secrets/**)` 和 `Read(!secrets/public/**)`,Claude Code 仍然阻止 `secrets/public` 以及 `secrets` 的其餘部分。

459 459 

460當 Claude 存取符號連結時,權限規則檢查兩個路徑:符號連結本身和它解析到的檔案。Allow 和 deny 規則對該對的處理方式不同:allow 規則回退到提示您,而 deny 規則直接阻止。460<h4 id="symlinks">

461 符號連結

462</h4>

463 

464當 Claude 存取符號連結時,權限檢查涵蓋兩個路徑:符號連結本身和它解析到的檔案。這適用於 macOS、Linux 和 Windows 上的符號連結,以及 Windows 上的目錄連接。

465 

466<h5 id="how-rules-match-a-symlinked-path">

467 規則如何符合符號連結路徑

468</h5>

469 

470Allow 和 deny 規則對該對的處理方式不同:

461 471 

462* **允許規則**:僅在符號連結路徑及其目標都符合時適用。允許目錄內的符號連結指向外部仍會提示您。472* **允許規則**:僅在符號連結路徑及其目標都符合時適用。允許目錄內的符號連結指向外部仍會提示您。

463* **Deny 規則**:在符號連結路徑或其目標符合時適用。指向被拒絕檔案的符號連結本身被拒絕。例如,使用 `Read(./project/**)` 允許和 `Read(~/.ssh/**)` 拒絕,位於 `./project/key` 指向 `~/.ssh/id_rsa` 的符號連結被阻止:目標未通過允許規則且符合 deny 規則。473* **Deny 規則**:在符號連結路徑或其目標符合時適用。指向被拒絕檔案的符號連結本身被拒絕。例如,使用 `Read(./project/**)` 允許和 `Read(~/.ssh/**)` 拒絕,位於 `./project/key` 指向 `~/.ssh/id_rsa` 的符號連結被阻止:目標未通過允許規則且符合 deny 規則。

464 474 

465在 macOS 和 Linux 上,透過符號連結目錄編寫的 deny 或 ask 規則(帶有 `//`、`~/` 或 `/` 模式)也適用於目錄的真實位置。例如,在 macOS 上,其中 `/etc` 解析為 `/private/etc`,`Read(//etc/**)` 也會阻止 `/private/etc/hosts`。在 v2.1.268 之前,透過符號連結目錄編寫的 deny 或 ask 規則不適用於由其真實位置給出的路徑。475在 macOS 和 Linux 上,透過符號連結目錄編寫的 deny 或 ask 規則(帶有 `//`、`~/` 或 `/` 模式)也適用於目錄的真實位置。例如,在 macOS 上,其中 `/etc` 解析為 `/private/etc`,`Read(//etc/**)` 也會阻止 `/private/etc/hosts`。在 v2.1.268 之前,透過符號連結目錄編寫的 deny 或 ask 規則不適用於由其真實位置給出的路徑。

466 476 

467當工具開啟已批准的檔案時,Claude Code [確認路徑仍然解析到權限檢查批准的位置](/docs/zh-TW/errors#refusing-after-a-symlink-changed)。

468 

469Grep 和 Glob 搜尋 `path` 引數解析到的目錄。Claude Code 將 `Read` deny 規則應用於該目錄。477Grep 和 Glob 搜尋 `path` 引數解析到的目錄。Claude Code 將 `Read` deny 規則應用於該目錄。

470 478 

479<h5 id="writes-through-a-symlink">

480 透過符號連結的寫入

481</h5>

482 

483如果 Claude 要求編輯或寫入的路徑本身是符號連結,Edit 和 Write 工具[拒絕寫入並將 Claude 導向連結的目標](/docs/zh-TW/errors#refusing-after-a-symlink-changed)。

484 

485當目錄在檔案路徑上是符號連結,或當 Bash 或 PowerShell 命令進行寫入時,寫入仍然可以通過符號連結。對於這些寫入,發生的情況取決於寫入解析到的檔案相對於您的[工作目錄](#working-directories)和[受保護的路徑](/docs/zh-TW/permission-modes#protected-paths)的位置:

486 

487* **解析到工作目錄外**:當請求的路徑在您的工作目錄內,而它解析到的檔案不在時,寫入在 [`acceptEdits` 模式](/docs/zh-TW/permission-modes#auto-approve-file-edits-with-acceptedits-mode)中不會自動批准。在[自動模式](/docs/zh-TW/permission-modes#eliminate-prompts-with-auto-mode)中,除非允許規則批准寫入,否則您會被提示而不是分類器決定。提示會命名寫入解析到的路徑。

488* **解析到請求的路徑不命名的受保護路徑**:[受保護的路徑表](/docs/zh-TW/permission-modes#protected-paths)給出每個權限模式的結果,除了表將寫入路由到分類器的地方,此寫入會提示您。

489 

490<h5 id="paths-that-can’t-be-resolved-or-that-change">

491 無法解析或變更的路徑

492</h5>

493 

494當 Claude Code 無法判斷路徑在磁碟上的位置時,例如因為路徑上的符號連結形成迴圈,Read、Edit 和 Write 工具[拒絕操作](/docs/zh-TW/errors#refusing-after-a-symlink-changed)。

495 

496當工具隨後開啟已批准的檔案時,它[確認路徑仍然解析到權限檢查批准的位置](/docs/zh-TW/errors#refusing-after-a-symlink-changed)。

497 

471<h3 id="webfetch">498<h3 id="webfetch">

472 WebFetch499 WebFetch

473</h3>500</h3>


705 732 

706Claude Code 只在互動工作階段中顯示信任對話框。`claude -p` 執行或 SDK 工作階段永遠不會顯示它,信任父資料夾不會計入這些規則,因此[您信任資料夾前執行的內容](#what-runs-before-you-trust-a-folder)說明了在這兩種情況下 Claude Code 仍然使用的儲存庫內容。733Claude Code 只在互動工作階段中顯示信任對話框。`claude -p` 執行或 SDK 工作階段永遠不會顯示它,信任父資料夾不會計入這些規則,因此[您信任資料夾前執行的內容](#what-runs-before-you-trust-a-folder)說明了在這兩種情況下 Claude Code 仍然使用的儲存庫內容。

707 734 

735在啟動或重新啟動[背景工作階段](/docs/zh-TW/agent-view)之前,Claude Code 也會檢查工作階段執行所在目錄的工作區信任。如果您從未信任的目錄中的終端執行 `claude --bg`,信任對話框會先出現,一旦您接受它,工作階段就會啟動。在無法出現對話框的地方(例如在指令碼中),命令會改為以[`Workspace not trusted`](/docs/zh-TW/errors#workspace-not-trusted-when-dispatching-a-background-session)錯誤結束。

736 

708<h3 id="when-your-local-settings-file-needs-trust">737<h3 id="when-your-local-settings-file-needs-trust">

709 當您的本機設定檔案需要信任時738 當您的本機設定檔案需要信任時

710</h3>739</h3>

platforms.md +1 −1

Details

53| | 觸發 | Claude 執行位置 | 設定 | 最適合 |53| | 觸發 | Claude 執行位置 | 設定 | 最適合 |

54| :- | :- | :- | :- | :- |54| :- | :- | :- | :- | :- |

55| [Dispatch](/docs/zh-TW/desktop#sessions-from-dispatch) | 從 Claude 行動應用程式傳送任務訊息 | 您的機器 (Desktop) | [將行動應用程式與 Desktop 配對](https://support.claude.com/en/articles/13947068) | 在您不在時委派工作,最少設定 |55| [Dispatch](/docs/zh-TW/desktop#sessions-from-dispatch) | 從 Claude 行動應用程式傳送任務訊息 | 您的機器 (Desktop) | [將行動應用程式與 Desktop 配對](https://support.claude.com/en/articles/13947068) | 在您不在時委派工作,最少設定 |

56| [Remote Control](/docs/zh-TW/remote-control) | 從 [claude.ai/code](https://claude.ai/code) 或 Claude 行動應用程式驅動執行中的工作階段 | 您的機器 (CLI 或 VS Code) | 執行 `claude remote-control` | 從另一個裝置控制進行中的工作 |56| [Remote Control](/docs/zh-TW/remote-control) | 從 [claude.ai/code](https://claude.ai/code) 或 Claude 行動應用程式驅動執行中的工作階段 | 您的機器 (CLI、Desktop 或 VS Code) | 執行 [`claude remote-control` 或 `/remote-control`](/docs/zh-TW/remote-control#start-a-remote-control-session) | 從另一個裝置控制進行中的工作 |

57| [Channels](/docs/zh-TW/channels) | 從聊天應用程式 (如 Telegram 或 Discord) 或您自己的伺服器推送事件 | 您的機器 (CLI) | [安裝頻道外掛程式](/docs/zh-TW/channels#quickstart) 或 [建立您自己的](/docs/zh-TW/channels-reference) | 對外部事件 (如 CI 失敗或聊天訊息) 做出反應 |57| [Channels](/docs/zh-TW/channels) | 從聊天應用程式 (如 Telegram 或 Discord) 或您自己的伺服器推送事件 | 您的機器 (CLI) | [安裝頻道外掛程式](/docs/zh-TW/channels#quickstart) 或 [建立您自己的](/docs/zh-TW/channels-reference) | 對外部事件 (如 CI 失敗或聊天訊息) 做出反應 |

58| [Slack](/docs/zh-TW/slack) | 在團隊頻道中提及 `@Claude` | Anthropic 雲端 | [安裝 Slack 應用程式](/docs/zh-TW/slack#setting-up-claude-code-in-slack) 並啟用 [網路上的 Claude Code](/docs/zh-TW/claude-code-on-the-web) | 從團隊聊天進行 PR 和審查 |58| [Slack](/docs/zh-TW/slack) | 在團隊頻道中提及 `@Claude` | Anthropic 雲端 | [安裝 Slack 應用程式](/docs/zh-TW/slack#setting-up-claude-code-in-slack) 並啟用 [網路上的 Claude Code](/docs/zh-TW/claude-code-on-the-web) | 從團隊聊天進行 PR 和審查 |

59| [Self-hosted environments](/docs/zh-TW/self-hosted-environments) | 啟動 [雲端工作階段](/docs/zh-TW/claude-code-on-the-web) 並選擇您組織的環境 | 您組織的基礎設施 | [部署執行器](/docs/zh-TW/self-hosted-environments-quickstart),在 Team 和 Enterprise 方案上 | 必須在您的網路內執行的雲端工作階段 |59| [Self-hosted environments](/docs/zh-TW/self-hosted-environments) | 啟動 [雲端工作階段](/docs/zh-TW/claude-code-on-the-web) 並選擇您組織的環境 | 您組織的基礎設施 | [部署執行器](/docs/zh-TW/self-hosted-environments-quickstart),在 Team 和 Enterprise 方案上 | 必須在您的網路內執行的雲端工作階段 |

plugin-evals.md +68 −49

Details

16* 在您變更 plugin 或新模型發佈時捕捉迴歸16* 在您變更 plugin 或新模型發佈時捕捉迴歸

17* 查看與沒有 plugin 相比 plugin 的貢獻17* 查看與沒有 plugin 相比 plugin 的貢獻

18 18 

19本頁面適用於擁有可運作 plugin 並想測試其行為的 plugin 和 skill 作者,以及在 CI 中把關 plugin 變更的團隊。其案例格式與 [skill-creator plugin](/docs/zh-TW/skills#run-evals-with-skill-creator) 使用的 `evals/evals.json` 檔案分開。若要建立 plugin,請參閱 [建立 plugin](/docs/zh-TW/plugins/create);若要檢查 plugin 的檔案是否存在語法和架構錯誤而不是其行為,請使用 [`claude plugin validate`](/docs/zh-TW/plugins/cli-reference#plugin-validate)。19本頁面適用於擁有可運作 plugin 並想測試其行為的 plugin 和 skill 作者,以及在 CI 中把關 plugin 變更的團隊。若要在 Claude Code 對話中反覆改進單一 skill,[skill-creator plugin](/docs/zh-TW/skills#run-evals-with-skill-creator) 會使用其自己的 `evals/evals.json` 格式執行類似的比較,且兩個工具都不會讀取另一個的案例檔案。若要建立 plugin,請參閱 [建立 plugin](/docs/zh-TW/plugins/create);若要檢查 plugin 的檔案是否存在語法和架構錯誤而不是其行為,請使用 [`claude plugin validate`](/docs/zh-TW/plugins/cli-reference#plugin-validate)。

20 20 

21<Note>21<Note>

22 每次 eval 執行和每個評判評分器都是您帳戶上的真實模型呼叫,計入您的方案使用量或 API 帳單,因此請先檢查 [requirements](#requirements)。然後 [create your first eval suite](#create-your-first-eval-suite),或如果您已經有一個,請前往 [Run evals in CI](#run-evals-in-ci)。22 每次 eval 執行和每個評判評分器都是您帳戶上的真實模型呼叫,計入您的方案使用量或 API 帳單,因此請先檢查 [requirements](#requirements)。然後 [create your first eval suite](#create-your-first-eval-suite),或如果您已經有一個,請前往 [Run evals in CI](#run-evals-in-ci)。


29若要執行 plugin evals,您需要:29若要執行 plugin evals,您需要:

30 30 

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* 具有 `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)。

33* 與您的正常 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)。

34 35 


334開啟那裡的 `ADOPT.txt` 以查看每個記錄和 `.replay/<server>/` 目錄以複製到,在產生它的 mock 旁邊。複製記錄後,稍後執行會從它回答相同呼叫,沒有模型呼叫。將 `mocks/.replay/` 與 `mocks/` 的其餘部分一起提交,以便 CI 執行可重複。335開啟那裡的 `ADOPT.txt` 以查看每個記錄和 `.replay/<server>/` 目錄以複製到,在產生它的 mock 旁邊。複製記錄後,稍後執行會從它回答相同呼叫,沒有模型呼叫。將 `mocks/.replay/` 與 `mocks/` 的其餘部分一起提交,以便 CI 執行可重複。

335 336 

336<h2 id="run-evals">337<h2 id="run-evals">

337 執行 evals338 執行評估

338</h2>339</h2>

339 340 

340一旦套件存在,`claude plugin eval` 就執行它。您選擇哪個 plugin 和案例使用目標引數執行,使用 `--allow-tools` 授予案例需要的任何工具超過唯讀集,並使用其他選項控制執行計數、模型、成本和輸出。341一旦建立了測試套件,`claude plugin eval` 就會執行它。您可以使用 target 引數選擇要執行哪個外掛程式和案例,使用 `--allow-tools` 授予案例所需的任何工具(超出唯讀集合),並使用其他選項控制執行次數、模型、成本和輸出。

341 342 

342<h3 id="choose-what-to-evaluate">343<h3 id="choose-what-to-evaluate">

343 選擇要評估的內容344 選擇要評估的內容

344</h3>345</h3>

345 346 

346大多數時候您從 plugin 根目錄執行 `claude plugin eval .`,它執行套件中 eval 目錄下的每個案例,並載入您所在的 plugin。若要執行單個案例檔案,或評估您安裝的 plugin 而不是您正在開發的 plugin,請傳遞不同的目標:347大多數情況下,您會從外掛程式根目錄執行 `claude plugin eval .`,這會執行測試套件中的每個案例,並載入您所在的外掛程式。若要執行單一案例檔案,或評估您安裝的外掛程式而非您正在開發的外掛程式,請傳遞不同的 target:

347 348 

348| Target | What runs |349| Target | 執行的內容 |

349| :- | :- |350| :- | :- |

350| A plugin's root directory, such as `.` | Every case under its eval directory, with that plugin loaded |351| 外掛程式的根目錄,例如 `.` | 其 eval 目錄下的每個案例,並載入該外掛程式 |

351| A single `prompt.md` or `case.yaml` file | That case, with its enclosing plugin loaded |352| 單一 `prompt.md` 或 `case.yaml` 檔案 | 該案例,並載入其所在的外掛程式 |

352| An installed plugin by name, `name` or `name@marketplace` | The cases in the installed copy's eval directory, with the installed copy loaded. Results are written under `./evals/results/` in your current directory, or `./<dir>/results/` with `--eval-dir` |353| 已安裝的外掛程式(按名稱),`name` 或 `name@marketplace` | 已安裝副本的 eval 目錄中的案例,並載入已安裝的副本。結果寫入您目前目錄下的 `./evals/results/`,或使用 `--eval-dir` 時寫入 `./<dir>/results/` |

353| `name@skills-dir` | The same, for a [skills-directory plugin](/docs/zh-TW/plugins/loading#plugins-shared-through-a-repository) |354| `name@skills-dir` | 相同,適用於[技能目錄外掛程式](/docs/zh-TW/plugins/loading#plugins-shared-through-a-repository) |

354| Omitted | The current directory as a path |355| 省略 | 目前目錄作為路徑 |

355 356 

356新增 `--case <glob>` 按案例名稱篩選,`--tag <tag>` 保留具有任何給定標籤的案例。將目標放在 `--tag`、`--allow-tools` 和 `--json` 之前。前兩個採用列表,`--json` 採用可選路徑,因此它們中的每一個都讀取跟隨它的目標作為其自己的值。357新增 `--case <glob>` 以按案例名稱篩選,並新增 `--tag <tag>` 以保留具有任何給定標籤的案例。

358 

359將 target 放在 `--tag`、`--allow-tools` 和 `--json` 之前。前兩個採用清單,`--json` 採用選用路徑,因此它們各自讀取後面的 target 作為其自己的值。

357 360 

358<h3 id="grant-tools">361<h3 id="grant-tools">

359 授予工具362 授予工具

360</h3>363</h3>

361 364 

362執行永遠不會停止要求許可。需要您未授予的授予的內建工具,例如 `Bash`、`Write`、`Edit`、`WebFetch` 和 `WebSearch`,會從工作階段中移除,因此 Claude 根本無法呼叫它們。365執行永遠不會停止以要求許可。需要您未授予的授權的內建工具(例如 `Bash`、`Write`、`Edit`、`WebFetch` 和 `WebSearch`)會從工作階段中移除,因此 Claude 根本無法呼叫它們。

363 366 

364執行只允許案例在 `allowed_tools` 中列出的唯讀工具,來自 `Read`、`Glob`、`Grep`、`NotebookRead`、`Skill`、`AskUserQuestion`、`Agent`、`TodoWrite` 和任務工具 `TaskCreate`、`TaskGet`、`TaskList`、`TaskUpdate` 和 `TaskStop`,加上您使用 `--allow-tools` 授予的任何內容。該授予適用於執行中的每個案例。若要讓案例使用 `Bash`、`Write`、`Edit`、`WebFetch` 或 `WebSearch`,請自己授予它們:367執行只允許案例在 `allowed_tools` 中列出的唯讀工具,來自 `Read`、`Glob`、`Grep`、`NotebookRead`、`Skill`、`AskUserQuestion`、`Agent`、`TodoWrite` 和工作工具 `TaskCreate`、`TaskGet`、`TaskList`、`TaskUpdate` 和 `TaskStop`,加上您使用 `--allow-tools` 授予的任何工具。該授權適用於執行中的每個案例。若要讓案例使用 `Bash`、`Write`、`Edit`、`WebFetch` 或 `WebSearch`,請自行授予它們:

365 368 

366```bash theme={null}369```bash theme={null}

367claude plugin eval . --allow-tools Write Edit "Bash(npm test *)"370claude plugin eval . --allow-tools Write Edit "Bash(npm test *)"

368```371```

369 372 

370當案例要求您未授予的工具時,進度輸出將其列為 `not granted`。[mocked](#mock-mcp-servers) MCP 伺服器上的工具不需要授予。真實 plugin MCP 伺服器上的工具需要伺服器啟動(使用 `--allow-real-servers` 或 `--mocks off`)和按名稱授予,例如 `--allow-tools "mcp__plugin_my-plugin_github__*"`;plugin 的 MCP 工具命名為 `mcp__plugin_<plugin>_<server>__<tool>`。373當案例要求您未授予的工具時,進度輸出會將其列為 `not granted`。[模擬](#mock-mcp-servers) MCP 伺服器上的工具不需要授權。真實外掛程式 MCP 伺服器上的工具需要伺服器啟動(使用 `--allow-real-servers` 或 `--mocks off`)和按名稱授權,例如 `--allow-tools "mcp__plugin_my-plugin_github__*"`;外掛程式的 MCP 工具命名為 `mcp__plugin_<plugin>_<server>__<tool>`。

371 374 

372當您以任何形式授予 `Bash` 時,每個命令都在 Claude Code 的 [OS-level sandbox](/docs/zh-TW/sandboxing) 下執行。寫入限制在執行的工作區,您的主目錄和 Claude Code 設定無法讀取,網路存取限制在您使用 `--allow-tools "WebFetch(domain:example.com)"` 授予的網域。如果您在沒有沙箱後端的機器上授予 Bash 或 PowerShell,Claude Code 拒絕每次執行而不是無限制執行它,案例顯示執行錯誤,通常分數為 0。原生 Windows 沒有後端,因此在 WSL2 下執行 shell 授予套件;在 Linux 上,首先安裝 `bubblewrap` 和 `socat`。請參閱 [sandboxing prerequisites](/docs/zh-TW/sandboxing)。375當您以任何形式授予 `Bash` 時,每個命令都會在 Claude Code 的 [OS 層級沙箱](/docs/zh-TW/sandboxing)下執行。寫入限制在執行的工作區、您的主目錄和 Claude Code 設定無法讀取,網路存取限制在您使用 `--allow-tools "WebFetch(domain:example.com)"` 授予的網域。如果您在沒有沙箱後端的機器上授予 Bash 或 PowerShell,Claude Code 會拒絕每次執行,而不是無限制地執行它,案例會顯示執行錯誤,通常得分為 0。原生 Windows 沒有後端,因此在 WSL2 下執行授予 shell 的測試套件;在 Linux 上,請先安裝 `bubblewrap` 和 `socat`。請參閱[沙箱先決條件](/docs/zh-TW/sandboxing)。

373 376 

374<h3 id="command-options">377<h3 id="command-options">

375 命令選項378 命令選項

376</h3>379</h3>

377 380 

378此表涵蓋執行計數、模型、評分、成本、工具授予、mocks 和輸出的選項。執行 `claude plugin eval --help` 以獲得完整列表,其中還包括 `--case`、`--tag`、`--eval-dir`、`--no-scaffold`、`--report` 和 `--verbose`。381此表涵蓋執行次數、模型、評分、成本、工具授權、模擬和輸出的選項。執行 `claude plugin eval --help` 以取得完整清單,其中也包括 `--case`、`--tag`、`--eval-dir`、`--no-scaffold`、`--report` 和 `--verbose`。

379 382 

380| Option | Default | Effect |383| 選項 | 預設值 | 效果 |

381| :- | :- | :- |384| :- | :- | :- |

382| `--runs <n>` | Each case's `runs`, else 3 | Runs per case per arm |385| `--runs <n>` | 每個案例的 `runs`,否則 3 | 每個案例每個分支的執行次數 |

383| `-j`, `--concurrency <n>` | `1` | Run up to this many agent runs at once, from 1 to 8. They share your account's rate limit, so this shortens wall-clock time rather than raising throughput past that limit. Results keep case order |386| `-j`, `--concurrency <n>` | `1` | 一次最多執行這麼多個代理執行,從 1 到 8。它們共享您帳戶的速率限制,因此這會縮短實際時間,而不是將吞吐量提高到超過該限制。結果保持案例順序 |

384| `--model <model>` | Each case's `model`, else `ANTHROPIC_MODEL` if set, else Claude Code's default | Model for the agent under test. Pin it in CI so a model rollout isn't mistaken for a plugin regression |387| `--model <model>` | 每個案例的 `model`,否則 `ANTHROPIC_MODEL`(如果已設定),否則 Claude Code 的預設值 | 受測代理的模型。在 CI 中固定它,以便模型推出不會被誤認為是外掛程式迴歸 |

385| `--judge-model <model>` | A small fast model | Model for `llm` and `baseline` graders |388| `--judge-model <model>` | 一個小型快速模型 | `llm` 和 `baseline` 評分器的模型 |

386| `--ablation <mode>` | `with-without` when a plugin resolves, else `none` | Whether to also run each case without the plugin to measure what it adds. `none` runs one arm; `with-without` adds the no-plugin baseline |389| `--ablation <mode>` | 當外掛程式解析時為 `with-without`,否則為 `none` | 是否也執行每個案例而不使用外掛程式來測量它增加的內容。`none` 執行一個分支;`with-without` 新增無外掛程式基線 |

387| `--threshold <0..1>` | `1.0` | A case passes when its with-arm score is at least this. Any case below it makes the command exit 1 |390| `--threshold <0..1>` | `1.0` | 當案例的 with 分支得分至少達到此值時,案例通過。任何低於此值的案例都會使命令以 1 結束 |

388| `--max-cost-usd <usd>` | No ceiling | A ceiling on the run's list-price cost estimate, not on plan usage. Checked before each run starts. Once spent, nothing further starts; runs that already started finish, so spend can pass the ceiling by those runs. If any run is left unstarted, the command exits 2 with partial results |391| `--max-cost-usd <usd>` | 無上限 | 執行的列表價格成本估計上限,不是計畫使用量上限。在每次執行開始前檢查。一旦花費,不會進一步開始任何內容;已經開始的執行會完成,因此花費可能會因這些執行而超過上限。如果有任何執行未開始,命令會以 2 結束並返回部分結果 |

389| `--allow-tools <tools...>` | None | Grant tools beyond the read-only set. See [Grant tools](#grant-tools) |392| `--allow-tools <tools...>` | 無 | 授予超出唯讀集合的工具。請參閱[授予工具](#grant-tools) |

390| `--scaffold` | Off | Run each case's [`scaffold_script`](#add-setup-or-history-with-case-yaml) |393| `--scaffold` | 關閉 | 執行每個案例的 [`scaffold_script`](#add-setup-or-history-with-case-yaml) |

391| `--trust-plugin` | Off | Skip the first-run trust prompt for a plugin whose code and suite you'd run yourself. Pass it in CI so the job is never refused by or left waiting at the prompt. See [What a run can access](#security) |394| `--trust-plugin` | 關閉 | 跳過您會自行執行其程式碼和測試套件的外掛程式的首次執行信任提示。在 CI 中傳遞它,以便工作永遠不會被提示拒絕或留在等待。請參閱[執行可以存取的內容](#security) |

392| `--mocks <mode>` | `record` | `record` answers MCP tool calls from [mocks](#mock-mcp-servers), doesn't start the plugin's real servers, and saves agent-mock answers for replay. `off` ignores mocks and starts the plugin's real MCP servers |395| `--mocks <mode>` | `record` | `record` 從[模擬](#mock-mcp-servers)回答 MCP 工具呼叫,不啟動外掛程式的真實伺服器,並儲存代理模擬答案以供重播。`off` 忽略模擬並啟動外掛程式的真實 MCP 伺服器 |

393| `--allow-real-servers` | Off | With `--mocks record`, also start the plugin's real MCP servers for servers that have no mock |396| `--allow-real-servers` | 關閉 | 使用 `--mocks record`,也為沒有模擬的伺服器啟動外掛程式的真實 MCP 伺服器 |

394| `--json [path]` | Off | Print the [result document](#json-result) to stdout, or write it to a path ending in `.json`. The run is quiet: no progress lines or summary table |397| `--json [path]` | 關閉 | 將[結果文件](#json-result)列印到標準輸出,或將其寫入以 `.json` 結尾的路徑。執行是安靜的:沒有進度行或摘要表 |

395| `--output-dir <dir>` | `<eval dir>/results/<timestamp>/` | Where `aggregate-result.json` and `report.html` go |398| `--output-dir <dir>` | `<eval dir>/results/<timestamp>/` | `aggregate-result.json` 和 `report.html` 的位置 |

396| `--no-publish` | | Keep the HTML report local. See [HTML report](#html-report) |399| `--no-publish` | | 保持 HTML 報告本機。請參閱 [HTML 報告](#html-report) |

397| `--publish-report` | | Publish the report even where it would stay local by default, such as a run a Claude Code session started |400| `--publish-report` | | 發佈報告,即使它在預設情況下會保持本機,例如 Claude Code 工作階段啟動的執行 |

398| `--keep-temp` | Off | Keep every run's sandbox directory and print its path, for debugging what Claude produced |401| `--keep-temp` | 關閉 | 保留每次執行的沙箱目錄並列印其路徑,以便偵錯 Claude 產生的內容 |

399 402 

400<h3 id="run-evals-in-ci">403<h3 id="run-evals-in-ci">

401 在 CI 中執行 evals404 在 CI 中執行評估

402</h3>405</h3>

403 406 

404在您的 CI 工作中,使用 `--json` 執行套件以寫入結果以進行存檔,並根據退出代碼使建置失敗。傳遞 `--trust-plugin` 以便工作永遠不會在 [first-run trust prompt](#security) 處等待,固定兩個模型以便分數在一段時間內可比較,保持報告本地,並設定成本上限作為上限:407在您的 CI 工作中,使用 `--json` 執行測試套件以寫入結果以供存檔,並根據結束代碼使建置失敗。傳遞 `--trust-plugin` 以便工作永遠不會在[首次執行信任提示](#security)處等待,固定兩個模型以便得分在一段時間內可比較,保持報告本機,並設定成本上限作為上限:

405 408 

406```bash theme={null}409```bash theme={null}

407claude plugin eval . \410claude plugin eval . \


414 --max-cost-usd 20417 --max-cost-usd 20

415```418```

416 419 

417工作的退出代碼告訴您發生了什麼:420工作的結束代碼告訴您發生了什麼:

418 421 

419| Exit code | Meaning |422| 結束代碼 | 含義 |

420| :- | :- |423| :- | :- |

421| 0 | Every case scored at or above `--threshold` and every case file loaded |424| 0 | 每個案例的得分都在或高於 `--threshold`,且每個案例檔案都已載入 |

422| 1 | A case scored below the threshold, a case file failed to load, no cases were found, a run couldn't be started, the plugin directory isn't trusted and `--trust-plugin` wasn't passed, or an option was invalid |425| 1 | 案例得分低於閾值、案例檔案無法載入、找不到案例、無法啟動執行、外掛程式目錄不受信任且未傳遞 `--trust-plugin`,或選項無效 |

423| 2 | Partial run: the `--max-cost-usd` ceiling was hit, or your credential was rejected before or at the first run. `results.json` is still written with `partial: true` and the reason |426| 2 | 部分執行:達到 `--max-cost-usd` 上限,或您的認證在首次執行前或首次執行時被拒絕。`results.json` 仍會以 `partial: true` 和原因寫入 |

424| 130 | Interrupted. Partial results are written |427| 130 | 已中斷。部分結果已寫入 |

425| 143 | Terminated, such as by a CI timeout |428| 143 | 已終止,例如由 CI 逾時 |

429 

430with-minus-without 差異會被報告,但永遠不會改變結束代碼,寫入或發佈 HTML 報告的問題也不會改變結束代碼。

426 431 

427寫入或發佈 HTML 報告的問題永遠不會改變退出代碼。若要查看案例評分低的原因,請在本地執行它而不使用 `--json`,以便列印每次執行的進度和評分器行。432若要查看案例得分低的原因,請在本機執行它而不使用 `--json`,以便列印每次執行的進度和評分器行。

428 433 

429CI 執行器也需要這些就位:434CI 執行器還需要以下內容:

430 435 

431* **安裝和認證**:CI 執行器需要 Claude Code 安裝和 [credentials in the environment](/docs/zh-TW/authentication),例如 `ANTHROPIC_API_KEY`。436* **安裝和認證**:CI 執行器需要 Claude Code 安裝和[環境中的認證](/docs/zh-TW/authentication),例如 `ANTHROPIC_API_KEY`。

432* **信任**:沒有 `--trust-plugin`,其簽出目錄 Claude Code 還不信任的工作需要 [first-run trust prompt](#security),而無法詢問的執行會被拒絕,退出代碼 1。437* **信任**:沒有 `--trust-plugin`,其簽出目錄 Claude Code 尚未信任的工作需要[首次執行信任提示](#trust-the-plugin-directory),無法詢問的執行會被拒絕,結束代碼為 1。

433* **在 CI 中 `init`**:`claude plugin eval init` 需要終端來詢問您的問題;在 CI 中,執行 `claude plugin eval init --bare <name>` 以獲得空白範本。438* **CI 中的 `init`**:`claude plugin eval init` 需要終端機來詢問您的問題;在 CI 中,執行 `claude plugin eval init --bare <name>` 以取得空白範本。

434 439 

435若要保持成本可預測,請為快速每次變更套件提供僅不呼叫評判的評分器,在您不需要 `Δ` 的地方使用 `--ablation none`,並將 `partial: true` 文件和具有 `skippedPaidGraders` 的執行排除在您繪製的任何趨勢之外。440若要保持成本可預測,只為不呼叫評判的評分器提供快速的每次變更測試套件,在您不需要 `Δ` 的地方使用 `--ablation none`,並將 `partial: true` 文件和具有 `skippedPaidGraders` 的執行排除在您繪製的任何趨勢之外。

436 441 

437<h2 id="read-the-results">442<h2 id="read-the-results">

438 讀取結果443 讀取結果


666 671 

667這是針對目錄的第一次執行,Claude Code 還不信任,並且因為 stdin 或 stdout 不是終端、您傳遞了 `--json`,或 `CI` 環境變數設定為真值(例如 `true`)而無法詢問。在終端中執行 `claude plugin eval <dir>` 一次並回答提示,或如果您信任 plugin 的程式碼和套件,請傳遞 `--trust-plugin`。請參閱 [What a run can access](#security)。672這是針對目錄的第一次執行,Claude Code 還不信任,並且因為 stdin 或 stdout 不是終端、您傳遞了 `--json`,或 `CI` 環境變數設定為真值(例如 `true`)而無法詢問。在終端中執行 `claude plugin eval <dir>` 一次並回答提示,或如果您信任 plugin 的程式碼和套件,請傳遞 `--trust-plugin`。請參閱 [What a run can access](#security)。

668 673 

674<h3 id="git-is-too-old-for-claude-plugin-eval">

675 "is too old for claude plugin eval"

676</h3>

677 

678您 `PATH` 上的 `git` 早於 2.31,所以 `claude plugin eval` 在執行任何案例之前停止並以退出代碼 1 和命名您版本的訊息退出:

679 

680```text theme={null}

681git 2.30 is too old for claude plugin eval: it ignores the environment configuration (GIT_CONFIG_COUNT, added in git 2.31) that switches off the repository's git hooks and helper programs for the run. Install git 2.31 or newer.

682```

683 

684對於每次執行,Claude Code 會關閉 git hooks、認證助手和其他程式,存放庫的 git 設定可以啟動。它透過 git 僅從版本 2.31 讀取的環境設定來執行此操作。較舊的 git 會忽略該設定,因此套件會停止,而不是對那些程式可能執行的執行進行評分。安裝 git 2.31 或更新版本並再次執行套件。

685 

686在 v2.1.283 之前,`claude plugin eval` 沒有檢查 git 版本,在較舊的 git 上,套件執行時這些程式保持開啟。

687 

669<h3 id="no-eval-cases-found">688<h3 id="no-eval-cases-found">

670 "No eval cases found"689 "No eval cases found"

671</h3>690</h3>

Details

37| 其中包含的內容 | Anthropic 維護的 plugin,加上來自合作夥伴和其他作者的 plugin | 第三方 plugin,由其作者提交給 Anthropic | 一小組示範 plugin,展示 plugin 可以包含的內容 |37| 其中包含的內容 | Anthropic 維護的 plugin,加上來自合作夥伴和其他作者的 plugin | 第三方 plugin,由其作者提交給 Anthropic | 一小組示範 plugin,展示 plugin 可以包含的內容 |

38| 取得方式 | Claude Code 在您第一次啟動互動式終端工作階段時新增它,除非[受管原則](/docs/zh-TW/plugins/org#allow-the-official-marketplace-and-your-own)或 `CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL` 阻止它。如果遺失,請參閱 [Marketplace `claude-plugins-official` 找不到](/docs/zh-TW/plugins/troubleshooting#marketplace-claude-plugins-official-not-found) | 您在 Claude Code 工作階段中使用 `/plugin marketplace add anthropics/claude-plugins-community` 新增它 | 您在 Claude Code 工作階段中使用 `/plugin marketplace add anthropics/claude-code` 新增它 |38| 取得方式 | Claude Code 在您第一次啟動互動式終端工作階段時新增它,除非[受管原則](/docs/zh-TW/plugins/org#allow-the-official-marketplace-and-your-own)或 `CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL` 阻止它。如果遺失,請參閱 [Marketplace `claude-plugins-official` 找不到](/docs/zh-TW/plugins/troubleshooting#marketplace-claude-plugins-official-not-found) | 您在 Claude Code 工作階段中使用 `/plugin marketplace add anthropics/claude-plugins-community` 新增它 | 您在 Claude Code 工作階段中使用 `/plugin marketplace add anthropics/claude-code` 新增它 |

39 39 

40如果您編寫了 plugin 並希望其他人安裝它,請參閱[發佈 plugin](/docs/zh-TW/plugins/publish),其涵蓋您自己的 marketplace 和提交到社群 marketplace。40如果您編寫了 plugin 並希望其他人安裝它,請參閱[發佈 plugin](/docs/zh-TW/plugins/publish),其涵蓋您自己的 marketplace 和提交到 Anthropic 的目錄。

41 41 

42<h3 id="the-demo-marketplace-in-anthropics/claude-code">42<h3 id="the-demo-marketplace-in-anthropics/claude-code">

43 `anthropics/claude-code` 中的示範 marketplace43 `anthropics/claude-code` 中的示範 marketplace


66* **在網路上**:在 [Claude Marketplace](https://claude.com/marketplace/plugins) 上搜尋完整目錄,其顯示安裝計數並標記某些 plugin 為 **Anthropic verified**。66* **在網路上**:在 [Claude Marketplace](https://claude.com/marketplace/plugins) 上搜尋完整目錄,其顯示安裝計數並標記某些 plugin 為 **Anthropic verified**。

67* **在 GitHub 上**:在 marketplace 的儲存庫中開啟 `.claude-plugin/marketplace.json`,例如 [`anthropics/claude-plugins-official`](https://github.com/anthropics/claude-plugins-official)。該檔案就是目錄本身。67* **在 GitHub 上**:在 marketplace 的儲存庫中開啟 `.claude-plugin/marketplace.json`,例如 [`anthropics/claude-plugins-official`](https://github.com/anthropics/claude-plugins-official)。該檔案就是目錄本身。

68 68 

69Anthropic 的目錄與這些 marketplace 分開。目錄是 claude.ai 上的目錄,而 `/plugin` 不會列出它。您從 claude.ai 上的目錄新增的 plugin 透過[帳戶同步](/docs/zh-TW/plugins/loading#synced-plugins)到達 Claude Code。若要在那裡列出您自己的 plugin,請參閱[提交至 Anthropic 的目錄](/docs/zh-TW/plugins/publish#submit-to-anthropics-directory)。

70 

69若要從桌面應用程式或指令碼安裝,或查看雲端工作階段載入的內容,請參閱[安裝 plugin](/docs/zh-TW/plugins/install)。71若要從桌面應用程式或指令碼安裝,或查看雲端工作階段載入的內容,請參閱[安裝 plugin](/docs/zh-TW/plugins/install)。

70 72 

71<h3 id="add-the-community-or-demo-marketplace">73<h3 id="add-the-community-or-demo-marketplace">

Details

163 163 

164Claude Code 列印 `Successfully uninstalled plugin: formatter (scope: project)`。當 plugin 未在該範圍安裝時,命令列印以 `Failed to uninstall plugin "formatter@my-marketplace":` 開頭的行,並結束 `1`。164Claude Code 列印 `Successfully uninstalled plugin: formatter (scope: project)`。當 plugin 未在該範圍安裝時,命令列印以 `Failed to uninstall plugin "formatter@my-marketplace":` 開頭的行,並結束 `1`。

165 165 

166如果失敗行繼續顯示 `"formatter" was not uninstalled:`,Claude Code 無法確認該範圍的設定不再開啟 plugin,因此 plugin 保持安裝並保留其保存的所有內容。使用 `--json`,結果帶有 `failureCode: "settings_still_on"`。此設定檢查需要 Claude Code v2.1.282 或更新版本。

167 

168<h4 id="what-an-uninstall-deletes-and-keeps">

169 卸載刪除和保留的內容

170</h4>

171 

172當您從最後一個安裝 plugin 的範圍卸載 plugin 時,Claude Code 也會刪除 plugin 的儲存 [選項和機密](/docs/zh-TW/plugins/manifest-reference#user-configuration) 及其資料目錄 `~/.claude/plugins/data/<id>/`。有三個例外:

173 

174* 使用 `--keep-data`,資料目錄保持

175* 當另一個已安裝的 plugin 使用相同資料夾時,例如其 ID 僅在字母大小寫上與此不同的 plugin,資料目錄保持

176* 當 Claude Code 無法在從該範圍移除 plugin 後讀回已安裝 plugins 的列表時,選項、機密和資料目錄全部保持,因為 plugin 可能仍在另一個範圍安裝。卸載仍然成功。訊息列出保留的內容及其刪除方式,使用 `--json` 結果帶有 `savedKept: "install_records_unreadable"`

177 

178使用 `--json`,`keptData` 報告目錄是否保持,`/plugin` 在保持時顯示 `· data preserved`。對於在沒有 `--keep-data` 的情況下保持的目錄,此報告需要 Claude Code v2.1.281 或更新版本。`savedKept` 欄位需要 Claude Code v2.1.282 或更新版本。

179 

166<h3 id="plugin-enable">180<h3 id="plugin-enable">

167 plugin enable181 plugin enable

168</h3>182</h3>


246 260 

247| 旗標 | 說明 |261| 旗標 | 說明 |

248| :- | :- |262| :- | :- |

249| `-s, --scope <scope>` | 更新的範圍:`user`、`project`、`local` 或 `managed`。預設為 plugin 安裝的範圍 |263| `-s, --scope <scope>` | 更新的範圍:`user`、`project`、`local` 或 `managed`。省略時自動偵測 |

250| `-y, --yes` | 接受來自 [command-source](/docs/zh-TW/plugins/host-marketplace) plugin 的已變更安裝命令,無需提示。當 stdin 或 stdout 不是 TTY 時需要,除非您傳遞 `--accept-command`。需要 Claude Code v2.1.229 或更新版本 |264| `-y, --yes` | 接受來自 [command-source](/docs/zh-TW/plugins/host-marketplace) plugin 的已變更安裝命令,無需提示。當 stdin 或 stdout 不是 TTY 時需要,除非您傳遞 `--accept-command`。需要 Claude Code v2.1.229 或更新版本 |

251| `--accept-command <sha256>` | 接受市場宣告的命令,其 `sha256` 先前的 [`--json` 執行](#plugin-json-result) 在 `shownCommand` 中報告,代替 `-y`。無法與 `-y` 結合。需要 Claude Code v2.1.271 或更新版本 |265| `--accept-command <sha256>` | 接受市場宣告的命令,其 `sha256` 先前的 [`--json` 執行](#plugin-json-result) 在 `shownCommand` 中報告,代替 `-y`。無法與 `-y` 結合。需要 Claude Code v2.1.271 或更新版本 |

252| `--json` | 將結果列印為 stdout 最後一行的一個 JSON 物件,格式與 [`plugin install --json`](#plugin-json-result) 相同。需要 Claude Code v2.1.268 或更新版本 |266| `--json` | 將結果列印為 stdout 最後一行的一個 JSON 物件,格式與 [`plugin install --json`](#plugin-json-result) 相同。需要 Claude Code v2.1.268 或更新版本 |

253 267 

268如果您省略 `--scope`,命令會在您目前專案安裝 plugin 的最具體範圍更新它,檢查本地、專案、使用者,然後受管。

269 

270在 v2.1.281 之前,命令在您省略 `--scope` 時使用 `user`,因此更新僅在專案或本地範圍安裝的 plugin 失敗,訊息為 `Plugin "<name>" is not installed at scope user`。在這些版本上,傳遞 `--scope`。

271 

254`managed` 是您可以更新但不能安裝的唯一範圍。對於管理員安裝的 plugins,請參閱 [為您的組織管理 plugins](/docs/zh-TW/plugins/org)。272`managed` 是您可以更新但不能安裝的唯一範圍。對於管理員安裝的 plugins,請參閱 [為您的組織管理 plugins](/docs/zh-TW/plugins/org)。

255 273 

256更新 plugin:274更新 plugin:


557 575 

558* **plugin 根處的 `SKILL.md`**:當您針對 plugin 目錄執行 `claude plugin validate` 時,Claude Code 不檢查 plugin 根處的 `SKILL.md`576* **plugin 根處的 `SKILL.md`**:當您針對 plugin 目錄執行 `claude plugin validate` 時,Claude Code 不檢查 plugin 根處的 `SKILL.md`

559* **plugin 根處的 `CLAUDE.md`**:在 plugin 執行中,Claude Code 也警告 plugin 根處的 `CLAUDE.md`577* **plugin 根處的 `CLAUDE.md`**:在 plugin 執行中,Claude Code 也警告 plugin 根處的 `CLAUDE.md`

560* **市場執行中的 Plugin 檔案**:從市場目錄,Claude Code 不開啟 plugins 的 skill、agent、command 或 hook 檔案。若要在這些檔案中找到錯誤,驗證每個 plugin 目錄578* **市場執行中的 Plugin 檔案**:從市場目錄,Claude Code 不開啟 plugins 的 skill、agent、command 或 hook 檔案,或它們捆綁的 MCP 伺服器檔案。若要在這些檔案中找到錯誤,驗證每個 plugin 目錄

561 579 

562<h4 id="output-and-exit-codes">580<h4 id="output-and-exit-codes">

563 輸出和結束代碼581 輸出和結束代碼

Details

413 413 

414 * **建立您的第一個外掛程式**:從[建立外掛程式](/docs/zh-TW/plugins/create)開始414 * **建立您的第一個外掛程式**:從[建立外掛程式](/docs/zh-TW/plugins/create)開始

415 * **安裝他人的外掛程式**:請參閱[安裝外掛程式](/docs/zh-TW/plugins/install)415 * **安裝他人的外掛程式**:請參閱[安裝外掛程式](/docs/zh-TW/plugins/install)

416 * **您的外掛程式使用者在 claude.ai 或 Cowork 上**:那裡會載入不同的元件集合。請參閱[claude.ai 和 Cowork 上的外掛程式](https://claude.com/docs/plugins/overview)416 * **您的外掛程式使用者在 claude.ai 或 Cowork 上**:那裡會載入不同的元件集合。請參閱[外掛程式結構和測試](https://claude.com/docs/plugins/build)和[元件支援表](https://claude.com/docs/plugins/platform-support#compare-component-support-by-app)

417</Note>417</Note>

418 418 

419<h2 id="explore-the-plugin-directory">419<h2 id="explore-the-plugin-directory">

420 探索外掛程式目錄420 探索外掛程式目錄

421</h2>421</h2>

422 422 

423探索工具顯示一個範例外掛程式 `my-plugin`,其在預設位置具有每種元件:423探索器顯示一個範例外掛程式 `my-plugin`,在其預設位置中包含每種元件的一個:

424 424 

425* 一個審查 skill 和一個 `about` 命令425* 一個審查技能和一個 `about` 命令

426* 一個安全審查子代理426* 一個安全審查子代理

427* 一個在 Claude 編輯檔案後格式化檔案的 hook,以及它呼叫的 `scripts/` 資料夾427* 一個在 Claude 編輯檔案後格式化檔案的掛鉤,以及它呼叫的 `scripts/` 資料夾

428* 一個日誌監視器428* 一個日誌監視器

429* 一個輸出樣式和一個色彩主題429* 一個輸出樣式和一個色彩主題

430* 一個路由審計工作流程430* 一個路由審計工作流程


432* 預設設定432* 預設設定

433* 一個本機 MCP 伺服器和一個 Go 語言伺服器433* 一個本機 MCP 伺服器和一個 Go 語言伺服器

434 434 

435每個檔案都是其格式的最小有效範例,目的是展示形狀而不是有用:真實的 skill 或 agent 包含完整的指示,通常還有支援檔案,真實的 hook 或監視器執行真實的工作。探索工具後的章節使用與探索工具相同的檔案作為範例,並連結至更完整的檔案。選擇檔案或資料夾以讀取其用途、查看其內容,並找到涵蓋它的章節。435每個檔案都是其格式的最小有效範例,目的是展示形狀而不是實用性:真實的技能或代理包含完整的指示,通常還有支援檔案,真實的掛鉤或監視器執行真實的工作。探索器之後的章節使用相同的檔案作為範例,並連結到更完整的版本。選擇一個檔案或資料夾來閱讀它的用途、查看其中的內容,並找到涵蓋它的章節。

436 436 

437<PluginExplorer>437<PluginExplorer>

438 <Piece id="manifest">438 <Piece id="manifest">

439 [manifest](/docs/zh-TW/plugins/manifest-reference) 是外掛程式 `.claude-plugin/` 目錄中的 `plugin.json` 檔案。它包含外掛程式的中繼資料和 Claude Code 提示使用者的 `userConfig` 值。只有 `name` 是必需的。在這個中,`description` 是使用者在 `/plugin` 中看到的外掛程式文字,`version` 會讓使用者保持在該版本,直到您變更它:439 [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` 會讓使用者保持在該版本,直到您變更它:

440 440 

441 ```json theme={null}441 ```json theme={null}

442 {442 {


448 </Piece>448 </Piece>

449 449 

450 <Piece id="skills">450 <Piece id="skills">

451 [skill](/docs/zh-TW/skills) 是一個 `SKILL.md` 檔案。將每個 skill 儲存在 `skills/` 下的自己的目錄中。Claude 讀取每個 skill 的 `description`,當使用者要求的內容與其相符時(例如要求 Claude 審查此處的提取請求),Claude 會載入 skill 的指示並遵循它們。使用者也可以直接執行它作為 `/my-plugin:review`:451 [skill](/docs/zh-TW/skills) 是一個 `SKILL.md` 檔案。將每個技能儲存在 `skills/` 下的自己的目錄中。Claude 讀取每個技能的 `description`,當使用者要求的內容與其相符時,例如在此處要求 Claude 審查拉取請求,Claude 會載入技能的指示並遵循它們。使用者也可以直接執行它作為 `/my-plugin:review`:

452 452 

453 ```markdown theme={null}453 ```markdown theme={null}

454 ---454 ---


460 </Piece>460 </Piece>

461 461 

462 <Piece id="commands">462 <Piece id="commands">

463 命令是使用者按名稱執行的單一 Markdown 檔案。命令是較舊的格式:skill 按名稱執行的方式相同,也可以在自己的目錄中攜帶支援檔案,因此將新的寫成 skills,並為您已有的檔案保留 `commands/`。此檔案變成 `/my-plugin:about`,並採用與 skill 相同的 frontmatter:463 命令是使用者按名稱執行的單一 Markdown 檔案。命令是較舊的格式:技能按名稱執行的方式相同,也可以在自己的目錄中攜帶支援檔案,因此將新的寫成技能,並為您已有的檔案保留 `commands/`。此檔案變成 `/my-plugin:about`,並採用與技能相同的前置事項:

464 464 

465 ```markdown theme={null}465 ```markdown theme={null}

466 ---466 ---


472 </Piece>472 </Piece>

473 473 

474 <Piece id="agents">474 <Piece id="agents">

475 [子代理](/docs/zh-TW/sub-agents) 是一個單獨的助手,具有自己的指示和自己的內容視窗,Claude 可以將任務委派給它並取回結果。`agents/` 下的每個 Markdown 檔案定義一個:frontmatter 命名它並說明何時使用它,正文是其系統提示。這個命名為 `my-plugin:security-reviewer`,使用者可以使用 `@agent-my-plugin:security-reviewer` 叫用它:475 [subagent](/docs/zh-TW/sub-agents) 是一個單獨的助手,具有自己的指示和自己的內容視窗,Claude 可以將任務委派給它並取回結果。`agents/` 下的每個 Markdown 檔案定義一個:前置事項命名它並說明何時使用它,正文是其系統提示。這個命名為 `my-plugin:security-reviewer`,使用者可以使用 `@agent-my-plugin:security-reviewer` 呼叫它:

476 476 

477 ```markdown theme={null}477 ```markdown theme={null}

478 ---478 ---


486 </Piece>486 </Piece>

487 487 

488 <Piece id="hooks">488 <Piece id="hooks">

489 [hook](/docs/zh-TW/hooks-guide) 在 Claude Code 生命週期中的某個點自動執行某些操作,例如在每次檔案編輯後:shell 命令、HTTP 請求、MCP 工具呼叫、對模型的提示或子代理。將外掛程式的 hooks 儲存在外掛程式根目錄的 `hooks/hooks.json` 中。這個在 Claude 寫入或編輯檔案後執行外掛程式的 `scripts/format.sh`:489 [hook](/docs/zh-TW/hooks-guide) 在 Claude Code 生命週期中的某個點自動執行某些操作,例如在每次檔案編輯後:shell 命令、HTTP 請求、MCP 工具呼叫、對模型的提示或子代理。在外掛程式根目錄的 `hooks/hooks.json` 中儲存外掛程式的掛鉤。這個在 Claude 寫入或編輯檔案後執行外掛程式的 `scripts/format.sh`:

490 490 

491 ```json theme={null}491 ```json theme={null}

492 {492 {


508 </Piece>508 </Piece>

509 509 

510 <Piece id="monitors">510 <Piece id="monitors">

511 監視器是一個 shell 命令,Claude Code 在工作階段啟動時在背景啟動,並保持執行直到工作階段結束,使用 [Monitor 工具](/docs/zh-TW/tools-reference#monitor-tool)。它列印的內容作為通知到達 Claude。`when` 欄位可以改為在命名 skill 首次執行時啟動它。這個尾部一個錯誤日誌:511 監視器是一個 shell 命令,Claude Code 在工作階段開始時在背景啟動,並保持執行直到工作階段結束,使用 [Monitor 工具](/docs/zh-TW/tools-reference#monitor-tool)。它列印的內容作為通知到達 Claude。`when` 欄位可以改為在命名技能首次執行時啟動它。這個尾部跟蹤錯誤日誌:

512 512 

513 ```json theme={null}513 ```json theme={null}

514 [514 [


522 </Piece>522 </Piece>

523 523 

524 <Piece id="output-styles">524 <Piece id="output-styles">

525 外掛程式可以包含 [輸出樣式](/docs/zh-TW/output-styles),這會改變 Claude 格式化和措辭其回覆的方式。將每個輸出樣式儲存為 `output-styles/<name>.md`。這個在 `/output-style` 中顯示為 `my-plugin:terse`:525 外掛程式可以包含 [output styles](/docs/zh-TW/output-styles),這會改變 Claude 格式化和措辭其回覆的方式。將每個輸出樣式儲存為 `output-styles/<name>.md`。這個在 `/output-style` 中顯示為 `my-plugin:terse`:

526 526 

527 ```markdown theme={null}527 ```markdown theme={null}

528 ---528 ---


536 </Piece>536 </Piece>

537 537 

538 <Piece id="themes">538 <Piece id="themes">

539 外掛程式可以包含 [Claude Code 介面的色彩主題](/docs/zh-TW/terminal-config#create-a-custom-theme)。將每個主題儲存為 `themes/<slug>.json`。這個在 `/theme` 中顯示為 `Dracula`,標記為來自 `my-plugin`:539 外掛程式可以為 Claude Code 介面包含 [color themes](/docs/zh-TW/terminal-config#create-a-custom-theme)。將每個主題儲存為 `themes/<slug>.json`。這個在 `/theme` 中顯示為 `Dracula`,標記為來自 `my-plugin`:

540 540 

541 ```json theme={null}541 ```json theme={null}

542 {542 {


572 </Piece>572 </Piece>

573 573 

574 <Piece id="bin">574 <Piece id="bin">

575 `bin/` 是外掛程式如何提供命令列工具的方式。啟用外掛程式時,Claude Code 將此資料夾放在它執行命令的 shell 的 `PATH` 上,因此 Claude 或 skill 的指示可以按名稱執行工具,而無需使用者安裝任何東西。有了這個 [可執行檔](#executables),`hello-plugin` 是 Claude 可以執行的命令:575 `bin/` 是外掛程式如何提供命令列工具的方式。當外掛程式啟用時,Claude Code 將此資料夾放在它執行命令的 shell 的 `PATH` 上,因此 Claude 或技能的指示可以按名稱執行工具,而無需使用者安裝任何東西。有了這個 [executable](#executables),`hello-plugin` 是 Claude 可以執行的命令:

576 576 

577 ```bash theme={null}577 ```bash theme={null}

578 #!/bin/bash578 #!/bin/bash


581 </Piece>581 </Piece>

582 582 

583 <Piece id="scripts">583 <Piece id="scripts">

584 `hooks/hooks.json` 中的 hook 執行指令碼,此資料夾是範例保留它的位置。名稱 `scripts/` 是一個慣例,不是 Claude Code 尋找的東西:hook 按其路徑指向檔案,`${CLAUDE_PLUGIN_ROOT}/scripts/format.sh`。格式化指令碼可能看起來像這樣:584 `hooks/hooks.json` 中的掛鉤執行指令碼,此資料夾是範例保留它的位置。名稱 `scripts/` 是一個慣例,不是 Claude Code 尋找的東西:掛鉤按其路徑指向檔案,`${CLAUDE_PLUGIN_ROOT}/scripts/format.sh`。格式化指令碼可能看起來像這樣:

585 585 

586 ```bash theme={null}586 ```bash theme={null}

587 #!/bin/bash587 #!/bin/bash


590 </Piece>590 </Piece>

591 591 

592 <Piece id="settings">592 <Piece id="settings">

593 外掛程式根目錄的 `settings.json` 包含在啟用外掛程式時適用的 [設定](/docs/zh-TW/settings-reference),因此外掛程式可以改變工作階段的行為方式,而不僅僅是新增元件。只有兩個鍵從外掛程式生效,[`agent`](/docs/zh-TW/settings-reference#agent) 和 [`subagentStatusLine`](/docs/zh-TW/settings-reference#subagentstatusline);所有其他鍵都被丟棄。請參閱 [預設設定](#default-settings)。593 外掛程式根目錄中的 `settings.json` 包含在外掛程式啟用時適用的 [settings](/docs/zh-TW/settings-reference),因此外掛程式可以改變工作階段的行為方式,而不僅僅是新增元件。只有兩個鍵從外掛程式生效,[`agent`](/docs/zh-TW/settings-reference#agent) 和 [`subagentStatusLine`](/docs/zh-TW/settings-reference#subagentstatusline);所有其他鍵都被丟棄。請參閱 [Default settings](#default-settings)。

594 594 

595 這個設定 `agent`,它執行工作階段的主執行緒作為外掛程式自己的 `security-reviewer` agent,因此該 agent 的系統提示、工具限制和模型適用於整個工作階段:595 這個設定 `agent`,它執行工作階段的主執行緒作為外掛程式自己的 `security-reviewer` 代理,因此該代理的系統提示、工具限制和模型適用於整個工作階段:

596 596 

597 ```json theme={null}597 ```json theme={null}

598 {598 {


602 </Piece>602 </Piece>

603 603 

604 <Piece id="mcp">604 <Piece id="mcp">

605 [MCP 伺服器](/docs/zh-TW/mcp) 從外部系統為 Claude 提供工具。在外掛程式根目錄的 `.mcp.json` 中宣告它。這個啟動外掛程式內指令碼中的本機伺服器,並在 `/mcp` 中顯示為 `plugin:my-plugin:db`:605 [MCP server](/docs/zh-TW/mcp) 從外部系統為 Claude 提供工具。在外掛程式根目錄的 `.mcp.json` 中宣告它。這個從外掛程式內的指令碼啟動本機伺服器,並在 `/mcp` 中顯示為 `plugin:my-plugin:db`:

606 606 

607 ```json theme={null}607 ```json theme={null}

608 {608 {


617 </Piece>617 </Piece>

618 618 

619 <Piece id="lsp">619 <Piece id="lsp">

620 LSP 伺服器為 Claude 提供 [診斷和程式碼導航](/docs/zh-TW/plugins/code-intelligence) 用於語言。在外掛程式根目錄的 `.lsp.json` 中宣告伺服器。這個連接 Go 語言伺服器用於 `.go` 檔案:620 LSP 伺服器為 Claude 提供語言的 [diagnostics and code navigation](/docs/zh-TW/plugins/code-intelligence)。在外掛程式根目錄的 `.lsp.json` 中宣告伺服器。這個連接 Go 語言伺服器用於 `.go` 檔案:

621 621 

622 ```json theme={null}622 ```json theme={null}

623 {623 {


838 到達 claude.ai 和 Cowork 上的使用者838 到達 claude.ai 和 Cowork 上的使用者

839</h4>839</h4>

840 840 

841本機 stdio 伺服器(例如 [MCP 伺服器](#mcp-servers) 下的 `db` 伺服器)在 Claude Code 和在 Claude Desktop 應用程式中在您的機器上執行的 Cowork 工作階段中執行,但不在 claude.ai 上。若要到達那裡的使用者,請透過其 `https://` URL 參考遠端伺服器,claude.ai 和 Cowork 將其作為連接器提供給使用者。841本機 stdio 伺服器(例如 [MCP 伺服器](#mcp-servers) 下的 `db` 伺服器)在 Claude Code 和在 Claude Desktop 應用程式中在您的機器上執行的 Cowork 工作階段中執行,但不在 claude.ai 上。若要到達那裡的使用者,請透過其 `https://` URL 參考遠端伺服器,claude.ai 和 Cowork 將其作為連接器提供給使用者,如 [將 MCP 連接器與其 skill 捆綁](https://claude.com/docs/plugins/build#bundle-an-mcp-connector-with-its-skill) 所示。

842 842 

843<h4 id="server-names-tool-names-and-reloads">843<h4 id="server-names-tool-names-and-reloads">

844 伺服器名稱、工具名稱和重新載入844 伺服器名稱、工具名稱和重新載入


918 918 

919外掛程式 `bin/` 目錄位於使用者自己的 `PATH` 項目之後,因此外掛程式無法遮蔽 `git`、`ls` 或其他系統命令。919外掛程式 `bin/` 目錄位於使用者自己的 `PATH` 項目之後,因此外掛程式無法遮蔽 `git`、`ls` 或其他系統命令。

920 920 

921claude.ai 和 Cowork 不安裝具有頂層 `bin/` 目錄的外掛程式,包括您 [透過 claude.ai 組織設定分發](/docs/zh-TW/plugins/host-marketplace#distribute-through-organization-settings) 的外掛程式。921claude.ai 和 Cowork 不安裝具有頂層 `bin/` 目錄的外掛程式,包括您 [透過 claude.ai 組織設定分發](https://claude.com/docs/plugins/org-sync#keep-executables-out-of-the-top-level-bin-directory) 的外掛程式。

922 922 

923<h3 id="default-settings">923<h3 id="default-settings">

924 預設設定924 預設設定

Details

15 15 

16 * **安裝他人的外掛程式**:請參閱[安裝外掛程式](/docs/zh-TW/plugins/install)16 * **安裝他人的外掛程式**:請參閱[安裝外掛程式](/docs/zh-TW/plugins/install)

17 * **不確定您是否需要外掛程式**:請參閱概述中的[決定是否需要外掛程式](/docs/zh-TW/plugins/overview#decide-whether-you-need-a-plugin)17 * **不確定您是否需要外掛程式**:請參閱概述中的[決定是否需要外掛程式](/docs/zh-TW/plugins/overview#decide-whether-you-need-a-plugin)

18 * **您的外掛程式使用者在 claude.ai 或 Cowork 上**:同一個資料夾會以不同的元件子集安裝在那裡。請參閱[claude.ai 和 Cowork 上的外掛程式](https://claude.com/docs/plugins/overview)18 * **您的外掛程式使用者在 claude.ai 或 Cowork 上**:同一個資料夾會以不同的元件子集安裝在那裡。請參閱[外掛程式結構和測試](https://claude.com/docs/plugins/build)和[元件支援表](https://claude.com/docs/plugins/platform-support#compare-component-support-by-app)

19</Note>19</Note>

20 20 

21從與您已有的內容相符的部分開始:21從與您已有的內容相符的部分開始:


132 132 

133外掛程式只在您使用 `--plugin-dir` 啟動的工作階段中載入。若要在沒有該旗標的情況下繼續處理它,或測試 `.zip` 組建,請參閱[在沒有市集的情況下開發](#develop-without-a-marketplace)。133外掛程式只在您使用 `--plugin-dir` 啟動的工作階段中載入。若要在沒有該旗標的情況下繼續處理它,或測試 `.zip` 組建,請參閱[在沒有市集的情況下開發](#develop-without-a-marketplace)。

134 134 

135若要讓 Claude 為您建立並檢查更大的外掛程式,請從 `claude-plugins-official` 市集[安裝](/docs/zh-TW/plugins/install#install-a-plugin) Anthropic 的 `plugin-dev` 外掛程式,該外掛程式會新增用於編寫技能、hooks 和 MCP 伺服器等元件的技能和代理,以及用於驗證完成的外掛程式的技能和代理。安裝後,執行 `/plugin-dev:create-plugin` 後跟您想要的外掛程式的描述,Claude 會引導您完成設計、建立和驗證它。

136 

135<h3 id="share-the-plugin">137<h3 id="share-the-plugin">

136 分享您的外掛程式138 分享您的外掛程式

137</h3>139</h3>


140 142 

141* **直接將其發送給少數人**:給他們外掛程式的目錄或其 `.zip`,無需發佈任何內容。請參閱[在沒有市集的情況下分享外掛程式](/docs/zh-TW/plugins/publish#share-a-plugin-without-a-marketplace)。143* **直接將其發送給少數人**:給他們外掛程式的目錄或其 `.zip`,無需發佈任何內容。請參閱[在沒有市集的情況下分享外掛程式](/docs/zh-TW/plugins/publish#share-a-plugin-without-a-marketplace)。

142* **在您自己的市集中列出它**:隊友添加您的市集一次並按名稱安裝外掛程式,他們會收到您的更新。請參閱[透過您自己的市集發佈](/docs/zh-TW/plugins/publish#publish-through-your-own-marketplace)。144* **在您自己的市集中列出它**:隊友添加您的市集一次並按名稱安裝外掛程式,他們會收到您的更新。請參閱[透過您自己的市集發佈](/docs/zh-TW/plugins/publish#publish-through-your-own-marketplace)。

143* **將其提交到 Anthropic 的社群市集**:列出後,任何添加該市集的人都可以安裝它。請參閱[提交到社群市集](/docs/zh-TW/plugins/publish#submit-to-the-community-marketplace)。145* **將其提交到 Anthropic 的社群市集**:列出後,任何添加該市集的人都可以安裝它。請參閱[提交到社群市集](/docs/zh-TW/plugins/publish#submit-to-anthropics-directory)。

144 146 

145<h3 id="plugin-layout">147<h3 id="plugin-layout">

146 外掛程式佈局148 外掛程式佈局


201 203 

202如果資料夾沒有 `.claude-plugin/` 目錄且其頂級沒有外掛程式元件,Claude Code 會將其視為外掛程式資料夾。然後,每個具有 `.claude-plugin/plugin.json` 清單的直接子資料夾都會作為單獨的外掛程式載入。資料夾中的所有其他內容都會被跳過而不出現錯誤,包括沒有清單的子資料夾。如果資料夾中的外掛程式無法載入,請檢查其子資料夾是否具有 `.claude-plugin/plugin.json`。204如果資料夾沒有 `.claude-plugin/` 目錄且其頂級沒有外掛程式元件,Claude Code 會將其視為外掛程式資料夾。然後,每個具有 `.claude-plugin/plugin.json` 清單的直接子資料夾都會作為單獨的外掛程式載入。資料夾中的所有其他內容都會被跳過而不出現錯誤,包括沒有清單的子資料夾。如果資料夾中的外掛程式無法載入,請檢查其子資料夾是否具有 `.claude-plugin/plugin.json`。

203 205 

206您也可以傳遞一個資料夾,該資料夾在其外掛程式資料夾旁邊保存 `.claude-plugin/marketplace.json`。只要該 `.claude-plugin/` 目錄不包含 `plugin.json`,外掛程式資料夾仍會載入。市集檔案中沒有任何內容被安裝或啟用,因為 Claude Code 不會讀取它。從這樣的資料夾載入外掛程式需要 Claude Code v2.1.281 或更新版本。

207 

204在互動式工作階段中,您也可以在啟動後在資料夾中添加和移除外掛程式:208在互動式工作階段中,您也可以在啟動後在資料夾中添加和移除外掛程式:

205 209 

206* 您添加的子資料夾在其清單存在後會作為新外掛程式載入。210* 您添加的子資料夾在其清單存在後會作為新外掛程式載入。


417 421 

418* [外掛程式元件](/docs/zh-TW/plugins/components):將代理、hooks、MCP 伺服器、LSP 伺服器和使用者設定添加到您的外掛程式422* [外掛程式元件](/docs/zh-TW/plugins/components):將代理、hooks、MCP 伺服器、LSP 伺服器和使用者設定添加到您的外掛程式

419* [使用 evals 測試外掛程式](/docs/zh-TW/plugin-evals):編寫 eval 案例並使用 `claude plugin eval` 執行它們以檢查外掛程式引導 Claude 行為的可靠性423* [使用 evals 測試外掛程式](/docs/zh-TW/plugin-evals):編寫 eval 案例並使用 `claude plugin eval` 執行它們以檢查外掛程式引導 Claude 行為的可靠性

420* [發佈外掛程式](/docs/zh-TW/plugins/publish):版本化它、將其放在市集中,並將其提交到社群市集424* [發佈外掛程式](/docs/zh-TW/plugins/publish):版本化它、將其放在市集中,並將其提交以供審查

421* [claude.ai 和 Cowork 上的外掛程式](https://claude.com/docs/plugins/overview):同一個外掛程式資料夾安裝在 claude.ai 和 Cowork 上。某些元件僅限 Claude Code425* [外掛程式結構和測試](https://claude.com/docs/plugins/build):同一個外掛程式資料夾安裝在 claude.ai 和 Cowork 上。某些元件僅限 Claude Code,而[元件支援表](https://claude.com/docs/plugins/platform-support#compare-component-support-by-app)列出了在每個平台上加載的元件

422* [外掛程式清單參考](/docs/zh-TW/plugins/manifest-reference):每個 `plugin.json` 欄位、路徑規則和目錄426* [外掛程式清單參考](/docs/zh-TW/plugins/manifest-reference):每個 `plugin.json` 欄位、路徑規則和目錄

423* [技能](/docs/zh-TW/skills):編寫您的外掛程式提供的技能427* [技能](/docs/zh-TW/skills):編寫您的外掛程式提供的技能

424* [Anthropic 在 claude-code 存放庫中的外掛程式](https://github.com/anthropics/claude-code/tree/main/plugins):本頁面佈局的完整工作範例,例如 `feature-dev` 和 `code-review`428* [Anthropic 在 claude-code 存放庫中的外掛程式](https://github.com/anthropics/claude-code/tree/main/plugins):本頁面佈局的完整工作範例,例如 `feature-dev` 和 `code-review`

Details

14 其他頁面涵蓋了這些情況:14 其他頁面涵蓋了這些情況:

15 15 

16 * **與少數人分享一個 plugin**:將 plugin 的目錄或其 `.zip` 檔案發送給他們。請參閱[不使用 marketplace 分享 plugin](/docs/zh-TW/plugins/publish#share-a-plugin-without-a-marketplace)。16 * **與少數人分享一個 plugin**:將 plugin 的目錄或其 `.zip` 檔案發送給他們。請參閱[不使用 marketplace 分享 plugin](/docs/zh-TW/plugins/publish#share-a-plugin-without-a-marketplace)。

17 * **向所有人提供 plugin**:將其提交到 Anthropic 的社群 marketplace。請參閱[提交到社群 marketplace](/docs/zh-TW/plugins/publish#submit-to-the-community-marketplace)。17 * **向所有人提供 plugin**:將其提交到 Anthropic 的社群 marketplace。請參閱[提交到社群 marketplace](/docs/zh-TW/plugins/publish#submit-to-anthropics-directory)。

18 * **自己使用 plugin**:使用 `--plugin-dir` 載入它或將其保存在您的 skills 目錄中。請參閱[不使用 marketplace 開發](/docs/zh-TW/plugins/create#develop-without-a-marketplace)。18 * **自己使用 plugin**:使用 `--plugin-dir` 載入它或將其保存在您的 skills 目錄中。請參閱[不使用 marketplace 開發](/docs/zh-TW/plugins/create#develop-without-a-marketplace)。

19</Note>19</Note>

20 20 

Details

89Organization sync 對儲存庫的要求比 `/plugin marketplace add` 更嚴格:89Organization sync 對儲存庫的要求比 `/plugin marketplace add` 更嚴格:

90 90 

91* **Marketplace 儲存庫**:在 github.com 和 gitlab.com 上,它必須是私有或內部的91* **Marketplace 儲存庫**:在 github.com 和 gitlab.com 上,它必須是私有或內部的

92* **Plugin sources**:每個 plugin source 必須是 `github`、`url` 或 `git-subdir` 類型,或以 `./` 開頭的 [relative path](/docs/zh-TW/plugins/marketplace-reference#relative-path-plugin-source)92* **Plugin sources**:organization sync 只接受某些 [source types](/docs/zh-TW/plugins/marketplace-reference#plugin-sources)

93* **頂級 `bin/` 目錄**:claude.ai 拒絕具有一個的 plugin 並同步 marketplace 的其餘部分。錯誤訊息以 `Plugin contains a top-level bin/ directory` 開頭。將可執行檔保留在另一個目錄中,如 `scripts/`,並從您的 hooks 或 MCP 伺服器設定中將它們參考為 `${CLAUDE_PLUGIN_ROOT}/scripts/<name>`93* **頂級 `bin/` 目錄**:claude.ai 拒絕具有一個的 plugin 並同步 marketplace 的其餘部分。錯誤訊息以 `Plugin contains a top-level bin/ directory` 開頭。將可執行檔保留在另一個目錄中,如 `scripts/`,並從您的 hooks 或 MCP 伺服器設定中將它們參考為 `${CLAUDE_PLUGIN_ROOT}/scripts/<name>`

94 94 

95有關管理員工作流程,請參閱 [Manage plugins for your organization](https://support.claude.com/en/articles/13837433)。95[Sync your organization's plugins from a repository](https://claude.com/docs/plugins/org-sync) 在 claude.com 上列出接受的 sources、GitLab 設定和 `bin/` 錯誤,而 [Manage plugins for your organization](https://claude.com/docs/plugins/admin) 涵蓋管理員工作流程。

96 96 

97<h2 id="grant-access-to-a-private-marketplace">97<h2 id="grant-access-to-a-private-marketplace">

98 Grant access to a private marketplace98 Grant access to a private marketplace


113 113 

114對於 GitHub Enterprise Server 主機,使用者需要從其機器存取該主機的 git 存取。請參閱 [Plugin marketplaces on GHES](/docs/zh-TW/github-enterprise-server#plugin-marketplaces-on-ghes) 以了解每個 Claude Code 表面需要什麼來到達 GHES 託管的 marketplace。114對於 GitHub Enterprise Server 主機,使用者需要從其機器存取該主機的 git 存取。請參閱 [Plugin marketplaces on GHES](/docs/zh-TW/github-enterprise-server#plugin-marketplaces-on-ghes) 以了解每個 Claude Code 表面需要什麼來到達 GHES 託管的 marketplace。

115 115 

116如果您改為透過 claude.ai 上的 **Organization settings > Plugins & skills** 分發,您使用者的 git 認證不涉及。請參閱 [Distribute through organization settings](#distribute-through-organization-settings) 以了解哪些 plugin sources 可以在那裡是私有的。116如果您改為透過 claude.ai 上的 **Organization settings > Plugins & skills** 分發,您使用者的 git 認證不涉及。請參閱 [透過組織設定分發](#distribute-through-organization-settings)。

117 117 

118<h3 id="serve-users-who-have-no-git-host-account">118<h3 id="serve-users-who-have-no-git-host-account">

119 Serve users who have no git-host account119 Serve users who have no git-host account

Details

143外掛程式的安裝範圍決定誰獲得外掛程式以及哪個設定檔將其記錄為啟用:143外掛程式的安裝範圍決定誰獲得外掛程式以及哪個設定檔將其記錄為啟用:

144 144 

145* **User scope**:外掛程式在此機器上的每個專案中為您啟用。該項目進入 `~/.claude/settings.json` 中的 `enabledPlugins`。145* **User scope**:外掛程式在此機器上的每個專案中為您啟用。該項目進入 `~/.claude/settings.json` 中的 `enabledPlugins`。

146* **Project scope**:外掛程式在此儲存庫中為每個人啟用。該項目進入 `.claude/settings.json`,您提交它。146* **Project scope**:外掛程式在此儲存庫中為每個人啟用。該項目進入 `.claude/settings.json`,您提交它。提交該項目會為您的協作者開啟外掛程式,但不會將其下載到他們的機器上,因此每個協作者也需執行一次 `claude plugin install <name>@<marketplace> --scope project`;請參閱 [在專案設定中啟用但未安裝](/docs/zh-TW/plugins/loading#enabled-in-project-settings-but-not-installed)。

147* **Local scope**:外掛程式在此儲存庫中僅為您啟用。該項目進入 `.claude/settings.local.json`。147* **Local scope**:外掛程式在此儲存庫中僅為您啟用。該項目進入 `.claude/settings.local.json`。

148 148 

149某些外掛程式由其作者設定為預設關閉,透過 [`defaultEnabled`](/docs/zh-TW/plugins/manifest-reference#defaultenabled) 欄位。這樣的外掛程式已安裝但保持關閉,直到您在 shell 中使用 `claude plugin enable <name>` 或從工作階段中 `/plugin` 的 **Installed** 標籤開啟它。149某些外掛程式由其作者設定為預設關閉,透過 [`defaultEnabled`](/docs/zh-TW/plugins/manifest-reference#defaultenabled) 欄位。這樣的外掛程式已安裝但保持關閉,直到您在 shell 中使用 `claude plugin enable <name>` 或從工作階段中 `/plugin` 的 **Installed** 標籤開啟它。

Details

100 100 

101在終端工作階段中,同步 plugin 的技能、代理、hooks、MCP 伺服器和 LSP 伺服器都會載入,具有與您安裝的市場 plugin 相同的信任。101在終端工作階段中,同步 plugin 的技能、代理、hooks、MCP 伺服器和 LSP 伺服器都會載入,具有與您安裝的市場 plugin 相同的信任。

102 102 

103如需 Cowork 載入的元件,請參閱 claude.com 上的 [claude.ai 和 Cowork 中的 Plugins](https://claude.com/docs/plugins/overview)。103如需 Cowork 載入的元件,請參閱 claude.com 上的 [元件支援表](https://claude.com/docs/plugins/platform-support#compare-component-support-by-app)。

104 104 

105同步 plugins 在 Cowork 工作階段和您使用 claude.ai 帳戶登入的終端工作階段中載入:105同步 plugins 在 Cowork 工作階段和您使用 claude.ai 帳戶登入的終端工作階段中載入:

106 106 


184| 路徑 | 它保存什麼 |184| 路徑 | 它保存什麼 |

185| :- | :- |185| :- | :- |

186| `cache/<marketplace>/<plugin>/<version>/` | 市場 plugin 的每個已安裝版本一個目錄。`<plugin>` 是市場項目名稱,`<version>` 是 [已解決的版本](#versions-and-updates)。`${CLAUDE_PLUGIN_ROOT}` 指向此目錄 |186| `cache/<marketplace>/<plugin>/<version>/` | 市場 plugin 的每個已安裝版本一個目錄。`<plugin>` 是市場項目名稱,`<version>` 是 [已解決的版本](#versions-and-updates)。`${CLAUDE_PLUGIN_ROOT}` 指向此目錄 |

187| `data/<plugin-id>/` | plugin 的持久目錄,公開為 `${CLAUDE_PLUGIN_DATA}`。如需如何形成 `<plugin-id>`,請參閱 [路徑變數和持久資料](/docs/zh-TW/plugins/components#path-variables-and-persistent-data)。Claude Code 在 plugin 元件首次使用它時建立它,並在更新中保留它。當您從其最後一個範圍卸載 plugin 時,Claude Code 會刪除它,除非您傳遞 `--keep-data` |187| `data/<plugin-id>/` | plugin 的持久目錄,公開為 `${CLAUDE_PLUGIN_DATA}`。如需如何形成 `<plugin-id>`,請參閱 [路徑變數和持久資料](/docs/zh-TW/plugins/components#path-variables-and-persistent-data)。Claude Code 在 plugin 元件首次使用它時建立它,並在更新中保留它。當您從其最後一個範圍卸載 plugin 時,Claude Code 會刪除它,除非您傳遞 `--keep-data`。如需 `--keep-data` 和其他它保留的情況,請參閱 [plugin 卸載](/docs/zh-TW/plugins/cli-reference#plugin-uninstall) |

188| `marketplaces/<name>/` | 從 GitHub、另一個 Git 主機或 URL 新增的市場的複製或下載。從本地 `file` 或 `directory` 來源新增的市場在此處沒有副本,其 `known_marketplaces.json` 中的 `installLocation` 是您提供的路徑 |188| `marketplaces/<name>/` | 從 GitHub、另一個 Git 主機或 URL 新增的市場的複製或下載。從本地 `file` 或 `directory` 來源新增的市場在此處沒有副本,其 `known_marketplaces.json` 中的 `installLocation` 是您提供的路徑 |

189| `synced/` | Claude Code [從您的 claude.ai 帳戶同步的 plugins](#synced-plugins) |189| `synced/` | Claude Code [從您的 claude.ai 帳戶同步的 plugins](#synced-plugins) |

190| `.trash/` | claude.ai 同步移除的 plugins,例如在您在 claude.ai 上關閉一個或停止同步後 |190| `.trash/` | claude.ai 同步移除的 plugins,例如在您在 claude.ai 上關閉一個或停止同步後 |

Details

116* **`Validation passed with warnings`**:manifest 載入,但驗證器發現需要修正的內容,例如 Claude Code 移除的未知頂層欄位、不是 kebab-case 的 `name`,或缺少 `version`、`description` 或 `author`。傳遞 `--strict` 以在 CI 中將警告轉換為失敗116* **`Validation passed with warnings`**:manifest 載入,但驗證器發現需要修正的內容,例如 Claude Code 移除的未知頂層欄位、不是 kebab-case 的 `name`,或缺少 `version`、`description` 或 `author`。傳遞 `--strict` 以在 CI 中將警告轉換為失敗

117* **`Validation failed`**:manifest 有類型不匹配、缺少或逃逸 plugin 根目錄的路徑,或 `userConfig` 選項、`channels` 項目、`lspServers` 設定或 `monitors` 項目內的未知鍵。Claude Code 在載入 plugin 時報告相同的問題117* **`Validation failed`**:manifest 有類型不匹配、缺少或逃逸 plugin 根目錄的路徑,或 `userConfig` 選項、`channels` 項目、`lspServers` 設定或 `monitors` 項目內的未知鍵。Claude Code 在載入 plugin 時報告相同的問題

118 118 

119該命令也會檢查 plugin 在 `.mcp.json` 中宣告的每個 MCP 伺服器項目、在 [`mcpServers`](#mcpservers) 命名的 `.json` 檔案中,或在 `plugin.json` 中內聯。這些 MCP 檢查需要 Claude Code v2.1.281 或更新版本,並包括:

120 

121* **錯誤**:Claude Code 在載入 plugin 時會捨棄的項目、對 manifest 未宣告的選項的 `${user_config.KEY}` 參考,以及不是有效絕對 URL 的遠端 `url`

122* **警告**:對非迴圈主機的 `http://` 或 `ws://` URL,以及看起來像字面認證的標頭值

123 

119<h2 id="fields">124<h2 id="fields">

120 欄位125 欄位

121</h2>126</h2>


387 包含和存在392 包含和存在

388</h3>393</h3>

389 394 

390每個元件路徑必須解析到 plugin 根目錄內並且必須存在。`claude plugin validate` 不檢查 `outputStyles`、`lspServers`、`monitors` 或 `themes` 路徑,因此這些欄位中的錯誤路徑僅在 plugin 載入時失敗:395每個元件路徑必須解析到 plugin 根目錄內並且必須存在。`claude plugin validate` 檢查每個元件鍵下的路徑:

391 396 

392* **包含**:解析到 plugin 根目錄外的路徑不會載入,`/plugin` **Errors** 標籤顯示 `<component> path escapes plugin directory: <path>`。包含 `..` 的路徑是常見情況,`claude plugin validate` 將其報告為 `Path contains ".." which could be a path traversal attempt`397* **包含**:解析到 plugin 根目錄外的路徑不會載入,`/plugin` **Errors** 標籤顯示 `<component> path escapes plugin directory: <path>`。包含 `..` 的路徑是常見情況,`claude plugin validate` 將其報告為 `Path contains ".." which could be a path traversal attempt`

393* **存在**:不存在的路徑不會載入,`/plugin` **Errors** 標籤顯示 `<component> path not found: <path>`。`claude plugin validate` 將其報告為 `Path not found`398* **存在**:不存在的路徑不會載入,`/plugin` **Errors** 標籤顯示 `<component> path not found: <path>`。`claude plugin validate` 將其報告為 `Path not found`

394 399 

400對於 `outputStyles`、`lspServers`、`monitors` 和 `themes` 路徑,`claude plugin validate` 檢查需要 Claude Code v2.1.283 或更新版本。

401 

395<h3 id="how-each-key-combines-with-its-default-location">402<h3 id="how-each-key-combines-with-its-default-location">

396 每個鍵如何與其預設位置結合403 每個鍵如何與其預設位置結合

397</h3>404</h3>


561 568 

562`${CLAUDE_PLUGIN_ROOT}` 在 plugin 更新時變更,因此不要在那裡寫入狀態。有關根目錄移動的位置和舊目錄何時被清理,請參閱[載入頁面](/docs/zh-TW/plugins/loading)。569`${CLAUDE_PLUGIN_ROOT}` 在 plugin 更新時變更,因此不要在那裡寫入狀態。有關根目錄移動的位置和舊目錄何時被清理,請參閱[載入頁面](/docs/zh-TW/plugins/loading)。

563 570 

564當您從最後安裝 plugin 的地方卸載它時,`${CLAUDE_PLUGIN_DATA}` 目錄會被刪除,除非您傳遞 [`--keep-data`](/docs/zh-TW/plugins/cli-reference)。571當您從最後安裝 plugin 的地方卸載它時,Claude Code 預設會刪除 `${CLAUDE_PLUGIN_DATA}` 目錄。有關 `--keep-data` 和其他保留它的情況,請參閱 [plugin 卸載](/docs/zh-TW/plugins/cli-reference#plugin-uninstall)。

565 572 

566<h3 id="where-each-variable-resolves">573<h3 id="where-each-variable-resolves">

567 每個變數解析的位置574 每個變數解析的位置


589* **Hook 命令**:使用[exec 形式](/docs/zh-TW/hooks#exec-form-and-shell-form)與 `args` 以便每個路徑是一個沒有引用的引數596* **Hook 命令**:使用[exec 形式](/docs/zh-TW/hooks#exec-form-and-shell-form)與 `args` 以便每個路徑是一個沒有引用的引數

590* **Shell 形式 hooks 和 monitor 命令**:用雙引號包裝變數,以便帶有空格的路徑保持為一個字597* **Shell 形式 hooks 和 monitor 命令**:用雙引號包裝變數,以便帶有空格的路徑保持為一個字

591 598 

599如果您在 hooks 檔案中的 shell 形式命令中將這些變數之一留在引號外,`claude plugin validate` 會發出警告,除非 hook 將 [`shell`](/docs/zh-TW/hooks#command-hook-fields) 設定為 `"powershell"`。

600 

592此 shell 形式 hook 執行與 plugin 捆綁的指令碼:601此 shell 形式 hook 執行與 plugin 捆綁的指令碼:

593 602 

594```json theme={null}603```json theme={null}


629| Workflows | `workflows/` | Workflow `.js` 檔案 |638| Workflows | `workflows/` | Workflow `.js` 檔案 |

630| 主題 | `themes/` | 主題 JSON 檔案 |639| 主題 | `themes/` | 主題 JSON 檔案 |

631| Monitors | `monitors/monitors.json` | Monitors 陣列 |640| Monitors | `monitors/monitors.json` | Monitors 陣列 |

632| 可執行檔 | `bin/` | 此處的檔案在 plugin 啟用時位於 Bash 工具的 `PATH` 上,因此 Claude 將它們作為裸命令執行。claude.ai 和 Cowork 不安裝具有此目錄的 plugin,包括您[通過 claude.ai 組織設定分發](/docs/zh-TW/plugins/host-marketplace#distribute-through-organization-settings)的 plugin |641| 可執行檔 | `bin/` | 此處的檔案在 plugin 啟用時位於 Bash 工具的 `PATH` 上,因此 Claude 將它們作為裸命令執行。claude.ai 和 Cowork 不安裝具有此目錄的 plugin,包括您[通過 claude.ai 組織設定分發](https://claude.com/docs/plugins/org-sync#keep-executables-out-of-the-top-level-bin-directory)的 plugin |

633| 設定 | `settings.json` | 在 plugin 啟用時應用的 `agent` 和 `subagentStatusLine` 預設值 |642| 設定 | `settings.json` | 在 plugin 啟用時應用的 `agent` 和 `subagentStatusLine` 預設值 |

634 643 

635使用每個預設位置的 plugin,加上其 hooks 呼叫的 `scripts/` 資料夾,配置如下:644使用每個預設位置的 plugin,加上其 hooks 呼叫的 `scripts/` 資料夾,配置如下:

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# Marketplace 參考

6 

7> marketplace.json 欄位、外掛程式項目和外掛程式與 marketplace 來源物件的完整參考,包括每個欄位的有效位置。

8 

9`marketplace.json` 是定義外掛程式 marketplace 的檔案。它包含 marketplace 的名稱、其擁有者,以及每個外掛程式的一個項目。每個項目的外掛程式來源說明 Claude Code 從何處擷取該外掛程式。

10 

11marketplace 來源是一個單獨的物件,說明 Claude Code 從何處擷取 marketplace 檔案本身。您在設定中寫入一個,或當您執行 `claude plugin marketplace add` 時 Claude Code 會建立一個。

12 

13此參考適用於需要確切欄位名稱或值的 marketplace 維護者,以及需要知道哪些 `source` 值在 [`extraKnownMarketplaces`](/docs/zh-TW/settings-reference#extraknownmarketplaces)、[`strictKnownMarketplaces`](/docs/zh-TW/settings-reference#strictknownmarketplaces) 和 [`blockedMarketplaces`](/docs/zh-TW/plugins/org#restrict-what-users-can-install) 中有效的管理員。

14 

15<Note>

16 這些情況在其他頁面上涵蓋:

17 

18 * **建立或託管 marketplace**:請參閱 [Create a marketplace](/docs/zh-TW/plugins/create-marketplace) 和 [Host and maintain a marketplace](/docs/zh-TW/plugins/host-marketplace)

19 * **允許清單和封鎖清單配方**:請參閱 [Manage plugins for your organization](/docs/zh-TW/plugins/org)

20</Note>

21 

22尋找您正在寫入或讀取的部分:

23 

24* **marketplace 檔案**:[Top-level fields](#top-level-fields) 和 [Plugin entries](#plugin-entries)

25* **項目的 `source`**:[Plugin sources](#plugin-sources)

26* **設定中的 `source` 物件**:[Marketplace sources](#marketplace-sources)

27* **來自 [`claude plugin validate <path>`](/docs/zh-TW/plugins/cli-reference) 的輸出**:[Validation messages](#validation-messages),將每個訊息對應到它命名的欄位

28 

29<h2 id="marketplace-file">

30 Marketplace 檔案

31</h2>

32 

33在您的 marketplace 目錄中的 `.claude-plugin/marketplace.json` 處儲存 marketplace 檔案。如果您將檔案保存在存放庫中的其他位置,使用者必須在 [`extraKnownMarketplaces`](/docs/zh-TW/settings-reference#extraknownmarketplaces) 中宣告 marketplace,並在其來源上設定 `path`,因為 `claude plugin marketplace add` 沒有此選項。

34 

35包含 `.claude-plugin/` 的目錄稱為 marketplace 根目錄,每個相對外掛程式來源都從它解析,而不是從 `.claude-plugin/`。

36 

37每個使用者每個 `name` 註冊一個 marketplace,因此使用者一次不能有兩個同名的已註冊 marketplace。

38 

39Claude Code 會忽略未知的頂層鍵或外掛程式項目鍵,而不是拒絕它,因此拼寫錯誤會無聲地載入。`claude plugin validate` 將每個未知鍵報告為警告。

40 

41<h3 id="reserved-names">

42 保留名稱

43</h3>

44 

45您不能為您的 marketplace 指定以下任何名稱:

46 

47* **官方 marketplace 名稱**:`claude-code-marketplace`、`claude-code-plugins`、`claude-plugins-official`、`anthropic-marketplace`、`anthropic-plugins`、`agent-skills`、`anthropic-agent-skills`、`life-sciences`、`knowledge-work-plugins`、`claude-for-legal`、`claude-for-financial-services`、`financial-services-plugins`、`first-party-plugins` 和 `claude-tag-plugins`。除非 marketplace 來自 `github.com/anthropics/` 下的 `github` 或 `git` [marketplace 來源](#marketplace-sources),否則保留。

48* **社群 marketplace 名稱**:`claude-community`、`claude-plugins-community` 和 `healthcare`。在與官方名稱相同的規則下保留。

49* **外掛程式目錄名稱**:`anthropic-plugin-directory` 和 `claude-plugin-directory`。在與官方名稱相同的規則下保留。

50* **冒充官方 marketplace 的名稱**:名稱如 `official-claude-plugins` 或 `claude-plugins-v2`,以及任何包含非 ASCII 字元的名稱。錯誤是 `Marketplace name impersonates an official Anthropic/Claude marketplace`。名稱中的控制或雙向格式化字元也會報告 `Marketplace name cannot contain control or bidirectional-formatting characters`。已在此類名稱下註冊的 marketplace 停止載入,連同其外掛程式。

51* <span id="reserved-name-spellings" />**保留名稱的另一種拼寫**:與保留名稱的拼寫不同,只是尾部有點,或用下劃線以外的符號代替連字號,因此 `claude.code.plugins` 計為 `claude-code-plugins`。`claude plugin validate` 接受此類名稱;新增 marketplace 失敗,錯誤為 [`is another spelling of "<reserved>", a reserved marketplace name`](/docs/zh-TW/errors#marketplace-name-is-another-spelling-of-a-reserved-name),而已在其中一個下註冊的 marketplace 停止載入。此檢查需要 Claude Code v2.1.280 或更新版本。

52* **Claude Code 用於不來自 marketplace 的外掛程式的名稱**:`inline` 用於使用 [`--plugin-dir`](/docs/zh-TW/cli-reference) 載入的外掛程式,`builtin` 用於內建外掛程式,`skills-dir` 用於從 [`.claude/skills/`](/docs/zh-TW/skills) 自動載入的外掛程式,`synced` 用於從您的 claude.ai 帳戶同步的外掛程式。`claude-plugin-test` 也被保留。`skills-dir` 也在 `strictKnownMarketplaces` 和 `blockedMarketplaces` 中顯示為 `{"source": "skills-dir"}`,在 [Source values valid only in policy lists](#source-values-valid-only-in-policy-lists) 下描述。

53* **`npm`、`pip`、`uv`、`cargo`、`github` 和 `gh`**:以任何大小寫保留。此檢查需要 Claude Code v2.1.275 或更新版本。

54* **以 `claudeai-` 開頭的名稱**:為託管在 claude.ai 上的 marketplace 保留。`claude plugin marketplace add` 拒絕任何其他使用一個的 marketplace,錯誤為 `Cannot add marketplace "<name>": names starting with "claudeai-" are reserved for marketplaces hosted on claude.ai`。

55 

56當已註冊的 marketplace 因其名稱模仿官方名稱而停止載入時,`claude plugin list` 和 `/plugin` 報告 `Claude Code refuses the marketplace name "<name>"`。該訊息告訴您移除 marketplace。移除它也會解除安裝其外掛程式並刪除其已儲存的資料。此具名拒絕訊息需要 Claude Code v2.1.282 或更新版本。

57 

58<h2 id="top-level-fields">

59 頂層欄位

60</h2>

61 

62該表列出 Claude Code 從 `marketplace.json` 讀取的每個鍵。`name`、`owner` 和 `plugins` 是必需的。

63 

64| 欄位 | 類型 | 描述 |

65| :- | :- | :- |

66| `name` | 字串 | Marketplace 識別碼。沒有空格、控制字元或雙向格式化字元,沒有 `/` 或 `\`,沒有 `..`,不是 `.`。請參閱 [Reserved names](#reserved-names)。使用者在安裝外掛程式時在 `@` 後輸入它 |

67| `owner` | 物件 | 維護者資訊。`name` 是必需的;`email` 和 `url` 是可選的 |

68| `plugins` | 陣列 | [Plugin entries](#plugin-entries)。每個項目都單獨驗證,因此一個無效項目不會導致 marketplace 失敗 |

69| `$schema` | 字串 | JSON Schema URL 用於編輯器自動完成。在載入時忽略 |

70| `description` | 字串 | 向使用者顯示的 Marketplace 描述。`claude plugin validate` 在缺少時發出警告 |

71| `version` | 字串 | Marketplace 資訊清單版本 |

72| `metadata.description`、`metadata.version` | 字串 | `description` 和 `version` 的替代位置 |

73| `metadata.pluginRoot` | 字串 | 裸外掛程式來源名稱解析的目錄。請參閱 [Relative path plugin source](#relative-path-plugin-source)。需要 Claude Code v2.1.239 或更新版本 |

74| `forceRemoveDeletedPlugins` | 布林值 | 當 `true` 時,您從 `plugins` 中移除的外掛程式會在使用者的機器上解除安裝。請參閱 [Host and maintain a marketplace](/docs/zh-TW/plugins/host-marketplace) |

75| `allowCrossMarketplaceDependenciesOn` | 字串陣列 | 其外掛程式可能被安裝為此 marketplace 外掛程式依賴項的 Marketplace 名稱。當您安裝外掛程式時,只有該外掛程式自己的 marketplace 中的清單適用於其整個依賴鏈。請參閱 [Plugin dependencies](/docs/zh-TW/plugins/dependencies) |

76| `renames` | 物件 | 從前一個外掛程式 `name` 到其目前名稱的對應,或對於您移除的外掛程式為 `null`。需要 Claude Code v2.1.193 或更新版本。請參閱 [Host and maintain a marketplace](/docs/zh-TW/plugins/host-marketplace) |

77 

78<h2 id="plugin-entries">

79 外掛程式項目

80</h2>

81 

82`marketplace.json` 的頂層 `plugins` 陣列中的每個物件命名一個外掛程式並說明從何處擷取它。`name` 和 `source` 是必需的。

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)。

85 

86該表列出項目自己的欄位和資訊清單欄位,其含義在項目中改變。

87 

88| 欄位 | 類型 | 描述 |

89| :- | :- | :- |

90| `name` | 字串 | 外掛程式識別碼,沒有空格、控制字元或雙向格式化字元。使用者在安裝時在 `@` 前輸入它,即使外掛程式自己的 `plugin.json` 設定了不同的 `name` |

91| `source` | 字串或物件 | 從何處擷取外掛程式。請參閱 [Plugin sources](#plugin-sources) |

92| `description` | 字串 | 在 [`/plugin`](/docs/zh-TW/plugins/install) 清單和詳細資訊中顯示 |

93| `version` | 字串 | 外掛程式的版本字串。當 `plugin.json` 也設定 `version` 時,`plugin.json` 優先,`claude plugin validate` 發出警告。請參閱 [Plugin loading reference](/docs/zh-TW/plugins/loading) |

94| `category` | 字串 | 用於組織目錄的自由格式類別 |

95| `tags` | 字串陣列 | 用於搜尋的自由格式標籤 |

96| `strict` | 布林值 | 預設 `true`。`plugin.json` 是否是外掛程式元件的決定性來源。請參閱 [Strict mode](#strict-mode) |

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) |

99| `defaultEnabled` | 布林值 | 預設 `true`。當使用者未在 [`enabledPlugins`](/docs/zh-TW/settings-reference#enabledplugins) 中設定時,外掛程式是否在啟用時啟動。項目值優先於 `plugin.json` |

100| `displayName` | 字串 | 在 UI 中顯示的人類可讀名稱。當項目和外掛程式的 `plugin.json` 都未設定時,使用者看到外掛程式的 `name` |

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 或更新版本 |

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 

105<h3 id="entry-and-plugin-json">

106 項目如何與 plugin.json 結合

107</h3>

108 

109項目的欄位以不同方式應用於已擷取的外掛程式,該外掛程式有自己的 `.claude-plugin/plugin.json` 和沒有的外掛程式:

110 

111* **沒有 `plugin.json`**:無論 `strict` 如何,項目都是資訊清單。項目中的每個資訊清單欄位都適用,包括 [`mcpServers`、`lspServers`、`userConfig` 和 `channels`](/docs/zh-TW/plugins/manifest-reference)。

112* **`plugin.json` 存在**:`plugin.json` 是資訊清單。[Strict mode](#strict-mode) 決定項目的六個元件欄位 `commands`、`agents`、`skills`、`hooks`、`outputStyles` 和 `themes` 是與其結合還是作為衝突被拒絕。項目 `mcpServers`、`lspServers`、`userConfig` 和 `channels` 不適用。在 `plugin.json` 中宣告它們。

113 

114<h4 id="hooks-in-an-entry">

115 項目中的 Hooks

116</h4>

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` 中。

119 

120<h4 id="display-fields">

121 顯示欄位

122</h4>

123 

124項目和外掛程式自己的 `plugin.json` 都可以設定顯示欄位 `displayName`、`description`、`author`、`homepage`、`repository`、`license` 和 `keywords`。使用者在外掛程式清單和詳細資訊中看到這些值,在安裝前後:

125 

126* 對於您在項目上設定的欄位,使用者看到項目的值,即使 `plugin.json` 設定了不同的值。

127* 對於項目未設定的欄位,使用者看到 `plugin.json` 值。

128 

129在安裝前,Claude Code 只能為具有 [relative-path source](#relative-path-plugin-source) 的項目讀取 `plugin.json`,其外掛程式檔案在 marketplace 內。對於具有任何其他來源類型的項目,使用者在安裝外掛程式之前只看到項目自己的欄位。

130 

131<h3 id="strict-mode">

132 Strict mode

133</h3>

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` 和項目的元件欄位的每個組合。

136 

137| `strict` | `plugin.json` | 項目元件欄位 | 結果 |

138| :- | :- | :- | :- |

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) |

141| `false` | 存在 | 無 | `plugin.json` 是資訊清單,與 `true` 相同 |

142| `false` | 存在 | 一個或多個 | 衝突。外掛程式無法載入,錯誤為 `Plugin <name> has conflicting manifests: both plugin.json and marketplace entry specify components` |

143 

144<h2 id="plugin-sources">

145 Plugin 來源

146</h2>

147 

148Plugin 項目的 `source` 說明 Claude Code 從何處取得該 plugin。它可以是相對路徑字串,或是一個物件,其 `source` 鍵名指定類型,因此項目看起來像 `"source": { "source": "github", "repo": "your-org/formatter" }`。

149 

150下表列出每個 plugin 來源類型及其欄位。

151 

152| 類型 | 欄位 | 備註 |

153| :- | :- | :- |

154| 相對路徑 | 字串本身 | marketplace 內的目錄,從 marketplace 根目錄解析。必須以 `./` 開頭,除非您在 [`metadata.pluginRoot` 下寫入裸名](#relative-path-plugin-source)。`"."` 本身表示根目錄 |

155| `github` | `repo`、`ref`、`sha` | GitHub 儲存庫,格式為 `owner/repo` |

156| `url` | `url`、`ref`、`sha` | 任何 git 儲存庫的 URL |

157| `git-subdir` | `url`、`path`、`ref`、`sha` | git 儲存庫的一個子目錄,使用稀疏部分複製取得 |

158| `npm` | `package`、`version`、`registry` | npm 套件,使用您的 npm 用戶端取得並解包,不執行安裝指令碼 |

159| `archive` | `url`、`sha256` | HTTPS 上的 Zip 檔案。需要 Claude Code v2.1.224 或更新版本 |

160| `command` | `command`、`timeout`、`mode` | 由 Claude Code 在使用者機器上執行的命令列印的目錄。需要 Claude Code v2.1.229 或更新版本 |

161 

162名稱 `url` 和 `github` 也是 [marketplace 來源](#marketplace-sources) 類型,其中 `url` 表示直接連結到 `marketplace.json` 檔案,而非 git 儲存庫。`git` 僅作為 marketplace 來源存在,`npm` 同時作為兩者存在。`git-subdir`、`archive` 和 `command` 僅作為 plugin 來源存在。

163 

164對於 marketplace 儲存庫本身子目錄中的 plugin,使用相對路徑。對於其他儲存庫的子目錄,使用 `git-subdir`。

165 

166`github`、`url` 和 `git-subdir` 來源共享 `ref` 和 `sha` 欄位:

167 

168* **`ref`**:分支或標籤。預設為儲存庫的預設分支。

169* **`sha`**:完整的 40 字元小寫提交 SHA。當您同時設定 `ref` 和 `sha` 時,Claude Code 會檢出 `sha`。在大多數 git 主機上,包括 GitHub、GitLab 和 Bitbucket,這表示即使上游的分支或標籤已被刪除,只要提交仍可從儲存庫到達,安裝就會成功。某些伺服器(例如 AWS CodeCommit)不支援按 SHA 取得提交。在這些伺服器上,`ref` 仍必須存在,且固定的提交必須可從其到達。

170 

171有關每種類型如何取得、快取和版本化的資訊,請參閱 [Plugin 載入參考](/docs/zh-TW/plugins/loading)。

172 

173<h3 id="relative-path-plugin-source">

174 相對路徑 plugin 來源

175</h3>

176 

177路徑從 marketplace 根目錄解析。`./plugins/formatter` 是 `<root>/plugins/formatter`,即使 marketplace 檔案在 `<root>/.claude-plugin/` 中。

178 

179包含 `..` 的路徑會驗證失敗。在 macOS 和 Linux 上,Claude Code 拒絕在前導 `./` 之後任何位置包含反斜線的項目路徑,因此請使用正斜線寫入路徑。

180 

181```json theme={null}

182{ "name": "formatter", "source": "./plugins/formatter" }

183```

184 

185相對路徑僅在 Claude Code 擁有 marketplace 檔案時才會解析,因此請檢查 [marketplace 來源](#marketplace-sources) 類型:

186 

187* **`github`、`git`、`file` 和 `directory`**:Claude Code 擁有 marketplace 檔案。

188* **`url`**:Claude Code 僅取得 `marketplace.json`,因此相對路徑無法解析。為每個 plugin 提供物件來源,例如 `github` 或 `git-subdir`。

189* **`settings`**:相對路徑被直接拒絕。

190 

191<h4 id="bare-names-under-pluginroot">

192 pluginRoot 下的裸名

193</h4>

194 

195裸名是單個目錄名稱,不含 `/`,例如 `"formatter"`。若要寫入裸名而非 `./` 路徑,請將 [`metadata.pluginRoot`](#top-level-fields) 設定為它們解析的目錄。使用 `"pluginRoot": "./plugins"`,`"source": "formatter"` 解析為 `./plugins/formatter`。需要 Claude Code v2.1.239 或更新版本。

196 

197`metadata.pluginRoot` 有以下限制:

198 

199* 它本身必須是 marketplace 內的相對路徑。

200* 它對已以 `./` 開頭的來源無效。

201* 包含 `/` 的來源(例如 `team-a/formatter`)不是裸名,即使設定了 `metadata.pluginRoot` 也仍需要 `./` 前綴。

202 

203<h3 id="github-plugin-source">

204 github plugin 來源

205</h3>

206 

207`repo` 採用 `owner/repo` 格式。`ref` 和 `sha` 是選用的。

208 

209```json theme={null}

210{

211 "name": "formatter",

212 "source": {

213 "source": "github",

214 "repo": "your-org/formatter",

215 "ref": "v2.0.0",

216 "sha": "a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6e7f8a9b0"

217 }

218}

219```

220 

221<h3 id="url-plugin-source">

222 url plugin 來源

223</h3>

224 

225`url` 是完整的 git URL:`https://`、`http://`、`file://` 或 `git@`。不需要 `.git` 後綴,因此 Azure DevOps 和 AWS CodeCommit URL 可以按原樣使用。此類型不採用 `owner/repo` 簡寫。

226 

227```json theme={null}

228{

229 "name": "formatter",

230 "source": {

231 "source": "url",

232 "url": "https://gitlab.example.com/your-group/formatter.git",

233 "ref": "main"

234 }

235}

236```

237 

238<h3 id="git-subdir-plugin-source">

239 git-subdir plugin 來源

240</h3>

241 

242`url` 接受完整的 git URL 或 GitHub `owner/repo` 簡寫。`path` 是保存 plugin 的子目錄,Claude Code 僅下載該子目錄。

243 

244```json theme={null}

245{

246 "name": "formatter",

247 "source": {

248 "source": "git-subdir",

249 "url": "https://github.com/your-org/monorepo.git",

250 "path": "tools/formatter"

251 }

252}

253```

254 

255<h3 id="npm-plugin-source">

256 npm plugin 來源

257</h3>

258 

259`npm` 來源採用以下欄位:

260 

261* `package`:套件名稱,或範圍名稱,例如 `@your-org/formatter`

262* `version`:版本或範圍

263* `registry`:不在預設登錄中的套件的登錄 URL

264 

265Claude Code 使用您的 npm 用戶端取得套件。套件的安裝指令碼(例如 `preinstall` 或 `postinstall`)永遠不會執行,其相依性在取得期間不會安裝。如果套件在其 `package.json` 旁有支援的鎖定檔案,Claude Code 會在單獨的步驟中安裝這些 [Node.js 套件相依性](/docs/zh-TW/plugins/loading#node-js-package-dependencies),同樣禁用指令碼。

266 

267```json theme={null}

268{

269 "name": "formatter",

270 "source": {

271 "source": "npm",

272 "package": "@your-org/formatter",

273 "version": "^2.0.0",

274 "registry": "https://npm.example.com"

275 }

276}

277```

278 

279<h3 id="archive-plugin-source">

280 archive plugin 來源

281</h3>

282 

283`url` 必須使用 `https://`,且不能指向環回、連結本地或雲端中繼資料主機。

284 

285plugin 根目錄可能在 zip 的頂部或下一個目錄。

286 

287`sha256` 是檔案的摘要,為 64 個十六進位字元,大寫或小寫。當您設定它時,Claude Code 拒絕不符合的下載。

288 

289```json theme={null}

290{

291 "name": "formatter",

292 "source": {

293 "source": "archive",

294 "url": "https://artifacts.example.com/formatter-2.0.0.zip",

295 "sha256": "6bfa50e3d2e00c052b46abe51fff89346ac803e45771f76dcf6df1ab74cca5e1"

296 }

297}

298```

299 

300<h3 id="command-plugin-source">

301 command plugin 來源

302</h3>

303 

304當安裝在使用者機器上的工具產生 plugin 目錄時,使用 `command` 來源,例如為使用者選擇的工具鏈呈現其 plugin 的 IDE。Claude Code 在使用者安裝或更新 plugin 時執行命令,並[每個工作階段執行一次](/docs/zh-TW/plugins/loading#when-a-command-source-re-runs),因此使用者無需重新安裝即可獲得工具的變更輸出。

305 

306`command` 來源採用以下欄位:

307 

308* `command`:shell 命令,列印 plugin 目錄的絕對路徑作為一行並退出 0。Claude Code 在執行前向使用者顯示整個字串以供審查。將其寫為可列印的 ASCII,最多 500 個字元,不含四個或更多空格的連續。

309* `timeout`:1 到 600 秒的整數。預設為 60。

310* `mode`:`copy`(預設)或 `link`。請參閱[複製模式和連結模式](#copy-mode-and-link-mode)。

311 

312```json theme={null}

313{

314 "name": "formatter",

315 "source": {

316 "source": "command",

317 "command": "my-tool claude-plugin-path",

318 "timeout": 120

319 }

320}

321```

322 

323有關使用者如何接受命令的資訊,請參閱[從您的 shell 安裝](/docs/zh-TW/plugins/install#install-from-your-shell)。有關您變更命令後使用者看到的內容,請參閱[變更 command 來源的命令](/docs/zh-TW/plugins/host-marketplace#change-the-command-of-a-command-source)。管理員使用 [`disableCommandPluginSources`](/docs/zh-TW/settings-reference#disablecommandpluginsources) 關閉 command 來源。

324 

325<h4 id="what-the-command-must-do">

326 命令必須執行的操作

327</h4>

328 

329編寫命令以符合以下要求:

330 

331* **Shell 和工作目錄**:Claude Code 通過 `sh` 或在 Windows 上通過 `cmd.exe` 從使用者的主目錄執行命令。提供絕對路徑或 `PATH` 上的命令。

332* **輸出**:在 stdout 上列印恰好一行,即 plugin 目錄的絕對路徑,並在 `timeout` 秒內退出 0。

333* **目錄內容**:目錄在命令退出時保存完整的 plugin。路徑可能因執行而異。

334 

335<h4 id="output-that-fails-the-install-or-update">

336 導致安裝或更新失敗的輸出

337</h4>

338 

339當命令退出非零、執行時間超過 `timeout` 或列印除一個絕對路徑以外的任何內容時,安裝或更新失敗。當列印的目錄是以下之一時,它也會失敗:

340 

341* **無 plugin 內容**:列印的目錄在其頂層沒有 plugin 內容,例如 `.claude-plugin/` 目錄或 `skills/`、`commands/`、`agents/` 或 `hooks/` 目錄。

342* **工作階段自己的目錄**:列印的目錄是 Claude Code 啟動的目錄或其父目錄之一。

343* **網路路徑**:在 Windows 上,列印的路徑是 UNC 路徑。

344* **太大而無法複製**:在複製模式中,目錄大於 256 MiB 或有超過 20,000 個項目。

345 

346<h4 id="copy-mode-and-link-mode">

347 複製模式和連結模式

348</h4>

349 

350`mode` 決定 Claude Code 是複製列印的目錄還是就地使用它:

351 

352* **`copy`**:Claude Code 將目錄複製到 plugin 快取中,並從複製檔案的雜湊衍生 [plugin 版本](/docs/zh-TW/plugins/loading#how-claude-code-computes-the-version)。您的工具可以在命令退出後刪除或重寫目錄。產生相同檔案的重新執行計為最新。

353* **`link`**:Claude Code 使用列印目錄的每個頂層項目的連結填充 plugin 的快取項目,並就地載入檔案。不複製任何內容,不雜湊檔案內容,大小限制不適用。將其用於太大而無法複製的目錄,例如呈現的 SDK 匯出。

354 

355連結模式 plugin 有以下要求:

356 

357* **保持目錄就位**:Claude Code 在每次啟動時通過連結載入 plugin,因此列印的目錄必須保持在原位,只要 plugin 保持安裝狀態。

358* **列印不同的路徑以表示新內容**:版本來自列印目錄的真實路徑及其頂層項目,而非其內部的檔案。

359* **保持頂層符號連結在目錄內**:如果頂層項目是指向列印目錄外的符號連結,安裝失敗。

360* **包含 `node_modules`**:Claude Code 跳過連結模式 plugin 的 [Node.js 套件相依性安裝](/docs/zh-TW/plugins/loading#node-js-package-dependencies),因此列印已包含 plugin 需要的套件的目錄。

361* **在目錄內啟動的工作階段**:在列印目錄或其下方任何位置啟動的工作階段不載入 plugin。

362* **不在 Windows 上**:Claude Code 拒絕在 Windows 上安裝連結模式 plugin。在那裡宣告 `"mode": "copy"`。

363 

364<h2 id="marketplace-sources">

365 Marketplace 來源

366</h2>

367 

368marketplace 來源說明 Claude Code 從何處擷取 `marketplace.json`。CLI 在您新增 marketplace 時為您建立一個,您自己在設定中寫入一個:

369 

370* **[`claude plugin marketplace add`](/docs/zh-TW/plugins/cli-reference)**:Claude Code 從您傳遞的字串建立來源。

371* **[`extraKnownMarketplaces`](/docs/zh-TW/settings-reference#extraknownmarketplaces)**:您自己將來源寫為 `source` 物件。

372* **[`strictKnownMarketplaces`](/docs/zh-TW/settings-reference#strictknownmarketplaces) 和 [`blockedMarketplaces`](/docs/zh-TW/plugins/org#restrict-what-users-can-install)**:管理員在這兩個政策清單中寫入來源。`strictKnownMarketplaces` 是允許清單,`blockedMarketplaces` 是封鎖清單。

373 

374類型名稱 `url`、`git` 和 `github` 在 marketplace 來源中的含義與在 [plugin source](#plugin-sources) 中不同:

375 

376| 類型名稱 | 作為 marketplace 來源 | 作為外掛程式來源 |

377| :- | :- | :- |

378| `url` | 直接連結到 `marketplace.json` 檔案,具有欄位 `url`、`headers` 和 `headersHelper` | 要複製的 git 存放庫,具有欄位 `url`、`ref` 和 `sha` |

379| `git` | 要複製的 git 存放庫,具有欄位 `url`、`ref`、`path` 和 `sparsePaths` | 不存在 |

380| `github` | GitHub 存放庫,具有欄位 `repo`、`ref`、`path` 和 `sparsePaths` | GitHub 存放庫,具有欄位 `repo`、`ref` 和 `sha`,沒有 `path` |

381 

382該表列出每個 marketplace 來源類型及其欄位、產生它的 `claude plugin marketplace add` 輸入,以及它在三個設定鍵中的作用。

383 

384| 類型 | 欄位 | `marketplace add` 輸入 | `extraKnownMarketplaces` | `strictKnownMarketplaces` | `blockedMarketplaces` |

385| :- | :- | :- | :- | :- | :- |

386| `url` | `url`、`headers`、`headersHelper` | 不匹配 git 形式的 `http://` 或 `https://` URL | 載入 | 允許相同的 URL | 封鎖相同的 URL |

387| `github` | `repo`、`ref`、`path`、`sparsePaths` | `owner/repo`、`owner/repo@ref` 或 `owner/repo#ref` | 載入 | 允許相同的 `repo`、`ref` 和 `path`。`repo` 可能是 `owner/*` | 封鎖相同的,以及到相同存放庫的 `git` URL |

388| `git` | `url`、`ref`、`path`、`sparsePaths` | `user@host:path` URL,或以 `.git` 結尾、包含 `/_git/` 或命名 github.com 或 gitlab.com 存放庫的 `https://` URL。`#ref` 固定 ref | 載入 | 允許相同的 URL、`ref` 和 `path` | 封鎖相同的,以及相同 github.com 存放庫的其他拼寫 |

389| `npm` | `package` | 未產生 | 無法載入:`NPM marketplace sources not yet implemented` | 解析但不匹配任何內容,因為沒有任何內容註冊 `npm` marketplace | 解析但不匹配任何內容 |

390| `file` | `path` | `.json` 檔案的路徑 | 載入 | 允許相同的路徑 | 封鎖相同的路徑 |

391| `directory` | `path` | 目錄的路徑 | 載入 | 允許相同的路徑 | 封鎖相同的路徑 |

392| `settings` | `name`、`plugins`、`owner` | 未產生 | 載入 | 允許具有相同 `name` 和相同 `plugins` 的項目 | 封鎖相同的 `name` |

393| `skills-dir` | 無 | 未產生 | 無法載入:`Unsupported marketplace source type` | 保持 [skills-directory plugins](/docs/zh-TW/plugins/org#keep-skills-directory-plugins-loading) 在設定允許清單時載入。請參閱 [Source values valid only in policy lists](#source-values-valid-only-in-policy-lists) | 停止 skills-directory 外掛程式載入 |

394| `hostPattern` | `hostPattern` | 未產生 | 無法載入:`Unsupported marketplace source type` | 允許主機匹配的 `github`、`git` 和 `url` 來源 | 封鎖這些來源 |

395| `pathPattern` | `pathPattern` | 未產生 | 無法載入:`Unsupported marketplace source type` | 允許 `path` 匹配的 `file` 和 `directory` 來源 | 封鎖這些來源 |

396 

397<h3 id="fields-by-type">

398 按類型的欄位

399</h3>

400 

401該表列出每個 marketplace 來源欄位,該欄位具有預設值、約束或特定於其類型的含義。

402 

403| 欄位 | 類型 | 描述 |

404| :- | :- | :- |

405| `url` | `url` | 連結到 `marketplace.json` 檔案。Claude Code 僅下載該檔案,因此 marketplace 的外掛程式無法使用 [relative-path sources](#relative-path-plugin-source) |

406| `url` | `git` | 要複製的 git 存放庫 |

407| `headers` | `url` | Claude Code 使用擷取發送的 HTTP 標頭對應,用於已驗證的主機 |

408| `headersHelper` | `url` | 列印標頭的命令,其值太短暫而無法在 `headers` 中列出。需要 Claude Code v2.1.238 或更新版本。請參閱 [Authenticate archive downloads](/docs/zh-TW/plugins/host-marketplace#authenticate-archive-downloads) |

409| `repo` | `github` | 在 `marketplace add` 和 `extraKnownMarketplaces` 中,`repo` 必須命名一個存放庫。`marketplace add` 拒絕 `owner/*` 作為無效的 `owner/repo` 簡寫;在 `extraKnownMarketplaces` 中 Claude Code 按字面意思取用,複製失敗 |

410| `ref` | `github`、`git` | 分支或標籤。預設為存放庫的預設分支 |

411| `path` | `github`、`git` | marketplace 檔案在存放庫內的路徑。預設為 `.claude-plugin/marketplace.json` |

412| `path` | `file` | marketplace 檔案本身。Claude Code 就地讀取它,並將上面兩個級別的目錄作為 marketplace 根目錄,因此將檔案保存在 `<root>/.claude-plugin/marketplace.json` |

413| `path` | `directory` | marketplace 根目錄,包含 `.claude-plugin/marketplace.json` 的目錄 |

414| `sparsePaths` | `github`、`git` | 用於稀疏簽出的目錄陣列,例如 `[".claude-plugin", "plugins"]`。`claude plugin marketplace add --sparse` 設定它 |

415| `skipLfs` | `github`、`git` | 接受且無效果。請參閱 [Keep plugin files out of Git LFS](/docs/zh-TW/plugins/host-marketplace#keep-plugin-files-out-of-git-lfs) |

416| `name` | `settings` | 必須等於 `extraKnownMarketplaces` 鍵,不能是 [reserved name](#reserved-names) |

417| `plugins` | `settings` | 內聯目錄,沒有託管檔案。每個項目採用 `name`、`source`、`description`、`version`、`strict`、`headers` 和 `headersHelper`。將每個項目的 `source` 寫為物件類型,因為相對路徑沒有要解析的存放庫 |

418 

419<h3 id="source-values-valid-only-in-policy-lists">

420 僅在政策清單中有效的來源值

421</h3>

422 

423`hostPattern`、`pathPattern`、`skills-dir` 和 `repo` 的 `owner/*` 形式僅在兩個政策清單中有效,`strictKnownMarketplaces` 和 `blockedMarketplaces`:

424 

425* **`hostPattern` 和 `pathPattern`**:Claude Code 在擷取前針對來源測試的正規表達式。

426* **`skills-dir`**:不是來源。如果您根本設定 `strictKnownMarketplaces`,[skills-directory plugins](/docs/zh-TW/plugins/org#keep-skills-directory-plugins-loading) 停止載入,直到您將 `{"source": "skills-dir"}` 新增到該清單。

427* **`owner/*`**:作為 `github` `repo` 值,匹配恰好該 GitHub 擁有者下的每個存放庫。需要 Claude Code v2.1.223 或更新版本。

428 

429有關匹配順序、確切 `ref` 語義和配方,請參閱 [Manage plugins for your organization](/docs/zh-TW/plugins/org)。

430 

431<h3 id="source-objects-in-settings">

432 設定中的來源物件

433</h3>

434 

435`extraKnownMarketplaces` 值是從 marketplace 名稱到具有 `source` 的物件的對應。此項目從其 `main` 分支的 git 存放庫註冊 marketplace:

436 

437```json theme={null}

438{

439 "extraKnownMarketplaces": {

440 "your-marketplace": {

441 "source": {

442 "source": "git",

443 "url": "https://git.example.com/your-org/your-marketplace.git",

444 "ref": "main"

445 }

446 }

447 }

448}

449```

450 

451`strictKnownMarketplaces` 和 `blockedMarketplaces` 是來源物件的陣列。此允許清單允許一個 GitHub 擁有者和一個內部主機:

452 

453```json theme={null}

454{

455 "strictKnownMarketplaces": [

456 { "source": "github", "repo": "your-org/*" },

457 { "source": "hostPattern", "hostPattern": "^git\\.example\\.com$" }

458 ]

459}

460```

461 

462<h2 id="validation-messages">

463 驗證訊息

464</h2>

465 

466`claude plugin validate <path>` 接受 marketplace 根目錄或 marketplace 檔案本身。它會列印錯誤和警告。如需結束代碼和 `--strict`,請參閱 [plugin validate](/docs/zh-TW/plugins/cli-reference#plugin-validate)。

467 

468訊息會以索引命名外掛程式項目,寫作 `plugins.1.source` 或 `plugins[1].source`。

469 

470以項目索引和 `plugin.json →` 為前綴的訊息,例如 `plugins[2] plugin.json →`,是關於該外掛程式自身的檔案。[`claude plugin validate` 報告錯誤](/docs/zh-TW/plugins/troubleshooting#claude-plugin-validate-reports-errors)列出這些訊息及其修正方式。

471 

472提及 Claude Desktop 旗標名稱的警告,這些名稱 Claude Code 接受但 Claude Desktop 拒絕,因為 Claude Desktop 的名稱規則更嚴格。

473 

474下表將 marketplace 層級的訊息對應到各自相關的欄位。

475 

476| 訊息 | 層級 | 欄位 |

477| :- | :- | :- |

478| `Marketplace must have a name` | 錯誤 | `name` 為空 |

479| `Marketplace name cannot contain spaces. Use kebab-case (e.g., "my-marketplace")` | 錯誤 | `name` |

480| `Marketplace name cannot contain path separators (/ or \), ".." sequences, or be "."` | 錯誤 | `name` |

481| `Marketplace name impersonates an official Anthropic/Claude marketplace` | 錯誤 | `name`。請參閱[保留名稱](#reserved-names) |

482| `Marketplace name cannot contain control or bidirectional-formatting characters` | 錯誤 | `name` 包含控制字元(例如逸出或換行符)或 Unicode 雙向格式化字元 |

483| `Marketplace name "inline" is reserved for --plugin-dir session plugins`, and the `builtin`, `skills-dir`, `synced`, `claude-plugin-test`, `npm`, `pip`, `uv`, `cargo`, `github`, and `gh` variants | 錯誤 | `name` |

484| `Author name cannot be empty` | 錯誤 | `owner.name` |

485| `Plugin name cannot contain spaces. Use kebab-case (e.g., "my-plugin")` | 錯誤 | `plugins[i].name` |

486| `Plugin name cannot contain control or bidirectional-formatting characters` | 錯誤 | `plugins[i].name` |

487| `Duplicate plugin name "x" found in marketplace` | 錯誤 | 兩個項目共享一個 `name` |

488| `plugins.i.source: Invalid input` | 錯誤 | 該項目的 `source` 不符合任何類型。請參閱[來源上的無效輸入](#invalid-input-on-a-source) |

489| `plugins[i].source: Path contains "..": <path>` | 錯誤 | 逃逸 marketplace 根目錄的相對 `source` |

490| `source.source: 'unsupported' is a parse-time placeholder and cannot be authored` | 錯誤 | `plugins[i].source` |

491| `Plugin "x" sets headersHelper but is not "strict": false` | 錯誤 | `plugins[i].headersHelper`,在 `archive` 項目上 |

492| `chain does not resolve (<reason>) — target must be a name in plugins[], a key in renames, or null` | 錯誤 | `renames.<old>` |

493| `target "x" is not a valid plugin name (PluginIdSchema)` | 錯誤 | `renames.<old>` |

494| `Unknown field 'x'. Claude Code ignores it at load time.` | 警告 | 頂層、`metadata` 下、項目中或項目 `relevance` 下的命名鍵 |

495| `Marketplace has no plugins defined` | 警告 | `plugins` 為空 |

496| `Plugin "x" sets headers/headersHelper, which only apply to "archive" sources; they have no effect on this entry.` | 警告 | `plugins[i].headers` 或 `plugins[i].headersHelper`,在 `source` 不是 `archive` 的項目上 |

497| `Plugin "x" fetches its archive with a headersHelper but sets no sha256 pin` | 警告 | `plugins[i].source.sha256` |

498| `Header "x" is a request-routing/identity header that catalog entries may not set; Claude Code drops it at download time.` | 警告 | `plugins[i].headers.<name>` |

499| `Local source "x" is or traverses a symlink, so <path> was not read` | 警告 | `plugins[i].source` |

500| `No marketplace description provided. Adding a description helps users understand what this marketplace offers` | 警告 | `description` |

501| `Entry declares version "x" but <path>/plugin.json says "y". At install time, plugin.json wins` | 警告 | `plugins[i].version`,在相對路徑項目上 |

502| `'relevance' must be an object containing topic and signals; got <type>. It will be ignored at load time.` | 警告 | `plugins[i].relevance` |

503| `'metadata' must be a free-form object; got <type>. It will be ignored at load time.` | 警告 | `plugins[i].metadata` |

504| `'experimental' must be an object containing component declarations; got <type>. It will be ignored at load time.` | 警告 | `plugins[i].experimental` |

505| `Marketplace name "x" is reserved in Claude Desktop` | 警告 | `name` 是 `org`、`org-provisioned` 或 `unknown`。Claude Desktop 拒絕 marketplace |

506| `Marketplace name "x" is not accepted by Claude Desktop (letters, digits, ".", "_", "-"; must start alphanumeric; max 128 chars)` | 警告 | `name`。Claude Desktop 拒絕 marketplace |

507| `Plugin name "x" is not accepted by Claude Desktop (letters, digits, ".", "_", "-"; must start alphanumeric; max 128 chars)` | 警告 | `plugins[i].name`。Claude Desktop 捨棄該項目 |

508 

509<h3 id="invalid-input-on-a-source">

510 來源上的無效輸入

511</h3>

512 

513`source` 上的 `Invalid input` 表示該物件不符合任何來源類型。檢查這些原因:

514 

515* 不以 `./` 開頭的相對路徑,除了 `"."` 或 [bare name](#relative-path-plugin-source)

516* 包含 `..` 的 `npm` `package`

517* 不是[外掛程式來源](#plugin-sources)之一的 `source` 類型

518* 已知類型但缺少必需欄位或類型錯誤,例如沒有 `repo` 的 `github`

519 

520<h3 id="failures-that-validation-doesn’t-catch">

521 驗證未捕捉的失敗

522</h3>

523 

524`claude plugin validate` 不會報告每個失敗。寫成檔案路徑或陣列的項目 `hooks` 通過驗證,錯誤僅在外掛程式載入時出現,如[項目中的 Hooks](#hooks-in-an-entry) 所述。擷取 `source` 的錯誤也僅在安裝後出現,不在驗證中。

525 

526[`claude plugin list`](/docs/zh-TW/plugins/cli-reference) 顯示載入失敗的外掛程式及其錯誤,[疑難排解外掛程式](/docs/zh-TW/plugins/troubleshooting)涵蓋載入時間字串。

527 

528<h2 id="next-steps">

529 後續步驟

530</h2>

531 

532* [Create a marketplace](/docs/zh-TW/plugins/create-marketplace):從這些欄位建立 marketplace 並在本地安裝

533* [Host and maintain a marketplace](/docs/zh-TW/plugins/host-marketplace):將檔案放在何處以及使用者如何接收更改

534* [Plugin manifest reference](/docs/zh-TW/plugins/manifest-reference):項目可以覆蓋的 `plugin.json` 欄位

535* [Manage plugins for your organization](/docs/zh-TW/plugins/org):使用這些來源值的允許清單和封鎖清單配方

Details

96* **他們是您可以詢問的隊友**:每個使用者自己的 Claude Code 在四個地方向他們顯示他們是否仍在使用外掛程式:[`/plugin` 面板](#not-used-recently-in-/plugin)、[`/skill-doctor`](#find-skills-that-never-run)、[`/doctor`](#unused-plugins-in-/doctor) 和 [`/usage`](#usage-share-in-/usage)。所有四個都是使用者在自己機器上的工作階段中在 Claude Code 提示符處執行的命令。96* **他們是您可以詢問的隊友**:每個使用者自己的 Claude Code 在四個地方向他們顯示他們是否仍在使用外掛程式:[`/plugin` 面板](#not-used-recently-in-/plugin)、[`/skill-doctor`](#find-skills-that-never-run)、[`/doctor`](#unused-plugins-in-/doctor) 和 [`/usage`](#usage-share-in-/usage)。所有四個都是使用者在自己機器上的工作階段中在 Claude Code 提示符處執行的命令。

97* **都不是**:您沒有來自 Claude Code 的該外掛程式的使用信號。97* **都不是**:您沒有來自 Claude Code 的該外掛程式的使用信號。

98 98 

99如需了解 Anthropic 目錄中列出的外掛程式的使用情況,請參閱 claude.com 上的[追蹤已發佈的外掛程式使用情況](https://claude.com/docs/connectors/building/after-publishing#track-published-plugin-usage)。

100 

99<h3 id="not-used-recently-in-/plugin">101<h3 id="not-used-recently-in-/plugin">

100 `/plugin` 中最近未使用102 `/plugin` 中最近未使用

101</h3>103</h3>

plugins/org.md +2 −1

Details

14 這些情況涵蓋在其他頁面上:14 這些情況涵蓋在其他頁面上:

15 15 

16 * **為自己安裝外掛程式**:從[安裝外掛程式](/docs/zh-TW/plugins/install)開始16 * **為自己安裝外掛程式**:從[安裝外掛程式](/docs/zh-TW/plugins/install)開始

17 * **控制成員在 claude.ai 和 Cowork 中可以使用哪些外掛程式**:請參閱說明中心中的[為您的組織管理外掛程式](https://support.claude.com/en/articles/13837433)17 * **控制成員在 claude.ai 和 Cowork 中可以使用哪些外掛程式**:請參閱[為您的組織管理外掛程式](https://claude.com/docs/plugins/admin)(位於 claude.com)

18 * **同時將一個外掛程式推出到 claude.ai、Cowork 和 Claude Code**:請參閱[選擇推出路線](https://claude.com/docs/plugins/org-rollout#choose-a-rollout-route)(位於 claude.com)

18 * **claude.ai 管理設定中的外掛程式頁面**:[**組織設定 > 外掛程式與技能**](https://claude.ai/admin-settings/skills?tab=inventory)為成員的 claude.ai 帳戶開啟外掛程式,這些外掛程式作為[同步外掛程式](/docs/zh-TW/plugins/loading#synced-plugins)到達 Claude Code。它不設定此頁面上的任何金鑰19 * **claude.ai 管理設定中的外掛程式頁面**:[**組織設定 > 外掛程式與技能**](https://claude.ai/admin-settings/skills?tab=inventory)為成員的 claude.ai 帳戶開啟外掛程式,這些外掛程式作為[同步外掛程式](/docs/zh-TW/plugins/loading#synced-plugins)到達 Claude Code。它不設定此頁面上的任何金鑰

19</Note>20</Note>

20 21 

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.ai 聊天或 Cowork 而不是 Claude Code,請參閱[claude.ai 和 Cowork 中的 Plugins](https://claude.com/docs/plugins/overview)。12 如果以下任一項描述您的情況,請改為在 claude.com 上開始:

13 

14 * **您使用 claude.ai 聊天或 Cowork,而不是 Claude Code**:請參閱 [claude.ai 和 Cowork 中的 Plugins](https://claude.com/docs/plugins/overview)

15 * **您建立了 MCP 伺服器,並希望將其納入 Anthropic 的目錄**:請參閱 [發佈到目錄](https://claude.com/docs/directory/publish)

13</Note>16</Note>

14 17 

15若要立即試用 plugin,請在 Claude Code 終端機工作階段中執行 `/plugin`,並從 **Discover** 標籤安裝一個,該標籤列出來自 Anthropic 官方 marketplace 和您已新增的任何 marketplace 的 plugins。從那裡:18若要立即試用 plugin,請在 Claude Code 終端機工作階段中執行 `/plugin`,並從 **Discover** 標籤安裝一個,該標籤列出來自 Anthropic 官方 marketplace 和您已新增的任何 marketplace 的 plugins。從那裡:


122雲端工作階段(包括瀏覽器中 claude.ai/code 的工作階段)不會載入您本機設定中的 plugins。如需終端機、VS Code 和桌面應用程式中的安裝步驟,以及雲端工作階段載入的內容,請參閱[安裝 plugin](/docs/zh-TW/plugins/install#install-a-plugin)。125雲端工作階段(包括瀏覽器中 claude.ai/code 的工作階段)不會載入您本機設定中的 plugins。如需終端機、VS Code 和桌面應用程式中的安裝步驟,以及雲端工作階段載入的內容,請參閱[安裝 plugin](/docs/zh-TW/plugins/install#install-a-plugin)。

123 126 

124<Note>127<Note>

125 相同的 plugin 格式也安裝在 claude.ai 和 Cowork 上,其中載入了不同的元件集。對於這些介面,請參閱 claude.com 上的 [claude.ai 和 Cowork 中的 Plugins](https://claude.com/docs/plugins/overview)。128 相同的 plugin 格式也安裝在 claude.ai 和 Cowork 上,其中載入了不同的元件集。對於這些介面,請參閱 claude.com 上的 [claude.ai 和 Cowork 中的 Plugins](https://claude.com/docs/plugins/overview) 及其[元件支援表](https://claude.com/docs/plugins/platform-support#compare-component-support-by-app)。

126</Note>129</Note>

127 130 

128<h2 id="next-steps">131<h2 id="next-steps">


135 138 

136安裝或建立 plugin 後,這些頁面涵蓋接下來的內容:139安裝或建立 plugin 後,這些頁面涵蓋接下來的內容:

137 140 

138* **分享您建立的內容**:[發佈和分發 plugin](/docs/zh-TW/plugins/publish)141* **分享您建立的內容**:[發佈和分發 plugin](/docs/zh-TW/plugins/publish),透過您自己的 marketplace 或 [Anthropic 的目錄](/docs/zh-TW/plugins/publish#submit-to-anthropics-directory)

139* **檢查它是否有效且被使用**:[使用 evals 測試 plugins](/docs/zh-TW/plugin-evals) 和[測量 plugin 成本和使用情況](/docs/zh-TW/plugins/measure)142* **檢查它是否有效且被使用**:[使用 evals 測試 plugins](/docs/zh-TW/plugin-evals) 和[測量 plugin 成本和使用情況](/docs/zh-TW/plugins/measure)

140* **為您的團隊執行 marketplace**:[建立 marketplace](/docs/zh-TW/plugins/create-marketplace),然後[託管和維護 marketplace](/docs/zh-TW/plugins/host-marketplace)143* **為您的團隊執行 marketplace**:[建立 marketplace](/docs/zh-TW/plugins/create-marketplace),然後[託管和維護 marketplace](/docs/zh-TW/plugins/host-marketplace)

141* **為組織設定 plugin 原則**:[為您的組織管理 plugins](/docs/zh-TW/plugins/org)144* **為組織設定 plugin 原則**:[為您的組織管理 plugins](/docs/zh-TW/plugins/org)

plugins/publish.md +19 −16

Details

29| :- | :- | :- | :- |29| :- | :- | :- | :- |

30| [無市集](#share-a-plugin-without-a-marketplace) | 您發送外掛程式資料夾或其 `.zip` 的人 | 外掛程式的資料夾 | 無。他們載入您發送的副本 |30| [無市集](#share-a-plugin-without-a-marketplace) | 您發送外掛程式資料夾或其 `.zip` 的人 | 外掛程式的資料夾 | 無。他們載入您發送的副本 |

31| [您自己的市集](#publish-through-your-own-marketplace) | 任何可以存取存放庫的人,可以是您的團隊可以複製的私人存放庫 | 包含列出您的外掛程式的 `.claude-plugin/marketplace.json` 的 git 存放庫或其他主機 | 關閉 |31| [您自己的市集](#publish-through-your-own-marketplace) | 任何可以存取存放庫的人,可以是您的團隊可以複製的私人存放庫 | 包含列出您的外掛程式的 `.claude-plugin/marketplace.json` 的 git 存放庫或其他主機 | 關閉 |

32| [Anthropic 的社群市集](#submit-to-the-community-marketplace) | 任何新增 `anthropics/claude-plugins-community` 的人 | 透過外掛程式目錄提交表單的提交 | 關閉 |32| [Anthropic 的目錄](#submit-to-anthropics-directory) | 在 claude.ai 或 Cowork 中新增的人。它也會透過[帳戶同步](/docs/zh-TW/plugins/loading#synced-plugins)在他們的 Claude Code 工作階段中載入 | 保存外掛程式的 GitHub 存放庫和付費 claude.ai 方案以供提交 | 是,在您推送的版本發佈後 |

33 33 

34自動更新是使用者端的每個市集設定,在背景中取得新版本。34自動更新是使用者端的每個市集設定,在背景中取得新版本。

35 35 


141 141 

142[安裝外掛程式](/docs/zh-TW/plugins/install) 涵蓋使用者端命令,[自動更新何時執行](/docs/zh-TW/plugins/loading#when-auto-update-runs) 涵蓋時序。142[安裝外掛程式](/docs/zh-TW/plugins/install) 涵蓋使用者端命令,[自動更新何時執行](/docs/zh-TW/plugins/loading#when-auto-update-runs) 涵蓋時序。

143 143 

144<h2 id="submit-to-the-community-marketplace">144<h2 id="submit-to-anthropics-directory">

145 提交到社群市集145 提交到 Anthropic 的目錄

146</h2>146</h2>

147 147 

148Anthropic 的社群市集 `claude-community` 是透過外掛程式目錄提交表單列出提交的外掛程式的公開市集。148Anthropic 的目錄是人們在 claude.ai 和 Cowork 中瀏覽以新增外掛程式和連接器的目錄。在那裡的一個列表可以觸及 claude.ai、Cowork 和 Claude Code 上的人。您可以從開發者入口網站 [claude.ai/directory/manage](https://claude.ai/directory/manage) 提交;[準備審查](https://claude.com/docs/directory/publish#prepare-for-review) 在 claude.com 上說明每個版本在發佈前會發生什麼。

149 149 

150使用者在 Claude Code 工作階段中使用 `/plugin marketplace add anthropics/claude-plugins-community` 新增社群市集,並將其安裝為 `@claude-community`。150提交需要付費的 claude.ai 方案。在 Pro 和 Max 上,您可以從自己的帳戶提交。在 Team 和 Enterprise 上,擁有者可以提交,在 Enterprise 上,擁有者也可以透過 **組織設定 > 角色** 下的自訂角色將 **目錄** 權限授予其他成員。請參閱 [確認您可以提交到目錄](https://claude.com/docs/directory/publish#confirm-you-can-submit-to-the-directory)。

151 151 

152有關社群市集與官方市集的差異,請參閱 [Anthropic 的市集](/docs/zh-TW/plugins/anthropic-marketplaces)。152提交步驟、每個版本必須通過的檢查,以及發佈後會發生什麼都記錄在 claude.com 上,因為無論您的使用者在哪個介面上,它們都是相同的:

153 153 

154若要將您的外掛程式提交到社群市集,請使用其中一個應用程式內表單:154* [發佈到目錄](https://claude.com/docs/directory/publish#before-you-submit-to-the-directory):您可以提交什麼以及誰可以提交

155* [提交外掛程式](https://claude.com/docs/plugins/submit#submit-a-plugin):入口網站步驟和 [更新已發佈的外掛程式](https://claude.com/docs/plugins/submit#update-a-published-plugin)

156* [外掛程式提交前檢查清單](https://claude.com/docs/plugins/pre-submission-checklist#run-the-checks-before-you-submit):提交前要執行和修復的檢查

157* [將較早的提交移至開發者入口網站](https://claude.com/docs/directory/publish#move-an-earlier-submission-to-the-developer-portal):如果您透過較早的提交表單之一提交了外掛程式(在入口網站存在之前),該怎麼辦

155 158 

156* **claude.ai**:[claude.ai/admin-settings/directory/submissions/plugins/new](https://claude.ai/admin-settings/directory/submissions/plugins/new)159在您開啟入口網站之前,在本機驗證並檢查您的哪些元件在 Claude Code 外載入:

157* **Console**:[platform.claude.com/plugins/submit](https://platform.claude.com/plugins/submit)

158 160 

159claude.ai 表單需要 Team 或 Enterprise 組織以及目錄權限,預設情況下擁有者持有該權限。不是 Team 或 Enterprise 組織一部分的個人作者可以改用 Console 表單。161* **在您的 shell 中執行 `claude plugin validate ./your-plugin --strict`**:用您的外掛程式目錄的路徑替換 `./your-plugin`。該命令在本機捕捉清單錯誤;[plugin validate](/docs/zh-TW/plugins/cli-reference#plugin-validate) 列出每次執行讀取的檔案。入口網站應用 CLI 不檢查的其他目錄規則,因此乾淨的本機執行不保證乾淨的入口網站驗證。

162* **檢查在哪裡載入**:某些外掛程式元件僅限 Claude Code,不在 claude.ai 或 Cowork 中載入。[元件支援表](https://claude.com/docs/plugins/platform-support#compare-component-support-by-app) 按應用程式列出每個元件,因此您知道 Claude Code 外的使用者會得到什麼。

160 163 

161在您提交前,在 shell 中本機執行 `claude plugin validate ./your-plugin`,用您的外掛程式目錄的路徑替換 `./your-plugin`。驗證通過時,Claude Code 會列印 `✔ Validation passed`,或如果有警告,則列印 `✔ Validation passed with warnings`。警告不會使驗證失敗;新增 `--strict` 以將它們視為錯誤。164Anthropic 的官方市集 `claude-plugins-official` 不透過目錄入口網站接受提交。如果您與 Anthropic 合作夥伴聯絡合作,請詢問他們有關官方市集列表。

162 165 

163列出的外掛程式出現在 [`anthropics/claude-plugins-community`](https://github.com/anthropics/claude-plugins-community) 目錄中,在幾乎每種情況下都固定到特定的提交 SHA。166<h3 id="how-a-listed-plugin-reaches-claude-code-users">

164 167 列出的外掛程式如何觸及 Claude Code 使用者

165提交和您的外掛程式出現在 `marketplace.json` 之間可能會有延遲。若要檢查您的外掛程式是否可安裝,請在 [社群目錄](https://github.com/anthropics/claude-plugins-community/blob/main/.claude-plugin/marketplace.json) 中搜尋其名稱。168</h3>

166 169 

167官方市集 `claude-plugins-official` 不透過這些表單接受提交。如果您與 Anthropic 合作夥伴聯絡合作,請詢問他們有關官方市集列表。170在 claude.ai 上從目錄安裝您的外掛程式的人在其帳戶上擁有它,Claude Code 將其載入為 `<name>@synced`。[從 claude.ai 同步的外掛程式](/docs/zh-TW/plugins/loading#synced-plugins) 涵蓋他們看到的內容以及他們如何關閉它。

168 171 

169<h2 id="ship-updates-renames-and-removals">172<h2 id="ship-updates-renames-and-removals">

170 發送更新、重新命名和移除173 發送更新、重新命名和移除


174 發行新版本177 發行新版本

175</h3>178</h3>

176 179 

177如果您透過您自己的市集發佈,並且您的 `plugin.json` 設定 `version`,請遞增它並推送。執行 `claude plugin update` 或啟用自動更新的使用者會接收新版本,如 [向使用者發送更新](#ship-updates-to-users) 下所述。180如果您透過您自己的市集發佈,並且您的 `plugin.json` 設定 `version`,請遞增它並推送。執行 `claude plugin update` 或啟用自動更新的使用者會接收新版本,如 [向使用者發送更新](#ship-updates-to-users) 下所述。如需目錄清單,請參閱 [更新已發佈的外掛程式](https://claude.com/docs/plugins/submit#update-a-published-plugin)。

178 181 

179<h3 id="tag-a-release">182<h3 id="tag-a-release">

180 標記發行183 標記發行

Details

118 118 

119在您的 shell 中,使用您安裝它的 `--scope` 執行 [`claude plugin uninstall <plugin>`](/docs/zh-TW/plugins/cli-reference#plugin-uninstall)。然後檢查卸載移除了什麼以及它留下了什麼:119在您的 shell 中,使用您安裝它的 `--scope` 執行 [`claude plugin uninstall <plugin>`](/docs/zh-TW/plugins/cli-reference#plugin-uninstall)。然後檢查卸載移除了什麼以及它留下了什麼:

120 120 

121* **持久資料**:當那是最後一個安裝 plugin 的範圍時,卸載也會刪除 plugin 的持久資料目錄,除非您傳遞 `--keep-data`。121* **持久資料**:預設情況下,當那是最後一個安裝 plugin 的範圍時,卸載也會刪除 plugin 的持久資料目錄。對於 `--keep-data` 和其他它保留的情況,請參閱 [plugin uninstall](/docs/zh-TW/plugins/cli-reference#plugin-uninstall)。

122* **快取檔案**:plugin 的檔案保留在 `~/.claude/plugins/cache/` 下的磁碟上 14 天,然後[背景掃描移除它們](/docs/zh-TW/plugins/loading#cleanup-of-previous-versions)。卸載您的最後一個 plugin 後,孤立目錄保留到您安裝另一個。要立即刪除檔案,請自己移除 `~/.claude/plugins/cache/<marketplace>/<plugin>/` 下的 plugin 目錄。122* **快取檔案**:plugin 的檔案保留在 `~/.claude/plugins/cache/` 下的磁碟上 14 天,然後[背景掃描移除它們](/docs/zh-TW/plugins/loading#cleanup-of-previous-versions)。卸載您的最後一個 plugin 後,孤立目錄保留到您安裝另一個。要立即刪除檔案,請自己移除 `~/.claude/plugins/cache/<marketplace>/<plugin>/` 下的 plugin 目錄。

123* **Marketplace**:如果您也不信任 marketplace 的擁有者,[移除 marketplace](/docs/zh-TW/plugins/install#manage-marketplaces) 也會卸載您從它安裝的每個 plugin。123* **Marketplace**:如果您也不信任 marketplace 的擁有者,[移除 marketplace](/docs/zh-TW/plugins/install#manage-marketplaces) 也會卸載您從它安裝的每個 plugin。

124 124 

Details

676 `Failed to load hooks from <path>` and hooks that don't fire676 `Failed to load hooks from <path>` and hooks that don't fire

677</h3>677</h3>

678 678 

679外掛程式的 hooks 不執行。要麼 **Errors** 標籤顯示它們的載入失敗,hooks 載入且您在文字記錄中看到 `<Event> hook error` 通知,要麼 hook 載入無錯誤且永遠不會觸發。679外掛程式的 hooks 不執行,或一個阻止了一個動作。要麼 **Errors** 標籤顯示它們的載入失敗,hooks 載入且您在文字記錄中看到 `<Event> hook error` 通知或阻止錯誤,要麼 hook 載入無錯誤且永遠不會觸發。

680 680 

681<h4 id="hooks-fail-to-load">681<h4 id="hooks-fail-to-load">

682 Hooks fail to load682 Hooks fail to load


693 693 

694形式為 `... hook error: Failed with non-blocking status code: <stderr>` 的通知表示 hook 執行且其命令失敗。例如,`Stop hook error: Failed with non-blocking status code: /bin/sh: node: command not found` 表示 Claude Code 產生的 shell 找不到 `node`。安裝它,或確保它在您啟動 `claude` 的終端機的 `PATH` 上。694形式為 `... hook error: Failed with non-blocking status code: <stderr>` 的通知表示 hook 執行且其命令失敗。例如,`Stop hook error: Failed with non-blocking status code: /bin/sh: node: command not found` 表示 Claude Code 產生的 shell 找不到 `node`。安裝它,或確保它在您啟動 `claude` 的終端機的 `PATH` 上。

695 695 

696如果 stderr 顯示外掛程式的路徑在空格處被截斷,hook 的 shell 形式命令在引號外使用 `${CLAUDE_PLUGIN_ROOT}`,且安裝路徑包含空格。將變數用雙引號括起來或使用 [exec 形式](/docs/zh-TW/hooks#exec-form-and-shell-form)。若要找到未引用的變數,請在外掛程式目錄上執行 `claude plugin validate`,並查找其 [引用警告](/docs/zh-TW/plugins/manifest-reference#quoting-and-path-separators)。

697 

696對於任何其他錯誤,從外掛程式目錄自行執行 hook 的命令以查看完整輸出,或使用 [偵錯記錄](/docs/zh-TW/hooks#debug-hooks) 捕捉完整 stderr。698對於任何其他錯誤,從外掛程式目錄自行執行 hook 的命令以查看完整輸出,或使用 [偵錯記錄](/docs/zh-TW/hooks#debug-hooks) 捕捉完整 stderr。

697 699 

700<h4 id="a-plugin-hook-blocks-a-tool-call-or-prompt">

701 A plugin hook blocks a tool call or prompt

702</h4>

703 

704退出代碼為 2 的 hook [阻止它執行的動作](/docs/zh-TW/hooks#exit-code-2)。當外掛程式的 hook 以這種方式阻止且其 stderr 是阻止訊息時,錯誤以 `This hook comes from the <plugin> plugin.` 結尾,以便您知道要停用或修復哪個外掛程式。在 v2.1.281 之前,錯誤沒有命名外掛程式。

705 

706如果該訊息顯示外掛程式的路徑在空格處被截斷,應用 [未引用的 `${CLAUDE_PLUGIN_ROOT}` 修復](#hook-error-notices-in-the-transcript)。

707 

698<h4 id="hook-loads-but-never-fires">708<h4 id="hook-loads-but-never-fires">

699 Hook loads but never fires709 Hook loads but never fires

700</h4>710</h4>

prompt-caching.md +30 −18

Details

37有兩個設定不會出現在層級表中,但仍會影響保留的快取內容:37有兩個設定不會出現在層級表中,但仍會影響保留的快取內容:

38 38 

39* **Model**:每個模型都有自己的快取。切換模型會重新計算整個請求,即使內容相同。請參閱下面的 [Switching models](#switching-models)。39* **Model**:每個模型都有自己的快取。切換模型會重新計算整個請求,即使內容相同。請參閱下面的 [Switching models](#switching-models)。

40* **Effort level**:在大多數模型上,每個 effort level 都有自己的快取,因此在工作階段中途變更 effort 會重新計算整個請求。在具有 API 金鑰或 Claude 訂閱的 Opus 5.5 和 Fable 5.1 上,快取預設保持完整。請參閱下面的 [Changing effort level](#changing-effort-level)。40* **Effort level**:在大多數模型上,每個 effort level 都有自己的快取,因此在工作階段中途變更 effort 會重新計算整個請求。在具有 API 金鑰或 Claude 訂閱的 Opus 5.5、Sonnet 5.5 和 Fable 5.1 上,快取預設保持完整。請參閱下面的 [Changing effort level](#changing-effort-level)。

41 41 

42<Tip>42<Tip>

43 在工作階段的開始選擇您的模型和 effort level,然後在任務之間的自然中斷處保存 `/compact`。您在任務中途進行的變更越少,快取命中率就越高。43 在工作階段的開始選擇您的模型和 effort level,然後在任務之間的自然中斷處保存 `/compact`。您在任務中途進行的變更越少,快取命中率就越高。


75* [切換模型](#switching-models)75* [切換模型](#switching-models)

76* [變更努力程度](#changing-effort-level)76* [變更努力程度](#changing-effort-level)

77* [開啟快速模式](#turning-on-fast-mode)77* [開啟快速模式](#turning-on-fast-mode)

78* [連接或斷開 MCP 伺服器](#connecting-or-disconnecting-an-mcp-server)78* [連接或移除 MCP 伺服器](#connecting-or-removing-an-mcp-server)

79* [啟用或停用外掛程式](#enabling-or-disabling-a-plugin)79* [啟用或停用外掛程式](#enabling-or-disabling-a-plugin)

80* [拒絕整個工具](#denying-an-entire-tool)80* [拒絕整個工具](#denying-an-entire-tool)

81* [壓縮對話](#compacting-the-conversation)81* [壓縮對話](#compacting-the-conversation)


96 96 

97[`opusplan` 模型設定](/docs/zh-TW/model-config#opusplan-model-setting)在計畫模式期間解析為 Opus,在執行期間解析為 Sonnet,因此每次計畫模式切換都是模型切換並啟動新的快取。97[`opusplan` 模型設定](/docs/zh-TW/model-config#opusplan-model-setting)在計畫模式期間解析為 Opus,在執行期間解析為 Sonnet,因此每次計畫模式切換都是模型切換並啟動新的快取。

98 98 

99[自動模型回退](/docs/zh-TW/model-config#automatic-model-fallback)在 Fable 模型、Opus 5.5 和 Opus 5 上也是模型切換。當安全分類器在具有回退模型的類別中標記請求時,Claude Code 會在該模型上重新執行請求,並且工作階段會在那裡繼續。99[自動模型回退](/docs/zh-TW/model-config#automatic-model-fallback)在 Fable 模型、Opus 5.5、Sonnet 5.5 和 Opus 5 上也是模型切換。當安全分類器在具有回退模型的類別中標記請求時,Claude Code 會在該模型上重新執行請求,並且工作階段會在那裡繼續。

100 100 

101當技能或命令的前置資料命名一個[`model`](/docs/zh-TW/skills#frontmatter-reference)不同於工作階段目前模型時,該回合也是模型切換:下一個請求會讀取整個對話歷史記錄而沒有快取命中。工作階段模型會在您的下一個提示時繼續。`context: fork` 技能會設定[分叉子代理的模型](/docs/zh-TW/skills#run-skills-in-a-subagent)。101當技能或命令的前置資料命名一個[`model`](/docs/zh-TW/skills#frontmatter-reference)不同於工作階段目前模型時,該回合也是模型切換:下一個請求會讀取整個對話歷史記錄而沒有快取命中。工作階段模型會在您的下一個提示時繼續。`context: fork` 技能會設定[分叉子代理的模型](/docs/zh-TW/skills#run-skills-in-a-subagent)。

102 102 


106 106 

107在大多數模型上,在工作階段中途變更[努力程度](/docs/zh-TW/model-config#adjust-effort-level)意味著下一個請求會讀取整個對話歷史記錄而沒有快取命中。當快取仍然溫暖時,Claude Code 會要求您先確認變更。107在大多數模型上,在工作階段中途變更[努力程度](/docs/zh-TW/model-config#adjust-effort-level)意味著下一個請求會讀取整個對話歷史記錄而沒有快取命中。當快取仍然溫暖時,Claude Code 會要求您先確認變更。

108 108 

109在具有 API 金鑰或 Claude 訂閱的 Opus 5.5 和 Fable 5.1 上,變更努力程度會保留快取,Claude Code 會在不詢問的情況下套用新的程度。這不適用於 Amazon Bedrock、Google Cloud 的 Agent Platform 或 [Claude 應用程式閘道](/docs/zh-TW/claude-apps-gateway),或當您設定 [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS`](/docs/zh-TW/llm-gateway-protocol#disable-pre-release-capabilities) 或您的組織具有 HIPAA 設定時。109在具有 API 金鑰或 Claude 訂閱的 Opus 5.5、Sonnet 5.5 和 Fable 5.1 上,變更努力程度會保留快取,Claude Code 會在不詢問的情況下套用新的程度。這不適用於 Amazon Bedrock、Google Cloud 的 Agent Platform 或 [Claude 應用程式閘道](/docs/zh-TW/claude-apps-gateway),或當您設定 [`CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS`](/docs/zh-TW/llm-gateway-protocol#disable-pre-release-capabilities) 或您的組織具有 HIPAA 設定時。

110 110 

111在 v2.1.260 之前,在具有 API 金鑰或 Claude 訂閱的 Fable 5.1 上變更努力程度也會使快取失效。111在 v2.1.260 之前,在具有 API 金鑰或 Claude 訂閱的 Fable 5.1 上變更努力程度也會使快取失效。

112 112 


118 118 

119成本每個對話應用一次。在第一個快速模式回合之後,Claude Code 會繼續傳送標頭,並且僅改變請求的速度設定,這不是快取金鑰的一部分。關閉快速模式、[達到速率限制後自動回退到標準速度](/docs/zh-TW/fast-mode#handle-rate-limits)以及稍後重新開啟都會保留快取。如果您[在工作階段中途用完使用額度](/docs/zh-TW/fast-mode#handle-rate-limits),Claude Code 會以相同方式在標準速度下重試每個被拒絕的快速模式請求,因此此回退也會保留快取。`/clear` 和 `/compact` 會重設此設定,因為它們無論如何都會在這些點重建快取。119成本每個對話應用一次。在第一個快速模式回合之後,Claude Code 會繼續傳送標頭,並且僅改變請求的速度設定,這不是快取金鑰的一部分。關閉快速模式、[達到速率限制後自動回退到標準速度](/docs/zh-TW/fast-mode#handle-rate-limits)以及稍後重新開啟都會保留快取。如果您[在工作階段中途用完使用額度](/docs/zh-TW/fast-mode#handle-rate-limits),Claude Code 會以相同方式在標準速度下重試每個被拒絕的快速模式請求,因此此回退也會保留快取。`/clear` 和 `/compact` 會重設此設定,因為它們無論如何都會在這些點重建快取。

120 120 

121<h3 id="connecting-or-disconnecting-an-mcp-server">121<h3 id="connecting-or-removing-an-mcp-server">

122 連接或斷開 MCP 伺服器122 連接或移除 MCP 伺服器

123</h3>123</h3>

124 124 

125工具定義位於系統提示層,因此當請求中的工具定義集合在回合之間變更時,快取會失效。切換[顧問工具](/docs/zh-TW/advisor)是一個例外:其定義位於快取中斷點之後,因此啟用或停用 `/advisor` 會保留快取的前綴完整。[MCP 伺服器](/docs/zh-TW/mcp)變更是否執行此操作取決於其工具是否由[工具搜尋](/docs/zh-TW/mcp#scale-with-mcp-tool-search)延遲或載入到前綴中:125工具定義位於系統提示層,因此當請求中的工具定義集合在回合之間變更時,快取會失效。切換[顧問工具](/docs/zh-TW/advisor)是一個例外:其定義位於快取中斷點之後,因此啟用或停用 `/advisor` 會保留快取的前綴完整。[MCP 伺服器](/docs/zh-TW/mcp)變更是否執行此操作取決於[工具搜尋](/docs/zh-TW/mcp#scale-with-mcp-tool-search)是否延遲工作階段的 MCP 工具,在支援的模型上為預設值:

126 126 

127* **延遲工具**,在支援的模型上為預設值:伺服器連接、斷開或變更其工具清單只會附加新內容,不會擾亂已快取的任何內容。127* **工具延遲**:Claude Code 會為整個對話保留對話第一個請求中的工具清單,因此伺服器在工作階段中途連接或斷開不會擾亂已快取的任何內容。在第一個請求後完成連接的伺服器會提供其工具作為延遲定義,Claude 會按需載入。

128* **載入到前綴中的工具**:對它們的任何變更都會使快取失效。這發生在[工具搜尋不可用或已停用](/docs/zh-TW/mcp#configure-tool-search)時,例如在早於 Claude 4.5 世代的 Google Cloud Agent Platform 模型上、使用自訂 `ANTHROPIC_BASE_URL` 閘道或在 Microsoft Foundry [部署在 Azure 上](https://platform.claude.com/docs/en/build-with-claude/claude-in-microsoft-foundry#hosting-options)一旦 Claude Code 偵測到部署拒絕工具搜尋時。它也發生在標記為 [`alwaysLoad`](/docs/zh-TW/mcp#exempt-a-server-from-deferral) 的伺服器或工具上,以及由[基於閾值的載入](/docs/zh-TW/mcp#configure-tool-search)保留在前面的定義上。128* **工具載入到前綴中**:新增定義會使快取失效,移除定義也會如此。這發生在[工具搜尋低於其 `auto` 閾值、已停用或不可用](/docs/zh-TW/mcp#configure-tool-search)時,例如在早於 Claude 4.5 世代的 Google Cloud Agent Platform 模型上、使用自訂 `ANTHROPIC_BASE_URL` 閘道或在 Microsoft Foundry [部署在 Azure 上](https://platform.claude.com/docs/en/build-with-claude/claude-in-microsoft-foundry#hosting-options)一旦 Claude Code 偵測到部署拒絕工具搜尋時。

129 129 

130當工具載入到前綴中時,失效最常見的原因是伺服器在工作階段中途連接或斷開,這可能在沒有您採取任何動作的情況下發生:stdio 伺服器的程序退出、HTTP 工作階段過期或伺服器[在暫時性故障後自動重新連接](/docs/zh-TW/mcp#automatic-reconnection)。連接的伺服器也可以推送[動態工具更新](/docs/zh-TW/mcp#dynamic-tool-updates)來變更其工具清單。130在沒有工具搜尋的情況下,工作階段中途的伺服器變更是否使快取失效取決於變更的內容。對於每個變更,此表格說明快取是否保留以及下一個請求中工具定義會發生什麼。

131 

132| 工作階段中途的變更 | 快取 | 下一個請求中的工具定義 |

133| - | - | - |

134| 伺服器連接,或[動態工具更新](/docs/zh-TW/mcp#dynamic-tool-updates)新增工具 | 已失效 | 新定義已新增 |

135| 伺服器在沒有您採取任何動作的情況下斷開,例如 stdio 伺服器的程序退出 | 已保留 | 伺服器的定義保持不變。呼叫其中一個工具會傳回錯誤而不是執行 |

136| 遠端伺服器在連接斷開後[自動重新連接](/docs/zh-TW/mcp#automatic-reconnection) | 已保留,除非在伺服器重新連接時傳送的請求新增 `WaitForMcpServers` 工具,這會使快取失效一次 | 伺服器的定義保持不變。在伺服器重新連接時傳送的請求可以在對話尚未列出時新增 `WaitForMcpServers`,然後該工具會在對話的其餘部分保持列出 |

137| 您故意移除工具,例如使用[拒絕規則](#denying-an-entire-tool)或在 `/mcp` 中停用其伺服器 | 已失效 | 定義已移除 |

138 

139當您繼續其工具載入到前綴中的對話時,其中一個 MCP 伺服器仍然可以在第一個請求發出時進行連接。如果文字記錄記錄了該伺服器的工具定義,該請求會按記錄的方式包含它們,因此當伺服器以相同工具完成連接時不會變更。

131 140 

132編輯您的 MCP 設定本身不會變更快取。新設定只有在重新啟動後才會生效,這是伺服器連接或斷開的時候。141編輯您的 MCP 設定本身不會變更快取。新設定只有在重新啟動後才會生效,這是伺服器連接或斷開的時候。

133 142 


147 提供 MCP 伺服器的外掛程式156 提供 MCP 伺服器的外掛程式

148</h4>157</h4>

149 158 

150當您啟用或停用提供 [MCP 伺服器](/docs/zh-TW/plugins/components#mcp-servers) 的外掛程式時,Claude Code 會遵循與[連接或斷開 MCP 伺服器](#connecting-or-disconnecting-an-mcp-server)相同的規則:159當您啟用或停用提供 [MCP 伺服器](/docs/zh-TW/plugins/components#mcp-servers) 的外掛程式時,Claude Code 會遵循與[連接或移除 MCP 伺服器](#connecting-or-removing-an-mcp-server)相同的規則。

151 

152* 如果 Claude Code 延遲伺服器的工具,它會保留快取。

153* 如果 Claude Code 將它們載入到前綴中,下一個請求會重新讀取整個對話。

154 160 

155<h4 id="code-intelligence-plugins">161<h4 id="code-intelligence-plugins">

156 程式碼智慧外掛程式162 程式碼智慧外掛程式


244 編輯您的儲存庫中的檔案250 編輯您的儲存庫中的檔案

245</h3>251</h3>

246 252 

247檔案內容只有在 Claude 讀取時才會進入上下文,而讀取會附加到對話中。編輯 Claude 之前讀過的檔案不會追溯性地改變歷史記錄中的早期讀取。相反,Claude Code 會附加一個 `<system-reminder>` 注意到檔案已變更,如果需要,Claude 會重新讀取它。253檔案內容只有在 Claude 讀取時才會進入上下文,而讀取會附加到對話中。編輯 Claude 之前讀過的檔案不會追溯性地改變歷史記錄中的早期讀取。相反,Claude Code 會附加一個 [`<system-reminder>`](/docs/zh-TW/glossary#system-reminder) 注意到檔案已變更,如果需要,Claude 會重新讀取它。

248 254 

249<h3 id="editing-claude-md-mid-session">255<h3 id="editing-claude-md-mid-session">

250 在工作階段中編輯 CLAUDE.md256 在工作階段中編輯 CLAUDE.md


354 快取範圍360 快取範圍

355</h2>361</h2>

356 362 

357在 Claude Code 中,快取實際上是限定在一台機器和一個目錄的範圍內。每個對話都會帶有工作目錄、平台、shell 和作業系統版本,系統提示會命名您的自動記憶路徑,因此在不同目錄中的兩個工作階段會建立不同的前綴並且會錯過彼此的快取。這包括同一個儲存庫的 worktrees,因為每個 worktree 都有自己的工作目錄。363在 Claude Code 中,快取實際上是限定在一台機器和一個目錄的範圍內。系統提示會嵌入您的自動記憶路徑,對話會以工作目錄、平台、shell 和作業系統版本的公告開始。因此在不同目錄中的兩個工作階段會建立不同的前綴並且會錯過彼此的快取。

358 364 

359您在同一目錄中並行執行的工作階段會建立相符的前綴並讀取彼此的快取。順序工作階段只有在啟動時取得的 git 狀態快照相符時才會共享前綴,因為每個對話也會帶有該快照中的分支和最近的提交。365您在同一目錄中並行執行的工作階段會建立相符的前綴並讀取彼此的快取。順序工作階段只有在啟動時取得的 git 狀態快照相符時才會共享前綴,因為每個對話也會帶有該快照中的分支和最近的提交。

360 366 

361底層 API 快取的範圍更廣。快取在組織之間是隔離的,在某些提供者上,[在組織內的工作區之間隔離](https://platform.claude.com/docs/en/build-with-claude/prompt-caching#cache-storage-and-sharing)。在這些邊界內,任何兩個具有相同模型和前綴的請求都會讀取相同的快取。對於執行自動化程序群隊的 Agent SDK 呼叫者,請參閱[改善跨使用者和機器的提示快取](/docs/zh-TW/agent-sdk/modifying-system-prompts#improve-prompt-caching-across-users-and-machines)以抑制系統提示的每台機器部分並在機器之間共享快取。367底層 API 快取的範圍更廣。快取在組織之間是隔離的,在某些提供者上,[在組織內的工作區之間隔離](https://platform.claude.com/docs/en/build-with-claude/prompt-caching#cache-storage-and-sharing)。在這些邊界內,任何兩個具有相同模型和前綴的請求都會讀取相同的快取。對於執行自動化程序群隊的 Agent SDK 呼叫者,請參閱[改善跨使用者和機器的提示快取](/docs/zh-TW/agent-sdk/modifying-system-prompts#improve-prompt-caching-across-users-and-machines)以將自動記憶位置移出系統提示並在使用者和機器之間共享系統提示的快取項目。

362 368 

363<h2 id="check-cache-performance">369<h2 id="check-cache-performance">

364 檢查快取效能370 檢查快取效能


405| 變數 | 效果 |411| 變數 | 效果 |

406| - | - |412| - | - |

407| `DISABLE_PROMPT_CACHING` | 停用所有模型的 caching |413| `DISABLE_PROMPT_CACHING` | 停用所有模型的 caching |

408| `DISABLE_PROMPT_CACHING_HAIKU` | 僅停用 Haiku 的 caching |414| `DISABLE_PROMPT_CACHING_HAIKU` | 停用預設 Haiku 模型的 caching |

409| `DISABLE_PROMPT_CACHING_SONNET` | 僅停用 Sonnet 的 caching |415| `DISABLE_PROMPT_CACHING_SONNET` | 僅停用 Sonnet 的 caching |

410| `DISABLE_PROMPT_CACHING_OPUS` | 僅停用 Opus 的 caching |416| `DISABLE_PROMPT_CACHING_OPUS` | 僅停用 Opus 的 caching |

411| `DISABLE_PROMPT_CACHING_FABLE` | 僅停用 Fable 的 caching |417| `DISABLE_PROMPT_CACHING_FABLE` | 僅停用 Fable 的 caching |

412 418 

419`DISABLE_PROMPT_CACHING_HAIKU` 適用於預設 Haiku 模型,即 `haiku` 別名解析到的模型。它會在該模型執行的任何地方停用 caching,包括當它是您的主要模型時的主要對話。涵蓋主要對話需要 Claude Code v2.1.283 或更新版本。

420 

421該變數也涵蓋您使用已棄用的 `ANTHROPIC_SMALL_FAST_MODEL` 變數設定的背景模型,當該模型與您的主要模型不同時。

422 

423您釘選為主要模型的不同 Haiku 版本會保持 caching;請設定 `DISABLE_PROMPT_CACHING` 以停用其 caching。

424 

413若要在整個組織中設定 caching 原則,請將這些變數或 [TTL 變數](#cache-lifetime) 中的任何一個放在[受管設定](/docs/zh-TW/managed-settings)的 `env` 區塊中。在正常使用時,請保持 caching 啟用。425若要在整個組織中設定 caching 原則,請將這些變數或 [TTL 變數](#cache-lifetime) 中的任何一個放在[受管設定](/docs/zh-TW/managed-settings)的 `env` 區塊中。在正常使用時,請保持 caching 啟用。

414 426 

415<h2 id="related-resources">427<h2 id="related-resources">

quickstart.md +4 −2

Details

27 步驟 1:安裝 Claude Code27 步驟 1:安裝 Claude Code

28</h2>28</h2>

29 29 

30若要安裝 Claude Code,請使用下列其中一種方法:30若要安裝 Claude Code,請開啟終端機並執行適用於您系統的命令。如果您之前未使用過終端機,[終端機指南](/docs/zh-TW/terminal-guide)會說明如何開啟終端機並貼上命令。

31 31 

32<Tabs>32<Tabs>

33 <Tab title="原生安裝(建議)">33 <Tab title="原生安裝(建議)">


49 curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd49 curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd

50 ```50 ```

51 51 

52 當安裝程式完成時,請開啟新的終端機視窗並執行 `claude --version`。正常的安裝會列印版本號碼。如果您的殼層說找不到 `claude` 或無法識別,安裝目錄還未在您的 PATH 上:請參閱[修正您的 PATH](/docs/zh-TW/troubleshoot-install#command-not-found-claude-after-installation)。

53 

52 如果您看到 `The token '&&' is not a valid statement separator`,表示您在 PowerShell 中,而非 CMD。如果您看到 `'irm' is not recognized as an internal or external command`,表示您在 CMD 中,而非 PowerShell。當您在 PowerShell 中時,提示符會顯示 `PS C:\`,而在 CMD 中時會顯示 `C:\`(不含 `PS`)。54 如果您看到 `The token '&&' is not a valid statement separator`,表示您在 PowerShell 中,而非 CMD。如果您看到 `'irm' is not recognized as an internal or external command`,表示您在 CMD 中,而非 PowerShell。當您在 PowerShell 中時,提示符會顯示 `PS C:\`,而在 CMD 中時會顯示 `C:\`(不含 `PS`)。

53 55 

54 如果安裝命令失敗並出現 `syntax error near unexpected token '<'`、`403` 或其他 curl 錯誤,請參閱[疑難排解安裝](/docs/zh-TW/troubleshoot-install#find-your-error)以將錯誤與修正相對應,並查看替代安裝方法。56 如果安裝命令失敗並出現 `syntax error near unexpected token '<'`、`403` 或其他 curl 錯誤,請參閱[疑難排解安裝](/docs/zh-TW/troubleshoot-install#find-your-error)以將錯誤與修正相對應,並查看替代安裝方法。


187 189 

188Claude Code 找到適當的檔案並向您顯示變更。如果它在進行變更前詢問,請選擇 **是** 以批准。190Claude Code 找到適當的檔案並向您顯示變更。如果它在進行變更前詢問,請選擇 **是** 以批准。

189 191 

190Auto mode 是 [內建的起始權限模式](/docs/zh-TW/permission-modes#eliminate-prompts-with-auto-mode),適用於 Pro、Max 和 Team 方案上的互動式終端工作階段:分類器會檢查動作而不是由您檢查,Claude 可以在不詢問的情況下編輯大多數檔案並執行大多數命令。在其他方案上,Manual mode 是內建的起始權限模式。對於您安裝後立即開始的工作階段,請參閱 [安裝或升級後的第一個工作階段](/docs/zh-TW/env-vars#first-session-after-an-install-or-upgrade)。192使用 Claude Code v2.1.283 或更新版本,auto mode 是互動式終端工作階段的[內建起始權限模式](/docs/zh-TW/permission-modes#eliminate-prompts-with-auto-mode):分類器會檢查動作而不是由您檢查,Claude 可以在不詢問的情況下編輯大多數檔案並執行大多數命令。在較早的版本上,auto mode 僅在 Pro、Max 和 Team 方案上是內建的起始權限模式。對於您安裝或升級後立即開始的工作階段,請參閱[安裝或升級後的第一個工作階段](/docs/zh-TW/env-vars#first-session-after-an-install-or-upgrade)。

191 193 

192<Note>194<Note>

193 您的設定或您的組織可以設定不同的起始權限模式。[工作階段開始時的權限模式](/docs/zh-TW/permission-modes#which-mode-a-session-starts-in) 列出了相關內容。隨時按 `Shift+Tab` 以切換您所在工作階段的權限模式。195 您的設定或您的組織可以設定不同的起始權限模式。[工作階段開始時的權限模式](/docs/zh-TW/permission-modes#which-mode-a-session-starts-in) 列出了相關內容。隨時按 `Shift+Tab` 以切換您所在工作階段的權限模式。

remote-control.md +145 −151

Details

6 6 

7> 使用 Remote Control 從您的手機、平板電腦或任何瀏覽器繼續本地 Claude Code 會話。適用於 claude.ai/code 和 Claude 行動應用程式。7> 使用 Remote Control 從您的手機、平板電腦或任何瀏覽器繼續本地 Claude Code 會話。適用於 claude.ai/code 和 Claude 行動應用程式。

8 8 

9<Note>

10 Remote Control 在所有方案上都可用。在 Team 和 Enterprise 上,預設為關閉,直到擁有者在 [Claude Code 管理員設定](https://claude.ai/admin-settings/claude-code)中啟用 Remote Control 切換。

11</Note>

12 

13Remote Control 將 [claude.ai/code](https://claude.ai/code) 或 Claude 應用程式([iOS](https://apps.apple.com/us/app/claude-by-anthropic/id6473753684) 和 [Android](https://play.google.com/store/apps/details?id=com.anthropic.claude))連接到在您機器上執行的 Claude Code 會話。在您的辦公桌開始一項任務,然後從沙發上的手機或另一台電腦上的瀏覽器繼續。9Remote Control 將 [claude.ai/code](https://claude.ai/code) 或 Claude 應用程式([iOS](https://apps.apple.com/us/app/claude-by-anthropic/id6473753684) 和 [Android](https://play.google.com/store/apps/details?id=com.anthropic.claude))連接到在您機器上執行的 Claude Code 會話。在您的辦公桌開始一項任務,然後從沙發上的手機或另一台電腦上的瀏覽器繼續。

14 10 

15當您在機器上啟動 Remote Control 會話時,Claude 會在整個過程中在本地執行,因此您的程式碼執行和檔案系統存取保持在您的機器上。使用 Remote Control,您可以:11當您在機器上啟動 Remote Control 會話時,Claude 會在整個過程中在本地執行,因此您的程式碼執行和檔案系統存取保持在您的機器上。使用 Remote Control,您可以:


17* **遠端使用您的完整本地環境**:您的檔案系統、[MCP servers](/docs/zh-TW/mcp)、工具和專案設定都保持可用,輸入 `@` 會自動完成來自您本地專案的檔案路徑。13* **遠端使用您的完整本地環境**:您的檔案系統、[MCP servers](/docs/zh-TW/mcp)、工具和專案設定都保持可用,輸入 `@` 會自動完成來自您本地專案的檔案路徑。

18* **同時在兩個介面上工作**:對話和 [subagents](/docs/zh-TW/sub-agents) 和 [dynamic workflows](/docs/zh-TW/workflows) 的進度在所有連接的裝置上保持同步,因此您可以從終端機、瀏覽器和手機交替發送訊息。14* **同時在兩個介面上工作**:對話和 [subagents](/docs/zh-TW/sub-agents) 和 [dynamic workflows](/docs/zh-TW/workflows) 的進度在所有連接的裝置上保持同步,因此您可以從終端機、瀏覽器和手機交替發送訊息。

19* **從您的手機或瀏覽器傳送影像和檔案**:在 Claude 應用程式或 claude.ai/code 中附加照片或檔案,可以有或沒有標題。Claude 會直接將附加的照片視為您訊息的一部分。Claude Code 會將其他檔案下載到您的機器,並將其作為 `@` 檔案參考傳遞給 Claude。15* **從您的手機或瀏覽器傳送影像和檔案**:在 Claude 應用程式或 claude.ai/code 中附加照片或檔案,可以有或沒有標題。Claude 會直接將附加的照片視為您訊息的一部分。Claude Code 會將其他檔案下載到您的機器,並將其作為 `@` 檔案參考傳遞給 Claude。

20* **克服中斷**:如果您的筆記型電腦進入睡眠狀態或網路中斷,當您的機器重新上線時,Claude Code 會自動重新連接。在連接重建時,Claude Code 會將來自 subagents 和工作流程的訊息、權限提示和狀態更新排隊,並在連接恢復後傳遞它們。16* **克服中斷**:如果您的筆記型電腦進入睡眠狀態或網路中斷,當您的機器重新上線時,Claude Code 會自動重新連接。

21 

22與[網頁版 Claude Code](/docs/zh-TW/claude-code-on-the-web)(在雲端基礎設施上執行)不同,Remote Control 會話直接在您的機器上執行並與您的本地檔案系統互動。網頁和行動介面只是該本地會話的一個窗口。

23 17 

24本頁涵蓋設定、如何啟動和連接到會話,以及 Remote Control 與網頁版 Claude Code 的比較。18與[網頁版 Claude Code](/docs/zh-TW/claude-code-on-the-web)(在雲端基礎設施上執行)不同,Remote Control 會話直接在您的機器上執行並與您的本地檔案系統互動。網頁和行動介面只是該本地會話的一個窗口,因此您的電腦必須保持開啟,且 `claude` 程序必須持續執行。

25 19 

26<h2 id="requirements">20<h2 id="requirements">

27 需求21 需求

28</h2>22</h2>

29 23 

30在使用 Remote Control 之前,請確認您的環境符合以下條件:24在使用遠端控制之前,請確認您的環境符合以下條件:

31 25 

32* **訂閱**:在 Pro、Max、Team 和 Enterprise 方案上可用。不支援 API 金鑰。在 Team 和 Enterprise 上,擁有者必須先在 [Claude Code 管理員設定](https://claude.ai/admin-settings/claude-code)中啟用 Remote Control 切換。26* **訂閱**:適用於 Pro、Max、Team 和 Enterprise 方案。不支援 API 金鑰。在 Team 和 Enterprise 上,擁有者必須先在 [Claude Code 管理設定](https://claude.ai/admin-settings/claude-code)中啟用遠端控制切換。

33* **驗證**:執行 `claude` 並使用 `/login` 透過 claude.ai 登入(如果您還沒有登入)。若沒有符合條件的登入,`claude remote-control` 會以錯誤結束,而 `claude --remote-control` 仍會啟動互動式工作階段,並在啟動後不久顯示 Remote Control 失敗通知。27* **驗證**:執行 `claude` 並使用 `/login` 透過 claude.ai 登入(如果您還未登入)。沒有符合條件的登入,`claude remote-control` 會以錯誤結束,而 `claude --remote-control` 仍會啟動互動式工作階段,並在啟動後不久顯示遠端控制失敗通知。

34* **API 端點**:在以下任何設定中都不可用:28* **API 端點**:在以下任何配置中都不可用:

35 * 您使用 Amazon Bedrock、Google Cloud 的 Agent Platform 或 Microsoft Foundry。29 * 您使用 Amazon Bedrock、Google Cloud 的 Agent Platform 或 Microsoft Foundry。

36 * 您將 [`ANTHROPIC_BASE_URL`](/docs/zh-TW/env-vars) 指向 `api.anthropic.com` 以外的主機,例如 [LLM 閘道](/docs/zh-TW/llm-gateway)或代理。取消設定該變數以使用 Remote Control。在 v2.1.196 之前,Claude Code 允許使用自訂 `ANTHROPIC_BASE_URL` 的 Remote Control。30 * 您將 [`ANTHROPIC_BASE_URL`](/docs/zh-TW/env-vars) 指向 `api.anthropic.com` 以外的主機,例如 [LLM 閘道](/docs/zh-TW/llm-gateway)或代理。取消設定該變數以使用遠端控制。

37 * 您透過企業 [Claude 應用程式閘道](/docs/zh-TW/claude-apps-gateway)登入。31 * 您透過企業 [Claude 應用程式閘道](/docs/zh-TW/claude-apps-gateway)登入。

38* **功能旗標評估**:[`DISABLE_TELEMETRY`、`DO_NOT_TRACK`、`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` 和 `DISABLE_GROWTHBOOK`](/docs/zh-TW/env-vars) 各自停用 Remote Control 可用性所依賴的功能旗標評估。在您的殼層環境或 [`settings.json` 檔案](/docs/zh-TW/settings-reference#all-settings)的 `env` 區塊中設定該變數的任何位置取消設定,以使用 Remote Control。32* **功能旗標評估**:如果您設定了[關閉功能旗標評估的環境變數](/docs/zh-TW/env-vars#features-that-need-feature-flag-fetching),遠端控制是否可用取決於您設定的是哪一個:

39* **工作區信任**:在您的專案目錄中至少執行一次 `claude` 以接受工作區信任對話框。啟動信任對話框永遠不會為您的主目錄儲存信任,因此請從專案目錄啟動 Remote Control。33 * 如果您設定了 `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` 或 `DISABLE_GROWTHBOOK`,遠端控制將不可用。在您的 shell 環境或 [`settings.json` 檔案](/docs/zh-TW/settings-reference#all-settings)的 `env` 區塊中取消設定該變數,以使用遠端控制。

34 * 如果您只設定了 `DISABLE_TELEMETRY` 或 `DO_NOT_TRACK`,遠端控制保持可用,除非您的組織要求[受信任的裝置](#trusted-devices)。如果是這樣,請取消設定該變數以使用遠端控制。使用遠端控制搭配任一變數設定需要 Claude Code v2.1.283 或更新版本。

35* **工作區信任**:在您尚未信任的目錄中,`claude remote-control` 會列印信任該目錄會啟用的功能,並在啟動前詢問 `Trust <directory>? [y/N]`。回答 `y` 會儲存該選擇,但在您的主目錄中除外,該目錄中信任永遠不會被儲存,每次執行時都會重新詢問。當其標準輸入或輸出不是終端機時,該命令無法詢問並會以 [`Workspace not trusted`](/docs/zh-TW/errors#workspace-not-trusted-when-starting-remote-control) 錯誤結束。

40 36 

41<h2 id="start-a-remote-control-session">37<h2 id="start-a-remote-control-session">

42 啟動 Remote Control 會話38 啟動 Remote Control 會話

43</h2>39</h2>

44 40 

45您可以從 CLI 或 VS Code 擴充功能啟動 Remote Control 會話。CLI 提供三種調用模式;VS Code 使用 `/remote-control` 命令。41您可以從 CLI、[Claude Desktop 應用程式](/docs/zh-TW/desktop)或 VS Code 擴充功能啟動 Remote Control 會話。CLI 提供三種調用模式;Desktop 應用程式和 VS Code 使用 `/remote-control` 命令。

46 42 

47<Tabs>43<Tabs>

48 <Tab title="伺服器模式">44 <Tab title="伺服器模式">


62 | - | - |58 | - | - |

63 | `--name "My Project"` | 設定自訂會話標題,在 claude.ai/code 的會話清單中可見。 |59 | `--name "My Project"` | 設定自訂會話標題,在 claude.ai/code 的會話清單中可見。 |

64 | `--remote-control-session-name-prefix <prefix>` | 未設定明確名稱時自動生成會話名稱的前綴。預設為您機器的主機名稱,產生類似 `myhost-graceful-unicorn` 的名稱。設定 `CLAUDE_REMOTE_CONTROL_SESSION_NAME_PREFIX` 以獲得相同效果。 |60 | `--remote-control-session-name-prefix <prefix>` | 未設定明確名稱時自動生成會話名稱的前綴。預設為您機器的主機名稱,產生類似 `myhost-graceful-unicorn` 的名稱。設定 `CLAUDE_REMOTE_CONTROL_SESSION_NAME_PREFIX` 以獲得相同效果。 |

65 | `-c`, `--continue` | 恢復此目錄中最後一個伺服器啟動的會話,而不是建立新會話。請參閱[停止伺服器後恢復會話](#resume-sessions-after-stopping-the-server)。無法與 `--session-id`、`--spawn`、`--capacity` 或 `--create-session-in-dir` 結合。需要 Claude Code v2.1.200 或更新版本;較早版本會將該旗標拒絕為未知引數。 |61 | `-c`, `--continue` | 恢復此目錄中最後一個伺服器啟動的會話,而不是建立新會話。請參閱[停止伺服器後恢復會話](#resume-sessions-after-stopping-the-server)。無法與 `--session-id`、`--spawn`、`--capacity` 或 `--create-session-in-dir` 結合。需要 Claude Code v2.1.200 或更新版本。 |

66 | `--session-id <id>` | 按其 ID 恢復一個會話。請參閱[停止伺服器後恢復會話](#resume-sessions-after-stopping-the-server)。無法與 `--continue`、`--spawn`、`--capacity` 或 `--create-session-in-dir` 結合。需要 Claude Code v2.1.200 或更新版本;較早版本會將該旗標拒絕為未知引數。 |62 | `--session-id <id>` | 按其 ID 恢復一個會話。請參閱[停止伺服器後恢復會話](#resume-sessions-after-stopping-the-server)。無法與 `--continue`、`--spawn`、`--capacity` 或 `--create-session-in-dir` 結合。需要 Claude Code v2.1.200 或更新版本。 |

67 | `--spawn <mode>` | 伺服器如何建立會話。<br />• `same-dir`(預設):所有會話共享目前的工作目錄,因此如果編輯相同的檔案可能會衝突。<br />• `worktree`:每個按需會話都會獲得自己的 [git worktree](/docs/zh-TW/worktrees)。需要 git 儲存庫。<br />• `session`:單一會話模式。恰好提供一個會話並拒絕其他連接。僅在啟動時設定。<br />在執行時按 `w` 在 `same-dir` 和 `worktree` 之間切換。 |63 | `--spawn <mode>` | 伺服器如何建立會話。<br />• `same-dir`(預設):所有會話共享目前的工作目錄,因此如果編輯相同的檔案可能會衝突。<br />• `worktree`:每個按需會話都會獲得自己的 [git worktree](/docs/zh-TW/worktrees)。需要 git 儲存庫。<br />• `session`:單一會話模式。恰好提供一個會話並拒絕其他連接。僅在啟動時設定。<br />在執行時按 `w` 在 `same-dir` 和 `worktree` 之間切換。 |

68 | `--capacity <N>` | 並行會話的最大數量。預設值為 32。不能與 `--spawn=session` 一起使用。 |64 | `--capacity <N>` | 並行會話的最大數量。預設值為 32。不能與 `--spawn=session` 一起使用。 |

69 | `--[no-]create-session-in-dir` | 伺服器啟動時在目前目錄中預先建立一個會話,以便您有地方立即輸入。在 `worktree` 模式中,此會話保留在目前目錄中,而按需會話會獲得隔離的 worktrees。預設為開啟。如果您傳遞 `--no-create-session-in-dir` 以不建立任何會話啟動,Claude Code 會在您停止伺服器時封存伺服器的會話,因此沒有任何東西可以[恢復](#resume-sessions-after-stopping-the-server)。 |65 | `--[no-]create-session-in-dir` | 伺服器啟動時在目前目錄中預先建立一個會話,以便您有地方立即輸入。在 `worktree` 模式中,此會話保留在目前目錄中,而按需會話會獲得隔離的 worktrees。預設為開啟。如果您傳遞 `--no-create-session-in-dir` 以不建立任何會話啟動,Claude Code 會在您停止伺服器時封存伺服器的會話,因此沒有任何東西可以[恢復](#resume-sessions-after-stopping-the-server)。 |

70 | `--permission-mode <mode>` | 為伺服器的會話設定起始[權限模式](/docs/zh-TW/permission-modes),例如 `acceptEdits`。接受 `manual` 作為 `default` 的別名;無法識別的模式會在啟動時停止伺服器並列出有效的模式。 |66 | `--permission-mode <mode>` | 為伺服器的會話設定起始[權限模式](/docs/zh-TW/permission-modes),例如 `acceptEdits`。接受 `manual` 作為 `default` 的別名;無法識別的模式會在啟動時停止伺服器並列出有效的模式。 |

67 | `-d`, `--debug[=<filter>]` | 為伺服器開啟偵錯日誌,可選擇按類別篩選。僅以 `=` 形式傳遞篩選器,例如 `--debug=api,hooks`。需要 Claude Code v2.1.282 或更新版本;較早版本會將該旗標拒絕為未知引數。 |

71 | `--debug-file <path>` | 將偵錯日誌寫入給定的檔案。 |68 | `--debug-file <path>` | 將偵錯日誌寫入給定的檔案。 |

72 | `--verbose` | 顯示詳細的連接和會話日誌。 |69 | `--verbose` | 顯示詳細的連接和會話日誌。 |

73 | `--sandbox` / `--no-sandbox` | 啟用或停用[沙箱](/docs/zh-TW/sandboxing)以進行檔案系統和網路隔離。預設為關閉。 |70 | `--sandbox` / `--no-sandbox` | 啟用或停用[沙箱](/docs/zh-TW/sandboxing)以進行檔案系統和網路隔離。預設為關閉。 |

74 71 

75 在 `remote-control` 之後給予這些旗標。72 在 `remote-control` 之後給予這些旗標。

76 73 

77 如果您在 `remote-control` 之前傳遞全域 `claude` 旗標,或包裝指令碼新增一個,Claude Code 不會將該旗標帶到伺服器建立的會話中。Claude Code 只在丟棄該旗標已知不會改變這些會話可以執行的操作時才允許該旗標通過,例如 `--verbose` 或 `--model`。對於任何其他旗標,例如 `--settings`,Claude Code [拒絕啟動](/docs/zh-TW/errors#not-carried-over-to-the-sessions-remote-control-starts)並命名要移除的旗標。在 v2.1.248 之前,`remote-control` 之前的任何選項都會導致 Claude Code 拒絕其後的旗標,並出現 `unknown option` 錯誤。74 如果您在 `remote-control` 之前傳遞全域 `claude` 旗標,或包裝指令碼新增一個,Claude Code 不會將該旗標帶到伺服器建立的會話中。Claude Code 只在丟棄該旗標已知不會改變這些會話可以執行的操作時才允許該旗標通過,例如 `--verbose` 或 `--model`。對於任何其他旗標,例如 `--settings`,Claude Code [拒絕啟動](/docs/zh-TW/errors#not-carried-over-to-the-sessions-remote-control-starts)並命名要移除的旗標。

78 75 

79 Claude Code 在列印說明之前檢查 Remote Control 資格,因此當您未使用符合條件的帳戶登入時,`claude remote-control --help` 會傳回錯誤而不是此旗標清單。76 Claude Code 在列印說明之前檢查 Remote Control 資格,因此當您未使用符合條件的帳戶登入時,`claude remote-control --help` 會傳回錯誤而不是此旗標清單。

80 </Tab>77 </Tab>


126 123 

127 與 CLI 不同,VS Code 命令不接受名稱引數或顯示 QR 碼。會話標題是從您的對話歷史記錄或第一個提示衍生的。124 與 CLI 不同,VS Code 命令不接受名稱引數或顯示 QR 碼。會話標題是從您的對話歷史記錄或第一個提示衍生的。

128 </Tab>125 </Tab>

126 

127 <Tab title="Desktop 應用程式">

128 在 [Claude Desktop 應用程式](/docs/zh-TW/desktop)的 Code 標籤中的本地會話中,在提示框中輸入 `/remote-control` 或 `/rc`。

129 

130 ```text theme={null}

131 /remote-control

132 ```

133 

134 會話連接後,在 [claude.ai/code](https://claude.ai/code) 的會話清單中找到它。要斷開連接,再次執行 `/remote-control`。

135 

136 要改為預設為每個會話開啟 Remote Control,請參閱[為所有會話啟用 Remote Control](#enable-remote-control-for-all-sessions)。

137 </Tab>

129</Tabs>138</Tabs>

130 139 

131<h3 id="check-connection-status">140<h3 id="check-connection-status">


140* **此會話從另一個裝置或應用程式被結束或封存**:只有在您想要它回來時才執行 `/remote-control`;Claude Code 會重新開啟已封存的會話。149* **此會話從另一個裝置或應用程式被結束或封存**:只有在您想要它回來時才執行 `/remote-control`;Claude Code 會重新開啟已封存的會話。

141* **伺服器不再報告此會話**:它可能已從另一個裝置或應用程式中刪除。150* **伺服器不再報告此會話**:它可能已從另一個裝置或應用程式中刪除。

142 151 

143<h3 id="session-url-reminders">

144 會話 URL 提醒

145</h3>

146 

147當 Remote Control 連接時,Claude Code 會在切換到您的手機或瀏覽器最有幫助時提醒您會話 URL,因此您不必在 `/remote-control` 中尋找連結。提醒會在以下任一時刻出現在提示框上方:

148 

149* **長回合**:當回合執行時間超過伺服器調整的閾值時,Claude Code 會顯示 **Still working** 通知,帶有**從您的手機檢查** 連結,因此您可以從手機或瀏覽器跟蹤回合,而不是在終端機等待。Claude Code 會在回合結束時移除它。

150* **重複的權限提示**:在您在會話中回答多個[權限提示](/docs/zh-TW/permissions)後,會出現 **Approve tool calls from your phone** 通知,顯示會話 URL。Claude Code 會在您的下一個回合開始時移除它。

151 

152提醒可以出現在任何連接的會話中,包括 Remote Control [自動連接](#enable-remote-control-for-all-sessions)的會話。它們不會在每次這些條件發生時出現,每個提醒在所有會話中總共只出現幾次。您無法配置或關閉它們;每個都會自動清除。

153 

154<h3 id="connect-from-another-device">152<h3 id="connect-from-another-device">

155 從另一個裝置連接153 從另一個裝置連接

156</h3>154</h3>


1703. 現有對話歷史記錄中最後一條有意義的訊息1683. 現有對話歷史記錄中最後一條有意義的訊息

1714. 類似 `myhost-graceful-unicorn` 的自動生成名稱,其中 `myhost` 是您機器的主機名稱或您使用 `--remote-control-session-name-prefix` 設定的前綴1694. 類似 `myhost-graceful-unicorn` 的自動生成名稱,其中 `myhost` 是您機器的主機名稱或您使用 `--remote-control-session-name-prefix` 設定的前綴

172 170 

173如果您沒有設定明確名稱,Claude Code 會在您發送提示後更新標題以反映您的提示。Claude Code 將自動生成的標題與您對話的語言相符,或與 [`language`](/docs/zh-TW/settings-reference#language) 設定相符(如果已配置)。171如果您沒有設定明確名稱,Claude Code 會在您發送提示後更新標題以反映您的提示。

174 172 

175當您從 claude.ai 或 Claude 應用程式重新命名會話時,Claude Code 也會更新在 `claude --resume` 中顯示的本地標題。Claude Code 將相同的重新命名應用於提示欄上顯示的會話名稱,以及當會話[在背景執行](/docs/zh-TW/agent-view)時 `claude agents` 清單中顯示的會話名稱。在 v2.1.221 之前,從 claude.ai 的會話清單或 Claude 應用程式中重新命名只會更新標題,CLI 會保留其先前的會話名稱;`/rename`(在 CLI 本身中執行)在任何版本上設定名稱。173當您從 claude.ai 或 Claude 應用程式重新命名會話時,Claude Code 也會更新在 `claude --resume` 中顯示的本地標題。

176 174 

177如果您還沒有 Claude 應用程式,請在 Claude Code 內使用 `/mobile` 命令顯示 [claude.ai/mobile](https://claude.ai/mobile) 的 QR 碼,該碼會開啟適合您手機的應用程式商店。175如果您還沒有 Claude 應用程式,請在 Claude Code 內使用 `/mobile` 命令顯示 [claude.ai/mobile](https://claude.ai/mobile) 的 QR 碼,該碼會開啟適合您手機的應用程式商店。

178 176 


185* **壓縮和 `/clear`**:當 Claude Code [壓縮對話](/docs/zh-TW/context-window#what-survives-compaction)時,連接的裝置會顯示進度,然後顯示對話被壓縮的位置。當您執行 `/clear` 時,對話也會在連接的裝置上重設。183* **壓縮和 `/clear`**:當 Claude Code [壓縮對話](/docs/zh-TW/context-window#what-survives-compaction)時,連接的裝置會顯示進度,然後顯示對話被壓縮的位置。當您執行 `/clear` 時,對話也會在連接的裝置上重設。

186* **使用 `/resume` 切換對話**:連接的裝置不會接收切換到的對話的標題或較早的歷史記錄,但雙向的新訊息會進出您的終端機中開啟的任何對話。要再次從裝置處理原始對話,請在您的終端機中執行 `/resume` 並切換回它。184* **使用 `/resume` 切換對話**:連接的裝置不會接收切換到的對話的標題或較早的歷史記錄,但雙向的新訊息會進出您的終端機中開啟的任何對話。要再次從裝置處理原始對話,請在您的終端機中執行 `/resume` 並切換回它。

187* **使用 `/teleport` 拉取會話**:當您使用 `/teleport` 將[雲端會話](/docs/zh-TW/claude-code-on-the-web#from-cloud-to-terminal)拉入您的終端機時,連接的裝置不會接收拉取的對話的較早歷史記錄。雙向的新訊息會進出拉取的對話,該對話現在是您的終端機中開啟的對話。185* **使用 `/teleport` 拉取會話**:當您使用 `/teleport` 將[雲端會話](/docs/zh-TW/claude-code-on-the-web#from-cloud-to-terminal)拉入您的終端機時,連接的裝置不會接收拉取的對話的較早歷史記錄。雙向的新訊息會進出拉取的對話,該對話現在是您的終端機中開啟的對話。

188* **來自您其他會話的訊息**:使用[跨會話訊息](/docs/zh-TW/cross-session-messaging),相同的連接會在不同機器上的您自己的會話之間以及來自您的[雲端會話](/docs/zh-TW/claude-code-on-the-web)的訊息,通過 Anthropic 伺服器(如 Remote Control 流量的其餘部分)進行傳遞。[在其他機器上的訊息會話](/docs/zh-TW/cross-session-messaging#message-sessions-on-other-machines)涵蓋傳遞規則,[控制入站訊息](/docs/zh-TW/cross-session-messaging#control-inbound-messages)涵蓋入站控制。需要 Claude Code v2.1.224 或更新版本。186* **來自您其他會話的訊息**:使用[跨會話訊息](/docs/zh-TW/cross-session-messaging),相同的連接會在不同機器上的您自己的會話之間以及來自您的[雲端會話](/docs/zh-TW/claude-code-on-the-web)的訊息進行傳遞。

189* **您在回合中途發送的提示**:當您在目前回合結束之前從連接的裝置發送提示時,Claude Code 會將其排隊,並在該回合完成後將其保留在裝置的文字記錄中。187* **您的變更的差異**:當會話的目錄在 git 儲存庫中時,連接的裝置的差異窗格會顯示您的變更。在有提交領先儲存庫預設分支的分支上,窗格會顯示自分支從它分歧以來的變更,包括您未提交的編輯。在預設分支本身上,或在沒有領先它的分支上,窗格只會顯示您未提交的變更。

190* **您的變更的差異**:當會話的目錄在 git 儲存庫中時,連接的裝置的差異窗格會顯示您的變更。該裝置通過連接請求差異,Claude Code 在您的機器上計算它。在有提交領先儲存庫預設分支的分支上,窗格會顯示自分支從它分歧以來的變更,包括您未提交的編輯。在預設分支本身上,或在沒有領先它的分支上,窗格只會顯示您未提交的變更。在 v2.1.247 之前,Claude Code 只向由 `claude remote-control` 提供的會話中的連接的裝置報告差異。188* **模型**:當您從連接的裝置選擇[模型](/docs/zh-TW/model-config)時,Claude Code 會在該模型上執行會話。需要 Claude Code v2.1.238 或更新版本。您從裝置的模型控制中選擇的模型只適用於目前會話。當您從裝置向互動式會話發送 `/model <name>` 時,Claude Code 也會為新會話設定您的預設值。

191* **模型**:當您從連接的裝置選擇[模型](/docs/zh-TW/model-config)時,Claude Code 會在該模型上執行會話。終端機的 `/model` 選擇器、`/status` 和 `/config` 會顯示該模型。需要 Claude Code v2.1.238 或更新版本。189* **努力等級**:當您從連接的裝置使用 `/effort` 或裝置的努力控制設定[努力等級](/docs/zh-TW/model-config#adjust-effort-level)時,Claude Code 會將其應用於您機器上的會話。如果您使用 `CLAUDE_CODE_EFFORT_LEVEL` 固定了一個等級,會話會保留該等級,Claude Code 會拒絕來自努力控制的不同選擇。從努力控制中選擇等級需要您機器上的 Claude Code v2.1.234 或更新版本。

192 * 您從裝置的模型控制中選擇的模型只適用於目前會話。當您從裝置向互動式會話發送 `/model <name>` 時,Claude Code 也會為新會話設定您的預設值。

193 * 如果您發送 Claude Code 無法識別的名稱,例如預期模型 ID 的顯示名稱,Claude Code [拒絕選擇](/docs/zh-TW/errors#model-is-not-a-recognized-model-id),會話會保留其目前的模型。在 v2.1.260 之前,Claude Code 會儲存來自裝置的模型控制的無法識別的選擇,您的下一條訊息會失敗。

194* **努力等級**:當您從連接的裝置使用 `/effort` 或裝置的努力控制設定[努力等級](/docs/zh-TW/model-config#adjust-effort-level)時,Claude Code 會將其應用於您機器上的會話,claude.ai/code 會顯示會話正在使用的等級。如果您使用 `CLAUDE_CODE_EFFORT_LEVEL` 固定了一個等級,會話會保留該等級,Claude Code 會拒絕來自努力控制的不同選擇。從努力控制中選擇等級需要您機器上的 Claude Code v2.1.234 或更新版本。

195* **連接失敗後重新連接**:執行 `/remote-control` 以重新連接。如果壓縮重寫了對話或您在此期間使用 `/resume` 切換了對話,Claude Code 會封存它正在使用的伺服器會話,而不是將其留在會話清單中。您仍然可以通過[篩選已封存的會話](/docs/zh-TW/claude-code-on-the-web#archive-sessions)找到它。在裝置仍然連接時切換對話不會封存會話。190* **連接失敗後重新連接**:執行 `/remote-control` 以重新連接。如果壓縮重寫了對話或您在此期間使用 `/resume` 切換了對話,Claude Code 會封存它正在使用的伺服器會話,而不是將其留在會話清單中。您仍然可以通過[篩選已封存的會話](/docs/zh-TW/claude-code-on-the-web#archive-sessions)找到它。在裝置仍然連接時切換對話不會封存會話。

196 191 

197<h3 id="enable-remote-control-for-all-sessions">192<h3 id="enable-remote-control-for-all-sessions">


206 201 

207相同的切換也會出現在 CLI 外:202相同的切換也會出現在 CLI 外:

208 203 

209* **桌面應用程式**:**設定 > Claude Code > 預設啟用遠端控制**。204* **Desktop 應用程式**:**設定 > Claude Code > 預設啟用遠端控制**。

210* **VS Code 擴充功能**:[命令選單](/docs/zh-TW/vs-code#use-the-prompt-box)的設定部分中的**為所有會話啟用 Remote Control**。需要 Claude Code v2.1.203 或更新版本。205* **VS Code 擴充功能**:[命令選單](/docs/zh-TW/vs-code#use-the-prompt-box)的設定部分中的**為所有會話啟用 Remote Control**。

211 206 

212要改為從設定檔案開啟自動連接,請在您的使用者 `~/.claude/settings.json` 或[受管設定](/docs/zh-TW/managed-settings)中將 [`remoteControlAtStartup`](/docs/zh-TW/settings-reference#remotecontrolatstartup) 設定為 `true`。在專案或本地設定(`.claude/settings.json`、`.claude/settings.local.json`)中,Claude Code 會遵守 `false` 並為該儲存庫關閉自動連接,但會忽略 `true`,因此已簽入的檔案無法為打開儲存庫的每個人開啟 Remote Control。207要改為從設定檔案開啟自動連接,請在您的使用者 `~/.claude/settings.json` 或[受管設定](/docs/zh-TW/managed-settings)中將 [`remoteControlAtStartup`](/docs/zh-TW/settings-reference#remotecontrolatstartup) 設定為 `true`。在專案或本地設定(`.claude/settings.json`、`.claude/settings.local.json`)中,Claude Code 會遵守 `false` 並為該儲存庫關閉自動連接,但會忽略 `true`,因此已簽入的檔案無法為打開儲存庫的每個人開啟 Remote Control。

213 208 


222當您使用 Ctrl+C 停止 `claude remote-control` 時,它正在提供的會話會停止從您的手機或瀏覽器回應。只要您沒有在同一目錄中執行另一個 `claude remote-control` 並且沒有使用 `--no-create-session-in-dir` 啟動此會話,Claude Code 就不會封存它們。要將它們恢復,請在同一目錄中執行以下命令之一:217當您使用 Ctrl+C 停止 `claude remote-control` 時,它正在提供的會話會停止從您的手機或瀏覽器回應。只要您沒有在同一目錄中執行另一個 `claude remote-control` 並且沒有使用 `--no-create-session-in-dir` 啟動此會話,Claude Code 就不會封存它們。要將它們恢復,請在同一目錄中執行以下命令之一:

223 218 

224* **`claude remote-control`**:恢復伺服器正在提供的每個會話。219* **`claude remote-control`**:恢復伺服器正在提供的每個會話。

225* **`claude remote-control --continue`**:只恢復伺服器啟動的會話,並在該會話結束時退出。如果此目錄沒有記錄,Claude Code 會使用此儲存庫其他 git worktrees 中最新的記錄。220* **`claude remote-control --continue`**:恢復伺服器啟動的會話,並在該會話結束時退出。如果此目錄沒有記錄,Claude Code 會使用此儲存庫其他 git worktrees 中最新的記錄。

226* **`claude remote-control --session-id <id>`**:只恢復您傳遞的 ID 的會話,並在該會話結束時退出。ID 是會話在 claude.ai/code 的 URL 中 `/code/` 和任何 `?` 之間的部分。221* **`claude remote-control --session-id <id>`**:恢復您傳遞的 ID 的會話,並在該會話結束時退出。ID 是會話在 claude.ai/code 的 URL 中 `/code/` 和任何 `?` 之間的部分。

227 222 

228這些命令在伺服器停止後約四小時內有效。之後,執行 `claude remote-control` 以啟動新會話。如果您在此期間封存了會話,`--continue` 和 `--session-id` 會在 Claude Code v2.1.228 或更新版本上取消封存它。223這些命令在伺服器停止後約四小時內有效。之後,執行 `claude remote-control` 以啟動新會話。如果您在此期間封存了會話,`--continue` 和 `--session-id` 會在 Claude Code v2.1.228 或更新版本上取消封存它。

229 224 

230要恢復您使用 `claude --remote-control` 或 `/remote-control` 啟動的會話,請使用 `claude --continue` 或 `claude --resume` 恢復對話。Claude Code 是否重新連接以及連接到哪個會話取決於對話的[重新連接記錄](#resume-outcomes)。225要恢復您使用 `claude --remote-control` 或 `/remote-control` 啟動的會話,請使用 `claude --continue` 或 `claude --resume` 恢復對話。如果 Remote Control 無法重新連接,請參閱[無法重新連接到您的 Remote Control 會話](#couldnt-reconnect-to-your-remote-control-session)。

231 226 

232如果您在第一個終端機仍然開啟 Remote Control 時在第二個終端機中恢復對話,Claude Code 會在第二個終端機中列印通知,並改為在那裡關閉 Remote Control,而不是從第一個終端機奪取會話。當 Remote Control 在那裡保持關閉時,該終端機中的 Claude 看不到[您在其他機器上的會話](/docs/zh-TW/cross-session-messaging#see-which-sessions-claude-can-reach),它們也無法到達它。在第二個終端機中執行 `/remote-control` 以將 Remote Control 移動到它。227如果您在第一個終端機仍然開啟 Remote Control 時在第二個終端機中恢復對話,Claude Code 會在第二個終端機中列印 `Remote Control not started here` 通知並改為在那裡關閉 Remote Control,而不是從第一個終端機奪取會話。在第二個終端機中執行 `/remote-control` 以將 Remote Control 移動到它。

233 228 

234當您在啟用了 Remote Control 的 Claude Desktop 或 IDE 擴充功能中恢復對話時,Claude Code 會將其重新附加到現有的 claude.ai 會話,而不是向會話清單新增新會話。229當您在啟用了 Remote Control 的 Claude Desktop 或 IDE 擴充功能中恢復對話時,Claude Code 會將其重新附加到現有的 claude.ai 會話,而不是向會話清單新增新會話。

235 230 


239 234 

240您的本地 Claude Code 會話僅發出出站 HTTPS 請求,永遠不會在您的機器上開啟入站連接埠。當您啟動 Remote Control 時,它會向 Anthropic API 註冊並輪詢工作。當您從另一個裝置連接時,伺服器會透過串流連接在網頁或行動用戶端與您的本地會話之間路由訊息。235您的本地 Claude Code 會話僅發出出站 HTTPS 請求,永遠不會在您的機器上開啟入站連接埠。當您啟動 Remote Control 時,它會向 Anthropic API 註冊並輪詢工作。當您從另一個裝置連接時,伺服器會透過串流連接在網頁或行動用戶端與您的本地會話之間路由訊息。

241 236 

242所有流量都透過 TLS 上的 Anthropic API 傳輸,與任何 Claude Code 會話相同的傳輸安全性。連接使用多個短期認證,每個認證的範圍限定為單一目的並獨立過期。當 `claude remote-control` 伺服器的註冊認證過期時,伺服器會再次向 Anthropic API 註冊並繼續為其會話提供服務。237所有流量都透過 TLS 上的 Anthropic API 傳輸,與任何 Claude Code 會話相同的傳輸安全性。連接使用多個短期認證,每個認證的範圍限定為單一目的並獨立過期。

243 238 

244Remote Control 連接時,會話記錄(包括您的訊息、Claude 的回應和工具活動)會儲存在 Anthropic 伺服器上。儲存的記錄可讓對話在您的裝置間保持同步,並讓會話在網路中斷後重新連接。執行和檔案系統存取保留在您的機器上,儲存的記錄會根據[資料使用](/docs/zh-TW/data-usage)政策保留。239Remote Control 連接時,會話記錄(包括您的訊息、Claude 的回應和工具活動)會儲存在 Anthropic 伺服器上。儲存的記錄可讓對話在您的裝置間保持同步,並讓會話在網路中斷後重新連接。執行和檔案系統存取保留在您的機器上,儲存的記錄會根據[資料使用](/docs/zh-TW/data-usage)政策保留。

245 240 


309對於遺失或被盜的裝置,成員從此頁面移除它。如果成員無法登入,管理員可以在管理員主控台中使用**到處登出**來撤銷該成員的每個會話和已註冊的裝置,之後成員重新註冊他們仍然持有的裝置。304對於遺失或被盜的裝置,成員從此頁面移除它。如果成員無法登入,管理員可以在管理員主控台中使用**到處登出**來撤銷該成員的每個會話和已註冊的裝置,之後成員重新註冊他們仍然持有的裝置。

310 305 

311<h2 id="remote-control-vs-cloud-sessions">306<h2 id="remote-control-vs-cloud-sessions">

312 Remote Control 與雲端會話的比較307 遠端控制與雲端工作階段

313</h2>308</h2>

314 309 

315Remote Control 和[雲端會話](/docs/zh-TW/claude-code-on-the-web)都使用 claude.ai/code 介面。關鍵區別在於會話執行的位置:Remote Control 在您的機器上執行,因此您的本地 MCP servers、工具和專案設定保持可用。雲端會話在雲端基礎設施上執行,預設由 Anthropic 管理。310遠端控制和[雲端工作階段](/docs/zh-TW/claude-code-on-the-web)都使用 claude.ai/code 介面。主要差異在於工作階段執行的位置:遠端控制在您的機器上執行,因此您的本機 MCP 伺服器、工具和專案設定保持可用。雲端工作階段在雲端基礎設施上執行,預設由 Anthropic 管理。

311 

312當您正在進行本機工作並想從另一台裝置繼續時,請使用遠端控制。當您想在沒有任何本機設定的情況下開始工作、處理您未複製的儲存庫,或並行執行多個工作時,請使用雲端工作階段。[專案](/docs/zh-TW/claude-projects)結合了兩者:其執行緒在雲端執行,當您在那裡要求時,它使用遠端控制來[在您的電腦上執行執行緒](/docs/zh-TW/claude-projects#run-a-thread-on-your-own-computer)。

316 313 

317當您在本地工作中途並想從另一個裝置繼續時,請使用 Remote Control。當您想在沒有任何本地設定的情況下啟動任務、處理您沒有複製的儲存庫或並行執行多個任務時,請使用雲端會話。314Claude Code 提供了多種方式讓您在不在終端機時進行工作。它們在觸發工作的方式、Claude 執行的位置以及您需要設定的程度上有所不同。

315 

316| | 觸發 | Claude 執行位置 | 設定 | 最適合 |

317| :- | :- | :- | :- | :- |

318| [Dispatch](/docs/zh-TW/desktop#sessions-from-dispatch) | 從 Claude 行動應用程式傳送任務訊息 | 您的機器 (Desktop) | [將行動應用程式與 Desktop 配對](https://support.claude.com/en/articles/13947068) | 在您不在時委派工作,最少設定 |

319| [Remote Control](/docs/zh-TW/remote-control) | 從 [claude.ai/code](https://claude.ai/code) 或 Claude 行動應用程式驅動執行中的工作階段 | 您的機器 (CLI、Desktop 或 VS Code) | 執行 [`claude remote-control` 或 `/remote-control`](/docs/zh-TW/remote-control#start-a-remote-control-session) | 從另一個裝置控制進行中的工作 |

320| [Channels](/docs/zh-TW/channels) | 從聊天應用程式 (如 Telegram 或 Discord) 或您自己的伺服器推送事件 | 您的機器 (CLI) | [安裝頻道外掛程式](/docs/zh-TW/channels#quickstart) 或 [建立您自己的](/docs/zh-TW/channels-reference) | 對外部事件 (如 CI 失敗或聊天訊息) 做出反應 |

321| [Slack](/docs/zh-TW/slack) | 在團隊頻道中提及 `@Claude` | Anthropic 雲端 | [安裝 Slack 應用程式](/docs/zh-TW/slack#setting-up-claude-code-in-slack) 並啟用 [網路上的 Claude Code](/docs/zh-TW/claude-code-on-the-web) | 從團隊聊天進行 PR 和審查 |

322| [Self-hosted environments](/docs/zh-TW/self-hosted-environments) | 啟動 [雲端工作階段](/docs/zh-TW/claude-code-on-the-web) 並選擇您組織的環境 | 您組織的基礎設施 | [部署執行器](/docs/zh-TW/self-hosted-environments-quickstart),在 Team 和 Enterprise 方案上 | 必須在您的網路內執行的雲端工作階段 |

323| [Scheduled tasks](/docs/zh-TW/scheduled-tasks) | 設定排程 | [CLI](/docs/zh-TW/scheduled-tasks)、[Desktop](/docs/zh-TW/desktop-scheduled-tasks) 或 [雲端](/docs/zh-TW/routines) | 選擇頻率 | 定期自動化 (如每日審查) |

318 324 

319<h2 id="mobile-push-notifications">325<h2 id="mobile-push-notifications">

320 行動推播通知326 行動推播通知

321</h2>327</h2>

322 328 

323當 Remote Control 處於活動狀態時,Claude 可以向您的手機發送推播通知。329當遠端控制啟用時,Claude 可以將推播通知傳送到您的手機。

324 330 

325Claude 決定何時推播。它通常在長時間執行的任務完成或需要您的決定以繼續時發送一個。您也可以在提示中請求推播,例如 `notify me when the tests finish`。除了下面的開啟/關閉切換外,沒有按事件配置。331Claude 決定何時推播。它通常在長時間執行的工作完成時或需要您的決定才能繼續時傳送一則通知。您也可以在提示中要求推播,例如 `notify me when the tests finish`。除了下面的兩個開啟/關閉切換外,沒有每個事件的設定。

326 332 

327要設定行動推播通知:333若要設定行動推播通知:

328 334 

329<Steps>335<Steps>

330 <Step title="安裝 Claude 行動應用程式">336 <Step title="安裝 Claude 行動應用程式">

331 下載 Claude 應用程式([iOS](https://apps.apple.com/us/app/claude-by-anthropic/id6473753684) 或 [Android](https://play.google.com/store/apps/details?id=com.anthropic.claude))。337 下載 Claude 應用程式,適用於 [iOS](https://apps.apple.com/us/app/claude-by-anthropic/id6473753684) 或 [Android](https://play.google.com/store/apps/details?id=com.anthropic.claude)。

332 </Step>338 </Step>

333 339 

334 <Step title="使用您的 Claude Code 帳戶登入">340 <Step title="使用您的 Claude Code 帳戶登入">


340 </Step>346 </Step>

341 347 

342 <Step title="在 Claude Code 中啟用推播">348 <Step title="在 Claude Code 中啟用推播">

343 在您的終端機中,執行 `/config` 並啟用**當 Claude 決定時推播**以取得主動通知、**需要操作時推播**以取得權限提示和問題,或兩者。349 在您的終端機中,執行 `/config` 並啟用 **Push when Claude decides**(當 Claude 決定時推播)以取得主動通知、**Push when actions required**(當需要採取行動時推播)以取得權限提示和問題,或兩者都啟用。

344 </Step>350 </Step>

345</Steps>351</Steps>

346 352 

347如果通知未送達:353如果通知未送達:

348 354 

349* 如果 `/config` 顯示**未註冊行動裝置**,請在手機上開啟 Claude 應用程式,以便它可以重新整理其推播令牌。下次 Remote Control 連接時,警告會清除。355* 如果 `/config` 顯示 **No mobile registered**(未註冊行動裝置),請在您的手機上開啟 Claude 應用程式,以便它可以重新整理其推播權杖。下次遠端控制連線時,警告會清除。

350* 在 iOS 上,焦點模式和通知摘要可能會抑制或延遲推播。檢查設定 → 通知 → Claude。356* 在 iOS 上,焦點模式和通知摘要可能會抑制或延遲推播。檢查設定 → 通知 → Claude。

351* 在 Android 上,激進的電池優化可能會延遲傳遞。在系統設定中將 Claude 應用程式豁免於電池優化。357* 在 Android 上,積極的電池最佳化可能會延遲傳遞。在系統設定中將 Claude 應用程式從電池最佳化中豁免。

352 358 

353Claude Code 在您在連接的終端機中輸入或專注時會跳過行動推播通知。自 v2.1.181 起,您可以將 [`CLAUDE_CLIENT_PRESENCE_FILE`](/docs/zh-TW/env-vars) 設定為標記檔案路徑,以將其擴展到您在機器上的任何時間,即使在另一個視窗中:當檔案存在時,通知會被跳過。配置螢幕鎖定監聽器或類似工具,以在螢幕解鎖時建立檔案,並在螢幕鎖定時刪除檔案。359當您在連線的終端機中輸入或專注時,Claude Code 會略過行動推播通知。若要將此擴展到您在機器上的任何時間,即使在另一個視窗中,請將 [`CLAUDE_CLIENT_PRESENCE_FILE`](/docs/zh-TW/env-vars) 設定為標記檔案路徑:當檔案存在時,通知會被略過。設定螢幕鎖定接聽程式或類似工具,以在螢幕解鎖時建立檔案,並在螢幕鎖定時刪除檔案。

354 360 

355<h2 id="limitations">361<h2 id="limitations">

356 限制362 限制

357</h2>363</h2>

358 364 

359* **每個互動式程序一個遠端會話**:在伺服器模式之外,每個 Claude Code 實例一次支援一個遠端會話。使用[伺服器模式](#start-a-remote-control-session)從單個程序執行多個並行會話。365* **每個互動程序一個遠端工作階段**:在伺服器模式之外,每個 Claude Code 實例一次只支援一個遠端工作階段。使用[伺服器模式](#start-a-remote-control-session)從單一程序執行多個並行工作階段。

360* **本地程序必須保持執行**:Remote Control 作為本地程序執行。如果您關閉終端機、退出 VS Code 或以其他方式停止 `claude` 程序,會話會離線,直到您[將其恢復](#resume-sessions-after-stopping-the-server)。除非 Claude 正在執行任務中,否則 claude.ai 和 Claude 應用程式會在程序退出後幾秒內將會話顯示為離線。若要在您從 SSH 斷開連線後保持遠端機器上的會話執行,請在 `tmux` 或 `screen` 內啟動它。366* **本機程序必須保持執行**:Remote Control 以本機程序的形式執行。如果您關閉終端機、結束 Desktop 應用程式或 VS Code,或以其他方式停止 `claude` 程序,工作階段將離線,直到您[將其恢復](#resume-sessions-after-stopping-the-server)。若要在您從 SSH 中斷連線後讓工作階段在遠端機器上保持執行,請在 `tmux` 或 `screen` 內啟動它。

361* **伺服器模式中的已崩潰會話**:如果由 `claude remote-control` 提供的會話崩潰,請從已連接的裝置向其傳送訊息。Claude Code 會再次提供它。您不必重新啟動伺服器。需要 Claude Code v2.1.238 或更新版本。367* **伺服器模式中的已損毀工作階段**:如果由 `claude remote-control` 提供服務的工作階段損毀,請從已連線的裝置向其傳送訊息。Claude Code 會再次提供服務。您不必重新啟動伺服器。需要 Claude Code v2.1.238 或更新版本。

362* **已連接會話上的 HTTP 403 拒絕**:一旦互動式會話連接,當您的機器和 Anthropic 伺服器之間的某些內容以 HTTP 403 回應時(在 VPN 或網路變更後可能發生),Claude Code 會重試最多三分鐘。如果拒絕持續更長時間,Claude Code 會斷開連線,原因會指出拒絕的內容:網路邊界,或您自己網路上的代理、VPN 或防火牆。368* **已連線工作階段上的 HTTP 403 拒絕**:一旦互動工作階段已連線,當您的機器與 Anthropic 伺服器之間的某個位置以 HTTP 403 回應時(在 VPN 或網路變更後可能發生),Claude Code 會重試最多三分鐘。如果拒絕持續更久,Claude Code 會中斷連線,原因會指出拒絕的內容:網路邊界,或您自己網路上的代理、VPN 或防火牆。

363* **延長的網路中斷**:如果您的機器處於喚醒狀態但無法到達網路,您接下來的操作取決於模式:369* **延長的網路中斷**:如果您的機器已開啟但無法連線到網路,您接下來的操作取決於模式:

364 * **伺服器模式**:Claude Code 在大約 10 分鐘後放棄,`claude remote-control` 程序退出。再次執行 `claude remote-control` 以啟動新會話。370 * **伺服器模式**:Claude Code 在大約 10 分鐘後放棄,`claude remote-control` 程序退出。再次執行 `claude remote-control` 以啟動新工作階段。

365 * **互動式會話**:繼續在本地工作。Claude Code 會在中斷期間重試,並在網路恢復時自動重新連接。371 * **互動工作階段**:繼續在本機工作。Claude Code 會在中斷期間重試,並在網路恢復時自動重新連線。

366* **存在心跳失敗**:如果互動式會話斷開連線並顯示 `could not reach the Remote Control server for about 30 minutes`,執行 `/remote-control` 以重新連接。Claude Code 只在會話的存在心跳失敗而其餘連接保持正常時才顯示此訊息;它會在大約 30 分鐘內持續重新註冊會話,之後才斷開連線。372* **存在心跳失敗**:如果互動工作階段以 `could not reach the Remote Control server for about 30 minutes` 中斷連線,執行 `/remote-control` 以重新連線。

367* **轉發的對話框過期**:Claude Code 會保持權限提示和 `AskUserQuestion` 問題開啟,直到您回答。當 Claude Code 將另一種對話框轉發到遠端會話時,例如安全拒絕後顯示的模型選擇提示,預設情況下它會等待五分鐘,然後關閉對話框並繼續使用對話框的無操作預設值。設定 [`dialogExpiry`](/docs/zh-TW/settings-reference#dialogexpiry) 以調整或停用截止時間。需要 Claude Code v2.1.224 或更新版本。373* **轉送的對話框過期**:Claude Code 會保持權限提示和 `AskUserQuestion` 問題開啟,直到您回答。當 Claude Code 將另一種對話框轉送到遠端工作階段時,例如安全拒絕後顯示的模型選擇提示,預設情況下會等待五分鐘,然後關閉對話框並繼續使用對話框的無操作預設值。設定 [`dialogExpiry`](/docs/zh-TW/settings-reference#dialogexpiry) 以調整或停用截止時間。需要 Claude Code v2.1.224 或更新版本。

368* **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)。374* **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)。

369* **某些命令僅限本地**:只在終端機介面中執行的命令,例如 `/plugin` 或 `/resume`,無論您是否傳遞引數,都只能從本地 CLI 使用。以下命令可從行動和網頁使用:375* **某些命令僅限本機**:僅在終端機介面中執行的命令,例如 `/plugin` 或 `/resume`,只能從本機 CLI 執行,無論您是否傳遞引數。以下命令可從行動裝置和網路使用:

370 * 文字輸出命令:`/compact`、`/clear`、`/context`、`/usage`、`/exit`、`/usage-credits`、`/recap` 和 `/reload-plugins`。`/usage-credits` 列印帳單 URL 而不是開啟瀏覽器。`/reload-plugins` 只在會話在互動式終端機中執行時有效;沒有終端機的會話會拒絕它。376 * 文字輸出命令:`/compact`、`/clear`、`/context`、`/usage`、`/exit`、`/usage-credits`、`/recap` 和 `/reload-plugins`。`/usage-credits` 列印計費 URL 而不是開啟瀏覽器。`/reload-plugins` 僅在工作階段在互動終端機中執行時有效;沒有終端機的工作階段會拒絕它。

371 * `/model`、`/effort`、`/fast`、`/color` 和 `/rename`:將值作為引數傳遞,例如 `/model sonnet` 或 `/effort high`。從行動和網頁,`/model` 和 `/effort` 在終端機選擇器或滑桿的位置接受引數。377 * `/model`、`/effort`、`/fast`、`/color` 和 `/rename`:將值作為引數傳遞,例如 `/model sonnet` 或 `/effort high`。從行動裝置和網路,`/model` 和 `/effort` 會取代終端機選擇器或滑桿來接受引數。

372 * `/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` 不帶伺服器名稱會重新連接每個已失敗或需要驗證的伺服器。378 * `/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` 會重新連線每個已失敗或需要驗證的伺服器。

373 * `/config`:從行動應用程式,傳遞 `key=value` 以設定設定,或不帶引數執行以列出您可以設定的金鑰。在網頁上,`/config` 改為開啟您設定的 Claude Code 部分,並忽略命令後的文字。379 * `/config`:從行動應用程式,傳遞 `key=value` 以設定設定,或不帶引數執行以列出您可以設定的金鑰。在網路上,`/config` 會改為開啟您設定的 Claude Code 部分,並忽略命令後的文字。

374 * 在 Team 和 Enterprise 上,從行動或網頁執行的 `/usage-credits` 不會傳送[使用額度請求給您的管理員](/docs/zh-TW/costs#add-usage-credits-to-your-subscription)。傳送需要只在互動式 CLI 中出現的確認,因此命令會告訴您改為在那裡執行它。在 v2.1.211 之前,文字形式會在沒有確認的情況下傳送請求。380 * 在 Team 和 Enterprise 上,從行動裝置或網路執行的 `/usage-credits` 不會傳送[使用額度請求給您的管理員](/docs/zh-TW/costs#add-usage-credits-to-your-subscription)。傳送需要僅在互動 CLI 中出現的確認,因此命令會告訴您改為在那裡執行它。

375 * `/autocompact`,自 v2.1.221 起:將視窗大小作為引數傳遞,例如 `/autocompact 500k`。不帶引數時,它會列印目前的視窗大小作為文字,而不是開啟命令在終端機會話中顯示的對話框。381 * `/autocompact`,從 v2.1.221:將視窗大小作為引數傳遞,例如 `/autocompact 500k`。不帶引數時,它會列印目前的視窗大小作為文字,而不是開啟命令在終端機工作階段中顯示的對話框。

376 * `/advisor`,自 v2.1.260 起:將模型作為引數傳遞,例如 `/advisor opus`,或傳遞 `off` 以關閉顧問。兩種形式都只適用於目前會話,並保持您已儲存的預設值不變。不帶引數時,它會列印目前的顧問作為文字,而不是開啟選擇器。382 * `/advisor`,從 v2.1.260:將模型作為引數傳遞,例如 `/advisor opus`,或傳遞 `off` 以關閉顧問。兩種形式都僅適用於目前工作階段,並保持您儲存的預設值不變。不帶引數時,它會列印目前的顧問作為文字,而不是開啟選擇器。

377 * `/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),請在會話本身中選擇它。383 * `/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),請在工作階段本身中選擇它。

384 * `/focus`,從 v2.1.281:將 `on` 或 `off` 作為引數傳遞,例如 `/focus on`,或不帶引數執行以切換[焦點檢視](/docs/zh-TW/commands#all-commands)。兩種形式都僅適用於目前工作階段,並保持您儲存的選擇不變。

378 385 

379<h2 id="troubleshooting">386<h2 id="troubleshooting">

380 疑難排解387 疑難排解

381</h2>388</h2>

382 389 

383<h3 id="remote-control-requires-a-claude-ai-subscription">390<h3 id="remote-control-requires-a-claude-ai-subscription">

384 「Remote Control 需要 claude.ai 訂閱」391 "Remote Control requires a claude.ai subscription"

385</h3>392</h3>

386 393 

387您未使用 claude.ai 帳戶進行驗證,或另一個認證優先於您的登入。此訊息採用以下其中一種形式:394您未使用 claude.ai 帳戶登入,或另一個認證方式優先於您的登入。此訊息採用以下其中一種形式:

388 395 

389* 已登出,來自 `/remote-control` 或 `--remote-control`:`Remote Control requires a claude.ai subscription.` 或 `/remote-control requires a claude.ai subscription.`396* 已登出,來自 `/remote-control` 或 `--remote-control`:`Remote Control requires a claude.ai subscription.` 或 `/remote-control requires a claude.ai subscription.`

390* 已登出,來自 `claude remote-control`:`You must be logged in to use Remote Control. Remote Control is only available with claude.ai subscriptions.`397* 已登出,來自 `claude remote-control`:`You must be logged in to use Remote Control. Remote Control is only available with claude.ai subscriptions.`

391* 已登入,但正在使用 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` 的命名方式相同。398* 已登入,但正在使用 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` 的命名方式相同。

392 399 

393執行 `claude auth login` 並選擇 claude.ai 選項。如果訊息名稱為 `ANTHROPIC_API_KEY` 或 `ANTHROPIC_AUTH_TOKEN`,請在設定它的任何地方移除它:您的 shell 環境或[設定檔](/docs/zh-TW/settings-reference#env)的 `env` 區塊。如果它名稱為 `apiKeyHelper`,請移除該設定。400執行 `claude auth login` 並選擇 claude.ai 選項。如果訊息提及 `ANTHROPIC_API_KEY` 或 `ANTHROPIC_AUTH_TOKEN`,請在設定的位置移除它:您的 shell 環境或[設定檔](/docs/zh-TW/settings-reference#env)的 `env` 區塊。如果提及 `apiKeyHelper`,請移除該設定。

394 

395在 v2.1.206 之前,在登出時執行 `/remote-control` 會報告 `Unknown command: /remote-control` 而不是此訊息。

396 401 

397<h3 id="remote-control-requires-a-full-scope-login-token">402<h3 id="remote-control-requires-a-full-scope-login-token">

398 「Remote Control 需要完整範圍登入令牌」403 "Remote Control requires a full-scope login token"

399</h3>404</h3>

400 405 

401您使用來自 `claude setup-token` 或 `CLAUDE_CODE_OAUTH_TOKEN` 環境變數的長期令牌進行驗證。這些令牌只能進行模型請求,因此無法建立 Remote Control 會話。執行 `claude auth login` 以改用完整範圍會話令牌進行驗證。406您使用來自 `claude setup-token` 或 `CLAUDE_CODE_OAUTH_TOKEN` 環境變數的長期權杖進行驗證。這些權杖只能進行模型請求,因此無法建立 Remote Control 工作階段。執行 `claude auth login` 以改用完整範圍的工作階段權杖進行驗證。

402 407 

403<h3 id="unable-to-determine-your-organization-for-remote-control-eligibility">408<h3 id="unable-to-determine-your-organization-for-remote-control-eligibility">

404 「無法確定您的組織以進行 Remote Control 資格檢查」409 "Unable to determine your organization for Remote Control eligibility"

405</h3>410</h3>

406 411 

407您的快取帳戶資訊已過期或不完整。執行 `claude auth login` 以重新整理它。412您的快取帳戶資訊已過期或不完整。執行 `claude auth login` 以重新整理它。

408 413 

409<h3 id="remote-control-isn’t-enabled-for-this-account">414<h3 id="remote-control-isn’t-enabled-for-this-account">

410 「Remote Control 尚未為此帳戶啟用」415 "Remote Control isn't enabled for this account"

411</h3>416</h3>

412 417 

413Claude Code 檢查了您登入帳戶的 Remote Control 可用性,檢查結果為關閉。通常的原因是快取的權利在方案變更後已過期。執行 `claude auth logout` 然後 `claude auth login` 以重新整理它們,如果您使用的是舊版本,請更新 Claude Code。418Claude Code 檢查了您登入帳戶的 Remote Control 可用性,檢查結果為關閉。通常的原因是快取的權利在計畫變更後已過期。執行 `claude auth logout` 然後 `claude auth login` 以重新整理它們,並在您使用舊版本時更新 Claude Code。

414 419 

415執行 `claude doctor` 以查看哪個個別資格檢查失敗。環境變數衝突、無法到達的檢查和您的組織的 Remote Control 設定各自產生自己的訊息,因此此錯誤表示帳戶級別的檢查本身。420執行 `claude doctor` 以查看哪個個別資格檢查失敗。環境變數衝突、無法到達的檢查和您組織的 Remote Control 設定各自產生自己的訊息,因此此錯誤表示帳戶層級的檢查本身。

416 421 

417在 v2.1.239 之前,此訊息讀作「Remote Control is not yet enabled for your account」。在 v2.1.154 之前,停用功能旗標評估的變數(例如 `DISABLE_TELEMETRY` 或 `DO_NOT_TRACK`)也會產生此訊息;下面的「Remote Control requires feature-flag evaluation」項目涵蓋該配置。422在 v2.1.239 之前,此訊息讀作「Remote Control is not yet enabled for your account」。

418 423 

419<h3 id="couldn’t-verify-remote-control-eligibility">424<h3 id="couldn’t-verify-remote-control-eligibility">

420 「無法驗證 Remote Control 資格」425 "Couldn't verify Remote Control eligibility"

421</h3>426</h3>

422 427 

423Claude Code 無法到達功能旗標服務以檢查您的帳戶是否啟用了 Remote Control,通常是因為您離線或代理阻止了請求。一旦您有網路存取權,請重試,或執行 `claude doctor` 以取得詳細資訊。相關訊息「無法驗證您的組織的 Remote Control 政策」具有相同的原因和相同的修復。兩個訊息都在 v2.1.178 中新增。428Claude Code 無法到達功能旗標服務以檢查您的帳戶是否啟用了 Remote Control,通常是因為您離線或代理伺服器阻止了請求。一旦您有網路存取權,請重試,或執行 `claude doctor` 以取得詳細資訊。相關訊息「Couldn't verify your organization's Remote Control policy」表示 Claude Code 在讀取該原則時遇到錯誤,並具有相同的修正方式。

424 429 

425<h3 id="remote-control-requires-feature-flag-evaluation">430<h3 id="remote-control-requires-feature-flag-evaluation">

426 「Remote Control 需要功能旗標評估」431 "Remote Control requires feature-flag evaluation"

427</h3>432</h3>

428 433 

429設定了以下其中一個變數:[`DISABLE_TELEMETRY`、`DO_NOT_TRACK`、`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` 或 `DISABLE_GROWTHBOOK`](/docs/zh-TW/env-vars)。每一個都停用了 Remote Control 可用性所依賴的功能旗標評估,完整訊息會命名 Claude Code 找到的變數。在設定它的任何地方取消設定該變數,在您的 shell 環境或 [`settings.json` 檔案](/docs/zh-TW/settings-reference#all-settings)的 `env` 區塊中。在 2.1.154 之前的版本上,相同的配置會產生「Remote Control is not yet enabled for your account」。434設定了[環境變數](/docs/zh-TW/env-vars#features-that-need-feature-flag-fetching)以關閉功能旗標評估,完整訊息會命名 Claude Code 找到的變數。在 2.1.154 之前的版本上,相同的設定會改為產生「Remote Control is not yet enabled for your account」。要執行的操作取決於訊息命名的變數:

435 

436* **`CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` 或 `DISABLE_GROWTHBOOK`**:在設定的位置取消設定變數,在您的 shell 環境或 [`settings.json` 檔案](/docs/zh-TW/settings-reference#all-settings)的 `env` 區塊中。

437* **`DISABLE_TELEMETRY` 或 `DO_NOT_TRACK`**:在 Pro、Max、Team 或 Enterprise 計畫上且 `DISABLE_GROWTHBOOK` 未設定的情況下,這些變數會保持 Remote Control 可用,除非您的組織需要[信任裝置](#trusted-devices)。如果需要,在設定的位置取消設定變數以使用 Remote Control。從 v2.1.154 到 v2.1.282,任一變數都會產生此訊息,因此請將 Claude Code 更新至 v2.1.283 或更新版本。

430 438 

431<h3 id="remote-control-is-only-available-when-using-claude-via-api-anthropic-com">439<h3 id="remote-control-is-only-available-when-using-claude-via-api-anthropic-com">

432 「Remote Control 僅在透過 api.anthropic.com 使用 Claude 時可用」440 "Remote Control is only available when using Claude via api.anthropic.com"

433</h3>441</h3>

434 442 

435會話未直接與 Anthropic API 通訊,因此沒有 claude.ai 後端可配對。這發生在 Amazon Bedrock、Google Cloud 的 Agent Platform 和 Microsoft Foundry 上。當 [`ANTHROPIC_BASE_URL`](/docs/zh-TW/env-vars) 指向 `api.anthropic.com` 以外的主機時,例如 [LLM 閘道](/docs/zh-TW/llm-gateway)或代理,即使您使用 claude.ai 登入,也會發生這種情況。在 v2.1.196 之前,Claude Code 對於自訂 `ANTHROPIC_BASE_URL` 不會顯示此訊息。請參閱[錯誤參考](/docs/zh-TW/errors#remote-control-requires-the-anthropic-api)以取得完整的原因清單。443工作階段未直接與 Anthropic API 通訊,因此沒有 claude.ai 後端可配對。這發生在 Amazon Bedrock、Google Cloud 的 Agent Platform 和 Microsoft Foundry 上。當 [`ANTHROPIC_BASE_URL`](/docs/zh-TW/env-vars) 指向 `api.anthropic.com` 以外的主機時,例如 [LLM 閘道](/docs/zh-TW/llm-gateway)或代理伺服器,即使您使用 claude.ai 登入,也會發生這種情況。請參閱[錯誤參考](/docs/zh-TW/errors#remote-control-requires-the-anthropic-api)以取得完整的原因清單。

436 444 

437訊息會命名將會話路由遠離 Anthropic API 的內容,例如 `CLAUDE_CODE_USE_BEDROCK` 或自訂 `ANTHROPIC_BASE_URL`。如果您有符合資格的 claude.ai 登入,請取消設定命名的變數,如果您在那裡設定了它,請從[設定](/docs/zh-TW/settings)中的 `env` 金鑰移除它,然後重新啟動會話。在 v2.1.219 之前,訊息只是本節標題中的句子,因此在較舊的版本上,請自行檢查您的環境以查找提供者變數,例如 `CLAUDE_CODE_USE_BEDROCK` 和 `CLAUDE_CODE_USE_VERTEX`,以及 `ANTHROPIC_BASE_URL`。445訊息會命名將工作階段路由離開 Anthropic API 的內容,例如 `CLAUDE_CODE_USE_BEDROCK` 或自訂 `ANTHROPIC_BASE_URL`。如果您有符合資格的 claude.ai 登入,請取消設定命名的變數,如果您在[設定](/docs/zh-TW/settings)中設定了它,請從 `env` 金鑰中移除它,然後重新啟動工作階段。

438 446 

439<h3 id="remote-control-is-disabled-by-your-organization’s-policy">447<h3 id="remote-control-is-disabled-by-your-organization’s-policy">

440 「Remote Control 已被您的組織政策停用」448 "Remote Control is disabled by your organization's policy"

449</h3>

450 

451原則阻止了 Remote Control。按順序檢查這些原因:

452 

453* **錯誤提及 `disableRemoteControl`**:您的 IT 管理員已透過[受管設定](/docs/zh-TW/managed-settings)在此裝置上停用 Remote Control,獨立於組織範圍的切換和您的登入方式。

454* **您的 claude.ai 計畫是 Pro 或 Max**:Claude Code 仍在來自較早登入的 Team 或 Enterprise 組織下登入,因此它會檢查該組織的 Remote Control 原則。執行 `/status` 以查看您的登入使用哪個計畫和組織。執行 `claude auth logout` 然後 `claude auth login` 以在您目前的計畫下重新登入。

455* **訊息未說要聯絡您的組織管理員**:您的組織有與 Remote Control 不相容的 HIPAA 設定,且 `/status` 在其 `Compliance` 列中列出 `HIPAA`。在此狀態下,管理員面板的 Remote Control 切換呈灰色,因此擁有者無法在那裡變更它。聯絡 Anthropic 支援以討論選項。在 v2.1.267 之前,此情況顯示「Remote Control isn't available for your organization due to its compliance policy」。

456* **否則,擁有者尚未為您的組織啟用它**:Remote Control 在 Team 和 Enterprise 計畫上預設為關閉。擁有者可以在 [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code) 啟用它,方法是開啟 **Remote Control** 切換。此切換是伺服器端組織設定。

457 

458在 v2.1.281 之前,當 Claude Code 未在此機器上載入您的組織原則時,此訊息也會出現,例如在離線啟動後。更新版本會改為將該狀態報告為 [`Couldn't verify your organization's policy for remote control`](#couldnt-verify-your-organizations-policy-for-remote-control)。

459 

460<h3 id="couldnt-verify-your-organizations-policy-for-remote-control">

461 "Couldn't verify your organization's policy for remote control"

441</h3>462</h3>

442 463 

443政策阻止 Remote Control,或 Claude Code 無法在此機器上載入您的組織政策,同時保持 Remote Control 關閉。按順序檢查這些原因:464Claude Code 無法擷取您的組織原則,且此機器上沒有已儲存的副本可改用,因此它會保持 Remote Control 關閉,直到它可以確認您的組織允許它。這通常發生在您離線啟動 Claude Code 或在 VPN 連線之前,或當代理伺服器干擾請求時。在緩慢的連線上,當第一個請求仍在進行中時,它也可能出現。

444 465 

445* **錯誤提及 `disableRemoteControl`**:您的 IT 管理員已透過[受管設定](/docs/zh-TW/managed-settings)在此裝置上停用 Remote Control,獨立於組織範圍的切換和您如何登入。466訊息採用以下其中一種形式:

446* **您的 claude.ai 方案是 Pro 或 Max**:Claude Code 仍然以較早登入的 Team 或 Enterprise 組織身份登入,因此它檢查該組織的 Remote Control 政策。執行 `/status` 以查看您的登入使用的方案和組織。執行 `claude auth logout` 然後 `claude auth login` 以在您目前的方案下重新登入。467 

447* **組織政策未在此機器上載入**:執行 `claude doctor` 並閱讀 `Organization policy` 行。如果該行顯示政策未載入,那就是保持 Remote Control 關閉的原因。在 v2.1.261 之前,`claude doctor` 未列印此行。468* 來自 `/remote-control`、`claude remote-control` 或 `claude --remote-control`:`Couldn't verify your organization's policy for remote control. Check your network connection and try again.`

448* **訊息未說聯絡您的組織管理員**:您的組織具有與 Remote Control 不相容的 HIPAA 配置,`/status` 在其 `Compliance` 行中列出 `HIPAA`。在此狀態下,管理面板的 Remote Control 切換呈灰色,因此 Owner 無法在那裡變更它。聯絡 Anthropic 支援以討論選項。在 v2.1.267 之前,此情況顯示「Remote Control isn't available for your organization due to its compliance policy」。469* 來自[自動連線](#enable-remote-control-for-all-sessions)當工作階段啟動時:`couldn't verify your organization's policy — check your network connection and try again`,在通知中以 `Remote Control failed` 為前綴,在對話中以 `Remote Control disconnected` 為前綴。工作階段隨後會保持 Remote Control 關閉。

449* **否則,Owner 尚未為您的組織啟用它**:Remote Control 在 Team 和 Enterprise 方案上預設為關閉。Owner 可以在 [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code) 透過開啟 **Remote Control** 切換來啟用它。此切換是伺服器端組織設定。470 

471恢復您的網路連線,然後執行 `/remote-control` 或再次執行命令。每次嘗試都會再次檢查原則,因此您不需要重新啟動 Claude Code。如果訊息持續出現,請執行 `claude doctor` 並閱讀其 `Organization policy` 列,該列說明原則未載入的原因。

472 

473在 v2.1.281 之前,此狀態顯示 `Remote Control is disabled by your organization's policy`。

450 474 

451<h3 id="remote-credentials-fetch-failed">475<h3 id="remote-credentials-fetch-failed">

452 「Remote credentials fetch failed」476 "Remote credentials fetch failed"

453</h3>477</h3>

454 478 

455Claude Code 無法從 Anthropic API 獲取短期認證以建立連接。使用 `--verbose` 重新執行以查看完整錯誤:479Claude Code 無法從 Anthropic API 取得短期認證以建立連線。使用 `--verbose` 重新執行以查看完整錯誤:

456 480 

457```bash theme={null}481```bash theme={null}

458claude remote-control --verbose482claude remote-control --verbose


460 484 

461常見原因:485常見原因:

462 486 

463* 未登入:執行 `claude` 並使用 `/login` 透過您的 claude.ai 帳戶進行驗證。Remote Control 不支援 API 金鑰驗證。487* 未登入:執行 `claude` 並使用 `/login` 以您的 claude.ai 帳戶進行驗證。Remote Control 不支援 API 金鑰驗證。

464* 網路或代理問題:防火牆或代理可能阻止出站 HTTPS 請求。Remote Control 需要存取埠 443 上的 Anthropic API。488* 網路或代理伺服器問題:防火牆或代理伺服器可能阻止了出站 HTTPS 請求。Remote Control 需要存取埠 443 上的 Anthropic API。

465* 會話建立失敗:如果您也看到 `Session creation failed — see debug log`,失敗發生在設定的早期。檢查您的訂閱是否有效。489* 工作階段建立失敗:如果您也看到 `Session creation failed — see debug log`,失敗發生在設定的較早階段。檢查您的訂閱是否有效。

466 

467過期的登入令牌不會導致此錯誤。當 Anthropic API 拒絕已儲存的令牌時,例如因為另一個 Claude Code 程序已經重新整理了它,Claude Code 會重新整理令牌並自動重試。在 v2.1.224 之前,過期的令牌會導致 Remote Control 啟動失敗並顯示此訊息,因此設定為[自動連接](#enable-remote-control-for-all-sessions)的會話可能在啟動時間歇性失敗。

468 490 

469<h3 id="couldn’t-reconnect-to-your-remote-control-session">491<h3 id="couldnt-reconnect-to-your-remote-control-session">

470 「無法重新連接到您的 Remote Control 會話」492 "Couldn't reconnect to your Remote Control session"

471</h3>493</h3>

472 494 

473當您使用 `claude --resume` 或 `claude --continue` 繼續對話時,Claude Code 會重新連接到該對話中記錄的 Remote Control 會話。此訊息表示重新連接因可能是暫時性的原因(例如網路中斷或伺服器錯誤)而失敗,因此 Claude Code 無法確認遠端會話是否仍然存在。495當您使用 `claude --resume` 或 `claude --continue` 繼續對話時,Claude Code 會重新連線到該對話中記錄的 Remote Control 工作階段。此訊息表示重新連線因可能是暫時的原因(例如網路中斷或伺服器錯誤)而失敗,因此 Claude Code 無法確認遠端工作階段是否仍然存在。

474 

475執行 `/remote-control` 以重試連接,或使用 `claude --remote-control` 啟動新會話以建立新的 Remote Control 會話。您的本機會話在沒有 Remote Control 的情況下繼續執行。

476 

477<span id="resume-outcomes" />當您繼續時,您也可以獲得以下其中一個結果,而不是此訊息:

478 

479* **伺服器報告記錄的會話已消失,或重新連接記錄命名不同的帳戶**:Claude Code 按照對話的重新連接記錄所說的進行:

480 * **記錄命名您登入的帳戶**:Claude Code 使用自動生成的名稱啟動替換會話,並將對話的較早訊息排除在外。例如,在您從 claude.ai 或 Claude 應用程式刪除會話後,您會看到這種情況。

481 * **記錄命名不同的帳戶**:Claude Code 啟動新會話,不包含對話的較早訊息,也不顯示訊息,無論記錄的會話是否仍然存在。

482 * **記錄未說明哪個帳戶擁有會話,或 Claude Code 無法讀取您的已儲存登入**:Claude Code 顯示 [`Previous session is unavailable — run /remote-control to start a new one`](#previous-session-is-unavailable) 而不是此訊息,不啟動任何內容,並從對話中移除記錄。

483* **您在繼續之前關閉了 Remote Control**:除非託管 Claude Code 的應用程式已告訴它該應用程式擁有 claude.ai 會話,否則當您從 CLI 的[狀態面板](#check-connection-status)、VS Code 擴充功能或基於[代理 SDK](/docs/zh-TW/agent-sdk/overview) 的主機關閉 Remote Control 時,Claude Code 會移除重新連接記錄,因此它不會重新連接。當擁有的應用程式關閉它時,Claude Code 會保留記錄並重新連接。

484* **此機器上的另一個 Claude Code 仍然有會話**:您會看到以 `Remote Control not started here` 開頭的通知,Claude Code [在繼續的會話中保持 Remote Control 關閉](#resume-sessions-after-stopping-the-server)。在那裡執行 `/remote-control` 以移動它。

485 496 

486<span id="reconnect-history" />在 v2.1.232 之前,當伺服器報告記錄的會話已消失時,Claude Code 的回應不同。從 v2.1.227 到 v2.1.231,Claude Code 拒絕啟動替換,即使記錄與您的帳戶相符。在 v2.1.226 及更早版本中,Claude Code 啟動替換,無論記錄是否與您的帳戶相符,在 v2.1.224 到 v2.1.226 中,在該機器上登入的帳戶下建立它,從不是另一個帳戶的,不上傳對話的較早訊息到它。在 v2.1.200 之前,Claude Code 在任何重新連接失敗後建立新會話。497執行 `/remote-control` 以重試連線,或使用 `claude --remote-control` 啟動新工作階段以建立新的 Remote Control 工作階段。您的本機工作階段在此期間繼續執行而不使用 Remote Control。

487 498 

488<h3 id="previous-session-is-unavailable">499<h3 id="previous-session-is-unavailable">

489 「Previous session is unavailable — run /remote-control to start a new one」500 "Previous session is unavailable — run /remote-control to start a new one"

490</h3>501</h3>

491 502 

492Claude Code 無法恢復先前的 Remote Control 會話,並停止而不是自動啟動新會話。在使用 `claude --resume` 或 `claude --continue` 繼續對話後,或在 Claude Code [在斷開連接後自動重新連接](/docs/zh-TW/errors#remote-control-couldnt-refresh-your-login)後,您可能會看到此訊息。503Claude Code 無法恢復先前的 Remote Control 工作階段,並停止而不是自行啟動新工作階段。您可以在使用 `claude --resume` 或 `claude --continue` 繼續對話後看到此訊息,或在 Claude Code [在斷線後自行重新連線](/docs/zh-TW/errors#remote-control-couldnt-refresh-your-login)後看到此訊息。

493 504 

494執行 `/remote-control` 以在目前登入下啟動新的 Remote Control 會話;您的本機會話在沒有 Remote Control 的情況下繼續執行。相關訊息 `Remote Control could not verify the signed-in account — run /remote-control to reconnect` 具有相同的修復;當登入帳戶在驗證和重新連接之間變更或無法讀取時,Claude Code 會顯示它。如果您在不重新啟動 Claude Code 的情況下在 `Previous session is unavailable` 後執行 `/remote-control`,Claude Code 會將對話的較早訊息排除在新會話之外。505執行 `/remote-control` 以在目前登入下啟動新的 Remote Control 工作階段;您的本機工作階段在此期間繼續執行而不使用 Remote Control。相關訊息 `Remote Control could not verify the signed-in account — run /remote-control to reconnect` 具有相同的修正方式。如果您在 `Previous session is unavailable` 後執行 `/remote-control` 而不先重新啟動 Claude Code,Claude Code 會將對話的較早訊息排除在新工作階段之外。

495 

496在繼續時,Claude Code [僅在對話的重新連接記錄命名擁有會話的帳戶時才啟動新會話](#resume-outcomes),因為伺服器以相同的方式報告您刪除的會話和由另一個帳戶擁有的會話。v2.1.227 之前的 Claude Code 未記錄該帳戶,當 Claude Code 無法讀取您的已儲存登入時,它無法檢查記錄。v2.1.232 之前的 Claude Code 在[不同的情況集](#reconnect-history)中顯示 `Remote Control could not resume the previous session under the current login — run /remote-control to start fresh`。

497 506 

498<h3 id="remote-control-got-an-unexpected-server-response">507<h3 id="remote-control-got-an-unexpected-server-response">

499 「Remote Control got an unexpected server response」508 "Remote Control got an unexpected server response"

500</h3>509</h3>

501 510 

502Remote Control 伺服器接受了請求,但以此版本的 Claude Code 無法讀取的形式回覆,同時建立遠端會話或擷取其認證。在相同版本上重試會以相同方式失敗。執行 `claude update`,然後執行 `/remote-control` 以重新連接。此訊息在 v2.1.225 中新增。511Remote Control 伺服器接受了請求,但以此版本的 Claude Code 無法讀取的形式回覆,同時建立遠端工作階段或擷取其認證。在相同版本上重試會以相同方式失敗。執行 `claude update`,然後執行 `/remote-control` 以重新連線。

503 512 

504<h3 id="your-organization-requires-trusted-devices-for-remote-control-but-this-device-is-not-enrolled">513<h3 id="your-organization-requires-trusted-devices-for-remote-control-but-this-device-is-not-enrolled">

505 「Your organization requires Trusted Devices for Remote Control, but this device is not enrolled」514 "Your organization requires Trusted Devices for Remote Control, but this device is not enrolled"

506</h3>515</h3>

507 516 

508您的組織已[啟用受信任的裝置](#trusted-devices),此機器尚未註冊。在 Claude Code 中執行 `/login`。註冊作為登入的一部分進行,沒有單獨的註冊命令。517您的組織已啟用[信任裝置](#trusted-devices),此機器尚未註冊。在 Claude Code 中執行 `/login`。註冊作為登入的一部分進行,沒有單獨的註冊命令。

509 518 

510<h3 id="session-expired-for-trusted-device-check">519<h3 id="session-expired-for-trusted-device-check">

511 「session expired for trusted-device check」520 "session expired for trusted-device check"

512</h3>521</h3>

513 522 

514您的登入超過 18 小時。在 Claude Code 中執行 `/login`,或當 claude.ai 或行動應用程式提示您時,使用 Face ID、Touch ID、Windows Hello 或通行金鑰確認。請參閱[受信任的裝置](#trusted-devices)。523您的登入已超過 18 小時。在 Claude Code 中執行 `/login`,或當 claude.ai 或行動應用程式提示您時,使用 Face ID、Touch ID、Windows Hello 或通行金鑰確認。請參閱[信任裝置](#trusted-devices)。

515 

516<h2 id="choose-the-right-approach">

517 選擇正確的方法

518</h2>

519 

520Claude Code 提供了多種方式讓您在不在終端機時進行工作。它們在觸發工作的方式、Claude 執行的位置以及您需要設定的程度上有所不同。

521 

522| | 觸發 | Claude 執行位置 | 設定 | 最適合 |

523| :- | :- | :- | :- | :- |

524| [Dispatch](/docs/zh-TW/desktop#sessions-from-dispatch) | 從 Claude 行動應用程式傳送任務訊息 | 您的機器 (Desktop) | [將行動應用程式與 Desktop 配對](https://support.claude.com/en/articles/13947068) | 在您不在時委派工作,最少設定 |

525| [Remote Control](/docs/zh-TW/remote-control) | 從 [claude.ai/code](https://claude.ai/code) 或 Claude 行動應用程式驅動執行中的工作階段 | 您的機器 (CLI 或 VS Code) | 執行 `claude remote-control` | 從另一個裝置控制進行中的工作 |

526| [Channels](/docs/zh-TW/channels) | 從聊天應用程式 (如 Telegram 或 Discord) 或您自己的伺服器推送事件 | 您的機器 (CLI) | [安裝頻道外掛程式](/docs/zh-TW/channels#quickstart) 或 [建立您自己的](/docs/zh-TW/channels-reference) | 對外部事件 (如 CI 失敗或聊天訊息) 做出反應 |

527| [Slack](/docs/zh-TW/slack) | 在團隊頻道中提及 `@Claude` | Anthropic 雲端 | [安裝 Slack 應用程式](/docs/zh-TW/slack#setting-up-claude-code-in-slack) 並啟用 [網路上的 Claude Code](/docs/zh-TW/claude-code-on-the-web) | 從團隊聊天進行 PR 和審查 |

528| [Self-hosted environments](/docs/zh-TW/self-hosted-environments) | 啟動 [雲端工作階段](/docs/zh-TW/claude-code-on-the-web) 並選擇您組織的環境 | 您組織的基礎設施 | [部署執行器](/docs/zh-TW/self-hosted-environments-quickstart),在 Team 和 Enterprise 方案上 | 必須在您的網路內執行的雲端工作階段 |

529| [Scheduled tasks](/docs/zh-TW/scheduled-tasks) | 設定排程 | [CLI](/docs/zh-TW/scheduled-tasks)、[Desktop](/docs/zh-TW/desktop-scheduled-tasks) 或 [雲端](/docs/zh-TW/routines) | 選擇頻率 | 定期自動化 (如每日審查) |

530 524 

531<h2 id="related-resources">525<h2 id="related-resources">

532 相關資源526 相關資源

routines.md +3 −2

Details

59當例行工作的排程或 **Run now** 啟動執行時,Claude 只有在以下所有條件都成立時,才會重新發佈現有的 artifact 而不詢問:59當例行工作的排程或 **Run now** 啟動執行時,Claude 只有在以下所有條件都成立時,才會重新發佈現有的 artifact 而不詢問:

60 60 

61* 您可以編輯該 artifact,且它屬於您自己的組織61* 您可以編輯該 artifact,且它屬於您自己的組織

62* 該 artifact 未公開共享,且未與特定人員或您的組織共享,且未選擇最新版本作為檢視者看到的版本62* 該 artifact 未公開共享

63* 如果該 artifact 與特定人員或您的組織共享,其檢視者不會自動看到每個新版本

63* 發佈只包含頁面,沒有支援檔案或任何其他新增內容,且不會強制覆蓋較新的版本64* 發佈只包含頁面,沒有支援檔案或任何其他新增內容,且不會強制覆蓋較新的版本

64* 該頁面不包含超出頁面範圍的授權,例如 [connector calls](/docs/zh-TW/artifacts#pull-live-data-with-mcp-connectors)65* 該頁面不包含超出頁面範圍的授權,例如 [connector calls](/docs/zh-TW/artifacts#pull-live-data-with-mcp-connectors)

65 66 


151 152 

152排程觸發條件會按照循環週期執行例行工作,或在特定的未來時間執行一次。在 **Select a trigger** 部分選擇預設頻率:每小時、每天、工作日或每週。時間以您的本地時區輸入並自動轉換,因此無論雲端基礎設施位於何處,例行工作都會在該掛鐘時間執行。153排程觸發條件會按照循環週期執行例行工作,或在特定的未來時間執行一次。在 **Select a trigger** 部分選擇預設頻率:每小時、每天、工作日或每週。時間以您的本地時區輸入並自動轉換,因此無論雲端基礎設施位於何處,例行工作都會在該掛鐘時間執行。

153 154 

154執行可能會在排程時間之後幾分鐘開始,原因是錯開。每個例行工作的偏移量是一致的。155如果您排程執行恰好在整點時間(例如 9:00),它可能會晚幾分鐘開始。若要接近排程時間開始,請選擇整點後的幾分鐘,例如 9:07。

155 156 

156對於自訂間隔(例如每兩小時或每月的第一天),請在表單中選擇最接近的預設,然後在 CLI 中執行 `/schedule update` 以設定特定的 cron 表達式。最小間隔是一小時;執行頻率更高的表達式會被拒絕。157對於自訂間隔(例如每兩小時或每月的第一天),請在表單中選擇最接近的預設,然後在 CLI 中執行 `/schedule update` 以設定特定的 cron 表達式。最小間隔是一小時;執行頻率更高的表達式會被拒絕。

157 158 

Details

117在 Linux 和 WSL2 上,runtime 僅將寫入授予應用於已存在的路徑。在全新環境中,在首次啟動前建立 Claude Code 的配置路徑:117在 Linux 和 WSL2 上,runtime 僅將寫入授予應用於已存在的路徑。在全新環境中,在首次啟動前建立 Claude Code 的配置路徑:

118 118 

119```bash theme={null}119```bash theme={null}

120mkdir -p ~/.claude && echo '{}' > ~/.claude.json120mkdir -p ~/.claude && { [ -f ~/.claude.json ] || echo '{}' > ~/.claude.json; }

121```121```

122 122 

123設定檔就位後,使用 `npx` 啟動 Claude Code 並傳遞 `claude` 作為要包裝的命令:123設定檔就位後,使用 `npx` 啟動 Claude Code 並傳遞 `claude` 作為要包裝的命令:

sandboxing.md +87 −87

Details

42 </Step>42 </Step>

43 43 

44 <Step title="執行 Bash 命令">44 <Step title="執行 Bash 命令">

45 要求 Claude 執行命令,例如建置或測試套件。根據預設,sandbox 內的命令可以寫入工作目錄、工作階段暫存目錄,以及任何[您使用 `--add-dir`、`/add-dir` 或 `permissions.additionalDirectories` 新增的目錄](/docs/zh-TW/permissions#additional-directories-grant-file-access-not-configuration)。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)。

46 46 

47 命令首次需要新的網路網域時,Claude Code 會提示核准;在[自動模式](/docs/zh-TW/permission-modes#eliminate-prompts-with-auto-mode)中,Claude 改為在[命令本身](#per-command-allowed-domains-in-auto-mode)上命名命令需要的主機,供分類器與其一起檢閱。47 命令首次需要新的網路網域時,Claude Code 會提示核准;在[自動模式](/docs/zh-TW/permission-modes#eliminate-prompts-with-auto-mode)中,Claude 改為在[命令本身](#per-command-allowed-domains-in-auto-mode)上命名命令需要的主機,供分類器與其一起檢閱。

48 48 


184Unsandboxed 命令在設定時會繼承您 shell 的 `$TMPDIR`,因此在檔案系統隔離開啟時,sandboxed 和 unsandboxed 命令會將 `$TMPDIR` 解析為不同的目錄。如果您的 shell 將 `$TMPDIR` 保留為未設定或空白,參考 `$TMPDIR` 的 unsandboxed 命令會收到您的 [`CLAUDE_CODE_TMPDIR`](/docs/zh-TW/env-vars) 覆蓋,或當您未設定一個或覆蓋是長路徑時的作業系統暫存目錄,因此變數不會展開為空字串。若要在兩者之間傳遞暫存檔案,請改為在工作目錄下寫入它們。184Unsandboxed 命令在設定時會繼承您 shell 的 `$TMPDIR`,因此在檔案系統隔離開啟時,sandboxed 和 unsandboxed 命令會將 `$TMPDIR` 解析為不同的目錄。如果您的 shell 將 `$TMPDIR` 保留為未設定或空白,參考 `$TMPDIR` 的 unsandboxed 命令會收到您的 [`CLAUDE_CODE_TMPDIR`](/docs/zh-TW/env-vars) 覆蓋,或當您未設定一個或覆蓋是長路徑時的作業系統暫存目錄,因此變數不會展開為空字串。若要在兩者之間傳遞暫存檔案,請改為在工作目錄下寫入它們。

185 185 

186<h2 id="configure-sandboxing">186<h2 id="configure-sandboxing">

187 設定沙箱化187 設定沙箱

188</h2>188</h2>

189 189 

190通過您的 `settings.json` 檔案自訂沙箱行為。請參閱 [Settings](/docs/zh-TW/settings-reference#sandbox-settings) 以了解完整的設定參考。190透過 `settings.json` 檔案自訂沙箱行為。請參閱[設定](/docs/zh-TW/settings-reference#sandbox-settings)以取得完整的設定參考。

191 191 

192預設情況下,沙箱化命令可以寫入目前工作目錄、工作階段暫存目錄,以及任何[您已新增](/docs/zh-TW/permissions#additional-directories-grant-file-access-not-configuration)的目錄(使用 `--add-dir`、`/add-dir` 或 `permissions.additionalDirectories`)。如果子流程命令(如 `kubectl`、`terraform` 或 `npm`)需要寫入這些目錄外,請使用 `sandbox.filesystem.allowWrite` 授予對特定路徑的存取:192根據預設,沙箱化命令可以寫入目前的工作目錄、每個使用者的暫存目錄,以及任何[您已新增](/docs/zh-TW/permissions#additional-directories-grant-file-access-not-configuration)的目錄,使用 `--add-dir`、`/add-dir` 或 `permissions.additionalDirectories`。如果子程序命令(例如 `kubectl`、`terraform` 或 `npm`)需要寫入這些目錄以外的位置,請使用 `sandbox.filesystem.allowWrite` 來授予對特定路徑的存取權限:

193 193 

194```json theme={null}194```json theme={null}

195{195{


202}202}

203```203```

204 204 

205這些路徑在作業系統級別強制執行,因此在沙箱內執行的所有命令(包括其子流程)都尊重它們。當工具需要對特定位置的寫入存取時,這是推薦的方法,而不是使用 `excludedCommands` 將工具排除在沙箱外。205這些路徑在作業系統層級強制執行,因此在沙箱內執行的所有命令(包括其子程序)都會遵守它們。當工具需要對特定位置的寫入存取權限時,這是建議的方法,而不是使用 `excludedCommands` 將工具完全排除在沙箱之外。

206 206 

207當在多個 [settings scopes](/docs/zh-TW/settings#settings-precedence) 中定義相同的檔案系統陣列時,Claude Code 會合併它們,組合來自每個範圍的路徑,而不是用另一個範圍的陣列替換一個範圍的陣列。207當您在多個[設定範圍](/docs/zh-TW/settings#settings-precedence)中定義相同的檔案系統陣列時,Claude Code 會合併它們,結合來自每個範圍的路徑,而不是用另一個範圍的陣列取代一個範圍的陣列。

208 208 

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 或更新版本。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 或更新版本。

210 210 

211當您在工作階段期間編輯這些檔案系統清單時,Claude Code [將變更套用到執行中的工作階段](/docs/zh-TW/settings#when-edits-take-effect),因此下一個沙箱化命令在新路徑下執行。211當您在工作階段期間編輯這些檔案系統清單時,Claude Code [將變更套用到執行中的工作階段](/docs/zh-TW/settings#when-edits-take-effect),因此下一個沙箱化命令會在新路徑下執行。

212 212 

213路徑前綴控制路徑的解析方式:213路徑前綴控制路徑的解析方式:

214 214 

215| 前綴 | 含義 | 範例 |215| 前綴 | 意義 | 範例 |

216| :- | :- | :- |216| :- | :- | :- |

217| `/` | 從檔案系統根目錄的絕對路徑 | `/tmp/build` 保持 `/tmp/build` |217| `/` | 從檔案系統根目錄的絕對路徑 | `/tmp/build` 保持 `/tmp/build` |

218| `~/` | 相對於主目錄 | `~/.kube` 變成 `$HOME/.kube` |218| `~/` | 相對於主目錄 | `~/.kube` 變成 `$HOME/.kube` |

219| `./` 或無前綴 | 相對於專案設定的專案根目錄,或相對於 `~/.claude` 的使用者設定 | `.claude/settings.json` 中的 `./output` 解析為 `<project-root>/output` |219| `./` 或無前綴 | 相對於專案設定的專案根目錄,或相對於使用者設定的 `~/.claude` | `.claude/settings.json` 中的 `./output` 解析為 `<project-root>/output` |

220 220 

221此語法與 [Read and Edit permission rules](/docs/zh-TW/permissions#read-and-edit) 不同,後者使用 `//path` 表示絕對路徑,`/path` 表示專案相對路徑。沙箱檔案系統路徑使用標準慣例:`/tmp/build` 是絕對路徑。如需了解 Claude Code 如何處理這些路徑中的尾部斜線或萬用字元,請參閱 [Sandbox path prefixes](/docs/zh-TW/settings-reference#sandbox-path-prefixes)。221此語法不同於[讀取和編輯權限規則](/docs/zh-TW/permissions#read-and-edit),後者使用 `//path` 表示絕對路徑,`/path` 表示專案相對路徑。沙箱檔案系統路徑使用標準慣例:`/tmp/build` 是絕對路徑。關於 Claude Code 如何處理這些路徑中的尾部斜線或萬用字元,請參閱[沙箱路徑前綴](/docs/zh-TW/settings-reference#sandbox-path-prefixes)。

222 222 

223您也可以使用 `sandbox.filesystem.denyWrite` 和 `sandbox.filesystem.denyRead` 拒絕寫入或讀取存取,並使用 `sandbox.filesystem.allowRead` 重新允許被拒絕區域內的特定路徑。當讀取規則重疊時,更具體的路徑優先:223您也可以使用 `sandbox.filesystem.denyWrite` 和 `sandbox.filesystem.denyRead` 拒絕寫入或讀取存取,並使用 `sandbox.filesystem.allowRead` 重新允許被拒絕區域內的特定路徑。當讀取規則重疊時,路徑較窄的規則適用:

224 224 

225| 範例規則 | 結果 |225| 範例規則 | 結果 |

226| :- | :- |226| :- | :- |

227| `"denyRead": ["~/"]` 搭配 `"allowRead": ["~/projects"]` | `~/projects` 可讀,主目錄的其餘部分保持被阻止。較窄的允許重新開啟被拒絕區域的該部分 |227| `"denyRead": ["~/"]` 搭配 `"allowRead": ["~/projects"]` | `~/projects` 可讀,主目錄的其餘部分保持被阻止。較窄的允許重新開啟被拒絕區域的該部分 |

228| `"allowRead": ["~/"]` 搭配 `"denyRead": ["~/.env"]` | `~/.env` 保持被阻止,主目錄的其餘部分可讀。精確的拒絕在更寬的允許內保持有效,因此廣泛的允許無法無聲地重新暴露機密 |228| `"allowRead": ["~/"]` 搭配 `"denyRead": ["~/.env"]` | `~/.env` 保持被阻止,主目錄的其餘部分可讀。拒絕在較寬的允許內保持,因此廣泛的允許無法無聲地重新暴露機密 |

229| `"allowRead": ["~/"]` 搭配 `"denyRead": ["~/**/.env"]` | 主目錄下的每個 `.env` 保持被阻止,其餘部分可讀。[萬用字元拒絕](/docs/zh-TW/settings-reference#sandbox-path-prefixes)在更寬的允許內保持有效,就像精確路徑一樣 |229| `"allowRead": ["~/"]` 搭配 `"denyRead": ["~/**/.env"]` | 主目錄下的每個 `.env` 保持被阻止,其餘部分可讀。[萬用字元拒絕](/docs/zh-TW/settings-reference#sandbox-path-prefixes)在較寬的允許內保持,就像精確路徑一樣 |

230 230 

231下面的範例阻止從整個主目錄讀取,同時仍允許從目前專案讀取。將其放在您的專案的 `.claude/settings.json` 中,因為相對路徑 `.` 僅在配置位於專案設定中時才解析為專案根目錄:231下面的範例會阻止從整個主目錄讀取,同時仍允許從目前專案讀取。將其放在您專案的 `.claude/settings.json` 中,因為相對路徑 `.` 只有在設定位於專案設定中時才會解析為專案根目錄:

232 232 

233```json theme={null}233```json theme={null}

234{234{


242}242}

243```243```

244 244 

245如果您將相同的配置放在 `~/.claude/settings.json` 中,`.` 將解析為 `~/.claude`,專案檔案將保持被 `denyRead` 規則阻止。245如果您將相同的設定放在 `~/.claude/settings.json` 中,`.` 會解析為 `~/.claude`,專案檔案將保持被 `denyRead` 規則阻止。

246 246 

247若要拒絕沙箱化命令讀取主目錄和掛載磁碟區的存取,同時保持工作目錄可讀,請改為設定 [`permissions.blockReadsOutsideWorkingDirectories`](/docs/zh-TW/settings-reference#permissions-blockreadsoutsideworkingdirectories),而不是編寫路徑規則。247若要拒絕沙箱化命令對主目錄和掛載磁碟區的讀取存取,同時保持工作目錄可讀,請改為設定 [`permissions.blockReadsOutsideWorkingDirectories`](/docs/zh-TW/settings-reference#permissions-blockreadsoutsideworkingdirectories),而不是編寫路徑規則。

248 248 

249<h3 id="disable-filesystem-isolation">249<h3 id="disable-filesystem-isolation">

250 停用檔案系統隔離250 停用檔案系統隔離

251</h3>251</h3>

252 252 

253設定 `sandbox.filesystem.disabled` 為 `true` 以跳過檔案系統隔離,同時保持網路隔離。下面的範例關閉檔案系統隔離,同時保持網路網域的允許清單:253將 `sandbox.filesystem.disabled` 設定為 `true` 以跳過檔案系統隔離,同時保持網路隔離。下面的範例關閉檔案系統隔離,同時保持網路網域的允許清單:

254 254 

255```json theme={null}255```json theme={null}

256{256{


266}266}

267```267```

268 268 

269沙箱有兩個獨立的層:[檔案系統隔離](#filesystem-isolation)控制沙箱化命令可以讀取和寫入哪些路徑,[網路隔離](#network-isolation)控制它們可以到達哪些網域。關閉檔案系統層後,沙箱化命令獲得對主機檔案系統的無限制讀取和寫入存取,同時其網路出站流量仍限制在您允許的網域。當您沙箱化以控制命令連接的位置而不是它們寫入的內容時,請關閉該層。269沙箱有兩個獨立的層:[檔案系統隔離](#filesystem-isolation)控制沙箱化命令可以讀取和寫入的路徑,[網路隔離](#network-isolation)控制它們可以到達的網域。關閉檔案系統層後,沙箱化命令可以不受限制地讀取和寫入主機檔案系統,同時其網路出口仍限制在您允許的網域。當您沙箱化以控制命令連接的位置而不是它們寫入的內容時,請關閉該層。

270 270 

271該設定預設為關閉,並適用於沙箱執行的平台:macOS、Linux 和 WSL2。需要 Claude Code v2.1.216 或更新版本。271該設定預設為關閉,並適用於沙箱執行的平台:macOS、Linux 和 WSL2。需要 Claude Code v2.1.216 或更新版本。

272 272 

273<Warning>273<Warning>

274 關閉檔案系統隔離且命令自動允許時,沙箱化命令可以寫入稍後命令執行或讀取的檔案,例如 shell 啟動檔案、`$PATH` 上的可執行檔或 `~/.claude/settings.json`,並使用它們在下一次執行時擴大自己的存取。僅當您信任工作負載不會升級自己的存取時,才將 `filesystem.disabled` 設定為 `true`。使用 [`allowManagedDomainsOnly`](#keep-developers-from-widening-the-policy) 鎖定網路網域會縮小風險,但不會消除它,因為該鎖定僅適用於在沙箱內執行的命令。274 關閉檔案系統隔離且命令自動允許時,沙箱化命令可以寫入稍後命令執行或讀取的檔案,例如 shell 啟動檔案、`$PATH` 上的可執行檔或 `~/.claude/settings.json`,並使用它們在下一次執行時擴大自己的存取權限。只有在您信任工作負載不會擴大自己的存取權限時,才將 `filesystem.disabled` 設定為 `true`。使用 [`allowManagedDomainsOnly`](#keep-developers-from-widening-the-policy) 鎖定網路網域會縮小風險,但不會消除風險,因為該鎖定僅適用於在沙箱內執行的命令。

275</Warning>275</Warning>

276 276 

277<h4 id="which-settings-can-disable-it">277<h4 id="which-settings-can-disable-it">

278 哪些設定可以停用它278 哪些設定可以停用它

279</h4>279</h4>

280 280 

281因為關閉檔案系統隔離會擴大沙箱化命令可以執行的操作,Claude Code 僅從這些設定來源尊重 `filesystem.disabled`:281因為關閉檔案系統隔離會擴大沙箱化命令可以執行的操作,Claude Code 只從這些設定來源接受 `filesystem.disabled`:

282 282 

283* 使用者設定、受管設定和 `--settings` CLI 旗標可以設定它。`.claude/settings.json` 和 `.claude/settings.local.json` 中的專案設定不能,因此簽出的專案無法關閉檔案系統隔離。283* 使用者設定、受管設定和 `--settings` CLI 旗標可以設定它。`.claude/settings.json` 和 `.claude/settings.local.json` 中的專案設定不能,因此簽出的專案無法關閉檔案系統隔離。

284* 當受管設定配置 `sandbox.filesystem` 時,或列出任何 `sandbox.credentials.files` 項目且 `"mode": "deny"` 時,僅受管設定可以設定該鍵。這保持管理員部署的檔案系統限制有效;若要放鬆此類部署,請在受管設定中設定 `"disabled": true`。284* 當受管設定設定 `sandbox.filesystem` 時,或列出任何 `sandbox.credentials.files` 項目且 `"mode": "deny"` 時,只有受管設定可以設定該金鑰。這會保持管理員部署的檔案系統限制有效;若要放寬此類部署,請在受管設定中設定 `"disabled": true`。

285* 當設定 [`CLAUDE_CODE_SUBPROCESS_ENV_SCRUB`](/docs/zh-TW/env-vars) 時,Claude Code 會忽略來自每個來源(包括受管設定)的 `filesystem.disabled`,並保持檔案系統隔離開啟。285* 當設定 [`CLAUDE_CODE_SUBPROCESS_ENV_SCRUB`](/docs/zh-TW/env-vars) 時,Claude Code 會忽略來自每個來源(包括受管設定)的 `filesystem.disabled`,並保持檔案系統隔離開啟。

286 286 

287受管 `credentials.files` 項目是否固定 `filesystem.disabled`(將鍵鎖定到受管設定,以便開發人員無法關閉檔案系統隔離)取決於項目的 `mode` 和沙箱啟動時項目發生的情況:287受管 `credentials.files` 項目是否固定 `filesystem.disabled`(將金鑰鎖定到受管設定,使開發人員無法關閉檔案系統隔離)取決於項目的 `mode` 以及沙箱啟動時項目發生的情況:

288 288 

289| 受管項目 | 固定 `filesystem.disabled` | 隔離關閉時保護檔案的內容 |289| 受管項目 | 固定 `filesystem.disabled` | 隔離關閉時保護檔案的內容 |

290| - | - | - |290| - | - | - |

291| `"mode": "deny"` | 是 | 無:讀取區塊是檔案系統層的一部分 |291| `"mode": "deny"` | 是 | 無:讀取區塊是檔案系統層的一部分 |

292| `"mode": "mask"`,應用為遮罩 | 否 | 遮罩本身:Linux 和 WSL2 上的[哨兵複本和代理](#mask-credential-files),macOS 上沙箱自己的讀取規則 |292| `"mode": "mask"`,應用為遮罩 | 否 | 遮罩本身:Linux 和 WSL2 上的[哨兵複本和代理](#mask-credential-files),macOS 上沙箱自己的讀取規則 |

293| `"mode": "mask"`,[在設定時回退到 `deny`](#mask-credential-files) | 否 | 無,與 `deny` 相同。將無法遮罩的路徑(例如目錄)列為明確的 `deny` 項目,這會固定該鍵 |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` 相同 |294| `"mode": "mask"`,[由驗證降級為 `deny`](/docs/zh-TW/managed-settings#invalid-entries-in-managed-settings) | 是,如同明確的 `deny` | 無,與 `deny` 相同 |

295 295 

296回退發生在沙箱啟動時,在 Claude Code 已讀取設定之後,固定檢查執行,因此回退項目永遠不會固定。驗證在設定載入時將無效項目重寫為 `deny`,因此降級項目的固定方式與您編寫為 `deny` 的項目相同。296回退發生在沙箱啟動時,在 Claude Code 已讀取設定之後,針對該回退執行的固定檢查,因此回退項目永遠不會固定。驗證在設定載入時將無效項目重寫為 `deny`,因此降級項目的固定方式與您寫成 `deny` 的項目相同。

297 297 

298<h4 id="what-changes-when-filesystem-isolation-is-off">298<h4 id="what-changes-when-filesystem-isolation-is-off">

299 檔案系統隔離關閉時的變更299 檔案系統隔離關閉時的變更

300</h4>300</h4>

301 301 

302設定 `filesystem.disabled` 會解除檔案系統層本身強制執行的保護。其他層強制執行的保護繼續適用:302設定 `filesystem.disabled` 會解除檔案系統層本身強制執行的保護。其他層強制執行的保護會繼續適用:

303 303 

304| 保護 | 檔案系統隔離關閉時 |304| 保護 | 檔案系統隔離關閉時 |

305| - | - |305| - | - |

306| `filesystem.denyRead` 和 [`credentials.files`](#protect-credentials) `deny` 讀取區塊 | 未強制執行。檔案系統層應用兩者 |306| `filesystem.denyRead` 和 [`credentials.files`](#protect-credentials) `deny` 讀取區塊 | 未強制執行。檔案系統層適用兩者 |

307| `credentials.envVars` `deny` 和 `mask` 項目 | 強制執行。環境變數清理獨立於檔案系統層 |307| `credentials.envVars` `deny` 和 `mask` 項目 | 強制執行。環境變數清理獨立於檔案系統層 |

308| [`credentials.files` `mask` 項目](#mask-credential-files)應用為遮罩 | 強制執行:遮罩獨立於檔案系統層。[回退到 `deny`](#mask-credential-files) 的項目未強制執行,如同任何 `deny` 項目 |308| [`credentials.files` `mask` 項目](#mask-credential-files)應用為遮罩 | 強制執行:遮罩獨立於檔案系統層。[回退到 `deny`](#mask-credential-files) 的項目未強制執行,如同任何 `deny` 項目 |

309 309 

310另外兩件事會改變:310另外兩件事會改變:

311 311 

312* 沙箱化命令繼承您的 shell 的 `$TMPDIR` 而不是工作階段暫存目錄,因為每個暫存目錄都是可寫的,Claude Code 不再將命令重定向到工作階段目錄。312* 沙箱化命令繼承您 shell 的 `$TMPDIR`,而不是每個使用者的暫存目錄,因為每個暫存目錄都是可寫的,Claude Code 不再將命令重新導向到每個使用者的暫存目錄。

313 313 

314 在 Linux 上,變數通常在父 shell 中未設定,因此它可以在沙箱化命令內展開為空;Claude Code 告訴 Claude 通過其 Bash 工具指導使用 `mktemp -d` 建立暫存目錄,而不是依賴 `$TMPDIR`。314 在 Linux 上,該變數在父 shell 中通常未設定。Bash 工具指導告訴 Claude 使用 `mktemp -d` 建立暫存目錄,而不是依賴 `$TMPDIR`。

315* [`autoAllowBashIfSandboxed`](/docs/zh-TW/settings-reference#sandbox-autoallowbashifsandboxed) 仍預設為 `true`,因此沙箱化命令繼續執行而不提示。設定為 `false` 以提示沙箱化命令。315* [`autoAllowBashIfSandboxed`](/docs/zh-TW/settings-reference#sandbox-autoallowbashifsandboxed) 仍預設為 `true`,因此沙箱化命令繼續執行而不會出現提示。將其設定為 `false` 以提示沙箱化命令。

316 316 

317<h3 id="protect-credentials">317<h3 id="protect-credentials">

318 保護認證318 保護認證

319</h3>319</h3>

320 320 

321`sandbox.credentials` 設定宣告要保護、不讓沙箱化命令存取的認證檔案和環境變數。每個項目命名一個檔案路徑或環境變數和一個 `mode`。專用的 `credentials` 區塊將認證規則分組在一起,並與一般檔案系統規則分開。321`sandbox.credentials` 設定宣告要從沙箱化命令保護的認證檔案和環境變數。每個項目命名一個檔案路徑或環境變數以及一個 `mode`。專用的 `credentials` 區塊將認證規則分組在一起,並與一般檔案系統規則分開。

322 322 

323對於 `"mode": "deny"` 的項目,檔案路徑在沙箱內被拒絕讀取,與 `filesystem.denyRead` 應用的限制相同,環境變數在每個沙箱化命令執行前被取消設定。檔案保護是檔案系統層的一部分,因此如果您[停用檔案系統隔離](#disable-filesystem-isolation),它不適用;環境變數保護仍然適用。323對於 `"mode": "deny"` 的項目,檔案路徑在沙箱內被拒絕讀取,與 `filesystem.denyRead` 適用的限制相同,環境變數在每個沙箱化命令執行前被取消設定。檔案保護是檔案系統層的一部分,因此如果您[停用檔案系統隔離](#disable-filesystem-isolation),它不適用;環境變數保護仍然適用。

324 324 

325下面的範例阻止讀取 AWS 認證檔案和 SSH 目錄,並從沙箱化命令的環境中移除 `GITHUB_TOKEN` 和 `NPM_TOKEN`:325下面的範例會阻止讀取 AWS 認證檔案和 SSH 目錄,並從沙箱化命令的環境中移除 `GITHUB_TOKEN` 和 `NPM_TOKEN`:

326 326 

327```json theme={null}327```json theme={null}

328{328{


342}342}

343```343```

344 344 

345環境變數項目和檔案項目也接受 `"mode": "mask"`,如下所述 [Mask credentials](#mask-credentials)。345環境變數項目和檔案項目也接受 `"mode": "mask"`,在[遮罩認證](#mask-credentials)下描述。

346 346 

347檔案路徑遵循與 `sandbox.filesystem.*` 設定相同的 [prefix rules](/docs/zh-TW/settings-reference#sandbox-path-prefixes)。347檔案路徑遵循與 `sandbox.filesystem.*` 設定相同的[前綴規則](/docs/zh-TW/settings-reference#sandbox-path-prefixes)。

348 348 

349Claude Code 合併來自工作階段載入的每個 [settings scope](/docs/zh-TW/settings#settings-precedence) 的 `deny` 項目。`deny` 項目只會縮小存取,因此任何範圍都可以新增一個,但沒有任何範圍可以移除另一個範圍新增的項目。349Claude Code 合併來自工作階段載入的每個[設定範圍](/docs/zh-TW/settings#settings-precedence)的 `deny` 項目。`deny` 項目只會縮小存取,因此任何範圍都可以新增一個,但沒有範圍可以移除另一個範圍新增的項目。

350 350 

351當您[排除設定來源](#configure-sandboxing)時:351當您[排除設定來源](#configure-sandboxing)時:

352 352 

353* **專案或本機設定**:Claude Code 不應用其任何 `credentials` 項目。需要 Claude Code v2.1.246 或更新版本。353* **專案或本機設定**:Claude Code 不適用其任何 `credentials` 項目。需要 Claude Code v2.1.246 或更新版本。

354* **使用者設定**:Claude Code 仍應用 `~/.claude/settings.json` 中的 `deny` 項目,並保持其[檔案 `mask` 項目](#mask-credential-files)作為限制,但放棄其[環境變數 `mask` 項目](#mask-environment-variables)。354* **使用者設定**:Claude Code 仍然適用 `~/.claude/settings.json` 中的 `deny` 項目,並將其[檔案 `mask` 項目](#mask-credential-files)保持為限制,但會捨棄其[環境變數 `mask` 項目](#mask-environment-variables)。

355 355 

356沒有內建的認證拒絕清單,因此只有您列出的檔案和變數被限制。356沒有內建的認證拒絕清單,因此只有您列出的檔案和變數受到限制。

357 357 

358`sandbox.credentials` 僅影響沙箱化 Bash 命令。若要從所有子流程中移除認證,無論沙箱化如何,請設定 [`CLAUDE_CODE_SUBPROCESS_ENV_SCRUB`](/docs/zh-TW/env-vars)。358`sandbox.credentials` 僅影響沙箱化 Bash 命令。若要從所有子程序中去除認證,無論沙箱化如何,請設定 [`CLAUDE_CODE_SUBPROCESS_ENV_SCRUB`](/docs/zh-TW/env-vars)。

359 359 

360<h3 id="mask-credentials">360<h3 id="mask-credentials">

361 遮罩認證361 遮罩認證

362</h3>362</h3>

363 363 

364遮罩比 [Protect credentials](#protect-credentials) 下的 `deny` 項目更進一步。Claude Code 不是阻止認證,而是向沙箱化命令顯示佔位符(哨兵),[沙箱代理](#network-isolation)在出站請求到您允許的主機時交換真實值。對於檔案,替換是 Linux 和 WSL2 行為;[macOS 改為阻止檔案](#mask-credential-files)。364遮罩比[保護認證](#protect-credentials)下的 `deny` 項目更進一步。Claude Code 不會阻止認證,而是向沙箱化命令顯示預留位置(哨兵),[沙箱代理](#network-isolation)會在對您允許的主機的出站請求上交換真實值。對於檔案,替換是 Linux 和 WSL2 行為;[macOS 改為阻止檔案](#mask-credential-files)。

365 365 

366<h4 id="mask-environment-variables">366<h4 id="mask-environment-variables">

367 遮罩環境變數367 遮罩環境變數

368</h4>368</h4>

369 369 

370`"mode": "mask"` 保護認證同時保持使用它進行身份驗證的工具正常工作。`deny` 完全移除變數,這也會破壞需要它的工具,例如 `gh` 或 `npm`。需要 Claude Code v2.1.199 或更新版本。370`"mode": "mask"` 保護認證,同時保持使用它進行驗證的工具正常工作。`deny` 完全移除變數,這也會破壞需要它的工具,例如 `gh` 或 `npm`。需要 Claude Code v2.1.199 或更新版本。

371 371 

372使用 `mask`,沙箱化命令看到的是每個工作階段的哨兵值而不是真實值。每個 `mask` 項目可以列出 `injectHosts`,真實值被允許到達的主機。當請求離開沙箱前往其中之一時,[沙箱代理](#network-isolation)將哨兵替換為真實值。命令和它記錄的任何內容都不會持有真實認證,但其請求仍然進行身份驗證。372使用 `mask`,沙箱化命令會看到每個工作階段的哨兵值,而不是真實值。每個 `mask` 項目可以列出 `injectHosts`,允許真實值到達的主機。當請求離開沙箱前往其中一個時,[沙箱代理](#network-isolation)會用真實值取代哨兵。命令和它記錄的任何內容都不會保持真實認證,但其請求仍然進行驗證。

373 373 

374代理在請求內容中替換認證,因此它必須看到它們。設定 [`network.tlsTerminate`](/docs/zh-TW/settings-reference#sandbox-network-tlsterminate) 以便代理自己終止 TLS。374代理在請求內容中替換認證,因此它必須看到它們。設定 [`network.tlsTerminate`](/docs/zh-TW/settings-reference#sandbox-network-tlsterminate) 使代理自己終止 TLS。

375 375 

376沒有它,遮罩會失敗而不暴露任何內容:命令仍然只看到哨兵值,但哨兵值不變地到達伺服器,身份驗證失敗。Claude Code 在啟動時報告此配置錯誤。376沒有它,遮罩會失敗而不暴露任何內容:命令仍然只看到哨兵,但哨兵未變更地到達伺服器,驗證失敗。Claude Code 在啟動時報告此誤設定。

377 377 

378替換涵蓋標頭和請求主體。使用從認證衍生的簽名進行身份驗證的請求,而不是認證本身,需要在代理處重新簽名;[Re-sign AWS requests](#re-sign-aws-requests) 涵蓋 AWS 如何工作。378替換涵蓋標頭和請求主體。使用從認證衍生的簽名而不是認證本身進行驗證的請求需要在代理處重新簽名;[重新簽名 AWS 請求](#re-sign-aws-requests)涵蓋 AWS 如何工作。

379 379 

380代理僅在 [domain allowlist](#network-isolation) 允許的連接上注入,因此每個 `injectHosts` 目的地也必須通過 `network.allowedDomains` 可達。380代理僅在[網域允許清單](#network-isolation)允許的連接上注入,因此每個 `injectHosts` 目的地也必須可透過 `network.allowedDomains` 到達。

381 381 

382下面的範例遮罩兩個令牌。`GH_TOKEN` 僅在對 `api.github.com` 的請求上被替換,而 `NPM_TOKEN` 沒有 `injectHosts` 並在對 `network.allowedDomains` 中每個主機的請求上被替換。382下面的範例遮罩兩個令牌。`GH_TOKEN` 僅在對 `api.github.com` 的請求上替換,而 `NPM_TOKEN` 沒有 `injectHosts`,在對 `network.allowedDomains` 中每個主機的請求上替換。

383 383 

384```json theme={null}384```json theme={null}

385{385{


402<span id="ipv6-destinations-in-injecthosts" />在兩個清單中以不同方式拼寫 IPv6 目的地,因為每個清單都有自己的匹配器:402<span id="ipv6-destinations-in-injecthosts" />在兩個清單中以不同方式拼寫 IPv6 目的地,因為每個清單都有自己的匹配器:

403 403 

404* **`network.allowedDomains`**:[括號形式網域清單使用](#ipv6-addresses-in-domain-lists),例如 `"[::1]"`。代理檢查此清單以允許連接。404* **`network.allowedDomains`**:[括號形式網域清單使用](#ipv6-addresses-in-domain-lists),例如 `"[::1]"`。代理檢查此清單以允許連接。

405* **`injectHosts`**:其規範壓縮形式中的裸地址,例如 `"::1"` 或 `"2001:db8::1"`。代理將每個項目與連接的裸目的地地址進行匹配,忽略連接埠,因此括號、區域 ID 或不同壓縮拼寫永遠不會匹配,代理永遠不會在那裡注入認證。405* **`injectHosts`**:其規範壓縮形式中的裸地址,例如 `"::1"` 或 `"2001:db8::1"`。代理將每個項目與連接的裸目的地地址進行比對,忽略連接埠,因此括號、區域 ID 或不同壓縮拼寫永遠不會比對,代理永遠不會在那裡注入認證。

406 406 

407`claude doctor` 標記 `injectHosts` 項目,這些項目永遠無法與警告 `Sandbox credential injectHosts entries can never match their destination` 匹配。此檢查需要 Claude Code v2.1.229 或更新版本。407`claude doctor` 標記無法與警告 `Sandbox credential injectHosts entries can never match their destination` 比對的 `injectHosts` 項目。此檢查需要 Claude Code v2.1.229 或更新版本。

408 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` 項目。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 410 

411當您的管理員通過伺服器受管設定傳遞 `mask` 項目、`network.tlsTerminate` 或 `credentials.allowPlaintextInject` 時,它們計為[需要批准的設定](/docs/zh-TW/server-managed-settings#security-approval-dialogs)。411當您的管理員透過伺服器受管設定傳遞 `mask` 項目、`network.tlsTerminate` 或 `credentials.allowPlaintextInject` 時,它們計為[需要核准的設定](/docs/zh-TW/server-managed-settings#security-approval-dialogs)。

412 412 

413當相同的變數在任何範圍中以 `deny` 列出時,`deny` 優先。413當相同變數在任何範圍中以 `deny` 列出時,`deny` 優先。

414 414 

415遮罩預設替換變數的整個值,適合裸令牌。可選項目欄位(需要 Claude Code v2.1.224 或更新版本)處理具有結構的值:415遮罩預設會取代變數的整個值,適合裸令牌。可選項目欄位(需要 Claude Code v2.1.224 或更新版本)處理具有結構的值:

416 416 

417* `extract`:Claude Code 在整個值上應用的正規表達式,僅替換每個匹配的第 1 組捕獲的文字,因此解析值的工具(例如 `DATABASE_URL` 連接字串)在沙箱內仍然有效。模式必須包含至少一個捕獲組。417* `extract`:Claude Code 在整個值上應用的正規表達式,僅取代每個比對的第 1 組捕獲的文字,因此解析值的工具(例如 `DATABASE_URL` 連接字串)在沙箱內仍然有效。模式必須包含至少一個捕獲群組。

418* `onExtractNoMatch` 控制模式匹配無內容時發生的情況:418* `onExtractNoMatch` 控制模式不比對任何內容時發生的情況:

419 * `warn`(預設)警告並無遮罩地傳遞變數419 * `warn`(預設)警告並不遮罩地傳遞變數

420 * `deny` 在沙箱內取消設定變數420 * `deny` 在沙箱內取消設定變數

421 * `error` 停止沙箱設定,直到您修復配置421 * `error` 停止沙箱設定,直到您修正設定

422* `decode: "jwt"`:用於保存 JSON Web Token (JWT) 的變數。Claude Code 驗證值是 JWT 並將其替換為結構上有效的假令牌,因此沙箱內解碼令牌的程式碼繼續工作。新增 `maskClaims` 以列出要個別遮罩的頂級承載聲明,而不是替換整個令牌;其他聲明保持可讀。當值未驗證為 JWT 或沒有列出的聲明匹配時,Claude Code 無遮罩地傳遞變數並發出警告。`decode` 無法與 `extract` 結合。422* `decode: "jwt"`:用於保持 JSON Web Token (JWT) 的變數。Claude Code 驗證值是 JWT 並用結構上有效的假令牌取代它,因此沙箱內解碼令牌的程式碼繼續工作。新增 `maskClaims` 以列出要個別遮罩的頂層承載宣告,而不是取代整個令牌;其他宣告保持可讀。當值未驗證為 JWT 或沒有列出的宣告比對時,Claude Code 會以警告不遮罩地傳遞變數。`decode` 無法與 `extract` 結合。

423 423 

424請參閱[設定參考中的 `credentials.envVars[]` 列](/docs/zh-TW/settings-reference#sandbox-settings)以了解完整欄位清單。424請參閱[設定參考中的 `credentials.envVars[]` 列](/docs/zh-TW/settings-reference#sandbox-settings)以取得完整欄位清單。

425 425 

426<h4 id="re-sign-aws-requests">426<h4 id="re-sign-aws-requests">

427 重新簽署 AWS 請求427 重新簽名 AWS 請求

428</h4>428</h4>

429 429 

430AWS 請求在請求內容上攜帶 SigV4 簽名,因此一起遮罩 `AWS_ACCESS_KEY_ID` 和 `AWS_SECRET_ACCESS_KEY`。代理通過存取鍵的哨兵檢測 SigV4 請求,並在替換真實值後重新簽署它。僅遮罩機密會留下用佔位符簽署的請求,代理無法檢測,因此它們在 AWS 處失敗;Claude Code 在啟動時警告此情況,但在僅遮罩存取鍵 ID 時不警告。代理無法重新簽署的檢測到的請求(例如缺少其 `x-amz-date` 標頭的請求)失敗並出現代理錯誤,而不是到達伺服器並帶有損壞的簽名。430AWS 請求在請求內容上攜帶 SigV4 簽名,因此一起遮罩 `AWS_ACCESS_KEY_ID` 和 `AWS_SECRET_ACCESS_KEY`。代理透過存取金鑰的哨兵偵測 SigV4 請求,並在替換真實值後重新簽名。僅遮罩祕密會使請求以預留位置簽名,代理無法偵測,因此它們在 AWS 處失敗;Claude Code 在啟動時警告此情況,但不會在僅遮罩存取金鑰 ID 時警告。代理無法重新簽名的偵測到的請求(例如缺少其 `x-amz-date` 標頭的請求)會因代理錯誤而失敗,而不是到達伺服器且簽名損壞。

431 431 

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)所示: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):

433 433 

434```json theme={null}434```json theme={null}

435{435{


449 449 

450每個項目遵循這些規則:450每個項目遵循這些規則:

451 451 

452* `accessKeyIdVar` 和 `secretAccessKeyVar` 命名保存存取鍵 ID 和機密鍵的遮罩 `envVars` 項目。可選的 `sessionTokenVar` 命名保存臨時認證工作階段令牌的項目;設定時,代理在重新簽署的請求上發送真實令牌作為 `x-amz-security-token`。452* `accessKeyIdVar` 和 `secretAccessKeyVar` 命名保持存取金鑰 ID 和祕密金鑰的遮罩 `envVars` 項目。可選的 `sessionTokenVar` 命名保持臨時認證工作階段令牌的項目;設定時,代理在重新簽名的請求上傳送真實令牌作為 `x-amz-security-token`。

453* 每個命名的變數必須是遮罩其整個值的 `mask` 項目,沒有 `extract` 或 `decode`。453* 每個命名變數必須是遮罩其整個值的 `mask` 項目,沒有 `extract` 或 `decode`。

454* 代理在存取鍵 ID 項目的 `injectHosts` 中列出的主機上重新簽署請求。454* 代理在存取金鑰 ID 項目的 `injectHosts` 中列出的主機上重新簽名請求。

455* 在配對中命名任何常規變數會替換自動配對。455* 在配對中命名任何常規變數會取代自動配對。

456 456 

457如同 `mask` 項目,`awsPairs` 僅從使用者設定、受管設定和 `--settings` CLI 旗標尊重。457如同 `mask` 項目,`awsPairs` 只從使用者設定、受管設定和 `--settings` CLI 旗標接受。

458 458 

459三種 AWS 請求形式攜帶代理無法重新計算的簽名。當此類請求使用遮罩配對的佔位符簽署時,代理失敗它而不是轉發損壞的簽名;使用未遮罩認證簽署的請求永遠不受影響。[`credentials.sigv4`](/docs/zh-TW/settings-reference#sandbox-credentials-sigv4) 設定(需要 Claude Code v2.1.224 或更新版本)放鬆每種形式:將形式的鍵設定為 `passthrough` 轉發帶有其佔位符衍生簽名的請求,因此呼叫工具接收 AWS 自己的拒絕回應而不是代理錯誤。如同 `awsPairs`,`sigv4` 僅從使用者設定、受管設定和 `--settings` CLI 旗標尊重。459三種 AWS 請求形式攜帶代理無法重新計算的簽名。當此類請求以遮罩配對的預留位置簽名時,代理會失敗它,而不是轉發損壞的簽名;使用未遮罩認證簽名的請求永遠不會受影響。[`credentials.sigv4`](/docs/zh-TW/settings-reference#sandbox-credentials-sigv4) 設定(需要 Claude Code v2.1.224 或更新版本)放寬每種形式:將形式的金鑰設定為 `passthrough` 會轉發具有其預留位置衍生簽名的請求,因此呼叫工具會收到 AWS 自己的拒絕回應,而不是代理錯誤。如同 `awsPairs`,`sigv4` 只從使用者設定、受管設定和 `--settings` CLI 旗標接受。

460 460 

461| 請求形式 | `sigv4` 鍵 | 代理無法重新簽署的原因 |461| 請求形式 | `sigv4` 金鑰 | 代理無法重新簽名的原因 |

462| :- | :- | :- |462| :- | :- | :- |

463| aws-chunked 串流上傳 | `streaming` | 每個區塊簽名鏈接到種子簽名,因此重新簽署需要重寫主體 |463| aws-chunked 串流上傳 | `streaming` | 每個區塊簽名鏈接到種子簽名,因此重新簽名需要重寫主體 |

464| 預簽署 URL | `presigned` | 簽名位於 URL 本身,沒有 `Authorization` 標頭 |464| 預簽名 URL | `presigned` | 簽名位於 URL 本身,沒有 `Authorization` 標頭 |

465| SigV4A 非對稱簽名 | `sigv4a` | 沒有共用鍵 HMAC 可重新計算 |465| SigV4A 非對稱簽名 | `sigv4a` | 沒有共用金鑰 HMAC 可重新計算 |

466 466 

467<h4 id="mask-credential-files">467<h4 id="mask-credential-files">

468 遮罩認證檔案468 遮罩認證檔案


470 470 

471檔案項目也接受 `"mode": "mask"`,需要 Claude Code v2.1.221 或更新版本。沙箱化命令看到的內容取決於平台:471檔案項目也接受 `"mode": "mask"`,需要 Claude Code v2.1.221 或更新版本。沙箱化命令看到的內容取決於平台:

472 472 

473* **Linux 和 WSL2**:沙箱化命令讀取檔案的哨兵複本,一個機密被替換為佔位符值的替代品,[沙箱代理](#network-isolation)在出站時替換真實值。473* **Linux 和 WSL2**:沙箱化命令讀取檔案的哨兵複本,一個替代品,其祕密被取代為預留位置值,[沙箱代理](#network-isolation)在出口上替換真實值。

474* **macOS**:沙箱化命令無法讀取列出的檔案。Claude Code 不建立哨兵複本,不在出站時替換任何內容,因此使用檔案進行身份驗證的工具在沙箱內不工作,與 `deny` 相同的效果。與 `deny` 項目不同,讀取區塊即使在您[停用檔案系統隔離](#disable-filesystem-isolation)時也保持有效。474* **macOS**:沙箱化命令無法讀取列出的檔案。Claude Code 不建立哨兵複本,不在出口上替換任何內容,因此使用檔案進行驗證的工具在沙箱內不工作,與 `deny` 相同效果。與 `deny` 項目不同,讀取區塊即使在您[停用檔案系統隔離](#disable-filesystem-isolation)時也保持。

475 475 

476在每個平台上,Claude Code 應用 [`network.tlsTerminate`](/docs/zh-TW/settings-reference#sandbox-network-tlsterminate) 要求和 `injectHosts` 的方式與[遮罩環境變數](#mask-environment-variables)相同,並以相同方式忽略儲存庫設定。如果您[排除使用者設定](#configure-sandboxing),Claude Code 保持 `~/.claude/settings.json` 中的檔案 `mask` 項目作為限制,但項目不再授權代理替換真實值。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` 項目保持為限制,但項目不再授權代理替換真實值。

477 477 

478下面的範例遮罩儲存在 `~/.config/gh/hosts.yml` 中的 GitHub 令牌;`extract` 模式(如下所述)告訴 Claude Code 檔案的哪個部分是機密。在 Linux 和 WSL2 上,讀取檔案的沙箱化命令獲得令牌位置的哨兵,代理在對 `api.github.com` 的請求上替換真實令牌:478下面的範例遮罩儲存在 `~/.config/gh/hosts.yml` 中的 GitHub 令牌;`extract` 模式(下面涵蓋)告訴 Claude Code 檔案的哪個部分是祕密。在 Linux 和 WSL2 上,讀取檔案的沙箱化命令會取得令牌位置的哨兵,代理在對 `api.github.com` 的請求上替換真實令牌:

479 479 

480```json theme={null}480```json theme={null}

481{481{


499}499}

500```500```

501 501 

502若要確認遮罩有效,請要求 Claude 在沙箱化命令中執行 `cat ~/.config/gh/hosts.yml`:在 Linux 和 WSL2 上,輸出顯示令牌位置的哨兵值,在 macOS 上,讀取失敗。502若要確認遮罩有效,請要求 Claude 在沙箱化命令中執行 `cat ~/.config/gh/hosts.yml`:在 Linux 和 WSL2 上,輸出在令牌位置顯示哨兵值,在 macOS 上,讀取改為失敗。

503 503 

504在 Linux 和 WSL2 上,`extract` 模式是保持 `hosts.yml` 其餘部分可讀的內容。Claude Code 在整個檔案上應用正規表達式,僅替換每個匹配的第 1 組捕獲的文字,因此 `gh` 仍然解析其配置,僅令牌是佔位符。對任何工具解析的結構化檔案使用 `extract`,例如 `.netrc`、JSON 或 YAML;模式必須包含至少一個捕獲組。沒有 `extract`,Claude Code 將整個檔案內容替換為一個哨兵值,適合保存單個裸機密且沒有其他內容的檔案。504在 Linux 和 WSL2 上,`extract` 模式是保持 `hosts.yml` 其餘部分可讀的內容。Claude Code 在整個檔案上應用正規表達式,僅取代每個比對的第 1 組捕獲的文字,因此 `gh` 仍然解析其設定,只有令牌是預留位置。對任何工具解析的結構化檔案(例如 `.netrc`、JSON 或 YAML)使用 `extract`;模式必須包含至少一個捕獲群組。沒有 `extract`,Claude Code 會用一個哨兵值取代整個檔案內容,適合保持單個裸祕密且沒有其他內容的檔案。

505 505 

506對於保存 JSON Web Token (JWT) 的檔案,設定 `decode: "jwt"` 而不是或與 `extract` 一起。`decode` 需要 Claude Code v2.1.224 或更新版本。Claude Code 使用內建模式或您的 `extract` 模式(設定時)找到 JWT 候選項,驗證每個候選項是 JWT,並將其替換為結構上有效的假令牌,因此在沙箱內解碼令牌的程式碼繼續工作。新增 `maskClaims` 以僅遮罩每個驗證令牌內的命名頂級承載聲明,並保持其他聲明可讀。當沒有候選項驗證或沒有命名聲明匹配時,下面的 `onExtractNoMatch` 欄位控制結果,就像模式匹配無內容時一樣。506對於保持 JSON Web Token (JWT) 的檔案,設定 `decode: "jwt"` 而不是或與 `extract` 一起。`decode` 需要 Claude Code v2.1.224 或更新版本。Claude Code 使用內建模式或您的 `extract` 模式(設定時)找到 JWT 候選項,驗證每個候選項是 JWT,並用結構上有效的假令牌取代它,因此在沙箱內解碼令牌的程式碼繼續工作。新增 `maskClaims` 以僅遮罩每個驗證令牌內的命名頂層承載宣告,並保持其他宣告可讀。當沒有候選項驗證或沒有命名宣告比對時,下面的 `onExtractNoMatch` 欄位控制結果,就像模式不比對任何內容時一樣。

507 507 

508兩個可選欄位精化匹配行為。兩者僅在 `mode` 為 `mask` 且 `extract` 或 `decode` 設定時適用。在 macOS 上,當檔案系統隔離開啟時,Claude Code 應用 `mask` 項目作為 `deny`,在模式執行前,因此這些欄位和下面的無匹配結果僅在[檔案系統隔離關閉](#disable-filesystem-isolation)時在那裡生效:508兩個可選欄位精化比對行為。兩者僅在 `mode` 是 `mask` 且 `extract` 或 `decode` 設定時適用。在 macOS 上,當檔案系統隔離開啟時,Claude Code 在模式執行前將 `mask` 項目應用為 `deny`,因此這些欄位和下面的不比對結果僅在[檔案系統隔離關閉](#disable-filesystem-isolation)時在那裡生效:

509 509 

510* `onExtractNoMatch` 控制匹配在檔案中找不到要遮罩的內容時發生的情況:510* `onExtractNoMatch` 控制比對在檔案中找不到要遮罩的內容時發生的情況:

511 511 

512 * `warn`(預設)警告並跳過項目,因此沙箱化命令可以無遮罩地讀取真實檔案。預設適合可能合法不存在的認證;如果機密可能存在但模式可能遺漏它,使用 `deny`512 * `warn`(預設)警告並跳過項目,因此沙箱化命令可以不遮罩地讀取真實檔案。預設適合認證可能合法不存在的情況;如果祕密可能存在但模式可能遺漏它,請使用 `deny`

513 * `deny` 使檔案無法讀取513 * `deny` 改為使檔案不可讀

514 * `error` 停止沙箱設定,直到您修復配置514 * `error` 停止沙箱設定,直到您修正設定

515 515 

516 每當讀取區塊不會被強制執行時,Claude Code 將 `deny` 視為 `error`:當您[停用檔案系統隔離](#disable-filesystem-isolation)時,以及當任何設定來源的 `filesystem.allowRead` 項目重新開啟檔案的路徑時。516 Claude Code 將 `deny` 視為 `error`,無論何時讀取區塊不會強制執行:當您[停用檔案系統隔離](#disable-filesystem-isolation)時,以及當來自任何設定來源的 `filesystem.allowRead` 項目重新開啟檔案的路徑時。

517* `maskDuplicates` 也替換每個遮罩認證值的逐字複本,一個 `extract` 捕獲或 `decode` 驗證的令牌,在匹配跨度外找到,用於在匹配無法到達的地方重複的機密。它匹配原始子字串,因此短或常見值會被替換到處出現;為長、高熵機密保留它。預設:false。517* `maskDuplicates` 也取代每個遮罩認證值的逐字複本,在比對跨度外找到的 `extract` 捕獲或 `decode` 驗證令牌,用於在比對無法到達的地方重複的祕密。它比對原始子字串,因此短或常見值會被取代到處出現;為長、高熵祕密保留它。預設:false。

518 518 

519`mask` 適用於單個檔案,因此個別列出每個認證檔案。Claude Code 回退到 `deny` 用於無法安全遮罩的 `mask` 項目:目錄路徑、glob 模式、大於 8 MiB 的檔案或非 UTF-8 文字檔案。改為將目錄編寫為明確的 `deny` 項目;[哪些設定可以停用它](#which-settings-can-disable-it)下的表格涵蓋每種形式是否固定 `filesystem.disabled` 以及它在檔案系統隔離關閉時的行為。519`mask` 適用於單個檔案,因此個別列出每個認證檔案。Claude Code 回退到 `deny` 用於無法安全遮罩的 `mask` 項目:目錄路徑、glob 模式、大於 8 MiB 的檔案或非 UTF-8 文字檔案。改為將目錄寫成明確的 `deny` 項目;[哪些設定可以停用它](#which-settings-can-disable-it)下的表格涵蓋每種形式是否固定 `filesystem.disabled` 以及它在檔案系統隔離關閉時的行為。

520 520 

521<h2 id="how-sandboxing-works">521<h2 id="how-sandboxing-works">

522 沙箱隔離的運作方式522 沙箱隔離的運作方式

security.md +2 −1

Details

126 126 

127* **隔離的虛擬機器**:每個雲端會話在隔離的、由 Anthropic 管理的 VM 中執行127* **隔離的虛擬機器**:每個雲端會話在隔離的、由 Anthropic 管理的 VM 中執行

128* **網路存取控制**:網路存取預設受限,可以配置為禁用或僅允許特定網域128* **網路存取控制**:網路存取預設受限,可以配置為禁用或僅允許特定網域

129* **認證保護**:身份驗證通過安全代理進行處理,該代理在沙箱內使用範圍限定的認證,然後轉換為您的實際 GitHub 身份驗證令牌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) 以了解如何授予存取權限

130* **分支限制**:Git push 操作限制在目前工作分支130* **分支限制**:Git push 操作限制在目前工作分支

131* **審計日誌**:雲端會話中的所有操作都被記錄以用於合規和審計目的131* **審計日誌**:雲端會話中的所有操作都被記錄以用於合規和審計目的

132* **自動清理**:會話 VM 在一段時間無活動後會被回收132* **自動清理**:會話 VM 在一段時間無活動後會被回收

133* **刪除**:您可以隨時 [刪除會話](/docs/zh-TW/claude-code-on-the-web#delete-sessions)。請參閱 [雲端執行資料流](/docs/zh-TW/data-usage#cloud-execution-data-flow-and-dependencies) 以了解 Anthropic 為雲端會話儲存的內容

133 134 

134有關雲端執行的更多詳情,請參閱 [在雲端使用 Claude Code](/docs/zh-TW/claude-code-on-the-web);若要為雲端會話配置網路存取,請參閱 [設定雲端環境](/docs/zh-TW/cloud-environments#network-access)。135有關雲端執行的更多詳情,請參閱 [在雲端使用 Claude Code](/docs/zh-TW/claude-code-on-the-web);若要為雲端會話配置網路存取,請參閱 [設定雲端環境](/docs/zh-TW/cloud-environments#network-access)。

135 136 

Details

220ENTRYPOINT ["claude"]220ENTRYPOINT ["claude"]

221```221```

222 222 

223如果您的節點是 ARM,將 `linux-x64` 交換為 `linux-arm64`,或在 Alpine 等 musl 基礎映像上交換為 `linux-x64-musl` 或 `linux-arm64-musl`;請參閱 [Alpine Linux 設定](/docs/zh-TW/setup#alpine-linux-and-musl-based-distributions)以了解 musl 映像需要的額外套件。URL 是標準 Claude Code 發佈位置,因此您可以根據[二進位檔案完整性和程式碼簽名](/docs/zh-TW/setup#binary-integrity-and-code-signing)中描述的發佈的已簽名清單驗證下載的二進位檔案。使用 Claude Code 版本 2.1.224 或更新版本構建映像,然後將其推送到您的登錄檔並在下面的配方中引用它:223如果您的節點是 ARM,將 `linux-x64` 交換為 `linux-arm64`,或在 Alpine 等 musl 基礎映像上交換為 `linux-x64-musl` 或 `linux-arm64-musl`;請參閱 [Alpine Linux 設定](/docs/zh-TW/setup#alpine-linux-and-musl-based-distributions)以了解 musl 映像需要的額外套件。URL 是標準 Claude Code 發佈位置,因此您可以根據[二進位檔案完整性和程式碼簽名](/docs/zh-TW/setup#binary-integrity-and-code-signing)中描述的發佈的已簽名清單驗證下載的二進位檔案。執行器需要 Claude Code 版本 2.1.224 或更新版本。構建映像,然後將其推送到您的登錄檔並在下面的配方中引用它:

224 224 

225```bash theme={null}225```bash theme={null}

226docker build --build-arg CLAUDE_CODE_VERSION=2.1.267 -t <your-registry>/claude-runner:latest .226docker build \

227 --build-arg CLAUDE_CODE_VERSION="$(curl -fsSL https://downloads.claude.ai/claude-code-releases/stable)" \

228 -t <your-registry>/claude-runner:latest .

227```229```

228 230 

231命令替換會查詢目前的 `stable` 發佈號碼,並將其作為構建引數傳遞,因此在新的穩定版本發佈後執行相同的命令會使用較新的二進位檔案重新構建下載層。若要為可重現的構建固定特定版本,請直接將版本號碼作為 `CLAUDE_CODE_VERSION` 傳遞。當您需要比穩定通道更新的版本(例如[新推出的模型所需的版本](/docs/zh-TW/model-config))時,在查詢 URL 中將 `stable` 替換為 `latest`。

232 

229<h2 id="size-cpu-and-memory-for-sessions">233<h2 id="size-cpu-and-memory-for-sessions">

230 為工作階段調整 CPU 和記憶體大小234 為工作階段調整 CPU 和記憶體大小

231</h2>235</h2>

Details

218 218 

219伺服器管理的傳遞新增這些行為:219伺服器管理的傳遞新增這些行為:

220 220 

221* `~/.claude/remote-settings.json` 中的快取會儲存已移除無效項目的已修復承載,除了無效的 `cleanupPeriodDays` 和 `desktopSessionCleanupPeriodDays` 值,它們會保留在快取副本中,永遠不會被套用。221* 在 `~/.claude/remote-settings.json` 中的快取上執行的啟動會以寫入快取的擷取方式處理無效項目:

222* 當承載中沒有欄位可以被修復,且承載不僅是那些保留金鑰時,Claude Code 會拒絕承載、保留最後接受的快取設定,並將 `Remote settings: Settings validation failed - no fields could be salvaged` 寫入偵錯日誌。設定 `forceRemoteSettingsRefresh` 時,CLI 會改為結束。222 * 無法通過驗證的項目會保持被捨棄。

223 * [失敗關閉的金鑰](/docs/zh-TW/managed-settings#keys-that-fail-closed)會保持其更嚴格的值。

224 * 無效的 `cleanupPeriodDays` 或 `desktopSessionCleanupPeriodDays` 值會保留在快取副本中,永遠不會被套用。

225* 當以下三項都為真時,Claude Code 不會套用承載中的任何內容,並保持快取不變:

226 

227 * 承載中的每個設定都無法通過驗證。

228 * 它們都不會回退到更嚴格的值。

229 * 承載包含除了那兩個保留金鑰之外的金鑰。

230 

231 啟動通知、`/status` 和 `claude doctor` 會報告[失敗的載入](/docs/zh-TW/errors#remote-managed-settings-failed-to-load),原因為 `no setting in the server response could be applied as written`,該項目會說明工作階段執行的原則。[強制執行失敗關閉啟動](#enforce-fail-closed-startup)的用戶端會改為在啟動時結束。

223* [安全核准對話方塊](#security-approval-dialogs)會評估已修復的承載,因此被移除的無效項目永遠不會被呈現以供核准,也永遠不會執行。232* [安全核准對話方塊](#security-approval-dialogs)會評估已修復的承載,因此被移除的無效項目永遠不會被呈現以供核准,也永遠不會執行。

224 233 

225若要偵錯傳遞問題,請執行 `claude --debug-file <path>` 並在日誌中搜尋 `Remote settings`。在將承載變更推出到組織之前,請在測試機器上使用 `claude doctor` 驗證承載變更。234若要偵錯傳遞問題,請執行 `claude --debug-file <path>` 並在日誌中搜尋 `Remote settings`。在將承載變更推出到組織之前,請在測試機器上使用 `claude doctor` 驗證承載變更。

sessions.md +3 −2

Details

43* 權限模式:如果您從終端機使用 `claude --continue`、`claude --resume <session-id>` 或 `claude --resume <name>`(當名稱符合一個 session 時)恢復,不帶 `-p`,Claude Code 會復原 session 所在的權限模式,除了[恢復時的權限模式](#permission-mode-on-resume)中的情況,其中也涵蓋 session 選擇器、`/resume` 和使用 `claude -p` 恢復。傳遞 `--permission-mode` 或 `--dangerously-skip-permissions` 以覆蓋復原的模式。43* 權限模式:如果您從終端機使用 `claude --continue`、`claude --resume <session-id>` 或 `claude --resume <name>`(當名稱符合一個 session 時)恢復,不帶 `-p`,Claude Code 會復原 session 所在的權限模式,除了[恢復時的權限模式](#permission-mode-on-resume)中的情況,其中也涵蓋 session 選擇器、`/resume` 和使用 `claude -p` 恢復。傳遞 `--permission-mode` 或 `--dangerously-skip-permissions` 以覆蓋復原的模式。

44* 活躍目標:[session 結束時仍然活躍的目標](/docs/zh-TW/goal#resume-with-an-active-goal)會延續;其輪次計數、計時器和代幣支出基線會重設。44* 活躍目標:[session 結束時仍然活躍的目標](/docs/zh-TW/goal#resume-with-an-active-goal)會延續;其輪次計數、計時器和代幣支出基線會重設。

45* 排程工作:[尚未過期的工作](/docs/zh-TW/scheduled-tasks#limitations)會被復原。背景 Bash 和監視工作不會。45* 排程工作:[尚未過期的工作](/docs/zh-TW/scheduled-tasks#limitations)會被復原。背景 Bash 和監視工作不會。

46* 背景工作:[背景子 agent](/docs/zh-TW/sub-agents#run-subagents-in-foreground-or-background)、背景 Bash 命令或[工作流程](/docs/zh-TW/workflows)在前一個程序結束時顯示在恢復的文字記錄中,作為它未完成的註記。Claude Code 不會從這些註記開始一個輪次;Claude 會在您的下一個提示中讀取它們。

46 47 

47並非原始啟動的每個設定旗標都會被復原。如果 session 依賴於 `--mcp-config`、`--settings`、`--plugin-dir`、`--fallback-model` 或使用 `--add-dir` 新增的目錄,在恢復時再次傳遞它們;使用 `/add-dir` 在 session 中途新增的目錄也不會被復原,儘管 session 選擇器仍會使用它們來定位 session。標準設定檔案(例如 `settings.json` 和 `settings.local.json`)會在啟動時重新讀取,因此存在於其中的設定不需要再次傳遞。對於 `--system-prompt` 和 `--append-system-prompt`,請參閱[恢復對話中的系統提示旗標](/docs/zh-TW/cli-reference#system-prompt-flags-in-resumed-conversations)。48並非原始啟動的每個設定旗標都會被復原。如果 session 依賴於 `--mcp-config`、`--settings`、`--plugin-dir`、`--fallback-model` 或使用 `--add-dir` 新增的目錄,在恢復時再次傳遞它們;使用 `/add-dir` 在 session 中途新增的目錄也不會被復原,儘管 session 選擇器仍會使用它們來定位 session。標準設定檔案(例如 `settings.json` 和 `settings.local.json`)會在啟動時重新讀取,因此存在於其中的設定不需要再次傳遞。對於 `--system-prompt` 和 `--append-system-prompt`,請參閱[恢復對話中的系統提示旗標](/docs/zh-TW/cli-reference#system-prompt-flags-in-resumed-conversations)。

48 49 


74 使用 `-p` 在 Plan Mode 中恢復75 使用 `-p` 在 Plan Mode 中恢復

75</h5>76</h5>

76 77 

77`claude -p --resume` 或 `claude -p --continue` 執行只有在所有四個條件都成立時才會在 Plan Mode 中恢復:78`claude -p --resume` 或 `claude -p --continue` 執行只有在所有這些條件都成立時才會在 Plan Mode 中恢復:

78 79 

79* 您傳遞 [`--permission-prompt-tool`](/docs/zh-TW/cli-reference#cli-flags),以便 Claude Code 可以呈現計畫以供批准80* 您傳遞 [`--permission-prompt-tool`](/docs/zh-TW/cli-reference#cli-flags),不傳遞 [`--permission-prompts none`](/docs/zh-TW/headless#turn-off-permission-prompts-in-unattended-runs),以便 Claude Code 可以呈現計畫以供批准

80* 您不傳遞 `--permission-mode` 或 `--dangerously-skip-permissions`81* 您不傳遞 `--permission-mode` 或 `--dangerously-skip-permissions`

81* 您不傳遞 `--fork-session`82* 您不傳遞 `--fork-session`

82* 執行不是透過[頻道](/docs/zh-TW/channels)啟動的83* 執行不是透過[頻道](/docs/zh-TW/channels)啟動的

settings-reference.md +280 −102

Details

620| [`autoScrollEnabled`](#autoscrollenabled) | 在全螢幕呈現中[跟隨新輸出](/docs/zh-TW/fullscreen#auto-follow)到底部 | 介面和終端 | Any file |620| [`autoScrollEnabled`](#autoscrollenabled) | 在全螢幕呈現中[跟隨新輸出](/docs/zh-TW/fullscreen#auto-follow)到底部 | 介面和終端 | Any file |

621| [`autoUpdatesChannel`](#autoupdateschannel) | 遵循穩定[發行頻道](/docs/zh-TW/setup#configure-release-channel)而不是最新版本 | 更新和版本控制 | Any file |621| [`autoUpdatesChannel`](#autoupdateschannel) | 遵循穩定[發行頻道](/docs/zh-TW/setup#configure-release-channel)而不是最新版本 | 更新和版本控制 | Any file |

622| [`availableModels`](#availablemodels) | [限制人員可以選擇的模型](/docs/zh-TW/model-config#restrict-model-selection) | 模型和回應 | Any file |622| [`availableModels`](#availablemodels) | [限制人員可以選擇的模型](/docs/zh-TW/model-config#restrict-model-selection) | 模型和回應 | Any file |

623| [`availableModelsMatch`](#availablemodelsmatch) | 讓每個 `availableModels` 模型 ID 條目[僅允許它命名的版本](/docs/zh-TW/model-config#block-specific-models-or-versions) | 模型和回應 | Managed |

623| [`awaySummaryEnabled`](#awaysummaryenabled) | 關閉當您回到終端時顯示的[工作階段摘要](/docs/zh-TW/interactive-mode#session-recap) | 遠端、桌面和通知 | Any file |624| [`awaySummaryEnabled`](#awaysummaryenabled) | 關閉當您回到終端時顯示的[工作階段摘要](/docs/zh-TW/interactive-mode#session-recap) | 遠端、桌面和通知 | Any file |

624| [`awsAuthRefresh`](#awsauthrefresh) | 使用您自己的命令重新整理 `.aws` 中過期的 [Bedrock 認證](/docs/zh-TW/amazon-bedrock#advanced-credential-configuration) | 驗證和提供者 | Any file |625| [`awsAuthRefresh`](#awsauthrefresh) | 使用您自己的命令重新整理 `.aws` 中過期的 [Bedrock 認證](/docs/zh-TW/amazon-bedrock#advanced-credential-configuration) | 驗證和提供者 | Any file |

625| [`awsCredentialExport`](#awscredentialexport) | 從您自己的命令以 JSON 形式提供 [Bedrock 認證](/docs/zh-TW/amazon-bedrock#advanced-credential-configuration) | 驗證和提供者 | Any file |626| [`awsCredentialExport`](#awscredentialexport) | 從您自己的命令以 JSON 形式提供 [Bedrock 認證](/docs/zh-TW/amazon-bedrock#advanced-credential-configuration) | 驗證和提供者 | Any file |


629| [`blockedMarketplaces`](#blockedmarketplaces) | 為您的組織封鎖[外掛程式市集](/docs/zh-TW/plugins/overview)來源 | 外掛程式和技能 | Managed |630| [`blockedMarketplaces`](#blockedmarketplaces) | 為您的組織封鎖[外掛程式市集](/docs/zh-TW/plugins/overview)來源 | 外掛程式和技能 | Managed |

630| [`browserExternalPageTools`](#browserexternalpagetools) | 在[桌面](/docs/zh-TW/desktop)瀏覽器窗格中的外部頁面上關閉 Claude 的工具 | 工具 | Managed |631| [`browserExternalPageTools`](#browserexternalpagetools) | 在[桌面](/docs/zh-TW/desktop)瀏覽器窗格中的外部頁面上關閉 Claude 的工具 | 工具 | Managed |

631| [`channelsEnabled`](#channelsenabled) | 為您的組織允許[頻道](/docs/zh-TW/channels#enable-channels-for-your-organization) | 外掛程式和技能 | Managed |632| [`channelsEnabled`](#channelsenabled) | 為您的組織允許[頻道](/docs/zh-TW/channels#enable-channels-for-your-organization) | 外掛程式和技能 | Managed |

633| [`claudeInChromeDefaultEnabled`](#claudeinchromedefaultenabled) | 在每個互動式 CLI 工作階段中開啟 [Chrome 整合](/docs/zh-TW/chrome),無需傳遞 `--chrome` | 全域設定設定 | Global config |

632| [`claudeMd`](#claudemd) | 從受管理的設定注入組織範圍的 [CLAUDE.md](/docs/zh-TW/memory#deploy-organization-wide-claude-md) 指示 | 記憶和內容 | Managed |634| [`claudeMd`](#claudemd) | 從受管理的設定注入組織範圍的 [CLAUDE.md](/docs/zh-TW/memory#deploy-organization-wide-claude-md) 指示 | 記憶和內容 | Managed |

633| [`claudeMdExcludes`](#claudemdexcludes) | 在記憶載入時跳過特定的 [CLAUDE.md](/docs/zh-TW/memory#exclude-specific-claude-md-files) 檔案 | 記憶和內容 | Any file |635| [`claudeMdExcludes`](#claudemdexcludes) | 在記憶載入時跳過特定的 [CLAUDE.md](/docs/zh-TW/memory#exclude-specific-claude-md-files) 檔案 | 記憶和內容 | Any file |

634| [`cleanupPeriodDays`](#cleanupperioddays) | 選擇 Claude Code 在刪除[文字記錄](/docs/zh-TW/data-usage#data-retention)之前保留多少天 | 隱私和遙測 | Any file |636| [`cleanupPeriodDays`](#cleanupperioddays) | 選擇 Claude Code 在刪除[文字記錄](/docs/zh-TW/data-usage#data-retention)之前保留多少天 | 隱私和遙測 | Any file |

635| [`companyAnnouncements`](#companyannouncements) | 在啟動時顯示您組織的公告 | 介面和終端 | Any file |637| [`companyAnnouncements`](#companyannouncements) | 在啟動時顯示您組織的公告 | 介面和終端 | Any file |

638| [`copyFullResponse`](#copyfullresponse) | 讓 [`/copy`](/docs/zh-TW/commands) 複製完整回應,無需顯示程式碼區塊選擇器 | 全域設定設定 | Global config |

636| [`copyOnSelect`](#copyonselect) | 關閉在[全螢幕呈現](/docs/zh-TW/fullscreen#use-the-mouse)和代理檢視中使用滑鼠選擇的文字自動複製 | 全域設定設定 | Global config |639| [`copyOnSelect`](#copyonselect) | 關閉在[全螢幕呈現](/docs/zh-TW/fullscreen#use-the-mouse)和代理檢視中使用滑鼠選擇的文字自動複製 | 全域設定設定 | Global config |

637| [`crossSessionInbound`](#crosssessioninbound) | 選擇 Claude Code 是否傳遞[來自您其他工作階段的訊息](/docs/zh-TW/cross-session-messaging#control-inbound-messages)、顯示通知而不傳遞訊息,或拒絕訊息 | 代理、工作階段和 worktrees | Any file |640| [`crossSessionInbound`](#crosssessioninbound) | 選擇 Claude Code 是否傳遞[來自您其他工作階段的訊息](/docs/zh-TW/cross-session-messaging#control-inbound-messages)、顯示通知而不傳遞訊息,或拒絕訊息 | 代理、工作階段和 worktrees | Any file |

638| [`defaultShell`](#defaultshell) | 選擇 Bash 或 PowerShell 執行您使用 [`!` 前置詞](/docs/zh-TW/interactive-mode#shell-mode-with-prefix)輸入的 shell 命令 | 介面和終端 | Any file |641| [`defaultShell`](#defaultshell) | 選擇 Bash 或 PowerShell 執行您使用 [`!` 前置詞](/docs/zh-TW/interactive-mode#shell-mode-with-prefix)輸入的 shell 命令 | 介面和終端 | Any file |

642| [`defaultToAgentsView`](#defaulttoagentsview) | 當您執行不帶引數的 `claude` 時,開啟[代理檢視](/docs/zh-TW/agent-view)而不是新對話 | 全域設定設定 | Global config |

639| [`deniedMcpServers`](#deniedmcpservers) | 按 URL、命令或名稱封鎖特定的 [MCP 伺服器](/docs/zh-TW/mcp) | MCP | Any file |643| [`deniedMcpServers`](#deniedmcpservers) | 按 URL、命令或名稱封鎖特定的 [MCP 伺服器](/docs/zh-TW/mcp) | MCP | Any file |

644| [`deniedModels`](#deniedmodels) | [封鎖特定模型](/docs/zh-TW/model-config#block-specific-models-or-versions),即使是 `availableModels` 允許的模型 | 模型和回應 | Managed |

640| [`desktopSessionCleanupPeriodDays`](#desktopsessioncleanupperioddays) | 為[Claude Desktop 和 Cowork 文字記錄](/docs/zh-TW/claude-directory#cleaned-up-automatically)設定天數年齡限制 | 隱私和遙測 | User or managed |645| [`desktopSessionCleanupPeriodDays`](#desktopsessioncleanupperioddays) | 為[Claude Desktop 和 Cowork 文字記錄](/docs/zh-TW/claude-directory#cleaned-up-automatically)設定天數年齡限制 | 隱私和遙測 | User or managed |

641| [`dialogExpiry`](#dialogexpiry) | 設定 Claude Code 在取消對話之前等待[遠端控制](/docs/zh-TW/remote-control)或 SDK 主機回答轉送對話的時間 | 介面和終端 | User or managed |646| [`dialogExpiry`](#dialogexpiry) | 設定 Claude Code 在取消對話之前等待[遠端控制](/docs/zh-TW/remote-control)或 SDK 主機回答轉送對話的時間 | 介面和終端 | User or managed |

642| [`diffTool`](#difftool) | 選擇 Claude 提議的檔案變更是否在 [VS Code](/docs/zh-TW/vs-code) 或 [JetBrains](/docs/zh-TW/jetbrains#features) diff 檢視器中開啟,或保留在終端中 | 全域設定設定 | Global config |647| [`diffTool`](#difftool) | 選擇 Claude 提議的檔案變更是否在 [VS Code](/docs/zh-TW/vs-code) 或 [JetBrains](/docs/zh-TW/jetbrains#features) diff 檢視器中開啟,或保留在終端中 | 全域設定設定 | Global config |


690| [`isolatePeerMachines`](#isolatepeermachines) | 在 Claude [傳訊另一台機器上的其中一個工作階段](/docs/zh-TW/cross-session-messaging#require-approval-for-cross-machine-messages)之前詢問您 | 代理、工作階段和 worktrees | Any file |695| [`isolatePeerMachines`](#isolatepeermachines) | 在 Claude [傳訊另一台機器上的其中一個工作階段](/docs/zh-TW/cross-session-messaging#require-approval-for-cross-machine-messages)之前詢問您 | 代理、工作階段和 worktrees | Any file |

691| [`keybindingFlavor`](#keybindingflavor) | 已棄用且無效;字詞編輯快捷鍵始終[遵循 readline 慣例](/docs/zh-TW/interactive-mode#make-ctrl-w-delete-back-to-whitespace) | 介面和終端 | Any file |696| [`keybindingFlavor`](#keybindingflavor) | 已棄用且無效;字詞編輯快捷鍵始終[遵循 readline 慣例](/docs/zh-TW/interactive-mode#make-ctrl-w-delete-back-to-whitespace) | 介面和終端 | Any file |

692| [`language`](#language) | 讓 Claude 以英文以外的語言回應 | 模型和回應 | Any file |697| [`language`](#language) | 讓 Claude 以英文以外的語言回應 | 模型和回應 | Any file |

698| [`leftArrowOpensAgents`](#leftarrowopensagents) | 關閉 `←` 快捷鍵,該快捷鍵[背景化工作階段並開啟代理檢視](/docs/zh-TW/agent-view#switch-sessions-without-leaving-the-terminal) | 全域設定設定 | Global config |

693| [`managedMcpServers`](#managedmcpservers) | 為每個使用者提供遠端 [MCP 伺服器](/docs/zh-TW/managed-mcp#provide-servers-through-managed-settings),以及他們新增的伺服器 | MCP | Managed |699| [`managedMcpServers`](#managedmcpservers) | 為每個使用者提供遠端 [MCP 伺服器](/docs/zh-TW/managed-mcp#provide-servers-through-managed-settings),以及他們新增的伺服器 | MCP | Managed |

694| [`managedSourcesBehavior`](#managedsourcesbehavior) | 組合您部署的每個[受管理的來源](/docs/zh-TW/managed-settings#how-claude-code-combines-managed-sources),而不是單獨使用最高優先順序的來源 | 企業和受管理的設定 | Managed |700| [`managedSourcesBehavior`](#managedsourcesbehavior) | 組合您部署的每個[受管理的來源](/docs/zh-TW/managed-settings#how-claude-code-combines-managed-sources),而不是單獨使用最高優先順序的來源 | 企業和受管理的設定 | Managed |

695| [`maxEffortLevel`](#maxeffortlevel) | 在每個提供者上為每個模型或每個模型上限[努力等級](/docs/zh-TW/model-config#adjust-effort-level) | 模型和回應 | Any file |701| [`maxEffortLevel`](#maxeffortlevel) | 在每個提供者上為每個模型或每個模型上限[努力等級](/docs/zh-TW/model-config#adjust-effort-level) | 模型和回應 | Any file |

702| [`maxProseWidth`](#maxprosewidth) | 在寬終端中限制 Claude 回應中的散文執行寬度 | 介面和終端 | Any file |

696| [`minimumVersion`](#minimumversion) | 保持[自動更新](/docs/zh-TW/setup#pin-a-minimum-version)不安裝低於版本的任何內容 | 更新和版本控制 | Any file |703| [`minimumVersion`](#minimumversion) | 保持[自動更新](/docs/zh-TW/setup#pin-a-minimum-version)不安裝低於版本的任何內容 | 更新和版本控制 | Any file |

697| [`model`](#model) | 變更 Claude Code 開始使用的[模型](/docs/zh-TW/model-config#set-a-default-model-for-new-sessions) | 模型和回應 | Any file |704| [`model`](#model) | 變更 Claude Code 開始使用的[模型](/docs/zh-TW/model-config#set-a-default-model-for-new-sessions) | 模型和回應 | Any file |

698| [`modelOverrides`](#modeloverrides) | [將模型 ID 對應](/docs/zh-TW/model-config#override-model-ids-per-version)到您提供者的 ID,例如 Bedrock ARN | 模型和回應 | Any file |705| [`modelOverrides`](#modeloverrides) | [將模型 ID 對應](/docs/zh-TW/model-config#override-model-ids-per-version)到您提供者的 ID,例如 Bedrock ARN | 模型和回應 | Any file |


724| [`processWrapper`](#processwrapper) | 在 macOS 和 Linux 上透過[公司啟動器](/docs/zh-TW/corporate-launcher)執行 Claude Code 的背景程序 | 代理、工作階段和 worktrees | User or managed |731| [`processWrapper`](#processwrapper) | 在 macOS 和 Linux 上透過[公司啟動器](/docs/zh-TW/corporate-launcher)執行 Claude Code 的背景程序 | 代理、工作階段和 worktrees | User or managed |

725| [`promptCacheTtl`](#promptcachettl) | 選擇主要對話的[提示快取生命週期](/docs/zh-TW/prompt-caching#cache-lifetime) | 模型和回應 | Any file |732| [`promptCacheTtl`](#promptcachettl) | 選擇主要對話的[提示快取生命週期](/docs/zh-TW/prompt-caching#cache-lifetime) | 模型和回應 | Any file |

726| [`promptSuggestionEnabled`](#promptsuggestionenabled) | 隱藏輸入框中灰顯的[提示建議](/docs/zh-TW/interactive-mode#prompt-suggestions) | 介面和終端 | Any file |733| [`promptSuggestionEnabled`](#promptsuggestionenabled) | 隱藏輸入框中灰顯的[提示建議](/docs/zh-TW/interactive-mode#prompt-suggestions) | 介面和終端 | Any file |

734| [`prStatusFooterEnabled`](#prstatusfooterenabled) | 關閉提示頁尾的 [PR 審查狀態](/docs/zh-TW/interactive-mode#pr-review-status)徽章和其後的提取請求檢查 | 全域設定設定 | Global config |

727| [`prUrlTemplate`](#prurltemplate) | 將 PR 連結指向內部程式碼審查工具而不是 github.com | Git 和歸屬 | Any file |735| [`prUrlTemplate`](#prurltemplate) | 將 PR 連結指向內部程式碼審查工具而不是 github.com | Git 和歸屬 | Any file |

728| [`remote.defaultEnvironmentId`](#remote-defaultenvironmentid) | 為 `claude --cloud` 選擇預設[雲端環境](/docs/zh-TW/cloud-environments);自託管 `ccpool_` ID 僅從使用者和受管理的設定以及 `--settings` 讀取 | 遠端、桌面和通知 | Any file |736| [`remote.defaultEnvironmentId`](#remote-defaultenvironmentid) | 為 `claude --cloud` 選擇預設[雲端環境](/docs/zh-TW/cloud-environments);自託管 `ccpool_` ID 僅從使用者和受管理的設定以及 `--settings` 讀取 | 遠端、桌面和通知 | Any file |

729| [`remoteControlAtStartup`](#remotecontrolatstartup) | 當工作階段開始時自動連線[遠端控制](/docs/zh-TW/remote-control#enable-remote-control-for-all-sessions) | 遠端、桌面和通知 | Any file |737| [`remoteControlAtStartup`](#remotecontrolatstartup) | 當工作階段開始時自動連線[遠端控制](/docs/zh-TW/remote-control#enable-remote-control-for-all-sessions) | 遠端、桌面和通知 | Any file |


858 866 

859透過將此設定為 `false` 來為每個工作階段關閉[延伸思考](/docs/zh-TW/model-config#extended-thinking)。思考預設為開啟,因此 `true` 不會改變任何內容。大多數人透過 `/config` 而不是編輯檔案來設定此項。867透過將此設定為 `false` 來為每個工作階段關閉[延伸思考](/docs/zh-TW/model-config#extended-thinking)。思考預設為開啟,因此 `true` 不會改變任何內容。大多數人透過 `/config` 而不是編輯檔案來設定此項。

860 868 

861在始終思考的模型上,例如 Opus 5.5 和 Fable 模型,`false` 無效。在[第三方提供者](/docs/zh-TW/third-party-integrations)上,Claude Code 省略 `thinking` 參數而不是關閉思考,因此自適應推理模型可能仍會思考。在 Anthropic API 上關閉思考時,Claude Code 會傳送努力 `high` 而不是更高級別給它知道[不接受該組合](/docs/zh-TW/errors#effort-isnt-available-with-thinking-turned-off)的模型,例如 Opus 5。869在始終思考的模型上,例如 Opus 5.5、Sonnet 5.5 和 Fable 模型,`false` 無效。在[第三方提供者](/docs/zh-TW/third-party-integrations)上,Claude Code 省略 `thinking` 參數而不是關閉思考,因此自適應推理模型可能仍會思考。在 Anthropic API 上關閉思考時,Claude Code 會傳送努力 `high` 而不是更高級別給它知道[不接受該組合](/docs/zh-TW/errors#effort-isnt-available-with-thinking-turned-off)的模型,例如 Opus 5。

862 870 

863* **範圍**: [`任何檔案`](#scopes)871* **範圍**: [`任何檔案`](#scopes)

864* **類型**: 布林值872* **類型**: 布林值


877 `availableModels`885 `availableModels`

878</h3>886</h3>

879 887 

880限制人們可以為主要工作階段、[子代理](/docs/zh-TW/sub-agents)、[技能](/docs/zh-TW/skills)和[顧問](/docs/zh-TW/advisor)選擇的模型。受管清單限制 `/model`、`--model` 和開發人員自己檔案中的 `model` 金鑰;清單外的模型無法選擇。單獨來說,這不會觸及預設選項;將其與 [`enforceAvailableModels`](#enforceavailablemodels) 配對以實現該目的。888限制人們可以為主要工作階段、[子代理](/docs/zh-TW/sub-agents)、[技能](/docs/zh-TW/skills)和[顧問](/docs/zh-TW/advisor)選擇的模型。受管清單限制 `/model`、`--model` 和開發人員自己檔案中的 `model` 金鑰;清單外的模型無法選擇。使用預設的前綴符合,這不會單獨觸及預設選項;將其與 [`enforceAvailableModels`](#enforceavailablemodels) 配對以實現該目的。

881 889 

882* **範圍**: [`任何檔案`](#scopes)。在受管設定中部署以為組織強制執行。890* **範圍**: [`任何檔案`](#scopes)。在受管設定中部署以為組織強制執行。

883* **類型**: 模型別名或 ID 的陣列891* **類型**: 模型別名或 ID 的陣列


891}899}

892```900```

893 901 

894請參閱[限制模型選擇](/docs/zh-TW/model-config#restrict-model-selection)。902模型 ID 項目(例如 `"claude-opus-5"`)也允許擴展它的更新版本,例如 Opus 5.5。要阻止其中一個版本,請使用 [`deniedModels`](#deniedmodels)。要使每個模型 ID 項目僅允許它命名的版本,請使用 [`availableModelsMatch`](#availablemodelsmatch)。請參閱[限制模型選擇](/docs/zh-TW/model-config#restrict-model-selection)。

903 

904<h3 id="availablemodelsmatch">

905 `availableModelsMatch`

906</h3>

907 

908選擇 [`availableModels`](#availablemodels) 項目如何符合模型 ID。預設情況下,模型 ID 項目也允許擴展它的更新版本,因此 `"claude-opus-5"` 允許 Opus 5.5。使用 `"exact"`,每個模型 ID 項目僅允許它命名的版本,因此該模型的更新版本保持被阻止,直到您列出它。需要 Claude Code v2.1.283 或更新版本。

909 

910* **範圍**: [`受管`](#scopes)。Claude Code 在使用者、專案和本地設定以及 `--settings` 中忽略金鑰,並帶有警告

911* **類型**: 字串,其中之一:

912 * `"prefix"`: 模型 ID 項目允許其版本和任何用另一個區段擴展它的模型 ID

913 * `"exact"`: 模型 ID 項目僅允許它命名的版本,包括該版本的日期 ID,因此 `"claude-opus-5"` 允許 Opus 5 但不允許 `claude-opus-5-5`。系列別名(例如 `"opus"`)仍然允許整個系列,`best`、`opusplan` 和 `default` 項目被忽略

914* **預設**: `"prefix"`

915 

916此範例允許 Opus 5 和 Sonnet 5,不允許任何更新版本:

917 

918```json managed-settings.json theme={null}

919{

920 "availableModels": ["claude-opus-5", "claude-sonnet-5"],

921 "availableModelsMatch": "exact"

922}

923```

924 

925使用 `"exact"`,預設選項也限制為列出的模型,只要清單至少命名一個模型或系列。請參閱[阻止特定模型或版本](/docs/zh-TW/model-config#block-specific-models-or-versions)。

926 

927<h3 id="deniedmodels">

928 `deniedModels`

929</h3>

930 

931阻止特定模型,無論是否有 [`availableModels`](#availablemodels) 允許清單,即使該清單允許它們。Claude Code 從 `/model` 選擇器隱藏被阻止的模型,該模型無法在強制執行 `availableModels` 的任何地方選擇。預設選項上的工作階段也不執行被阻止的模型,如[阻止特定模型或版本](/docs/zh-TW/model-config#block-specific-models-or-versions)所述。需要 Claude Code v2.1.283 或更新版本。

932 

933* **範圍**: [`受管`](#scopes)。Claude Code 在使用者、專案和本地設定以及 `--settings` 中忽略金鑰,並帶有警告

934* **類型**: 模型別名或 ID 的陣列

935 * 系列別名(例如 `"opus"`)阻止該系列中的每個模型

936 * 模型 ID(例如 `"claude-opus-5-5"`)在每個拼寫中阻止該版本,包括日期和提供者特定 ID

937 * 沒有次要版本的模型 ID(例如 `"claude-opus-5"`)也阻止更新的次要版本,例如 Opus 5.5。寫 `"claude-opus-5-0"` 以僅阻止 Opus 5

938 * `best`、`opusplan` 和 `default` 項目被忽略

939* **預設**: 未設定,因此沒有模型被阻止

940 

941此範例允許 Opus 和 Sonnet 模型,並阻止 Opus 5.5:

942 

943```json managed-settings.json theme={null}

944{

945 "availableModels": ["opus", "sonnet"],

946 "deniedModels": ["claude-opus-5-5"]

947}

948```

949 

950請參閱[阻止特定模型或版本](/docs/zh-TW/model-config#block-specific-models-or-versions)。

895 951 

896<h3 id="effortlevel">952<h3 id="effortlevel">

897 `effortLevel`953 `effortLevel`


926 `enforceAvailableModels`982 `enforceAvailableModels`

927</h3>983</h3>

928 984 

929`/model` 選擇器有一個**預設**選項,當適用時解析為您的[組織預設模型](/docs/zh-TW/model-config#organization-default-model),否則解析為您帳戶類型的預設。[`availableModels`](#availablemodels) 允許清單限制您可以命名的模型,但單獨來說它保留**預設**不變,因此**預設**仍可解析為清單外的模型。此金鑰關閉該間隙。需要 Claude Code v2.1.175 或更新版本。985`/model` 選擇器有一個**預設**選項,[`default` 模型設定](/docs/zh-TW/model-config#default-model-setting)描述它解析為的模型。[`availableModels`](#availablemodels) 允許清單限制您可以命名的模型,但使用預設的[前綴符合](#availablemodelsmatch),它不會重新對應您帳戶類型的預設,因此**預設**仍可解析為清單外的模型。此金鑰關閉該間隙。需要 Claude Code v2.1.175 或更新版本。

930 986 

931當您的組織部署任何受管設定時,Claude Code 僅從受管來源讀取此金鑰,並忽略您其他檔案中的此金鑰。987當您的組織部署任何受管設定時,Claude Code 僅從受管來源讀取此金鑰,並忽略您其他檔案中的此金鑰。

932 988 

933* **範圍**: [`任何檔案`](#scopes)989* **範圍**: [`任何檔案`](#scopes)

934* **類型**: 布林值990* **類型**: 布林值

935 * `true`: 當**預設**會解析為 `availableModels` 外的模型時,Claude Code 將其解析為清單中第一個可用的模型991 * `true`: 當**預設**會解析為 `availableModels` 外的模型時,Claude Code 將其解析為清單中第一個可用的模型

936 * `false`: **預設**照常解析,即使解析為 `availableModels` 外的模型992 * `false`: 此金鑰不會改變**預設**如何解析

937* **預設**: `false`993* **預設**: `false`

938 994 

939此範例將命名選擇限制為 Sonnet 和 Haiku 模型,並使**預設**解析為其中第一個可用的:995此範例將命名選擇限制為 Sonnet 和 Haiku 模型,並使**預設**解析為其中第一個可用的:


1036* **範圍**: [`任何檔案`](#scopes)。在受管設定中部署以為組織強制執行。當多個範圍設定上限時,最低的適用,因此在一個範圍中設定的上限無法從另一個範圍提高1092* **範圍**: [`任何檔案`](#scopes)。在受管設定中部署以為組織強制執行。當多個範圍設定上限時,最低的適用,因此在一個範圍中設定的上限無法從另一個範圍提高

1037* **類型**: 字串,其中之一 `"low"`、`"medium"`、`"high"`、`"xhigh"` 或 `"max"`。`"max"` 值設定無上限1093* **類型**: 字串,其中之一 `"low"`、`"medium"`、`"high"`、`"xhigh"` 或 `"max"`。`"max"` 值設定無上限

1038* **預設**: 未設定,因此無上限適用1094* **預設**: 未設定,因此無上限適用

1039* **對 ultracode 的影響**: 低於 `xhigh` 的上限使[ultracode](#ultracode)在上限適用的模型上不可用

1040* **每個模型的上限**: 將 `maxEffortLevel` 新增到模型的 [`modelSettings`](#modelsettings) 項目。該項目在設定來源(例如您的使用者設定或一個[受管來源](/docs/zh-TW/managed-settings#how-claude-code-combines-managed-sources))中設定兩者的範圍內僅替換該模型的此金鑰。在那裡設定 `"max"` 以豁免該模型免受該來源的上限;Claude Code 仍然應用來自其他來源的上限1095* **每個模型的上限**: 將 `maxEffortLevel` 新增到模型的 [`modelSettings`](#modelsettings) 項目。該項目在設定來源(例如您的使用者設定或一個[受管來源](/docs/zh-TW/managed-settings#how-claude-code-combines-managed-sources))中設定兩者的範圍內僅替換該模型的此金鑰。在那裡設定 `"max"` 以豁免該模型免受該來源的上限;Claude Code 仍然應用來自其他來源的上限

1041 1096 

1042此範例將每個模型限制在 `medium`,並豁免 Sonnet 4.6:1097此範例將每個模型限制在 `medium`,並豁免 Sonnet 4.6:


1134 1189 

1135| 欄位 | 類型 | 它的作用 |1190| 欄位 | 類型 | 它的作用 |

1136| :- | :- | :- |1191| :- | :- | :- |

1137| `options` | 行的陣列,每行具有必需的 `model` 和可選的 `label` 和 `description` | 選擇器顯示的行,按此順序,除了灰顯的行移到底部。沒有 `label` 時,Claude Code 用它知道的模型的內建名稱標題行,或模型 ID 否則,沒有 `description` 時它寫通用第二行 |1192| `options` | 行的陣列,每行具有必需的 `model` 和可選的 `label`、`description` 和 `behavesAs` | 選擇器顯示的行,按此順序,除了灰顯的行移到底部。沒有 `label` 時,Claude Code 用它知道的模型的內建名稱標題行,或模型 ID 否則,沒有 `description` 時它寫通用第二行 |

1138| `replaceBuiltInOptions` | 布林值,預設 `false` | 將其設定為 `true` 以僅顯示這些行、**預設**和工作階段已在使用的模型的行。保留未設定以在內建陣容之後新增這些行 |1193| `replaceBuiltInOptions` | 布林值,預設 `false` | 將其設定為 `true` 以僅顯示這些行、**預設**和工作階段已在使用的模型的行。保留未設定以在內建陣容之後新增這些行 |

1139 1194 

1195在 `options` 中的項目也可以在其 `model` 旁邊帶有可選的 `behavesAs` 字串,需要 v2.1.257 或更新版本。將其設定為您的 Claude Code 版本已知的模型 ID,例如 `claude-opus-4-8`,在其 `model` 比您的版本更新的項目上。Claude Code 然後將該已知模型的能力和努力預設應用於項目,而不是將其模型視為未知。項目的標籤和 Claude Code 在請求中傳送的模型 ID 不會改變。

1196 

1140開啟 `replaceBuiltInOptions` 時,Claude Code 隱藏每個其他行:內建陣容、它為 [`availableModels`](#availablemodels) 項目新增的行、[閘道發現](/docs/zh-TW/llm-gateway-protocol#model-discovery)找到的模型和 [`ANTHROPIC_CUSTOM_MODEL_OPTION`](/docs/zh-TW/model-config#add-a-custom-model-option)。關閉時,Claude Code 跳過內建陣容已涵蓋的列出模型。標籤改變選擇器顯示的內容,而不是 Claude Code 執行的模型。1197開啟 `replaceBuiltInOptions` 時,Claude Code 隱藏每個其他行:內建陣容、它為 [`availableModels`](#availablemodels) 項目新增的行、[閘道發現](/docs/zh-TW/llm-gateway-protocol#model-discovery)找到的模型和 [`ANTHROPIC_CUSTOM_MODEL_OPTION`](/docs/zh-TW/model-config#add-a-custom-model-option)。關閉時,Claude Code 跳過內建陣容已涵蓋的列出模型。標籤改變選擇器顯示的內容,而不是 Claude Code 執行的模型。

1141 1198 

1142[`availableModels`](#availablemodels) 允許清單仍然適用於這些行。在將列出的模型新增到允許清單之前,請閱讀[合併行為](/docs/zh-TW/model-config#merge-behavior):特定模型 ID 縮小其系列的萬用字元項目。Claude Code 也在顯示選擇器之前根據工作階段檢查每行:1199[`availableModels`](#availablemodels) 允許清單仍然適用於這些行。在將列出的模型新增到允許清單之前,請閱讀[合併行為](/docs/zh-TW/model-config#merge-behavior):特定模型 ID 縮小其系列的萬用字元項目。Claude Code 也在顯示選擇器之前根據工作階段檢查每行:


1351 `ultracode`1408 `ultracode`

1352</h3>1409</h3>

1353 1410 

1354使用[ultracode](/docs/zh-TW/workflows#let-claude-decide-with-ultracode)啟動工作階段。開啟時,Claude 為每個實質性任務規劃工作流程,而不是等待您要求。Claude 僅在為您啟用[動態工作流程](/docs/zh-TW/workflows)、您的模型支援 `xhigh` 努力且沒有[努力上限](/docs/zh-TW/model-config#organization-effort-limits)低於 `xhigh` 時規劃工作流程。無論如何,`ultracode: true` 在 `xhigh` 努力或當努力上限更低時在上限執行工作階段。Claude Code 讀取此金鑰但永遠不寫入它:`/effort ultracode` 僅為目前工作階段開啟 ultracode。1411使用[ultracode](/docs/zh-TW/workflows#let-claude-decide-with-ultracode)啟動工作階段。開啟時,Claude 為每個實質性任務規劃工作流程,而不是等待您要求。Claude 僅在為您啟用[動態工作流程](/docs/zh-TW/workflows)且您的模型支援 `xhigh` 努力時規劃工作流程。此金鑰不會改變工作階段的努力級別:ultracode 在工作階段使用的任何級別執行。Claude Code 讀取此金鑰但永遠不寫入它:`/effort ultracode` 為目前工作階段開啟 ultracode。

1355 1412 

1356* **範圍**: [`任何檔案`](#scopes)1413* **範圍**: [`任何檔案`](#scopes)

1357* **類型**: 布林值1414* **類型**: 布林值

1358 * `true`: 工作階段以 `xhigh` 努力開始,當為您啟用動態工作流程、您的模型支援 `xhigh` 且沒有努力上限低於 `xhigh` 時,ultracode 開啟1415 * `true`: 當為您啟用動態工作流程且您的模型支援 `xhigh` 時,工作階段以 ultracode 開啟開始

1359 * `false`: 工作階段以 ultracode 關閉開始1416 * `false`: 工作階段以 ultracode 關閉開始

1360* **預設**: 未設定,因此 ultracode 已關閉1417* **預設**: 未設定,因此 ultracode 已關閉

1361* **每個工作階段的覆蓋**: `/effort ultracode` 在沒有此金鑰的情況下為一個工作階段開啟 ultracode。`--effort ultracode` 標誌也為一個工作階段開啟它,需要 Claude Code v2.1.203 或更新版本1418* **每個工作階段的覆蓋**: `/effort ultracode` 在沒有此金鑰的情況下為一個工作階段開啟 ultracode,`/effort ultracode off` 在此金鑰為 `true` 時為一個工作階段關閉它。`--effort ultracode` 標誌也為一個工作階段開啟它,在 `xhigh` 努力,需要 Claude Code v2.1.203 或更新版本

1362 1419 

1363```json settings.json theme={null}1420```json settings.json theme={null}

1364{1421{


1366}1423}

1367```1424```

1368 1425 

1369Ultracode 在 `xhigh` 努力執行工作階段,優先於 `effortLevel` 和 [`modelSettings`](#modelsettings) 項目。如果[努力上限](/docs/zh-TW/model-config#organization-effort-limits)低於 `xhigh` 適用於模型,例如 [`maxEffortLevel`](#maxeffortlevel) 設定,工作階段改為在上限執行,ultracode 保持關閉。Claude 然後不自己規劃工作流程,`/effort` 不提供 `ultracode`。Agent SDK `apply_flag_settings` 控制請求也接受金鑰。1426工作階段的努力級別來自 [`effortLevel`](#effortlevel)、[`modelSettings`](#modelsettings) 和其他[努力來源](/docs/zh-TW/model-config#adjust-effort-level),[努力上限](/docs/zh-TW/model-config#organization-effort-limits)(例如 [`maxEffortLevel`](#maxeffortlevel))降低該級別而不關閉 ultracode。這和 `/effort ultracode off` 形式需要 Claude Code v2.1.284 或更新版本。在 v2.1.284 之前,`ultracode: true` 在 `xhigh` 努力執行工作階段,低於 `xhigh` 的努力上限保持 ultracode 關閉。Agent SDK `apply_flag_settings` 控制請求也接受此金鑰。

1370 1427 

1371<h2 id="permission-settings">1428<h2 id="permission-settings">

1372 權限設定1429 權限設定


1489 `useAutoModeDuringPlan`1546 `useAutoModeDuringPlan`

1490</h3>1547</h3>

1491 1548 

1492選擇 Claude Code 是否在計畫模式中使用自動模式分類器來檢查 shell 命令。使用預設值 `true`,分類器在計畫期間檢查每個命令(當自動模式可用且您看不到提示時)。設定 `false` 以針對內建唯讀集之外的每個命令獲得權限提示。在 `/config` 中顯示為**在計畫期間使用自動模式**。1549選擇 Claude Code 是否在計畫模式中使用自動模式分類器來檢查 shell 命令。使用預設值 `true`,分類器在計畫期間檢查每個命令(當自動模式可用且您看不到提示時),除了[關鍵路徑移除](/docs/zh-TW/permission-modes#critical-paths)。設定 `false` 以針對內建唯讀集之外的每個命令獲得權限提示。在 `/config` 中顯示為**在計畫期間使用自動模式**。

1493 1550 

1494* **範圍**:[`User, local, or managed`](#scopes)。儲存庫無法為您關閉它。1551* **範圍**:[`User, local, or managed`](#scopes)。儲存庫無法為您關閉它。

1495* **類型**:布林值1552* **類型**:布林值

1496 * `true`:與未設定相同;當自動模式可用時,分類器在計畫期間檢查每個 shell 命令,而不是提示您。任何這些檔案中的 `false` 仍然會關閉它1553 * `true`:與未設定相同;當自動模式可用時,分類器在計畫期間檢查每個 shell 命令,而不是提示您,除了[關鍵路徑移除](/docs/zh-TW/permission-modes#critical-paths)。任何這些檔案中的 `false` 仍然會關閉它

1497 * `false`:您會針對內建唯讀集之外的每個命令獲得權限提示1554 * `false`:您會針對內建唯讀集之外的每個命令獲得權限提示

1498* **預設值**:`true`1555* **預設值**:`true`

1499 1556 


3017* [`CLAUDE_CODE_MESSAGING_SOCKET` 和 `CLAUDE_CODE_MESSAGING_TOKEN`](/docs/zh-TW/env-vars#variables),Claude Code 自己匯出的,從每個檔案中被忽略。忽略 socket 變數需要 Claude Code v2.1.224 或更高版本,忽略令牌需要 v2.1.228 或更高版本。3074* [`CLAUDE_CODE_MESSAGING_SOCKET` 和 `CLAUDE_CODE_MESSAGING_TOKEN`](/docs/zh-TW/env-vars#variables),Claude Code 自己匯出的,從每個檔案中被忽略。忽略 socket 變數需要 Claude Code v2.1.224 或更高版本,忽略令牌需要 v2.1.228 或更高版本。

3018* [`CLAUDE_CODE_PROJECT_DIR_NAME`](/docs/zh-TW/sessions#name-the-project-directory-yourself),Claude Code 僅從啟動環境讀取,從每個檔案中被忽略;需要 v2.1.234 或更高版本。3075* [`CLAUDE_CODE_PROJECT_DIR_NAME`](/docs/zh-TW/sessions#name-the-project-directory-yourself),Claude Code 僅從啟動環境讀取,從每個檔案中被忽略;需要 v2.1.234 或更高版本。

3019* [`CLAUDE_CODE_RESTRICTED`](/docs/zh-TW/env-vars#variables),Claude Code 僅從啟動環境讀取,從每個檔案中被忽略。3076* [`CLAUDE_CODE_RESTRICTED`](/docs/zh-TW/env-vars#variables),Claude Code 僅從啟動環境讀取,從每個檔案中被忽略。

3077* [`CLAUDE_CODE_DISABLE_POWERSHELL_CMD_RM_DENY`](/docs/zh-TW/env-vars#variables),Claude Code 僅從啟動環境讀取,從每個檔案中被忽略。此變數需要 Claude Code v2.1.283 或更高版本。

3078* [`CLAUDE_CODE_DISABLE_DANGEROUS_RM_TIMEOUT` 和 `CLAUDE_CODE_DISABLE_SUBSTITUTION_RM_PROMPT`](/docs/zh-TW/env-vars#variables),Claude Code 僅從啟動環境讀取,從每個檔案中被忽略。

3020 3079 

3021<h3 id="filecheckpointingenabled">3080<h3 id="filecheckpointingenabled">

3022 `fileCheckpointingEnabled`3081 `fileCheckpointingEnabled`


3043 `plansDirectory`3102 `plansDirectory`

3044</h3>3103</h3>

3045 3104 

3046選擇 Claude Code 在 [plan mode](/docs/zh-TW/permission-modes#analyze-before-you-edit-with-plan-mode) 中寫入的計畫檔案的儲存位置。Claude Code 相對於專案根目錄解析路徑,當路徑解析在其外部時保持預設值。3105選擇 Claude Code 在 [Plan Mode](/docs/zh-TW/permission-modes#analyze-before-you-edit-with-plan-mode) 中寫入的計畫檔案的儲存位置。Claude Code 相對於專案根目錄解析路徑,當路徑解析在其外部時保持預設值。

3047 3106 

3048* **範圍**:[`任何檔案`](#scopes)3107* **範圍**:[`任何檔案`](#scopes)

3049* **類型**:字串,相對於專案根目錄的路徑3108* **類型**:字串,相對於專案根目錄的路徑


3059 `skillListingBudgetFraction`3118 `skillListingBudgetFraction`

3060</h3>3119</h3>

3061 3120 

3062每個回合,Claude 看到[您的技能清單](/docs/zh-TW/skills#skill-descriptions-are-cut-short)及其描述,Claude Code 將該清單上限設定為上下文視窗的一部分。當清單超過上限時,Claude Code 保留每個技能的名稱,但刪除最少使用技能的描述,因此 Claude 仍然可以呼叫這些技能,但不太可能自己選擇一個。提高此鍵以保持更多描述可見,代價是每個回合更多上下文。3121每個回合,Claude 看到[您的 skills 清單](/docs/zh-TW/skills#skill-descriptions-are-cut-short)及其描述,Claude Code 將該清單上限設定為上下文視窗的一部分。當清單超過上限時,Claude Code 保留每個 skill 的名稱,但刪除最少使用 skills 的描述,因此 Claude 仍然可以呼叫這些 skills,但不太可能自己選擇一個。提高此鍵以保持更多描述可見,代價是每個回合更多上下文。

3063 3122 

3064* **範圍**:[`任何檔案`](#scopes)3123* **範圍**:[`任何檔案`](#scopes)

3065* **類型**:數字,大於 `0` 且最多 `1` 的分數3124* **類型**:數字,大於 `0` 且最多 `1` 的分數


3071}3130}

3072```3131```

3073 3132 

3074要查看清單使用多少上下文以及哪些技能貢獻最多,請執行 `/doctor`。3133要查看清單使用多少上下文以及哪些 skills 貢獻最多,請執行 `/doctor`。

3075 3134 

3076<h3 id="skilllistingmaxdescchars">3135<h3 id="skilllistingmaxdescchars">

3077 `skillListingMaxDescChars`3136 `skillListingMaxDescChars`

3078</h3>3137</h3>

3079 3138 

3080每個回合,Claude 看到[您的技能清單](/docs/zh-TW/skills#skill-descriptions-are-cut-short),顯示每個技能的 `description` 和 `when_to_use` 文字。此鍵限制 Claude Code 每個技能顯示多少字元的該文字;較長的文字在上限處被切割。3139每個回合,Claude 看到[您的 skills 清單](/docs/zh-TW/skills#skill-descriptions-are-cut-short),顯示每個 skill 的 `description` 和 `when_to_use` 文字。此鍵限制 Claude Code 每個 skill 顯示多少字元的該文字;較長的文字在上限處被切割。

3081 3140 

3082* **範圍**:[`任何檔案`](#scopes)3141* **範圍**:[`任何檔案`](#scopes)

3083* **類型**:字元數,正整數3142* **類型**:字元數,正整數


3089}3148}

3090```3149```

3091 3150 

3092提高它以保持長描述完整,代價是每個回合更多上下文;降低它以在 [`skillListingBudgetFraction`](#skilllistingbudgetfraction) 下適應更多技能。3151提高它以保持長描述完整,代價是每個回合更多上下文;降低它以在 [`skillListingBudgetFraction`](#skilllistingbudgetfraction) 下適應更多 skills。

3093 3152 

3094<h3 id="taskoutputmaxchars">3153<h3 id="taskoutputmaxchars">

3095 `taskOutputMaxChars`3154 `taskOutputMaxChars`


3416* **類型**:字串,`"classic"` 或 `"readline"`3475* **類型**:字串,`"classic"` 或 `"readline"`

3417* **預設**:未設定3476* **預設**:未設定

3418 3477 

3478<h3 id="maxprosewidth">

3479 `maxProseWidth`

3480</h3>

3481 

3482限制 Claude 回應中散文的寬度,使行在寬終端中保持可讀性。段落、標題、清單和區塊引用在此列數內換行,而表格和程式碼區塊保持完整終端寬度。需要 Claude Code v2.1.282 或更新版本。

3483 

3484* **範圍**:[`任何檔案`](#scopes)

3485* **類型**:終端欄數,整數,最少 `40`。Claude Code 忽略任何其他值

3486* **預設**:未設定,因此散文在終端邊緣換行

3487 

3488```json settings.json theme={null}

3489{

3490 "maxProseWidth": 80

3491}

3492```

3493 

3419<h3 id="prefersreducedmotion">3494<h3 id="prefersreducedmotion">

3420 `prefersReducedMotion`3495 `prefersReducedMotion`

3421</h3>3496</h3>


4090 4165 

4091* **Scope**: [`Any file`](#scopes)4166* **Scope**: [`Any file`](#scopes)

4092* **Type**: 字串4167* **Type**: 字串

4093* **Default**: 未設定,因此 Claude Code 新增 `Co-Authored-By: <name> <noreply@anthropic.com>`。名稱是工作階段的作用中模型,例如 `Claude Sonnet 5`。4168* **Default**: 未設定,因此 Claude Code 新增 `Co-Authored-By: <name> <noreply@anthropic.com>`。名稱是工作階段的作用中模型,例如 `Claude Sonnet 5`。當[子代理](/docs/zh-TW/sub-agents)進行提交時,trailer 會命名子代理的模型。

4094 * 當 Claude Code 識別模型為 Claude 模型但無法確認其確切版本時,它會單獨寫入 `Claude`。4169 * 當 Claude Code 識別模型為 Claude 模型但無法確認其確切版本時,它會單獨寫入 `Claude`。

4095 * 當它無法將模型 ID 符合至任何 Claude 模型(例如透過自訂 [`ANTHROPIC_BASE_URL`](/docs/zh-TW/env-vars) 提供的第三方模型)時,它會寫入 `Claude Code`。4170 * 當它無法將模型 ID 符合至任何 Claude 模型(例如透過自訂 [`ANTHROPIC_BASE_URL`](/docs/zh-TW/env-vars) 提供的第三方模型)時,它會寫入 `Claude Code`。

4096 4171 


5482* **類型**:布林值5557* **類型**:布林值

5483 * `true`:Claude 可以在決定值得傳送時,向您的手機傳送推播通知5558 * `true`:Claude 可以在決定值得傳送時,向您的手機傳送推播通知

5484 * `false`:Claude 不傳送這些通知5559 * `false`:Claude 不傳送這些通知

5485* **預設值**:`false`5560* **預設**:`false`

5486 5561 

5487```json settings.json theme={null}5562```json settings.json theme={null}

5488{5563{


5502* **類型**:布林值5577* **類型**:布林值

5503 * `true`:當您在離開幾分鐘後返回時,您會看到一行工作階段摘要5578 * `true`:當您在離開幾分鐘後返回時,您會看到一行工作階段摘要

5504 * `false`:Claude Code 不顯示摘要5579 * `false`:Claude Code 不顯示摘要

5505* **預設值**:未設定,因此摘要已開啟5580* **預設**:未設定,因此摘要已開啟

5506* **每個工作階段的覆寫**:[`CLAUDE_CODE_ENABLE_AWAY_SUMMARY`](/docs/zh-TW/env-vars) 在一個工作階段中優先於此金鑰,無論哪個方向5581* **每個工作階段的覆寫**:[`CLAUDE_CODE_ENABLE_AWAY_SUMMARY`](/docs/zh-TW/env-vars) 在一個工作階段中優先於此金鑰,無論哪個方向

5507 5582 

5508```json settings.json theme={null}5583```json settings.json theme={null}


5527* **類型**:布林值5602* **類型**:布林值

5528 * `true`:Claude Code 為該檔案適用的每個工作階段關閉 Artifact 工具,且沒有其他檔案將其重新開啟。在 v2.1.242 之前,優先順序較高的檔案可能會覆寫較低檔案的 `true`,而不是該金鑰作為鎖定5603 * `true`:Claude Code 為該檔案適用的每個工作階段關閉 Artifact 工具,且沒有其他檔案將其重新開啟。在 v2.1.242 之前,優先順序較高的檔案可能會覆寫較低檔案的 `true`,而不是該金鑰作為鎖定

5529 * `false`:忽略;若要保持工具開啟,請移除該金鑰5604 * `false`:忽略;若要保持工具開啟,請移除該金鑰

5530* **預設值**:未設定,因此工具遵循您帳戶的[可用性](/docs/zh-TW/artifacts#availability)5605* **預設**:未設定,因此工具遵循您帳戶的[可用性](/docs/zh-TW/artifacts#availability)

5531* **每個工作階段的覆寫**:[`CLAUDE_CODE_DISABLE_ARTIFACT`](/docs/zh-TW/env-vars) 設定為 `1` 會為一個工作階段關閉工具5606* **每個工作階段的覆寫**:[`CLAUDE_CODE_DISABLE_ARTIFACT`](/docs/zh-TW/env-vars) 設定為 `1` 會為一個工作階段關閉工具

5532 5607 

5533```json settings.json theme={null}5608```json settings.json theme={null}


5546 5621 

5547* **範圍**:[`任何檔案`](#scopes)5622* **範圍**:[`任何檔案`](#scopes)

5548* **類型**:字串 `"disable"`5623* **類型**:字串 `"disable"`

5549* **預設值**:未設定,因此 Claude Code 會註冊處理程式5624* **預設**:未設定,因此 Claude Code 會註冊處理程式

5550 5625 

5551```json settings.json theme={null}5626```json settings.json theme={null}

5552{5627{


5564* **類型**:布林值;只有 JSON 布林值 `true` 才會生效5639* **類型**:布林值;只有 JSON 布林值 `true` 才會生效

5565 * `true`:桌面應用程式不提供裝置上的 Code 工作階段;現有本機工作階段保留在列表中但無法繼續5640 * `true`:桌面應用程式不提供裝置上的 Code 工作階段;現有本機工作階段保留在列表中但無法繼續

5566 * `false`:本機工作階段保持可用5641 * `false`:本機工作階段保持可用

5567* **預設值**:未設定,因此本機工作階段可用5642* **預設**:未設定,因此本機工作階段可用

5568 5643 

5569```json managed-settings.json theme={null}5644```json managed-settings.json theme={null}

5570{5645{


5586* **類型**:布林值5661* **類型**:布林值

5587 * `true`:Claude Code 拒絕 `claude remote-control`、`--remote-control` 旗標、自動啟動和工作階段內切換5662 * `true`:Claude Code 拒絕 `claude remote-control`、`--remote-control` 旗標、自動啟動和工作階段內切換

5588 * `false`:遠端控制保持可用5663 * `false`:遠端控制保持可用

5589* **預設值**:`false`5664* **預設**:`false`

5590 5665 

5591```json settings.json theme={null}5666```json settings.json theme={null}

5592{5667{


5604* **類型**:布林值5679* **類型**:布林值

5605 * `false`:Claude Code 為該檔案適用的每個工作階段關閉 Artifact 工具5680 * `false`:Claude Code 為該檔案適用的每個工作階段關閉 Artifact 工具

5606 * `true`:與保留金鑰未設定相同,因為它永遠不會覆寫來自另一個檔案的 `false`、[`CLAUDE_CODE_DISABLE_ARTIFACT`](/docs/zh-TW/env-vars) 或您的組織[管理員設定](/docs/zh-TW/artifacts#manage-artifacts-for-your-organization)5681 * `true`:與保留金鑰未設定相同,因為它永遠不會覆寫來自另一個檔案的 `false`、[`CLAUDE_CODE_DISABLE_ARTIFACT`](/docs/zh-TW/env-vars) 或您的組織[管理員設定](/docs/zh-TW/artifacts#manage-artifacts-for-your-organization)

5607* **預設值**:未設定,因此工具遵循您帳戶的[可用性](/docs/zh-TW/artifacts#availability)5682* **預設**:未設定,因此工具遵循您帳戶的[可用性](/docs/zh-TW/artifacts#availability)

5608 5683 

5609```json settings.json theme={null}5684```json settings.json theme={null}

5610{5685{


5624* **類型**:布林值5699* **類型**:布林值

5625 * `true`:當權限提示或問題等待時,您會在手機上獲得推播通知,而遠端控制已連線5700 * `true`:當權限提示或問題等待時,您會在手機上獲得推播通知,而遠端控制已連線

5626 * `false`:Claude Code 不傳送此類通知5701 * `false`:Claude Code 不傳送此類通知

5627* **預設值**:`false`5702* **預設**:`false`

5628 5703 

5629```json settings.json theme={null}5704```json settings.json theme={null}

5630{5705{


5649 * `"kitty"`:Claude Code 傳送 Kitty 桌面通知5724 * `"kitty"`:Claude Code 傳送 Kitty 桌面通知

5650 * `"ghostty"`:Claude Code 傳送 Ghostty 桌面通知5725 * `"ghostty"`:Claude Code 傳送 Ghostty 桌面通知

5651 * `"notifications_disabled"`:Claude Code 不傳送通知5726 * `"notifications_disabled"`:Claude Code 不傳送通知

5652* **預設值**:`"auto"`5727* **預設**:`"auto"`

5653 5728 

5654```json settings.json theme={null}5729```json settings.json theme={null}

5655{5730{


5667 5742 

5668* **範圍**:[`任何檔案`](#scopes)。對於自託管環境 ID,僅限使用者或受管理設定,或 `--settings` 旗標。5743* **範圍**:[`任何檔案`](#scopes)。對於自託管環境 ID,僅限使用者或受管理設定,或 `--settings` 旗標。

5669* **類型**:字串,環境 ID,例如 `env_...` 或 `ccpool_...`5744* **類型**:字串,環境 ID,例如 `env_...` 或 `ccpool_...`

5670* **預設值**:未設定,因此當您的清單中有 Anthropic 託管環境時 Claude Code 會使用它,否則使用清單中不是[遠端控制橋接環境](/docs/zh-TW/cloud-environments#the-default-environment)的第一個環境,或當每個環境都是橋接環境時使用第一個環境5745* **預設**:未設定,因此當您的清單中有 Anthropic 託管環境時 Claude Code 會使用它,否則使用清單中不是[遠端控制橋接環境](/docs/zh-TW/cloud-environments#the-default-environment)的第一個環境,或當每個環境都是橋接環境時使用第一個環境

5671* **每個工作階段的覆寫**:`--environment` 優先於此金鑰,用於它建立的一個雲端工作階段5746* **每個工作階段的覆寫**:`--environment` 優先於此金鑰,用於它建立的一個雲端工作階段

5672 5747 

5673```json settings.json theme={null}5748```json settings.json theme={null}


5690* **類型**:布林值5765* **類型**:布林值

5691 * `true`:Claude Code 在每個互動工作階段啟動時自動連線遠端控制5766 * `true`:Claude Code 在每個互動工作階段啟動時自動連線遠端控制

5692 * `false`:Claude Code 等待 `/remote-control`5767 * `false`:Claude Code 等待 `/remote-control`

5693* **預設值**:未設定,因此自動連線遵循您的組織管理員預設值(如果已設定),否則遵循 Claude Code 的目前預設值5768* **預設**:未設定,因此[自動連線預設](/docs/zh-TW/remote-control#enable-remote-control-for-all-sessions)適用

5694* **每個工作階段的覆寫**:`--remote-control` 即使此金鑰為 `false` 也會為一個工作階段開啟遠端控制,沒有旗標會為一個工作階段關閉它5769* **每個工作階段的覆寫**:`--remote-control` 即使此金鑰為 `false` 也會為一個工作階段開啟遠端控制,沒有旗標會為一個工作階段關閉它

5695 5770 

5696```json settings.json theme={null}5771```json settings.json theme={null}


5709 5784 

5710* **範圍**:[`使用者或受管理`](#scopes)。桌面應用程式讀取此金鑰。5785* **範圍**:[`使用者或受管理`](#scopes)。桌面應用程式讀取此金鑰。

5711* **類型**:物件陣列,每個物件具有必需的 `id`、`name` 和 `sshHost` 以及選用的 `sshPort` 和 `sshIdentityFile`5786* **類型**:物件陣列,每個物件具有必需的 `id`、`name` 和 `sshHost` 以及選用的 `sshPort` 和 `sshIdentityFile`

5712* **預設值**:未設定5787* **預設**:未設定

5713 5788 

5714此範例新增一個名為 `Dev VM` 的連線,連線到 `user@dev.example.com`:5789此範例新增一個名為 `Dev VM` 的連線,連線到 `user@dev.example.com`:

5715 5790 


5733 5808 

5734* **範圍**:[`受管理`](#scopes)5809* **範圍**:[`受管理`](#scopes)

5735* **類型**:主機名稱模式陣列5810* **類型**:主機名稱模式陣列

5736* **預設值**:未設定,因此允許任何主機5811* **預設**:未設定,因此允許任何主機

5737 5812 

5738此範例允許 `devboxes.example.com` 及其子網域,加上精確主機 `bastion.example.com`:5813此範例允許 `devboxes.example.com` 及其子網域,加上精確主機 `bastion.example.com`:

5739 5814 


6095 `cleanupPeriodDays`6170 `cleanupPeriodDays`

6096</h3>6171</h3>

6097 6172 

6098設定 Claude Code 在刪除之前保留[工作階段文字記錄和其他應用程式資料](/docs/zh-TW/claude-directory#cleaned-up-automatically)的天數。Claude Code 在工作階段開始後作為背景掃描執行刪除,只要它能安全地確定保留期間。6173設定 Claude Code 在刪除之前保留[工作階段文字記錄和其他應用程式資料](/docs/zh-TW/claude-directory#cleaned-up-automatically)的天數。Claude Code 在工作階段開始後作為背景掃描執行刪除,只要它能安全地確定保留期間。掃描會刪除文字記錄而不顯示訊息,因此您未使用超過保留期間的工作階段不再出現在 [`/resume`](/docs/zh-TW/sessions#resume-a-session) 選擇器中。

6099 6174 

6100* **範圍**:[`Any file`](#scopes)6175* **範圍**:[`Any file`](#scopes)

6101* **類型**:天數,整數,最小值 `1`6176* **類型**:天數,整數,最小值 `1`


6198 `disableSideloadFlags`6273 `disableSideloadFlags`

6199</h3>6274</h3>

6200 6275 

6201在啟動時拒絕 `--plugin-dir`、`--plugin-url`、`--agents` 和 `--mcp-config` CLI 旗標,使用者否則可能會傳遞這些旗標來繞過 [`strictKnownMarketplaces`](#strictknownmarketplaces) 進行單次執行。Claude Code 會以錯誤結束,並命名被拒絕的旗標,並對在桌面應用程式中內部啟動 CLI 的表面套用相同檢查,目前在[Cowork](/docs/zh-TW/desktop) 本機工作階段中。在[雲端工作階段](/docs/zh-TW/claude-code-on-the-web)中,Claude Code 會捨棄伺服器透過 `--mcp-config` 傳遞的 MCP 伺服器,除了同處理序 `type: "sdk"` 項目外,並啟動工作階段。需要 Claude Code v2.1.193 或更新版本。6276在啟動時拒絕 `--plugin-dir`、`--plugin-url`、`--agents` 和 `--mcp-config` CLI 旗標,使用者否則可能會傳遞這些旗標來繞過 [`strictKnownMarketplaces`](#strictknownmarketplaces) 進行單次執行。Claude Code 會以錯誤結束並列出被拒絕的旗標,並對在內部使用這些旗標啟動 CLI 的介面套用相同檢查,目前在桌面應用程式中的 [Cowork](/docs/zh-TW/desktop) 本機工作階段。在[雲端工作階段](/docs/zh-TW/claude-code-on-the-web)中,Claude Code 會捨棄伺服器透過 `--mcp-config` 傳遞的 MCP 伺服器,除了進程內 `type: "sdk"` 項目外,並啟動工作階段。需要 Claude Code v2.1.193 或更新版本。

6202 6277 

6203* **範圍**:[`Managed`](#scopes)6278* **範圍**: [`Managed`](#scopes)

6204* **類型**:布林值6279* **類型**: 布林值

6205 * `true`:Claude Code 在啟動時拒絕 `--plugin-dir`、`--plugin-url`、`--agents` 和 `--mcp-config`,並以錯誤結束並命名它們,除了在雲端工作階段中它會捨棄伺服器透過 `--mcp-config` 傳遞的 MCP 伺服器,除了同處理序 `type: "sdk"` 項目外,並啟動工作階段6280 * `true`: Claude Code 在啟動時拒絕 `--plugin-dir`、`--plugin-url`、`--agents` 和 `--mcp-config`,並以錯誤結束並列出它們,除了在雲端工作階段中它會捨棄伺服器透過 `--mcp-config` 傳遞的 MCP 伺服器(除了進程內 `type: "sdk"` 項目外),並啟動工作階段

6206 * `false`:Claude Code 接受這些旗標6281 * `false`: Claude Code 接受這些旗標

6207* **預設**:`false`6282* **預設**: `false`

6208 6283 

6209```json managed-settings.json theme={null}6284```json managed-settings.json theme={null}

6210{6285{


6212}6287}

6213```6288```

6214 6289 

6215Claude Code 仍然接受其伺服器全部為同處理序 `type: "sdk"` 項目的 `--mcp-config`,因此 Agent SDK 和 VS Code 擴充功能保持運作。使用者仍然可以使用 `claude mcp add` 或 `.mcp.json` 檔案新增伺服器;如需個別伺服器控制,也請設定 [`allowedMcpServers`](/docs/zh-TW/managed-mcp)。需要 Claude Code v2.1.193 或更新版本。6290Claude Code 仍然接受其伺服器全部為進程內 `type: "sdk"` 項目的 `--mcp-config`,因此 Agent SDK 和 VS Code 擴充功能可繼續運作。使用者仍然可以使用 `claude mcp add` 或 `.mcp.json` 檔案新增伺服器;如需個別伺服器控制,也請設定 [`allowedMcpServers`](/docs/zh-TW/managed-mcp)。需要 Claude Code v2.1.193 或更新版本。

6216 6291 

6217相同的檢查涵蓋在 [`CLAUDE_CODE_PLUGIN_DIRS`](/docs/zh-TW/env-vars#variables) 環境變數中命名的外掛程式資料夾,這需要 Claude Code v2.1.280 或更新版本。當變數命名資料夾時,Claude Code 會以相同的錯誤結束,錯誤會說要取消設定變數。6292相同的檢查涵蓋在 [`CLAUDE_CODE_PLUGIN_DIRS`](/docs/zh-TW/env-vars#variables) 環境變數中命名的外掛程式資料夾,這需要 Claude Code v2.1.280 或更新版本。當變數命名資料夾時,Claude Code 會以相同的錯誤結束,且錯誤會說明要取消設定變數。

6218 6293 

6219在雲端工作階段中,Claude Code 也會忽略伺服器傳遞的中途工作階段 MCP 更新,這是雲端工作階段設定和 SDK `setMcpServers()` 呼叫背後的路徑,這些呼叫到達這些工作階段。同處理序 `type: "sdk"` 項目在那裡也保持豁免。在 v2.1.239 之前,伺服器傳遞的 `--mcp-config` 會阻止雲端工作階段啟動。6294在雲端工作階段中,Claude Code 也會忽略伺服器傳遞的中途 MCP 更新,即雲端工作階段設定和 SDK `setMcpServers()` 呼叫背後的路徑,這些呼叫會到達這些工作階段。進程內 `type: "sdk"` 項目在那裡也保持豁免。在 v2.1.239 之前,伺服器傳遞的 `--mcp-config` 會阻止雲端工作階段啟動。

6220 6295 

6221<h3 id="forceremotesettingsrefresh">6296<h3 id="forceremotesettingsrefresh">

6222 `forceRemoteSettingsRefresh`6297 `forceRemoteSettingsRefresh`

6223</h3>6298</h3>

6224 6299 

6225阻止 CLI 啟動,直到 Claude Code 已重新整理[伺服器受管設定](/docs/zh-TW/server-managed-settings)。如果擷取失敗,Claude Code 會結束而不是繼續使用快取或無設定。當您的環境無法接受即使是短暫的時間視窗(在該時間視窗中工作階段執行時沒有其受管原則)時,請設定它。6300阻止 CLI 啟動,直到 Claude Code 已重新整理地擷取[伺服器受管設定](/docs/zh-TW/server-managed-settings)。如果擷取失敗,Claude Code 會結束而不是繼續使用快取或無設定。當您的環境無法接受即使是短暫的時間窗口(在該窗口中工作階段執行時沒有其受管原則)時,請設定它。

6226 6301 

6227當金鑰未設定時,Claude Code 不會在擷取時阻止啟動,但當開發人員在啟動時登入時,它會等待最多五秒鐘以進行擷取。雲端閘道工作階段始終會等待,如果無法到達閘道則會結束。6302當金鑰未設定時,Claude Code 不會在擷取時阻止啟動,但當開發人員在啟動時登入時,它會等待最多五秒鐘以進行擷取。雲端閘道工作階段始終會等待,如果無法到達閘道則會結束。

6228 6303 

6229* **範圍**:[`Managed`](#scopes)。Claude Code 會接受來自任何管理員控制的受管來源的 `true`,即使它不是最高優先順序的來源。6304* **範圍**: [`Managed`](#scopes)。Claude Code 會接受來自任何受管理員控制的受管來源的 `true`,即使該來源不是最高優先順序的來源。

6230* **類型**:布林值6305* **類型**: 布林值

6231 * `true`:Claude Code 會阻止啟動,直到它已重新整理伺服器受管設定,如果擷取失敗則會結束6306 * `true`: Claude Code 會阻止啟動,直到它已重新整理地擷取伺服器受管設定,如果擷取失敗則會結束

6232 * `false`:Claude Code 不會在擷取時阻止啟動,但在登入啟動時會等待最多五秒鐘以進行擷取6307 * `false`: Claude Code 不會在擷取時阻止啟動,但在登入啟動時會等待最多五秒鐘以進行擷取

6233* **預設**:`false`6308* **預設**: `false`

6234 6309 

6235```json managed-settings.json theme={null}6310```json managed-settings.json theme={null}

6236{6311{


6244 `managedSourcesBehavior`6319 `managedSourcesBehavior`

6245</h3>6320</h3>

6246 6321 

6247選擇 Claude Code 是否只套用您的組織傳遞的最高優先順序[受管來源](/docs/zh-TW/managed-settings#how-claude-code-combines-managed-sources),或合併它傳遞的每個管理員來源。根據預設,Claude Code 會採用攜帶[原則金鑰](/docs/zh-TW/managed-settings#how-claude-code-combines-managed-sources)的最高優先順序來源,並忽略其餘的。原則金鑰是除了此金鑰和 `wslInheritsWindowsSettings` 之外的任何設定金鑰。因此,一旦伺服器受管設定或 MDM 原則傳遞原則金鑰,`managed-settings.json` 檔案只會貢獻 [Claude Code 從每個管理員來源讀取的金鑰](/docs/zh-TW/managed-settings#keys-read-from-every-admin-source)。使用 `"merge"`,您傳遞的每個管理員來源都會將其金鑰貢獻給一個合併的原則。需要 Claude Code v2.1.242 或更新版本。6322選擇 Claude Code 是否只套用您的組織傳遞的最高優先順序[受管來源](/docs/zh-TW/managed-settings#how-claude-code-combines-managed-sources),或合併它傳遞的每個管理員來源。根據預設,Claude Code 會採用攜帶[原則金鑰](/docs/zh-TW/managed-settings#how-claude-code-combines-managed-sources)的最高優先順序來源並忽略其餘的。原則金鑰是除了此金鑰和 `wslInheritsWindowsSettings` 之外的任何設定金鑰。在該預設下,一旦伺服器受管設定或 MDM 原則傳遞原則金鑰,`managed-settings.json` 檔案只會貢獻 [Claude Code 從每個管理員來源讀取的金鑰](/docs/zh-TW/managed-settings#keys-read-from-every-admin-source)。使用 `"merge"`,您傳遞的每個管理員來源都會將其金鑰貢獻給一個合併的原則。需要 Claude Code v2.1.242 或更新版本。

6248 6323 

6249只在您[排名](/docs/zh-TW/managed-settings#how-claude-code-combines-managed-sources)在最高優先順序下方的每個來源都在管理員的控制下時設定 `"merge"`,因為 Claude Code 然後會從較低的來源(例如 `permissions.allow` 規則)新增項目到原則。6324只在您[排名](/docs/zh-TW/managed-settings#how-claude-code-combines-managed-sources)在最高優先順序下方的每個來源都在管理員控制下時設定 `"merge"`,因為 Claude Code 會從較低的來源(例如 `permissions.allow` 規則)新增項目到原則。

6250 6325 

6251* **範圍**:[`Managed`](#scopes)。Claude Code 從攜帶此金鑰或原則金鑰的最高優先順序來源讀取此金鑰,並忽略排名較低的每個來源中的此金鑰,因此較低的來源無法選擇自己合併到上方的來源。Windows HKCU 登錄和[來自嵌入主機的父設定](/docs/zh-TW/managed-settings#let-an-embedding-host-add-policy)都不參與合併。6326* **範圍**: [`Managed`](#scopes)。Claude Code 從攜帶此金鑰或原則金鑰的最高優先順序來源讀取此金鑰,並忽略排名較低的每個來源中的此金鑰,因此較低的來源無法選擇自己合併到上方的來源。Windows HKCU 登錄和[來自嵌入主機的父設定](/docs/zh-TW/managed-settings#let-an-embedding-host-add-policy)都不參與合併。

6252* **類型**:字串,其中之一:6327* **類型**: 字串,其中之一:

6253 * `"first-wins"`:攜帶原則金鑰的最高優先順序來源提供原則,較低的來源只貢獻 [Claude Code 從每個管理員來源讀取的金鑰](/docs/zh-TW/managed-settings#keys-read-from-every-admin-source)6328 * `"first-wins"`: 攜帶原則金鑰的最高優先順序來源提供原則,較低的來源只貢獻 [Claude Code 從每個管理員來源讀取的金鑰](/docs/zh-TW/managed-settings#keys-read-from-every-admin-source)

6254 * `"merge"`:您傳遞的每個管理員來源都會貢獻其金鑰,按以下規則合併6329 * `"merge"`: 您傳遞的每個管理員來源都貢獻其金鑰,按以下規則合併

6255* **預設**:`"first-wins"`6330* **預設**: `"first-wins"`

6256 6331 

6257在您部署的最高優先順序來源中傳遞金鑰。永遠不會收到伺服器受管設定的機器也需要在其 MDM 設定檔中有金鑰,因為 Claude Code 從攜帶它或原則金鑰的最高優先順序來源讀取金鑰。`managed-settings.json` 檔案是排名最低的管理員來源,因此在那裡設定的 `"merge"` 沒有下方的來源可以合併。在伺服器受管設定中,金鑰看起來像這樣:6332在您部署的最高優先順序來源中傳遞金鑰。從未接收伺服器受管設定的機器也需要在其 MDM 設定檔中有金鑰,因為 Claude Code 從攜帶它或原則金鑰的最高優先順序來源讀取金鑰。`managed-settings.json` 檔案是排名最低的管理員來源,因此在那裡設定的 `"merge"` 沒有下方的來源可合併。在伺服器受管設定中,金鑰看起來像這樣:

6258 6333 

6259```json theme={null}6334```json theme={null}

6260{6335{


6262}6337}

6263```6338```

6264 6339 

6265在 `"merge"` 下,Claude Code 按其種類合併每個金鑰。此表格為每種金鑰提供規則。限制允許清單、整體取值和最高來源專用列命名它們涵蓋的每個金鑰,其他列提供範例:6340在 `"merge"` 下,Claude Code 按其種類合併每個金鑰。此表格為每種金鑰提供規則。限制允許清單、整體取值和最高來源專用列列出它們涵蓋的每個金鑰,其他列提供範例:

6266 6341 

6267| 金鑰種類 | Claude Code 如何合併它 | 金鑰 |6342| 金鑰種類 | Claude Code 如何合併它 | 金鑰 |

6268| :- | :- | :- |6343| :- | :- | :- |

6269| 清單 | 合併來自每個來源的項目 | [`permissions.allow`](#permissions-allow)、[`sandbox.network.allowedDomains`](#sandbox-network-alloweddomains) 和其他清單金鑰 |6344| 清單 | 合併來自每個來源的項目 | [`permissions.allow`](#permissions-allow)、[`sandbox.network.allowedDomains`](#sandbox-network-alloweddomains) 和其他清單金鑰 |

6270| 鎖定 | 套用任何來源設定的最嚴格值。當沒有來源設定嚴格值時,只從最高來源套用較寬鬆的值 | [`allowManagedPermissionRulesOnly`](#allowmanagedpermissionrulesonly)、[`permissions.disableBypassPermissionsMode`](#permissions-disablebypasspermissionsmode) 和其他布林值或列舉鎖定 |6345| 鎖定 | 套用任何來源設定的最嚴格值。當沒有來源設定嚴格值時,只從最高來源套用較寬鬆的值 | [`allowManagedPermissionRulesOnly`](#allowmanagedpermissionrulesonly)、[`permissions.disableBypassPermissionsMode`](#permissions-disablebypasspermissionsmode) 和其他布林值或列舉鎖定 |

6271| 限制允許清單 | 從設定它的最高來源整體取值清單,不從較低的來源新增項目。當最高來源未設定時,從下一個較低的來源整體取值 | [`availableModels`](#availablemodels)、[`allowedMcpServers`](#allowedmcpservers)、[`strictKnownMarketplaces`](#strictknownmarketplaces)、[`allowedChannelPlugins`](#allowedchannelplugins) 和 [`fallbackModel`](#fallbackmodel) 鏈 |6346| 限制允許清單 | 從設定它的最高來源整體取得清單,不從較低的來源新增項目。當最高來源未設定時,從下一個較低的來源整體取得 | [`availableModels`](#availablemodels)、[`allowedMcpServers`](#allowedmcpservers)、[`strictKnownMarketplaces`](#strictknownmarketplaces)、[`allowedChannelPlugins`](#allowedchannelplugins) 和 [`fallbackModel`](#fallbackmodel) 鏈 |

6272| 整體取值 | 從設定它的最高來源整體取值,不合併來自較低來源的項目或欄位。當最高來源未設定時,從下一個較低的來源整體取值 | [`sandbox.credentials.awsPairs`](#sandbox-credentials-awspairs)、[`sandbox.ripgrep`](#sandbox-ripgrep) |6347| 整體取值 | 從設定它的最高來源整體取得值,不合併來自較低來源的項目或欄位。當最高來源未設定時,從下一個較低的來源整體取得 | [`sandbox.credentials.awsPairs`](#sandbox-credentials-awspairs)、[`sandbox.ripgrep`](#sandbox-ripgrep) |

6273| 提供的 MCP 伺服器 | 合併來自每個來源的伺服器名稱。當兩個來源設定相同名稱時,套用較高來源的整個項目 | [`managedMcpServers`](#managedmcpservers) |6348| 提供的 MCP 伺服器 | 合併來自每個來源的伺服器名稱。當兩個來源設定相同名稱時,套用較高來源的整體項目 | [`managedMcpServers`](#managedmcpservers) |

6274| 只從最高優先順序來源讀取 | 只從攜帶原則金鑰的最高優先順序來源讀取金鑰,因此即使最高來源未設定任何值,較低來源的值也會被忽略 | [`apiKeyHelper`](#apikeyhelper)、[`awsAuthRefresh`](#awsauthrefresh)、[`awsCredentialExport`](#awscredentialexport)、[`gcpAuthRefresh`](#gcpauthrefresh)、[`otelHeadersHelper`](#otelheadershelper)、`proxyAuthHelper`、[`forceLoginOrgUUID`](#forceloginorguuid)、[`forceLoginMethod`](#forceloginmethod) 的 `"claudeai"` 和 `"console"` 值、[`parentSettingsBehavior`](#parentsettingsbehavior)、[`modelPicker`](#modelpicker)、[`policyHelper`](#policyhelper)、[`permissions.defaultMode`](#permissions-defaultmode) |6349| 只從最高優先順序來源讀取 | 只從攜帶原則金鑰的最高優先順序來源讀取金鑰,因此即使最高來源未設定任何值,較低來源的值也會被忽略 | [`apiKeyHelper`](#apikeyhelper)、[`awsAuthRefresh`](#awsauthrefresh)、[`awsCredentialExport`](#awscredentialexport)、[`gcpAuthRefresh`](#gcpauthrefresh)、[`otelHeadersHelper`](#otelheadershelper)、`proxyAuthHelper`、[`forceLoginOrgUUID`](#forceloginorguuid)、[`forceLoginMethod`](#forceloginmethod) 的 `"claudeai"` 和 `"console"` 值、[`parentSettingsBehavior`](#parentsettingsbehavior)、[`modelPicker`](#modelpicker)、[`policyHelper`](#policyhelper)、[`permissions.defaultMode`](#permissions-defaultmode) |

6275| `env` | [在管理員來源間按變數合併](/docs/zh-TW/managed-settings#keys-read-from-every-admin-source),在 `"first-wins"` 和 `"merge"` 下都是 | [`env`](#env) |6350| `env` | [在管理員來源間按變數合併](/docs/zh-TW/managed-settings#keys-read-from-every-admin-source),在 `"first-wins"` 和 `"merge"` 下都是如此 | [`env`](#env) |

6276| 所有其他金鑰 | 從設定它的最高來源取值 | [`cleanupPeriodDays`](#cleanupperioddays)、[`model`](#model) |6351| 每個其他金鑰 | 從設定它的最高來源取得值 | [`cleanupPeriodDays`](#cleanupperioddays)、[`model`](#model) |

6277 6352 

6278整體取值 `sandbox.credentials.awsPairs` 和 `sandbox.ripgrep` 需要 Claude Code v2.1.257 或更新版本。6353整體取得 `sandbox.credentials.awsPairs` 和 `sandbox.ripgrep` 需要 Claude Code v2.1.257 或更新版本。

6279 6354 

6280這些金鑰中的幾個新增了表格未顯示的條件:6355少數金鑰新增表格未顯示的條件:

6281 6356 

6282* **[`policyHelper`](#policyhelper)**:Claude Code 只在攜帶原則金鑰的最高來源是 MDM 原則或受管設定檔案時接受它,因此在伺服器受管設定下它不適用。6357* **[`policyHelper`](#policyhelper)**: Claude Code 只在攜帶原則金鑰的最高來源是 MDM 原則或受管設定檔案時接受它,因此在伺服器受管設定下它不適用。

6283* **[`modelOverrides`](#modeloverrides)**:與 `availableModels` 配對。Claude Code 從設定它的最高來源取值 `modelOverrides`,除非較高的來源設定 `availableModels` 而不設定 `modelOverrides`。在這種情況下,它會忽略來自每個來源的 `modelOverrides`。6358* **[`modelOverrides`](#modeloverrides)**: 與 `availableModels` 配對。Claude Code 從設定它的最高來源取得 `modelOverrides`,除非較高的來源設定 `availableModels` 而不設定 `modelOverrides`。在這種情況下,它會忽略來自每個來源的 `modelOverrides`。

6284* **[`forceLoginGatewayUrl`](#forcelogingatewayurl)、[`gatewayInternalNetworks`](#gatewayinternalnetworks) 和 [`forceLoginMethod`](#forceloginmethod) 的 `"gateway"` 值**:Claude Code 永遠不會從伺服器受管設定讀取它們,因此那裡的值既不適用也不隱藏在 MDM 原則或受管設定檔案中設定的值。在機器上的管理員來源中,只有攜帶原則金鑰的最高排名來源提供它們,無論伺服器受管設定是否也存在。6359* **[`forceLoginGatewayUrl`](#forcelogingatewayurl)、[`gatewayInternalNetworks`](#gatewayinternalnetworks) 和 [`forceLoginMethod`](#forceloginmethod) 的 `"gateway"` 值**: Claude Code 從不從伺服器受管設定讀取它們中的任何一個,因此那裡的值既不適用也不隱藏在 MDM 原則或受管設定檔案中設定的值。在機器上的管理員來源中,只有攜帶原則金鑰的排名最高的來源提供它們,無論伺服器受管設定是否也存在。

6285 6360 

6286若要確認機器上合併了哪些來源,請執行 `/status` 並[讀取 `Setting sources` 行](/docs/zh-TW/managed-settings#read-the-source-in-/status)。6361若要確認機器上合併了哪些來源,請執行 `/status` 並[讀取 `Setting sources` 行](/docs/zh-TW/managed-settings#read-the-source-in-/status)。

6287 6362 


6289 `parentSettingsBehavior`6364 `parentSettingsBehavior`

6290</h3>6365</h3>

6291 6366 

6292選擇當管理員部署的受管層級也存在時,Claude Code 是否套用由嵌入主機程序(例如 Agent SDK 或 IDE 擴充功能)提供的受管設定。使用 `"first-wins"`,Claude Code 會捨棄主機提供的設定;使用 `"merge"`,它會透過限制專用篩選器在管理員層級下套用它們。當主機需要將其自己的限制傳遞給它啟動的工作階段時,請設定 `"merge"`,例如 Claude Desktop 傳遞閘道的出口允許清單。6367選擇 Claude Code 是否套用由嵌入主機程序(例如 Agent SDK 或 IDE 擴充功能)提供的受管設定,當管理員部署的受管層級也存在時。使用 `"first-wins"`,Claude Code 會捨棄主機提供的設定;使用 `"merge"`,它會透過限制性專用篩選器在管理員層級下套用它們。當主機需要將其自己的限制傳遞給它啟動的工作階段時,設定 `"merge"`,例如 Claude Desktop 傳遞閘道的出口允許清單。

6293 6368 

6294* **範圍**:[`Managed`](#scopes)。Claude Code 從最高優先順序管理員控制的受管來源讀取它。6369* **範圍**: [`Managed`](#scopes)。Claude Code 從最高優先順序的管理員控制受管來源讀取它。

6295* **類型**:字串,其中之一:6370* **類型**: 字串,其中之一:

6296 * `"first-wins"`:當管理員部署的受管層級存在時,Claude Code 會捨棄主機提供的設定6371 * `"first-wins"`: 當管理員部署的受管層級存在時,Claude Code 會捨棄主機提供的設定

6297 * `"merge"`:Claude Code 透過限制專用篩選器在管理員層級下套用主機提供的設定6372 * `"merge"`: Claude Code 透過限制性專用篩選器在管理員層級下套用主機提供的設定

6298* **預設**:`"first-wins"`6373* **預設**: `"first-wins"`

6299 6374 

6300```json managed-settings.json theme={null}6375```json managed-settings.json theme={null}

6301{6376{


6303}6378}

6304```6379```

6305 6380 

6306當不存在管理員部署的受管層級時,此金鑰無效:主機的設定然後套用為唯一的受管層級,仍然篩選為限制值。如需篩選器的限制以及受管來源如何互動,請參閱[來自嵌入主機的父設定](/docs/zh-TW/managed-settings#parent-settings-from-embedding-hosts)和[限制父設定](/docs/zh-TW/claude-apps-gateway#restrict-parent-settings)。6381當不存在管理員部署的受管層級時,此金鑰無效:主機的設定然後套用為唯一的受管層級,仍然篩選為限制性值。如需篩選器的限制以及受管來源如何互動,請參閱[來自嵌入主機的父設定](/docs/zh-TW/managed-settings#parent-settings-from-embedding-hosts)和[限制父設定](/docs/zh-TW/claude-apps-gateway#restrict-parent-settings)。

6307 6382 

6308<span id="compute-managed-settings-with-a-policy-helper" />6383<span id="compute-managed-settings-with-a-policy-helper" />

6309 6384 


6313 6388 

6314執行您部署的可執行檔,在啟動時計算受管設定,因此您可以從裝置狀態、身分識別或遠端服務衍生原則,而不是靜態檔案。Claude Code 在接受第一個提示之前執行協助程式,並將其發出的設定視為工作階段的受管設定。6389執行您部署的可執行檔,在啟動時計算受管設定,因此您可以從裝置狀態、身分識別或遠端服務衍生原則,而不是靜態檔案。Claude Code 在接受第一個提示之前執行協助程式,並將其發出的設定視為工作階段的受管設定。

6315 6390 

6316* **範圍**:[`Managed`](#scopes)。從 macOS plist、Windows HKLM 登錄或受管設定檔案讀取。Claude Code 從攜帶[原則金鑰](/docs/zh-TW/managed-settings#how-claude-code-combines-managed-sources)的最高優先順序受管來源讀取金鑰,並只在該來源是這三個之一時執行協助程式;它忽略伺服器受管設定、HKCU 登錄和主機提供的父設定中的金鑰。6391* **範圍**: [`Managed`](#scopes)。從 macOS plist、Windows HKLM 登錄或受管設定檔案讀取。Claude Code 從攜帶[原則金鑰](/docs/zh-TW/managed-settings#how-claude-code-combines-managed-sources)的最高優先順序受管來源讀取金鑰,並只在該來源是這三個之一時執行協助程式;它會忽略伺服器受管設定、HKCU 登錄和主機提供的父設定中的金鑰。

6317* **類型**:具有 `path`、`timeoutMs` 和 `refreshIntervalMs` 的物件6392* **類型**: 具有 `path`、`timeoutMs` 和 `refreshIntervalMs` 的物件

6318* **預設**:未設定,因此沒有協助程式執行6393* **預設**: 未設定,因此不執行協助程式

6319 6394 

6320當伺服器受管設定在啟動時傳遞原則時,它們優先於協助程式的來源,協助程式不執行。6395當伺服器受管設定在啟動時傳遞原則時,它們優先於協助程式的來源,協助程式不執行。

6321 6396 


6349}6424}

6350```6425```

6351 6426 

6352當協助程式發出 `managedSettings` 時,該物件成為執行的唯一受管設定來源:Claude Code 忽略 MDM、檔案和 HKCU 來源,只從協助程式的輸出讀取[跨來源金鑰](/docs/zh-TW/managed-settings#keys-read-from-every-admin-source),並永遠不合併[父設定](/docs/zh-TW/managed-settings#parent-settings-from-embedding-hosts)。6427當協助程式發出 `managedSettings` 時,該物件成為執行的唯一受管設定來源:Claude Code 會忽略 MDM、檔案和 HKCU 來源,只從協助程式的輸出讀取[跨來源金鑰](/docs/zh-TW/managed-settings#keys-read-from-every-admin-source),並從不合併[父設定](/docs/zh-TW/managed-settings#parent-settings-from-embedding-hosts)。

6353 6428 

6354啟動 `forceRemoteSettingsRefresh` 檢查在協助程式之前執行,並讀取任何管理員來源。以 0 結束的協助程式,其信封省略 `managedSettings` 不貢獻受管設定,其他來源照常套用。6429啟動 `forceRemoteSettingsRefresh` 檢查在協助程式之前執行,並讀取任何管理員來源。以 0 結束且信封省略 `managedSettings` 的協助程式不貢獻受管設定,其他來源照常套用。

6355 6430 

6356<h4 id="helper-failures">6431<h4 id="helper-failures">

6357 協助程式失敗6432 協助程式失敗


6360協助程式執行在以下情況下失敗:6435協助程式執行在以下情況下失敗:

6361 6436 

6362* `path` 違反 [`policyHelper.path`](#policyhelper-path) 中的規則。6437* `path` 違反 [`policyHelper.path`](#policyhelper-path) 中的規則。

6363* `path` 處沒有常規檔案。Claude Code 在啟動協助程式之前檢查檔案,在相同的 `timeoutMs` 預算內,因此無回應的網路掛載可能導致執行失敗。6438* `path` 處沒有一般檔案。Claude Code 在啟動協助程式之前檢查檔案,在相同的 `timeoutMs` 預算內,因此無回應的網路掛載可能導致執行失敗。

6364* 協助程式以非零結束、在 `timeoutMs` 經過時仍在執行,或根本無法啟動,例如因為它不可執行。6439* 協助程式以非零結束、在 `timeoutMs` 經過時仍在執行,或根本無法啟動,例如因為它不可執行。

6365* 協助程式寫入超過 1 MiB 到 stdout 或 stderr。6440* 協助程式寫入超過 1 MiB 到 stdout 或 stderr。

6366* stdout 不是單一 JSON 物件,或其 `managedSettings` 有 [Claude Code 無法修復的架構違規](/docs/zh-TW/managed-settings#find-entries-claude-code-dropped)。6441* stdout 不是單一 JSON 物件,或其 `managedSettings` 有 [Claude Code 無法修復的結構描述違反](/docs/zh-TW/managed-settings#find-entries-claude-code-dropped)。

6367 6442 

6368當啟動執行失敗時,Claude Code 列印原因並拒絕啟動。非零結束後,原因包括協助程式的 stderr,或當 stderr 為空時的 stdout。逾時後,原因命名 `timeoutMs` 限制,不包括協助程式輸出的任何部分。拒絕涵蓋互動式工作階段、`claude -p`、Agent SDK 工作階段、[背景工作階段](/docs/zh-TW/agent-view) 和大多數子命令。6443當啟動執行失敗時,Claude Code 會列印原因並拒絕啟動。在非零結束後,原因包括協助程式的 stderr,或當 stderr 為空時的 stdout。在逾時後,原因會命名 `timeoutMs` 限制,不包括協助程式輸出的任何部分。拒絕涵蓋互動式工作階段、`claude -p`、Agent SDK 工作階段、[背景工作階段](/docs/zh-TW/agent-view) 和大多數子命令。

6369 6444 

6370拒絕是故意的,因此需要中斷恢復力的協助程式應該從其自己的快取提供並以 0 結束。6445拒絕是刻意的,因此需要中斷復原能力的協助程式應該從其自己的快取提供並以 0 結束。

6371 6446 

6372當背景重新整理失敗時,Claude Code 保持最後成功的原則有效,`/status` 顯示失敗的重新整理及其原因,直到重新整理成功。每次重新整理在與啟動執行相同的 `timeoutMs` 和失敗規則下執行。6447當背景重新整理失敗時,Claude Code 會保持最後成功的原則有效,`/status` 會顯示失敗的重新整理及其原因,直到重新整理成功。每次重新整理在與啟動執行相同的 `timeoutMs` 和失敗規則下執行。

6373 6448 

6374使用 `--debug`,Claude Code 將協助程式的 stderr 從每次執行寫入[偵錯日誌](/docs/zh-TW/debug-your-config)。6449使用 `--debug`,Claude Code 會將協助程式的 stderr 從每次執行寫入[偵錯日誌](/docs/zh-TW/debug-your-config)。

6375 6450 

6376Claude Code 將無效的 `policyHelper` 值報告為[捨棄的項目](/docs/zh-TW/managed-settings#find-entries-claude-code-dropped),並在剩餘的受管設定上啟動工作階段,不執行協助程式。無效值包括裸路徑字串和低於[其最小值](#policyhelper-timeoutms)的 `timeoutMs`。6451Claude Code 將無效的 `policyHelper` 值報告為[捨棄的項目](/docs/zh-TW/managed-settings#find-entries-claude-code-dropped),並在剩餘的受管設定上啟動工作階段,不執行協助程式。無效值包括裸路徑字串和低於[其最小值](#policyhelper-timeoutms)的 `timeoutMs`。

6377 6452 


6383 6458 

6384命名 Claude Code 執行的協助程式可執行檔。如需路徑違反下列規則時發生的情況,請參閱[協助程式失敗](#helper-failures)。6459命名 Claude Code 執行的協助程式可執行檔。如需路徑違反下列規則時發生的情況,請參閱[協助程式失敗](#helper-failures)。

6385 6460 

6386* **範圍**:[`Managed`](#scopes)。從 macOS plist、Windows HKLM 登錄或受管設定檔案讀取,無論 [`policyHelper`](#policyhelper) 讀取的位置。6461* **範圍**: [`Managed`](#scopes)。從 macOS plist、Windows HKLM 登錄或受管設定檔案讀取,無論 [`policyHelper`](#policyhelper) 在何處讀取。

6387* **類型**:字串,標準化形式的絕對路徑,沒有 `.` 或 `..` 段;在 Windows 上,以 `.exe` 結尾的磁碟機字母或 UNC 路徑6462* **類型**: 字串,標準化形式的絕對路徑,不含 `.` 或 `..` 段;在 Windows 上,以 `.exe` 結尾的磁碟機代號或 UNC 路徑

6388* **預設**:無;設定 `policyHelper` 時為必需6463* **預設**: 無;設定 `policyHelper` 時為必需

6389 6464 

6390```json managed-settings.json theme={null}6465```json managed-settings.json theme={null}

6391{6466{


6401 6476 

6402設定 Claude Code 在將執行視為失敗之前等待協助程式的時間。逾時的執行失敗方式與非零結束相同,因此在啟動時 Claude Code 拒絕啟動。6477設定 Claude Code 在將執行視為失敗之前等待協助程式的時間。逾時的執行失敗方式與非零結束相同,因此在啟動時 Claude Code 拒絕啟動。

6403 6478 

6404* **範圍**:[`Managed`](#scopes)。從 macOS plist、Windows HKLM 登錄或受管設定檔案讀取,無論 [`policyHelper`](#policyhelper) 讀取的位置。6479* **範圍**: [`Managed`](#scopes)。從 macOS plist、Windows HKLM 登錄或受管設定檔案讀取,無論 [`policyHelper`](#policyhelper) 在何處讀取。

6405* **類型**:整數,毫秒,最小 `1000`6480* **類型**: 整數,毫秒,最小 `1000`

6406* **預設**:`10000`6481* **預設**: `10000`

6407 6482 

6408```json managed-settings.json theme={null}6483```json managed-settings.json theme={null}

6409{6484{


6418 `policyHelper.refreshIntervalMs`6493 `policyHelper.refreshIntervalMs`

6419</h3>6494</h3>

6420 6495 

6421讓 Claude Code 在背景按間隔重新執行協助程式,以便原則變更到達執行中的工作階段。當重新整理成功時,其輸出替換先前的受管設定,不需重新啟動;當重新整理失敗時,Claude Code 保持它已有的原則。6496讓 Claude Code 在背景按間隔重新執行協助程式,以便原則變更到達執行中的工作階段。當重新整理成功時,其輸出會取代先前的受管設定,不需要重新啟動;當重新整理失敗時,Claude Code 會保持它已有的原則。

6422 6497 

6423* **範圍**:[`Managed`](#scopes)。從 macOS plist、Windows HKLM 登錄或受管設定檔案讀取,無論 [`policyHelper`](#policyhelper) 讀取的位置。6498* **範圍**: [`Managed`](#scopes)。從 macOS plist、Windows HKLM 登錄或受管設定檔案讀取,無論 [`policyHelper`](#policyhelper) 在何處讀取。

6424* **類型**:整數,毫秒:`0` 以停用重新整理,否則至少 `60000`6499* **類型**: 整數,毫秒:`0` 以停用重新整理,否則至少 `60000`

6425* **預設**:未設定,因此 Claude Code 在啟動時執行協助程式一次6500* **預設**: 未設定,因此 Claude Code 只在啟動時執行協助程式一次

6426 6501 

6427此範例每五分鐘重新執行協助程式:6502此範例每五分鐘重新執行協助程式:

6428 6503 


6439 `wslInheritsWindowsSettings`6514 `wslInheritsWindowsSettings`

6440</h3>6515</h3>

6441 6516 

6442讓 WSL 上的 Claude Code 從 Windows 原則鏈讀取受管設定,HKLM 和 Windows 受管設定檔案優先於 `/etc/claude-code` 和下方的 HKCU。當鏈開啟時,Claude Code 只在 `C:\Program Files\ClaudeCode\` 下沒有受管設定檔案或放置項目傳遞[原則金鑰](/docs/zh-TW/managed-settings#how-claude-code-combines-managed-sources)時讀取 `/etc/claude-code`。設定它以將您已在 Windows 上部署的原則擴展到同一機器上的 WSL 工作階段,以便它們遵循與主機工作階段相同的規則。Claude Code 只在 HKLM 登錄金鑰或 `C:\Program Files\ClaudeCode\` 下的受管設定檔案或放置項目中設定時接受它,兩者都需要 Windows 管理員寫入。6517讓 WSL 上的 Claude Code 從 Windows 原則鏈讀取受管設定,HKLM 和 Windows 受管設定檔案優先於 `/etc/claude-code` 和下方的 HKCU。當鏈開啟時,Claude Code 只在 [HKLM 登錄值或 `C:\Program Files\ClaudeCode\` 資料夾中不存在 Windows 管理員文件](/docs/zh-TW/managed-settings#present-admin-documents)時讀取 `/etc/claude-code`。設定它以將您已在 Windows 上部署的原則擴充到同一機器上的 WSL 工作階段,使它們遵循與主機工作階段相同的規則。Claude Code 只在 HKLM 登錄金鑰或受管設定檔案或 `C:\Program Files\ClaudeCode\` 下的放入式中設定時接受它,兩者都需要 Windows 管理員才能寫入。

6443 6518 

6444* **範圍**:[`Managed`](#scopes)。在管理員控制的 Windows 來源中。6519* **範圍**: [`Managed`](#scopes)。在管理員控制的 Windows 來源中。

6445* **類型**:布林值6520* **類型**: 布林值

6446 * `true`:WSL 上的 Claude Code 從 Windows 原則鏈讀取受管設定,並只在 `C:\Program Files\ClaudeCode\` 下沒有受管設定檔案或放置項目傳遞[原則金鑰](/docs/zh-TW/managed-settings#how-claude-code-combines-managed-sources)時讀取 `/etc/claude-code`6521 * `true`: WSL 上的 Claude Code 從 Windows 原則鏈讀取受管設定,只在不存在 Windows 管理員文件時讀取 `/etc/claude-code`

6447 * `false`:WSL 只讀取 `/etc/claude-code`6522 * `false`: WSL 只讀取 `/etc/claude-code`

6448* **預設**:`false`,因此 WSL 只讀取 `/etc/claude-code`6523* **預設**: `false`,因此 WSL 只讀取 `/etc/claude-code`

6449 6524 

6450```json managed-settings.json theme={null}6525```json managed-settings.json theme={null}

6451{6526{


6453}6528}

6454```6529```

6455 6530 

6456一旦管理員來源開啟鏈,HKCU 原則只在 HKCU 也將金鑰設定為 `true` 時加入 WSL 上的鏈。該副本不會自行開啟鏈。只包含此金鑰的 Windows 來源不計為原則來源,因此較低優先順序的來源仍然提供原則。此金鑰對原生 Windows 無效。6531一旦管理員來源開啟鏈,HKCU 原則只在 HKCU 也將金鑰設定為 `true` 時才加入 WSL 上的鏈。該副本不會自行開啟鏈。只包含此金鑰的 Windows 來源(設定為 `true` 或 `false`)不計為原則來源,因此較低優先順序的來源仍然提供原則。此金鑰對原生 Windows 無效。

6532 

6533Claude Code 讀取帶或不帶引號的 `true` 和 `false`,並將 `null` 讀取為移除金鑰。包含任何其他值的管理員控制 Windows 來源計為[存在的管理員文件](/docs/zh-TW/managed-settings#present-admin-documents),鏈開啟:`/etc/claude-code` 和 HKCU 都不適用,啟動警告會命名金鑰。存在但無法讀取的 HKLM 值或 Windows 資料夾檔案也會防止 `/etc/claude-code` 套用,無論鏈是否開啟。需要 Claude Code v2.1.282 或更新版本。

6457 6534 

6458<h2 id="global-config-settings">6535<h2 id="global-config-settings">

6459 全域設定6536 全域設定


6503 6580 

6504Claude Code 會忽略 `settings.json` 中的此金鑰。6581Claude Code 會忽略 `settings.json` 中的此金鑰。

6505 6582 

6583<h3 id="claudeinchromedefaultenabled">

6584 `claudeInChromeDefaultEnabled`

6585</h3>

6586 

6587啟動每個互動式 CLI 工作階段時,[Chrome 整合](/docs/zh-TW/chrome)預設開啟,無需每次都傳遞 `--chrome`。如果您執行 [`claude remote-control`](/docs/zh-TW/remote-control),它為您的其中一個[專案](/docs/zh-TW/claude-projects)執行緒啟動的工作階段也會遵循此金鑰,除了在 `bypassPermissions` 模式中。執行 `/chrome` 並選擇**預設啟用**會為您設定此金鑰,如[預設啟用 Chrome](/docs/zh-TW/chrome#enable-chrome-by-default) 中所述。會在 `/config` 中顯示為**預設啟用 Chrome 中的 Claude**。

6588 

6589* **範圍**:[`全域設定`](#scopes)

6590* **類型**:布林值

6591 * `true`:當互動式 CLI 工作階段啟動時,Claude Code 會開啟 Chrome 整合,就像您傳遞 `--chrome` 時一樣

6592 * `false`:互動式 CLI 工作階段啟動時 Chrome 整合關閉,Claude Code 停止[提供設定它](/docs/zh-TW/chrome#install-the-extension-when-claude-asks)。傳遞 `--chrome` 以在一個互動式工作階段中開啟它

6593* **預設值**:未設定,因此 Chrome 整合關閉,Claude Code 仍可提供設定它

6594* **每個工作階段的覆寫**:`--chrome` 和 [`--no-chrome`](/docs/zh-TW/cli-reference) 在一個互動式工作階段中優先於此金鑰

6595 

6596```json ~/.claude.json theme={null}

6597{

6598 "claudeInChromeDefaultEnabled": true

6599}

6600```

6601 

6602Claude Code 會忽略 `settings.json` 中的此金鑰。

6603 

6604<h3 id="copyfullresponse">

6605 `copyFullResponse`

6606</h3>

6607 

6608讓 [`/copy`](/docs/zh-TW/commands) 每次都複製完整回應,無需在回應包含程式碼區塊時顯示的選擇器。在該選擇器中選擇**始終複製完整回應**會將此金鑰設定為 `true`。會在 `/config` 中顯示為**略過 /copy 選擇器**。

6609 

6610* **範圍**:[`全域設定`](#scopes)

6611* **類型**:布林值

6612 * `true`:`/copy` 複製完整回應,無需顯示選擇器

6613 * `false`:當回應包含程式碼區塊時,`/copy` 顯示一個選擇器,您可以在其中選擇一個程式碼區塊或完整回應

6614* **預設值**:`false`

6615 

6616```json ~/.claude.json theme={null}

6617{

6618 "copyFullResponse": true

6619}

6620```

6621 

6622Claude Code 會忽略 `settings.json` 中的此金鑰。

6623 

6506<h3 id="copyonselect">6624<h3 id="copyonselect">

6507 `copyOnSelect`6625 `copyOnSelect`

6508</h3>6626</h3>


6523 6641 

6524Claude Code 會忽略 `settings.json` 中的此金鑰。6642Claude Code 會忽略 `settings.json` 中的此金鑰。

6525 6643 

6644<h3 id="defaulttoagentsview">

6645 `defaultToAgentsView`

6646</h3>

6647 

6648當您執行不帶引數的 `claude` 時,開啟[代理程式檢視](/docs/zh-TW/agent-view)而不是新對話。會在 `/config` 中顯示為**預設開啟代理程式檢視**,除非代理程式檢視[已關閉](#disableagentview)。

6649 

6650* **範圍**:[`全域設定`](#scopes)

6651* **類型**:布林值

6652 * `true`:不帶引數的 `claude` 開啟代理程式檢視,除非代理程式檢視[已關閉](#disableagentview)

6653 * `false`:不帶引數的 `claude` 啟動新對話

6654* **預設值**:`false`

6655 

6656```json ~/.claude.json theme={null}

6657{

6658 "defaultToAgentsView": true

6659}

6660```

6661 

6662Claude Code 會忽略 `settings.json` 中的此金鑰。

6663 

6526<h3 id="difftool">6664<h3 id="difftool">

6527 `diffTool`6665 `diffTool`

6528</h3>6666</h3>


6577 6715 

6578Claude Code 會忽略 `settings.json` 中的此金鑰。6716Claude Code 會忽略 `settings.json` 中的此金鑰。

6579 6717 

6718<h3 id="leftarrowopensagents">

6719 `leftArrowOpensAgents`

6720</h3>

6721 

6722在空提示上按 `←` 以[背景化工作階段並開啟代理程式檢視](/docs/zh-TW/agent-view#switch-sessions-without-leaving-the-terminal)。將此金鑰設定為 `false` 以關閉快捷鍵。當代理程式檢視可用時,會在 `/config` 中顯示為\*\*← 開啟代理程式\*\*。

6723 

6724* **範圍**:[`全域設定`](#scopes)

6725* **類型**:布林值

6726 * `true`:在您在終端中啟動的工作階段中,在空提示上按 `←` 會背景化它並開啟代理程式檢視

6727 * `false`:Claude Code 關閉快捷鍵;在您[從代理程式檢視附加到的工作階段](/docs/zh-TW/agent-view#attach-to-a-session)中,在空提示上按 `←` 仍會分離

6728* **預設值**:`true`

6729 

6730```json ~/.claude.json theme={null}

6731{

6732 "leftArrowOpensAgents": false

6733}

6734```

6735 

6736Claude Code 會忽略 `settings.json` 中的此金鑰。

6737 

6580<h3 id="permissionexplainerenabled">6738<h3 id="permissionexplainerenabled">

6581 `permissionExplainerEnabled`6739 `permissionExplainerEnabled`

6582</h3>6740</h3>


6591* **類型**:布林值6749* **類型**:布林值

6592* **預設值**:`true`6750* **預設值**:`true`

6593 6751 

6752<h3 id="prstatusfooterenabled">

6753 `prStatusFooterEnabled`

6754</h3>

6755 

6756在提示頁尾中顯示目前分支的開啟提取要求或合併要求的徽章,並帶有顯示其[狀態](/docs/zh-TW/interactive-mode#pr-review-status)的彩色底線。會在 `/config` 中顯示為**顯示 PR 狀態頁尾**。

6757 

6758* **範圍**:[`全域設定`](#scopes)

6759* **類型**:布林值

6760 * `true`:頁尾在 [PR 審查狀態](/docs/zh-TW/interactive-mode#pr-review-status)中的條件下顯示徽章

6761 * `false`:Claude Code 跳過頁尾的提取要求和合併要求檢查,不顯示該徽章。您[從代理程式檢視附加到的工作階段](/docs/zh-TW/agent-view#attach-to-a-session)仍可顯示[連結到它的](/docs/zh-TW/agent-view#pull-request-status)提取要求的純連結

6762* **預設值**:`true`

6763 

6764```json ~/.claude.json theme={null}

6765{

6766 "prStatusFooterEnabled": false

6767}

6768```

6769 

6770Claude Code 會忽略 `settings.json` 中的此金鑰。

6771 

6594<h3 id="teammatedefaultmodel">6772<h3 id="teammatedefaultmodel">

6595 `teammateDefaultModel`6773 `teammateDefaultModel`

6596</h3>6774</h3>

setup.md +3 −3

Details

37 37 

38<Tip>38<Tip>

39 偏好圖形介面?[桌面應用程式](/docs/zh-TW/desktop-quickstart)讓您無需終端機即可使用 Claude Code。下載適用於 [macOS](https://claude.ai/api/desktop/darwin/universal/dmg/latest/redirect?utm_source=claude_code\&utm_medium=docs)、[Windows](https://claude.com/download?utm_source=claude_code\&utm_medium=docs) 或 [Linux](/docs/zh-TW/desktop-linux) 的版本。39 偏好圖形介面?[桌面應用程式](/docs/zh-TW/desktop-quickstart)讓您無需終端機即可使用 Claude Code。下載適用於 [macOS](https://claude.ai/api/desktop/darwin/universal/dmg/latest/redirect?utm_source=claude_code\&utm_medium=docs)、[Windows](https://claude.com/download?utm_source=claude_code\&utm_medium=docs) 或 [Linux](/docs/zh-TW/desktop-linux) 的版本。

40 

41 初次使用終端機?請參閱[終端機指南](/docs/zh-TW/terminal-guide)以取得逐步說明。

42</Tip>40</Tip>

43 41 

44若要安裝 Claude Code,請使用下列其中一種方法:42若要安裝 Claude Code,請開啟終端機並執行適用於您系統的命令。如果您之前未使用過終端機,[終端機指南](/docs/zh-TW/terminal-guide)會說明如何開啟終端機並貼上命令。

45 43 

46<Tabs>44<Tabs>

47 <Tab title="原生安裝(建議)">45 <Tab title="原生安裝(建議)">


63 curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd61 curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd

64 ```62 ```

65 63 

64 當安裝程式完成時,請開啟新的終端機視窗並執行 `claude --version`。正常的安裝會列印版本號碼。如果您的殼層說找不到 `claude` 或無法識別,安裝目錄還未在您的 PATH 上:請參閱[修正您的 PATH](/docs/zh-TW/troubleshoot-install#command-not-found-claude-after-installation)。

65 

66 如果您看到 `The token '&&' is not a valid statement separator`,表示您在 PowerShell 中,而非 CMD。如果您看到 `'irm' is not recognized as an internal or external command`,表示您在 CMD 中,而非 PowerShell。當您在 PowerShell 中時,提示符會顯示 `PS C:\`,而在 CMD 中時會顯示 `C:\`(不含 `PS`)。66 如果您看到 `The token '&&' is not a valid statement separator`,表示您在 PowerShell 中,而非 CMD。如果您看到 `'irm' is not recognized as an internal or external command`,表示您在 CMD 中,而非 PowerShell。當您在 PowerShell 中時,提示符會顯示 `PS C:\`,而在 CMD 中時會顯示 `C:\`(不含 `PS`)。

67 67 

68 如果安裝命令失敗並出現 `syntax error near unexpected token '<'`、`403` 或其他 curl 錯誤,請參閱[疑難排解安裝](/docs/zh-TW/troubleshoot-install#find-your-error)以將錯誤與修正相對應,並查看替代安裝方法。68 如果安裝命令失敗並出現 `syntax error near unexpected token '<'`、`403` 或其他 curl 錯誤,請參閱[疑難排解安裝](/docs/zh-TW/troubleshoot-install#find-your-error)以將錯誤與修正相對應,並查看替代安裝方法。

skills.md +31 −12

Details

135技能資料夾也遵循以下規則:135技能資料夾也遵循以下規則:

136 136 

137* **符號連結資料夾**:企業、個人或專案位置中的 `<skill-name>` 項目可以是磁碟上其他位置目錄的符號連結。Claude Code 從目標讀取 `SKILL.md` 並載入技能一次,即使多個位置指向同一目標。外掛程式技能[以不同方式處理符號連結](/docs/zh-TW/plugins/host-marketplace#share-files-within-a-marketplace-with-symlinks)。137* **符號連結資料夾**:企業、個人或專案位置中的 `<skill-name>` 項目可以是磁碟上其他位置目錄的符號連結。Claude Code 從目標讀取 `SKILL.md` 並載入技能一次,即使多個位置指向同一目標。外掛程式技能[以不同方式處理符號連結](/docs/zh-TW/plugins/host-marketplace#share-files-within-a-marketplace-with-symlinks)。

138* **保留名稱**:不要將技能資料夾命名為 `synced`,無論大小寫如何。Claude Code 使用 `~/.claude/skills/synced/` 來[儲存從 claude.ai 下載的技能](#where-synced-skills-load),並跳過您在企業、個人和專案位置中以該名稱編寫的技能。138* **保留名稱 `synced`**:不要將技能資料夾命名為 `synced`,無論大小寫如何。Claude Code 使用 `~/.claude/skills/synced/` 來[儲存從 claude.ai 下載的技能](#where-synced-skills-load),並跳過您在企業、個人和專案位置中以該名稱編寫的技能。

139* **保留名稱 `anthropic-skills`**:在外掛程式外,名稱為 `anthropic-skills` 或以 `anthropic-skills:` 開頭的技能資料夾或命令檔案不會載入。請參閱[為同步技能保留的名稱](#names-reserved-for-synced-skills)。

139* **命令檔案**:`.claude/commands/` 中的 Markdown 檔案是較舊的格式,仍然有效。它支援相同的[前置資料](#frontmatter-reference),除了 `name` 和 `paths`。若要找到您輸入以叫用它的名稱,請參閱[技能如何獲得其命令名稱](#how-a-skill-gets-its-command-name)。對於新工作,建議使用技能,因為技能也支援[支援檔案](#add-supporting-files)。140* **命令檔案**:`.claude/commands/` 中的 Markdown 檔案是較舊的格式,仍然有效。它支援相同的[前置資料](#frontmatter-reference),除了 `name` 和 `paths`。若要找到您輸入以叫用它的名稱,請參閱[技能如何獲得其命令名稱](#how-a-skill-gets-its-command-name)。對於新工作,建議使用技能,因為技能也支援[支援檔案](#add-supporting-files)。

140* **技能資料夾作為外掛程式**:將 `.claude-plugin/plugin.json` 新增到技能資料夾,它會載入為[外掛程式](/docs/zh-TW/plugins/loading#plugins-shared-through-a-repository),名稱為 `<name>@skills-dir`,因此可以捆綁代理、hooks 和 MCP 伺服器。在專案的 `.claude/skills/` 中,這需要先接受工作區信任對話。141* **技能資料夾作為外掛程式**:將 `.claude-plugin/plugin.json` 新增到技能資料夾,它會載入為[外掛程式](/docs/zh-TW/plugins/loading#plugins-shared-through-a-repository),名稱為 `<name>@skills-dir`,因此可以捆綁代理、hooks 和 MCP 伺服器。在專案的 `.claude/skills/` 中,這需要先接受工作區信任對話。

141 142 


168 解決共享名稱的技能169 解決共享名稱的技能

169</h3>170</h3>

170 171 

171當兩個技能共享名稱時,每個技能的來源決定了 `/name` 執行哪一個。該表涵蓋企業、個人、專案、巢狀、外掛程式和 claude.ai 位置、捆綁技能和命令檔案:172當兩個技能共享名稱時,每個技能的來源決定了 `/name` 執行哪一個。對於由前置資料 `name` 欄位設定的名稱,請參閱[技能如何獲得其命令名稱](#how-a-skill-gets-its-command-name)。該表涵蓋企業、個人、專案、巢狀、外掛程式和 claude.ai 位置、捆綁技能和命令檔案:

172 173 

173| 相同名稱在 | 執行哪一個 |174| 相同名稱在 | 執行哪一個 |

174| :- | :- |175| :- | :- |


177| 技能和 `.claude/commands/` 中的檔案 | 技能 |178| 技能和 `.claude/commands/` 中的檔案 | 技能 |

178| 專案根技能和巢狀技能 | 兩者都載入。請參閱[單一版本庫和子目錄](#discovery-from-parent-and-nested-directories) |179| 專案根技能和巢狀技能 | 兩者都載入。請參閱[單一版本庫和子目錄](#discovery-from-parent-and-nested-directories) |

179| 外掛程式技能和上述任何位置的技能 | 兩者都載入,因為外掛程式技能命名為 `/plugin-name:skill-name` |180| 外掛程式技能和上述任何位置的技能 | 兩者都載入,因為外掛程式技能命名為 `/plugin-name:skill-name` |

180| 上述任何一個和[從您的 claude.ai 帳戶同步的技能](#how-synced-skills-behave) | 其他技能或命令。同步技能仍作為 `/anthropic-skills:<name>` 執行。請參閱[當同步技能名稱與另一個命令相符時](#when-a-synced-skill-name-matches-another-command) |181| 上述任何一個和[從您的 claude.ai 帳戶同步的技能](#how-synced-skills-behave)的短名稱 | 其他技能或命令。同步技能隨後被列出並僅在其完整名稱下執行。請參閱[當同步技能名稱與另一個命令相符時](#when-a-synced-skill-name-matches-another-command) |

181 182 

182<h3 id="skills-in-cowork-and-cloud-sessions">183<h3 id="skills-in-cowork-and-cloud-sessions">

183 在 Cowork 和雲端工作階段中使用技能184 在 Cowork 和雲端工作階段中使用技能


235 當同步技能名稱與另一個命令相符時236 當同步技能名稱與另一個命令相符時

236</h4>237</h4>

237 238 

238您可以透過其完整名稱 `/anthropic-skills:<name>` 或其短名稱 `/<name>` 叫用同步技能。當另一個命令使用該短名稱時,`/<name>` 執行其他命令,同步技能僅作為 `/anthropic-skills:<name>` 執行。使用本地 `deploy` 技能和同步 `deploy` 時,`/deploy` 執行本地技能,`/anthropic-skills:deploy` 執行同步的。在 v2.1.269 之前,同步技能只有其短名稱。239您可以透過其短名稱 `/<name>` 或其完整名稱 `/anthropic-skills:<name>` 叫用同步技能。當另一個命令使用該短名稱時,`/<name>` 執行其他命令,同步技能僅作為 `/anthropic-skills:<name>` 執行。使用本地 `deploy` 技能和同步 `deploy` 時,`/deploy` 執行本地技能,`/anthropic-skills:deploy` 執行同步的。在 v2.1.269 之前,同步技能只有其短名稱。

239 240 

240其他命令可以是以下任何一個:241在 `/` 功能表、`/skills` 和 `/context` 中,同步技能在其短名稱下出現,或在另一個命令使用該短名稱時在其完整名稱下出現。在您的工作階段中執行 `/skills`。清單下的注釋說明了每個失去其短名稱的同步技能。如果您在 `~/.claude/` 中的個人技能或命令檔案之一使用該名稱,注釋也會說明要重新命名或刪除什麼以釋放它。

242 

243從 v2.1.269 到 v2.1.280,這些清單在其完整名稱下顯示每個同步技能,`/skills` 沒有這樣的注釋;兩者都在 v2.1.281 中改變。

244 

245使用該短名稱的命令可以是以下任何一個:

241 246 

242* 內建命令或[捆綁技能](#bundled-skills),包括在您的工作階段中不可用的,例如在您關閉捆綁技能後247* 內建命令或[捆綁技能](#bundled-skills),包括在您的工作階段中不可用的,例如在您關閉捆綁技能後

243* 任何[本地層級](#where-skills-live)的技能或 `.claude/commands/` 中的檔案248* 任何[本地層級](#where-skills-live)的技能或 `.claude/commands/` 中的檔案


250 255 

251僅因來自另一個字母表的外觀相似字母而不同的名稱計為不同名稱,`claude.ai sync` 標籤是您區分兩者的方式。這些檢查和標籤需要 Claude Code v2.1.228 或更新版本。256僅因來自另一個字母表的外觀相似字母而不同的名稱計為不同名稱,`claude.ai sync` 標籤是您區分兩者的方式。這些檢查和標籤需要 Claude Code v2.1.228 或更新版本。

252 257 

258<h4 id="names-reserved-for-synced-skills">

259 為同步技能保留的名稱

260</h4>

261 

262Claude Code 保留名稱 `anthropic-skills` 和該命名空間內的每個名稱(例如 `anthropic-skills:pdf`),供從 claude.ai 同步的技能使用,因此同步技能的完整名稱永遠不會執行其他任何東西。該名稱在每個工作階段中都被保留,無論您是否使用 claude.ai 帳戶登入。

263 

264* **技能資料夾、前置資料 `name`、`.claude/commands/` 中的檔案或子資料夾,或[已儲存的工作流程](/docs/zh-TW/workflows#save-the-workflow-for-reuse)**:它不會載入。[啟動通知](/docs/zh-TW/errors#a-skill-command-or-workflow-wasnt-loaded-because-its-name-is-reserved)命名要重新命名或編輯的第一個項目。

265* **名為 `anthropic-skills` 的外掛程式**:它會載入。當其技能之一和同步技能都命名為 `<name>` 時,`/anthropic-skills:<name>` 執行同步技能。

266* **名為 `anthropic-skills` 的 MCP 伺服器**:它連接且其工具有效,但[其提示不會顯示為命令](/docs/zh-TW/mcp#use-mcp-prompts-as-commands)。在您的 MCP 設定中重新命名伺服器以列出它們。

267 

253<h4 id="how-claude-code-handles-the-frontmatter-of-a-synced-skill">268<h4 id="how-claude-code-handles-the-frontmatter-of-a-synced-skill">

254 Claude Code 如何處理同步技能的前置資料269 Claude Code 如何處理同步技能的前置資料

255</h4>270</h4>


273 在工作階段期間編輯技能288 在工作階段期間編輯技能

274</h3>289</h3>

275 290 

276Claude Code 監視技能目錄的檔案變更,除了在[裸機模式](/docs/zh-TW/headless#start-faster-with-bare-mode)中。當您在 `~/.claude/skills/`、專案 `.claude/skills/` 或 `--add-dir` 目錄內的 `.claude/skills/` 中新增、編輯或移除技能時,Claude Code 在目前工作階段內拾取變更,無需重新啟動。如果您建立在工作階段啟動時不存在的頂層技能目錄,請重新啟動 Claude Code,以便它可以監視新目錄。291Claude Code 監視技能目錄的檔案變更,除了在[裸機模式](/docs/zh-TW/headless#start-faster-with-bare-mode)中。當您在 `~/.claude/skills/`、專案 `.claude/skills/` 或 `--add-dir` 目錄內的 `.claude/skills/` 中新增、編輯或移除技能時,Claude Code 在目前工作階段內拾取變更,無需重新啟動。

292 

293如果您建立在工作階段啟動時不存在的頂層技能目錄,請執行 [`/reload-skills`](/docs/zh-TW/commands#all-commands) 以拾取您放在那裡的技能。Claude Code 還沒有監視該目錄,因此在稍後每次變更後再次執行 `/reload-skills`。

277 294 

278即時變更偵測僅涵蓋 `SKILL.md` 文字。對於也是[外掛程式](/docs/zh-TW/plugins/loading#plugins-shared-through-a-repository)的技能資料夾,`hooks/`、`.mcp.json`、`agents/` 和 `output-styles/` 的變更需要 `/reload-plugins` 才能生效。295即時變更偵測僅涵蓋 `SKILL.md` 文字。對於也是[外掛程式](/docs/zh-TW/plugins/loading#plugins-shared-through-a-repository)的技能資料夾,`hooks/`、`.mcp.json`、`agents/` 和 `output-styles/` 的變更需要 `/reload-plugins` 才能生效。

279 296 


360 377 

361| 欄位 | 必需 | 說明 |378| 欄位 | 必需 | 說明 |

362| :- | :- | :- |379| :- | :- | :- |

363| `name` | 否 | 在 skill 列表中顯示的顯示名稱。預設為目錄名稱。請參閱[Skill 如何獲得其命令名稱](#how-a-skill-gets-its-command-name)以了解欄位如何與您鍵入以調用 skill 的名稱相互作用。 |380| `name` | 否 | 在 `/` 菜單中顯示的命令名稱。預設為目錄名稱。請參閱[Skill 如何獲得其命令名稱](#how-a-skill-gets-its-command-name)以了解欄位如何與您鍵入以調用 skill 的名稱相互作用。 |

364| `description` | 建議 | Skill 的功能以及何時使用它。Claude 使用此來決定何時應用 skill。如果省略,使用 markdown 內容的第一個非空行。將關鍵用例放在首位:組合的 `description` 和 `when_to_use` 文本在 skill 列表中被截斷為 1,536 個字元,以減少上下文使用。 |381| `description` | 建議 | Skill 的功能以及何時使用它。Claude 使用此來決定何時應用 skill。如果省略,使用 markdown 內容的第一個非空行。將關鍵用例放在首位:組合的 `description` 和 `when_to_use` 文本在 skill 列表中被截斷為 1,536 個字元,以減少上下文使用。 |

365| `when_to_use` | 否 | Claude 應何時調用 skill 的其他上下文,例如觸發短語或範例請求。附加到 skill 列表中的 `description`,並計入 1,536 字元上限。 |382| `when_to_use` | 否 | Claude 應何時調用 skill 的其他上下文,例如觸發短語或範例請求。附加到 skill 列表中的 `description`,並計入 1,536 字元上限。 |

366| `argument-hint` | 否 | 在自動完成期間顯示的提示,以指示預期的引數。範例:`[issue-number]` 或 `[filename] [format]`。 |383| `argument-hint` | 否 | 在自動完成期間顯示的提示,以指示預期的引數。範例:`[issue-number]` 或 `[filename] [format]`。 |


406 Skill 如何獲得其命令名稱423 Skill 如何獲得其命令名稱

407</h4>424</h4>

408 425 

409您鍵入以調用 skill 的命令來自 skill 檔案的位置,對於插件 skills,也來自 frontmatter `name` 欄位。在個人或專案 skill 中,`name` 僅設定在 skill 列表中顯示的顯示標籤,命令仍來自目錄名稱。在插件 skill 中,`name` 設定命令的最後一段,插件前綴保持不變。426您鍵入以調用 skill 的命令來自 skill 檔案的位置,對於 skill 目錄和插件 skills,也來自 frontmatter `name` 欄位。在個人或專案 skill 目錄中,`name` 設定 `/` 菜單顯示的命令以及您鍵入的命令,除非另一個命令已使用該名稱。目錄名稱也調用 skill。在插件 skill 中,`name` 設定命令的最後一段,插件前綴保持不變。

410 427 

411下表顯示了每個佈局的命令名稱來自何處:428下表顯示了每個佈局的命令名稱來自何處:

412 429 

413| Skill 位置 | 命令名稱來源 | 範例 |430| Skill 位置 | 命令名稱來源 | 範例 |

414| :- | :- | :- |431| :- | :- | :- |

415| `~/.claude/skills/` 或 `.claude/skills/` 下的 Skill 目錄 | 目錄名稱 | `.claude/skills/deploy-staging/SKILL.md` → `/deploy-staging` |432| `~/.claude/skills/` 或 `.claude/skills/` 下的 Skill 目錄 | Frontmatter `name` 或目錄名稱 | `.claude/skills/deploy-staging/SKILL.md` → `/deploy-staging`,或使用 `name: deploy` 時為 `/deploy` |

416| [嵌套](#where-skills-live) `.claude/skills/` 目錄,當名稱與另一個 skill 衝突時 | 相對於工作目錄的子目錄路徑,然後是 skill 目錄名稱 | `apps/web/.claude/skills/deploy/SKILL.md` → `/apps/web:deploy` |433| [嵌套](#where-skills-live) `.claude/skills/` 目錄,當目錄名稱與另一個 skill 衝突時 | 相對於工作目錄的子目錄路徑,然後是 skill 目錄名稱 | `apps/web/.claude/skills/deploy/SKILL.md` → `/apps/web:deploy` |

417| `.claude/commands/` 下的檔案 | 檔案名稱(不含副檔名) | `.claude/commands/deploy.md` → `/deploy` |434| `.claude/commands/` 下的檔案 | 檔案名稱(不含副檔名) | `.claude/commands/deploy.md` → `/deploy` |

418| `.claude/commands/` 的子目錄中的檔案 | 相對於 `commands/` 的子目錄路徑,每個 `/` 替換為 `:`,然後是檔案名稱(不含副檔名) | `.claude/commands/frontend/component.md` → `/frontend:component` |435| `.claude/commands/` 的子目錄中的檔案 | 相對於 `commands/` 的子目錄路徑,每個 `/` 替換為 `:`,然後是檔案名稱(不含副檔名) | `.claude/commands/frontend/component.md` → `/frontend:component` |

419| 插件 `skills/` 子目錄 | Frontmatter `name` 或目錄名稱,由插件命名空間 | `my-plugin/skills/review/SKILL.md` → `/my-plugin:review`,或使用 `name: fancy` 時為 `/my-plugin:fancy` |436| 插件 `skills/` 子目錄 | Frontmatter `name` 或目錄名稱,由插件命名空間 | `my-plugin/skills/review/SKILL.md` → `/my-plugin:review`,或使用 `name: fancy` 時為 `/my-plugin:fancy` |


439| `$N` | `$ARGUMENTS[N]` 的簡寫,例如 `$0` 表示第一個引數或 `$1` 表示第二個引數。 |456| `$N` | `$ARGUMENTS[N]` 的簡寫,例如 `$0` 表示第一個引數或 `$1` 表示第二個引數。 |

440| `$name` | 在 [`arguments`](#frontmatter-reference) frontmatter 列表中聲明的命名引數。名稱按順序映射到位置,因此使用 `arguments: [issue, branch]`,佔位符 `$issue` 擴展到第一個引數,`$branch` 擴展到第二個引數。 |457| `$name` | 在 [`arguments`](#frontmatter-reference) frontmatter 列表中聲明的命名引數。名稱按順序映射到位置,因此使用 `arguments: [issue, branch]`,佔位符 `$issue` 擴展到第一個引數,`$branch` 擴展到第二個引數。 |

441| `${CLAUDE_SESSION_ID}` | 目前工作階段 ID。用於日誌記錄、建立工作階段特定檔案或將 skill 輸出與工作階段相關聯。 |458| `${CLAUDE_SESSION_ID}` | 目前工作階段 ID。用於日誌記錄、建立工作階段特定檔案或將 skill 輸出與工作階段相關聯。 |

442| `${CLAUDE_EFFORT}` | 目前努力級別:`low`、`medium`、`high`、`xhigh` 或 `max`。Ultracode 不是一個不同的級別,報告為 `xhigh`。使用此來根據活動努力設定調整 skill 指示。 |459| `${CLAUDE_EFFORT}` | 目前努力級別:`low`、`medium`、`high`、`xhigh` 或 `max`。使用此來根據活動努力設定調整 skill 指示。 |

443| `${CLAUDE_SKILL_DIR}` | 包含 skill 的 `SKILL.md` 檔案的目錄。對於插件 skills,這是插件內 skill 的子目錄,而不是插件根。在 bash 注入命令中使用此來參考與 skill 捆綁的指令碼或檔案,無論目前工作目錄如何。 |460| `${CLAUDE_SKILL_DIR}` | 包含 skill 的 `SKILL.md` 檔案的目錄。對於插件 skills,這是插件內 skill 的子目錄,而不是插件根。在 bash 注入命令中使用此來參考與 skill 捆綁的指令碼或檔案,無論目前工作目錄如何。 |

444| `${CLAUDE_PROJECT_DIR}` | 專案根目錄。這是 [hooks](/docs/zh-TW/hooks#reference-scripts-by-path) 和 MCP 伺服器作為 `CLAUDE_PROJECT_DIR` 接收的相同路徑。使用此來參考專案本地指令碼或檔案,例如 `${CLAUDE_PROJECT_DIR}/.claude/hooks/helper.sh`,獨立於 skill 的安裝位置。 |461| `${CLAUDE_PROJECT_DIR}` | 專案根目錄。這是 [hooks](/docs/zh-TW/hooks#reference-scripts-by-path) 和 MCP 伺服器作為 `CLAUDE_PROJECT_DIR` 接收的相同路徑。使用此來參考專案本地指令碼或檔案,例如 `${CLAUDE_PROJECT_DIR}/.claude/hooks/helper.sh`,獨立於 skill 的安裝位置。 |

445| `${CLAUDE_PLUGIN_ROOT}` | 插件的安裝目錄。僅在插件 skills 中替換。使用此來參考插件中任何位置的指令碼或檔案,包括在插件的 skills 之間共享的資源。請參閱[插件環境變數](/docs/zh-TW/plugins/manifest-reference#environment-variables)。 |462| `${CLAUDE_PLUGIN_ROOT}` | 插件的安裝目錄。僅在插件 skills 中替換。使用此來參考插件中任何位置的指令碼或檔案,包括在插件的 skills 之間共享的資源。請參閱[插件環境變數](/docs/zh-TW/plugins/manifest-reference#environment-variables)。 |


826Skill(deploy *)843Skill(deploy *)

827```844```

828 845 

829權限語法:`Skill(name)` 用於精確匹配,`Skill(name *)` 用於帶有任何引數的前綴匹配。846權限語法:`Skill(name)` 用於精確匹配,`Skill(name *)` 用於帶有任何引數的前綴匹配。在 `allow` 規則中,[為同步技能保留的命名空間](#names-reserved-for-synced-skills)外的前綴不會匹配其內部的名稱:`Skill(anthropic *)` 不涵蓋 `anthropic-skills:pdf`。

830 847 

831如果您的 `deny` 規則命名別名或不合格的名稱而不是技能自己的名稱,Claude Code 仍會阻止技能:使用 `Skill(review)` 它會透過其 `/review` 別名阻止捆綁的 `/code-review`,使用 `Skill(deploy)` 它會阻止[巢狀技能](#where-skills-live)列為 `apps/web:deploy` 透過其不合格的名稱。在 v2.1.260 之前,當拒絕規則僅命名不合格的名稱時,Claude Code 不會阻止列在其合格名稱下的巢狀技能。848如果您的 `deny` 規則命名別名或不合格的名稱而不是技能自己的名稱,Claude Code 仍會阻止技能:使用 `Skill(review)` 它會透過其 `/review` 別名阻止捆綁的 `/code-review`,使用 `Skill(deploy)` 它會阻止[巢狀技能](#where-skills-live)列為 `apps/web:deploy` 透過其不合格的名稱。在 v2.1.260 之前,當拒絕規則僅命名不合格的名稱時,Claude Code 不會阻止列在其合格名稱下的巢狀技能。

832 849 

833Claude Code 只針對技能自己的名稱和 Claude 呼叫中的名稱匹配 `allow` 規則。850Claude Code 只針對技能自己的名稱和 Claude 呼叫中的名稱匹配 `allow` 規則。

834 851 

852若要在不提示的情況下批准[同步技能](#how-synced-skills-behave),請在其[保留命名空間](#names-reserved-for-synced-skills)內命名它:`Skill(anthropic-skills:pdf)` 批准同步的 `pdf` 技能,`Skill(anthropic-skills *)` 批准每個同步技能。

853 

835**透過在其 frontmatter 中新增 `disable-model-invocation: true` 來隱藏個別技能**。這會從 Claude 的內容中完全移除技能。854**透過在其 frontmatter 中新增 `disable-model-invocation: true` 來隱藏個別技能**。這會從 Claude 的內容中完全移除技能。

836 855 

837<Note>856<Note>

statusline.md +17 −17

Details

143</Steps>143</Steps>

144 144 

145<h2 id="how-status-lines-work">145<h2 id="how-status-lines-work">

146 狀態列如何運作146 狀態列的運作方式

147</h2>147</h2>

148 148 

149Claude Code 執行您的指令碼,並透過 stdin 將 [JSON 工作階段資料](#available-data) 傳送給它,然後顯示指令碼列印到 stdout 的任何內容。149Claude Code 會在 stdin 上執行您的指令碼,並傳入 [JSON 工作階段資料](#available-data),然後顯示指令碼列印到 stdout 的任何內容。

150 150 

151**何時更新**151**何時更新**

152 152 

153您的指令碼在工作階段開始時執行一次,包括當您復原一個工作階段時。之後,它會在以下情況下再次執行:153您的指令碼會在工作階段開始時執行一次,包括當您復原工作階段時。之後,它會在以下情況下再次執行:

154 154 

155* 新的助手訊息到達155* 新的助理訊息到達

156* `/compact` 完成156* `/compact` 完成

157* 權限模式變更157* 權限模式變更

158* Vim 模式切換158* Vim 模式切換

159* 您在 `statusLine` 設定中變更 `command`159* 您變更 `statusLine` 設定中的 `command`

160* [`refreshInterval`](#manually-configure-a-status-line) 計時器經過時間(如果您設定了一個)160* 如果您設定了 [`refreshInterval`](#manually-configure-a-status-line),計時器會經過

161* 您的指令碼最後接收的資料中的[速率限制視窗](#rate-limit-usage)達到其 `resets_at` 時間161* 您的指令碼最後接收的資料中的[速率限制視窗](#rate-limit-usage)達到其 `resets_at` 時間

162* 您的指令碼最後接收的資料中的溫暖[提示快取](#prompt-cache-fields)達到其 `expires_at` 時間162* 您的指令碼最後接收的資料中的[預熱 prompt 快取](#prompt-cache-fields)達到其 `expires_at` 時間

163 163 

164Claude Code 在 300ms 處進行去抖動,因此快速變更會批次在一起,您的指令碼在變更停止後執行一次。對 `command` 本身的變更會跳過去抖動:Claude Code 會立即執行新命令。如果在您的指令碼仍在執行時觸發新的更新,Claude Code 會取消進行中的指令碼。如果您編輯指令碼,變更會在下次更新觸發重新執行時出現。164Claude Code 會在 300ms 時進行去抖動,因此快速變更會批次處理,您的指令碼會在變更停止後執行一次。對 `command` 本身的變更會跳過去抖動:Claude Code 會立即執行新命令。如果在您的指令碼仍在執行時觸發新的更新,Claude Code 會取消執行中的指令碼。如果您編輯指令碼,變更會在下次更新觸發重新執行時出現。

165 165 

166當主工作階段閒置時,事件驅動的觸發器可能會安靜,例如當協調器等待背景子代理時。為了在閒置期間保持基於時間或外部來源的片段最新,請設定 [`refreshInterval`](#manually-configure-a-status-line) 以也在固定計時器上重新執行命令。166當主工作階段閒置時,事件驅動的觸發器可能會安靜下來,例如當協調器等待背景子代理時。若要在閒置期間保持基於時間或外部來源的區段為最新狀態,請設定 [`refreshInterval`](#manually-configure-a-status-line) 以同時在固定計時器上重新執行命令。

167 167 

168**您的指令碼可以輸出什麼**168**您的指令碼可以輸出什麼**

169 169 

170* **多行**:每個 `echo` 或 `print` 陳述式顯示為單獨的行。請參閱[多行範例](#display-multiple-lines)。170* **多行**:每個 `echo` 或 `print` 陳述式會顯示為單獨的列。請參閱[多行範例](#display-multiple-lines)。

171* **顏色**:使用 [ANSI 逃逸碼](https://en.wikipedia.org/wiki/ANSI_escape_code#Colors),例如 `\033[32m` 表示綠色(終端必須支援它們)。請參閱 [git 狀態範例](#git-status-with-colors)。171* **顏色**:使用 [ANSI 逸出碼](https://en.wikipedia.org/wiki/ANSI_escape_code#Colors),例如 `\033[32m` 表示綠色(終端機必須支援)。請參閱 [git 狀態範例](#git-status-with-colors)。

172* **連結**:使用 [OSC 8 逃逸序列](https://en.wikipedia.org/wiki/ANSI_escape_code#OSC) 使文字可點擊(macOS 上為 Cmd+click,Windows/Linux 上為 Ctrl+click)。需要支援超連結的終端,例如 iTerm2、Kitty 或 WezTerm。請參閱[可點擊連結範例](#clickable-links)。172* **連結**:使用 [OSC 8 逸出序列](https://en.wikipedia.org/wiki/ANSI_escape_code#OSC) 使文字可點擊(macOS 上為 Cmd+click,Windows/Linux 上為 Ctrl+click)。需要支援超連結的終端機,例如 iTerm2、Kitty 或 WezTerm。請參閱[可點擊連結範例](#clickable-links)。

173 173 

174**調整輸出大小以適應終端**174**調整輸出大小以符合終端機**

175 175 

176Claude Code 會擷取您指令碼的輸出,而不是直接將其連接到終端,因此 `tput cols` 和語言層級的寬度偵測無法從指令碼內部讀取終端大小。改為讀取 `COLUMNS` 和 `LINES` 環境變數。Claude Code 在執行您的指令碼之前會將這些設定為目前的終端尺寸。176Claude Code 會擷取您的指令碼輸出,而不是直接將其連接到終端機,因此 `tput cols` 和語言層級的寬度偵測無法從指令碼內部讀取終端機大小。請改為讀取 `COLUMNS` 和 `LINES` 環境變數。Claude Code 會在執行您的指令碼之前將這些設定為目前的終端機尺寸。

177 177 

178<Note>狀態列在本地執行,不消耗 API 令牌。在某些 UI 互動期間,它會暫時隱藏,包括自動完成建議、說明功能表和權限提示。</Note>178<Note>狀態列在本機執行,不會消耗 API 權杖。它會在某些 UI 互動期間暫時隱藏,包括說明功能表和權限提示。</Note>

179 179 

180<h2 id="available-data">180<h2 id="available-data">

181 可用資料181 可用資料


202| `context_window.current_usage` | 最後一次 API 呼叫中的令牌計數,在 [context window 欄位](#context-window-fields)中描述 |202| `context_window.current_usage` | 最後一次 API 呼叫中的令牌計數,在 [context window 欄位](#context-window-fields)中描述 |

203| `exceeds_200k_tokens` | 最近 API 回應中的總令牌計數(輸入、快取和輸出令牌合併)是否超過 200k。這是一個固定閾值,與實際 context window 大小無關。 |203| `exceeds_200k_tokens` | 最近 API 回應中的總令牌計數(輸入、快取和輸出令牌合併)是否超過 200k。這是一個固定閾值,與實際 context window 大小無關。 |

204| `fast_mode` | 是否為工作階段啟用 [fast mode](/docs/zh-TW/fast-mode) |204| `fast_mode` | 是否為工作階段啟用 [fast mode](/docs/zh-TW/fast-mode) |

205| `effort.level` | 目前的推理努力等級(`low`、`medium`、`high`、`xhigh` 或 `max`)。反映即時工作階段值,包括工作階段中途的 `/effort` 變更。Ultracode 不是一個不同的等級,報告為 `xhigh`。當目前模型不支援努力參數時不存在 |205| `effort.level` | 目前的推理努力等級(`low`、`medium`、`high`、`xhigh` 或 `max`)。反映即時工作階段值,包括工作階段中途的 `/effort` 變更。當目前模型不支援努力參數時不存在 |

206| `thinking.enabled` | 是否為工作階段啟用擴展思考 |206| `thinking.enabled` | 是否為工作階段啟用擴展思考 |

207| `rate_limits.five_hour.used_percentage`, `rate_limits.seven_day.used_percentage` | 消耗的 5 小時或 7 天速率限制的百分比,從 0 到 100 |207| `rate_limits.five_hour.used_percentage`, `rate_limits.seven_day.used_percentage` | 消耗的 5 小時或 7 天速率限制的百分比,從 0 到 100 |

208| `rate_limits.five_hour.resets_at`, `rate_limits.seven_day.resets_at` | 5 小時或 7 天速率限制視窗重設時的 Unix 紀元秒數 |208| `rate_limits.five_hour.resets_at`, `rate_limits.seven_day.resets_at` | 5 小時或 7 天速率限制視窗重設時的 Unix 紀元秒數 |


1166* 在安裝了 Git Bash 的 Windows 上,`command` 路徑中的反斜線可能在指令碼執行前被當作逃逸字元消耗。在路徑中使用正斜線。請參閱 [Windows 設定](#windows-configuration)。1166* 在安裝了 Git Bash 的 Windows 上,`command` 路徑中的反斜線可能在指令碼執行前被當作逃逸字元消耗。在路徑中使用正斜線。請參閱 [Windows 設定](#windows-configuration)。

1167* 如果在套用[設定優先順序](/docs/zh-TW/hooks#disable-or-remove-hooks)後 `disableAllHooks` 在受管設定外為 `true`,Claude Code 只會執行來自受管設定的 `statusLine`,且沒有受管 `statusLine` 時狀態列會被停用。移除此設定或在設定它的檔案中將其設定為 `false` 以重新啟用。請參閱 [`disableAllHooks`](/docs/zh-TW/settings-reference#disableallhooks)。1167* 如果在套用[設定優先順序](/docs/zh-TW/hooks#disable-or-remove-hooks)後 `disableAllHooks` 在受管設定外為 `true`,Claude Code 只會執行來自受管設定的 `statusLine`,且沒有受管 `statusLine` 時狀態列會被停用。移除此設定或在設定它的檔案中將其設定為 `false` 以重新啟用。請參閱 [`disableAllHooks`](/docs/zh-TW/settings-reference#disableallhooks)。

1168* 如果您的組織在受管設定中設定 `allowManagedHooksOnly`,您的自訂狀態列會無警告地消失:您只能從那些受管設定中的 `statusLine` 值取得狀態列。請參閱[在 `allowManagedHooksOnly` 下執行的內容](/docs/zh-TW/settings-reference#what-runs-under-allowmanagedhooksonly)以了解完整行為,並詢問您的管理員此設定是否適用於您。1168* 如果您的組織在受管設定中設定 `allowManagedHooksOnly`,您的自訂狀態列會無警告地消失:您只能從那些受管設定中的 `statusLine` 值取得狀態列。請參閱[在 `allowManagedHooksOnly` 下執行的內容](/docs/zh-TW/settings-reference#what-runs-under-allowmanagedhooksonly)以了解完整行為,並詢問您的管理員此設定是否適用於您。

1169* 執行 `claude --debug` 以記錄工作階段中第一次狀態列呼叫的結束代碼和 stderr1169* 執行 `claude --debug` 以在每次狀態列呼叫時記錄您的指令碼的 stderr,以及在工作階段中第一次呼叫時記錄其結束代碼

1170* 要求 Claude 讀取您的設定檔案並直接執行 `statusLine` 命令以顯示錯誤1170* 要求 Claude 讀取您的設定檔案並直接執行 `statusLine` 命令以顯示錯誤

1171 1171 

1172**狀態列顯示 `--` 或空值**1172**狀態列顯示 `--` 或空值**

sub-agents.md +12 −8

Details

8 8 

9Subagents 是專門的 AI 助手,用於處理特定類型的任務。當側面任務會用搜尋結果、日誌或檔案內容淹沒您的主要對話時,請使用一個 subagent,而您不會再次參考這些內容:subagent 在自己的上下文中執行該工作,並僅返回摘要。當您持續產生相同類型的工作者並使用相同指令時,定義自訂 subagent。9Subagents 是專門的 AI 助手,用於處理特定類型的任務。當側面任務會用搜尋結果、日誌或檔案內容淹沒您的主要對話時,請使用一個 subagent,而您不會再次參考這些內容:subagent 在自己的上下文中執行該工作,並僅返回摘要。當您持續產生相同類型的工作者並使用相同指令時,定義自訂 subagent。

10 10 

11每個 subagent 在自己的 context window 中執行,具有自訂系統提示、特定工具存取和獨立權限。當 Claude 遇到與 subagent 描述相符的任務時,它會委派給該 subagent,該 subagent 獨立工作並返回結果。若要在實踐中查看上下文節省,[context window visualization](/docs/zh-TW/context-window) 會逐步說明一個 subagent 在自己的獨立視窗中處理研究的工作階段。11每個 subagent 在自己的 context window 中執行,具有自訂系統提示、特定工具存取和獨立權限。它也會傳送自己的請求,這些請求計入與您的主要對話相同的[使用限制](/docs/zh-TW/costs#plan-usage-breakdown)。當 Claude 遇到與 subagent 描述相符的任務時,它會委派給該 subagent,該 subagent 獨立工作並返回結果。若要在實踐中查看上下文節省,[context window visualization](/docs/zh-TW/context-window) 會逐步說明一個 subagent 在自己的獨立視窗中處理研究的工作階段。

12 12 

13<Note>13<Note>

14 Subagents 在單一工作階段內工作。若要執行許多獨立工作階段並行並從一個地方監控它們,請參閱 [background agents](/docs/zh-TW/agent-view)。對於相互通訊的工作階段,請參閱 [cross-session messaging](/docs/zh-TW/cross-session-messaging)。對於 Claude 產生和監督的協調團隊工作階段,請參閱 [agent teams](/docs/zh-TW/agent-teams)。14 Subagents 在單一工作階段內工作。若要執行許多獨立工作階段並行並從一個地方監控它們,請參閱 [background agents](/docs/zh-TW/agent-view)。對於相互通訊的工作階段,請參閱 [cross-session messaging](/docs/zh-TW/cross-session-messaging)。對於 Claude 產生和監督的協調團隊工作階段,請參閱 [agent teams](/docs/zh-TW/agent-teams)。


230 </Tab>230 </Tab>

231</Tabs>231</Tabs>

232 232 

233`--agents` 標誌接受 JSON,具有 `prompt` 欄位加上這些 [frontmatter](#supported-frontmatter-fields) 欄位:`description`、`tools`、`disallowedTools`、`model`、`permissionMode`、`mcpServers`、`hooks`、`maxTurns`、`skills`、`initialPrompt`、`memory`、`effort`、`background`、`omitClaudeMd` 和 `isolation`。使用 `prompt` 作為系統提示,等同於基於檔案的 subagents 中的 markdown 主體。`color` 和 `experimental` 在此不被接受,會被忽略而不是拒絕。233在 [non-interactive mode](/docs/zh-TW/headless) 中,`--agents` 也接受保存相同物件的 JSON 檔案的路徑,用於定義太大而無法在命令列上傳遞的情況。例如,`claude -p --agents ./agents.json "Review my changes"` 從該檔案讀取定義。在互動工作階段中,Claude Code 拒絕檔案路徑。檔案形式需要 Claude Code v2.1.281 或更高版本。

234 234 

235JSON 中的每個頂級鍵是代理的名稱。不要以 `-` 開頭的名稱。235JSON 中的每個頂級鍵是代理的名稱,其值是該代理的定義。不要以 `-` 開頭的名稱。定義採用這些欄位:

236 

237* **`prompt`**:代理的系統提示,等同於基於檔案的 subagents 中的 markdown 主體。`prompt` 可能為空。如果您選擇一個具有空 `prompt` 且沒有 `memory` 欄位的代理作為工作階段的代理(使用 `--agent`),工作階段的系統提示保持不變。空 `prompt` 需要 Claude Code v2.1.281 或更高版本。

238* **[Frontmatter 欄位](#supported-frontmatter-fields)**:`description`、`tools`、`disallowedTools`、`model`、`permissionMode`、`mcpServers`、`hooks`、`maxTurns`、`skills`、`initialPrompt`、`memory`、`effort`、`background`、`omitClaudeMd` 和 `isolation`。

239* **忽略的欄位**:`color` 和 `experimental` 在此不被接受,會被忽略而不是拒絕。

236 240 

237關於 Claude Code 對無法載入的值所做的操作,以及跳過該檢查的標誌和環境變數,請參閱 [`Invalid --agents configuration`](/docs/zh-TW/errors#invalid-agents-configuration)。241關於 Claude Code 對無法載入的值所做的操作,以及跳過該檢查的標誌和環境變數,請參閱 [`Invalid --agents configuration`](/docs/zh-TW/errors#invalid-agents-configuration)。

238 242 


299 Frontmatter 參考303 Frontmatter 參考

300</h3>304</h3>

301 305 

302使用 YAML [frontmatter](/docs/zh-TW/glossary#frontmatter) 在檔案頂部的 `---` 標記之間配置 subagent,並在結束 `---` 後將其系統提示寫為 Markdown。只有 `name` 和 `description` 是必需的。306配置 subagent 時,使用 YAML [frontmatter](/docs/zh-TW/glossary#frontmatter) 在檔案頂部的 `---` 標記之間,並在結束 `---` 後將其系統提示寫為 Markdown。只有 `name` 和 `description` 是必需的。

303 307 

304多字欄位名稱使用 camelCase,例如 `maxTurns` 和 `disallowedTools`,必須與表格完全相符:Claude Code 忽略它不識別的欄位而不報告錯誤。若要找出 subagent 檔案未載入的原因,請參閱 [Subagent files Claude Code skips](#subagent-files-claude-code-skips)。308多字欄位名稱使用 camelCase,例如 `maxTurns` 和 `disallowedTools`,必須與表格完全相符:Claude Code 忽略它不識別的欄位而不報告錯誤。若要找出 subagent 檔案未載入的原因,請參閱 [Subagent files Claude Code skips](#subagent-files-claude-code-skips)。

305 309 


587 權限模式591 權限模式

588</h4>592</h4>

589 593 

590設定 `permissionMode` 以選擇 subagent 執行的權限模式。使用模式的配置值,因此手動模式是 `default`。如果您不設定它,subagent 繼承主要對話的模式,該模式在 Pro、Max 和 Team 計畫上開始為 [auto mode](/docs/zh-TW/permission-modes#eliminate-prompts-with-auto-mode),除非您的設定或您的組織改變它。594設定 `permissionMode` 以選擇 subagent 執行的權限模式。使用模式的配置值,因此手動模式是 `default`。如果您不設定它,subagent 繼承主要對話的 [permission mode](/docs/zh-TW/permission-modes)。

591 595 

592主要對話的權限模式決定 Claude Code 是否使用您設定的值:596主要對話的權限模式決定 Claude Code 是否使用您設定的值:

593 597 


899claude --agent code-reviewer903claude --agent code-reviewer

900```904```

901 905 

902Subagent 的系統提示完全替換預設 Claude Code 系統提示,就像 [`--system-prompt`](/docs/zh-TW/cli-reference) 一樣。`CLAUDE.md` 檔案和專案記憶仍然透過正常訊息流載入,即使代理的定義設定 [`omitClaudeMd`](#supported-frontmatter-fields)。906除非代理的 [提示為空](#choose-the-subagent-scope),否則 subagent 的系統提示完全替換預設 Claude Code 系統提示,就像 [`--system-prompt`](/docs/zh-TW/cli-reference) 一樣。`CLAUDE.md` 檔案和專案記憶仍然透過正常訊息流載入,即使代理的定義設定 [`omitClaudeMd`](#supported-frontmatter-fields)。

903 907 

904代理名稱在啟動標題中顯示為 `@<name>`,以便您可以確認它是活動的。908代理名稱在啟動標題中顯示為 `@<name>`,以便您可以確認它是活動的。

905 909 


1036每個 subagent 獨立探索其領域,然後 Claude 綜合發現。當研究路徑彼此不相依時,這效果最好。1040每個 subagent 獨立探索其領域,然後 Claude 綜合發現。當研究路徑彼此不相依時,這效果最好。

1037 1041 

1038<Warning>1042<Warning>

1039 當 subagents 完成時,其結果返回到主要對話。執行許多 subagents,每個都返回詳細結果,可能會消耗大量上下文。1043 當 subagents 完成時,其結果返回到主要對話。執行許多 subagents,每個都返回詳細結果,可能會消耗大量上下文,每個 subagent 在執行時會花費自己的 tokens。

1040</Warning>1044</Warning>

1041 1045 

1042對於需要持續並行執行或不適合一個上下文視窗的工作,請在 [個別工作階段](/docs/zh-TW/agents) 中執行它,並讓 Claude [在它們之間傳遞發現](/docs/zh-TW/cross-session-messaging)。1046對於需要持續並行執行或不適合一個上下文視窗的工作,請在 [個別工作階段](/docs/zh-TW/agents) 中執行它,並讓 Claude [在它們之間傳遞發現](/docs/zh-TW/cross-session-messaging)。


1135* **CLAUDE.md 檔案**:主要對話載入的 [CLAUDE.md 層級](/docs/zh-TW/memory#how-claude-md-files-load) 的每個級別,包括 `~/.claude/CLAUDE.md`、專案規則、`CLAUDE.local.md`、受管理的政策檔案和任何 [`AGENTS.md` 檔案](/docs/zh-TW/memory#agents-md) 作為專案指令載入。內建的 Explore 和 Plan 代理跳過這個。subagent 的定義設定 [`omitClaudeMd`](#supported-frontmatter-fields) 時,只載入受管理的政策檔案,或當定義來自 [受管理設定](#choose-the-subagent-scope) 時完全不載入。1139* **CLAUDE.md 檔案**:主要對話載入的 [CLAUDE.md 層級](/docs/zh-TW/memory#how-claude-md-files-load) 的每個級別,包括 `~/.claude/CLAUDE.md`、專案規則、`CLAUDE.local.md`、受管理的政策檔案和任何 [`AGENTS.md` 檔案](/docs/zh-TW/memory#agents-md) 作為專案指令載入。內建的 Explore 和 Plan 代理跳過這個。subagent 的定義設定 [`omitClaudeMd`](#supported-frontmatter-fields) 時,只載入受管理的政策檔案,或當定義來自 [受管理設定](#choose-the-subagent-scope) 時完全不載入。

1136* **Git 狀態**:在 subagent 啟動時拍攝的快照。當工作目錄不是 Git 儲存庫或當 [`includeGitInstructions`](/docs/zh-TW/settings-reference#includegitinstructions) 為 `false` 時不存在。Explore 和 Plan 無論如何都跳過它。1140* **Git 狀態**:在 subagent 啟動時拍攝的快照。當工作目錄不是 Git 儲存庫或當 [`includeGitInstructions`](/docs/zh-TW/settings-reference#includegitinstructions) 為 `false` 時不存在。Explore 和 Plan 無論如何都跳過它。

1137* **預載入的技能**:代理的 [`skills` 欄位](#preload-skills-into-subagents) 中命名的任何技能的完整內容。內建代理不預載入技能。1141* **預載入的技能**:代理的 [`skills` 欄位](#preload-skills-into-subagents) 中命名的任何技能的完整內容。內建代理不預載入技能。

1138* **同級名單**:系統提醒,列出 `main` 和工作階段中的每個其他命名代理,每個都是 [`SendMessage`](#resume-subagents) 的有效 `to` 值。需要 Claude Code v2.1.206 或更新版本。名單僅在 subagent 的工具包括 `SendMessage` 且至少有一個其他代理有名稱時出現,無論 Claude 在產生時命名它還是它作為 [agent teams](/docs/zh-TW/agent-teams) 隊友執行。它是在 subagent 啟動時拍攝的快照,所以稍後命名的代理不會出現。1142* **同級名單**:[系統提醒](/docs/zh-TW/glossary#system-reminder),列出 `main` 和工作階段中的每個其他命名代理,每個都是 [`SendMessage`](#resume-subagents) 的有效 `to` 值。需要 Claude Code v2.1.206 或更新版本。名單僅在 subagent 的工具包括 `SendMessage` 且至少有一個其他代理有名稱時出現,無論 Claude 在產生時命名它還是它作為 [agent teams](/docs/zh-TW/agent-teams) 隊友執行。它是在 subagent 啟動時拍攝的快照,所以稍後命名的代理不會出現。

1139 1143 

1140若要啟動您自己的 subagents 而不使用使用者、專案和本地 CLAUDE.md 檔案,請在其 frontmatter 中設定 [`omitClaudeMd: true`](#supported-frontmatter-fields) 或 `--agents` JSON。1144若要啟動您自己的 subagents 而不使用使用者、專案和本地 CLAUDE.md 檔案,請在其 frontmatter 中設定 [`omitClaudeMd: true`](#supported-frontmatter-fields) 或 `--agents` JSON。

1141 1145 

Details

339 ```339 ```

340</CodeGroup>340</CodeGroup>

341 341 

342<h2 id="cap-response-width-in-wide-terminals">

343 在寬終端機中限制回應寬度

344</h2>

345 

346在寬終端機中,Claude 回應中的每一行文字會佔據視窗的完整寬度。若要改為在設定的欄數處換行,請在您的設定中設定 [`maxProseWidth`](/docs/zh-TW/settings-reference#maxprosewidth)。

347 

342<h2 id="paste-large-content">348<h2 id="paste-large-content">

343 貼上大型內容349 貼上大型內容

344</h2>350</h2>

Details

13若要新增自訂工具,請連接 [MCP 伺服器](/docs/zh-TW/mcp)。若要使用可重複使用的提示詞型工作流程擴展 Claude,請撰寫[技能](/docs/zh-TW/skills),它透過現有的 `Skill` 工具執行,而不是新增工具項目。13若要新增自訂工具,請連接 [MCP 伺服器](/docs/zh-TW/mcp)。若要使用可重複使用的提示詞型工作流程擴展 Claude,請撰寫[技能](/docs/zh-TW/skills),它透過現有的 `Skill` 工具執行,而不是新增工具項目。

14 14 

15<Info>15<Info>

16 在 Pro、Max 和 Team 方案上,Claude Code 在[自動模式](/docs/zh-TW/permission-modes#eliminate-prompts-with-auto-mode)中啟動工作階段,其中分類器決定大多數這些提示,而不是您。「需要權限」欄顯示工具是否在[手動模式](/docs/zh-TW/permission-modes)中針對工作目錄內的路徑提示。標記為「否」的檔案存取工具,包括 `Read`、`Grep` 和 `Glob`,仍會針對[工作目錄和其他目錄](/docs/zh-TW/permissions#working-directories)外的路徑提示。`Bash` 標記為「是」,但執行內建的[唯讀命令](/docs/zh-TW/permissions#read-only-commands)而不提示。16 在[自動模式](/docs/zh-TW/permission-modes#eliminate-prompts-with-auto-mode)中,分類器決定大多數權限提示,而不是您。「需要權限」欄顯示工具是否在[手動模式](/docs/zh-TW/permission-modes)中針對工作目錄內的路徑提示。標記為「否」的檔案存取工具,包括 `Read`、`Grep` 和 `Glob`,仍會針對[工作目錄和其他目錄](/docs/zh-TW/permissions#working-directories)外的路徑提示。`Bash` 標記為「是」,但執行內建的[唯讀命令](/docs/zh-TW/permissions#read-only-commands)而不提示。

17</Info>17</Info>

18 18 

19| 工具 | 說明 | 需要權限 |19| 工具 | 說明 | 需要權限 |


34| `Glob` | 根據模式匹配尋找檔案。預設情況下在 macOS、Linux 和 WSL 上不存在。請參閱 [Glob 工具行為](#glob-tool-behavior) | 否 |34| `Glob` | 根據模式匹配尋找檔案。預設情況下在 macOS、Linux 和 WSL 上不存在。請參閱 [Glob 工具行為](#glob-tool-behavior) | 否 |

35| `Grep` | 在檔案內容中搜尋模式。預設情況下在 macOS、Linux 和 WSL 上不存在。請參閱 [Grep 工具行為](#grep-tool-behavior) | 否 |35| `Grep` | 在檔案內容中搜尋模式。預設情況下在 macOS、Linux 和 WSL 上不存在。請參閱 [Grep 工具行為](#grep-tool-behavior) | 否 |

36| `ListAgents` | 列出 Claude 可以使用 `SendMessage` 傳訊的代理:工作階段中的子代理、[代理團隊](/docs/zh-TW/agent-teams)隊友、您的其他本機 Claude Code 工作階段,以及當此工作階段連接到[遠端控制](/docs/zh-TW/remote-control)時,您的[雲端工作階段](/docs/zh-TW/claude-code-on-the-web)和您在其他機器上的遠端控制工作階段。支援 `/list-agents` 命令。請參閱[跨工作階段傳訊](/docs/zh-TW/cross-session-messaging)。需要 Claude Code v2.1.224 或更新版本,且僅在[啟用跨工作階段傳訊](/docs/zh-TW/cross-session-messaging#availability)的工作階段中出現。隊友列和顯示此工作階段自己名稱的第一行需要 v2.1.239 或更新版本 | 否 |36| `ListAgents` | 列出 Claude 可以使用 `SendMessage` 傳訊的代理:工作階段中的子代理、[代理團隊](/docs/zh-TW/agent-teams)隊友、您的其他本機 Claude Code 工作階段,以及當此工作階段連接到[遠端控制](/docs/zh-TW/remote-control)時,您的[雲端工作階段](/docs/zh-TW/claude-code-on-the-web)和您在其他機器上的遠端控制工作階段。支援 `/list-agents` 命令。請參閱[跨工作階段傳訊](/docs/zh-TW/cross-session-messaging)。需要 Claude Code v2.1.224 或更新版本,且僅在[啟用跨工作階段傳訊](/docs/zh-TW/cross-session-messaging#availability)的工作階段中出現。隊友列和顯示此工作階段自己名稱的第一行需要 v2.1.239 或更新版本 | 否 |

37| `ListMcpResourcesTool` | 列出連接的 [MCP 伺服器](/docs/zh-TW/mcp)公開的資源 | 否 |37| `ListMcpResourcesTool` | 列出連接的 [MCP 伺服器](/docs/zh-TW/mcp)公開的資源,不包括 [MCP Apps UI 資源](/docs/zh-TW/mcp#reference-mcp-resources),這些是供主機應用程式呈現的頁面 | 否 |

38| `LSP` | 透過語言伺服器的程式碼智慧:跳到定義、尋找參考、報告型別錯誤和警告。請參閱 [LSP 工具行為](#lsp-tool-behavior) | 否 |38| `LSP` | 透過語言伺服器的程式碼智慧:跳到定義、尋找參考、報告型別錯誤和警告。請參閱 [LSP 工具行為](#lsp-tool-behavior) | 否 |

39| `Monitor` | 在背景執行命令並將每個輸出行回饋給 Claude,以便它可以對日誌項目、檔案變更或輪詢狀態做出反應。也可以開啟 WebSocket 並將每個傳入訊息視為事件。請參閱 [Monitor 工具](#monitor-tool) | 是 |39| `Monitor` | 在背景執行命令並將每個輸出行回饋給 Claude,以便它可以對日誌項目、檔案變更或輪詢狀態做出反應。也可以開啟 WebSocket 並將每個傳入訊息視為事件。請參閱 [Monitor 工具](#monitor-tool) | 是 |

40| `NotebookEdit` | 修改 Jupyter notebook 儲存格。請參閱 [NotebookEdit 工具行為](#notebookedit-tool-behavior) | 是 |40| `NotebookEdit` | 修改 Jupyter notebook 儲存格。請參閱 [NotebookEdit 工具行為](#notebookedit-tool-behavior) | 是 |

Details

42| `Error: claude native binary not installed` | [完成 npm 安裝](#native-binary-not-found-after-npm-install) |42| `Error: claude native binary not installed` | [完成 npm 安裝](#native-binary-not-found-after-npm-install) |

43| `npm error code ENOTEMPTY` 在更新或重新安裝期間 | [移除剩餘的套件目錄](#npm-enotempty-during-update-or-reinstall) |43| `npm error code ENOTEMPTY` 在更新或重新安裝期間 | [移除剩餘的套件目錄](#npm-enotempty-during-update-or-reinstall) |

44| 在 Windows 上,安裝命令列印指令碼文字且未安裝任何內容 | [執行完整的安裝命令](#wrong-install-command-on-windows) |44| 在 Windows 上,安裝命令列印指令碼文字且未安裝任何內容 | [執行完整的安裝命令](#wrong-install-command-on-windows) |

45| `'claude' is not recognized` 在 Windows 上更新後立即出現 | [從其備份還原 `claude.exe`](#claude-exe-missing-after-an-update-on-windows) |

45| `App unavailable in region` | Claude Code 在您的國家/地區不可用。請參閱[支援的國家/地區](https://www.anthropic.com/supported-countries)。 |46| `App unavailable in region` | Claude Code 在您的國家/地區不可用。請參閱[支援的國家/地區](https://www.anthropic.com/supported-countries)。 |

46| `unable to get local issuer certificate` | [設定公司 CA 憑證](#tls-or-ssl-connection-errors) |47| `unable to get local issuer certificate` | [設定公司 CA 憑證](#tls-or-ssl-connection-errors) |

47| `OAuth error` 或 `403 Forbidden` | [修復身份驗證](#login-and-authentication) |48| `OAuth error` 或 `403 Forbidden` | [修復身份驗證](#login-and-authentication) |

49| `Claude Code access has not been granted for this account` | [取得包含 Claude Code 的角色](#claude-code-access-has-not-been-granted-for-this-account) |

48| 設定期間 `Unable to connect to Anthropic services` | 請參閱錯誤參考中的 [Unable to connect to Anthropic services](/docs/zh-TW/errors#unable-to-connect-to-anthropic-services) |50| 設定期間 `Unable to connect to Anthropic services` | 請參閱錯誤參考中的 [Unable to connect to Anthropic services](/docs/zh-TW/errors#unable-to-connect-to-anthropic-services) |

49| `Could not load the default credentials` 或 `Could not load credentials from any providers` | [Amazon Bedrock、Google Cloud 的 Agent Platform 或 Microsoft Foundry 認證](#bedrock-agent-platform-or-foundry-credentials-not-loading) |51| `Could not load the default credentials` 或 `Could not load credentials from any providers` | [Amazon Bedrock、Google Cloud 的 Agent Platform 或 Microsoft Foundry 認證](#bedrock-agent-platform-or-foundry-credentials-not-loading) |

50| `ChainedTokenCredential authentication failed` 或 `CredentialUnavailableError` | [Amazon Bedrock、Google Cloud 的 Agent Platform 或 Microsoft Foundry 認證](#bedrock-agent-platform-or-foundry-credentials-not-loading) |52| `ChainedTokenCredential authentication failed` 或 `CredentialUnavailableError` | [Amazon Bedrock、Google Cloud 的 Agent Platform 或 Microsoft Foundry 認證](#bedrock-agent-platform-or-foundry-credentials-not-loading) |


78 curl.exe -sI https://downloads.claude.ai/claude-code-releases/latest80 curl.exe -sI https://downloads.claude.ai/claude-code-releases/latest

79 ```81 ```

80 82 

81 PowerShell 將 `curl` 別名為 `Invoke-WebRequest`,它會拒絕 `-sI` 旗標,所以明確呼叫 `curl.exe`。83 PowerShell 將 `curl` 別名設定為 `Invoke-WebRequest`,它會拒絕 `-sI` 旗標,所以要明確呼叫 `curl.exe`。

82 </Tab>84 </Tab>

83</Tabs>85</Tabs>

84 86 

85如果第一行顯示 `200` 狀態,表示您已連線到伺服器。在 macOS 和 Linux 上您會看到 `HTTP/2 200`,在 Windows 上從 `curl.exe` 會看到 `HTTP/1.1 200 OK`。其他結果指向原因:87如果第一行顯示 `200` 狀態,表示您已連線到伺服器。在 macOS 和 Linux 上您會看到 `HTTP/2 200`,而 Windows 隨附的 `curl.exe` 會顯示 `HTTP/1.1 200 OK`。其他結果指向原因:

86 88 

87* `403`:通常是代理或網路篩選器阻止主機,或 Claude Code [在您的地區不可用](https://www.anthropic.com/supported-countries)89* `403`:通常是代理伺服器或網路篩選器阻止該主機,或 Claude Code [在您的地區不可用](https://www.anthropic.com/supported-countries)

88* `5xx`:通常是暫時性服務問題;等待幾分鐘後重試90* `5xx`:通常是暫時性服務問題;等待幾分鐘後重試

89 91 

90如果您看不到任何輸出、`Could not resolve host` 或連線逾時,您的網路正在阻止連線。常見原因:92如果您看不到任何輸出、`Could not resolve host` 或連線逾時,您的網路正在阻止連線。常見原因:

91 93 

92* 公司防火牆或代理阻止 `downloads.claude.ai`94* 公司防火牆或代理伺服器阻止 `downloads.claude.ai`

93* 區域網路限制:嘗試 VPN 或替代網路95* 地區網路限制:嘗試使用 VPN 或替代網路

94* TLS/SSL 問題:更新您系統的 CA 憑證,或檢查是否設定了 `HTTPS_PROXY`96* TLS/SSL 問題:更新您系統的 CA 憑證,或檢查是否設定了 `HTTPS_PROXY`

95 97 

96如果您在公司代理後面,在安裝前設定 `HTTPS_PROXY` 和 `HTTP_PROXY` 為您的代理位址。如果您不知道代理 URL,請詢問您的 IT 團隊,或檢查您的瀏覽器代理設定。98如果您在公司代理伺服器後面,在安裝前設定 `HTTPS_PROXY` 和 `HTTP_PROXY` 為您代理伺服器的位址。如果您不知道代理伺服器 URL,請詢問您的 IT 團隊,或檢查您瀏覽器的代理伺服器設定。

97 99 

98此範例設定兩個代理變數,然後透過您的代理執行安裝程式:100此範例設定兩個代理變數,然後透過您的代理伺服器執行安裝程式:

99 101 

100<Tabs>102<Tabs>

101 <Tab title="macOS/Linux">103 <Tab title="macOS/Linux">


119 驗證您的 PATH121 驗證您的 PATH

120</h3>122</h3>

121 123 

122如果安裝成功但執行 `claude` 時收到 `command not found` 或 `not recognized` 錯誤,安裝目錄不在您的 PATH 中。您的 shell 在 PATH 中列出的目錄中搜尋程式,安裝程式在 macOS/Linux 上將 `claude` 放在 `~/.local/bin/claude`,或在 Windows 上放在 `%USERPROFILE%\.local\bin\claude.exe`。124如果安裝成功但執行 `claude` 時收到 `command not found` 或 `not recognized` 錯誤,安裝目錄不在您的 PATH 中。您的 shell 會在 PATH 中列出的目錄中搜尋程式,安裝程式在 macOS/Linux 上將 `claude` 放在 `~/.local/bin/claude`,或在 Windows 上放在 `%USERPROFILE%\.local\bin\claude.exe`。

123 125 

124<Note>126<Note>

125 [VS Code 擴充功能](/docs/zh-TW/vs-code)不會將 `claude` 放在此位置。它在擴充功能目錄內為其自己的聊天面板捆綁了一份私有的 CLI 副本,並且不會將其新增到 PATH。如果您只安裝了擴充功能,`~/.local/bin/claude` 將不存在。執行[獨立安裝](/docs/zh-TW/setup)以從終端使用 `claude`,然後繼續下面的步驟。127 [VS Code 擴充功能](/docs/zh-TW/vs-code)不會在此位置放置 `claude`。它在擴充功能目錄內為其自己的聊天面板捆綁了 CLI 的私人副本,並且不會將其新增到 PATH。如果您只安裝了擴充功能,`~/.local/bin/claude` 將不存在。執行[獨立安裝](/docs/zh-TW/setup)以從終端使用 `claude`,然後繼續下面的步驟。

126</Note>128</Note>

127 129 

128透過列出您的 PATH 項目並篩選 `local/bin` 來檢查安裝目錄是否在您的 PATH 中:130透過列出您的 PATH 項目並篩選 `local/bin` 來檢查安裝目錄是否在您的 PATH 中:


133 echo $PATH | tr ':' '\n' | grep -Fx "$HOME/.local/bin"135 echo $PATH | tr ':' '\n' | grep -Fx "$HOME/.local/bin"

134 ```136 ```

135 137 

136 如果這列印 `/Users/you/.local/bin` 或 `/home/you/.local/bin`,該目錄在您的 PATH 中,您可以跳到[檢查衝突的安裝](#check-for-conflicting-installations)。如果沒有輸出,請將其新增到您的 shell 設定。138 如果這列印出 `/Users/you/.local/bin` 或 `/home/you/.local/bin`,該目錄在您的 PATH 中,您可以跳到[檢查衝突的安裝](#check-for-conflicting-installations)。如果沒有輸出,將其新增到您的 shell 設定。

137 139 

138 對於 Zsh(macOS 上的預設值):140 對於 Zsh(macOS 上的預設值):

139 141 


142 source ~/.zshrc144 source ~/.zshrc

143 ```145 ```

144 146 

145 對於 Bash(大多數 Linux 發行版上的預設值):147 對於 Linux 上的 Bash(在大多數發行版上是預設值):

146 148 

147 ```bash theme={null}149 ```bash theme={null}

148 echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc150 echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc

149 source ~/.bashrc151 source ~/.bashrc

150 ```152 ```

151 153 

154 對於 macOS 上的 Bash,改為將該行新增到 `~/.bash_profile`。macOS 上的終端以登入 shell 的形式啟動 Bash,它會忽略 `~/.bashrc` 並只讀取存在的 `~/.bash_profile`、`~/.bash_login` 或 `~/.profile` 中的第一個。如果您已經有 `~/.bash_login` 或 `~/.profile` 且沒有 `~/.bash_profile`,請將該行放在該檔案中,而不是建立 `~/.bash_profile`:

155 

156 ```bash theme={null}

157 echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bash_profile

158 source ~/.bash_profile

159 ```

160 

152 或者,關閉並重新開啟您的終端。161 或者,關閉並重新開啟您的終端。

153 162 

154 對於其他 shell(例如 fish 或 Nushell),使用您的 shell 自己的設定語法將 `~/.local/bin` 新增到您的 PATH,然後重新啟動您的終端。163 對於其他 shell(例如 fish 或 Nushell),使用您的 shell 自己的設定語法將 `~/.local/bin` 新增到您的 PATH,然後重新啟動您的終端。


165 $env:PATH -split ';' | Select-String '\.local\\bin'174 $env:PATH -split ';' | Select-String '\.local\\bin'

166 ```175 ```

167 176 

168 如果沒有輸出,請將安裝目錄新增到您的使用者 PATH:177 如果沒有輸出,將安裝目錄新增到您的使用者 PATH:

169 178 

170 ```powershell theme={null}179 ```powershell theme={null}

171 $currentPath = [Environment]::GetEnvironmentVariable('PATH', 'User')180 $currentPath = [Environment]::GetEnvironmentVariable('PATH', 'User')


186 echo %PATH% | findstr /i "local\bin"195 echo %PATH% | findstr /i "local\bin"

187 ```196 ```

188 197 

189 如果沒有輸出,請開啟系統設定,前往環境變數,並將 `%USERPROFILE%\.local\bin` 新增到您的使用者 PATH 變數。重新啟動您的終端。198 如果沒有輸出,開啟系統設定,前往環境變數,並將 `%USERPROFILE%\.local\bin` 新增到您的使用者 PATH 變數。重新啟動您的終端。

190 199 

191 驗證修復是否有效:200 驗證修復是否有效:

192 201 


200 檢查衝突的安裝209 檢查衝突的安裝

201</h3>210</h3>

202 211 

203多個 Claude Code 安裝可能導致版本不相符或意外行為。檢查已安裝的內容:212多個 Claude Code 安裝可能會導致版本不匹配或非預期的行為。檢查已安裝的內容:

204 213 

205<Tabs>214<Tabs>

206 <Tab title="macOS/Linux">215 <Tab title="macOS/Linux">


210 which -a claude219 which -a claude

211 ```220 ```

212 221 

213 如果這列印任何內容,沒有 `claude` 在您的 PATH 上。回到[驗證您的 PATH](#verify-your-path)。222 如果這不列印任何內容,您的 PATH 上還沒有 `claude`。回到[驗證您的 PATH](#verify-your-path)。

214 223 

215 檢查 `claude` 二進位檔可能來自的三個位置。`~/.local/bin/claude` 是原生安裝程式,`~/.claude/local/` 是由舊版 Claude Code 建立的舊版本地 npm 安裝,npm 全域清單顯示 `-g` 安裝:224 檢查 `claude` 二進位檔可能來自的三個位置。`~/.local/bin/claude` 是原生安裝程式,`~/.claude/local/` 是由舊版 Claude Code 建立的舊版本地 npm 安裝,npm 全域清單顯示 `-g` 安裝:

216 225 


218 ls -la ~/.local/bin/claude227 ls -la ~/.local/bin/claude

219 ```228 ```

220 229 

221 原生安裝會顯示一個指向 `~/.local/share/claude/versions/` 的符號連結。您在此路徑建立的指令碼或符號連結是自訂啟動程式,[自動更新會保留在原位](/docs/zh-TW/setup#auto-updates)。230 原生安裝顯示進入 `~/.local/share/claude/versions/` 的符號連結。您在此路徑自己建立的指令碼或符號連結是自訂啟動程式,[自動更新會將其保留在原位](/docs/zh-TW/setup#auto-updates)。

222 231 

223 如果任一 `ls` 命令列印 `No such file or directory`,那不是錯誤。這表示該位置沒有安裝任何內容,所以繼續進行下一個檢查。232 如果任一 `ls` 命令列印 `No such file or directory`,這不是錯誤。這表示該位置沒有安裝任何內容,所以繼續進行下一個檢查。

224 233 

225 ```bash theme={null}234 ```bash theme={null}

226 ls -la ~/.claude/local/235 ls -la ~/.claude/local/


246 </Tab>255 </Tab>

247</Tabs>256</Tabs>

248 257 

249如果您找到多個安裝,只保留一個。macOS/Linux 上 `~/.local/bin/claude` 或 Windows 上 `%USERPROFILE%\.local\bin\claude.exe` 的原生安裝是推薦的。移除額外的:258如果您找到多個安裝,只保留一個。在 macOS/Linux 上的 `~/.local/bin/claude` 或 Windows 上的 `%USERPROFILE%\.local\bin\claude.exe` 的原生安裝是建議的。移除額外的:

250 259 

251解除安裝 npm 全域安裝:260解除安裝 npm 全域安裝:

252 261 


270 </Tab>279 </Tab>

271</Tabs>280</Tabs>

272 281 

273在 macOS 上移除 Homebrew 安裝。如果您安裝了 `claude-code@latest` cask,請替換該名稱:282在 macOS 上移除 Homebrew 安裝。如果您安裝了 `claude-code@latest` cask,替換該名稱:

274 283 

275```bash theme={null}284```bash theme={null}

276brew uninstall --cask claude-code285brew uninstall --cask claude-code


286 檢查目錄權限295 檢查目錄權限

287</h3>296</h3>

288 297 

289安裝程式需要對 macOS 和 Linux 上的 `~/.local/bin/` 和 `~/.claude/` 有寫入存取權限。在 Windows 上,安裝位置在 `%USERPROFILE%` 下,預設情況下您的使用者可寫入,因此此部分很少適用於 Windows。298安裝程式需要對 macOS 和 Linux 上的 `~/.local/bin/` 和 `~/.claude/` 的寫入存取權。在 Windows 上,安裝位置在 `%USERPROFILE%` 下,預設情況下您的使用者可以寫入,所以此部分在那裡很少適用。

290 299 

291檢查目錄是否可寫入:300檢查目錄是否可寫入:

292 301 


295test -w ~/.claude && echo "writable" || echo "not writable"304test -w ~/.claude && echo "writable" || echo "not writable"

296```305```

297 306 

298如果任一目錄不可寫入,請建立安裝目錄並將您的使用者設定為擁有者:307如果任一目錄不可寫入,建立安裝目錄並將您的使用者設定為擁有者:

299 308 

300```bash theme={null}309```bash theme={null}

301sudo mkdir -p ~/.local/bin310sudo mkdir -p ~/.local/bin


306 驗證二進位檔是否有效315 驗證二進位檔是否有效

307</h3>316</h3>

308 317 

309如果 `claude --version` 列印版本但 `claude` 在啟動時崩潰或掛起,請執行這些檢查以縮小原因範圍。如果 `claude --version` 說 command not found,請先前往[驗證您的 PATH](#verify-your-path);下面的命令假設 `claude` 在您的 PATH 上。318如果 `claude --version` 列印版本但 `claude` 在啟動時當機或掛起,執行這些檢查以縮小原因範圍。如果 `claude --version` 說命令未找到,先前往[驗證您的 PATH](#verify-your-path);下面的命令假設 `claude` 在您的 PATH 上。

310 319 

311確認二進位檔存在且可執行:320確認二進位檔存在且可執行:

312 321 


324 </Tab>333 </Tab>

325</Tabs>334</Tabs>

326 335 

327在 Linux 上,檢查遺失的共用程式庫。如果 `ldd` 顯示遺失的程式庫,您可能需要安裝系統套件。在 Alpine Linux 和其他基於 musl 的發行版上,請參閱 [Alpine Linux 設定](/docs/zh-TW/setup#alpine-linux-and-musl-based-distributions)。336在 Linux 上,檢查遺失的共用程式庫。如果 `ldd` 顯示遺失的程式庫,您可能需要安裝系統套件。在 Alpine Linux 和其他 musl 型發行版上,請參閱 [Alpine Linux 設定](/docs/zh-TW/setup#alpine-linux-and-musl-based-distributions)。

328 337 

329```bash theme={null}338```bash theme={null}

330ldd "$(command -v claude)" | grep "not found"339ldd "$(command -v claude)" | grep "not found"


430brew install --cask claude-code439brew install --cask claude-code

431```440```

432 441 

433如果 Homebrew 安裝的 Claude Code 版本比您預期的舊,通常是相同的過時索引導致的。`claude-code` cask 追蹤穩定通道,通常比最新版本晚約一週;若要取得最新版本,請改為執行 `brew install --cask claude-code@latest`。請參閱[設定發行通道](/docs/zh-TW/setup#configure-release-channel)以了解兩個 cask 之間的差異。442如果 Homebrew 安裝的 Claude Code 版本比您預期的舊,通常是相同的過時索引導致的。`claude-code` cask 追蹤穩定通道,通常比最新版本晚約一週;若要取得最新版本,請改為執行 `brew install --cask claude-code@latest`。請參閱[設定發行通道](/docs/zh-TW/setup#configure-release-channel) 以了解兩個 cask 之間的差異。

434 443 

435<h3 id="tls-or-ssl-connection-errors">444<h3 id="tls-or-ssl-connection-errors">

436 TLS 或 SSL 連線錯誤445 TLS 或 SSL 連線錯誤


593irm https://claude.ai/install.ps1 | iex602irm https://claude.ai/install.ps1 | iex

594```603```

595 604 

605<h3 id="claude-exe-missing-after-an-update-on-windows">

606 Windows 上更新後 `claude.exe` 遺失

607</h3>

608 

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`。

610 

611備份是同一目錄中的檔案,其名稱以 `claude.exe.old.` 開頭,後跟數字時間戳。在 PowerShell 中執行以下命令,將最新的備份重新命名回 `claude.exe`:

612 

613```powershell theme={null}

614Get-ChildItem "$env:USERPROFILE\.local\bin\claude.exe.old.*" | Sort-Object Name | Select-Object -Last 1 | Rename-Item -NewName claude.exe

615```

616 

617然後執行 `claude --version` 以確認修復。已還原的 `claude.exe` 列印版本號。

618 

619如果沒有 `claude.exe.old.*` 檔案,或 `claude` 在重新命名後仍然失敗,改為重新安裝:

620 

621```powershell theme={null}

622irm https://claude.ai/install.ps1 | iex

623```

624 

625在 v2.1.281 之前,Claude Code 可能在 `claude.exe` 仍然遺失時刪除備份。

626 

596<h3 id="install-killed-on-low-memory-linux-servers">627<h3 id="install-killed-on-low-memory-linux-servers">

597 低記憶體 Linux 伺服器上安裝被終止628 低記憶體 Linux 伺服器上安裝被終止

598</h3>629</h3>


992* **Anthropic Console 使用者**:確認您的帳戶具有「Claude Code」或「Developer」角色。管理員在 Anthropic Console 的「設定」→「成員」中指派此角色。1023* **Anthropic Console 使用者**:確認您的帳戶具有「Claude Code」或「Developer」角色。管理員在 Anthropic Console 的「設定」→「成員」中指派此角色。

993* **在代理後面**:公司代理可能干擾 API 請求。請參閱[網路設定](/docs/zh-TW/network-config)以取得代理設定。1024* **在代理後面**:公司代理可能干擾 API 請求。請參閱[網路設定](/docs/zh-TW/network-config)以取得代理設定。

994 1025 

1026<h3 id="claude-code-access-has-not-been-granted-for-this-account">

1027 Claude Code 存取權未授予此帳戶

1028</h3>

1029 

1030如果登入頁面在您從 Claude Code 登入後顯示 `Authorization failed`,並顯示訊息 `Claude Code access has not been granted for this account. Contact your administrator.`,您的 Claude Enterprise 組織已將您的角色設定為「自訂」,且指派給您的群組的任何[自訂角色](https://support.claude.com/en/articles/13930452)都未授予 Claude Code。在「自訂」角色上,您只能從這些自訂角色取得存取權,因此您在 Claude Code 中進行的任何變更都無法解決此錯誤。

1031 

1032要取得存取權:

1033 

10341. 要求您的 Claude 組織的擁有者將授予 Claude Code 存取權的自訂角色指派給您的其中一個群組,或將您的角色從「自訂」變更為標準角色(例如「使用者」)。擁有者在組織的[角色設定](https://claude.ai/admin-settings/roles)中管理角色。

10352. 擁有者進行變更後,執行 `claude` 並再次登入。

1036 

995<h3 id="this-organization-has-been-disabled-with-an-active-subscription">1037<h3 id="this-organization-has-been-disabled-with-an-active-subscription">

996 此組織已停用,但有有效的訂閱1038 此組織已停用,但有有效的訂閱

997</h3>1039</h3>

Details

17| 工作階段以自動模式啟動,或 Claude 編輯檔案並執行命令而不詢問 | [工作階段啟動的模式](/docs/zh-TW/permission-modes#which-mode-a-session-starts-in) |17| 工作階段以自動模式啟動,或 Claude 編輯檔案並執行命令而不詢問 | [工作階段啟動的模式](/docs/zh-TW/permission-modes#which-mode-a-session-starts-in) |

18| `API Error: 5xx`、`529 Overloaded`、`429`、請求驗證錯誤 | [錯誤參考](/docs/zh-TW/errors) |18| `API Error: 5xx`、`529 Overloaded`、`429`、請求驗證錯誤 | [錯誤參考](/docs/zh-TW/errors) |

19| `model not found` 或 `you may not have access to it` | [錯誤參考](/docs/zh-TW/errors#theres-an-issue-with-the-selected-model) |19| `model not found` 或 `you may not have access to it` | [錯誤參考](/docs/zh-TW/errors#theres-an-issue-with-the-selected-model) |

20| Claude 執行的命令失敗,出現 `Your disk quota is full`、`is full (ENOSPC)` 或 `Command output was lost` | [錯誤參考](/docs/zh-TW/errors#disk-quota-or-temp-filesystem-is-full) |

20| VS Code 擴充功能未連接或未偵測到 Claude | [VS Code 整合](/docs/zh-TW/vs-code#fix-common-issues) |21| VS Code 擴充功能未連接或未偵測到 Claude | [VS Code 整合](/docs/zh-TW/vs-code#fix-common-issues) |

21| VS Code 或 SDK 應用程式中出現 `Claude Code process exited with code 1` | [錯誤參考](/docs/zh-TW/errors#claude-code-process-exited-with-code-n) |22| VS Code 或 SDK 應用程式中出現 `Claude Code process exited with code 1` | [錯誤參考](/docs/zh-TW/errors#claude-code-process-exited-with-code-n) |

22| JetBrains 外掛程式或 IDE 未偵測到 | [JetBrains 整合](/docs/zh-TW/jetbrains#troubleshooting) |23| JetBrains 外掛程式或 IDE 未偵測到 | [JetBrains 整合](/docs/zh-TW/jetbrains#troubleshooting) |


24 25 

25如果您不確定哪個適用,請在 Claude Code 內執行 `/doctor` 以自動檢查您的安裝、設定、擴充功能和上下文使用情況;它會提議可以在您確認後套用的修復。如果 `claude` 根本無法啟動,請改為從您的 shell 執行 `claude doctor`。執行 `/mcp` 以檢查 MCP 伺服器狀態。26如果您不確定哪個適用,請在 Claude Code 內執行 `/doctor` 以自動檢查您的安裝、設定、擴充功能和上下文使用情況;它會提議可以在您確認後套用的修復。如果 `claude` 根本無法啟動,請改為從您的 shell 執行 `claude doctor`。執行 `/mcp` 以檢查 MCP 伺服器狀態。

26 27 

27***

28 

29title: "效能和穩定性"

30description: "涵蓋與資源使用、回應性和搜尋行為相關的問題。"

31 

32<h2 id="performance-and-stability">28<h2 id="performance-and-stability">

33 效能和穩定性29 效能和穩定性

34</h2>30</h2>

Details

30 啟用語音聽寫30 啟用語音聽寫

31</h2>31</h2>

32 32 

33執行 `/voice` 以啟用聽寫。第一次啟用時,Claude Code 會執行麥克風檢查。在 macOS 上,如果您的終端機從未被授予權限,這會觸發系統麥克風權限提示。33執行 `/voice` 以啟用聽寫。啟用時,Claude Code 會執行麥克風檢查。在 macOS 上,如果您的終端機從未被授予權限,這會觸發系統麥克風權限提示。

34 34 

35```35```

36/voice36/voice


190* **`Voice mode requires SoX for audio recording` on Linux**:原生音頻模組無法載入,且未安裝回退。使用錯誤訊息中顯示的命令安裝 SoX,例如 `sudo apt-get install sox`。190* **`Voice mode requires SoX for audio recording` on Linux**:原生音頻模組無法載入,且未安裝回退。使用錯誤訊息中顯示的命令安裝 SoX,例如 `sudo apt-get install sox`。

191* **`Voice mode requires a microphone, but SoX could not open an audio capture device`**:SoX 已安裝,但主機沒有音頻擷取裝置,例如無頭伺服器或容器。在具有麥克風的機器上執行 Claude Code。自 v2.1.195 起,Linux 上的 Claude Code 在該情況下報告此訊息;較早的版本即使已安裝 SoX 也會要求您安裝它。191* **`Voice mode requires a microphone, but SoX could not open an audio capture device`**:SoX 已安裝,但主機沒有音頻擷取裝置,例如無頭伺服器或容器。在具有麥克風的機器上執行 Claude Code。自 v2.1.195 起,Linux 上的 Claude Code 在該情況下報告此訊息;較早的版本即使已安裝 SoX 也會要求您安裝它。

192* **`Voice mode could not find a working audio recorder in WSL`**:WSLg 透過 PulseAudio 而非 ALSA 裝置路由音頻,因此 SoX 需要明確安裝其 PulseAudio 後端。執行 `sudo apt install sox libsox-fmt-pulse`。單獨安裝 `sox` 會拉入 ALSA 後端,這在 WSL 上無法錄製,因為沒有 `/dev/snd` 裝置。192* **`Voice mode could not find a working audio recorder in WSL`**:WSLg 透過 PulseAudio 而非 ALSA 裝置路由音頻,因此 SoX 需要明確安裝其 PulseAudio 後端。執行 `sudo apt install sox libsox-fmt-pulse`。單獨安裝 `sox` 會拉入 ALSA 後端,這在 WSL 上無法錄製,因為沒有 `/dev/snd` 裝置。

193* **`Voice input is failing repeatedly and has been paused`**:語音聽寫在 10 秒內連續遇到三個擷取失敗。Claude Code 暫停聽寫,直到自這些失敗中的第一個以來已經過了 10 秒。無論麥克風無法啟動或錄音機啟動後停止而未產生任何音頻,失敗都會計數。這通常表示此主機上的麥克風或音頻堆疊無法捕獲音頻,例如無頭伺服器、沒有音頻傳遞的遠端 shell 或被拒絕的麥克風權限。確認工作輸入裝置,修復上述項目中的根本原因,然後再次觸發語音。在 v2.1.202 之前,只有啟動失敗計入暫停。193* **`Voice input is failing repeatedly and has been paused`**:語音聽寫在 10 秒內連續遇到三個擷取失敗。Claude Code 暫停聽寫,直到自這些失敗中的第一個以來已經過了 10 秒。這通常表示此主機上的麥克風或音頻堆疊無法捕獲音頻,例如無頭伺服器、沒有音頻傳遞的遠端 shell 或被拒絕的麥克風權限。確認工作輸入裝置,修復上述項目中的根本原因,然後再次觸發語音。在 v2.1.202 之前,只有啟動失敗計入暫停。

194* **在按住模式中按住 `Space` 時沒有任何反應**:在按住時監視提示輸入。如果空格不斷累積,語音聽寫可能已關閉;執行 `/voice hold` 啟用它。如果只出現一個或兩個空格然後沒有任何反應,語音聽寫已開啟但按住偵測未觸發。按住偵測需要您的終端機發送按鍵重複事件,因此如果在作業系統層級停用了按鍵重複,它無法偵測按住的鍵。使用 `/voice tap` 切換到點擊模式以避免按鍵重複要求。194* **在按住模式中按住 `Space` 時沒有任何反應**:在按住時監視提示輸入。如果空格不斷累積,語音聽寫可能已關閉;執行 `/voice hold` 啟用它。如果只出現一個或兩個空格然後沒有任何反應,語音聽寫已開啟但按住偵測未觸發。按住偵測需要您的終端機發送按鍵重複事件,因此如果在作業系統層級停用了按鍵重複,它無法偵測按住的鍵。使用 `/voice tap` 切換到點擊模式以避免按鍵重複要求。

195* **在點擊模式中點擊 `Space` 輸入空格而不是錄製**:第一次點擊只在提示輸入為空時開始錄製。先清除輸入,或通過執行 `/voice tap` 檢查您是否處於點擊模式。195* **在點擊模式中點擊 `Space` 輸入空格而不是錄製**:第一次點擊只在提示輸入為空時開始錄製。先清除輸入,或通過執行 `/voice tap` 檢查您是否處於點擊模式。

196* **`No audio detected from microphone`**:錄製已開始但捕獲了無聲。確認正確的輸入裝置設定為系統預設值,其輸入級別未靜音或接近零。在 Windows 上,開啟設定 → 系統 → 聲音 → 輸入並選擇您的麥克風。在 macOS 上,開啟系統設定 → 聲音 → 輸入。196* **`No audio detected from microphone`**:錄製已開始但捕獲了無聲。確認正確的輸入裝置設定為系統預設值,其輸入級別未靜音或接近零。在 Windows 上,開啟設定 → 系統 → 聲音 → 輸入並選擇您的麥克風。在 macOS 上,開啟系統設定 → 聲音 → 輸入。

vs-code.md +35 −10

Details

109 109 

110提示框支援多項功能:110提示框支援多項功能:

111 111 

112* **權限模式**:點擊提示框底部的模式指示器以切換權限模式。在 Pro、Max 和 Team 方案上,Auto 是內建的起始權限模式。請參閱[擴充功能如何選擇起始權限模式](/docs/zh-TW/permission-modes#switch-permission-modes)以了解會改變該模式的因素,以及指示器提供的每個權限模式。112* **權限模式**:點擊提示框底部的模式指示器以切換權限模式。在 Claude Code v2.1.283 或更新版本中,Auto 是內建的起始權限模式,在較早版本中僅在 Pro、Max 和 Team 方案上提供。請參閱[擴充功能如何選擇起始權限模式](/docs/zh-TW/permission-modes#switch-permission-modes)以了解會改變該模式的因素,以及指示器提供的每個權限模式。

113 * **Auto**:分類器會檢查大多數操作,而不是詢問您。請參閱 [auto 模式](/docs/zh-TW/permission-modes#eliminate-prompts-with-auto-mode)以了解它檢查和阻止的內容。113 * **Auto**:分類器會檢查大多數操作,而不是詢問您。請參閱 [auto 模式](/docs/zh-TW/permission-modes#eliminate-prompts-with-auto-mode)以了解它檢查和阻止的內容。

114 * **Manual**:Claude 在檔案編輯和大多數 shell 命令前詢問權限。114 * **Manual**:Claude 在檔案編輯和大多數 shell 命令前詢問權限。

115 * **Plan**:Claude 描述它將執行的操作,並在進行變更前等待批准。VS Code 會自動將計畫作為完整 Markdown 文件開啟,您可以在其中新增內嵌註解以在 Claude 開始前提供回饋。115 * **Plan**:Claude 描述它將執行的操作,並在進行變更前等待批准。VS Code 會自動將計畫作為完整 Markdown 文件開啟,您可以在其中新增內嵌註解以在 Claude 開始前提供回饋。


123* **Model**:從命令菜單中選擇 **Switch model…** 以在會話中途變更模型。您也可以點擊提示框底部的模型名稱以開啟相同的選擇器。123* **Model**:從命令菜單中選擇 **Switch model…** 以在會話中途變更模型。您也可以點擊提示框底部的模型名稱以開啟相同的選擇器。

124 124 

125 當目前的模型支援[努力等級](/docs/zh-TW/model-config#adjust-effort-level)時,選擇器也會顯示 **Effort** 列和模型名稱按鈕會顯示選定的等級。當您選擇 `max` 以外的等級時,Claude Code 會在您的使用者設定中的 [`modelSettings`](/docs/zh-TW/settings-reference#modelsettings) 下將其儲存為目前模型的預設值;`max` 僅適用於目前會話。模型名稱按鈕和 **Effort** 列需要 Claude Code v2.1.257 或更新版本。125 當目前的模型支援[努力等級](/docs/zh-TW/model-config#adjust-effort-level)時,選擇器也會顯示 **Effort** 列和模型名稱按鈕會顯示選定的等級。當您選擇 `max` 以外的等級時,Claude Code 會在您的使用者設定中的 [`modelSettings`](/docs/zh-TW/settings-reference#modelsettings) 下將其儲存為目前模型的預設值;`max` 僅適用於目前會話。模型名稱按鈕和 **Effort** 列需要 Claude Code v2.1.257 或更新版本。

126 

127 當[動態工作流程](/docs/zh-TW/workflows)已啟用且目前的模型支援時,**Effort** 列下會出現 **Ultracode** 開關。開啟它以讓 Claude 在此會話中為每個實質性工作規劃[工作流程](/docs/zh-TW/workflows#let-claude-decide-with-ultracode),在選定的努力等級。當它開啟時,模型名稱按鈕會在等級後顯示 `· Ultracode`。此開關需要 Claude Code v2.1.284 或更新版本。

126* **Command menu**:點擊 `/` 或輸入 `/` 以開啟命令菜單。選項包括附加檔案、切換模型和切換延伸思考。128* **Command menu**:點擊 `/` 或輸入 `/` 以開啟命令菜單。選項包括附加檔案、切換模型和切換延伸思考。

127 129 

128 Customize 部分提供對 MCP 伺服器、slash commands、輸出樣式、hooks、記憶、指示和外掛程式的存取。帶有終端機圖示的項目會在整合終端機中開啟。130 Customize 部分提供對 MCP 伺服器、slash commands、輸出樣式、hooks、記憶、指示和外掛程式的存取。帶有終端機圖示的項目會在整合終端機中開啟。


150 152 

151 Claude 最新的待辦事項清單保持可見,待處理問題中 Claude 詢問的文字也保持可見;這需要 Claude Code v2.1.225 或更新版本。當 Claude 執行 [subagents](/docs/zh-TW/sub-agents) 時,帶有其最新活動的即時進度列會出現在啟動它們的工具呼叫群組下。這需要 Claude Code v2.1.269 或更新版本。153 Claude 最新的待辦事項清單保持可見,待處理問題中 Claude 詢問的文字也保持可見;這需要 Claude Code v2.1.225 或更新版本。當 Claude 執行 [subagents](/docs/zh-TW/sub-agents) 時,帶有其最新活動的即時進度列會出現在啟動它們的工具呼叫群組下。這需要 Claude Code v2.1.269 或更新版本。

152 * 若要登出您的 Anthropic 帳戶,請在 Settings 部分中選擇 **Sign out**,或輸入 `/logout`。在[第三方提供者](#use-third-party-providers)上,菜單不提供任一選項。需要 Claude Code v2.1.277 或更新版本。154 * 若要登出您的 Anthropic 帳戶,請在 Settings 部分中選擇 **Sign out**,或輸入 `/logout`。在[第三方提供者](#use-third-party-providers)上,菜單不提供任一選項。需要 Claude Code v2.1.277 或更新版本。

153 * 若要報告錯誤,請點擊菜單底部的 **Report a problem**,或輸入 `/bug` 或 `/feedback` 並附上可選的描述以預填報告。當您提交報告且您已在第一方連接上登入 Anthropic 時,Claude Code 會將其傳送給 Anthropic。在第三方提供者上,或沒有 Anthropic 認證時,對話方塊仍會開啟,但提交會顯示錯誤且不傳送任何內容:與 CLI 的 `/bug` 不同,擴充功能不會寫入本機存檔。需要 Claude Code v2.1.229 或更新版本。155 * 若要報告錯誤,請點擊菜單底部的 **Report a problem**,或輸入 `/bug` 或 `/feedback` 並附上可選的描述以預填報告。當您提交報告且您已在第一方連接上登入 Anthropic 時,Claude Code 會將其傳送給 Anthropic。需要 Claude Code v2.1.229 或更新版本。

156 

157 在第三方提供者上,或沒有 Anthropic 認證時,不會傳送任何內容。對話方塊會在您寫入前說明這一點。提交會將報告儲存為[本機存檔在 `~/.claude/feedback-bundles/`](/docs/zh-TW/data-usage#telemetry-services),已知的 API 金鑰和令牌模式會被編輯。將該檔案傳送給您的 Anthropic 帳戶代表或將其附加到支援請求。確認會命名該檔案並包括 **Show folder** 按鈕。在您的電腦上儲存報告需要 Claude Code v2.1.284 或更新版本。

154 158 

155 如果您的組織政策關閉產品回饋,**Report a problem** 不會出現在菜單中,而 `/bug` 和 `/feedback` 會顯示 `Feedback is turned off by your organization's policy or this environment's settings.` 通知,而不是開啟報告。159 如果您的組織政策關閉產品回饋,**Report a problem** 不會出現在菜單中,而 `/bug` 和 `/feedback` 會顯示 `Feedback is turned off by your organization's policy or this environment's settings.` 通知,而不是開啟報告。使用 Claude Code v2.1.284 或更新版本,如果您設定 `DISABLE_FEEDBACK_COMMAND` 或 `CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC` 環境變數,回饋也會關閉,開啟報告會顯示該通知。

156* **Side questions**:輸入 `/btw` 後跟一個問題以詢問有關您的會話的問題[而不新增到對話](/docs/zh-TW/interactive-mode#side-questions-with-%2Fbtw)。答案會在聊天旁的面板中開啟,您可以在其中提出後續問題。執行緒在視窗重新載入後仍然存在。Claude Code 保留最新的 20 個交換,並根據 [`cleanupPeriodDays`](/docs/zh-TW/settings-reference#cleanupperioddays) 排程過期儲存的執行緒,只要 Claude Code 可以[安全地確定保留期](/docs/zh-TW/claude-directory#cleaned-up-automatically)。若要清除執行緒,請點擊面板中的垃圾桶圖示。需要 Claude Code v2.1.227 或更新版本。160* **Side questions**:輸入 `/btw` 後跟一個問題以詢問有關您的會話的問題[而不新增到對話](/docs/zh-TW/interactive-mode#side-questions-with-%2Fbtw)。答案會在聊天旁的面板中開啟,您可以在其中提出後續問題。執行緒在視窗重新載入後仍然存在。Claude Code 保留最新的 20 個交換,並根據 [`cleanupPeriodDays`](/docs/zh-TW/settings-reference#cleanupperioddays) 排程過期儲存的執行緒,只要 Claude Code 可以[安全地確定保留期](/docs/zh-TW/claude-directory#cleaned-up-automatically)。若要清除執行緒,請點擊面板中的垃圾桶圖示。需要 Claude Code v2.1.227 或更新版本。

157* **Copy a response**:將滑鼠懸停在回應上並點擊 **Copy response** 以將其複製到您的剪貼簿,或輸入 `/copy` 以複製最新的回應。`/copy 2` 複製倒數第二個。需要 Claude Code v2.1.277 或更新版本。161* **Copy a response**:將滑鼠懸停在回應上並點擊 **Copy response** 以將其複製到您的剪貼簿,或輸入 `/copy` 以複製最新的回應。`/copy 2` 複製倒數第二個。需要 Claude Code v2.1.277 或更新版本。

158* **Context indicator**:提示框顯示您使用了多少 Claude 的內容視窗。Claude 會在需要時自動壓縮,或您可以手動執行 `/compact`。162* **Context indicator**:提示框顯示您使用了多少 Claude 的內容視窗。Claude 會在需要時自動壓縮,或您可以手動執行 `/compact`。


242 </Step>246 </Step>

243 247 

244 <Step title="選擇要恢復的會話">248 <Step title="選擇要恢復的會話">

245 瀏覽或搜尋您的雲端會話。點擊任何會話以下載它並在本機繼續對話。249 瀏覽或搜尋會話。點擊一個以繼續本機對話。

246 </Step>250 </Step>

247</Steps>251</Steps>

248 252 

249<Note>253<Note>

250 只有使用 GitHub 存放庫啟動的雲端會話才會出現在 Web 標籤中。恢復會在本機載入對話歷史;變更不會同步回 claude.ai。254 當您開啟的資料夾是 GitHub 存放庫時,Web 標籤只會顯示來自該存放庫的會話。

255 

256 當您恢復雲端會話時,擴充功能會下載對話歷史的副本;變更不會同步回 claude.ai。

251</Note>257</Note>

252 258 

259Web 標籤也會列出您的 [Remote Control](/docs/zh-TW/remote-control) 會話。如果您點擊在您開啟的資料夾中執行的會話,擴充功能會開啟該本機對話,而不是下載副本,並在已有一個顯示它的標籤時聚焦該標籤。如果擴充功能無法排除另一個 Claude 程序已開啟對話的可能性,您會改為取得下載的副本。

260 

261如果對話的任何部分無法下載,會出現錯誤且不會儲存副本。再次選擇會話以重試。如果您選擇還沒有對話可下載的會話,錯誤會告訴您在哪裡繼續它。

262 

253<h3 id="check-account-and-usage">263<h3 id="check-account-and-usage">

254 檢查帳戶和使用情況264 檢查帳戶和使用情況

255</h3>265</h3>


269 自訂您的工作流程279 自訂您的工作流程

270</h2>280</h2>

271 281 

272您可以重新定位 Claude 面板、執行多個對話、將工作階段清單組織成群組,或切換到終端機模式。282您可以重新定位 Claude 面板、執行多個對話、將工作階段清單組織成群組或篩選,或切換到終端機模式。

273 283 

274<h3 id="choose-where-claude-lives">284<h3 id="choose-where-claude-lives">

275 選擇 Claude 的位置285 選擇 Claude 的位置


319 329 

320擴充功能會按工作區資料夾儲存群組,因此它們在視窗重新載入後仍然存在,並在您開啟相同資料夾的每個視窗中出現。當您搜尋清單時,擴充功能會在所有群組中的一個平面清單中顯示符合項目。330擴充功能會按工作區資料夾儲存群組,因此它們在視窗重新載入後仍然存在,並在您開啟相同資料夾的每個視窗中出現。當您搜尋清單時,擴充功能會在所有群組中的一個平面清單中顯示符合項目。

321 331 

332<h3 id="filter-the-sessions-list">

333 篩選工作階段清單

334</h3>

335 

336若要縮小 Activity Bar 中的長工作階段清單,請使用清單頂部的兩個篩選控制項。需要 Claude Code v2.1.271 或更新版本。當任一篩選開啟時,已封存的工作階段不會出現。

337 

338* **Active**:開啟此切換以僅顯示需要您輸入、正在運作或未讀的工作階段,加上您最後聚焦的 Claude 標籤中的工作階段。

339* **按狀態篩選**:點擊漏斗圖示,然後勾選 **Needs input**、**Working** 或 **Completed** 以顯示任何這些狀態中的工作階段。勾選 **Open** 或 **Closed** 以按工作階段是否開啟進行縮小。當工作階段在此視窗中有標籤或在此機器上的另一個 Claude Code 程序中執行時(例如在終端機中),工作階段計為開啟。

340 

341當 **Active** 開啟且您勾選狀態、**Open** 或 **Closed** 時,清單也會顯示符合您檢查的每個工作階段。您設定的篩選會在視窗重新載入後保留。

342 

322<h3 id="switch-to-terminal-mode">343<h3 id="switch-to-terminal-mode">

323 切換到終端機模式344 切換到終端機模式

324</h3>345</h3>


506此擴充功能有兩種類型的設定:527此擴充功能有兩種類型的設定:

507 528 

508* **VS Code 中的擴充功能設定**:控制擴充功能在 VS Code 中的行為。使用 `Cmd+,`(Mac)或 `Ctrl+,`(Windows/Linux)開啟,然後前往 Extensions → Claude Code。您也可以輸入 `/` 並選擇 **General config…** 來開啟設定。529* **VS Code 中的擴充功能設定**:控制擴充功能在 VS Code 中的行為。使用 `Cmd+,`(Mac)或 `Ctrl+,`(Windows/Linux)開啟,然後前往 Extensions → Claude Code。您也可以輸入 `/` 並選擇 **General config…** 來開啟設定。

509* **`~/.claude/settings.json` 中的 Claude Code 設定**:在擴充功能和 CLI 之間共享。用於允許的命令、環境變數、hooks 和 MCP 伺服器。在 Pro、Max 和 Team 方案上,它也是權限模式對話開始時的一個輸入。[切換權限模式](/docs/zh-TW/permission-modes#switch-permission-modes)列出順序。詳見[設定](/docs/zh-TW/settings)。530* **`~/.claude/settings.json` 中的 Claude Code 設定**:在擴充功能和 CLI 之間共享。用於允許的命令、環境變數、hooks 和 MCP 伺服器。在 Claude Code v2.1.283 或更新版本中,它也是權限模式對話開始時的一個輸入,在較早版本中僅在 Pro、Max 和 Team 方案上。[切換權限模式](/docs/zh-TW/permission-modes#switch-permission-modes)列出順序。詳見[設定](/docs/zh-TW/settings)。

510 531 

511<Tip>532<Tip>

512 將 `"$schema": "https://json.schemastore.org/claude-code-settings.json"` 新增至您的 `settings.json`,以在 VS Code 中直接取得所有可用設定的自動完成和內嵌驗證。533 將 `"$schema": "https://json.schemastore.org/claude-code-settings.json"` 新增至您的 `settings.json`,以在 VS Code 中直接取得所有可用設定的自動完成和內嵌驗證。


718 739 

719伺服器名稱為 `ide`,並且從 `/mcp` 隱藏,因為沒有任何要設定的內容。不過,如果您的組織使用 `PreToolUse` hook 來允許列表 MCP 工具,您需要知道它的存在。740伺服器名稱為 `ide`,並且從 `/mcp` 隱藏,因為沒有任何要設定的內容。不過,如果您的組織使用 `PreToolUse` hook 來允許列表 MCP 工具,您需要知道它的存在。

720 741 

721**選擇和開啟檔案內容。** 連接時,CLI 會在您傳送的每個提示上包含您目前的編輯器選擇和活動檔案的路徑作為內容。當發生這種情況時,文字記錄會顯示 `⧉ Selected N lines from <file>` 行。若要排除敏感檔案(例如 `.env`),請為其路徑新增 [`Read` 拒絕規則](/docs/zh-TW/permissions#read-and-edit)。相符的拒絕規則會防止該檔案的選定文字和開啟檔案通知到達 Claude。742**選擇和開啟檔案內容。** 連接時,CLI 會在您傳送的每個提示上包含您目前的編輯器選擇和活動檔案的路徑作為內容。當發生這種情況時,文字記錄會顯示 `⧉ Selected N lines from <file>` 行。

743 

744如果您[在 Claude 工作時將訊息加入佇列](/docs/zh-TW/interactive-mode#queue-messages-while-claude-works),它會保留您按下 `Enter` 時的選擇,無論您之後選擇什麼。

745 

746若要排除敏感檔案(例如 `.env`),請為其路徑新增 [`Read` 拒絕規則](/docs/zh-TW/permissions#read-and-edit)。相符的拒絕規則會防止該檔案的選定文字和開啟檔案通知到達 Claude。

722 747 

723如果您關閉[附加開啟檔案設定](#extension-settings),CLI 只有在您在該檔案中選取文字時才會接收活動檔案的路徑。748如果您關閉[附加開啟檔案設定](#extension-settings),CLI 只有在您在該檔案中選取文字時才會接收活動檔案的路徑。

724 749 


728 753 

729| 工具名稱(如 hooks 所見) | 它的作用 | 唯讀 |754| 工具名稱(如 hooks 所見) | 它的作用 | 唯讀 |

730| - | - | - |755| - | - | - |

731| `mcp__ide__getDiagnostics` | 傳回語言伺服器診斷 — VS Code 的問題面板中的錯誤和警告。可選擇限定於一個檔案。 | 是 |756| `mcp__ide__getDiagnostics` | 傳回語言伺服器診斷:VS Code 的問題面板中的錯誤和警告。可選擇限定於一個檔案。 | 是 |

732| `mcp__ide__executeCode` | 在活動 Jupyter 筆記本的核心中執行 Python 程式碼。請參閱下面的確認流程。 | 否 |757| `mcp__ide__executeCode` | 在活動 Jupyter 筆記本的核心中執行 Python 程式碼。請參閱下面的確認流程。 | 否 |

733 758 

734**Jupyter 執行始終先詢問。** `mcp__ide__executeCode` 無法以無聲方式執行任何操作。在每次呼叫時,程式碼會作為新儲存格插入到活動筆記本的末尾,VS Code 會將其捲動到檢視中,原生快速選擇會要求您**執行**或**取消**。取消 — 或使用 `Esc` 關閉選擇器 — 會向 Claude 傳回錯誤,不會執行任何操作。當沒有活動筆記本、未安裝 Jupyter 擴充功能 (`ms-toolsai.jupyter`) 或核心不是 Python 時,該工具也會直接拒絕。759**Jupyter 執行始終先詢問。** `mcp__ide__executeCode` 無法以無聲方式執行任何操作。在每次呼叫時,程式碼會作為新儲存格插入到活動筆記本的末尾,VS Code 會將其捲動到檢視中,原生快速選擇會要求您**執行**或**取消**。取消,或使用 `Esc` 關閉選擇器,會向 Claude 傳回錯誤,不會執行任何操作。當沒有活動筆記本、未安裝 Jupyter 擴充功能 (`ms-toolsai.jupyter`) 或核心不是 Python 時,該工具也會直接拒絕。

735 760 

736<Note>761<Note>

737 快速選擇確認與 `PreToolUse` hooks 分開。`mcp__ide__executeCode` 的允許列表項目讓 Claude *提議*執行儲存格;VS Code 內的快速選擇是讓它*實際*執行的原因。762 快速選擇確認與 `PreToolUse` hooks 分開。`mcp__ide__executeCode` 的允許列表項目讓 Claude *提議*執行儲存格;VS Code 內的快速選擇是讓它*實際*執行的原因。

workflows.md +14 −6

Details

161 讓 Claude 使用 ultracode 決定161 讓 Claude 使用 ultracode 決定

162</h3>162</h3>

163 163 

164Ultracode 是一個 Claude Code 設定,它結合了 `xhigh` [推理努力](/docs/zh-TW/model-config#adjust-effort-level)與自動工作流程協調。啟用它後,Claude 會為每個實質性任務規劃一個工作流程,而不是等待您提出要求。164Ultracode 是一個 Claude Code 設定,它在工作階段中啟用自動工作流程協調,無論工作階段執行的[努力程度](/docs/zh-TW/model-config#adjust-effort-level)為何。啟用它後,Claude 會為每個實質性任務規劃一個工作流程,而不是等待您提出要求。在 Claude Code 提示中啟用它:

165 165 

166```text wrap theme={null}166```text wrap theme={null}

167/effort ultracode167/effort ultracode

168```168```

169 169 

170若要在已啟用 ultracode 的情況下啟動工作階段,請使用 `claude --effort ultracode` 啟動。需要 Claude Code v2.1.203 或更新版本。170若要在已啟用 ultracode 的情況下啟動工作階段,請使用 `claude --effort ultracode` 啟動,這也會將努力程度設定為 `xhigh`。需要 Claude Code v2.1.203 或更新版本。

171 171 

172若要在選擇模型時啟用它,請使用箭頭鍵將 `/model` 選擇器的努力滑塊移至 `ultracode`。[調整努力程度](/docs/zh-TW/model-config#adjust-effort-level)列出了啟用 ultracode 的路由。172若要從 `/effort` 滑塊啟用它,請按 `Tab` 翻轉 **Ultracode** 切換,然後按 `Enter` 套用。[調整努力程度](/docs/zh-TW/model-config#adjust-effort-level)列出了啟用 ultracode 的路由。

173 173 

174啟用 ultracode 後,Claude 會決定任務何時需要工作流程。單一要求可以轉變為連續的多個工作流程:一個用於理解程式碼,一個用於進行變更,一個用於驗證。這適用於工作階段中的每個任務,因此每個要求使用更多令牌並花費比較低努力程度更長的時間。174啟用 ultracode 後,Claude 會決定任務何時需要工作流程。單一要求可以轉變為連續的多個工作流程:一個用於理解程式碼,一個用於進行變更,一個用於驗證。這適用於工作階段中的每個任務,因此每個要求使用更多令牌並花費比沒有工作流程的相同要求更長的時間。在訂閱方案上,這些令牌會計入您的使用限制,因此啟用 ultracode 的工作階段會比在沒有啟用的情況下進行相同工作更快達到工作階段或每週限制。

175 175 

176`/effort ultracode` 持續整個目前工作階段;若要讓每個工作階段都以它開始,請設定 [`ultracode`](/docs/zh-TW/settings-reference#ultracode) 設定。當您返回例行工作時,使用 `/effort high` 降級。`/effort` 功能表僅在 [ultracode 可用時](/docs/zh-TW/model-config#when-ultracode-is-available)提供它。176啟用 ultracode 已經讓您選擇加入大型執行,因此在啟用時這些檢查不適用:

177 

178* [「大型工作流程」警告](#cost)不會出現在工作流程執行上

179* 工作階段的[並行子代理程式限制](/docs/zh-TW/sub-agents#concurrent-subagent-limit)不會對 Claude 使用代理程式工具產生的子代理程式強制執行

180* 在自動權限模式中,您不會被要求[批准第一個工作流程啟動](#approve-the-plan-before-it-runs)

181 

182`/effort ultracode` 持續整個目前工作階段;若要讓每個工作階段都以它開始,請設定 [`ultracode`](/docs/zh-TW/settings-reference#ultracode) 設定。當您返回例行工作時,使用 `/effort ultracode off` 關閉它。`/effort` 滑塊僅在 [ultracode 可用時](/docs/zh-TW/model-config#when-ultracode-is-available)提供切換。

177 183 

178<h3 id="approve-the-plan-before-it-runs">184<h3 id="approve-the-plan-before-it-runs">

179 在執行前批准計畫185 在執行前批准計畫


516 522 

517要為整個組織關閉工作流程,在[受管設定](/docs/zh-TW/server-managed-settings)中設定 `"disableWorkflows": true`,或使用 [Claude Code 管理員設定](https://claude.ai/admin-settings/claude-code)頁面上的切換。523要為整個組織關閉工作流程,在[受管設定](/docs/zh-TW/server-managed-settings)中設定 `"disableWorkflows": true`,或使用 [Claude Code 管理員設定](https://claude.ai/admin-settings/claude-code)頁面上的切換。

518 524 

519禁用工作流程時,捆綁的工作流程命令和 `/workflow-authoring` 技能不可用,`ultracode` 關鍵字不再觸發執行,`ultracode` 從 `/effort` 功能表中移除。525禁用工作流程時,捆綁的工作流程命令和 `/workflow-authoring` 技能不可用,`ultracode` 關鍵字不再觸發執行,**Ultracode** 切換從 `/effort` 中移除。已在進行中的執行會繼續進行。

526 

527關閉工作流程也會使 [ultracode](#let-claude-decide-with-ultracode) 不可用。沒有受管設定單獨排除 ultracode:無論它在何處[可用](/docs/zh-TW/model-config#when-ultracode-is-available),使用者都可以使用 `/effort ultracode` 將其開啟。[努力上限](/docs/zh-TW/model-config#organization-effort-limits)會降低啟用 ultracode 的工作階段執行的努力等級,但不會關閉 ultracode。

520 528 

521<h2 id="related-resources">529<h2 id="related-resources">

522 相關資源530 相關資源

worktrees.md +3 −3

Details

62當您退出互動式 worktree 會話時,Claude 會檢查 worktree 是否有移除會刪除的工作:已變更或未追蹤的檔案、已簽出子模組內的未提交工作,以及新提交。62當您退出互動式 worktree 會話時,Claude 會檢查 worktree 是否有移除會刪除的工作:已變更或未追蹤的檔案、已簽出子模組內的未提交工作,以及新提交。

63 63 

64* **worktree 是乾淨的**:對於未命名的會話,Claude 會自動移除 worktree 及其分支。[已命名](/docs/zh-TW/sessions#name-your-sessions)的會話會先提示您,以便您可以保留 worktree 供稍後使用64* **worktree 是乾淨的**:對於未命名的會話,Claude 會自動移除 worktree 及其分支。[已命名](/docs/zh-TW/sessions#name-your-sessions)的會話會先提示您,以便您可以保留 worktree 供稍後使用

65* **worktree 中有工作**:Claude 會提示您保留或移除 worktree。保留會保留目錄和分支,以便您稍後可以返回。移除會刪除 worktree 目錄及其分支,以及其中的所有工作65* **worktree 中有工作**:Claude 會提示您保留或移除 worktree。保留會保留目錄和分支。若要稍後返回,請執行 Claude Code 在退出時列印的 `claude --worktree <name> --resume` 命令。移除會刪除 worktree 目錄及其分支,以及其中的所有工作

66* **worktree 的狀態無法驗證**:當 Claude Code 無法計算 worktree 的變更或無法檢查其子模組簽出時,它會提示您而不是自動移除 worktree。提示會說明它無法檢查的內容66* **worktree 的狀態無法驗證**:當 Claude Code 無法計算 worktree 的變更或無法檢查其子模組簽出時,它會提示您而不是自動移除 worktree。提示會說明它無法檢查的內容

67 67 

68使用 `-p` 的非互動式執行沒有退出提示,因此 Claude 不會清理它們的 worktrees,Claude Code 會在建立時對每個 worktree 保留它所取得的鎖定,直到稍後會話的[陳舊鎖定掃描](#clean-up-subagent-and-background-session-worktrees)釋放它。要移除一個,請執行 `git worktree remove`;如果 git 拒絕因為 worktree 被鎖定,請先在其上執行 `git worktree unlock`。68使用 `-p` 的非互動式執行沒有退出提示,因此 Claude 不會清理它們的 worktrees,Claude Code 會在建立時對每個 worktree 保留它所取得的鎖定,直到稍後會話的[陳舊鎖定掃描](#clean-up-subagent-and-background-session-worktrees)釋放它。要移除一個,請執行 `git worktree remove`;如果 git 拒絕因為 worktree 被鎖定,請先在其上執行 `git worktree unlock`。


73 恢復 worktree 會話73 恢復 worktree 會話

74</h2>74</h2>

75 75 

76當您恢復在 worktree 內的會話時,Claude Code 會將會話返回到該 worktree。這適用於互動式恢復、[非互動式模式](/docs/zh-TW/headless)中的 `--continue` 和 `--resume`(使用 `-p`)以及 Agent SDK。回到 worktree 內,Claude 仍然可以使用 [`ExitWorktree`](/docs/zh-TW/tools-reference) 工具退出它。76當您恢復在 worktree 內結束的會話時,如果[未退出它](#clean-up-worktrees),Claude Code 會將會話返回到該 worktree。這適用於互動式恢復、[非互動式模式](/docs/zh-TW/headless)中的 `--continue` 和 `--resume`(使用 `-p`)以及 Agent SDK。`--continue` 會挑選從您啟動的目錄下記錄的最近會話。回到 worktree 內,Claude 仍然可以使用 [`ExitWorktree`](/docs/zh-TW/tools-reference) 工具退出它。

77 77 

78在將會話返回到其 worktree 之前,Claude Code 會驗證 worktree 仍然是與主要檢出分開的檢出,並拒絕重新進入未通過檢查的 worktree。對於 git worktree,檢查會讀取其 git 中繼資料。沒有 git 中繼資料的 worktree(例如 [`WorktreeCreate` hook](#non-git-version-control) 建立的 worktree)可以通過檢查;Claude Code 仍然拒絕的情況列在[Claude Code 拒絕使用 worktree](#claude-code-refuses-to-use-a-worktree) 下及其恢復。有關訊息和如何從每個訊息恢復,請參閱[會話在其 worktree 外恢復](#the-session-resumes-outside-its-worktree)。78在將會話返回到其 worktree 之前,Claude Code 會驗證 worktree 仍然是與主要檢出分開的檢出,並拒絕重新進入未通過檢查的 worktree。對於 git worktree,檢查會讀取其 git 中繼資料。沒有 git 中繼資料的 worktree(例如 [`WorktreeCreate` hook](#non-git-version-control) 建立的 worktree)可以通過檢查;Claude Code 仍然拒絕的情況列在[Claude Code 拒絕使用 worktree](#claude-code-refuses-to-use-a-worktree) 下及其恢復。有關訊息和如何從每個訊息恢復,請參閱[會話在其 worktree 外恢復](#the-session-resumes-outside-its-worktree)。

79 79 

80您從何處啟動以及如何恢復會改變 Claude Code 重新進入的內容:80您從何處啟動以及如何恢復會改變 Claude Code 重新進入的內容:

81 81 

82* **啟動目錄**:從主要檢出或儲存庫的另一個目錄恢復。Claude Code 會重新進入它使用 git 在 `.claude/worktrees/` 下建立的 worktree,即使您從其內部啟動。當您從任何其他 worktree 內部啟動時,Claude Code 只有在能夠從那裡為其擔保時才會重新進入它:一個是其自己的儲存庫的 worktree、一個沒有 git 中繼資料的 worktree,或從您使用 `git worktree add` 建立的 worktree 的子目錄啟動會拒絕,因此請從主要檢出啟動這些。82* **啟動目錄**:從主要檢出或儲存庫的另一個目錄使用 `--resume` 恢復。Claude Code 會重新進入它使用 git 在 `.claude/worktrees/` 下建立的 worktree,即使您從其內部啟動。當您從任何其他 worktree 內部啟動時,Claude Code 只有在能夠從那裡為其擔保時才會重新進入它:一個是其自己的儲存庫的 worktree、一個沒有 git 中繼資料的 worktree,或從您使用 `git worktree add` 建立的 worktree 的子目錄啟動會拒絕,因此請從主要檢出啟動這些。

83* **`--fork-session`**:分叉的會話在您啟動 Claude 的目錄中啟動,Claude Code 會保持原始會話的 worktree 不變。83* **`--fork-session`**:分叉的會話在您啟動 Claude 的目錄中啟動,Claude Code 會保持原始會話的 worktree 不變。

84* **已刪除的 worktree**:如果 worktree 目錄不再存在,Claude Code 會在您啟動 Claude 的目錄中恢復會話。它會告訴您 worktree 已消失並清除會話的 worktree 繫結。84* **已刪除的 worktree**:如果 worktree 目錄不再存在,Claude Code 會在您啟動 Claude 的目錄中恢復會話。它會告訴您 worktree 已消失並清除會話的 worktree 繫結。

85 85