SpyBara
Go Premium

Documentation 2026-10-25 23:58 UTC to 2026-10-26 22:57 UTC

39 files changed +719 −156. View all changes and history on the product overview
2026
Fri 30 23:01 Thu 29 23:57 Wed 28 23:57 Tue 27 22:59 Mon 26 22:57 Sun 25 23:58 Sat 24 22:59 Fri 23 22:59 Thu 22 22:58 Wed 21 23:02 Tue 20 23:00 Mon 19 23:58 Sat 17 23:57 Fri 16 22:59 Thu 15 23:58 Wed 14 22:58 Tue 13 23:57 Sun 11 23:57 Sat 10 23:01 Fri 9 23:02 Thu 8 22:58 Wed 7 23:59 Tue 6 23:59 Mon 5 23:58 Sun 4 23:58 Sat 3 23:57 Fri 2 22:59 Thu 1 23:59

admin-setup.md +1 −1

Details

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

94| [Managed policy CLAUDE.md](https://code.claude.com/docs/zh-TW/memory.md#deploy-organization-wide-claude-md) | 為 Claude 提供的組織範圍行為指引,而非由用戶端強制執行的規則 | 受管政策路徑中的檔案 |94| [Managed policy CLAUDE.md](https://code.claude.com/docs/zh-TW/memory.md#deploy-organization-wide-claude-md) | 為 Claude 提供的組織範圍行為指引,而非由用戶端強制執行的規則 | 受管政策路徑中的檔案 |

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

96| [Plugin marketplace control](https://code.claude.com/docs/zh-TW/plugins/org.md#restrict-what-users-can-install) | 限制使用者可以新增和安裝的市場來源、拒絕為單次執行側載外掛程式、agents 和 MCP 伺服器的 CLI 旗標、阻止[`command` 外掛程式來源](https://code.claude.com/docs/zh-TW/plugins/marketplace-reference#command-plugin-source),以及允許清單哪些市場的外掛程式可以被建議 | `strictKnownMarketplaces`、`blockedMarketplaces`、`disableSideloadFlags`、`disableCommandPluginSources`、`pluginSuggestionMarketplaces` |96| [Plugin marketplace control](https://code.claude.com/docs/zh-TW/plugins/org.md#restrict-what-users-can-install) | 限制使用者可以新增和安裝的市集來源,並拒絕為單次執行側載外掛程式、agent 和 MCP 伺服器的 CLI 旗標。阻止[`command` 外掛程式來源](https://code.claude.com/docs/zh-TW/plugins/marketplace-reference#command-plugin-source),並以允許清單指定哪些市集的外掛程式可以在終端機中被建議 | `strictKnownMarketplaces`、`blockedMarketplaces`、`disableSideloadFlags`、`disableCommandPluginSources`、`pluginSuggestionMarketplaces` |

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

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

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

Details

233| `"default"` | 需要批准且不受允許規則涵蓋的工具呼叫會觸發您的 `canUseTool` 回呼;沒有回呼意味著拒絕 | 具有自訂批准回呼的互動式應用程式 |233| `"default"` | 需要批准且不受允許規則涵蓋的工具呼叫會觸發您的 `canUseTool` 回呼;沒有回呼意味著拒絕 | 具有自訂批准回呼的互動式應用程式 |

234| `"acceptEdits"` | 自動批准檔案編輯和常見的檔案系統命令(`mkdir`、`touch`、`mv`、`cp` 等);其他 Bash 命令遵循預設規則 | 您信任 Claude 的編輯並想要更快的迭代,例如在原型設計期間或在隔離目錄中工作時 |234| `"acceptEdits"` | 自動批准檔案編輯和常見的檔案系統命令(`mkdir`、`touch`、`mv`、`cp` 等);其他 Bash 命令遵循預設規則 | 您信任 Claude 的編輯並想要更快的迭代,例如在原型設計期間或在隔離目錄中工作時 |

235| `"plan"` | Claude 探索並規劃而不編輯您的原始檔案;檔案編輯永遠不會自動批准,並透過您的 `canUseTool` 回呼提示 | 您想要 Claude 提出變更而不執行它們,例如在程式碼審查期間或當您需要在進行變更前批准它們時 |235| `"plan"` | Claude 探索並規劃而不編輯您的原始檔案;檔案編輯永遠不會自動批准,並透過您的 `canUseTool` 回呼提示 | 您想要 Claude 提出變更而不執行它們,例如在程式碼審查期間或當您需要在進行變更前批准它們時 |

236| `"dontAsk"` | 永不提示。由 [權限規則](https://code.claude.com/docs/zh-TW/settings-reference.md#permission-settings) 預先核准的工具會執行,在 `default` 模式中不需要核准的呼叫(例如在您的工作目錄內的檔案讀取)也會執行。所有其他原本會提示的呼叫都會被拒絕,不過您安裝的 [mod](https://code.claude.com/docs/zh-TW/plugins/mods/overview.md) 仍可核准[其中部分呼叫](https://code.claude.com/docs/zh-TW/permissions.md#precedence-among-rules-hooks-and-mods)。`AskUserQuestion`、[您的組織設定為 `ask`](https://code.claude.com/docs/zh-TW/mcp#organization-controls-on-connector-tools) 的連接器工具、標記為 [`requiresUserInteraction`](https://code.claude.com/docs/zh-TW/mcp#require-approval-for-a-specific-tool) 的 MCP 工具,以及 [從網路路徑讀取](https://code.claude.com/docs/zh-TW/permissions.md#network-paths) 即使您已允許它們也會被拒絕 | 您想要為無頭 agent 提供固定、明確的工具範圍,並偏好硬拒絕而不是無聲依賴 `canUseTool` 不存在 |236| `"dontAsk"` | 永不提示。由 [權限規則](https://code.claude.com/docs/zh-TW/settings-reference.md#permission-settings) 預先核准的工具會執行,在 `default` 模式中不需要核准的呼叫(例如在您的工作目錄內的檔案讀取)也會執行。所有其他原本會提示的呼叫都會被拒絕,不過您安裝的 [mod](https://code.claude.com/docs/zh-TW/plugins/mods/overview.md) 仍可核准[其中部分呼叫](https://code.claude.com/docs/zh-TW/permissions.md#precedence-among-rules-hooks-and-mods)。少數呼叫(例如 [從網路路徑讀取](https://code.claude.com/docs/zh-TW/permissions.md#network-paths))即使您已允許它們也會被拒絕。如需清單,請參閱 [Don't ask 模式](https://code.claude.com/docs/zh-TW/agent-sdk/permissions.md#don’t-ask-mode-dontask) | 沒有人可核准呼叫的無頭 agent |

237| `"auto"` | 使用模型分類器來審查殼層命令和網路請求等操作,允許或阻止它審查的每一個。請參閱 [自動模式](https://code.claude.com/docs/zh-TW/permission-modes.md#eliminate-prompts-with-auto-mode) 以了解可用性和決策順序 | 仍然想要工具使用安全防護的自主代理程式 |237| `"auto"` | 使用模型分類器來審查殼層命令和網路請求等操作,允許或阻止它審查的每一個。請參閱 [自動模式](https://code.claude.com/docs/zh-TW/permission-modes.md#eliminate-prompts-with-auto-mode) 以了解可用性和決策順序 | 仍然想要工具使用安全防護的自主代理程式 |

238| `"bypassPermissions"` | 執行所有允許的工具而不詢問,除了由明確的 [`ask` 規則](https://code.claude.com/docs/zh-TW/settings-reference#permission-settings) 符合的工具、連接器工具 [您的組織設定為 `ask`](https://code.claude.com/docs/zh-TW/mcp#organization-controls-on-connector-tools) 和需要使用者互動的工具。[跨工作階段訊息安全防護](https://code.claude.com/docs/zh-TW/permission-modes.md#skip-all-checks-with-bypasspermissions-mode) 仍然適用。請參閱 [權限如何被評估](https://code.claude.com/docs/zh-TW/agent-sdk/permissions.md#how-permissions-are-evaluated) 以了解優先順序順序。在 TypeScript SDK 中,也需要在 `options` 中設定 `allowDangerouslySkipPermissions: true`。在 Unix 上以 root 身份執行時無法使用。僅在隔離環境中使用,其中代理程式的操作無法影響您關心的系統 | CI、容器或其他隔離環境 |238| `"bypassPermissions"` | 執行工具呼叫而不要求核准,包括對您未列在 `allowedTools` 中之工具的呼叫。少數呼叫仍會送至您的 `canUseTool` 回呼,列於 [Bypass permissions 模式](https://code.claude.com/docs/zh-TW/agent-sdk/permissions.md#bypass-permissions-mode-bypasspermissions)。在 TypeScript SDK 中,也需要在 `options` 中設定 `allowDangerouslySkipPermissions: true`。在 Unix 上以 root 身分執行時無法使用。僅在隔離環境中使用,其中 agent 的操作無法影響您關心的系統 | CI、容器或其他隔離環境 |

239 239 

240對於互動式應用程式,使用 `"default"` 和工具批准回呼來顯示批准提示。對於開發機器上的自主代理程式,`"acceptEdits"` 自動批准檔案編輯和常見的檔案系統命令(`mkdir`、`touch`、`mv`、`cp` 等),同時仍然在允許規則後面限制其他 `Bash` 命令。為 CI、容器或其他隔離環境保留 `"bypassPermissions"`。請參閱 [權限](https://code.claude.com/docs/zh-TW/agent-sdk/permissions.md) 以了解完整詳細資訊。240對於互動式應用程式,使用 `"default"` 和工具批准回呼來顯示批准提示。對於開發機器上的自主代理程式,`"acceptEdits"` 自動批准檔案編輯和常見的檔案系統命令(`mkdir`、`touch`、`mv`、`cp` 等),同時仍然在允許規則後面限制其他 `Bash` 命令。為 CI、容器或其他隔離環境保留 `"bypassPermissions"`。請參閱 [權限](https://code.claude.com/docs/zh-TW/agent-sdk/permissions.md) 以了解完整詳細資訊。

241 241 

Details

16| 將參數設為選用 | 在 schema 中將其宣告為選用,並在處理程式中套用預設值。請參閱[將參數設為選用](#make-a-parameter-optional)。 |16| 將參數設為選用 | 在 schema 中將其宣告為選用,並在處理程式中套用預設值。請參閱[將參數設為選用](#make-a-parameter-optional)。 |

17| 向 Claude 註冊工具 | 在 `create_sdk_mcp_server` / `createSdkMcpServer` 中包裝,並傳遞至 `query()` 中的 `mcpServers`。請參閱[呼叫自訂工具](#call-a-custom-tool)。 |17| 向 Claude 註冊工具 | 在 `create_sdk_mcp_server` / `createSdkMcpServer` 中包裝,並傳遞至 `query()` 中的 `mcpServers`。請參閱[呼叫自訂工具](#call-a-custom-tool)。 |

18| 預先核准工具 | 新增至您允許的工具。請參閱[設定允許的工具](#configure-allowed-tools)。 |18| 預先核准工具 | 新增至您允許的工具。請參閱[設定允許的工具](#configure-allowed-tools)。 |

19| 要求呼叫某個工具時須經核准,或封鎖該工具 | 在 TypeScript SDK 中,將該工具的 `permission_policy` 新增至 `createSdkMcpServer()` 傳回的設定物件。請參閱[要求特定工具須經核准](#require-approval-for-specific-tools)。 |

19| 從 Claude 的內容中移除內建工具 | 傳遞 `tools` 陣列,僅列出您想要的內建工具。請參閱[設定允許的工具](#configure-allowed-tools)。 |20| 從 Claude 的內容中移除內建工具 | 傳遞 `tools` 陣列,僅列出您想要的內建工具。請參閱[設定允許的工具](#configure-allowed-tools)。 |

20| 讓 Claude 平行呼叫工具 | 在沒有副作用的工具上設定 `readOnlyHint: true`。請參閱[新增工具註解](#add-tool-annotations)。 |21| 讓 Claude 平行呼叫工具 | 在沒有副作用的工具上設定 `readOnlyHint: true`。請參閱[新增工具註解](#add-tool-annotations)。 |

21| 控制 Claude 讀取的錯誤訊息 | 傳回 `isError: true` 以組成訊息,而不是顯示原始例外狀況。請參閱[處理錯誤](#handle-errors)。 |22| 控制 Claude 讀取的錯誤訊息 | 傳回 `isError: true` 以組成訊息,而不是顯示原始例外狀況。請參閱[處理錯誤](#handle-errors)。 |


327| 欄位 | 預設 | 意義 |328| 欄位 | 預設 | 意義 |

328| :- | :- | :- |329| :- | :- | :- |

329| `readOnlyHint` | `false` | 工具不會修改其環境。控制工具是否可以與其他唯讀工具並行呼叫。 |330| `readOnlyHint` | `false` | 工具不會修改其環境。控制工具是否可以與其他唯讀工具並行呼叫。 |

330| `destructiveHint` | `true` | 工具可能執行破壞性更新。僅供參考。 |331| `destructiveHint` | `true` | 工具可能執行破壞性更新。對於任何您[標記為 `always_ask`](#require-approval-for-specific-tools) 的工具,請明確將其設定為 `true`。 |

331| `idempotentHint` | `false` | 使用相同引數重複呼叫沒有額外效果。僅供參考。 |332| `idempotentHint` | `false` | 使用相同引數重複呼叫沒有額外效果。僅供參考。 |

332| `openWorldHint` | `true` | 工具到達您程序外的系統。僅供參考。 |333| `openWorldHint` | `true` | 工具到達您程序外的系統。僅供參考。 |

333 334 


383 384 

384若要完全移除內建工具,請從 `tools` 中省略它或在 `disallowedTools` 中列出其裸名稱(Python:`disallowed_tools`);兩者都會將工具保留在上下文之外,以便 Claude 永遠不會嘗試它。限定範圍的 `disallowedTools` 規則會阻止相符的呼叫,但將工具保留為可見,因此 Claude 可能會浪費一個回合嘗試它。如需完整的評估順序,請參閱[設定權限](https://code.claude.com/docs/zh-TW/agent-sdk/permissions.md)。385若要完全移除內建工具,請從 `tools` 中省略它或在 `disallowedTools` 中列出其裸名稱(Python:`disallowed_tools`);兩者都會將工具保留在上下文之外,以便 Claude 永遠不會嘗試它。限定範圍的 `disallowedTools` 規則會阻止相符的呼叫,但將工具保留為可見,因此 Claude 可能會浪費一個回合嘗試它。如需完整的評估順序,請參閱[設定權限](https://code.claude.com/docs/zh-TW/agent-sdk/permissions.md)。

385 386 

387### 要求特定工具的核准

388 

389將工具的 `permission_policy` 設為 `always_ask`,`allowedTools` 就不再核准該工具的呼叫,因此即使該工具已列出,這些呼叫仍可到達您的 [`canUseTool`](https://code.claude.com/docs/zh-TW/agent-sdk/user-input) 回呼。若改為設定 `always_deny`,[對該工具的呼叫會被拒絕](https://code.claude.com/docs/zh-TW/agent-sdk/permissions.md#how-permissions-are-evaluated),但您載入的外掛中的 [mod](https://code.claude.com/docs/zh-TW/plugins/mods/overview.md) [仍可核准它](https://code.claude.com/docs/zh-TW/permissions.md#precedence-among-rules-hooks-and-mods)。此欄位僅適用於 TypeScript,且需要 Agent SDK v0.3.301 或更新版本。

390 

391請將政策項目放在 `createSdkMcpServer()` 傳回的設定物件上的 `tools` 陣列中,而不是放在您傳入該函式的 `tools` 選項中。此範例展開[天氣工具範例](#weather-tool-example)中的 `weatherServer`,並新增一個 `tools` 陣列,為 `get_temperature` 指定 `always_ask` 政策:

392 

393```typescript TypeScript theme={null}

394options: {

395 mcpServers: {

396 weather: {

397 ...weatherServer,

398 tools: [{ name: "get_temperature", permission_policy: "always_ask" as const }]

399 }

400 },

401 allowedTools: ["mcp__weather__get_temperature"],

402 permissionMode: "default",

403 canUseTool: async (toolName, input) => {

404 console.log(`Approval requested for ${toolName}`);

405 return { behavior: "allow", updatedInput: input };

406 }

407}

408```

409 

410若要試用此政策,請將[呼叫自訂工具](#call-a-custom-tool)指令碼中的 `options` 替換為此範例的 `options`,然後從終端機執行該指令碼。指令碼會印出 `Approval requested for mcp__weather__get_temperature`,接著是 Claude 關於溫度的回答。如需完整的指令碼,請參閱 [TypeScript 參考](https://code.claude.com/docs/zh-TW/agent-sdk/typescript.md#mcpsdkserverconfigwithinstance)。

411 

412如果您使用 `auto` 或 `plan` [權限模式](https://code.claude.com/docs/zh-TW/agent-sdk/permissions.md#permission-modes),請在工具的[註解](#add-tool-annotations)中設定 `destructiveHint: true`,讓對該工具的呼叫仍會到達您的回呼。否則,[自動模式分類器](https://code.claude.com/docs/zh-TW/permission-modes.md#eliminate-prompts-with-auto-mode)可能會在 [TypeScript 參考中列出的條件](https://code.claude.com/docs/zh-TW/agent-sdk/typescript.md#permission-modes-that-can-approve-an-always_ask-call)下核准某些 `always_ask` 呼叫,而它核准的呼叫不會到達您的回呼。請明確設定此提示,因為對於 `always_ask` 呼叫,未設定的 `destructiveHint` 會被視為 `false`,而不是預設為 `true`。

413 

386## 處理錯誤414## 處理錯誤

387 415 

388處理程式錯誤不會停止代理迴圈。SDK 的同處理程序 MCP 伺服器會捕捉未捕捉的例外狀況,並將其作為錯誤結果返回,因此您報告錯誤的方式決定了 Claude 讀取的內容,而不是查詢是否失敗:416處理程式錯誤不會停止代理迴圈。SDK 的同處理程序 MCP 伺服器會捕捉未捕捉的例外狀況,並將其作為錯誤結果返回,因此您報告錯誤的方式決定了 Claude 讀取的內容,而不是查詢是否失敗:

Details

10 10 

11## 權限如何被評估11## 權限如何被評估

12 12 

13> [!NOTE]

14>

15> 如果您載入包含 [mod](https://code.claude.com/docs/zh-TW/plugins/mods/overview.md) 的外掛,請參閱 [mod 的決定在規則與 hook 之間的位置](https://code.claude.com/docs/zh-TW/permissions.md#precedence-among-rules-hooks-and-mods)。

16 

13當 Claude 請求一個工具時,SDK 按照以下順序檢查權限:17當 Claude 請求一個工具時,SDK 按照以下順序檢查權限:

14 18 

15**1. Hooks**19**1. Hooks**


20 24 

21**2. 拒絕規則**25**2. 拒絕規則**

22 26 

23檢查 `deny` 規則(來自 `disallowed_tools` 和 [settings.json](https://code.claude.com/docs/zh-TW/settings-reference.md#permission-settings))。如果拒絕規則匹配,工具會被阻止,即使在 `bypassPermissions` 模式下也是如此。裸名稱拒絕規則(如 `Bash`)會在此評估開始前將工具從 Claude 的上下文中移除,因此只有作用域規則(如 `Bash(rm *)`)會在此步驟中被檢查。27如果來自 `disallowed_tools` 或 [settings.json](https://code.claude.com/docs/zh-TW/settings-reference.md#permission-settings) 的拒絕規則匹配,呼叫會被拒絕,且不會呼叫 [`canUseTool`](https://code.claude.com/docs/zh-TW/agent-sdk/user-input),即使在 [`bypassPermissions`](#bypass-permissions-mode-bypasspermissions) 模式下,以及即使 hook 返回了 `allow` 也是如此。

28 

29在 TypeScript SDK 中,如果您將[自訂工具](https://code.claude.com/docs/zh-TW/agent-sdk/custom-tools.md#require-approval-for-specific-tools)的 `permission_policy` 設定為 [`always_deny`](https://code.claude.com/docs/zh-TW/agent-sdk/typescript#mcpservertoolpolicy),對該工具的呼叫會在此步驟被拒絕。

24 30 

25**3. 詢問規則**31**3. 詢問規則**

26 32 


30 36 

31您的組織設定為 `ask` 的 [claude.ai connector](https://code.claude.com/docs/zh-TW/mcp.md#organization-controls-on-connector-tools) 工具也會在此步驟離開流程。每個呼叫都會傳遞到回呼,即使在 `bypassPermissions` 模式下,即使當 allow 規則匹配時也是如此。回呼會收到原因 `Your organization requires approval for this tool`。在 `dontAsk` 模式下,呼叫會被拒絕,因為該模式永遠不會提示。37您的組織設定為 `ask` 的 [claude.ai connector](https://code.claude.com/docs/zh-TW/mcp.md#organization-controls-on-connector-tools) 工具也會在此步驟離開流程。每個呼叫都會傳遞到回呼,即使在 `bypassPermissions` 模式下,即使當 allow 規則匹配時也是如此。回呼會收到原因 `Your organization requires approval for this tool`。在 `dontAsk` 模式下,呼叫會被拒絕,因為該模式永遠不會提示。

32 38 

39在 TypeScript SDK 中,如果您將自訂工具的 `permission_policy` 設定為 [`always_ask`](https://code.claude.com/docs/zh-TW/agent-sdk/custom-tools#require-approval-for-specific-tools),任何 allow 規則都不會核准其呼叫,即使是 `allowedTools` 條目也不會。在 `dontAsk` 模式下,Claude Code 會拒絕這些呼叫;而在 `auto`、`plan` 或 `bypassPermissions` 模式下,它[可以在您的回呼執行之前核准它們](https://code.claude.com/docs/zh-TW/agent-sdk/typescript.md#permission-modes-that-can-approve-an-always_ask-call)。

40 

33**4. 權限模式**41**4. 權限模式**

34 42 

35應用活躍的 [權限模式](#permission-modes):43應用活躍的 [權限模式](#permission-modes):

36 44 

37* 在 `bypassPermissions` 模式下,Claude Code 核准到達此步驟的所有內容,但經識別的[關鍵路徑移除](https://code.claude.com/docs/zh-TW/permission-modes.md#critical-paths)除外,這些會改為傳遞下去。45* 在 `bypassPermissions` 模式下,Claude Code 核准到達此步驟的所有內容,但經識別的[關鍵路徑移除](https://code.claude.com/docs/zh-TW/permission-modes.md#critical-paths)以及被標記為 [`Dangerous rm operation not ruled out`](https://code.claude.com/docs/zh-TW/permission-modes#dangerous-rm-operation-not-ruled-out) 的 Bash 命令除外,這些會改為傳遞下去。

38* 在 `acceptEdits` 模式下,Claude Code 核准 [接受編輯模式](#accept-edits-mode-acceptedits) 下列出的檔案操作。46* 在 `acceptEdits` 模式下,Claude Code 核准 [接受編輯模式](#accept-edits-mode-acceptedits) 下列出的檔案操作。

39* 在 `plan` 模式下,Claude Code 將檔案編輯和 shell 寫入工具發送到您的 `canUseTool` 回呼,無論 allow 規則如何,因此在規劃時寫入操作無法自動核准。47* 在 `plan` 模式下,Claude Code 將檔案編輯工具發送到您的 `canUseTool` 回呼,無論 allow 規則如何。

40* 在其他模式下,請求會傳遞下去。48* 在其他模式下,請求會傳遞下去。

41 49 

42**5. 允許規則**50**5. 允許規則**

43 51 

44檢查 `allow` 規則(來自 `allowed_tools` 和 settings.json)。如果規則匹配,工具會被核准。工具自行核准的呼叫也會在此步驟解決,無需規則:例如在您的工作目錄內的檔案讀取或 [唯讀 Bash 命令](https://code.claude.com/docs/zh-TW/permissions.md#read-only-commands)。52檢查 `allow` 規則(來自 `allowed_tools` 和 settings.json)。如果規則匹配,工具會被核准。工具自行核准的呼叫也會在此步驟解決,無需規則:例如在您的工作目錄內的檔案讀取或 [唯讀 Bash 命令](https://code.claude.com/docs/zh-TW/permissions.md#read-only-commands)。

45 53 

46經識別的[關鍵路徑移除](https://code.claude.com/docs/zh-TW/permission-modes.md#critical-paths)不會被 allow 規則核准。它們是否隨後到達您的回呼取決於權限模式:例如在 `auto` 模式的 Agent SDK 工作階段中,Claude Code 預設會拒絕它們而不呼叫它。[關鍵路徑模式表](https://code.claude.com/docs/zh-TW/permission-modes.md#critical-path-removals-in-each-permission-mode)列出了每個模式對它們的處理方式。54經識別的[關鍵路徑移除](https://code.claude.com/docs/zh-TW/permission-modes.md#critical-paths)不會被 allow 規則核准,而被標記為 `Dangerous rm operation not ruled out` 的命令也不會被 `Bash` 或 `Bash(*)` 規則核准。它們是否隨後到達您的回呼取決於權限模式:例如在 `auto` 模式的 Agent SDK 工作階段中,Claude Code 預設會拒絕它們而不呼叫它。[關鍵路徑模式表](https://code.claude.com/docs/zh-TW/permission-modes.md#critical-path-removals-in-each-permission-mode)列出了每個模式對它們的處理方式。

47 55 

48Allow 規則不會核准從 [網路路徑](https://code.claude.com/docs/zh-TW/permissions.md#network-paths) 進行的讀取。56Allow 規則不會核准從 [網路路徑](https://code.claude.com/docs/zh-TW/permissions.md#network-paths) 進行的讀取。

49 57 


57 65 

58如果您在 TypeScript SDK 期望評估順序在諮詢回呼之前自動批准呼叫的設定中傳遞 `canUseTool` 回呼,SDK 會在構造查詢時發出一次 Node.js 程序警告。警告的代碼是 `CLAUDE_SDK_CAN_USE_TOOL_SHADOWED`。兩個設定會觸發它:66如果您在 TypeScript SDK 期望評估順序在諮詢回呼之前自動批准呼叫的設定中傳遞 `canUseTool` 回呼,SDK 會在構造查詢時發出一次 Node.js 程序警告。警告的代碼是 `CLAUDE_SDK_CAN_USE_TOOL_SHADOWED`。兩個設定會觸發它:

59 67 

60* `permissionMode: 'bypassPermissions'`,它自動核准到達權限模式步驟的每個呼叫,除了 [任何模式都不自動核准的操作](https://code.claude.com/docs/zh-TW/permission-modes.md#actions-no-mode-auto-approves)68* `permissionMode: 'bypassPermissions'`:警告文字以 `canUseTool will not be invoked: permissionMode 'bypassPermissions'` 開頭。工具呼叫會在諮詢 `canUseTool` 之前被核准,因此您的回呼只會針對少數呼叫執行,例如 [Bypass permissions 模式](#bypass-permissions-mode-bypasspermissions)下列出的呼叫。若也要檢查已核准的呼叫,請將回呼的檢查放在 [`PreToolUse` hook](https://code.claude.com/docs/zh-TW/agent-sdk/hooks) 中

61* 每個裸 `allowedTools` 條目,例如 `"Read"`,它在諮詢回呼之前自動核准整個工具,除了 [任何模式都不自動核准的操作](https://code.claude.com/docs/zh-TW/permission-modes.md#actions-no-mode-auto-approves) 和 [從網路路徑進行的讀取](https://code.claude.com/docs/zh-TW/permissions.md#network-paths)69* 僅為工具名稱的 `allowedTools` 條目,例如 `"Read"`:警告會在 `canUseTool will not be invoked for:` 之後列出每個此類條目。對所列工具的呼叫會在諮詢 `canUseTool` 之前被核准,但 [allow 規則永遠不會核准的呼叫](#calls-an-allow-rule-never-approves)除外。若要讓您的回呼針對所列工具中需要核准的呼叫執行,請從 `allowedTools` 中移除該工具的條目

62 70 

63具有指定符的條目(如 `Bash(ls *)`)和 `acceptEdits` 模式不會觸發它,來自設定檔的 allow 規則對檢查不可見。71具有指定符的條目(如 `Bash(ls *)`)和 `acceptEdits` 模式不會觸發它,來自設定檔的 allow 規則對檢查不可見。

64 72 

65使用 `process.on('warning', ...)` 進行監聽並匹配代碼以記錄或抑制它。要無論模式和規則如何都控制每個工具呼叫,請改用 [`PreToolUse` hook](https://code.claude.com/docs/zh-TW/agent-sdk/hooks)。73此警告不會阻擋任何呼叫,也不會變更任何選項。如果您的回呼已經會收到您想檢查的每個呼叫,請維持設定不變。若要記錄此警告,請使用 `process.on('warning', ...)` 進行監聽並匹配 `CLAUDE_SDK_CAN_USE_TOOL_SHADOWED` 代碼。

66 74 

67此頁面重點關注 **allow 和 deny 規則** 以及 **權限模式**。對於其他步驟:75此頁面重點關注 **allow 和 deny 規則** 以及 **權限模式**。對於其他步驟:

68 76 


90>98>

91> **自動批准的工具永遠不會到達 `canUseTool`。** 在任何較早步驟中批准的工具呼叫,透過 `acceptEdits` 或 `bypassPermissions`,或透過允許規則,會跳過您的 `canUseTool` 回呼,因此您在那裡放置的權限檢查會被該工具無聲地繞過。99> **自動批准的工具永遠不會到達 `canUseTool`。** 在任何較早步驟中批准的工具呼叫,透過 `acceptEdits` 或 `bypassPermissions`,或透過允許規則,會跳過您的 `canUseTool` 回呼,因此您在那裡放置的權限檢查會被該工具無聲地繞過。

92>100>

93> 允許規則永遠不會自動核准 `AskUserQuestion`、標記為 [`_meta["anthropic/requiresUserInteraction"]`](https://code.claude.com/docs/zh-TW/mcp#require-approval-for-a-specific-tool) 的 MCP 工具、[您的組織設定為 `ask`](https://code.claude.com/docs/zh-TW/mcp#organization-controls-on-connector-tools) 的連接器工具,或經辨識的 `rm` 和 `rmdir` [關鍵路徑移除](https://code.claude.com/docs/zh-TW/permission-modes.md#critical-paths)。在 `dontAsk` 模式中,Claude Code 會拒絕這些呼叫而不呼叫回呼。在其他模式中,前三個會到達回呼。[關鍵路徑模式表](https://code.claude.com/docs/zh-TW/permission-modes.md#critical-path-removals-in-each-permission-mode)列出每個模式對關鍵路徑移除的處理方式。辨識這些移除的檢查[可能會遺漏某些命令](https://code.claude.com/docs/zh-TW/permission-modes.md#critical-paths)。101> 如果對 `allowed_tools` 中某個工具的呼叫仍會到達您的 `canUseTool` 回呼,或在 `dontAsk` 模式中遭到拒絕,請檢查它們是否為[從網路路徑讀取](https://code.claude.com/docs/zh-TW/permissions.md#network-paths),或屬於下列呼叫。沒有任何允許規則會核准這些呼叫。在永不提示的 `dontAsk` 模式中,Claude Code 會拒絕這些呼叫而不呼叫 `canUseTool`;在其他權限模式中,請依各項目的說明處理:

102>

103> * `AskUserQuestion`、標記為 [`_meta["anthropic/requiresUserInteraction"]`](https://code.claude.com/docs/zh-TW/mcp#require-approval-for-a-specific-tool) 的 MCP 工具,以及[您的組織設定為 `ask`](https://code.claude.com/docs/zh-TW/mcp#organization-controls-on-connector-tools) 的連接器工具:在回呼中回應它們。[處理釐清問題](https://code.claude.com/docs/zh-TW/agent-sdk/user-input.md#handle-clarifying-questions)說明如何回應 `AskUserQuestion`,而連接器呼叫抵達時會附帶原因 `Your organization requires approval for this tool`

104>

105> * 您的應用程式標記為 [`always_ask`](https://code.claude.com/docs/zh-TW/agent-sdk/custom-tools#require-approval-for-specific-tools) 的自訂工具:在回呼中決定該呼叫。若要停止這些呼叫抵達,請[在工作階段中途變更政策](https://code.claude.com/docs/zh-TW/agent-sdk/typescript.md#mcpsdkserverconfigwithinstance)。在 `auto`、`plan` 和 `bypassPermissions` 模式中,該呼叫也可能在回呼之前就被核准,相關情況列於[可核准 `always_ask` 呼叫的權限模式](https://code.claude.com/docs/zh-TW/agent-sdk/typescript#permission-modes-that-can-approve-an-always_ask-call)

94>106>

95> 涵蓋範圍取決於項目的形式:像 `Read` 或 `mcp__github__get_issue` 這樣的裸名稱會自動核准對該工具的每個呼叫,除了上述例外情況和[從網路路徑讀取](https://code.claude.com/docs/zh-TW/permissions.md#network-paths),而像 `Bash(npm test *)` 這樣的限定規則只會自動核准符合的呼叫,其他需要核准的 `Bash` 呼叫仍會進入回呼。對於必須在每個工具呼叫上執行的檢查,請使用 [`PreToolUse` hook](https://code.claude.com/docs/zh-TW/agent-sdk/hooks):hook 在每個其他步驟之前執行,hook 拒絕即使在 `bypassPermissions` 模式中也適用。107> * 經辨識的 `rm` 和 `rmdir` [關鍵路徑移除](https://code.claude.com/docs/zh-TW/permission-modes.md#critical-paths):在 `default`、`acceptEdits` 和 `bypassPermissions` 模式中,請在回呼中允許或拒絕該移除,此時 [`decisionReason`](https://code.claude.com/docs/zh-TW/agent-sdk/typescript#canusetool) 會以 `Dangerous rm` 開頭。關於 `auto` 和 `plan` 模式,請參閱[各權限模式中的關鍵路徑移除](https://code.claude.com/docs/zh-TW/permission-modes.md#critical-path-removals-in-each-permission-mode)。辨識這些移除的檢查[可能會遺漏某些命令](https://code.claude.com/docs/zh-TW/permission-modes.md#critical-paths)

108>

109> * **裸名稱**:像 `Read` 或 `mcp__github__get_issue` 這樣的項目會自動核准對該工具的每個呼叫,但[任何模式都不自動核准的動作](https://code.claude.com/docs/zh-TW/permission-modes.md#actions-no-mode-auto-approves)和[從網路路徑讀取](https://code.claude.com/docs/zh-TW/permissions.md#network-paths)除外。

110>

111> * **限定規則**:像 `Bash(npm test *)` 這樣的項目只會自動核准符合的呼叫,其他需要核准的 `Bash` 呼叫仍會進入回呼。

112>

113> 對於必須在每個工具呼叫上執行的檢查,請使用 [`PreToolUse` hook](https://code.claude.com/docs/zh-TW/agent-sdk/hooks):hook 在每個其他步驟之前執行,hook 拒絕即使在 `bypassPermissions` 模式中也適用。

96 114 

97對於鎖定的代理,將 `allowedTools` 與 `permissionMode: "dontAsk"` 配對:115對於鎖定的代理,將 `allowedTools` 與 `permissionMode: "dontAsk"` 配對:

98 116 


103};121};

104```122```

105 123 

106列出的工具會被核准,但[任何模式都不自動核准的動作](https://code.claude.com/docs/zh-TW/permission-modes.md#actions-no-mode-auto-approves)和[從網路路徑讀取](https://code.claude.com/docs/zh-TW/permissions.md#network-paths)除外。其他每個原本會提示的呼叫則會被拒絕,不過您安裝的 [mod](https://code.claude.com/docs/zh-TW/plugins/mods/overview.md) 仍可核准[其中部分呼叫](https://code.claude.com/docs/zh-TW/permissions.md#precedence-among-rules-hooks-and-mods)。124列出的 `Read`、`Glob` 和 `Grep` 呼叫會被核准,但[任何模式都不自動核准的動作](https://code.claude.com/docs/zh-TW/permission-modes.md#actions-no-mode-auto-approves)和[從網路路徑讀取](https://code.claude.com/docs/zh-TW/permissions.md#network-paths)除外。其他每個原本會提示的呼叫則會被拒絕,不過您安裝的 [mod](https://code.claude.com/docs/zh-TW/plugins/mods/overview.md) 仍可核准[其中部分呼叫](https://code.claude.com/docs/zh-TW/permissions.md#precedence-among-rules-hooks-and-mods)。

107 125 

108在 `default` 模式中不需要核准的呼叫無論您是否列出都會執行。這些呼叫包括[唯讀 Bash 命令](https://code.claude.com/docs/zh-TW/permissions.md#read-only-commands)、不在執行前詢問的工具(如 `Agent`),以及工作目錄內的檔案讀取。要將工具從請求中完全移除,請將其裸名稱新增到 `disallowedTools`。126在 `default` 模式中不需要核准的呼叫無論您是否列出都會執行。這些呼叫包括[唯讀 Bash 命令](https://code.claude.com/docs/zh-TW/permissions.md#read-only-commands)、不在執行前詢問的工具(如 `Agent`),以及工作目錄內的檔案讀取。若要對 Claude 完全隱藏某個內建工具,而非拒絕其呼叫,請將其裸名稱新增到 `disallowedTools`。

109 127 

110> [!WARNING]128> [!WARNING]

111>129>


115 133 

116## 權限模式134## 權限模式

117 135 

118權限模式提供對 Claude 如何使用工具的全域控制。您可以在呼叫 `query()` 時設定權限模式,或在串流工作階段期間動態變更它。136權限模式可全域控制 Claude 使用工具的方式。您可以在呼叫 `query()` 時設定權限模式,或在串流工作階段期間動態變更。

119 137 

120在 Claude Code v2.1.302 或更新版本中,除非您設定了權限模式,或應用程式從其設定檔中的 [`permissions.defaultMode`](https://code.claude.com/docs/zh-TW/settings-reference#permissions-defaultmode) 取得權限模式,否則您的應用程式會以 `default` 模式啟動。在 `default` 模式中,除非您透過允許規則、hook、`canUseTool` 回呼或權限提示工具核准,否則 Claude Code 會拒絕任何需要核准的工具呼叫。如果工具呼叫遭到拒絕,請參閱[在 `claude -p` 和 Agent SDK 執行中工具呼叫遭拒](https://code.claude.com/docs/zh-TW/permission-modes#which-mode-a-non-interactive-run-starts-in)。138使用 Claude Code v2.1.302 或更新版本時,除非您設定了權限模式,或應用程式從其設定檔中的 [`permissions.defaultMode`](https://code.claude.com/docs/zh-TW/settings-reference#permissions-defaultmode) 取得權限模式,否則應用程式會以 `default` 模式啟動。在 `default` 模式下,Claude Code 會拒絕任何需要核准的工具呼叫,除非您透過 allow 規則、hook、`canUseTool` 回呼或權限提示工具核准該呼叫。如果工具呼叫遭到拒絕,請參閱[在 `claude -p` 和 Agent SDK 執行中工具呼叫遭到拒絕](https://code.claude.com/docs/zh-TW/permission-modes#which-mode-a-non-interactive-run-starts-in)。

121 139 

122### 可用模式140### 可用模式

123 141 

124SDK 支援這些權限模式:142SDK 支援以下權限模式:

125 143 

126| 模式 | 說明 | 工具行為 |144| 模式 | 說明 | 工具行為 |

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

128| `default` | 標準權限行為 | 無模式型自動核准;需要核准且不符合任何允許規則的呼叫會觸發您的 `canUseTool` 回呼 |146| `default` | 標準權限行為 | 沒有基於模式的自動核准;需要核准且不符合任何 allow 規則的呼叫會觸發您的 `canUseTool` 回呼 |

129| `dontAsk` | 拒絕而非提示 | 任何原本會提示的呼叫都會被拒絕,且不會呼叫 `canUseTool`,不過您安裝的 [mod](https://code.claude.com/docs/zh-TW/plugins/mods/overview.md) 仍可核准[其中部分呼叫](https://code.claude.com/docs/zh-TW/permissions.md#precedence-among-rules-hooks-and-mods)。由 `allowed_tools` 或 `settings.json` 允許規則核准的呼叫會執行,在 `default` 模式中不需要核准的呼叫也會執行。某些呼叫,例如[從網路路徑讀取](https://code.claude.com/docs/zh-TW/permissions.md#network-paths),即使符合 `allowed_tools` 或允許規則也會被拒絕。如需完整清單,請參閱[不要詢問模式](#don’t-ask-mode-dontask) |147| `dontAsk` | 拒絕而非提示 | 任何原本會提示的呼叫都會被拒絕,且不會呼叫 `canUseTool`,不過您安裝的 [mod](https://code.claude.com/docs/zh-TW/plugins/mods/overview.md) 仍可核准[其中部分呼叫](https://code.claude.com/docs/zh-TW/permissions.md#precedence-among-rules-hooks-and-mods)。由 `allowed_tools` 或 `settings.json` allow 規則核准的呼叫會執行,在 `default` 模式下不需要核准的呼叫也會執行。某些呼叫,例如[從網路路徑讀取](https://code.claude.com/docs/zh-TW/permissions.md#network-paths),即使符合 `allowed_tools` 或 allow 規則也會被拒絕。如需清單,請參閱 [Don't ask 模式](#don’t-ask-mode-dontask) |

130| `acceptEdits` | 自動接受檔案編輯 | 檔案編輯和[檔案系統操作](#accept-edits-mode-acceptedits)(`mkdir`、`rm`、`mv` 等)會自動被核准 |148| `acceptEdits` | 自動接受檔案編輯 | 檔案編輯和[檔案系統操作](#accept-edits-mode-acceptedits)(`mkdir`、`rm`、`mv` 等)會自動核准 |

131| `bypassPermissions` | 略過權限檢查 | 工具執行時不會出現權限提示,除了[沒有任何模式自動核准的動作](https://code.claude.com/docs/zh-TW/permission-modes.md#actions-no-mode-auto-approves)。請謹慎使用 |149| `bypassPermissions` | 略過權限檢查 | 工具會在沒有權限提示的情況下執行,但[任何模式都不會自動核准的動作](https://code.claude.com/docs/zh-TW/permission-modes.md#actions-no-mode-auto-approves)除外;此外,在[雲端工作階段](https://code.claude.com/docs/zh-TW/claude-code-on-the-web.md)之外,您的應用程式[標記為 `always_ask`](https://code.claude.com/docs/zh-TW/agent-sdk/custom-tools#require-approval-for-specific-tools) 的自訂工具也除外。請謹慎使用 |

132| `plan` | 規劃模式 | Claude 在不編輯您的原始檔案的情況下探索和規劃;檔案編輯永遠不會自動被核准,並透過您的 `canUseTool` 回呼提示 |150| `plan` | 規劃模式 | Claude 會探索並規劃,但不會編輯您的原始檔;檔案編輯永遠不會自動核准,而是透過您的 `canUseTool` 回呼提示 |

133| `auto` | 模型分類核准 | 模型分類器檢閱殼層命令和網路請求等動作,允許或阻止它檢閱的每一個。請參閱 [Auto 模式](https://code.claude.com/docs/zh-TW/permission-modes.md#eliminate-prompts-with-auto-mode)以了解可用性和決策順序 |151| `auto` | 由模型分類的核准 | 模型分類器會審查 shell 命令和網路請求等動作,對其審查的每個動作予以允許或封鎖。如需可用性與決策順序,請參閱[自動模式](https://code.claude.com/docs/zh-TW/permission-modes.md#eliminate-prompts-with-auto-mode) |

134 152 

135> [!WARNING]153> [!WARNING]

136>154>

137> **Subagent 繼承:** 如果您的主工作階段處於 [plan mode](https://code.claude.com/docs/zh-TW/permission-modes.md#analyze-before-you-edit-with-plan-mode),其 [`AgentDefinition`](https://code.claude.com/docs/zh-TW/agent-sdk/typescript#agentdefinition) 設定 `permissionMode: "acceptEdits"` 的 subagent 仍會在 plan mode 中執行。該 subagent 對您原始檔案的 `Edit` 和 `Write` 呼叫仍會送往您的 `canUseTool` 回呼。plan mode 對您定義的 subagent 同樣有效,因此將工作交給 subagent 並不能繞過先檢閱計畫的步驟。155> **Subagent 繼承:** 如果您的主要工作階段處於 [plan mode](https://code.claude.com/docs/zh-TW/permission-modes.md#analyze-before-you-edit-with-plan-mode),即使 subagent 的 [`AgentDefinition`](https://code.claude.com/docs/zh-TW/agent-sdk/typescript#agentdefinition) 設定了 `permissionMode: "acceptEdits"`,該 subagent 仍會在 plan mode 中執行。該 subagent 對您原始檔的 `Edit` 和 `Write` 呼叫仍會送往您的 `canUseTool` 回呼。Plan mode 對您定義的 subagent 同樣有效,因此將工作交給 subagent 並不能繞過先審查計劃的步驟。

138>156>

139> subagent 會從主工作階段繼承 `plan`、`acceptEdits`、`auto` 或 `bypassPermissions`,而在 `default` 或 `dontAsk` 模式的主工作階段下,它會以您設定的模式執行。即使如此,Claude Code 也永遠不會套用 `"bypassPermissions"` 值,且只有在該 subagent [可使用自動模式](https://code.claude.com/docs/zh-TW/permission-modes.md#eliminate-prompts-with-auto-mode)時才會套用 `"auto"` 值。`bypassPermissions` 例外需要 Claude Code v2.1.267 或更新版本。157> Subagent 會從主要工作階段繼承 `plan`、`acceptEdits`、`auto` 或 `bypassPermissions`;而在 `default` 或 `dontAsk` 模式的主要工作階段下,subagent 會以您設定的模式執行。即便如此,Claude Code 永遠不會套用 `"bypassPermissions"` 值,且只有在該 subagent [可使用自動模式](https://code.claude.com/docs/zh-TW/permission-modes.md#eliminate-prompts-with-auto-mode)時才會套用 `"auto"` 值。`bypassPermissions` 例外需要 Claude Code v2.1.267 或更新版本。

140>158>

141> 子代理可能具有不同的系統提示和比您的主代理更少受限的行為,因此繼承 `bypassPermissions` 會授予它們完整的自主系統存取權。[沒有任何模式自動核准的動作](https://code.claude.com/docs/zh-TW/permission-modes.md#actions-no-mode-auto-approves)仍然適用。159> Subagent 可能具有不同的系統提示詞,且行為限制比您的主要 agent 更少,因此繼承 `bypassPermissions` 會授予它們完整、自主的系統存取權。[任何模式都不會自動核准的動作](https://code.claude.com/docs/zh-TW/permission-modes.md#actions-no-mode-auto-approves)仍然適用。

142 160 

143### 設定權限模式161### 設定權限模式

144 162 

145您可以在開始查詢時設定一次權限模式,或在工作階段進行中動態變更它。163您可以在開始查詢時設定一次權限模式,也可以在工作階段進行中動態變更。

146 164 

147**在查詢時**165**查詢時**

148 166 

149在建立查詢時傳遞 `permission_mode`(Python)或 `permissionMode`(TypeScript)。167在建立查詢時傳入 `permission_mode`(Python)或 `permissionMode`(TypeScript)。

150 168 

151```python Python theme={null}169```python Python theme={null}

152import asyncio170import asyncio


186main();204main();

187```205```

188 206 

189**在串流期間**207**串流期間**

190 208 

191呼叫 `set_permission_mode()`(Python)或 `setPermissionMode()`(TypeScript)以在工作階段中途變更模式。新模式會立即對所有後續工具請求生效。這讓您可以從限制性開始,並隨著信任建立而放寬權限,例如在檢閱 Claude 的初始方法後切換到 `acceptEdits`。209呼叫 `set_permission_mode()`(Python)或 `setPermissionMode()`(TypeScript)即可在工作階段中途變更模式。新模式會立即對所有後續的工具請求生效。這讓您可以從嚴格的限制開始,隨著信任建立再逐步放寬權限,例如在審查 Claude 的初步做法後切換至 `acceptEdits`。

192 210 

193```python Python theme={null}211```python Python theme={null}

194import asyncio212import asyncio


242 260 

243### 模式詳細資訊261### 模式詳細資訊

244 262 

245#### 接受編輯模式(`acceptEdits`)263#### Accept edits 模式(`acceptEdits`)

246 264 

247自動核准檔案操作,讓 Claude 可以編輯程式碼而不會提示。其他工具(例如不是檔案系統操作的 Bash 命令)仍然需要正常權限。265自動核准檔案操作,讓 Claude 無需提示即可編輯程式碼。其他工具(例如非檔案系統操作的 Bash 命令)仍需一般權限。

248 266 

249**自動核准的操作:**267**自動核准的操作:**

250 268 

251* 檔案編輯(Edit、Write 工具)269* 檔案編輯(Edit、Write 工具)

252* 檔案系統命令:`mkdir`、`touch`、`rm`、`rmdir`、`mv`、`cp`、`sed`270* 檔案系統命令:`mkdir`、`touch`、`rm`、`rmdir`、`mv`、`cp`、`sed`

253 271 

254兩者都只適用於工作目錄或 `additionalDirectories` 內的路徑。在 `acceptEdits` 模式中,當 Claude 執行以下操作時,Claude Code 不會自動核准請求:272兩者都僅適用於工作目錄或 `additionalDirectories` 內的路徑。在 `acceptEdits` 模式下,當 Claude 進行以下操作時,Claude Code 不會自動核准該請求:

255 273 

256* 在該範圍外的路徑上工作274* 處理該範圍之外的路徑

257* 寫入受保護的路徑275* 寫入受保護的路徑

258* 使用 `rm` 或 `rmdir` 移除 Claude Code 識別為[關鍵路徑](https://code.claude.com/docs/zh-TW/permission-modes.md#critical-paths)的路徑276* 使用 `rm` 或 `rmdir` 移除 Claude Code 識別為[關鍵路徑](https://code.claude.com/docs/zh-TW/permission-modes.md#critical-paths)的路徑

277* 執行帶有選項、glob,或 `timeout 5`、`LANG=C` 等前綴的 [`touch`](https://code.claude.com/docs/zh-TW/permission-modes#auto-approve-file-edits-with-acceptedits-mode)

259 278 

260**使用時機:** 您信任 Claude 的編輯並想要更快的迭代,例如在原型設計期間或在隔離目錄中工作時。279**適用時機:** 您信任 Claude 的編輯並希望加快反覆開發的速度,例如在製作原型期間或在隔離的目錄中工作時。

261 280 

262#### 不要詢問模式(`dontAsk`)281#### Don't ask 模式(`dontAsk`)

263 282 

264將任何權限提示轉換為拒絕,而不呼叫 `canUseTool`,不過您安裝的 [mod](https://code.claude.com/docs/zh-TW/plugins/mods/overview.md) 仍可核准[其中部分呼叫](https://code.claude.com/docs/zh-TW/permissions.md#precedence-among-rules-hooks-and-mods)。由 `allowed_tools`、`settings.json` 允許規則或 hook 預先核准的工具會正常執行。在 `default` 模式中不需要核准的呼叫也會執行,例如在您的工作目錄內的檔案讀取和對 `Agent` 的呼叫。283將任何權限提示轉換為拒絕,且不會呼叫 `canUseTool`,不過您安裝的 [mod](https://code.claude.com/docs/zh-TW/plugins/mods/overview.md) 仍可核准[其中部分呼叫](https://code.claude.com/docs/zh-TW/permissions.md#precedence-among-rules-hooks-and-mods)。由 `allowed_tools`、`settings.json` allow 規則或 hook 預先核准的工具會正常執行。在 `default` 模式下不需要核准的呼叫也會正常執行,例如讀取您工作目錄內的檔案以及對 `Agent` 的呼叫。

265 284 

266您的組織[設定為 `ask`](https://code.claude.com/docs/zh-TW/mcp#organization-controls-on-connector-tools) 的連接器工具、需要使用者互動的工具、[從網路路徑讀取](https://code.claude.com/docs/zh-TW/permissions.md#network-paths),以及已識別的[關鍵路徑移除](https://code.claude.com/docs/zh-TW/permission-modes.md#critical-paths)即使符合允許規則也會被拒絕。`PreToolUse` hook 允許也不會清除已識別的關鍵路徑移除或從網路路徑讀取。識別這些移除的檢查[可能會遺漏某些命令](https://code.claude.com/docs/zh-TW/permission-modes.md#critical-paths)。285以下呼叫即使符合 allow 規則也會被拒絕:

267 286 

268**使用時機:** 您想要為無頭代理提供固定、明確的工具表面,並偏好硬拒絕而非無聲依賴 `canUseTool` 不存在。287* [您的組織設為 `ask`](https://code.claude.com/docs/zh-TW/mcp#organization-controls-on-connector-tools) 的連接器工具

288* 需要使用者互動的工具,例如 `AskUserQuestion`,以及其伺服器設定了 [`_meta["anthropic/requiresUserInteraction"]`](https://code.claude.com/docs/zh-TW/mcp#require-approval-for-a-specific-tool) 的 MCP 工具

289* 您的應用程式將其 `permission_policy` 設為 [`always_ask`](https://code.claude.com/docs/zh-TW/agent-sdk/custom-tools#require-approval-for-specific-tools) 的自訂工具

290* [從網路路徑讀取](https://code.claude.com/docs/zh-TW/permissions.md#network-paths)

291* 經識別的[關鍵路徑移除](https://code.claude.com/docs/zh-TW/permission-modes.md#critical-paths)

269 292 

270#### 略過權限模式(`bypassPermissions`)293如果您的 `PreToolUse` hook 對經識別的關鍵路徑移除、從網路路徑讀取,或對標記為 `always_ask` 之工具的呼叫傳回 `allow`,該呼叫仍會被拒絕。識別這些移除操作的檢查[可能會遺漏某些命令](https://code.claude.com/docs/zh-TW/permission-modes.md#critical-paths)。

271 294 

272自動核准工具使用而不提示,除了下面警告中列出的情況。鉤子仍然執行,如果需要可以阻止操作。在 Linux 和 macOS 上,Claude Code 拒絕在此模式下以 root 身份或在[已識別的沙箱](https://code.claude.com/docs/zh-TW/permission-modes.md#skip-all-checks-with-bypasspermissions-mode)外的 `sudo` 下啟動,查詢在第一個回合之前失敗。295**適用時機:** 您希望為 headless agent 提供固定且明確的工具範圍,並偏好直接拒絕,而非默默依賴 `canUseTool` 不存在的情況。

296 

297#### Bypass permissions 模式(`bypassPermissions`)

298 

299無需提示即自動核准工具使用,但[任何模式都不會自動核准的動作](https://code.claude.com/docs/zh-TW/permission-modes.md#actions-no-mode-auto-approves)除外。Hook 仍會執行,並可在必要時封鎖操作。在 Linux 和 macOS 上,若不在[受認可的沙箱](https://code.claude.com/docs/zh-TW/permission-modes.md#skip-all-checks-with-bypasspermissions-mode)中,無論是以 root 身分或透過 `sudo`,Claude Code 都會拒絕以此模式啟動,且查詢會在第一個回合之前失敗。

273 300 

274> [!WARNING]301> [!WARNING]

275>302>

276> 請極其謹慎使用。Claude 在此模式中具有完整的系統存取權。僅在您信任所有可能操作的受控環境中使用。303> 請極度謹慎使用。在此模式下,Claude 擁有完整的系統存取權。僅在您信任所有可能操作的受控環境中使用。

277>304>

278> `allowed_tools` 不會限制此模式。每個工具都會被核准,而不僅僅是您列出的工具。這些控制仍然適用:305> `allowed_tools` 不會限制此模式。所有工具都會被核准,而不僅是您列出的工具。以下控制措施仍然適用:

279>306>

280> * 拒絕規則、明確的 `ask` 規則和鉤子在模式檢查之前被評估,仍然可以阻止工具。307> * Deny 規則、明確的 `ask` 規則和 hook 會在模式檢查之前進行評估,且仍可封鎖工具。

281> * 您的組織[設定為 `ask`](https://code.claude.com/docs/zh-TW/mcp#organization-controls-on-connector-tools) 的連接器工具、需要使用者互動的工具,以及已識別的[關鍵路徑移除](https://code.claude.com/docs/zh-TW/permission-modes.md#critical-paths)仍然會進入您的 `canUseTool` 回呼。識別這些移除的檢查[可能會遺漏某些命令](https://code.claude.com/docs/zh-TW/permission-modes.md#critical-paths)。308> * [您的組織設為 `ask`](https://code.claude.com/docs/zh-TW/mcp#organization-controls-on-connector-tools) 的連接器工具、需要使用者互動的工具,以及經識別的[關鍵路徑移除](https://code.claude.com/docs/zh-TW/permission-modes.md#critical-paths),仍會交由您的 `canUseTool` 回呼處理。識別這些移除操作的檢查[可能會遺漏某些命令](https://code.claude.com/docs/zh-TW/permission-modes.md#critical-paths)。在[雲端工作階段](https://code.claude.com/docs/zh-TW/claude-code-on-the-web.md)之外,對您的應用程式[標記為 `always_ask`](https://code.claude.com/docs/zh-TW/agent-sdk/custom-tools#require-approval-for-specific-tools) 之自訂工具的呼叫也會交由該回呼處理。

282> * [跨工作階段訊息保護措施](https://code.claude.com/docs/zh-TW/permission-modes.md#skip-all-checks-with-bypasspermissions-mode)仍然適用。309> * [跨工作階段訊息傳遞防護措施](https://code.claude.com/docs/zh-TW/permission-modes.md#skip-all-checks-with-bypasspermissions-mode)仍然適用。

283 310 

284#### 規劃模式(`plan`)311#### Plan mode(`plan`)

285 312 

286Claude 探索程式碼庫並產生計畫,而不編輯您的原始檔案。唯讀工具的執行方式與在 `default` 權限模式中相同。313Claude 會探索程式碼庫並產生計劃,但不會編輯您的原始檔。在 plan mode 中,檔案編輯永遠不會自動核准,即使符合 allow 規則或 `PreToolUse` hook 傳回 `allow` 也一樣。這些編輯會改為透過您的 `canUseTool` 回呼提示。

287 314 

288在 plan mode 中,檔案編輯永遠不會自動被核准,即使符合允許規則或 `PreToolUse` hook 傳回 `allow`。它們會改為透過您的 `canUseTool` 回呼提示。在 Claude Code v2.1.212 或更新版本上,修改檔案的 shell 命令(例如 `touch` 和 `rm`)會以相同方式到達您的 `canUseTool` 回呼。315當工作階段可使用自動模式時,Claude 在規劃期間執行的命令預設不會送達您的回呼,因為[自動模式](https://code.claude.com/docs/zh-TW/permission-modes.md#eliminate-prompts-with-auto-mode)所使用的分類器模型會[改為審查這些命令](https://code.claude.com/docs/zh-TW/permission-modes.md#analyze-before-you-edit-with-plan-mode)。啟用該審查時,分類器也可以核准原本會送達您回呼的唯讀呼叫,例如沒有 allow 規則的 `WebFetch` 呼叫。

289 316 

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

318>

319> 在 TypeScript SDK 中,如果您將 `allowDangerouslySkipPermissions: true` 與 `permissionMode: 'plan'` 一起設定,檔案編輯仍會送達您的 `canUseTool` 回呼。若要之後使用 `setPermissionMode()` 將以 plan mode 啟動的工作階段切換為 `bypassPermissions`,您需要從一開始就設定 `allowDangerouslySkipPermissions`。

291 320 

292Claude 可能會使用 `AskUserQuestion` 在最終確定計畫之前澄清需求。請參閱[處理核准和使用者輸入](https://code.claude.com/docs/zh-TW/agent-sdk/user-input.md#handle-clarifying-questions)以處理這些提示。321Claude 可能會在定案計劃之前使用 `AskUserQuestion` 釐清需求。如需處理這些提示的方式,請參閱[處理核准與使用者輸入](https://code.claude.com/docs/zh-TW/agent-sdk/user-input.md#handle-clarifying-questions)。

293 322 

294**使用時機:** 您想要 Claude 提議變更而不執行它們,例如在程式碼審查期間或當您需要在進行變更之前核准變更時。323**適用時機:** 您希望 Claude 提出變更建議但不執行,例如在程式碼審查期間,或在變更進行之前需要您核准時。

295 324 

296#### 自動模式(`auto`)325#### 自動模式(`auto`)

297 326 

298分類器模型會在 shell 命令和網路請求等動作執行之前檢閱它們,並允許或阻止它檢閱的每一個動作。如需了解自動模式所需的模型和提供者,以及它評估動作的順序,請參閱[使用自動模式消除權限提示](https://code.claude.com/docs/zh-TW/permission-modes.md#eliminate-prompts-with-auto-mode)。327分類器模型會在 shell 命令和網路請求等動作執行之前進行審查,並對其審查的每個動作予以允許或封鎖。如需自動模式所需的模型與供應商,以及其評估動作的順序,請參閱[使用自動模式消除權限提示](https://code.claude.com/docs/zh-TW/permission-modes.md#eliminate-prompts-with-auto-mode)。

299 328 

300如果您使用 [`set_model()`](https://code.claude.com/docs/zh-TW/agent-sdk/python#claudesdkclient)、[`setModel()`](https://code.claude.com/docs/zh-TW/agent-sdk/typescript#query-object) 或 [`applyFlagSettings()`](https://code.claude.com/docs/zh-TW/agent-sdk/typescript#applyflagsettings),將處於自動模式的工作階段切換到自動模式不支援的模型,工作階段會變更為 `default` 模式:329如果您使用 [`set_model()`](https://code.claude.com/docs/zh-TW/agent-sdk/python#claudesdkclient)、[`setModel()`](https://code.claude.com/docs/zh-TW/agent-sdk/typescript#query-object) 或 [`applyFlagSettings()`](https://code.claude.com/docs/zh-TW/agent-sdk/typescript#applyflagsettings),將處於自動模式的工作階段切換至自動模式不支援的模型,工作階段會變更為 `default` 模式:

301 330 

302* **您會看到的內容**:一則子類型為 `status` 且 `permissionMode` 設定為 `"default"` 的 `system` 訊息,TypeScript SDK 將其型別定義為 [`SDKStatusMessage`](https://code.claude.com/docs/zh-TW/agent-sdk/typescript#sdkstatusmessage)。從那時起,需要核准且不符合任何允許規則的呼叫會到達您的 `canUseTool` 回呼。331* **您會看到的內容**:一則 subtype 為 `status`、且 `permissionMode` 設為 `"default"` 的 `system` 訊息,TypeScript SDK 將其型別定義為 [`SDKStatusMessage`](https://code.claude.com/docs/zh-TW/agent-sdk/typescript#sdkstatusmessage)。從此之後,需要核准且不符合任何 allow 規則的呼叫會送達您的 `canUseTool` 回呼。

303* **返回自動模式**:切換到支援的模型,然後呼叫 `set_permission_mode("auto")` 或 `setPermissionMode("auto")`。如果您將模型切換回來而未進行該呼叫,工作階段會保持在 `default` 模式。當不支援的模型處於作用中時,該呼叫會失敗並顯示 `Cannot set permission mode to auto: auto mode unavailable for this model`。332* **若要回到自動模式**:切換至受支援的模型,然後呼叫 `set_permission_mode("auto")` 或 `setPermissionMode("auto")`。如果您將模型切換回來但未進行該呼叫,工作階段會維持在 `default` 模式。當不受支援的模型處於作用中時,該呼叫會失敗並顯示 `Cannot set permission mode to auto: auto mode unavailable for this model`。

304 333 

305在 `set_model()`、`setModel()` 或 `applyFlagSettings()` 呼叫後變更為 `default` 模式,需要 Claude Code v2.1.299 或更新版本。334在呼叫 `set_model()`、`setModel()` 或 `applyFlagSettings()` 之後變更為 `default` 模式的行為,需要 Claude Code v2.1.299 或更新版本。

306 335 

307## 相關資源336## 相關資源

308 337 

Details

70>70>

71> 路徑應指向 plugin 的根目錄:`skills/`、`agents/`、`hooks/`、`commands/` 或 `.claude-plugin/` 的父目錄。71> 路徑應指向 plugin 的根目錄:`skills/`、`agents/`、`hooks/`、`commands/` 或 `.claude-plugin/` 的父目錄。

72 72 

73### 將 plugins 新增至執行中的工作階段

74 

75在 TypeScript SDK 中,對 `query()` 傳回的 `Query` 物件呼叫 [`reloadPlugins()`](https://code.claude.com/docs/zh-TW/agent-sdk/typescript#load-more-plugin-folders-with-addplugins),並在該呼叫的 `addPlugins` 選項中列出 plugin 目錄。每個 `addPlugins` 項目都是一個帶有絕對 `path` 的 `{ type: "local", path }` 物件。需要 TypeScript Agent SDK v0.3.301 或更新版本。

76 

77在此範例中,`q` 是 `query()` 傳回的 `Query` 物件。此範例將一個 plugin 目錄新增至執行中的工作階段,並在 `reloadPlugins()` 傳回後,列印工作階段中每個 plugin 的路徑:

78 

79```typescript theme={null}

80const result = await q.reloadPlugins({

81 addPlugins: [{ type: "local", path: "/home/user/plugins/another-plugin" }]

82});

83 

84console.log(result.plugins.map((plugin) => plugin.path));

85```

86 

87如果 plugin 已加載,列印出的清單會包含 `/home/user/plugins/another-plugin`。如果清單中缺少該路徑,或 `reloadPlugins()` 被拒絕,請參閱[當 `reloadPlugins()` 未加載 `addPlugins` 資料夾時](https://code.claude.com/docs/zh-TW/agent-sdk/typescript#when-reloadplugins-doesnt-load-the-addplugins-folders)以了解原因。

88 

73## 驗證 plugin 安裝89## 驗證 plugin 安裝

74 90 

75當 plugins 成功加載時,它們會出現在系統初始化消息中。您可以驗證您的 plugins 是否可用:91當 plugins 成功加載時,它們會出現在系統初始化消息中。您可以驗證您的 plugins 是否可用:

Details

200| :- | :- | :- | :- |200| :- | :- | :- | :- |

201| `title` | `string` | `undefined` | 工具的人類可讀標題 |201| `title` | `string` | `undefined` | 工具的人類可讀標題 |

202| `readOnlyHint` | `boolean` | `false` | 若為 `true`,工具不會修改其環境 |202| `readOnlyHint` | `boolean` | `false` | 若為 `true`,工具不會修改其環境 |

203| `destructiveHint` | `boolean` | `true` | 若為 `true`,工具可能執行破壞性更新(僅在 `readOnlyHint` 為 `false` 時有意義) |203| `destructiveHint` | `boolean` | `true` | 若為 `true`,工具可能執行破壞性更新。對於您標記為 [`always_ask`](#mcpservertoolpolicy) 的任何工具,請明確設定 `destructiveHint: true`,否則自動模式分類器可能會代替您的 `canUseTool` 回呼核准該工具的呼叫。僅讓 `destructiveHint` 保持未設定是不夠的,因為 Claude Code 在處理 `always_ask` 呼叫時,會將未設定的 `destructiveHint` 視為 `false`,儘管 MCP 規格的預設值為 `true` |

204| `idempotentHint` | `boolean` | `false` | 若為 `true`,以相同引數重複呼叫不會產生額外效果(僅在 `readOnlyHint` 為 `false` 時有意義) |204| `idempotentHint` | `boolean` | `false` | 若為 `true`,以相同引數重複呼叫不會產生額外效果(僅在 `readOnlyHint` 為 `false` 時有意義) |

205| `openWorldHint` | `boolean` | `true` | 若為 `true`,工具會與外部實體互動(例如網路搜尋)。若為 `false`,工具的範圍是封閉的(例如記憶工具) |205| `openWorldHint` | `boolean` | `true` | 若為 `true`,工具會與外部實體互動(例如網路搜尋)。若為 `false`,工具的範圍是封閉的(例如記憶工具) |

206 206 


630 ): Promise<SDKControlReadFileResponse | null>;630 ): Promise<SDKControlReadFileResponse | null>;

631 reloadPlugins(options?: {631 reloadPlugins(options?: {

632 holdOnCacheImpact?: boolean;632 holdOnCacheImpact?: boolean;

633 addPlugins?: SdkPluginConfig[];

633 }): Promise<SDKControlReloadPluginsResponse>;634 }): Promise<SDKControlReloadPluginsResponse>;

634 reloadSkills(): Promise<SDKControlReloadSkillsResponse>;635 reloadSkills(): Promise<SDKControlReloadSkillsResponse>;

635 reloadOutputStyles(): Promise<SDKControlReloadOutputStylesResponse>;636 reloadOutputStyles(): Promise<SDKControlReloadOutputStylesResponse>;


669| `mcpServerStatus()` | 以 [`McpServerStatus`](#mcpserverstatus)`[]` 回傳已連線 MCP 伺服器的狀態 |670| `mcpServerStatus()` | 以 [`McpServerStatus`](#mcpserverstatus)`[]` 回傳已連線 MCP 伺服器的狀態 |

670| `getContextUsage(opts?)` | 回傳 [`SDKControlGetContextUsageResponse`](#sdkcontrolgetcontextusageresponse),依類別、skill 與工具細分工作階段的上下文視窗用量。使用預設的 `detail` 時,它包含 `/context` 在互動式工作階段中顯示的資料,並透過不會出現在訊息串流中的 token 計數 API 請求計算;請參閱[這些請求的處理方式](#sdkcontrolgetcontextusageresponse)。[`detail` 選項](#sdkcontrolgetcontextusageresponse)需要 Agent SDK v0.3.257 或更新版本 |671| `getContextUsage(opts?)` | 回傳 [`SDKControlGetContextUsageResponse`](#sdkcontrolgetcontextusageresponse),依類別、skill 與工具細分工作階段的上下文視窗用量。使用預設的 `detail` 時,它包含 `/context` 在互動式工作階段中顯示的資料,並透過不會出現在訊息串流中的 token 計數 API 請求計算;請參閱[這些請求的處理方式](#sdkcontrolgetcontextusageresponse)。[`detail` 選項](#sdkcontrolgetcontextusageresponse)需要 Agent SDK v0.3.257 或更新版本 |

671| `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 或更新版本 |672| `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 或更新版本 |

672| `reloadPlugins(options?)` | 從磁碟重新載入外掛,讓您在工作階段中途安裝或編輯的外掛能送達正在執行的工作階段。會以 [`SDKControlReloadPluginsResponse`](#sdkcontrolreloadpluginsresponse) 解析,其中列出工作階段的命令、subagent、外掛和 MCP 伺服器狀態。需要 Agent SDK v0.2.85 或更新版本。[`holdOnCacheImpact` 選項](#sdkcontrolreloadpluginsresponse)需要 Agent SDK v0.3.268 或更新版本 |673| `reloadPlugins(options?)` | 從磁碟重新載入外掛,讓您在工作階段中途安裝或編輯的外掛能套用至執行中的工作階段。會解析為 [`SDKControlReloadPluginsResponse`](#sdkcontrolreloadpluginsresponse),列出工作階段的命令、subagent、外掛與 MCP 伺服器狀態。需要 Agent SDK v0.2.85 或更新版本。[`holdOnCacheImpact` 選項](#sdkcontrolreloadpluginsresponse)需要 Agent SDK v0.3.268 或更新版本。[`addPlugins` 選項](#load-more-plugin-folders-with-addplugins)需要 Agent SDK v0.3.301 或更新版本 |

673| `reloadSkills()` | 從磁碟重新載入 skill,讓您在工作階段中途新增或編輯的 skill 可供正在執行的工作階段使用。會以 [`SDKControlReloadSkillsResponse`](#sdkcontrolreloadskillsresponse) 解析,其中列出重新載入後可用的 skill。需要 Agent SDK v0.3.163 或更新版本 |674| `reloadSkills()` | 從磁碟重新載入 skill,讓您在工作階段中途新增或編輯的 skill 可供正在執行的工作階段使用。會以 [`SDKControlReloadSkillsResponse`](#sdkcontrolreloadskillsresponse) 解析,其中列出重新載入後可用的 skill。需要 Agent SDK v0.3.163 或更新版本 |

674| `reloadOutputStyles()` | 從磁碟重新讀取[輸出風格](https://code.claude.com/docs/zh-TW/output-styles.md),讓您在工作階段中途新增或編輯的風格檔案可供正在執行的工作階段使用。會以 [`SDKControlReloadOutputStylesResponse`](#sdkcontrolreloadoutputstylesresponse) 解析,其中列出重新載入後可用的風格名稱。需要 Agent SDK v0.3.261 或更新版本 |675| `reloadOutputStyles()` | 從磁碟重新讀取[輸出風格](https://code.claude.com/docs/zh-TW/output-styles.md),讓您在工作階段中途新增或編輯的風格檔案可供正在執行的工作階段使用。會以 [`SDKControlReloadOutputStylesResponse`](#sdkcontrolreloadoutputstylesresponse) 解析,其中列出重新載入後可用的風格名稱。需要 Agent SDK v0.3.261 或更新版本 |

675| `seedReadState(path, mtime)` | 將檔案標記為已讀取,讓之後的 Edit 不會因 `File has not been read yet` 而失敗。請參閱 [`seedReadState()`](#seedreadstate)。需要 TypeScript SDK v0.2.83 或更新版本 |676| `seedReadState(path, mtime)` | 將檔案標記為已讀取,讓之後的 Edit 不會因 `File has not been read yet` 而失敗。請參閱 [`seedReadState()`](#seedreadstate)。需要 TypeScript SDK v0.2.83 或更新版本 |


1135 1136 

1136`cache_impact` 只會與 `held: true` 一起出現。`mcp_servers_added` 和 `mcp_servers_removed` 以具範圍的 `plugin:<plugin>:<server>` 名稱,指出重新載入會註冊或移除的外掛 MCP 伺服器。這些名稱由外掛作者撰寫,因此在顯示之前請先驗證。`lsp_tool_change` 說明套用後是否會新增或移除 LSP 工具,若兩者皆不會則為 `null`。`may-` 形式表示檢查無法完整看到待處理的外掛集合。1137`cache_impact` 只會與 `held: true` 一起出現。`mcp_servers_added` 和 `mcp_servers_removed` 以具範圍的 `plugin:<plugin>:<server>` 名稱,指出重新載入會註冊或移除的外掛 MCP 伺服器。這些名稱由外掛作者撰寫,因此在顯示之前請先驗證。`lsp_tool_change` 說明套用後是否會新增或移除 LSP 工具,若兩者皆不會則為 `null`。`may-` 形式表示檢查無法完整看到待處理的外掛集合。

1137 1138 

1139#### 使用 `addPlugins` 載入更多外掛資料夾

1140 

1141若要載入啟動時不在 [`plugins`](#options) 選項中的外掛資料夾,請將它們以 `addPlugins` 傳給 `reloadPlugins()`,這是一個 [`SdkPluginConfig`](#sdkpluginconfig) 項目清單,其 `path` 必須是絕對路徑。Claude Code 會在一次處理中載入新資料夾並重新載入工作階段現有的外掛。每個新增外掛的 MCP 伺服器也會連線,除非您在該資料夾的項目上設定了 [`skipMcpDiscovery`](#sdkpluginconfig)。需要 Agent SDK v0.3.301 或更新版本,以及 Claude Code v2.1.301 或更新版本。

1142 

1143此範例將一個資料夾新增至正在執行的查詢 `q`,並在呼叫回傳時列印工作階段已載入的每個外掛的安裝路徑:

1144 

1145```typescript theme={null}

1146const result = await q.reloadPlugins({

1147 addPlugins: [{ type: "local", path: "/opt/my-app/plugins/reports" }]

1148});

1149 

1150console.log(result.plugins.map((plugin) => plugin.path));

1151```

1152 

1153如果資料夾已載入,列印出的清單會包含 `/opt/my-app/plugins/reports`,且該外掛的命令和 subagent 會出現在 `result.commands` 和 `result.agents` 中。

1154 

1155新增的資料夾會一直是工作階段的一部分。當您再次呼叫 `reloadPlugins()` 時,Claude Code 會將它與其他外掛一起重新載入,您不需要再次在 `addPlugins` 中傳入它。

1156 

1157##### 當 `reloadPlugins()` 未載入 `addPlugins` 資料夾時

1158 

1159如果 `reloadPlugins()` 被拒絕,則不會新增任何 `addPlugins` 資料夾,因此重試時請再次在 `addPlugins` 中傳入它們。當拒絕是由下列原因之一造成時,工作階段會保留原本已有的外掛:

1160 

1161* **相對 `path` 或格式錯誤的項目**:錯誤訊息為 `add_plugins must be a list of { type: "local", path } entries with absolute paths`。只要有一個錯誤項目,Claude Code 就會拒絕整個清單,因此請將每個項目都以 `{ type: "local", path }` 搭配絕對 `path` 傳入

1162* **管理員已在您的受管設定中開啟 [`disableSideloadFlags`](https://code.claude.com/docs/zh-TW/settings-reference#disablesideloadflags)**:訊息為 `reload_plugins add_plugins is disabled by managed settings (disableSideloadFlags)`。若要載入該資料夾,請要求該管理員移除此設定

1163* **無法重建[沙箱](https://code.claude.com/docs/zh-TW/sandboxing.md)**:在開啟[沙箱機制](#sandboxsettings)時,Claude Code 會重建沙箱設定,使在沙箱中執行的 shell 命令無法寫入您新增的資料夾。訊息為 `the sandbox could not be rebuilt to keep shell commands out of this folder`。請檢查您的[沙箱設定](#sandboxsettings)是否仍構成有效的設定

1164 

1165如果您傳入 `holdOnCacheImpact` 且呼叫以 [`held: true`](#sdkcontrolreloadpluginsresponse) 解析,則不會新增 `addPlugins` 資料夾。若仍要新增,請以相同的 `addPlugins` 清單且不帶 `holdOnCacheImpact` 再次呼叫 `reloadPlugins()`。

1166 

1167當呼叫解析結果沒有 `held: true`,而某個資料夾仍未出現在 `result.plugins` 中時,請先檢查下列原因:

1168 

1169* **資料夾不存在或其外掛載入失敗**:`result.error_count` 為 `1` 或更高。即便如此,該資料夾仍是工作階段的一部分。修正資料夾後,再次呼叫 `reloadPlugins()` 以載入它,這次不需在 `addPlugins` 中列出它

1170* **Claude Code 執行檔早於 v2.1.301**:早於 v2.1.301 的執行檔會忽略 `addPlugins`,只重新載入工作階段原本已有的外掛。請檢查 [init 訊息](#sdksystemmessage)上的 `claude_code_version`,並執行 v2.1.301 或更新版本的執行檔

1171 

1138### `SDKControlReloadSkillsResponse`1172### `SDKControlReloadSkillsResponse`

1139 1173 

1140[`reloadSkills()`](#query-object) 的回傳型別。1174[`reloadSkills()`](#query-object) 的回傳型別。


1430 1464 

1431#### `McpSdkServerConfigWithInstance`1465#### `McpSdkServerConfigWithInstance`

1432 1466 

1467程序內 MCP 伺服器的設定,即由 [`createSdkMcpServer()`](#createsdkmcpserver) 建立並在您應用程式的程序內執行的伺服器。它是 `createSdkMcpServer()` 回傳的物件,再加上您自行新增的選用 `tools` 清單,內含 [`McpServerToolPolicy`](#mcpservertoolpolicy) 項目。若要要求對伺服器某個工具的呼叫進行核准,或拒絕這些呼叫,請新增一個指名該工具的項目。

1468 

1433```typescript theme={null}1469```typescript theme={null}

1434type McpSdkServerConfigWithInstance = {1470type McpSdkServerConfigWithInstance = {

1435 type: "sdk";1471 type: "sdk";

1436 name: string;1472 name: string;

1437 timeout?: number;1473 timeout?: number;

1474 tools?: McpServerToolPolicy[];

1438 instance: McpServer;1475 instance: McpServer;

1439};1476};

1440```1477```

1441 1478 

1479若要設定原則,請將 `createSdkMcpServer()` 回傳的物件展開到 `mcpServers` 中的新物件,並在該新物件中加入 `tools` 清單。`createSdkMcpServer()` 本身的 `tools` 選項是另一個清單,它存放工具定義,不接受原則項目。原則清單需要 Agent SDK v0.3.301 或更新版本,而 [`McpServerToolPolicy`](#mcpservertoolpolicy) 說明了每個 `permission_policy` 值的作用。

1480 

1481此範例以 `allowedTools` 萬用字元預先核准 `records` 伺服器上的每個工具,接著將 `delete_record` 標記為 `always_ask`,使對它的呼叫仍會送到 `canUseTool`。搭配 `destructiveHint: true` 註解,即使工作階段以 `auto` 模式執行,呼叫仍會抵達回呼;否則自動模式的[分類器](https://code.claude.com/docs/zh-TW/permission-modes.md#eliminate-prompts-with-auto-mode)可能會核准它。

1482 

1483```typescript theme={null}

1484import { query, tool, createSdkMcpServer } from "@anthropic-ai/claude-agent-sdk";

1485import { z } from "zod";

1486 

1487const deleteRecord = tool(

1488 "delete_record",

1489 "Delete a customer record by ID",

1490 { id: z.string() },

1491 async ({ id }) => ({ content: [{ type: "text", text: `Deleted record ${id}` }] }),

1492 { annotations: { destructiveHint: true } }

1493);

1494 

1495const records = createSdkMcpServer({ name: "records", tools: [deleteRecord] });

1496 

1497for await (const message of query({

1498 prompt: "Delete customer record 42",

1499 options: {

1500 mcpServers: {

1501 // Spread the returned config and add the policy list beside it

1502 records: {

1503 ...records,

1504 tools: [{ name: "delete_record", permission_policy: "always_ask" as const }]

1505 }

1506 },

1507 allowedTools: ["mcp__records__*"],

1508 canUseTool: async (toolName, input) => {

1509 console.log(`Approval requested for ${toolName}`);

1510 return { behavior: "allow", updatedInput: input };

1511 }

1512 }

1513})) {

1514 if (message.type === "result" && message.subtype === "success") {

1515 console.log(message.result);

1516 }

1517}

1518```

1519 

1520當 Claude 呼叫此工具時,腳本會在 `delete_record` 工具執行之前列印 `Approval requested for mcp__records__delete_record`,儘管 `allowedTools` 項目原本會核准此呼叫。

1521 

1522若要在工作階段執行期間變更或解除工具的原則,請將帶有新 `tools` 值的伺服器設定傳給 [`setMcpServers()`](#mcpsetserversresult)。您傳入的 `tools` 值會從 Claude 下一次呼叫該伺服器的工具時生效:

1523 

1524* **含有項目的清單**:這些項目會取代目前的原則

1525* **空清單**:清除伺服器上的所有原則

1526* **沒有 `tools` 鍵**:保留目前的原則

1527 

1528請在該呼叫中納入您的其他程序內伺服器,以及先前 `setMcpServers()` 呼叫所新增的任何伺服器,否則該呼叫會中斷它們的連線。

1529 

1530#### `McpServerToolPolicy`

1531 

1532[`McpSdkServerConfigWithInstance`](#mcpsdkserverconfigwithinstance) 的 `tools` 清單中的一個項目,指名伺服器的某個工具,並為對該工具的呼叫設定權限原則。此清單需要 Agent SDK v0.3.301 或更新版本,以及 Claude Code v2.1.301 或更新版本。較舊的 Claude Code 執行檔(例如您以 `pathToClaudeCodeExecutable` 指向的執行檔)會忽略此清單。此時 `always_ask` 和 `always_deny` 不會被強制執行,每個呼叫都會經過[權限流程](https://code.claude.com/docs/zh-TW/agent-sdk/permissions.md#how-permissions-are-evaluated)。

1533 

1534```typescript theme={null}

1535type McpServerToolPolicy = {

1536 name: string;

1537 permission_policy?: "always_allow" | "always_ask" | "always_deny";

1538 org_max_permission?: "allow" | "ask" | "blocked";

1539};

1540```

1541 

1542| 欄位 | 型別 | 說明 |

1543| :- | :- | :- |

1544| `name` | `string` | 傳給 [`tool()`](#tool) 的工具原始名稱,不含 `mcp__<server>__` 前綴 |

1545| `permission_policy` | `'always_allow' \| 'always_ask' \| 'always_deny'` | 此工具呼叫的核准原則,[`always_ask` 或 `always_deny`](#permission-policy-values)。`always_allow` 在程序內伺服器上會被忽略:若要預先核准工具,請改為在 [`allowedTools`](#options) 中列出它 |

1546| `org_max_permission` | `'allow' \| 'ask' \| 'blocked'` | 由組織管理員設定的每個工具上限。在程序內伺服器上會被忽略,因此請保持未設定 |

1547 

1548##### `permission_policy` 值

1549 

1550選擇 `always_ask` 以自行核准每個呼叫,或選擇 `always_deny` 以直接封鎖該工具:

1551 

1552* **`always_ask`**:對該工具的每個呼叫都[需要核准](https://code.claude.com/docs/zh-TW/agent-sdk/permissions.md#how-permissions-are-evaluated),即使有 `allowedTools` 項目或允許規則涵蓋它。除非先行處理,否則呼叫會送到您的 `canUseTool` 回呼或 [`permissionPromptToolName`](#options) 工具。您載入的外掛中的 [mod](https://code.claude.com/docs/zh-TW/plugins/mods/overview.md) [可以先核准它](https://code.claude.com/docs/zh-TW/permissions.md#precedence-among-rules-hooks-and-mods)。否則,在 `dontAsk` 模式下會被拒絕,而在 [`auto`、`plan` 和 `bypassPermissions` 模式](#permission-modes-that-can-approve-an-always_ask-call)下,它可能在抵達您的回呼之前就被核准

1553* **`always_deny`**:對該工具的呼叫在每種權限模式下都[會被拒絕](https://code.claude.com/docs/zh-TW/agent-sdk/permissions.md#how-permissions-are-evaluated),包括 `bypassPermissions`,但您載入的外掛中的 mod [仍可以核准它](https://code.claude.com/docs/zh-TW/permissions.md#precedence-among-rules-hooks-and-mods)

1554 

1555如果您既未傳入 `canUseTool` 也未傳入 `permissionPromptToolName`,或將 [`permissionPrompts`](#options) 設為 `'none'`,則未先行處理的 `always_ask` 呼叫會被拒絕,除非有 [`PermissionRequest` hook](https://code.claude.com/docs/zh-TW/hooks#permissionrequest) 允許它。

1556 

1557##### 可以核准 `always_ask` 呼叫的權限模式

1558 

1559在 `auto`、`plan` 和 `bypassPermissions` 模式下,對標記為 [`always_ask`](#permission-policy-values) 的工具的呼叫,可能在抵達您的 `canUseTool` 回呼之前就被核准。請在此清單中找到您工作階段的模式,了解該核准何時發生,以及要設定什麼才能讓呼叫仍抵達您的回呼:

1560 

1561* **`auto`**:自動模式[分類器](https://code.claude.com/docs/zh-TW/permission-modes.md#eliminate-prompts-with-auto-mode)會審查呼叫並可能允許它。若要讓每個呼叫在 `auto` 模式下都抵達您的回呼,請在工具的[註解](#toolannotations)中設定 `destructiveHint: true`

1562* **`plan`**:當工作階段[可使用自動模式](https://code.claude.com/docs/zh-TW/permission-modes.md#eliminate-prompts-with-auto-mode)時,對註解為 `readOnlyHint: true` 的 `always_ask` 工具的呼叫會送到自動模式分類器,分類器可能允許它們。對其他 `always_ask` 工具的呼叫會抵達您的回呼。若要讓唯讀工具的呼叫也抵達您的回呼,請在該工具的註解中,於 `readOnlyHint: true` 旁加入 `destructiveHint: true`。或者,將 [`useAutoModeDuringPlan`](https://code.claude.com/docs/zh-TW/settings-reference#useautomodeduringplan) 設為 `false`,這會在規劃期間關閉分類器

1563* **`bypassPermissions`**:當 [`CLAUDE_CODE_REMOTE`](https://code.claude.com/docs/zh-TW/env-vars#variables) 環境變數為 `true` 時(在[雲端工作階段](https://code.claude.com/docs/zh-TW/claude-code-on-the-web.md)中即是如此),無論工具的註解為何,呼叫都會在不經過您回呼的情況下被核准。在其他任何地方,呼叫都會抵達您的回呼。若要讓它在雲端工作階段中也抵達您的回呼,請改以 `default` 或 `acceptEdits` 模式執行工作階段

1564 

1565在 `auto` 和 `plan` 模式下,請明確將 `destructiveHint` 設為 `true`。對於 `always_ask` 呼叫,Claude Code 會將未設定的 `destructiveHint` 視為 `false`,儘管 [`ToolAnnotations`](#toolannotations) 下列出的預設值為 `true`。

1566 

1442#### `McpClaudeAIProxyServerConfig`1567#### `McpClaudeAIProxyServerConfig`

1443 1568 

1444```typescript theme={null}1569```typescript theme={null}


1464| 欄位 | 型別 | 說明 |1589| 欄位 | 型別 | 說明 |

1465| :- | :- | :- |1590| :- | :- | :- |

1466| `type` | `'local'` | 必須為 `'local'`(目前僅支援本機外掛) |1591| `type` | `'local'` | 必須為 `'local'`(目前僅支援本機外掛) |

1467| `path` | `string` | 外掛目錄的絕對或相對路徑 |1592| `path` | `string` | 外掛目錄的路徑。相對路徑會在工作階段啟動時相對於 [`cwd`](#options) 選項解析。當您在工作階段中途以 [`addPlugins`](#load-more-plugin-folders-with-addplugins) 載入外掛時,路徑必須是絕對路徑 |

1468| `skipMcpDiscovery` | `boolean` | 當為 `true` 時,SDK 會從此外掛載入 skill、hook、agent 與命令,但不會讀取其 `.mcp.json` 或 manifest 中的 `mcpServers`。當您的應用程式自行管理外掛的 MCP 連線時,請設定此項。 |1593| `skipMcpDiscovery` | `boolean` | 當為 `true` 時,SDK 會從此外掛載入 skill、hook、agent 與命令,但不會讀取其 `.mcp.json` 或 manifest 中的 `mcpServers`。當您的應用程式自行管理外掛的 MCP 連線時,請設定此項。 |

1469 1594 

1470**範例:**1595**範例:**


5075};5200};

5076```5201```

5077 5202 

5078`source` 說明伺服器定義的來源,具有與 [`McpServerProvenance`](#mcpserverprovenance) 的 `source` 相同的值和信任規則。該欄位需要 Agent SDK v0.3.274 或更新版本,在較早版本上不存在。5203使用 `source` 決定對伺服器的信任程度,並使用每個 `tools` 項目上的 `_meta` 找出伺服器附加到該工具的 UI 資源:

5204 

5205* **`source`**:伺服器定義的來源,其值與 [`McpServerProvenance`](#mcpserverprovenance) 上的 `source` 相同。請根據 `source` 而非 `name` 做出信任決定,因為只有您自己的進程內伺服器會報告 `sdk`,無論任何其他伺服器以何種名稱註冊。如果您不認識某個 `source` 值,請以對待任何 `source` 不是 `sdk` 之伺服器的方式對待該伺服器。需要 Agent SDK v0.3.274 或更新版本

5206* **`_meta`**:來自伺服器為該工具宣告之 `_meta` 的 `ui` 物件和 `ui/resourceUri` 字串。Claude Code 會扣留所有其他 `_meta` 鍵。`ui/resourceUri` 是 `ui.resourceUri` 較舊的頂層寫法。當伺服器將 [MCP Apps UI 資源](https://code.claude.com/docs/zh-TW/mcp.md#reference-mcp-resources) 附加到工具時,`ui.resourceUri` 或 `ui/resourceUri` 會保存該資源的 `ui://` URI。使用 [`readMcpResource()`](#query-object) 擷取該 URI,並在您的應用程式中呈現該資源。需要 Agent SDK v0.3.280 或更新版本

5207 

5208Claude Code 僅在 subtype 為 `init` 的 `system` 訊息之 [`capabilities`](#sdksystemmessage) 陣列列出 `mcp_tool_ui_meta_v1` 時才傳送 `_meta`。您無需自行開啟 `mcp_tool_ui_meta_v1`。

5209 

5210#### 當工具的 `_meta.ui` 僅包含 `visibility` 時

5211 

5212如果您的伺服器為工具宣告了 `ui.resourceUri`,但您的應用程式收到的 `_meta.ui` 僅包含 `visibility`,表示伺服器傳送的 `ui` 物件未通過 Claude Code 的某項檢查。Claude Code 會分別檢查 `ui` 和 `ui/resourceUri`,因此當其中一個鍵未通過時,另一個鍵仍可能送達您的應用程式。請將您伺服器 `tools/list` 回應中的 `_meta` 與每個鍵的檢查進行比較:

5213 

5214* **`ui`**:若三項檢查全部通過,會原封不動地送達您的應用程式,包括 `resourceUri` 和 `visibility` 以外的任何成員:

5215 

5216 * `resourceUri` 不存在,或是以 `ui://` 開頭的字串

5217 * `visibility` 不存在,或僅列出 `"model"` 和 `"app"`

5218 * 整個物件序列化為 JSON 時最多 4,096 個字元

5219 

5220 如果任何一項檢查失敗,您的應用程式最多只會收到一個 `ui`,其唯一成員是包含伺服器所列 `"model"` 和 `"app"` 項目的 `visibility` 陣列。

5221* **`ui/resourceUri`**:若它是以 `ui://` 開頭且最多 4,096 個字元的字串,就會送達您的應用程式。否則 Claude Code 會將其捨棄

5079 5222 

5080`_meta` 在 `tools` 項目上攜帶該工具的 `_meta` 的 MCP Apps 成員,因此您的應用程式可以找到 `ui://` 資源以使用 [`readMcpResource()`](#query-object) 呈現。Claude Code 傳遞 `ui` 物件和已棄用的平面 `ui/resourceUri` 字串,並扣留所有其他鍵,不予傳遞。在 `ui` 內,`resourceUri` 是 `ui://` 字串,`visibility` 是當伺服器設定時 `"model"` 和 `"app"` 的陣列,任何其他成員原封不動地傳遞。Claude Code 在值格式不正確時捨棄任一鍵,並從未宣告任一鍵的工具中省略 `_meta`。該欄位僅在初始化訊息的 [`capabilities`](#sdksystemmessage) 包含 `mcp_tool_ui_meta_v1` 時存在,並需要 TypeScript Agent SDK v0.3.280 或更新版本。5223當 Claude Code 沒有剩下任何可傳送的 `ui` 成員或 `ui/resourceUri` 字串時,該 `tools` 項目完全沒有 `_meta`。

5081 5224 

5082### `McpServerStatusConfig`5225### `McpServerStatusConfig`

5083 5226 


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

5313 5456 

5314* **呼叫未命名的伺服器**:在[雲端工作階段](https://code.claude.com/docs/zh-TW/claude-code-on-the-web.md)之外,Claude Code 會中斷先前 `setMcpServers()` 呼叫所新增的伺服器以及進程內 SDK 伺服器的連線,並在 `removed` 中列出它們。其他伺服器會持續執行,且不會列在 `removed` 中,其中包括來自 [`mcpServers`](#options) 選項的 stdio、HTTP 和 SSE 伺服器、來自設定檔的伺服器,以及外掛提供的伺服器。5457* **呼叫未命名的伺服器**:在[雲端工作階段](https://code.claude.com/docs/zh-TW/claude-code-on-the-web.md)之外,Claude Code 會中斷先前 `setMcpServers()` 呼叫所新增的伺服器以及進程內 SDK 伺服器的連線,並在 `removed` 中列出它們。其他伺服器會持續執行,且不會列在 `removed` 中,其中包括來自 [`mcpServers`](#options) 選項的 stdio、HTTP 和 SSE 伺服器、來自設定檔的伺服器,以及外掛提供的伺服器。

5315* **呼叫命名的伺服器**:對於先前 `setMcpServers()` 呼叫所新增的 stdio、HTTP 或 SSE 伺服器,Claude Code 只在其設定與您傳遞的設定不同時才替換它。已以該名稱註冊的進程內 SDK 伺服器會保持不變,因此若要替換它,請在一次呼叫中將其省略,並在下一次呼叫中新增它。5458* **先前 `setMcpServers()` 呼叫所新增的 stdio、HTTP 和 SSE 伺服器**:在雲端工作階段之外,您以相同設定再次命名的伺服器會保留其連線和工具。它既不會出現在 `added` 中,也不會出現在 `removed` 中。如果您傳遞變更後的設定,Claude Code 會使用該設定重新連線該伺服器,並將其列在 `added` 中,而非 `removed` 中。

5459* **呼叫所命名、但先前沒有任何呼叫新增的 stdio、HTTP 和 SSE 伺服器**:在雲端工作階段之外,Claude Code 會新增該伺服器並將其列在 `added` 中;若拒絕該伺服器,則列在 `errors` 中。

5460* **呼叫所命名的進程內 SDK 伺服器**:已透過 `mcpServers` 或先前呼叫註冊的伺服器會保留其執行中的實例和逾時。如果您為其傳遞 [`tools` 政策清單](#mcpsdkserverconfigwithinstance),即使是空清單,也會取代其政策;否則政策保持不變。若要在雲端工作階段之外執行新實例,請在一次呼叫中省略該伺服器,並在下一次呼叫中命名它。

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

5317* **與 MCP 安裝範圍(例如 `.mcp.json`)中的伺服器同名的 stdio、HTTP 或 SSE 伺服器**:在該名稱下,工作階段會使用您的伺服器的工具,而非[安裝範圍伺服器](https://code.claude.com/docs/zh-TW/mcp.md#mcp-installation-scopes)的工具。在 Claude Code v2.1.305 之前,當您的應用程式[重新載入外掛](#query-object)時,Claude Code 可能會中斷您的伺服器連線,改為連線至安裝範圍伺服器。5462* **與 MCP 安裝範圍(例如 `.mcp.json`)中的伺服器同名的 stdio、HTTP 或 SSE 伺服器**:在該名稱下,工作階段會使用您的伺服器的工具,而非[安裝範圍伺服器](https://code.claude.com/docs/zh-TW/mcp.md#mcp-installation-scopes)的工具。在 Claude Code v2.1.305 之前,當您的應用程式[重新載入外掛](#query-object)時,Claude Code 可能會中斷您的伺服器連線,改為連線至安裝範圍伺服器。

5318 5463 


5799 5944 

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

5801 5946 

5947### `BUILTIN_TOOL_NAMES` 和 `LEGACY_TOOL_NAME_ALIASES`

5948 

5949使用這兩個常數檢查您的應用程式使用者輸入的工具名稱。兩者拼寫每個名稱的方式,都與您在權限規則、hook matcher 以及 `tools` 和 `disallowedTools` 選項中撰寫的方式相同。從 `@anthropic-ai/claude-agent-sdk` 或 `@anthropic-ai/claude-agent-sdk/core` 匯入它們。它們需要 Agent SDK v0.3.301 或更新版本,且為 alpha 版。

5950 

5951SDK 的類型宣告為 `BUILTIN_TOOL_NAMES` 提供唯讀 tuple 類型,為 `LEGACY_TOOL_NAME_ALIASES` 提供字串對字串的 record 類型:

5952 

5953```typescript theme={null}

5954const BUILTIN_TOOL_NAMES: readonly ["Agent", /* ...more names... */ "Write"];

5955const LEGACY_TOOL_NAME_ALIASES: Readonly<Record<string, string>>;

5956```

5957 

5958* **`BUILTIN_TOOL_NAMES`**:Claude Code 內建工具的名稱,依字母順序排列,例如 `Agent`、`Bash` 和 `Read`。不包括 MCP 工具名稱。由於該類型是字串常值的 tuple,`(typeof BUILTIN_TOOL_NAMES)[number]` 會提供這些名稱的聯合類型

5959* **`LEGACY_TOOL_NAME_ALIASES`**:權限規則、hook matcher 以及 `tools` 和 `disallowedTools` 選項仍接受的較早工具名稱。每個鍵是較早的名稱,其值是目前的名稱:例如,`Task` 對應至 `Agent`,`KillShell` 和 `KillBash` 對應至 `TaskStop`

5960 

5961您可以用兩種測試中的任一種確認名稱:`BUILTIN_TOOL_NAMES` 包含它,或 `Object.hasOwn(LEGACY_TOOL_NAME_ALIASES, name)` 傳回 `true`。兩項測試都未通過的名稱仍可能有效,因為 `BUILTIN_TOOL_NAMES` 未列入 MCP 工具和某些內建工具。如果您從 `BUILTIN_TOOL_NAMES` 建立拒絕清單,Claude 仍可使用該常數未列入的工具。若要拒絕所有工具,請改為設定 [`disallowedTools: ["*"]`](https://code.claude.com/docs/zh-TW/agent-sdk/permissions#allow-and-deny-rules)。

5962 

5963在 `BUILTIN_TOOL_NAMES` 中找到某個名稱,並不代表工作階段具有該工具:`TodoWrite` 雖然[預設為停用](https://code.claude.com/docs/zh-TW/tools-reference.md),仍列於其中。若要查看工作階段具有哪些工具,請讀取其 [`SDKSystemMessage`](#sdksystemmessage) 的 `tools` 陣列。該陣列包含 MCP 工具,並將 Agent 工具列為 `Task`,因此在與 `BUILTIN_TOOL_NAMES` 比較之前,請先透過 `LEGACY_TOOL_NAME_ALIASES` 對應每個名稱。

5964 

5802### `AbortError`5965### `AbortError`

5803 5966 

5804中止操作的自訂錯誤類別。5967中止操作的自訂錯誤類別。

agent-teams.md +1 −1

Details

188 188 

189### 分配和認領任務189### 分配和認領任務

190 190 

191共享任務列表協調整個團隊的工作。主管建立任務,隊友完成它們。任務有三種狀態:待處理、進行中和已完成。任務也可以依賴其他任務:具有未解決依賴關係的待處理任務在這些依賴關係完成之前無法被認領。191共享任務列表協調整個團隊的工作。主管建立任務,隊友完成它們。任務有三種狀態:待處理、進行中和已完成。任務也可以依賴其他任務,並在這些任務完成之前於任務列表中顯示為已阻止。隊友不會自行認領已阻止的任務,但您或主管仍然可以分配它。

192 192 

193[沒有 Task 工具](https://code.claude.com/docs/zh-TW/tools-reference.md#task-tool-availability)的 Agents 改為透過訊息而非共享任務列表進行協調。193[沒有 Task 工具](https://code.claude.com/docs/zh-TW/tools-reference.md#task-tool-availability)的 Agents 改為透過訊息而非共享任務列表進行協調。

194 194 

agent-view.md +18 −9

Details

206* 已完成的工作階段:其結果206* 已完成的工作階段:其結果

207* 工作中的工作階段:其完整狀態句子207* 工作中的工作階段:其完整狀態句子

208 208 

209接著會列出連結到該工作階段的所有 pull request。對於等待您的工作階段,其下方會有一行(例如 `waiting 3m`)顯示它已等待多久,這也是面板中唯一顯示的時間。列右邊緣的經過時間是另一個數字:它從工作階段啟動時開始計算。209接著會列出連結到該工作階段的所有 pull request。對於正在等待您或以安全模式執行的工作階段,其下方還會多出一行:

210 

211* 例如 `waiting 3m` 的一行:工作階段已等待您多久。列右邊緣的經過時間是另一個數字:它從工作階段啟動時開始計算

212* `safe mode · customizations are off`:此工作階段在 [您的自訂項目已關閉](https://code.claude.com/docs/zh-TW/debug-your-config.md#test-against-a-clean-configuration) 的狀態下執行,因為您是從 shell 使用 `claude --bg --safe-mode` 啟動它。您可以維持原狀。若要在重新啟用自訂項目的情況下繼續對話,請執行 [`claude stop <id>`](#manage-sessions-from-the-shell),然後執行 [`claude --resume`](https://code.claude.com/docs/zh-TW/sessions#resume-a-session),兩者都在您的 shell 中執行

210 213 

211大多數時候查看面板就足夠了,您不需要開啟完整逐字稿。214大多數時候查看面板就足夠了,您不需要開啟完整逐字稿。

212 215 


468 471 

469#### 移到背景時會帶入的內容472#### 移到背景時會帶入的內容

470 473 

471移到背景會啟動一個從已儲存對話繼續的新程序,進行中的背景工作會轉移到該程序。執行中的背景 shell 命令、已移到背景的 subagent、動態工作流程、您使用 [`/loop`](https://code.claude.com/docs/zh-TW/scheduled-tasks) 建立的排程任務,以及 Claude [對 artifact 留言的自動回覆](https://code.claude.com/docs/zh-TW/artifacts.md#let-claude-reply-to-comments-on-its-own),都會轉移過去並在該處繼續執行。subagent 會與它啟動的所有內容一起移動,因此只有當所有這些工作都能移動時,它才會轉移。474當您將工作階段移到背景時,每種進行中的背景工作會轉移到背景工作階段、僅在 Claude 於該處重新啟動它時才繼續,或停止:

472 

473當[動態工作流程](https://code.claude.com/docs/zh-TW/workflows.md)仍有 subagent 在執行時,Claude Code 會在移到背景前以 `Background this session?` 對話框詢問,並說明有多少 subagent 會重新啟動。選擇 `Stay` 可讓它們先完成。如果您確認,Claude Code 會在背景工作階段中重播該次執行:仍在執行的 subagent 會從頭開始,因此它們目前為止使用的 token 會再次消耗。關於哪些已完成的 subagent 會傳回其已儲存的結果、哪些會再次執行,請參閱[暫停後繼續](https://code.claude.com/docs/zh-TW/workflows.md#resume-after-a-pause)。

474 475 

475Claude Code 會停止無法轉移的背景工作,例如執行中的 [monitor](https://code.claude.com/docs/zh-TW/tools-reference.md#monitor-tool),並一併停止擁有 monitor 的背景 subagent。當有任何此類工作在執行時,Claude Code 會顯示 `Background this session?` 對話框,讓您在它停止工作前確認。476* **轉移**:執行中的背景 shell 命令、已移到背景的 subagent、您使用 [`/loop`](https://code.claude.com/docs/zh-TW/scheduled-tasks) 建立的排程任務,以及 Claude [對 artifact 留言的自動回覆](https://code.claude.com/docs/zh-TW/artifacts.md#let-claude-reply-to-comments-on-its-own),都會在背景工作階段中繼續執行。subagent 會與它啟動的所有內容一起移動,因此只有當所有這些工作都能移動時,它才會轉移。

477* **僅在 Claude 重新啟動時才繼續**:執行中的[動態工作流程](https://code.claude.com/docs/zh-TW/workflows.md)。如果您查看背景工作階段時工作流程尚未繼續,請[要求 Claude 重新啟動它](#dynamic-workflows-when-you-background)。

478* **停止**:無法移到背景工作階段的工作,例如執行中的 [monitor](https://code.claude.com/docs/zh-TW/tools-reference.md#monitor-tool)。當有任何此類工作在執行時,Claude Code 會顯示 `Background this session?` 對話框,讓您在它停止工作前確認。擁有 monitor 的背景 subagent 會與該 monitor 一併停止。

476 479 

477進入背景後,工作階段可以啟動新的 subagent、monitor 和背景命令,這些在之後分離和重新附加時都會持續執行。480進入背景後,工作階段可以啟動新的 subagent、monitor 和背景命令,這些在之後分離和重新附加時都會持續執行。

478 481 


488 491 

489您在工作階段期間使用 [`/add-dir`](https://code.claude.com/docs/zh-TW/permissions#additional-directories-grant-file-access-not-configuration) 新增的目錄也會一併帶入。帶入 `--allow-dangerously-skip-permissions` 會讓 `bypassPermissions` 在已移到背景的工作階段中保持可用,但不會授予任何新的權限:該模式仍需要您已有[接受略過免責聲明](https://code.claude.com/docs/zh-TW/permission-modes.md#skip-all-checks-with-bypasspermissions-mode)的記錄。492您在工作階段期間使用 [`/add-dir`](https://code.claude.com/docs/zh-TW/permissions#additional-directories-grant-file-access-not-configuration) 新增的目錄也會一併帶入。帶入 `--allow-dangerously-skip-permissions` 會讓 `bypassPermissions` 在已移到背景的工作階段中保持可用,但不會授予任何新的權限:該模式仍需要您已有[接受略過免責聲明](https://code.claude.com/docs/zh-TW/permission-modes.md#skip-all-checks-with-bypasspermissions-mode)的記錄。

490 493 

494##### 移到背景時的動態工作流程

495 

496如果[動態工作流程](https://code.claude.com/docs/zh-TW/workflows.md)在您將其工作階段移到背景後尚未繼續,請要求 Claude [重新啟動該工作流程](https://code.claude.com/docs/zh-TW/workflows.md#resume-after-you-leave-the-session)。只有當 Claude 在背景工作階段中重新啟動它時,該次執行才會繼續,且 Claude Code 可能會先要求您核准該次重新啟動。工作階段的對話中會顯示一則通知,說明該工作流程 `could not be resumed`。

497 

498當 Claude 重新啟動工作流程時,您將工作階段移到背景時仍在執行的任何 subagent 都會從頭開始,並再次消耗其 token。如果您在仍有 subagent 執行時按 `←` 或執行 `/background`,`Background this session?` 對話框會說明有多少個。若要讓它們先完成,請選擇 `Stay`。

499 

491### 從您的 shell 分派 agent500### 從您的 shell 分派 agent

492 501 

493傳遞 `--bg` 或其完整形式 `--background`,即可啟動直接進入背景的工作階段:502傳遞 `--bg` 或其完整形式 `--background`,即可啟動直接進入背景的工作階段:


844* **自動更新後**:監督程序重新啟動自身到新版本,並在背景中移動閒置工作階段。正在工作、等待您或已連接的工作階段不會被中斷。853* **自動更新後**:監督程序重新啟動自身到新版本,並在背景中移動閒置工作階段。正在工作、等待您或已連接的工作階段不會被中斷。

845* **監督程序本身停止**,例如因為其程序從 Claude Code 外部被結束:在 macOS 和 Linux 上,除非新的監督程序在約一分鐘內連接,否則您的工作階段會停止。要啟動新的監督程序,請在 shell 中執行 `claude agents`。超過那一分鐘後,請參閱[在監督程序停止後保持工作階段執行](#keep-sessions-running-after-the-supervisor-stops)。854* **監督程序本身停止**,例如因為其程序從 Claude Code 外部被結束:在 macOS 和 Linux 上,除非新的監督程序在約一分鐘內連接,否則您的工作階段會停止。要啟動新的監督程序,請在 shell 中執行 `claude agents`。超過那一分鐘後,請參閱[在監督程序停止後保持工作階段執行](#keep-sessions-running-after-the-supervisor-stops)。

846 855 

847當工作階段的程序停止或重新啟動時,Claude 在其中啟動的背景 shell 命令、動態工作流程和背景 subagent 會轉移到其下一個程序;執行中的監視器和 subagent 啟動的 shell 命令會隨程序停止。刪除工作階段會停止它轉移的所有內容。要讓所有內容隨程序停止而不是轉移,請將 [`CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF`](https://code.claude.com/docs/zh-TW/env-vars#variables) 設定為 `1`。856當工作階段的程序停止或重新啟動時,Claude 在其中啟動的背景 shell 命令和背景 subagent 會轉移到其下一個程序。動態工作流程[只有在 Claude 重新啟動它時才會繼續](#dynamic-workflows-when-you-background)。執行中的監視器和 subagent 啟動的 shell 命令會隨程序停止。如果您刪除工作階段,它轉移的所有內容都會停止。要讓所有內容隨程序停止而不是轉移,請將 [`CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF`](https://code.claude.com/docs/zh-TW/env-vars#variables) 設定為 `1`。

848 857 

849監督程序及其工作階段使用與您的互動工作階段相同的儲存憑證進行身分驗證。對於哪些設定和 shell 變數到達工作階段(包括 `PATH`),請參閱[設定和提供者](#settings-and-provider)。對於閘道端點,請參閱 [LLM 閘道](#llm-gateway)。858監督程序及其工作階段使用與您的互動工作階段相同的儲存憑證進行身分驗證。對於哪些設定和 shell 變數到達工作階段(包括 `PATH`),請參閱[設定和提供者](#settings-and-provider)。對於閘道端點,請參閱 [LLM 閘道](#llm-gateway)。

850 859 


897 906 

898### 背景化顯示 `Background this session?` 對話框907### 背景化顯示 `Background this session?` 對話框

899 908 

900如果您按 `←` 將目前的工作階段放到背景,而 Claude Code 顯示 `Background this session?` 對話框,表示該工作階段有進行中的背景工作,背景化會使其停止、重新啟動或在無人看管的情況下繼續執行,因此 Claude Code 在執行上述任何操作之前會先詢問:909當您按 `←` 將工作階段放到背景時,若出現 `Background this session?` 對話框,表示該工作階段有進行中的背景工作,背景化會使其停止、中斷,或在無人看管的情況下繼續執行:

901 910 

902* **無法移動的工作**:工作階段有無法移動到背景工作階段的工作,例如執行中的 [monitor](https://code.claude.com/docs/zh-TW/tools-reference.md#monitor-tool)。對話框會列出 Claude Code 將停止的背景工作,並另外計算會轉移的任務數量。911* **無法移動的工作**:工作階段有無法移動到背景工作階段的工作,例如執行中的 [monitor](https://code.claude.com/docs/zh-TW/tools-reference.md#monitor-tool)。對話框會列出 Claude Code 將停止的背景工作,並另外計算會轉移的任務數量。

903* **具有執行中 subagent 的工作流程**:[動態工作流程](https://code.claude.com/docs/zh-TW/workflows.md)仍有 subagent 在執行。工作流程本身會轉移,但其執行中的 subagent 會從頭開始重新啟動,對話框會說明有多少個。912* **具有執行中 subagent 的工作流程**:[動態工作流程](https://code.claude.com/docs/zh-TW/workflows.md)仍有 subagent 在執行。如果您仍要背景化,這些 subagent 會停止,對話框會說明有多少個。當 Claude [在背景工作階段中重新啟動該工作流程](#dynamic-workflows-when-you-background)時,它們會從頭開始。

904* **自動 artifact 回覆**:Claude 正在[自行回覆 artifact 上的評論](https://code.claude.com/docs/zh-TW/artifacts.md#let-claude-reply-to-comments-on-its-own)。這些回覆會在背景工作階段中繼續,對話框也會說明這一點。913* **自動 artifact 回覆**:Claude 正在[自行回覆 artifact 上的評論](https://code.claude.com/docs/zh-TW/artifacts.md#let-claude-reply-to-comments-on-its-own)。這些回覆會在背景工作階段中繼續,對話框也會說明這一點。

905 914 

906執行 `/tasks` 以查看正在執行的所有內容,然後確認仍要背景化,或選擇 `Stay` 讓工作先完成。請參閱[背景化時轉移的內容](#what-carries-over-when-you-background)以了解哪些類型的工作會轉移,哪些會被 Claude Code 停止。915執行 `/tasks` 以查看正在執行的所有內容,然後確認仍要背景化,或選擇 `Stay` 讓工作先完成。請參閱[背景化時轉移的內容](#what-carries-over-when-you-background)以了解哪些類型的工作會轉移,哪些會被 Claude Code 停止。


1118| v2.1.200 | 較舊的 Claude Code 版本在重寫 `roster.json` 中的工作階段清單時,會保留較新版本寫入的欄位,與現有的 `state.json` 保證一致,因此由較新版本啟動的工作階段在監督程序重新啟動後會繼續接受輸入。當您開啟已停止回應的工作階段時,監督程序會重新啟動其程序,工作階段會從中斷處繼續被中斷的回應。Agent view 會將放在 `agents` 之後的 `--plugin-dir` 旗標套用到其分派輸入中自己的 subagent 和 skill 自動完成,以及分派的工作階段。 |1127| v2.1.200 | 較舊的 Claude Code 版本在重寫 `roster.json` 中的工作階段清單時,會保留較新版本寫入的欄位,與現有的 `state.json` 保證一致,因此由較新版本啟動的工作階段在監督程序重新啟動後會繼續接受輸入。當您開啟已停止回應的工作階段時,監督程序會重新啟動其程序,工作階段會從中斷處繼續被中斷的回應。Agent view 會將放在 `agents` 之後的 `--plugin-dir` 旗標套用到其分派輸入中自己的 subagent 和 skill 自動完成,以及分派的工作階段。 |

1119| v2.1.199 | 在低記憶體主機上,其程序在完成啟動前就退出的背景工作階段,會在其列狀態中顯示 `possibly low memory — free some up and retry`,而不是只顯示單純的退出原因。使用 `←` 或 `/background` 背景化工作階段會將其 `/color` 帶到新列。 |1128| v2.1.199 | 在低記憶體主機上,其程序在完成啟動前就退出的背景工作階段,會在其列狀態中顯示 `possibly low memory — free some up and retry`,而不是只顯示單純的退出原因。使用 `←` 或 `/background` 背景化工作階段會將其 `/color` 帶到新列。 |

1120| v2.1.198 | 當背景工作階段需要輸入、完成或失敗時,Agent view 會透過 `preferredNotifChannel` 傳送通知,並以 `agent_needs_input` 或 `agent_completed` 類型觸發 `Notification` hook。在 `claude attach <id>` 內的 `←` 和 `/exit` 會返回 agent view,而不是退出到 shell;`Ctrl+Z` 會返回 shell。在 worktree 中隔離其工作的背景工作階段完成時,會提交、推送其自己的隔離分支(絕不是 `main` 或 `master`),並開啟草稿 pull request,而不是先詢問。`/login` 可在 agent view 中執行並開啟登入對話框。`Background work is running` 退出對話框提供 `Move to background and exit`。退出交接也涵蓋背景 subagent,它們會在下次喚醒時從其逐字稿恢復,而不是被回報為失敗。`claude --bg` 與 `-p` 或 `--print` 合併使用會被拒絕並出現錯誤。背景工作階段主機會在首次存取 LAN 時請求 macOS 本機網路權限,而不是以 `connect: no route to host` 失敗。 |1129| v2.1.198 | 當背景工作階段需要輸入、完成或失敗時,Agent view 會透過 `preferredNotifChannel` 傳送通知,並以 `agent_needs_input` 或 `agent_completed` 類型觸發 `Notification` hook。在 `claude attach <id>` 內的 `←` 和 `/exit` 會返回 agent view,而不是退出到 shell;`Ctrl+Z` 會返回 shell。在 worktree 中隔離其工作的背景工作階段完成時,會提交、推送其自己的隔離分支(絕不是 `main` 或 `master`),並開啟草稿 pull request,而不是先詢問。`/login` 可在 agent view 中執行並開啟登入對話框。`Background work is running` 退出對話框提供 `Move to background and exit`。退出交接也涵蓋背景 subagent,它們會在下次喚醒時從其逐字稿恢復,而不是被回報為失敗。`claude --bg` 與 `-p` 或 `--print` 合併使用會被拒絕並出現錯誤。背景工作階段主機會在首次存取 LAN 時請求 macOS 本機網路權限,而不是以 `connect: no route to host` 失敗。 |

1121| v2.1.196 | 按一次 `←` 即可背景化前景工作階段;較早的版本需要按兩次,並附有頁尾提示和確認。傳遞給 `claude agents` 的 `--dangerously-skip-permissions` 會顯示繞過免責聲明,而不是在無提示的情況下被丟棄。您從未命名的互動工作階段在工作階段清單和 `claude agents --json` 中會帶有預設名稱,例如 `my-app-3f`。背景 shell 命令和動態工作流程在工作階段的程序被停止、重新啟動或更新時仍會存續,包括在 Windows 上;設定 `CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF=1` 可關閉此交接。在重新啟動時被誤判為空的逐字稿會加上 `.orphaned-` 後綴重新命名,而不是被刪除。 |1130| v2.1.196 | 按一次 `←` 即可背景化前景工作階段;較早的版本需要按兩次,並附有頁尾提示和確認。傳遞給 `claude agents` 的 `--dangerously-skip-permissions` 會顯示繞過免責聲明,而不是在無提示的情況下被丟棄。您從未命名的互動工作階段在工作階段清單和 `claude agents --json` 中會帶有預設名稱,例如 `my-app-3f`。背景 shell 命令在工作階段的程序被停止、重新啟動或更新時仍會存續,包括在 Windows 上;設定 `CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF=1` 可關閉此交接。在重新啟動時被誤判為空的逐字稿會加上 `.orphaned-` 後綴重新命名,而不是被刪除。 |

1122| v2.1.195 | 在 Windows 上背景化工作階段時,進行中的背景工作也會轉移。`Completed` 群組會填滿剩餘的垂直空間,標題在較矮的終端機上會壓縮。較舊的 Claude Code 版本不再丟棄較新工作階段的 `state.json` 欄位,也不再從 `claude agents` 中隱藏這些工作階段。附加到已停止的工作階段會立即切換,而不是顯示空白畫面長達五秒。無法接受連線的監督程序會自行退出並釋放其鎖定。 |1131| v2.1.195 | 在 Windows 上背景化工作階段時,進行中的背景工作也會轉移。`Completed` 群組會填滿剩餘的垂直空間,標題在較矮的終端機上會壓縮。較舊的 Claude Code 版本不再丟棄較新工作階段的 `state.json` 欄位,也不再從 `claude agents` 中隱藏這些工作階段。附加到已停止的工作階段會立即切換,而不是顯示空白畫面長達五秒。無法接受連線的監督程序會自行退出並釋放其鎖定。 |

1123| v2.1.191 | `claude --bg` 搭配不符合您任何 subagent 的 `--agent` 名稱時會啟動失敗:工作階段會立即退出並出現 `--agent '<name>' not found` 錯誤,而不是以預設 agent 執行。 |1132| v2.1.191 | `claude --bg` 搭配不符合您任何 subagent 的 `--agent` 名稱時會啟動失敗:工作階段會立即退出並出現 `--agent '<name>' not found` 錯誤,而不是以預設 agent 執行。 |

1124| v2.1.174 | 背景工作階段不再從監督程序的啟動 shell 繼承閘道端點變數,例如 `ANTHROPIC_BASE_URL`;監督程序會向預熱的工作程序提供新的憑證快照,修正了虛假的 `Could not resolve authentication method` 錯誤。 |1133| v2.1.174 | 背景工作階段不再從監督程序的啟動 shell 繼承閘道端點變數,例如 `ANTHROPIC_BASE_URL`;監督程序會向預熱的工作程序提供新的憑證快照,修正了虛假的 `Could not resolve authentication method` 錯誤。 |

Details

925 925 

926切換時,請在重新命名區塊的同一次編輯中刪除任何 `serve_to_desktop` 行。凡是說明中指名 `cli` 區塊之處,請使用您的 `code` 區塊。926切換時,請在重新命名區塊的同一次編輯中刪除任何 `serve_to_desktop` 行。凡是說明中指名 `cli` 區塊之處,請使用您的 `code` 區塊。

927 927 

928`serve_to_desktop: true` 是將政策的 `cli` 設定提供給 Code 分頁的舊版方式。當 Claude Desktop 透過 [`bootstrapUrl`](#claude-desktop-overlay) 連線時,它沒有作用。當您的政策使用 `cli` 時,指出此鍵的啟動警告代表這些設定並未送達 Code 分頁:

929 

930* **若要涵蓋 Code 分頁**:在使用者的機器符合[在 Code 分頁中套用 `code` 設定](#apply-code-settings-in-the-code-tab)中的條件後,切換為 `code`

931* **若要維持使用 `cli`**:在政策中於 `cli` 旁設定 `serve_to_desktop: false` 以消除警告

932 

928#### `cli` 中的內容933#### `cli` 中的內容

929 934 

930每個 `code` 或 `cli` 值都是一份完整的 Claude Code `managed-settings.json` 文件,與您透過 MDM 或 `/etc/claude-code/managed-settings.json` 部署的 schema 相同,只是在此以 YAML 表示。CLI 會在受管層級套用所傳送的文件,位於使用者與專案設定之上,並取代伺服器受管設定。因此它會忽略[僅限 OS 層級原則來源](https://code.claude.com/docs/zh-TW/server-managed-settings.md#current-limitations)的設定,例如 `policyHelper` 與 `wslInheritsWindowsSettings`。935每個 `code` 或 `cli` 值都是一份完整的 Claude Code `managed-settings.json` 文件,與您透過 MDM 或 `/etc/claude-code/managed-settings.json` 部署的 schema 相同,只是在此以 YAML 表示。CLI 會在受管層級套用所傳送的文件,位於使用者與專案設定之上,並取代伺服器受管設定。因此它會忽略[僅限 OS 層級原則來源](https://code.claude.com/docs/zh-TW/server-managed-settings.md#current-limitations)的設定,例如 `policyHelper` 與 `wslInheritsWindowsSettings`。


972| - | - | - |977| - | - | - |

973| `availableModels` | Gateway + CLI | 模型允許清單。也在 `/v1/messages` 檢查,因此修補的用戶端無法繞過它。 |978| `availableModels` | Gateway + CLI | 模型允許清單。也在 `/v1/messages` 檢查,因此修補的用戶端無法繞過它。 |

974| [`deniedModels`](https://code.claude.com/docs/zh-TW/settings-reference#deniedmodels)、[`availableModelsMatch`](https://code.claude.com/docs/zh-TW/settings-reference#availablemodelsmatch) | 閘道 + CLI | [封鎖特定模型或版本](https://code.claude.com/docs/zh-TW/model-config.md#block-specific-models-or-versions),即使 `availableModels` 原本會允許它們。遭封鎖的模型會在 `/v1/messages` 以 `400` 拒絕,並從 `/v1/models` 中排除。閘道自身的檢查需要閘道伺服器上為 Claude Code v2.1.299 或更新版本。CLI 的檢查需要用戶端上為 v2.1.283 或更新版本,較早的用戶端會忽略這兩個鍵。 |979| [`deniedModels`](https://code.claude.com/docs/zh-TW/settings-reference#deniedmodels)、[`availableModelsMatch`](https://code.claude.com/docs/zh-TW/settings-reference#availablemodelsmatch) | 閘道 + CLI | [封鎖特定模型或版本](https://code.claude.com/docs/zh-TW/model-config.md#block-specific-models-or-versions),即使 `availableModels` 原本會允許它們。遭封鎖的模型會在 `/v1/messages` 以 `400` 拒絕,並從 `/v1/models` 中排除。閘道自身的檢查需要閘道伺服器上為 Claude Code v2.1.299 或更新版本。CLI 的檢查需要用戶端上為 v2.1.283 或更新版本,較早的用戶端會忽略這兩個鍵。 |

975| `permissions.allow` / `.deny` | CLI | 工具和命令規則。請參閱[權限](https://code.claude.com/docs/zh-TW/permissions.md)。 |980| `permissions.allow` / `.deny` | CLI | 工具與命令規則。請參閱[權限](https://code.claude.com/docs/zh-TW/permissions.md)與 [Bash 規則不會比對的內容](https://code.claude.com/docs/zh-TW/permissions.md#bash-rule-limits)。 |

976| `permissions.disableBypassPermissionsMode` | CLI | 設定為 `disable` 以阻止 [`bypassPermissions`](https://code.claude.com/docs/zh-TW/permission-modes#skip-all-checks-with-bypasspermissions-mode),跳過權限提示的模式,以及 `--dangerously-skip-permissions` 旗標 |981| `permissions.disableBypassPermissionsMode` | CLI | 設定為 `disable` 以阻止 [`bypassPermissions`](https://code.claude.com/docs/zh-TW/permission-modes#skip-all-checks-with-bypasspermissions-mode),跳過權限提示的模式,以及 `--dangerously-skip-permissions` 旗標 |

977| `allowManagedPermissionRulesOnly` | CLI | 當 `true` 時,受管設定成為權限規則的唯一設定來源。[`allowManagedPermissionRulesOnly`](https://code.claude.com/docs/zh-TW/settings-reference#allowmanagedpermissionrulesonly) 項目列出 Claude Code 隨後忽略的每個來源。 |982| `allowManagedPermissionRulesOnly` | CLI | 當 `true` 時,受管設定成為權限規則的唯一設定來源。[`allowManagedPermissionRulesOnly`](https://code.claude.com/docs/zh-TW/settings-reference#allowmanagedpermissionrulesonly) 項目列出 Claude Code 隨後忽略的每個來源。 |

978| `env` | CLI | 合併到 CLI 程序的環境變數。用於遙測、自動更新和模型名稱覆寫。 |983| `env` | CLI | 合併到 CLI 程序的環境變數。用於遙測、自動更新和模型名稱覆寫。 |


1001 1006 

1002`cli` 鍵在較早的版本中名為 `settings`,閘道仍接受該寫法作為別名。新部署請使用 [`code`](#choose-cli-or-code)。1007`cli` 鍵在較早的版本中名為 `settings`,閘道仍接受該寫法作為別名。新部署請使用 [`code`](#choose-cli-or-code)。

1003 1008 

1009#### 在部署前測試政策

1010 

1011若要測試政策變更,請以一個可拋棄的 Postgres 資料庫啟動閘道。閘道會先連線到 Postgres 並套用其 schema 遷移,然後才檢查 `cli`、`code` 與 `desktop` 區塊的內容。當它無法連線到資料庫時,啟動會停在 `could not connect to Postgres`,不會回報這些區塊內容的任何資訊。

1012 

1004#### 終端機工作階段中的上下文視窗1013#### 終端機工作階段中的上下文視窗

1005 1014 

1006透過 `/login` 登入的終端機工作階段,對 Opus 4.7 及更新版本、Sonnet 5 及更新版本,以及 Fable 模型使用 1M 上下文視窗。模型 ID 不需要 `[1m]` 後綴,工作階段會在約 967K 個 token 時壓縮。在開發者機器上的 Claude Code v2.1.287 之前,除非模型 ID 以 `[1m]` 結尾,否則 Claude Code 將 Opus 和 Fable 模型視為具有 200K 視窗。1015透過 `/login` 登入的終端機工作階段,對 Opus 4.7 及更新版本、Sonnet 5 及更新版本,以及 Fable 模型使用 1M 上下文視窗。模型 ID 不需要 `[1m]` 後綴,工作階段會在約 967K 個 token 時壓縮。在開發者機器上的 Claude Code v2.1.287 之前,除非模型 ID 以 `[1m]` 結尾,否則 Claude Code 將 Opus 和 Fable 模型視為具有 200K 視窗。


1587 # 承包商原則會繼承此鍵。1596 # 承包商原則會繼承此鍵。

1588 enforceAvailableModels: true1597 enforceAvailableModels: true

1589 permissions:1598 permissions:

1590 allow: [Read, Grep, Bash, Edit]1599 allow: [Read, Grep, Edit]

1591 deny: ["WebFetch"]1600 deny: ["WebFetch"]

1592 env: { HTTP_PROXY: http://proxy.example.com:8080 }1601 env: { HTTP_PROXY: http://proxy.example.com:8080 }

1593 1602 

Details

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

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

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

396| 稽核日誌在 `/v1/logs` 或 `/v1/metrics` 上顯示 `auth.denied`,並附帶 `reason: invalid_token` | 您在機器的受管設定中設定了 [`otelHeadersHelper`](https://code.claude.com/docs/zh-TW/settings-reference#otelheadershelper)。在該機器上的 Claude Desktop 工作階段中,Claude Code 會將來自該 helper 的 `Authorization` 標頭傳送到 gateway 的遙測中繼,以取代工作階段 token。若 Claude Desktop 內建的 Claude Code 早於 v2.1.307,當您在這些設定中於 `OTEL_EXPORTER_OTLP_HEADERS` 或其個別訊號形式中設定 `Authorization` 標頭時,也會遇到相同的拒絕。 | 從這些設定中移除該 helper。若 Claude Desktop 內建的 Claude Code 早於 v2.1.307,請移除該變數。 |

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

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

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

Details

288 288 

289[Agent teams](https://code.claude.com/docs/zh-TW/agent-teams.md) 預設關閉,但可以通過將 `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1` 新增到您的[環境變數](https://code.claude.com/docs/zh-TW/cloud-environments.md#set-environment-variables)來啟用。289[Agent teams](https://code.claude.com/docs/zh-TW/agent-teams.md) 預設關閉,但可以通過將 `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1` 新增到您的[環境變數](https://code.claude.com/docs/zh-TW/cloud-environments.md#set-environment-variables)來啟用。

290 290 

291### 對話中的外掛建議

292 

293若對話中出現一張列出一個或多個[外掛](https://code.claude.com/docs/zh-TW/plugins/overview.md)並附有**新增**按鈕的卡片,表示 Claude 正在為您的任務建議外掛。Claude 可以在您未要求的情況下提出這些建議。您不必回應,無論如何 Claude 都會繼續執行任務。

294 

295#### 新增或移除建議的外掛

296 

297在外掛上選擇**新增**,即可為您的 claude.ai 帳戶啟用該外掛,工作階段結束後它仍會保持啟用。若要復原,請從卡片開啟已新增的外掛,選擇**管理**以前往該外掛在 claude.ai 上的頁面,然後從該頁面移除外掛。

298 

299#### 關閉外掛建議

300 

301若要阻止 Claude 建議外掛,請使用[權限規則](https://code.claude.com/docs/zh-TW/permissions.md#manage-permissions)拒絕 `SearchPlugins` 和 `SuggestPluginInstall` 工具。在[專案](https://code.claude.com/docs/zh-TW/claude-projects.md)之外、只有一個儲存庫的工作階段中,請將規則提交至該儲存庫的 `.claude/settings.json`,並在 `permissions.deny` 下列出這兩個工具名稱:

302 

303```json theme={null}

304{

305 "permissions": {

306 "deny": ["SearchPlugins", "SuggestPluginInstall"]

307 }

308}

309```

310 

311當套用於該工作階段的[受管設定](https://code.claude.com/docs/zh-TW/managed-settings.md)設定了 [`allowManagedPermissionRulesOnly`](https://code.claude.com/docs/zh-TW/settings-reference#allowmanagedpermissionrulesonly) 時,Claude Code 會忽略儲存庫 `.claude/settings.json` 中的權限規則,包括這些拒絕規則。在這種情況下,請改為將規則放入那些受管設定中。對於其他設定方式,例如包含多個儲存庫的工作階段或專案中的雲端執行緒,請參閱哪些[設定會套用到雲端工作階段](https://code.claude.com/docs/zh-TW/settings.md#settings-in-cloud-sessions)。

312 

291### 取回已排隊的訊息313### 取回已排隊的訊息

292 314 

293如果您在 Claude 工作時發送訊息,該訊息會排隊,直到 Claude 讀取它。若要取回已排隊的訊息,請點擊它上面的 ✕。文字會返回到訊息框,以便您可以編輯它或發送其他內容。315如果您在 Claude 工作時發送訊息,該訊息會排隊,直到 Claude 讀取它。若要取回已排隊的訊息,請點擊它上面的 ✕。文字會返回到訊息框,以便您可以編輯它或發送其他內容。

Details

103 103 

104除了你編寫的設定外,`~/.claude` 還保存 Claude Code 在工作階段期間寫入的資料。這些檔案是純文字格式。任何通過工具的內容都會被寫入磁碟上的文字記錄:檔案內容、命令輸出、貼上的文字。104除了你編寫的設定外,`~/.claude` 還保存 Claude Code 在工作階段期間寫入的資料。這些檔案是純文字格式。任何通過工具的內容都會被寫入磁碟上的文字記錄:檔案內容、命令輸出、貼上的文字。

105 105 

106逐字稿也可能包含 Claude Code 隨您的訊息一併傳送給模型的內容:

107 

108* 系統提示詞

109* 工具定義

110* 請求參數

111* 它載入的指令檔案,例如 CLAUDE.md

112 

106### 自動清理113### 自動清理

107 114 

108Claude Code 會刪除下列路徑中的檔案,只要它們的年齡超過 [`cleanupPeriodDays`](https://code.claude.com/docs/zh-TW/settings-reference#cleanupperioddays),只要它能安全地確定保留期間。預設值為 30 天,最小值為 1;設定 `0` 會導致驗證錯誤。相同的年齡截止值也適用於 [孤立 worktrees](https://code.claude.com/docs/zh-TW/worktrees.md#clean-up-subagent-and-background-session-worktrees) 的自動移除。115Claude Code 會刪除下列路徑中的檔案,只要它們的年齡超過 [`cleanupPeriodDays`](https://code.claude.com/docs/zh-TW/settings-reference#cleanupperioddays),只要它能安全地確定保留期間。預設值為 30 天,最小值為 1;設定 `0` 會導致驗證錯誤。相同的年齡截止值也適用於 [孤立 worktrees](https://code.claude.com/docs/zh-TW/worktrees.md#clean-up-subagent-and-background-session-worktrees) 的自動移除。

109 116 

110| `~/.claude/` 下的路徑 | 內容 |117| `~/.claude/` 下的路徑 | 內容 |

111| - | - |118| - | - |

112| `projects/<project>/<session>.jsonl` | 完整對話文字記錄:每條訊息、工具呼叫和工具結果 |119| `projects/<project>/<session>.jsonl` | 對話逐字稿:訊息、工具呼叫和工具結果,以及 Claude Code 傳送給模型之請求的系統提示詞、工具定義和參數 |

113| `projects/<project>/<session>.orphaned-<timestamp>-<suffix>.jsonl`、`projects/<project>/<session>.jsonl.superseded-<timestamp>` | Claude Code 為該工作階段設置的先前文字記錄,而不是覆蓋或刪除它。它不會出現在工作階段選擇器中 |120| `projects/<project>/<session>.orphaned-<timestamp>-<suffix>.jsonl`、`projects/<project>/<session>.jsonl.superseded-<timestamp>` | Claude Code 為該工作階段設置的先前文字記錄,而不是覆蓋或刪除它。它不會出現在工作階段選擇器中 |

114| `projects/<project>/<session>/subagents/` | [子代理](https://code.claude.com/docs/zh-TW/sub-agents.md) 對話文字記錄,當父工作階段文字記錄過期時被移除 |121| `projects/<project>/<session>/subagents/` | [Subagent](https://code.claude.com/docs/zh-TW/sub-agents.md) 逐字稿,格式與工作階段逐字稿相同,當父工作階段逐字稿過期時一併移除 |

115| `projects/<project>/<session>/tool-results/` | 溢出到單獨檔案的大型工具輸出,以及 [MCP 工具返回的圖片](https://code.claude.com/docs/zh-TW/mcp.md#images-in-tool-results) 的完整大小副本 |122| `projects/<project>/<session>/tool-results/` | 溢出到單獨檔案的大型工具輸出,以及 [MCP 工具返回的圖片](https://code.claude.com/docs/zh-TW/mcp.md#images-in-tool-results) 的完整大小副本 |

116| `projects/<project>/<session>/mcp-tasks/` | 恢復的工作階段再次追蹤其執行中的 [MCP 任務](https://code.claude.com/docs/zh-TW/mcp.md#mcp-tasks-that-run-on-the-server)所需的資訊,以及 Claude 尚未讀取的已完成任務結果 |123| `projects/<project>/<session>/mcp-tasks/` | 恢復的工作階段再次追蹤其執行中的 [MCP 任務](https://code.claude.com/docs/zh-TW/mcp.md#mcp-tasks-that-run-on-the-server)所需的資訊,以及 Claude 尚未讀取的已完成任務結果 |

117| `file-history/<session>/` | Claude 更改的檔案的編輯前快照,用於 [檢查點還原](https://code.claude.com/docs/zh-TW/checkpointing.md)。保存 100 個最近檢查點的快照;沒有保留檢查點引用的快照檔案會被刪除,除了每個檔案的第一個快照 |124| `file-history/<session>/` | Claude 更改的檔案的編輯前快照,用於 [檢查點還原](https://code.claude.com/docs/zh-TW/checkpointing.md)。保存 100 個最近檢查點的快照;沒有保留檢查點引用的快照檔案會被刪除,除了每個檔案的第一個快照 |

Details

6 6 

7> 安裝 Claude Security plugin 以在 Claude Code 工作階段中掃描程式碼庫以尋找漏洞,並將發現的問題轉換為您可以檢視和應用的修補程式。7> 安裝 Claude Security plugin 以在 Claude Code 工作階段中掃描程式碼庫以尋找漏洞,並將發現的問題轉換為您可以檢視和應用的修補程式。

8 8 

9Claude Security plugin 在 Claude Code 工作階段內執行程式碼庫的多代理漏洞掃描。一個 Claude 代理團隊會對您的架構進行對應、建立威脅模型、搜尋漏洞,並在撰寫報告前獨立檢視每項發現。使用此 plugin 掃描整個儲存庫或[僅掃描一組變更](#scan-only-your-changes),例如分支的差異、提取請求的差異或單一提交,然後將您選擇的發現轉換為您可以自行檢視和應用的修補程式。9Claude Security 外掛在 Claude Code 工作階段內執行程式碼庫的多 agent 漏洞掃描。[預設情況下](#choose-a-scan-effort),當您掃描整個儲存庫時,Claude agent 會對您的架構進行對應、建立威脅模型、搜尋漏洞,並在撰寫報告前獨立檢視每項發現。

10 

11使用此外掛掃描整個儲存庫或[僅掃描一組變更](#scan-only-your-changes),例如分支的差異、pull request 的差異或單一提交,然後將您選擇的發現轉換為您可以自行檢視和應用的修補程式。

10 12 

11此外掛在您的工作階段中本地執行,使用[您在 Claude Code 中可存取的任何模型](#models-and-providers),每次掃描都會計入您的[使用量](https://code.claude.com/docs/zh-TW/costs.md)。如果您想要一個監控您的儲存庫的受管服務,或想要在 [Claude Mythos](https://platform.claude.com/docs/en/about-claude/models/introducing-claude-fable-5-and-claude-mythos-5) 上執行掃描,請參閱 [Claude Security](https://claude.com/product/claude-security) 產品,可在企業方案上取得。13此外掛在您的工作階段中本地執行,使用[您在 Claude Code 中可存取的任何模型](#models-and-providers),每次掃描都會計入您的[使用量](https://code.claude.com/docs/zh-TW/costs.md)。如果您想要一個監控您的儲存庫的受管服務,或想要在 [Claude Mythos](https://platform.claude.com/docs/en/about-claude/models/introducing-claude-fable-5-and-claude-mythos-5) 上執行掃描,請參閱 [Claude Security](https://claude.com/product/claude-security) 產品,可在企業方案上取得。

12 14 


51 53 

52外掛程式啟用後,您已準備好[掃描和修復您的程式碼庫](#scan-and-fix-your-codebase)。54外掛程式啟用後,您已準備好[掃描和修復您的程式碼庫](#scan-and-fix-your-codebase)。

53 55 

56### 更新外掛程式

57 

58若要自行更新外掛程式,請參閱[立即更新外掛程式](https://code.claude.com/docs/zh-TW/plugins/install.md#update-plugins-now)。除非已關閉自動更新,否則 Claude Code 也會[自動更新外掛程式](https://code.claude.com/docs/zh-TW/plugins/install.md#keep-plugins-updated)。

59 

54### 解除安裝外掛程式60### 解除安裝外掛程式

55 61 

56若要移除外掛程式,從 `/plugin` 功能表解除安裝它,或在您的終端中執行 `claude plugin uninstall claude-security`。62若要移除外掛程式,從 `/plugin` 功能表解除安裝它,或在您的終端中執行 `claude plugin uninstall claude-security`。


95 101 

96在大型儲存庫上,一次掃描一個區域而不是整個樹。選擇外掛程式提供的聚焦範圍之一,例如您的 API 層或您的驗證程式碼,執行會根據您選擇的內容調整大小。報告的涵蓋範圍部分說明檢查了什麼和未檢查什麼。隨時在不同區域執行另一次掃描。102在大型儲存庫上,一次掃描一個區域而不是整個樹。選擇外掛程式提供的聚焦範圍之一,例如您的 API 層或您的驗證程式碼,執行會根據您選擇的內容調整大小。報告的涵蓋範圍部分說明檢查了什麼和未檢查什麼。隨時在不同區域執行另一次掃描。

97 103 

104### 選擇掃描強度

105 

106掃描強度決定掃描的深入程度。在 `low`、`medium` 和 `high` 下,您的發現都會經過相同的獨立驗證。

107 

108* **`low`**:快速初步檢視。掃描程式碼庫時,它會略過架構圖和威脅模型。

109* **`medium`**:預設值。

110* **`high`**:執行 `medium` 所做的一切,並在相同程式碼中更深入地搜尋漏洞。

111 

112在 Claude Code 提示字元的請求中指定掃描強度,例如 `/claude-security scan my public API code at high` 或 `/claude-security scan my branch at high`。

113 

114如果大型儲存庫的掃描發現的問題少於預期,請選擇 `high` 掃描強度、再掃描一次,或兩者皆做。每種方式都可能回報單次 `medium` 掃描未發現的問題。

115 

98### 讀取掃描結果116### 讀取掃描結果

99 117 

100每次掃描都會將其結果寫入您儲存庫中的時間戳記 `CLAUDE-SECURITY-<timestamp>/` 目錄:118每次掃描都會將其結果寫入您儲存庫中的時間戳記 `CLAUDE-SECURITY-<timestamp>/` 目錄:


102* **`CLAUDE-SECURITY-RESULTS.md`**:報告,包含每項發現的 ID,例如 `F1`,加上其影響、利用情景、嚴重性、信心和建議120* **`CLAUDE-SECURITY-RESULTS.md`**:報告,包含每項發現的 ID,例如 `F1`,加上其影響、利用情景、嚴重性、信心和建議

103* **`CLAUDE-SECURITY-RESULTS.jsonl`**:相同的發現以機器可讀形式,每行一個 JSON 物件121* **`CLAUDE-SECURITY-RESULTS.jsonl`**:相同的發現以機器可讀形式,每行一個 JSON 物件

104* **`CLAUDE-SECURITY-RESULTS.sarif`**:相同的發現作為 [SARIF 2.1.0](https://docs.oasis-open.org/sarif/sarif/v2.1.0/sarif-v2.1.0.html) 日誌,用於 GitHub 程式碼掃描和任何其他讀取標準的工具。掃描將發現分類在其 [CWE](https://cwe.mitre.org/) 弱點類別下122* **`CLAUDE-SECURITY-RESULTS.sarif`**:相同的發現作為 [SARIF 2.1.0](https://docs.oasis-open.org/sarif/sarif/v2.1.0/sarif-v2.1.0.html) 日誌,用於 GitHub 程式碼掃描和任何其他讀取標準的工具。掃描將發現分類在其 [CWE](https://cwe.mitre.org/) 弱點類別下

105* **`CLAUDE-SECURITY-REVISION-<commit>.json`**:修訂戳記,記錄掃描了哪個提交、付出了多少努力、未提交的變更是否是掃描樹的一部分,以及執行的驗證程度如何,因此報告始終與其描述的程式碼相關聯。版本控制外的掃描在提交位置戳記 `UNVERSIONED`123* **`CLAUDE-SECURITY-REVISION-<commit>.json`**:修訂戳記,記錄掃描了哪個提交、使用何種[掃描強度](#choose-a-scan-effort)、未提交的變更是否是掃描樹的一部分,以及執行的驗證程度如何,因此報告始終與其描述的程式碼相關聯。版本控制外的掃描在提交位置戳記 `UNVERSIONED`

106 124 

107該目錄是掃描對您簽出的唯一變更,它帶有自己的 `.gitignore`,因此隨意的 `git add` 永遠不會將報告掃入提交。若要在歷史記錄中保留報告以進行稽核追蹤,刪除該一個 `.gitignore` 檔案並像任何其他檔案一樣提交目錄。125該目錄是掃描對您簽出的唯一變更,它帶有自己的 `.gitignore`,因此隨意的 `git add` 永遠不會將報告掃入提交。若要在歷史記錄中保留報告以進行稽核追蹤,刪除該一個 `.gitignore` 檔案並像任何其他檔案一樣提交目錄。

108 126 

desktop.md +64 −0

Details

994* **Shell**:遠端機器上為您帳戶設定的 shell 必須能執行透過 SSH 傳送的命令,如同 Bash、Zsh 和 `sh`994* **Shell**:遠端機器上為您帳戶設定的 shell 必須能執行透過 SSH 傳送的命令,如同 Bash、Zsh 和 `sh`

995* **網路**:Claude Code 在遠端機器上執行,並從該處發出網路請求,因此該機器需要 [Claude Code 所需的網路存取](https://code.claude.com/docs/zh-TW/network-config.md#network-access-requirements)。如果該機器無法下載 Claude Code,Desktop 會在您的電腦上下載後再上傳。Claude Code 的其他請求仍會從遠端機器發出。在 Linux 遠端機器上,如果這些請求需要代理伺服器,請[為 SSH 工作階段設定它](#set-a-proxy-or-a-ca-certificate-for-ssh-sessions)。995* **網路**:Claude Code 在遠端機器上執行,並從該處發出網路請求,因此該機器需要 [Claude Code 所需的網路存取](https://code.claude.com/docs/zh-TW/network-config.md#network-access-requirements)。如果該機器無法下載 Claude Code,Desktop 會在您的電腦上下載後再上傳。Claude Code 的其他請求仍會從遠端機器發出。在 Linux 遠端機器上,如果這些請求需要代理伺服器,請[為 SSH 工作階段設定它](#set-a-proxy-or-a-ca-certificate-for-ssh-sessions)。

996 996 

997#### 檢查遠端機器的主機金鑰

998 

999主機金鑰是遠端機器出示以證明其身分的金鑰,而指紋是該金鑰的簡短形式。當您信任某個金鑰時,您的電腦會儲存它,並在不再詢問的情況下連線至任何出示該金鑰的對象。請在信任金鑰之前先檢查它,因為可能有東西正在攔截連線。

1000 

1001首先,根據您看到指紋的位置,找出該金鑰屬於哪台機器:

1002 

1003* **Desktop 詢問 `Connect to <host> for the first time?`,或您選取了 Review new key**:Desktop 所指名的機器,即 `<host>`

1004* **Desktop 詢問 `Connect through <jump host> for the first time?`**:跳板主機,也就是您的連線所經過的機器,而不是您要連線的目標機器

1005* **`ssh` 在終端機中詢問或警告**:其訊息所指名的機器,這可能不是您輸入的那台

1006 

1007從機器本身取得該機器自己的指紋,而不是透過您正在檢查的連線取得:

1008 

1009* **由其他人管理該機器**:請向他們索取其主機金鑰指紋

1010* **由您管理,且它執行 Linux 或 macOS**:在該機器的主控台上,或透過您已信任的連線,在其上執行 `ssh-keygen -lf /etc/ssh/ssh_host_<type>_key.pub`。對於 `<type>`,請使用 Desktop 或 `ssh` 在指紋旁顯示的金鑰類型,並以小寫表示:`ED25519` 或 `ssh-ed25519` 請使用 `ed25519`。

1011 

1012然後將機器本身的指紋與您所看到的指紋進行比對:

1013 

1014* **兩者相符**:信任該金鑰。在 Desktop 中選取 **Trust and connect** 或 **Trust new key**,或在終端機中回答 `yes`。

1015* **兩者不同,或您無法檢查**:請勿連線。在 Desktop 中選取 **Cancel**,或在終端機中回答 `no`。如果由其他人管理該機器,請告訴他們您看到的指紋。

1016 

1017如果是疑難排解步驟將您引導至此,無論結果為何,請回到該步驟。

1018 

997#### 為 SSH 工作階段設定代理伺服器或 CA 憑證1019#### 為 SSH 工作階段設定代理伺服器或 CA 憑證

998 1020 

999如果 Linux 遠端機器透過代理伺服器連上網際網路或需要 CA 憑證,請在該機器的 `~/.claude/settings.json` 中的 `env` 下加入[代理伺服器和 CA 變數](https://code.claude.com/docs/zh-TW/network-config.md)。即使您已在該機器的 `~/.profile`、`~/.bash_profile`、`~/.zprofile` 或 `~/.zshrc` 中匯出這些變數,也請加入。1021如果 Linux 遠端機器透過代理伺服器連上網際網路或需要 CA 憑證,請在該機器的 `~/.claude/settings.json` 中的 `env` 下加入[代理伺服器和 CA 變數](https://code.claude.com/docs/zh-TW/network-config.md)。即使您已在該機器的 `~/.profile`、`~/.bash_profile`、`~/.zprofile` 或 `~/.zshrc` 中匯出這些變數,也請加入。


2135 2157 

2136如果 MCP server 切換沒有回應或伺服器在 Windows 上無法連接,請檢查伺服器是否在您的設定中正確配置、重新啟動應用程式、驗證伺服器程序在工作管理員中執行,並檢查伺服器日誌以查看連線錯誤。2158如果 MCP server 切換沒有回應或伺服器在 Windows 上無法連接,請檢查伺服器是否在您的設定中正確配置、重新啟動應用程式、驗證伺服器程序在工作管理員中執行,並檢查伺服器日誌以查看連線錯誤。

2137 2159 

2160### SSH host key verification failed

2161 

2162以下每則訊息都表示 Desktop 拒絕了某個[主機金鑰](#check-a-remote-machines-host-key):

2163 

2164* `Couldn't connect to <host>` 卡片上 **View details** 下的 `SSH host key verification failed` 或 `Host denied (verification failed)`

2165* 提示詞方塊旁或 **Test connection** 之後的 `Connection failed: Host key changed or not trusted`

2166* 已中斷連線的工作階段上的 `<host>'s host key is not trusted` 或 `<host>'s host key has changed`

2167 

2168Desktop 通常會拒絕金鑰,是因為它與您電腦上儲存的金鑰不同,或是因為該機器沒有儲存任何金鑰。重建或重新安裝過的機器通常會提供新的金鑰,攔截連線的東西也會如此。請在再次連線之前檢查金鑰,並從 Desktop 隨訊息顯示的內容開始:

2169 

2170* **您使用 Windows,且 Desktop 顯示 `Connection failed: Host key changed or not trusted`**:請先排除[缺少 OpenSSH 用戶端](#ssh-host-key-refused-on-windows-without-an-openssh-client)的可能

2171* **Desktop 要求您設定 `UserKnownHostsFile`**:在 `~/.ssh/config` 中將其設為 `~/.ssh/known_hosts`,然後[從終端機檢查金鑰](#check-the-host-key-from-a-terminal)

2172* **您看到 Review new key 按鈕**:選擇它,並將 Desktop 顯示的指紋與該機器本身的指紋[比對](#check-a-remote-machines-host-key)。如果相符,請選擇 **Trust new key** 以取代已儲存的金鑰。否則請選擇 **Cancel**。

2173* **您沒有看到 Review new key 按鈕、Desktop 顯示 `Couldn't show the new key`,或 Desktop 在 Trust new key 之後再次拒絕金鑰**:[從終端機檢查金鑰](#check-the-host-key-from-a-terminal)

2174 

2175#### 從終端機檢查主機金鑰

2176 

2177在您的電腦上執行 `ssh <SSH host>`,其中使用 Desktop 中您的 [SSH 連線](#ssh-sessions)的 **SSH host** 值。如果該連線有 **SSH port** 值,請加上 `-p <SSH port>`。在 Windows 上請使用 PowerShell,因為 Desktop 不會使用 Git Bash 或 WSL 中的 `ssh` 進行連線。如果 PowerShell 找不到 `ssh`,請[安裝 Microsoft 的 OpenSSH 用戶端](#ssh-host-key-refused-on-windows-without-an-openssh-client)。

2178 

2179留意 `ssh` 在其訊息中指出的是哪台機器,那可能是跳板主機而非 `<SSH host>`,然後依照符合的情況處理:

2180 

2181* **`ssh` 詢問是否繼續連線**:將其顯示的指紋與該機器本身的指紋[比對](#check-a-remote-machines-host-key)。只有在相符時才回答 `yes`。

2182* **`ssh` 警告主機金鑰已變更**:將警告中的指紋與該機器本身的指紋[比對](#check-a-remote-machines-host-key)。只有在相符時,才刪除 `Offending <type> key in <file>:<line>` 指出的那一行,然後重新執行 `ssh`。如果 `ssh` 再次針對另一行發出警告,請如前所述比對、刪除並重新執行。

2183* **`ssh` 未經詢問就拒絕它不認識的金鑰**:向該機器的管理者取得其 `known_hosts` 行,而不要透過您正在檢查的連線取得。將該行加入您的 `known_hosts` 檔案,以 `ssh` 訊息中的名稱作為其主機名稱,然後重新執行 `ssh`。

2184* **`ssh` 未詢問您主機金鑰就繼續登入**:先不要輸入密碼。[檢查 `ssh` 已信任的金鑰](#check-the-keys-that-ssh-already-trusts)。

2185 

2186一旦 `ssh` 接受了您已檢查或加入的金鑰,請在 Desktop 中重試。如果 Desktop 再次拒絕金鑰,請參閱[取得 SSH 問題的 Desktop 日誌](#get-desktops-logs-for-an-ssh-problem)。

2187 

2188##### 檢查 `ssh` 已信任的金鑰

2189 

2190重新執行相同的 `ssh` 命令,並加上 `-v -S none`。在其輸出中,`Server host key:` 行會顯示指紋,而接下來的 `Host '<name>' is known` 行會指出該指紋所屬的機器。將您找到的每個指紋與該機器本身的指紋[比對](#check-a-remote-machines-host-key)。

2191 

2192* **跳板主機沒有 `Server host key:` 行**:也執行 `ssh -v -S none <jump host>`,並以相同方式比對該指紋。

2193* **指紋不相符,或您無法檢查**:不要再次連線。移除已儲存的金鑰:在 `Host '<name>' is known` 下,`Found key in <file>:<line>` 行會指出存放該金鑰的檔案。執行 `ssh-keygen -R "<name>" -f <file>`。如果您將主機金鑰存放在多個檔案中,請從每個檔案中移除該金鑰。如果您無法變更檔案,請告知您電腦的管理者。

2194* **每個指紋都相符**:請在 Desktop 中重試。如果 Desktop 再次拒絕金鑰,請參閱[取得 SSH 問題的 Desktop 日誌](#get-desktops-logs-for-an-ssh-problem)。

2195 

2196### 在沒有 OpenSSH 用戶端的 Windows 上 SSH 主機金鑰遭拒

2197 

2198在沒有 OpenSSH 用戶端的 Windows 上,Desktop 即使是正確的主機金鑰也會拒絕,並顯示 `Connection failed: Host key changed or not trusted`。它需要該用戶端來查詢已儲存的金鑰。若要查看您是否已安裝,請在 PowerShell 中執行 `ssh`。如果 PowerShell 無法辨識 `ssh`,請安裝 [Microsoft 的 OpenSSH 用戶端](https://learn.microsoft.com/windows-server/administration/openssh/openssh_install_firstuse)並重新啟動 Desktop。

2199 

2200然後再次連線。如果 Desktop 詢問是否首次連線,請在信任之前[檢查該機器的主機金鑰](#check-a-remote-machines-host-key)。如果 Desktop 仍拒絕金鑰,請依照 [SSH host key verification failed](#ssh-host-key-verification-failed) 下的其他情況處理。

2201 

2138### 登入後 SSH 連線失敗2202### 登入後 SSH 連線失敗

2139 2203 

2140在此表格中找到卡片的標題,或錯誤訊息結尾的代碼,然後依照最後一欄的說明操作。若要查看訊息,請在失敗卡片上選擇 **View details**。2204在此表格中找到卡片的標題,或錯誤訊息結尾的代碼,然後依照最後一欄的說明操作。若要查看訊息,請在失敗卡片上選擇 **View details**。

env-vars.md +2 −2

Details

236| `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` | 設為 `1` 可從 Bash、PowerShell 和 subagent 工具中移除 `run_in_background` 參數,並關閉 Ctrl+B 快捷鍵以及[分支 skill](https://code.claude.com/docs/zh-TW/skills.md#run-skills-in-a-subagent) 的背景執行。Claude Code 也會停止將 subagent、長時間的 MCP 工具呼叫和逾時的 shell 命令自動移至背景。[MCP 任務](https://code.claude.com/docs/zh-TW/mcp.md#make-claude-wait-for-the-result-of-an-mcp-task)和 [Monitor 工具](https://code.claude.com/docs/zh-TW/tools-reference.md#monitor-tool)仍會在背景執行 |236| `CLAUDE_CODE_DISABLE_BACKGROUND_TASKS` | 設為 `1` 可從 Bash、PowerShell 和 subagent 工具中移除 `run_in_background` 參數,並關閉 Ctrl+B 快捷鍵以及[分支 skill](https://code.claude.com/docs/zh-TW/skills.md#run-skills-in-a-subagent) 的背景執行。Claude Code 也會停止將 subagent、長時間的 MCP 工具呼叫和逾時的 shell 命令自動移至背景。[MCP 任務](https://code.claude.com/docs/zh-TW/mcp.md#make-claude-wait-for-the-result-of-an-mcp-task)和 [Monitor 工具](https://code.claude.com/docs/zh-TW/tools-reference.md#monitor-tool)仍會在背景執行 |

237| `CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_DEFAULT` | 設定為 `1` 可阻止 Claude Code 將缺少或為空 `Content-Type` 標頭的 [Amazon Bedrock](https://code.claude.com/docs/zh-TW/amazon-bedrock.md) 串流回應視為 Amazon Bedrock 的二進位事件串流。預設情況下,Claude Code 假設是閘道從原本未經修改的回應中移除了該標頭,因此會解碼本文,讓串流持續運作。僅針對也會將串流重新輸出為 server-sent events 的閘道設定此變數;Claude Code 隨後會將沒有標頭的本文讀取為 server-sent events。需要 Claude Code v2.1.239 或更新版本 |237| `CLAUDE_CODE_DISABLE_BEDROCK_CONTENT_TYPE_DEFAULT` | 設定為 `1` 可阻止 Claude Code 將缺少或為空 `Content-Type` 標頭的 [Amazon Bedrock](https://code.claude.com/docs/zh-TW/amazon-bedrock.md) 串流回應視為 Amazon Bedrock 的二進位事件串流。預設情況下,Claude Code 假設是閘道從原本未經修改的回應中移除了該標頭,因此會解碼本文,讓串流持續運作。僅針對也會將串流重新輸出為 server-sent events 的閘道設定此變數;Claude Code 隨後會將沒有標頭的本文讀取為 server-sent events。需要 Claude Code v2.1.239 或更新版本 |

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

239| `CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF` | 設定為 `1` 可在[監督程式](https://code.claude.com/docs/zh-TW/agent-view.md#the-supervisor-process)停止、重新啟動或更新[背景工作階段](https://code.claude.com/docs/zh-TW/agent-view.md)的程序時,停止該工作階段進行中的工作,而非將其交接給該工作階段的下一個程序。該工作包括工作階段中正在執行的背景 shell 命令與動態工作流程,自 v2.1.198 起還包括背景 subagent。僅影響該交接:使用 `←` 或 [`/background`](https://code.claude.com/docs/zh-TW/agent-view#from-inside-a-session) 將工作階段移至背景時,仍會將進行中的背景工作帶過去。需要 Claude Code v2.1.196 或更新版本 |239| `CLAUDE_CODE_DISABLE_BG_EXIT_HANDOFF` | 設為 `1` 可在 [supervisor](https://code.claude.com/docs/zh-TW/agent-view.md#the-supervisor-process) 停止、重新啟動或更新[背景工作階段](https://code.claude.com/docs/zh-TW/agent-view.md)的程序時,停止該工作階段進行中的工作,而非將其交接給該工作階段的下一個程序。該工作是指工作階段中正在執行的背景 shell 命令,自 v2.1.198 起還包括背景 subagent。僅影響該交接:使用 `←` 或 [`/background`](https://code.claude.com/docs/zh-TW/agent-view#from-inside-a-session) 將工作階段移至背景時,仍會延續進行中的背景工作。需要 Claude Code v2.1.196 或更新版本 |

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

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

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

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

244| `CLAUDE_CODE_DISABLE_CRON` | 設定為 `1` 可停用[工作階段範圍的排程任務](https://code.claude.com/docs/zh-TW/scheduled-tasks.md)。`/loop` skill 與 cron 工具將無法使用,任何已排程的任務都會停止觸發,包括已在工作階段中途執行的任務 |244| `CLAUDE_CODE_DISABLE_CRON` | 設定為 `1` 可停用[工作階段範圍的排程任務](https://code.claude.com/docs/zh-TW/scheduled-tasks.md)。`/loop` skill 與 cron 工具將無法使用,任何已排程的任務都會停止觸發,包括已在工作階段中途執行的任務 |

245| `CLAUDE_CODE_DISABLE_DANGEROUS_RM_TIMEOUT` | 設定為 `1` 可關閉[關鍵路徑移除](https://code.claude.com/docs/zh-TW/permission-modes.md#critical-paths)提示的時間限制。在 `auto` 模式下,Claude Code 隨後會將這些移除操作改交給分類器;在 `bypassPermissions` 模式下,提示會等待您的回答。請在啟動 Claude Code 的環境中設定,因為 Claude Code 會忽略透過設定 `env` 區塊傳遞的副本。需要 Claude Code v2.1.281 或更新版本 |245| `CLAUDE_CODE_DISABLE_DANGEROUS_RM_TIMEOUT` | 設為 `1` 可關閉 `auto` 和 `bypassPermissions` 模式對關鍵路徑刪除所施加的[時間限制與拒絕](https://code.claude.com/docs/zh-TW/permission-modes.md#time-limits-and-denials-in-auto-and-bypasspermissions-modes)。這些刪除接著在 `auto` 模式中會交由分類器處理,在 `bypassPermissions` 模式中則會在 Claude Code 能顯示提示的地方出現無時間限制的提示。請在啟動 Claude Code 的環境中設定,因為 Claude Code 會忽略透過設定 `env` 區塊傳遞的副本。需要 Claude Code v2.1.281 或更新版本 |

246| `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS` | 設定為 `1` 可從 API 請求中移除預先發行的 `anthropic-beta` 請求標頭、與其搭配的本文欄位,以及 `defer_loading` 與 `eager_input_streaming` 等 beta 工具結構描述欄位。當代理伺服器閘道因 `anthropic-beta` 標頭而以 `Unexpected value(s)` 錯誤拒絕請求,或出現 `Extra inputs are not permitted` 錯誤時使用。[停用預先發行功能](https://code.claude.com/docs/zh-TW/llm-gateway-protocol.md#disable-pre-release-capabilities)列出此變數移除的項目(包括 [MCP tool search](https://code.claude.com/docs/zh-TW/mcp.md#scale-with-mcp-tool-search))以及 Claude Code 持續傳送的項目 |246| `CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS` | 設定為 `1` 可從 API 請求中移除預先發行的 `anthropic-beta` 請求標頭、與其搭配的本文欄位,以及 `defer_loading` 與 `eager_input_streaming` 等 beta 工具結構描述欄位。當代理伺服器閘道因 `anthropic-beta` 標頭而以 `Unexpected value(s)` 錯誤拒絕請求,或出現 `Extra inputs are not permitted` 錯誤時使用。[停用預先發行功能](https://code.claude.com/docs/zh-TW/llm-gateway-protocol.md#disable-pre-release-capabilities)列出此變數移除的項目(包括 [MCP tool search](https://code.claude.com/docs/zh-TW/mcp.md#scale-with-mcp-tool-search))以及 Claude Code 持續傳送的項目 |

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

248| `CLAUDE_CODE_DISABLE_FAST_MODE` | 設定為 `1` 可停用[快速模式](https://code.claude.com/docs/zh-TW/fast-mode.md) |248| `CLAUDE_CODE_DISABLE_FAST_MODE` | 設定為 `1` 可停用[快速模式](https://code.claude.com/docs/zh-TW/fast-mode.md) |

errors.md +37 −5

Details

244| `MCP server "<name>" was not saved to` / `was not removed from` | [命令列錯誤](#mcp-server-was-not-saved-or-removed) |244| `MCP server "<name>" was not saved to` / `was not removed from` | [命令列錯誤](#mcp-server-was-not-saved-or-removed) |

245| `MCP server "<name>" may not have been saved` / `may not have been removed` | [命令列錯誤](#mcp-server-may-not-have-been-saved-or-removed) |245| `MCP server "<name>" may not have been saved` / `may not have been removed` | [命令列錯誤](#mcp-server-may-not-have-been-saved-or-removed) |

246| `Server rejected the Authorization header minted by the configured headersHelper` | [命令列錯誤](#server-rejected-the-authorization-header-minted-by-the-configured-headershelper) |246| `Server rejected the Authorization header minted by the configured headersHelper` | [命令列錯誤](#server-rejected-the-authorization-header-minted-by-the-configured-headershelper) |

247| `This server (Java MCP SDK 0.17.0 or older) rejected Claude Code's elicitation capability` | [命令列錯誤](#mcp-server-rejected-the-elicitation-capability) |

247| `Error: MCP tool <name> (passed via --permission-prompt-tool) not found` | [命令列錯誤](#mcp-permission-prompt-tool-not-found) |248| `Error: MCP tool <name> (passed via --permission-prompt-tool) not found` | [命令列錯誤](#mcp-permission-prompt-tool-not-found) |

248| `OAuth callback port <port> is already in use — another process may be holding it` | [命令列錯誤](#oauth-callback-port-is-already-in-use) |249| `OAuth callback port <port> is already in use — another process may be holding it` | [命令列錯誤](#oauth-callback-port-is-already-in-use) |

249| `No available ports for OAuth redirect` | [命令列錯誤](#no-available-ports-for-oauth-redirect) |250| `No available ports for OAuth redirect` | [命令列錯誤](#no-available-ports-for-oauth-redirect) |


3280* **`Error: Workspace not trusted. <folder> is your home directory`**:由於對家目錄的信任永遠不會被儲存,先在那裡執行 `claude` 並沒有幫助。請改從專案目錄執行 `claude ultrareview`(事先在那裡執行一次 `claude` 以接受信任對話框),或附加 `--trust-workspace`。3281* **`Error: Workspace not trusted. <folder> is your home directory`**:由於對家目錄的信任永遠不會被儲存,先在那裡執行 `claude` 並沒有幫助。請改從專案目錄執行 `claude ultrareview`(事先在那裡執行一次 `claude` 以接受信任對話框),或附加 `--trust-workspace`。

3281* **`No answer in time.` 後接 `Error: Workspace not trusted`**:`Trust <folder>? [y/N]` 問題在 5 分鐘內未獲回答。請再次執行 `claude ultrareview` 並回答它。3282* **`No answer in time.` 後接 `Error: Workspace not trusted`**:`Trust <folder>? [y/N]` 問題在 5 分鐘內未獲回答。請再次執行 `claude ultrareview` 並回答它。

3282* **`Ultrareview did not start: <folder> is not trusted`**:您在 `Trust <folder>? [y/N]` 問題中拒絕了,例如回答 `n` 或按下 Enter。若要啟動審查,請再次執行 `claude ultrareview` 並回答 `y`。3283* **`Ultrareview did not start: <folder> is not trusted`**:您在 `Trust <folder>? [y/N]` 問題中拒絕了,例如回答 `n` 或按下 Enter。若要啟動審查,請再次執行 `claude ultrareview` 並回答 `y`。

3283* **``Ultrareview did not start: `--trust-workspace` takes no value``**:`--trust-workspace` 之後接了非旗標的內容,例如 PR 編號或 `false`。如果您不信任該資料夾,請省略此旗標。若要在此次執行中信任該資料夾,請將 PR 編號或基礎分支放在旗標之前:`claude ultrareview 1234 --trust-workspace`。3284* **``Ultrareview did not start: `--trust-workspace` takes no value``**:`--trust-workspace` 後面接了旗標以外的內容,例如 PR 編號或 `false`。如果您不信任該資料夾,請省略此旗標。若要在此次執行中信任它,請將 PR 編號或基準分支放在旗標之前:`claude ultrareview 1234 --trust-workspace`。

3284 3285 

3285在 v2.1.309 之前,`claude ultrareview` 不接受 `--trust-workspace`。3286在 v2.1.309 之前,`claude ultrareview` 不接受 `--trust-workspace`。

3286 3287 


3473 3474 

3474在 v2.1.248 之前,對於 helper 提供 `Authorization` 標頭的伺服器,Claude Code 仍會執行 OAuth 探索。該探索可能會以 `Incompatible auth server: does not support dynamic client registration` 失敗,而不是回報被拒絕的憑證。3475在 v2.1.248 之前,對於 helper 提供 `Authorization` 標頭的伺服器,Claude Code 仍會執行 OAuth 探索。該探索可能會以 `Incompatible auth server: does not support dynamic client registration` 失敗,而不是回報被拒絕的憑證。

3475 3476 

3477### MCP 伺服器拒絕了 elicitation 功能

3478 

3479某個以 Java MCP SDK 0.11.0 至 0.17.0 建置的 MCP 伺服器拒絕了連線。這些 SDK 版本無法解析 Claude Code 在交握中宣告的 `form` 與 `url` [elicitation 模式](https://code.claude.com/docs/zh-TW/mcp.md#elicitation-modes-claude-code-declares)。`claude mcp list` 會將該伺服器顯示為失敗,並以此訊息取代伺服器本身的錯誤:

3480 

3481```text theme={null}

3482This server (Java MCP SDK 0.17.0 or older) rejected Claude Code's elicitation capability. Set "bareElicitationCapability": true for it, or upgrade to Java MCP SDK 0.17.1+ (Spring AI 1.0.7+ or 1.1.6+).

3483```

3484 

3485**處理方式:**

3486 

3487* 將伺服器升級至 Java MCP SDK 0.17.1 或更新版本,或升級至訊息所指名的其中一個 Spring AI 版本

3488* 或者,在您的 MCP 設定中將 `"bareElicitationCapability": true` 新增到該伺服器的項目,然後重新啟動 Claude Code。此欄位適用於 stdio、`sse`、`http` 和 `ws` 項目,且需要 Claude Code v2.1.281 或更新版本

3489 

3490以下 `.mcp.json` 項目為一個 HTTP 伺服器設定此欄位:

3491 

3492```json theme={null}

3493{

3494 "mcpServers": {

3495 "inventory": {

3496 "type": "http",

3497 "url": "https://mcp.example.com/mcp",

3498 "bareElicitationCapability": true

3499 }

3500 }

3501}

3502```

3503 

3504重新啟動後,`/mcp` 會將該伺服器顯示為已連線。Claude Code 只會對該伺服器宣告 form 模式,因此在升級伺服器後請移除此欄位。

3505 

3506伺服器也可能以其本身的錯誤文字失敗,例如包含 `Unrecognized field "form"` 的錯誤。適用相同的修正方式。

3507 

3476### 找不到 MCP 權限提示工具3508### 找不到 MCP 權限提示工具

3477 3509 

3478您傳給 [`--permission-prompt-tool`](https://code.claude.com/docs/zh-TW/cli-reference#cli-flags) 的工具在執行首次需要權限決定時,不在已連線的 MCP 工具之中,原因可能是其伺服器從未連線,或沒有任何已連線的伺服器提供該名稱的工具。Claude Code 仍會傳送您的提示詞:[非互動](https://code.claude.com/docs/zh-TW/headless.md)執行會在第一次工具呼叫時以此錯誤與退出碼 1 結束,因此即使已發出請求,也不會產生任何回答。在第一次提示之前,Claude Code 會等待該伺服器連線,最長等待由 [`MCP_TIMEOUT`](https://code.claude.com/docs/zh-TW/env-vars) 設定的每個伺服器 30 秒連線逾時。在 v2.1.206 之前,啟動時不會等待伺服器完成連線,因此啟動緩慢但正常的伺服器也會產生此錯誤。3510您傳給 [`--permission-prompt-tool`](https://code.claude.com/docs/zh-TW/cli-reference#cli-flags) 的工具在執行首次需要權限決定時,不在已連線的 MCP 工具之中,原因可能是其伺服器從未連線,或沒有任何已連線的伺服器提供該名稱的工具。Claude Code 仍會傳送您的提示詞:[非互動](https://code.claude.com/docs/zh-TW/headless.md)執行會在第一次工具呼叫時以此錯誤與退出碼 1 結束,因此即使已發出請求,也不會產生任何回答。在第一次提示之前,Claude Code 會等待該伺服器連線,最長等待由 [`MCP_TIMEOUT`](https://code.claude.com/docs/zh-TW/env-vars) 設定的每個伺服器 30 秒連線逾時。在 v2.1.206 之前,啟動時不會等待伺服器完成連線,因此啟動緩慢但正常的伺服器也會產生此錯誤。


3541 3573 

3542以下同類字串會在命令執行之前就觸發:3574以下同類字串會在命令執行之前就觸發:

3543 3575 

3544* `Shell command permission check failed for pattern "..."`:命令的權限檢查不允許執行。[注入命令的權限檢查](https://code.claude.com/docs/zh-TW/skills.md#permission-checks-on-injected-commands)說明了在各權限模式下哪些結果會中止,以及如何以 `allowed-tools` 預先核准命令3576* `Shell command permission check failed for pattern "..."`:該命令的權限檢查未允許它。[注入命令的權限檢查](https://code.claude.com/docs/zh-TW/skills.md#permission-checks-on-injected-commands)說明了在各權限模式下哪些結果會中止,以及如何使用 `allowed-tools` 預先核准命令

3545* ``Skill <name> requires bash (`shell: bash` in frontmatter) but Git Bash was not found``:該 skill 的 frontmatter 要求使用 bash,但機器上沒有 bash。請安裝 Git for Windows,或將 frontmatter 改為 `shell: powershell`。請參閱[注入命令的執行方式](https://code.claude.com/docs/zh-TW/skills.md#how-injected-commands-run)3577* ``Skill <name> requires bash (`shell: bash` in frontmatter) but Git Bash was not found``:該 skill 的 frontmatter 要求 bash,但電腦上沒有 bash。請安裝 Git for Windows,或將 frontmatter 改為 `shell: powershell`。請參閱[注入的命令如何執行](https://code.claude.com/docs/zh-TW/skills.md#how-injected-commands-run)

3546* `No shell command in <name> was run`:檔案中某個 `!` 命令包含定位字元或換行字元以外的原始控制字元,因此所有命令都不會執行。請參閱[如何找出並移除該字元](#no-shell-command-was-run)3578* `No shell command in <name> was run`:檔案中的某個 `!` 命令包含 tab 或換行以外的原始控制字元,因此所有命令都不會執行。請參閱[如何找出並移除該字元](#no-shell-command-was-run)

3547 3579 

3548**處理方式:**3580**處理方式:**

3549 3581 


3693 3725 

3694* **您沒有傳入基底分支**:Claude Code 與儲存庫的預設分支進行比較,並建議您明確傳入基底分支,如上例所示3726* **您沒有傳入基底分支**:Claude Code 與儲存庫的預設分支進行比較,並建議您明確傳入基底分支,如上例所示

3695* **您傳入的基底分支已存在於您的複製中**:提示內容為 ``Make sure <branch> exists locally or on origin (try `git fetch origin <branch>`)``3727* **您傳入的基底分支已存在於您的複製中**:提示內容為 ``Make sure <branch> exists locally or on origin (try `git fetch origin <branch>`)``

3696* **您傳入的基礎分支不在您的 clone 中**:Claude Code 會在比較之前從 origin 擷取該分支。提示內容為 ``<branch> was fetched from origin but shares no history with HEAD. If another branch is your real base, pass it explicitly (`/code-review ultra <branch>`)``;當 Claude Code 無法判斷您的 clone 是否為淺層 clone 時,則會改為建議 `git fetch --unshallow origin`。在 v2.1.221 之前,對於每個擷取而來的基礎分支,提示都會建議 `git fetch --unshallow origin`,而在完整的 clone 上,該命令會以 `fatal: --unshallow on a complete repository does not make sense` 失敗。3728* **您傳入的基礎分支不在您的複製中**:Claude Code 會先從 origin 擷取該分支再進行比較。提示內容為 ``<branch> was fetched from origin but shares no history with HEAD. If another branch is your real base, pass it explicitly (`/code-review ultra <branch>`)``;當 Claude Code 無法判斷您的複製是否為淺層複製時,則改為建議 `git fetch --unshallow origin`。在 v2.1.221 之前,提示會對每個擷取的基礎分支都建議 `git fetch --unshallow origin`,而在完整複製上該命令會失敗並顯示 `fatal: --unshallow on a complete repository does not make sense`。

3697 3729 

3698**處理方式:**3730**處理方式:**

3699 3731 

Details

303* CLAUDE.md 和 git 狀態。內建的 Explore 和 Plan agent [兩者皆不載入](https://code.claude.com/docs/zh-TW/sub-agents.md#what-loads-at-startup),而定義中設定了 [`omitClaudeMd`](https://code.claude.com/docs/zh-TW/sub-agents#supported-frontmatter-fields) 的 agent 啟動時不包含使用者、專案和本地 CLAUDE.md 檔案。303* CLAUDE.md 和 git 狀態。內建的 Explore 和 Plan agent [兩者皆不載入](https://code.claude.com/docs/zh-TW/sub-agents.md#what-loads-at-startup),而定義中設定了 [`omitClaudeMd`](https://code.claude.com/docs/zh-TW/sub-agents#supported-frontmatter-fields) 的 agent 啟動時不包含使用者、專案和本地 CLAUDE.md 檔案。

304* 主 agent 在提示詞中傳遞的任何上下文304* 主 agent 在提示詞中傳遞的任何上下文

305 305 

306對於[分支](https://code.claude.com/docs/zh-TW/sub-agents.md#fork-the-current-conversation),Claude Code 載入父對話到目前為止、系統提示和工具。306對於[分支](https://code.claude.com/docs/zh-TW/sub-agents.md#fork-the-current-conversation),Claude Code 改為載入父對話到目前為止的內容、系統提示和工具。

307 307 

308**上下文成本:** 與主會話隔離。308**上下文成本:** 與主會話隔離。

309 309 

hooks.md +1 −1

Details

1957 1957 

1958| 欄位 | 說明 |1958| 欄位 | 說明 |

1959| :- | :- |1959| :- | :- |

1960| `permissionDecision` | `"allow"` 會略過權限提示,但[任何模式都不會自動核准的動作](https://code.claude.com/docs/zh-TW/permission-modes.md#actions-no-mode-auto-approves)與[從網路路徑讀取](https://code.claude.com/docs/zh-TW/permissions.md#network-paths)除外。`AskUserQuestion` 與 `ExitPlanMode` 需要[與 `"allow"` 搭配的 `updatedInput`](#allow-with-updatedinput)。關於 plan mode,請參閱 [plan mode 中的 hook 核准](https://code.claude.com/docs/zh-TW/permissions.md#hook-approvals-in-plan-mode)。`"deny"` 會阻止工具呼叫。`"ask"` 會提示使用者確認。`"defer"` 會結束回合,讓工具稍後可以繼續,且需要使用 `-p` 旗標的[非互動模式](#defer-a-tool-call-for-later)。無論 hook 傳回什麼,[拒絕與詢問規則](https://code.claude.com/docs/zh-TW/permissions.md#manage-permissions)仍會被評估 |1960| `permissionDecision` | `"allow"` 會略過權限提示,但[沒有任何模式會自動核准的動作](https://code.claude.com/docs/zh-TW/permission-modes.md#actions-no-mode-auto-approves)和[從網路路徑讀取](https://code.claude.com/docs/zh-TW/permissions.md#network-paths)除外。對於[Agent SDK 應用程式標記為 `always_ask` 的工具](https://code.claude.com/docs/zh-TW/agent-sdk/custom-tools#require-approval-for-specific-tools)的呼叫,它也不會略過核准,除非[權限模式核准了該呼叫](https://code.claude.com/docs/zh-TW/agent-sdk/typescript.md#permission-modes-that-can-approve-an-always_ask-call)。`AskUserQuestion` 和 `ExitPlanMode` 需要[與 `"allow"` 搭配的 `updatedInput`](#allow-with-updatedinput)。關於 plan mode,請參閱[plan mode 中的 hook 核准](https://code.claude.com/docs/zh-TW/permissions.md#hook-approvals-in-plan-mode)。`"deny"` 會阻止工具呼叫。`"ask"` 會提示使用者確認。`"defer"` 會結束回合,讓工具稍後可以恢復,且需要使用 `-p` 旗標的[非互動模式](#defer-a-tool-call-for-later)。無論 hook 回傳什麼,[拒絕與詢問規則](https://code.claude.com/docs/zh-TW/permissions.md#manage-permissions)仍會被評估 |

1961| `permissionDecisionReason` | 對於 `"ask"`,會在權限提示中向使用者顯示。當 Claude Code 在沒有人能回應該提示的 `-p` 執行中[拒絕呼叫](https://code.claude.com/docs/zh-TW/headless.md#turn-off-permission-prompts-in-unattended-runs)時,Claude 會改為在工具結果中讀到原因。對於 `"deny"`,會向 Claude 顯示。對於 `"allow"` 和 `"defer"`,只會寫入[除錯日誌](#debug-hooks) |1961| `permissionDecisionReason` | 對於 `"ask"`,會在權限提示中向使用者顯示。當 Claude Code 在沒有人能回應該提示的 `-p` 執行中[拒絕呼叫](https://code.claude.com/docs/zh-TW/headless.md#turn-off-permission-prompts-in-unattended-runs)時,Claude 會改為在工具結果中讀到原因。對於 `"deny"`,會向 Claude 顯示。對於 `"allow"` 和 `"defer"`,只會寫入[除錯日誌](#debug-hooks) |

1962| `updatedInput` | 在執行前修改工具的輸入參數。會取代整個輸入物件,因此請將未變更的欄位與修改過的欄位一併包含。Claude Code 會根據您 hook 回傳的輸入(而非 Claude 傳送的輸入)評估權限規則,以及 Bash 命令的[自動移至背景資格](https://code.claude.com/docs/zh-TW/tools-reference.md#foreground-commands-that-move-to-the-background)。與 `"allow"` 搭配可自動核准,或與 `"ask"` 搭配向使用者顯示修改後的輸入。對於 `"defer"`,會被忽略 |1962| `updatedInput` | 在執行前修改工具的輸入參數。會取代整個輸入物件,因此請將未變更的欄位與修改過的欄位一併包含。Claude Code 會根據您 hook 回傳的輸入(而非 Claude 傳送的輸入)評估權限規則,以及 Bash 命令的[自動移至背景資格](https://code.claude.com/docs/zh-TW/tools-reference.md#foreground-commands-that-move-to-the-background)。與 `"allow"` 搭配可自動核准,或與 `"ask"` 搭配向使用者顯示修改後的輸入。對於 `"defer"`,會被忽略 |

1963| `additionalContext` | 與工具結果一同加入 Claude 情境的字串。當 `permissionDecision` 為 `"defer"` 時會被忽略。請參閱[為 Claude 新增情境](#add-context-for-claude) |1963| `additionalContext` | 與工具結果一同加入 Claude 情境的字串。當 `permissionDecision` 為 `"defer"` 時會被忽略。請參閱[為 Claude 新增情境](#add-context-for-claude) |

hooks-guide.md +2 −0

Details

629 629 

630* 從 [網路路徑](https://code.claude.com/docs/zh-TW/permissions.md#network-paths) 讀取630* 從 [網路路徑](https://code.claude.com/docs/zh-TW/permissions.md#network-paths) 讀取

631* 標記為 [`requiresUserInteraction`](https://code.claude.com/docs/zh-TW/mcp#require-approval-for-a-specific-tool) 的 MCP 工具631* 標記為 [`requiresUserInteraction`](https://code.claude.com/docs/zh-TW/mcp#require-approval-for-a-specific-tool) 的 MCP 工具

632* 呼叫 [Agent SDK 應用程式標記為 `always_ask` 的工具](https://code.claude.com/docs/zh-TW/agent-sdk/custom-tools#require-approval-for-specific-tools),除非 [權限模式核准該呼叫](https://code.claude.com/docs/zh-TW/agent-sdk/typescript.md#permission-modes-that-can-approve-an-always_ask-call)

632* 在該設定會傳達到 Claude Code 的工作階段中,[您的組織設定為 `ask`](https://code.claude.com/docs/zh-TW/mcp#organization-controls-on-connector-tools) 的連接器工具633* 在該設定會傳達到 Claude Code 的工作階段中,[您的組織設定為 `ask`](https://code.claude.com/docs/zh-TW/mcp#organization-controls-on-connector-tools) 的連接器工具

633 634 

634 關於 `"allow"` 在 plan mode 中的作用,請參閱 [plan mode 中的 hook 核准](https://code.claude.com/docs/zh-TW/permissions.md#hook-approvals-in-plan-mode)。635 關於 `"allow"` 在 plan mode 中的作用,請參閱 [plan mode 中的 hook 核准](https://code.claude.com/docs/zh-TW/permissions.md#hook-approvals-in-plan-mode)。


963* **仍優先於 `"allow"` 的項目**:傳回 `"allow"` 的 hook 不會繞過來自設定的拒絕規則,也無法抑制以下情況的提示:964* **仍優先於 `"allow"` 的項目**:傳回 `"allow"` 的 hook 不會繞過來自設定的拒絕規則,也無法抑制以下情況的提示:

964 * 從[網路路徑](https://code.claude.com/docs/zh-TW/permissions.md#network-paths)讀取965 * 從[網路路徑](https://code.claude.com/docs/zh-TW/permissions.md#network-paths)讀取

965 * 標記為 [`requiresUserInteraction`](https://code.claude.com/docs/zh-TW/mcp#require-approval-for-a-specific-tool) 的 MCP 工具966 * 標記為 [`requiresUserInteraction`](https://code.claude.com/docs/zh-TW/mcp#require-approval-for-a-specific-tool) 的 MCP 工具

967 * 對 [Agent SDK 應用程式標記為 `always_ask` 之工具](https://code.claude.com/docs/zh-TW/agent-sdk/custom-tools#require-approval-for-specific-tools)的呼叫,除非[權限模式核准該呼叫](https://code.claude.com/docs/zh-TW/agent-sdk/typescript.md#permission-modes-that-can-approve-an-always_ask-call)

966 * 在該設定會傳達到 Claude Code 的工作階段中,[您的組織設定為 `ask`](https://code.claude.com/docs/zh-TW/mcp#organization-controls-on-connector-tools) 的連接器工具968 * 在該設定會傳達到 Claude Code 的工作階段中,[您的組織設定為 `ask`](https://code.claude.com/docs/zh-TW/mcp#organization-controls-on-connector-tools) 的連接器工具

967 969 

968在 [plan mode](https://code.claude.com/docs/zh-TW/permissions.md#hook-approvals-in-plan-mode) 中,如果您的 `PreToolUse` hook 對檔案編輯傳回 `"allow"`,您會得到與沒有 hook 時該編輯相同的提示、阻止或核准。若要解除 hook 核准的這項限制,請[核准計畫](https://code.claude.com/docs/zh-TW/permission-modes.md#review-and-approve-a-plan)或切換到其他權限模式。970在 [plan mode](https://code.claude.com/docs/zh-TW/permissions.md#hook-approvals-in-plan-mode) 中,如果您的 `PreToolUse` hook 對檔案編輯傳回 `"allow"`,您會得到與沒有 hook 時該編輯相同的提示、阻止或核准。若要解除 hook 核准的這項限制,請[核准計畫](https://code.claude.com/docs/zh-TW/permission-modes.md#review-and-approve-a-plan)或切換到其他權限模式。

Details

407| [`managedMcpServers`](https://code.claude.com/docs/zh-TW/settings-reference#managedmcpservers) | 提供給每個使用者的遠端 MCP 伺服器,與他們自己的伺服器一起。它提供伺服器而不是鎖定任何東西。請參閱[透過受管理設定提供伺服器](https://code.claude.com/docs/zh-TW/managed-mcp.md#provide-servers-through-managed-settings)。需要 Claude Code v2.1.259 或更新版本 |407| [`managedMcpServers`](https://code.claude.com/docs/zh-TW/settings-reference#managedmcpservers) | 提供給每個使用者的遠端 MCP 伺服器,與他們自己的伺服器一起。它提供伺服器而不是鎖定任何東西。請參閱[透過受管理設定提供伺服器](https://code.claude.com/docs/zh-TW/managed-mcp.md#provide-servers-through-managed-settings)。需要 Claude Code v2.1.259 或更新版本 |

408| [`managedSourcesBehavior`](https://code.claude.com/docs/zh-TW/settings-reference#managedsourcesbehavior) | Claude Code 是否只應用最高優先級的受管理來源或[組合每一個](#compose-every-managed-source) |408| [`managedSourcesBehavior`](https://code.claude.com/docs/zh-TW/settings-reference#managedsourcesbehavior) | Claude Code 是否只應用最高優先級的受管理來源或[組合每一個](#compose-every-managed-source) |

409| [`parentSettingsBehavior`](https://code.claude.com/docs/zh-TW/settings-reference#parentsettingsbehavior) | 主機提供的父設定是否在受管理原則下合併 |409| [`parentSettingsBehavior`](https://code.claude.com/docs/zh-TW/settings-reference#parentsettingsbehavior) | 主機提供的父設定是否在受管理原則下合併 |

410| [`pluginSuggestionMarketplaces`](https://code.claude.com/docs/zh-TW/settings-reference#pluginsuggestionmarketplaces) | Claude Code 可能向使用者建議其外掛程式的市集 |410| [`pluginSuggestionMarketplaces`](https://code.claude.com/docs/zh-TW/settings-reference#pluginsuggestionmarketplaces) | Claude Code 可能在終端機中向使用者建議其外掛程式的市集 |

411| [`pluginTrustMessage`](https://code.claude.com/docs/zh-TW/settings-reference#plugintrustmessage) | 附加到安裝前顯示的外掛程式信任警告的自訂訊息 |411| [`pluginTrustMessage`](https://code.claude.com/docs/zh-TW/settings-reference#plugintrustmessage) | 附加到安裝前顯示的外掛程式信任警告的自訂訊息 |

412| [`policyHelper`](https://code.claude.com/docs/zh-TW/settings-reference#policyhelper) | 在啟動時計算受管理設定的可執行檔;請參閱[使用原則協助程式計算受管理設定](https://code.claude.com/docs/zh-TW/settings-reference.md#policyhelper) |412| [`policyHelper`](https://code.claude.com/docs/zh-TW/settings-reference#policyhelper) | 在啟動時計算受管理設定的可執行檔;請參閱[使用原則協助程式計算受管理設定](https://code.claude.com/docs/zh-TW/settings-reference.md#policyhelper) |

413| [`sandbox.filesystem.allowManagedReadPathsOnly`](https://code.claude.com/docs/zh-TW/settings-reference#sandbox-filesystem-allowmanagedreadpathsonly) | 當為 `true` 時,只有來自受管理設定的 `filesystem.allowRead` 路徑會被遵守。`denyRead` 仍會從所有來源合併 |413| [`sandbox.filesystem.allowManagedReadPathsOnly`](https://code.claude.com/docs/zh-TW/settings-reference#sandbox-filesystem-allowmanagedreadpathsonly) | 當為 `true` 時,只有來自受管理設定的 `filesystem.allowRead` 路徑會被遵守。`denyRead` 仍會從所有來源合併 |

mcp.md +10 −1

Details

1624 1624 

1625如果您正在建置使用徵詢功能的 MCP 伺服器,請參閱 [MCP 徵詢規格](https://modelcontextprotocol.io/docs/learn/client-concepts#elicitation)以了解協定詳細資訊和結構描述範例。1625如果您正在建置使用徵詢功能的 MCP 伺服器,請參閱 [MCP 徵詢規格](https://modelcontextprotocol.io/docs/learn/client-concepts#elicitation)以了解協定詳細資訊和結構描述範例。

1626 1626 

1627在使用 [protocol revision 2026-07-28](#mcp-client-runtimes) 的連線上,Claude Code 在其用戶端功能中宣告 `elicitation: {form: {}, url: {}}`,因此該處的伺服器可以透過協定的標準徵詢請求來請求任一模式。1627### Claude Code 宣告的徵詢模式

1628 

1629如果您建置 MCP 伺服器,Claude Code 在連線時傳送的用戶端功能會告訴您的伺服器它可以請求哪些徵詢模式。Claude Code 在下列連線上宣告 `elicitation: {form: {}, url: {}}`,因此其中任何連線上的伺服器都可以請求這兩種模式:

1630 

1631* 使用 [protocol revision 2026-07-28](#mcp-client-runtimes) 的連線

1632* 在較早協定修訂版本(2025-11-25 及更舊版本)上,連線至使用者 Claude Code MCP 設定中的 stdio、`sse`、`http` 和 `ws` 伺服器的連線。需要 Claude Code v2.1.287 或更新版本

1633 

1634在較早修訂版本上的其他連線中,例如連線至 [claude.ai 連接器](#use-mcp-servers-from-claude-ai),Claude Code 宣告的是單純的 `elicitation: {}`,這僅允許表單模式的徵詢請求。

1635 

1636以 Java MCP SDK 0.17.0 或更早版本建置的伺服器,可能會拒絕包含 `form` 和 `url` 的宣告。請參閱 [MCP server rejected the elicitation capability](https://code.claude.com/docs/zh-TW/errors.md#mcp-server-rejected-the-elicitation-capability)。

1628 1637 

1629## 使用 MCP 資源1638## 使用 MCP 資源

1630 1639 

Details

36* 符合明確[詢問規則](https://code.claude.com/docs/zh-TW/permissions.md#manage-permissions)的工具36* 符合明確[詢問規則](https://code.claude.com/docs/zh-TW/permissions.md#manage-permissions)的工具

37* 您的組織[設定為 `ask`](https://code.claude.com/docs/zh-TW/mcp#organization-controls-on-connector-tools) 的連接器工具,在該設定到達 Claude Code 的工作階段中37* 您的組織[設定為 `ask`](https://code.claude.com/docs/zh-TW/mcp#organization-controls-on-connector-tools) 的連接器工具,在該設定到達 Claude Code 的工作階段中

38* 需要使用者互動的工具:內建的 `AskUserQuestion` 工具和標記為 [`requiresUserInteraction`](https://code.claude.com/docs/zh-TW/mcp#require-approval-for-a-specific-tool) 的 MCP 工具38* 需要使用者互動的工具:內建的 `AskUserQuestion` 工具和標記為 [`requiresUserInteraction`](https://code.claude.com/docs/zh-TW/mcp#require-approval-for-a-specific-tool) 的 MCP 工具

39* 已識別的 `rm` 和 `rmdir` [關鍵路徑移除](#critical-paths),任何允許規則或 `PreToolUse` hook `"allow"` 都無法核准39* 已識別的 `rm` 和 `rmdir` [關鍵路徑移除](#critical-paths),任何允許規則或 `PreToolUse` hook `"allow"` 都無法核准,以及被標記為 [`Dangerous rm operation not ruled out`](#dangerous-rm-operation-not-ruled-out) 的 Bash 命令

40* [跨工作階段訊息保護措施](#skip-all-checks-with-bypasspermissions-mode)40* [跨工作階段訊息保護措施](#skip-all-checks-with-bypasspermissions-mode)

41* 當 [`permissions.blockReadsOutsideWorkingDirectories`](https://code.claude.com/docs/zh-TW/settings-reference#permissions-blockreadsoutsideworkingdirectories) 開啟時,在工作目錄外讀取:已識別的檔案讀取 Bash 命令即使在自動模式和 `bypassPermissions` 模式中也會提示,任何[未沙箱化的重試](https://code.claude.com/docs/zh-TW/sandboxing.md#the-unsandboxed-retry-escape-hatch)需要批准才能在沙箱外執行也是如此。需要 Claude Code v2.1.257 或更新版本。41* 當 [`permissions.blockReadsOutsideWorkingDirectories`](https://code.claude.com/docs/zh-TW/settings-reference#permissions-blockreadsoutsideworkingdirectories) 開啟時,在工作目錄外讀取:已識別的檔案讀取 Bash 命令即使在自動模式和 `bypassPermissions` 模式中也會提示,任何[未沙箱化的重試](https://code.claude.com/docs/zh-TW/sandboxing.md#the-unsandboxed-retry-escape-hatch)需要批准才能在沙箱外執行也是如此。需要 Claude Code v2.1.257 或更新版本。

42 42 


265 265 

266`acceptEdits` 模式讓 Claude 在您的工作目錄中建立和編輯檔案,無需提示。當此模式處於活動狀態時,狀態列會顯示 `⏵⏵ accept edits on`。266`acceptEdits` 模式讓 Claude 在您的工作目錄中建立和編輯檔案,無需提示。當此模式處於活動狀態時,狀態列會顯示 `⏵⏵ accept edits on`。

267 267 

268除了檔案編輯外,`acceptEdits` 模式還會自動批准常見的檔案系統 Bash 命令:`mkdir`、`touch`、`rm`、`rmdir`、`mv`、`cp` 和 `sed`。當這些命令以安全環境變數(例如 `LANG=C` 或 `NO_COLOR=1`)或程序包裝器(例如 `timeout`、`nice` 或 `nohup`)作為前綴時,也會自動批准。與檔案編輯一樣,自動批准僅適用於工作目錄或 `additionalDirectories` 內的路徑。268除了檔案編輯外,`acceptEdits` 模式還會自動批准常見的檔案系統 Bash 命令:`mkdir`、`touch`、`rm`、`rmdir`、`mv`、`cp` 和 `sed`。除了 `touch` 之外,當這些命令以安全環境變數(例如 `LANG=C` 或 `NO_COLOR=1`)或程序包裝器(例如 `timeout`、`nice` 或 `nohup`)作為前綴時,也會自動批准。與檔案編輯一樣,自動批准僅適用於工作目錄或 `additionalDirectories` 內的路徑。

269 269 

270以下情況仍會提示:270以下情況仍會提示:

271 271 

272* 超出該範圍的路徑272* 超出該範圍的路徑

273* 寫入[受保護路徑](#protected-paths)273* 寫入[受保護路徑](#protected-paths)

274* 可辨識的 `rm` 和 `rmdir` [關鍵路徑移除](#critical-paths)274* 可辨識的 `rm` 和 `rmdir` [關鍵路徑移除](#critical-paths)

275* `touch` 搭配純檔案路徑以外的任何內容,例如選項、glob,或 `timeout 5`、`LANG=C` 等前綴

275* 所有其他 Bash 命令(除了[內建唯讀集合](https://code.claude.com/docs/zh-TW/permissions.md#read-only-commands))276* 所有其他 Bash 命令(除了[內建唯讀集合](https://code.claude.com/docs/zh-TW/permissions.md#read-only-commands))

276 277 

277每個路徑也會經過[符號連結檢查](https://code.claude.com/docs/zh-TW/permissions.md#symlinks),因此解析到該範圍外的寫入也不會自動批准。278每個路徑也會經過[符號連結檢查](https://code.claude.com/docs/zh-TW/permissions.md#symlinks),因此解析到該範圍外的寫入也不會自動批准。


369* **直接連接到 Anthropic API**:在互動式終端機工作階段,以及 `-p`、Agent SDK、[VS Code 擴充功能](https://code.claude.com/docs/zh-TW/vs-code.md)和[桌面應用程式](https://code.claude.com/docs/zh-TW/desktop.md)工作階段中,無論您的計畫或帳戶類型為何,隨 Anthropic 逐步推出。在互動式終端機工作階段中,在 Pro、Max 和 Team 計畫上需要 Claude Code v2.1.271 或更新版本,在 Enterprise 計畫和 Claude API 帳戶上需要 v2.1.278 或更新版本。在 `-p`、Agent SDK、VS Code 擴充功能和桌面應用程式工作階段中,需要 Claude Code v2.1.281 或更新版本。從 v2.1.282 開始,[不擷取功能旗標](https://code.claude.com/docs/zh-TW/env-vars.md#features-that-need-feature-flag-fetching)的工作階段(例如因為您關閉了遙測),在任何類型的工作階段中都會預設詢問伺服器。370* **直接連接到 Anthropic API**:在互動式終端機工作階段,以及 `-p`、Agent SDK、[VS Code 擴充功能](https://code.claude.com/docs/zh-TW/vs-code.md)和[桌面應用程式](https://code.claude.com/docs/zh-TW/desktop.md)工作階段中,無論您的計畫或帳戶類型為何,隨 Anthropic 逐步推出。在互動式終端機工作階段中,在 Pro、Max 和 Team 計畫上需要 Claude Code v2.1.271 或更新版本,在 Enterprise 計畫和 Claude API 帳戶上需要 v2.1.278 或更新版本。在 `-p`、Agent SDK、VS Code 擴充功能和桌面應用程式工作階段中,需要 Claude Code v2.1.281 或更新版本。從 v2.1.282 開始,[不擷取功能旗標](https://code.claude.com/docs/zh-TW/env-vars.md#features-that-need-feature-flag-fetching)的工作階段(例如因為您關閉了遙測),在任何類型的工作階段中都會預設詢問伺服器。

370* **雲端提供商,或 LLM 閘道或代理伺服器**:在 [AWS 上的 Claude Platform](https://code.claude.com/docs/zh-TW/claude-platform-on-aws.md)、Amazon Bedrock、Google Cloud 的 Agent Platform 和 Microsoft Foundry 上,以及每當您將 `ANTHROPIC_BASE_URL` 指向 [LLM 閘道或代理伺服器](https://code.claude.com/docs/zh-TW/llm-gateway)時,無論您的計畫為何。預設詢問需要 Claude Code v2.1.278 或更新版本。371* **雲端提供商,或 LLM 閘道或代理伺服器**:在 [AWS 上的 Claude Platform](https://code.claude.com/docs/zh-TW/claude-platform-on-aws.md)、Amazon Bedrock、Google Cloud 的 Agent Platform 和 Microsoft Foundry 上,以及每當您將 `ANTHROPIC_BASE_URL` 指向 [LLM 閘道或代理伺服器](https://code.claude.com/docs/zh-TW/llm-gateway)時,無論您的計畫為何。預設詢問需要 Claude Code v2.1.278 或更新版本。

371* **已登入的 [Claude 應用程式閘道](https://code.claude.com/docs/zh-TW/claude-apps-gateway)工作階段**:需要 Claude Code v2.1.280 或更新版本372* **已登入的 [Claude 應用程式閘道](https://code.claude.com/docs/zh-TW/claude-apps-gateway)工作階段**:需要 Claude Code v2.1.280 或更新版本

373* **在 Anthropic 託管環境中的[雲端工作階段](https://code.claude.com/docs/zh-TW/claude-code-on-the-web.md)**:無論您的計畫為何,當您從網頁、行動應用程式,或在選取 **Cloud** 的情況下從桌面應用程式啟動時。由[雲端排程任務](https://code.claude.com/docs/zh-TW/routines.md)啟動的工作階段會隨 Anthropic 逐步推出而詢問伺服器。

372 374 

373在伺服器審查操作的情況下,由其判決決定這些操作。還有兩種其他可能的結果:375在伺服器審查操作的情況下,由其判決決定這些操作。還有兩種其他可能的結果:

374 376 


647 649 

648`bypassPermissions` 模式會停用權限提示與安全檢查,讓工具呼叫立即執行,包括寫入[受保護路徑](#protected-paths)。650`bypassPermissions` 模式會停用權限提示與安全檢查,讓工具呼叫立即執行,包括寫入[受保護路徑](#protected-paths)。

649 651 

650[任何模式都不會自動核准的動作](#actions-no-mode-auto-approves)在此模式下仍會提示。讀取[其他組織的公開 artifact](https://code.claude.com/docs/zh-TW/artifacts.md#read-an-artifact-shared-with-you) 需要您的核准,而此模式不會請求核准,因此 Claude 無法讀取這類 artifact。[PowerShell 中的 Remove-Item](#remove-item-in-powershell) 拒絕規則在此模式下同樣適用。652即使在 `bypassPermissions` 模式下,每一項[任何模式都不會自動核准的動作](#actions-no-mode-auto-approves)都會出現提示或遭到拒絕,而不會自行執行。讀取[其他組織的公開 artifact](https://code.claude.com/docs/zh-TW/artifacts.md#read-an-artifact-shared-with-you) 需要您的核准,而此模式不會請求核准,因此 Claude 無法讀取這類 artifact。[PowerShell 中的 Remove-Item](#remove-item-in-powershell) 拒絕規則在此模式下同樣適用。

651 653 

652有兩項[跨工作階段訊息](https://code.claude.com/docs/zh-TW/cross-session-messaging.md)保護措施在此模式下仍然適用,在可使用略過權限的互動式終端機 plan mode 工作階段中也同樣適用:654有兩項[跨工作階段訊息](https://code.claude.com/docs/zh-TW/cross-session-messaging.md)保護措施在此模式下仍然適用,在可使用略過權限的互動式終端機 plan mode 工作階段中也同樣適用:

653 655 


769* `.devcontainer.json`771* `.devcontainer.json`

770* `.ripgreprc`、`pyrightconfig.json`772* `.ripgreprc`、`pyrightconfig.json`

771* `.mcp.json`、`.claude.json`773* `.mcp.json`、`.claude.json`

774* 您在啟動工作階段時傳遞給 [`--settings`](https://code.claude.com/docs/zh-TW/cli-reference#cli-flags)、`--mcp-config` 或 `--agents` 的檔案

772* 當您的使用者、專案或本機[設定檔](https://code.claude.com/docs/zh-TW/settings.md#settings-files-and-who-they-affect)本身是符號連結時(例如連結到 dotfiles 儲存庫),該設定檔所指向的檔案。在將受保護路徑寫入路由到分類器的模式中,對此檔案的寫入會改為提示您,即使有允許規則相符也是如此。如果該檔案本身的路徑也是某個設定檔的路徑,例如另一個資料夾中的 `.claude/settings.json`,則該寫入會如同其他受保護路徑寫入一樣交由分類器處理775* 當您的使用者、專案或本機[設定檔](https://code.claude.com/docs/zh-TW/settings.md#settings-files-and-who-they-affect)本身是符號連結時(例如連結到 dotfiles 儲存庫),該設定檔所指向的檔案。在將受保護路徑寫入路由到分類器的模式中,對此檔案的寫入會改為提示您,即使有允許規則相符也是如此。如果該檔案本身的路徑也是某個設定檔的路徑,例如另一個資料夾中的 `.claude/settings.json`,則該寫入會如同其他受保護路徑寫入一樣交由分類器處理

773 776 

774## 關鍵路徑777## 關鍵路徑


844 847 

845對於變數下的 glob 或尾部斜線,提示會命名被標記的 `rm` 並說明如何重寫它以通過檢查。848對於變數下的 glob 或尾部斜線,提示會命名被標記的 `rm` 並說明如何重寫它以通過檢查。

846 849 

850### `Dangerous rm operation not ruled out` 提示

851 

852完整原因如下:

853 

854```text theme={null}

855Dangerous rm operation not ruled out — the shell may read this command differently than it was parsed

856```

857 

858此原因表示 shell 解讀該命令的方式可能與 Claude Code 不同,因此即使命令中沒有 `rm`,移除操作也可能位於未經檢查的部分。在 `auto` 或 `bypassPermissions` 模式中,帶有以下句子的拒絕來自同一項檢查:

859 

860```text theme={null}

861This command could not be checked for dangerous rm operations: the shell may read it differently than it was parsed.

862```

863 

864您會收到關鍵路徑移除[在您的權限模式中](#critical-path-removals-in-each-permission-mode)會收到的提示或拒絕,`bypassPermissions` 也不例外。您無法透過 `Bash` 或 `Bash(*)` 允許規則、沙箱[自動允許模式](https://code.claude.com/docs/zh-TW/sandboxing.md#auto-allow-mode)或返回 `"allow"` 的 `PreToolUse` hook 核准此命令。請閱讀命令,然後核准提示,或在遭拒絕後於您的 shell 中執行它。

865 

847### 已掛載磁碟機提示866### 已掛載磁碟機提示

848 867 

849當遞迴 `rm` 的目標是列出的[已掛載磁碟機路徑](#paths-that-get-the-mounted-drive-prompt)(例如 `/mnt/c` 或 `/Volumes/USB/build`)時,已掛載磁碟機提示會出現在 macOS、Linux 和 WSL 上。其原因顯示為 `Dangerous rm operation on mounted drive path: <path>`。`/*` 目標即使沒有遞迴旗標也會出現此提示,因為 Claude Code 將 `rm /Volumes/USB/build/*` 視為對 `/Volumes/USB/build` 的移除。868當遞迴 `rm` 的目標是列出的[已掛載磁碟機路徑](#paths-that-get-the-mounted-drive-prompt)(例如 `/mnt/c` 或 `/Volumes/USB/build`)時,已掛載磁碟機提示會出現在 macOS、Linux 和 WSL 上。其原因顯示為 `Dangerous rm operation on mounted drive path: <path>`。`/*` 目標即使沒有遞迴旗標也會出現此提示,因為 Claude Code 將 `rm /Volumes/USB/build/*` 視為對 `/Volumes/USB/build` 的移除。


900| `plan` | 要求您批准。當[分類器在規劃期間檢查命令](#analyze-before-you-edit-with-plan-mode)且沒有可用的繞過權限時,按 `auto` 模式處理 |919| `plan` | 要求您批准。當[分類器在規劃期間檢查命令](#analyze-before-you-edit-with-plan-mode)且沒有可用的繞過權限時,按 `auto` 模式處理 |

901| `auto` | 在終端中要求您批准,有[時間限制](#time-limits-and-denials-in-auto-and-bypasspermissions-modes)。在其他地方,拒絕它 |920| `auto` | 在終端中要求您批准,有[時間限制](#time-limits-and-denials-in-auto-and-bypasspermissions-modes)。在其他地方,拒絕它 |

902| `dontAsk` | 拒絕它 |921| `dontAsk` | 拒絕它 |

903| `bypassPermissions` | 要求您批准,在終端中有時間限制 |922| `bypassPermissions` | 在終端機中,要求您在時間限制用完前核准。在其他地方,請參閱[各處的處理方式](#time-limits-and-denials-in-auto-and-bypasspermissions-modes) |

904 923 

905如果明確的[詢問規則](https://code.claude.com/docs/zh-TW/permissions.md#manage-permissions)與命令匹配,Claude Code 會改為詢問您,即使在 `auto` 模式中也沒有時間限制。在詢問的模式中,[`PermissionRequest` hook](https://code.claude.com/docs/zh-TW/hooks#permissionrequest) 可以回答提示。924如果明確的[詢問規則](https://code.claude.com/docs/zh-TW/permissions.md#manage-permissions)與命令匹配,Claude Code 會改為詢問您,即使在 `auto` 模式中也沒有時間限制。在詢問的模式中,[`PermissionRequest` hook](https://code.claude.com/docs/zh-TW/hooks#permissionrequest) 可以回答提示。

906 925 


912* 在提示打開時按任何鍵以停止倒計時並保持提示等待您的回答。931* 在提示打開時按任何鍵以停止倒計時並保持提示等待您的回答。

913* 在一個工作階段中,這些提示中的三個在無人回答的情況下用完後,Claude Code 會停止顯示它們並立即拒絕進一步的關鍵路徑移除。發送新訊息會重新開始計數。932* 在一個工作階段中,這些提示中的三個在無人回答的情況下用完後,Claude Code 會停止顯示它們並立即拒絕進一步的關鍵路徑移除。發送新訊息會重新開始計數。

914 933 

915在 `auto` 模式中,無論 Claude Code 無法向您顯示終端提示的地方,它都會立即拒絕該命令,例如在[非互動式執行](https://code.claude.com/docs/zh-TW/headless.md)中使用 `-p`、在 [Agent SDK](https://code.claude.com/docs/zh-TW/agent-sdk/permissions.md) 工作階段中,以及在 VS Code 擴充功能的聊天面板和桌面應用程式中。拒絕會告訴 Claude 報告它想刪除的內容並將移除留給您。934時間限制適用於 Claude Code v2.1.281 及更新版本,`auto` 模式在終端機以外的拒絕也是如此。

935 

936不在終端機時,您不會收到該提示:

916 937 

917`auto` 和 `bypassPermissions` 處理需要 Claude Code v2.1.281 或更新版本。要關閉它,請在啟動 Claude Code 的環境中設定 [`CLAUDE_CODE_DISABLE_DANGEROUS_RM_TIMEOUT=1`](https://code.claude.com/docs/zh-TW/env-vars#variables)。在 `auto` 模式中,關鍵路徑移除會改為進入分類器,在 `bypassPermissions` 模式中提示沒有時間限制。938| 位置 | `auto` | `bypassPermissions` |

939| :- | :- | :- |

940| [VS Code 擴充功能](https://code.claude.com/docs/zh-TW/vs-code.md)的聊天面板 | 拒絕它 | 除非 [`PermissionRequest` hook](https://code.claude.com/docs/zh-TW/hooks#permissionrequest) 允許,否則拒絕它 |

941| [桌面應用程式](https://code.claude.com/docs/zh-TW/desktop.md) | 拒絕它 | 除非 `PermissionRequest` hook 允許,否則拒絕它 |

942| [`-p` 執行](https://code.claude.com/docs/zh-TW/headless)或 [Agent SDK 工作階段](https://code.claude.com/docs/zh-TW/agent-sdk/permissions.md) | 拒絕它 | 由您的 [`--permission-prompt-tool`](https://code.claude.com/docs/zh-TW/cli-reference#cli-flags) 或 [`canUseTool` 回呼](https://code.claude.com/docs/zh-TW/agent-sdk/user-input#handle-tool-approval-requests)決定。若兩者皆無,或在 [`--permission-prompts none`](https://code.claude.com/docs/zh-TW/headless#turn-off-permission-prompts-in-unattended-runs) 下,除非 `PermissionRequest` hook 允許,否則拒絕它 |

943 

944無論移除在何處遭拒絕,您都可以閱讀完整命令並在您的 shell 中執行它。

945 

946若要變更每種模式下的處理方式,請將 [`CLAUDE_CODE_DISABLE_DANGEROUS_RM_TIMEOUT`](https://code.claude.com/docs/zh-TW/env-vars#variables) 設為 `1`:

947 

948* **`bypassPermissions`**:終端機提示沒有時間限制,且 VS Code 聊天面板會詢問您

949* **`auto`**:由[分類器](#eliminate-prompts-with-auto-mode)決定,適用於終端機、VS Code 聊天面板、`-p` 執行和 Agent SDK 工作階段

950 

951請在啟動 Claude Code 的環境中設定它,例如您的 shell 或 SDK 的 `env` 選項,而不是在 Claude Code 設定檔中。若要用於聊天面板,請將它加入 VS Code 本身的使用者 `settings.json` 中的 [`claudeCode.environmentVariables`](https://code.claude.com/docs/zh-TW/vs-code#extension-settings),然後開始新的對話:

952 

953```json theme={null}

954{

955 "claudeCode.environmentVariables": [

956 { "name": "CLAUDE_CODE_DISABLE_DANGEROUS_RM_TIMEOUT", "value": "1" }

957 ]

958}

959```

918 960 

919### PowerShell 中的 Remove-Item961### PowerShell 中的 Remove-Item

920 962 

Details

41 41 

42如果教學課程或較舊的指示集告訴您執行 `/plugin marketplace add anthropics/claude-code`,這會新增示範 marketplace,名為 `claude-code-plugins`。這不是官方 marketplace。42如果教學課程或較舊的指示集告訴您執行 `/plugin marketplace add anthropics/claude-code`,這會新增示範 marketplace,名為 `claude-code-plugins`。這不是官方 marketplace。

43 43 

44示範 marketplace 的大多數 plugin 也在官方 marketplace 中以相同名稱存在。例如,`code-review`、`feature-dev`、`commit-commands` 和 `security-guidance` 在兩者中都有。從 `claude-plugins-official` 安裝這些,以免安裝了兩份副本。44示範外掛市集的大多數外掛也在官方外掛市集中以相同名稱存在。例如,`code-review`、`feature-dev` 和 `commit-commands` 在兩者中都有。從 `claude-plugins-official` 安裝這些,以免安裝了兩份副本。

45 45 

46## 在官方 marketplace 中尋找 plugin46## 在官方 marketplace 中尋找 plugin

47 47 

Details

403 403 

404對於版本範圍、它們解析的 `<plugin>--v<version>` git-tag 約定以及跨 marketplace 信任,請參閱 [Plugin dependencies](https://code.claude.com/docs/zh-TW/plugins/dependencies.md)。404對於版本範圍、它們解析的 `<plugin>--v<version>` git-tag 約定以及跨 marketplace 信任,請參閱 [Plugin dependencies](https://code.claude.com/docs/zh-TW/plugins/dependencies.md)。

405 405 

406若要在專案匹配它時讓 Claude Code 建議 plugin,將 `relevance` 區塊新增到項目,其中包含識別專案的信號。使用者只有在管理員在 `pluginSuggestionMarketplaces` 中列出您的 marketplace 時才看到來自您 marketplace 的建議。對於信號和啟用步驟,請參閱 [Plugin relevance](https://code.claude.com/docs/zh-TW/plugins/relevance.md)。406若要在專案匹配它時讓 Claude Code 建議 plugin,將 `relevance` 區塊新增到項目,其中包含識別專案的信號。使用者只有在管理員在 `pluginSuggestionMarketplaces` 中列出您的 marketplace 時才會看到這些建議。對於信號和啟用步驟,請參閱 [Plugin relevance](https://code.claude.com/docs/zh-TW/plugins/relevance.md)。

407 407 

408## 解決市集無法做到的事408## 解決市集無法做到的事

409 409 

Details

95 95 

96這些控制都不會沙箱化 mod。您允許的 mod 以使用者身份執行,具有使用者對檔案、程序和網路的存取權限。96這些控制都不會沙箱化 mod。您允許的 mod 以使用者身份執行,具有使用者對檔案、程序和網路的存取權限。

97 97 

98### 了解使用者 mod 的哪些 hook 不會執行

99 

100在[內建防護](#know-what-happens-by-default)載入的地方,使用者的 mod 在下列任一事件上註冊的 hook 永遠不會執行,而 `/plugin` 會以一則說明告知該使用者。在 [`session.append`](https://code.claude.com/docs/zh-TW/plugins/mods/reference#session) 各列中,`door` 是該 hook 所篩選的儲存列類型。

101 

102| Hook 所在事件 | 事件內容 |

103| :- | :- |

104| [`classic.<Event>`](https://code.claude.com/docs/zh-TW/plugins/mods/events#hook-the-settings-hook-events),例如 `classic.Stop` | [設定 hook 事件](https://code.claude.com/docs/zh-TW/hooks.md#hook-events) |

105| [`prompt.compose`](https://code.claude.com/docs/zh-TW/plugins/mods/reference#prompts-and-what-claude-reads) | 系統提示詞的區段清單 |

106| `prompt.section` | 系統提示詞的單一區段 |

107| `prompt.context` | 隨對話第一則訊息一起傳送的上下文 |

108| `prompt.attachment` | Claude Code 為 Claude 加入的訊息,例如提醒 |

109| `skill.prompt` | skill 為 Claude 展開時的文字 |

110| `attribution.text` | 提交或 pull request 的署名文字 |

111| [`session.compact`](https://code.claude.com/docs/zh-TW/plugins/mods/reference#session) | 對話的壓縮 |

112| `settings.read` | 對設定的讀取,例如 mod 的 `$.settings.read` 呼叫 |

113| `session.append{door=attachment}` | Claude Code 為 Claude 加入之訊息的儲存列 |

114| `session.append{door=hook-context}` | 來自設定 hook 之上下文的儲存列 |

115| `session.append{door=compaction}` | 壓縮摘要與邊界的儲存列 |

116 

117防護在其他某些情況下也會略過使用者的 hook,例如 [`tool.describe`](https://code.claude.com/docs/zh-TW/plugins/mods/reference#tools) 上您組織工具的描述,以及 skill 文字的儲存列。`/plugin` 對這些情況不會顯示說明。如果其他事件上的 hook 沒有任何作用,請參閱[找出 mod 沒有作用的原因](https://code.claude.com/docs/zh-TW/plugins/mods/troubleshoot.md#find-out-why-a-mod-does-nothing)。

118 

119該說明會出現在外掛程式的詳細資料中,以及 `/plugin` 的 **Errors** 分頁中。此功能需要 Claude Code v2.1.299 或更新版本。說明會依 mod 註冊時的名稱列出表格中的每個 hook,如下例所示:

120 

121```text theme={null}

122Its hooks on classic.Stop, prompt.section do not run here: where an organization manages Claude Code, these events pass over the plugins you install

123Only a plugin that counts as your organization's own runs hooks on these events. An administrator sets that up in managed settings

124```

125 

126若要讓這些 hook 執行,請以下列兩種方式之一變更受管設定:

127 

128* **將 mod 作為您組織的 mod 執行**:[安裝該 mod,使其算作您組織自己的](#install-your-organizations-mods)。其在這些事件上的 hook 隨後便會執行,而防護對其他所有 mod 仍保持載入。該 mod 會對所有收到這些設定的人開啟,且必須位於您放置在每台機器上的目錄中。如果您將其列在 `prependPlugins` 中,請在清單中保留 `sec-default@builtin`。

129* **移除防護**:在 `prependPlugins` 中省略 `sec-default@builtin`。空清單 `"prependPlugins": []` 即已足夠。您失去的是整個防護,而不只是這些事件。使用者的 mod 便可以做到[防護原本會阻止的事](#know-what-happens-by-default),且[防護的選項](#set-options-on-the-built-in-guard)也不再適用。

130 

131如果您透過[伺服器管理的設定](https://code.claude.com/docs/zh-TW/server-managed-settings.md#fetch-and-caching-behavior)傳送不含防護的清單,防護會保持載入,直到伺服器為該工作階段確認設定為止。若要在執行 v2.1.299 或更新版本的機器上確認任一變更,請在該機器的工作階段中開啟 `/plugin`,並確認說明已消失。

132 

133沒有 `door` 篩選條件的 `session.append` hook 仍會執行且不會顯示說明,但表格中的儲存列不會傳到它。

134 

98## 決定是否保持 mods 開啟135## 決定是否保持 mods 開啟

99 136 

100Mod 可以做的比外掛程式的其他部分更多,因為它在 Claude Code 內執行。它看到每個提示和工具呼叫,可以更改它們,並可以在權限提示出現之前允許或拒絕工具呼叫。137Mod 可以做的比外掛程式的其他部分更多,因為它在 Claude Code 內執行。它看到每個提示和工具呼叫,可以更改它們,並可以在權限提示出現之前允許或拒絕工具呼叫。


142| `$.prompt.submit` | 提交提示,可以將其作為使用者自己的話語發送 |179| `$.prompt.submit` | 提交提示,可以將其作為使用者自己的話語發送 |

143| `$.session.send` | 發送另一個工作階段、subagent 或[隊員](https://code.claude.com/docs/zh-TW/agent-teams.md)的 Claude 讀取的訊息 |180| `$.session.send` | 發送另一個工作階段、subagent 或[隊員](https://code.claude.com/docs/zh-TW/agent-teams.md)的 Claude 讀取的訊息 |

144 181 

145在 `hooks:` 行中,[`tool.call`](https://code.claude.com/docs/zh-TW/plugins/mods/reference#tools) 和 [`prompt.submit`](https://code.claude.com/docs/zh-TW/plugins/mods/reference#prompts-and-what-claude-reads) 表示 mod 看到每個工具呼叫和每個提示,並可以更改它們。[`session.append`](https://code.claude.com/docs/zh-TW/plugins/mods/reference#session) 表示 mod 可以在儲存前重寫對話的每一行。[`ui.render{component=AskUserQuestion}`](https://code.claude.com/docs/zh-TW/plugins/mods/interface#change-what-claude-code-already-draws) 表示 mod 可以重繪 Claude 用來詢問使用者問題的對話框。`tool.check` 表示 mod 可以在權限提示出現之前批准或拒絕工具呼叫。[了解預設情況下會發生什麼](#know-what-happens-by-default)列出您的哪些規則和 hooks 優先於其答案。182在 `hooks:` 行中,[`tool.call`](https://code.claude.com/docs/zh-TW/plugins/mods/reference#tools) 和 [`prompt.submit`](https://code.claude.com/docs/zh-TW/plugins/mods/reference#prompts-and-what-claude-reads) 表示 mod 看到每個工具呼叫和每個提示詞,並可以更改它們。[`session.append`](https://code.claude.com/docs/zh-TW/plugins/mods/reference#session) 表示 mod 可以在儲存前重寫對話的每一行,但[防護機制略過的行](#hooks-the-guard-passes-over)除外。[`ui.render{component=AskUserQuestion}`](https://code.claude.com/docs/zh-TW/plugins/mods/interface#change-what-claude-code-already-draws) 表示 mod 可以重繪 Claude 用來詢問使用者問題的對話框。`tool.check` 表示 mod 可以在權限提示出現之前批准或拒絕工具呼叫。[了解預設情況下會發生什麼](#know-what-happens-by-default)列出您的哪些規則和 hook 優先於其答案。

146 183 

147## 選擇允許的程度184## 選擇允許的程度

148 185 

Details

377 377 

378### 處理設定 hook 事件378### 處理設定 hook 事件

379 379 

380設定 hook 是您在設定檔中設定的 command、HTTP、prompt 和 agent hook。每個[設定 hook 事件](https://code.claude.com/docs/zh-TW/hooks.md#hook-events),例如 `Stop`、`SessionEnd` 或 `PostToolUse`,也是一個名為 `classic.` 後接該設定 hook 事件名稱的事件,例如 `classic.Stop`。`e` 是設定 hook 在 stdin 上收到的 JSON,包括 `transcript_path`。380設定 hook 是您在設定檔中設定的 command、HTTP、prompt 和 agent hook。每個[設定 hook 事件](https://code.claude.com/docs/zh-TW/hooks.md#hook-events),例如 `Stop`、`SessionEnd` 或 `PostToolUse`,也是一個名為 `classic.` 後接該設定 hook 事件名稱的事件,例如 `classic.Stop`。`e` 是設定 hook 在 stdin 上收到的 JSON,包括 `transcript_path`。在會載入[內建防護](https://code.claude.com/docs/zh-TW/plugins/mods/admin.md#know-what-happens-by-default)的環境中,[您安裝的 mod 中針對這些事件的 hook 不會執行](https://code.claude.com/docs/zh-TW/plugins/mods/admin.md#hooks-the-guard-passes-over)。

381 381 

382此 hook 使用在 Claude 完成回應時觸發的 `Stop`,來記錄工作階段逐字稿的儲存位置:382此 hook 使用在 Claude 完成回應時觸發的 `Stop`,來記錄工作階段逐字稿的儲存位置:

383 383 


425* **它在呼叫 `next` 之前失敗**:Claude Code 跳過它,下一個處理程式代替執行425* **它在呼叫 `next` 之前失敗**:Claude Code 跳過它,下一個處理程式代替執行

426* **它在 `next` 解析後失敗**:該結果成立,沒有任何東西執行第二次426* **它在 `next` 解析後失敗**:該結果成立,沒有任何東西執行第二次

427 427 

428一行命名 mod、事件和原因,例如 `my-mod: tool.call hook skipped: threw Error: boom`。您讀取它的位置取決於工作階段,如[找出 mod 為什麼不執行任何操作](https://code.claude.com/docs/zh-TW/plugins/mods/troubleshoot.md#find-out-why-a-mod-does-nothing)所列。其繪圖不驗證的 `ui.render` hook 的報告方式不同,如[從元素建立樹](https://code.claude.com/docs/zh-TW/plugins/mods/interface.md#build-a-tree-from-elements)所述。428一行命名 mod、事件和原因,例如 `my-mod: tool.call hook skipped: threw Error: boom`。您讀取它的位置取決於工作階段,如[找出 mod 為什麼不執行任何操作](https://code.claude.com/docs/zh-TW/plugins/mods/troubleshoot.md#find-out-why-a-mod-does-nothing)所列。[樹狀結構未通過驗證](https://code.claude.com/docs/zh-TW/plugins/mods/interface.md#build-a-tree-from-elements)的 `ui.render` hook,會被視為傳回錯誤形狀結果的 hook。

429 429 

430若要使阻止呼叫的 hook 失敗關閉,請新增 `.catch` 錯誤處理程式以代替回答。此處,`guard` 是您的 hook 函式,處理程式會檢查 [`next.called`](https://code.claude.com/docs/zh-TW/plugins/mods/reference#the-hook-function),以判斷 `guard` 失敗時是否已呼叫 `next`:430若要使阻止呼叫的 hook 失敗關閉,請新增 `.catch` 錯誤處理程式以代替回答。此處,`guard` 是您的 hook 函式,處理程式會檢查 [`next.called`](https://code.claude.com/docs/zh-TW/plugins/mods/reference#the-hook-function),以判斷 `guard` 失敗時是否已呼叫 `next`:

431 431 

Details

421Note: Type a note and press Enter421Note: Type a note and press Enter

422```422```

423 423 

424加入 `rows` 可讓欄位容納多行。按 Enter 仍會送出,而在 Enter 前加上反斜線會開始新的一行;在[終端機支援的情況下](https://code.claude.com/docs/zh-TW/terminal-config.md#enter-multiline-prompts),Shift+Enter 也有相同效果。圖庫中展示了[具有 `rows` 的欄位](https://code.claude.com/docs/zh-TW/plugins/mods/gallery#input)。

425 

424[介面圖庫](https://code.claude.com/docs/zh-TW/plugins/mods/gallery.md)提供大多數元素的範例和螢幕截圖。此表列出每個元素:426[介面圖庫](https://code.claude.com/docs/zh-TW/plugins/mods/gallery.md)提供大多數元素的範例和螢幕截圖。此表列出每個元素:

425 427 

426| 元素 | 它繪製的內容 | 位置 |428| 元素 | 它繪製的內容 | 位置 |


436 438 

437如果您的模組是 `.tsx` 或 `.jsx` 檔案,您可以將樹寫成 JSX。請先從 `$.ui.resolve(e)` 解構元素。439如果您的模組是 `.tsx` 或 `.jsx` 檔案,您可以將樹寫成 JSX。請先從 `$.ui.resolve(e)` 解構元素。

438 440 

439如果樹使用應用程式沒有的元素、元素不採用的屬性或在不該有子項的位置放置子項,Claude Code 會繪製其自己的該位置版本。441如果您的繪製沒有顯示,請檢查其樹中是否有元素不採用的 prop,或在不該有子項的位置放置了子項。傳回這種樹的 hook 會[失敗](https://code.claude.com/docs/zh-TW/plugins/mods/events.md#handle-a-hook-that-fails),而一行 [`hook skipped` 訊息](https://code.claude.com/docs/zh-TW/plugins/mods/troubleshoot#a-pane-or-band-is-empty)會指出您的 mod 以及該樹違反的規則。對於窗格中具有名為 `bogusProp` 之 prop 的 `Text`,該行內容如下:

440 442 

441在使用 `--plugin-dir` 啟動的工作階段中,逐字稿中會有一行說明這一點,例如 `ui.render (Pane) refused: Text prop "bogusProp" is not allowed; the engine drew its own`。[偵錯日誌](https://code.claude.com/docs/zh-TW/plugins/mods/troubleshoot.md#read-the-debug-log)將其記錄為 `ui.render (Pane): a hook returned a tree that does not validate` 並提供相同的原因。工作階段中沒有其他內容出現,因此當繪製不顯示時,請檢查該行或日誌。443```text theme={null}

444my-mod: ui.render hook skipped: returned the wrong shape (a tree Pane refuses: Text prop "bogusProp" is not allowed)

445```

442 446 

443### 桌面應用程式和 VS Code 中的 `Link`447### 桌面應用程式和 VS Code 中的 `Link`

444 448 


542| 鍵 | 它執行的操作 |546| 鍵 | 它執行的操作 |

543| :- | :- |547| :- | :- |

544| Tab | 移動到下一個控制項 |548| Tab | 移動到下一個控制項 |

545| 向上和向下 | 在您的繪製適合時在控制項之間移動。當窗格或帶狀區域的列數超過它可以顯示的列數時,它們會滾動它。 |549| 向上和向下 | 在您的繪製適合時在控制項之間移動。當窗格或帶狀區域的列數超過它可以顯示的列數時,它們會滾動它。在 `Input` 中,它們會先[在欄位的各列之間移動](https://code.claude.com/docs/zh-TW/plugins/mods/gallery.md#input)。 |

546| Enter | 按下焦點 `Button`、提交焦點 `Input` 或在 `Select` 中選擇 |550| Enter | 按下焦點 `Button`、提交焦點 `Input` 或在 `Select` 中選擇 |

547| 按鈕的快捷鍵 | 按下該按鈕。當 `Input` 具有焦點時,每個可列印鍵都進入欄位。 |551| 按鈕的快捷鍵 | 按下該按鈕。當 `Input` 具有焦點時,每個可列印鍵都進入欄位。 |

548| Page Up、Page Down、Home 和 End | 當您的窗格或帶狀區域的列數超過它可以顯示的列數時,滾動它 |552| Page Up、Page Down、Home 和 End | 當您的窗格或帶狀區域的列數超過它可以顯示的列數時,滾動它 |

Details

275| [`Link`](https://code.claude.com/docs/zh-TW/plugins/mods/interface#link-in-the-desktop-app) | `href`、`label`。請參閱[限制](#limits)。 | ✓ | ✓ | ✓ |275| [`Link`](https://code.claude.com/docs/zh-TW/plugins/mods/interface#link-in-the-desktop-app) | `href`、`label`。請參閱[限制](#limits)。 | ✓ | ✓ | ✓ |

276| [`Code`](https://code.claude.com/docs/zh-TW/plugins/mods/gallery#show-code-and-changes) | `source`、`language`、`path`、`startLine`、`format`、`wrap` | ✓ | ✓ | ✓ |276| [`Code`](https://code.claude.com/docs/zh-TW/plugins/mods/gallery#show-code-and-changes) | `source`、`language`、`path`、`startLine`、`format`、`wrap` | ✓ | ✓ | ✓ |

277| `Markdown` | `text`、`key`、`dimColor`、`onLinkPress`、`pressableLinks` | ✓ | ✓ | ✓ |277| `Markdown` | `text`、`key`、`dimColor`、`onLinkPress`、`pressableLinks` | ✓ | ✓ | ✓ |

278| [`Input`](https://code.claude.com/docs/zh-TW/plugins/mods/interface#take-typed-input-and-draw-a-row-for-each-item) | `key`、`label`、`placeholder`、`value`、`submitLabel`、`onSubmit`、`onInput`、`autoFocus` | ✓ | ✓ | ✓ |278| [`Input`](https://code.claude.com/docs/zh-TW/plugins/mods/interface#take-typed-input-and-draw-a-row-for-each-item) | `key`、`label`、`placeholder`、`value`、`submitLabel`、[`rows`](https://code.claude.com/docs/zh-TW/plugins/mods/gallery#input)、`onSubmit`、`onInput`、`autoFocus` | ✓ | ✓ | ✓ |

279| `Select` | `key`、`label`、`options`、`value`、`onSelect`、`autoFocus` | ✓ | ✓ | ✓ |279| `Select` | `key`、`label`、`options`、`value`、`onSelect`、`autoFocus` | ✓ | ✓ | ✓ |

280| `Svg` | 最多 131,072 個字元的 SVG 標記 `source`、`alt` 文字、`width`、`height` 和 `isInteractive` | | ✓ | ✓ |280| `Svg` | 最多 131,072 個字元的 SVG 標記 `source`、`alt` 文字、`width`、`height` 和 `isInteractive` | | ✓ | ✓ |

281| [`Client`](https://code.claude.com/docs/zh-TW/plugins/mods/interface#build-a-tree-from-elements) | `module`、`key`、`props`、`width`、`height`、`flexGrow` | ✓ | ✓ | |281| [`Client`](https://code.claude.com/docs/zh-TW/plugins/mods/interface#build-a-tree-from-elements) | `module`、`key`、`props`、`width`、`height`、`flexGrow` | ✓ | ✓ | |


333 333 

334若您將 `gap`、`padding` 或 `margin` 設為某個級距,該級距會同時套用於橫向與縱向。例如,在終端機和 VS Code 擴充功能中,`padding: 'md'` 表示左右兩側各兩個儲存格,上下各一列。334若您將 `gap`、`padding` 或 `margin` 設為某個級距,該級距會同時套用於橫向與縱向。例如,在終端機和 VS Code 擴充功能中,`padding: 'md'` 表示左右兩側各兩個儲存格,上下各一列。

335 335 

336級距名稱需要 Claude Code v2.1.299 或更新版本。在較早的版本中,Claude Code 會[繪製其自有版本的網站](https://code.claude.com/docs/zh-TW/plugins/mods/interface.md#build-a-tree-from-elements),取代使用級距名稱的樹狀結構。336級距名稱需要 Claude Code v2.1.299 或更新版本。在較早的版本中,使用級距名稱的樹狀結構不會繪製。

337 337 

338### `Text` 字體排版 prop338### `Text` 字體排版 prop

339 339 


346| `mono` | `true`,要求使用應用程式的等寬字體 | 忽略:終端機一律為等寬 | 忽略,因此文字保留擴充功能本身的字體 |346| `mono` | `true`,要求使用應用程式的等寬字體 | 忽略:終端機一律為等寬 | 忽略,因此文字保留擴充功能本身的字體 |

347| `tabular` | `true`,要求使用等寬數字,讓就地更新的數字或一欄數字保持對齊 | 忽略:終端機的數字本來就是一個儲存格寬 | 忽略 |347| `tabular` | `true`,要求使用等寬數字,讓就地更新的數字或一欄數字保持對齊 | 忽略:終端機的數字本來就是一個儲存格寬 | 忽略 |

348 348 

349這四個 prop 需要 Claude Code v2.1.299 或更新版本。在較早的版本中,Claude Code 會[繪製其自有版本的網站](https://code.claude.com/docs/zh-TW/plugins/mods/interface.md#build-a-tree-from-elements),取代設定了 `size`、`weight`、`mono` 或 `tabular` 的樹狀結構。349這四個 prop 需要 Claude Code v2.1.299 或更新版本。在較早的版本中,設定了 `size`、`weight`、`mono` 或 `tabular` 的樹狀結構不會繪製。

350 350 

351#### 以 `weight` 取代 `bold`351#### 以 `weight` 取代 `bold`

352 352 

353`Text` 上的 `bold` 已棄用,改用 `weight`,但仍可正常運作。若要在未設定 `weight` 的 `Text` 上取代它,請將 `bold: true` 改為 `weight: 'semibold'`,即可在 Claude Code v2.1.299 或更新版本上獲得相同結果。353`Text` 上的 `bold` 已棄用,改用 `weight`,但仍可正常運作。若要在未設定 `weight` 的 `Text` 上取代它,請將 `bold: true` 改為 `weight: 'semibold'`,即可在 Claude Code v2.1.299 或更新版本上獲得相同結果。

354 354 

355在早於 v2.1.299 的版本中,設定了 `weight` 的樹狀結構不會繪製,Claude Code 會改為[繪製其自有版本的網站](https://code.claude.com/docs/zh-TW/plugins/mods/interface.md#build-a-tree-from-elements)。若您在 `Text` 上同時設定 `bold` 和 `weight`,則 `bold` 不會有任何作用。355在早於 v2.1.299 的版本中,設定了 `weight` 的樹狀結構不會繪製。若您在 `Text` 上同時設定 `bold` 和 `weight`,則 `bold` 不會有任何作用。

356 356 

357## 限制357## 限制

358 358 

359hook 與 mods API 呼叫都在時間與大小限制下執行。Claude Code 會略過超過時間限制的 hook。359hook 與 mods API 呼叫都在時間與大小限制下執行。Claude Code 會略過超過時間限制的 hook。超過巢狀層數、元素數、`Raster` 儲存格數或 `Image` 位元組數限制的樹狀結構[不會被繪製](https://code.claude.com/docs/zh-TW/plugins/mods/troubleshoot.md#a-pane-or-band-is-empty)。

360 360 

361| 限制 | 值 |361| 限制 | 值 |

362| :- | :- |362| :- | :- |


372| 單一 `$.http.fetch` 呼叫會跟隨的重新導向次數 | 5 |372| 單一 `$.http.fetch` 呼叫會跟隨的重新導向次數 | 5 |

373| hook 的 `drop` 原因或 `config.set` `deny` 原因 | 4,096 個字元。較長原因的結尾會被截斷,drop 或 deny 仍會生效。截斷需要 Claude Code v2.1.292 或更新版本,在較早的版本中,hook 則會改為[失敗](https://code.claude.com/docs/zh-TW/plugins/mods/events.md#handle-a-hook-that-fails)。 |373| hook 的 `drop` 原因或 `config.set` `deny` 原因 | 4,096 個字元。較長原因的結尾會被截斷,drop 或 deny 仍會生效。截斷需要 Claude Code v2.1.292 或更新版本,在較早的版本中,hook 則會改為[失敗](https://code.claude.com/docs/zh-TW/plugins/mods/events.md#handle-a-hook-that-fails)。 |

374| 單一樹狀結構中的文字 | 只繪製前 100,000 個字元 |374| 單一樹狀結構中的文字 | 只繪製前 100,000 個字元 |

375| `Code` 的 `language` 或 `path`、`Select` 選項的 `value`,或 `Client` 的 `module` | 10,000 個字元。若其中任一項較長,Claude Code 會[自行繪製該位置的版本](https://code.claude.com/docs/zh-TW/plugins/mods/interface.md#build-a-tree-from-elements)。 |375| `Code` 的 `language` 或 `path`、`Select` 選項的 `value`,或 `Client` 的 `module` | 10,000 個字元。若其中任一項較長,傳回它的 `ui.render` hook 會[失敗](https://code.claude.com/docs/zh-TW/plugins/mods/events.md#handle-a-hook-that-fails)。 |

376| `Link` 的 `href` | 2,048 個字元。較長的 `href` 會導致整個樹狀結構無法繪製。 |376| `Link` 的 `href` | 2,048 個字元。若其較長,傳回它的 `ui.render` hook 會[失敗](https://code.claude.com/docs/zh-TW/plugins/mods/events.md#handle-a-hook-that-fails)。 |

377| 單一樹狀結構的巢狀深度 | 根元素以下 32 層 |

378| 單一樹狀結構中的元素與文字子項 | 20,000 |

379| 單一樹狀結構中的 `Raster` 儲存格,即每個 `Raster` 的 `columns` 乘以其 `rows` | 262,144 |

380| 單一樹狀結構中所有 `Image` 的 PNG 或 RGBA 位元組 | 2 MiB |

377| `$.store` | 總計 4 MiB 的 JSON |381| `$.store` | 總計 4 MiB 的 JSON |

378| `$.session.messages()` | 最新的 4,096 個項目 |382| `$.session.messages()` | 最新的 4,096 個項目 |

379| `$.ui.invalidate('ui.render')` 重新繪製 | 節流為每秒 10 次,在終端機中針對可見窗格、展開的橫帶與提示詞下方的提示行則為每秒 30 次。更早到來的呼叫會被合併。 |383| `$.ui.invalidate('ui.render')` 重新繪製 | 節流為每秒 10 次,在終端機中針對可見窗格、展開的橫帶與提示詞下方的提示行則為每秒 30 次。更早到來的呼叫會被合併。 |

Details

312| 方法 | 它做什麼 |312| 方法 | 它做什麼 |

313| :- | :- |313| :- | :- |

314| `press({ key: 'more' })` | 按下具有該 key 的 `Button` |314| `press({ key: 'more' })` | 按下具有該 key 的 `Button` |

315| `input({ key: 'new-note', text: 'buy milk' })` | 將文字輸入到具有該 key 的 `Input` 中並按 Enter。新增 `kind: 'change'` 以輸入而不提交。 |315| `input({ key: 'new-note', text: 'buy milk' })` | 將文字輸入到具有該 key 的 `Input` 中並按 Enter。新增 `kind: 'change'` 以輸入而不提交。對於具有 `rows` 的欄位,文字可以包含 `\n`。 |

316| `select({ key: 'size', value: 'large' })` | 在具有該 key 的 `Select` 中選擇具有該值的選項 |316| `select({ key: 'size', value: 'large' })` | 在具有該 key 的 `Select` 中選擇具有該值的選項 |

317| `find({ key: 'more' })` 或 `find({ type: 'Text', text: 'Count: 2' })` | 返回第一個匹配的元素作為 `{ type, props, children }`,或 `undefined`。`text` 可以是字串或正規表達式。 |317| `find({ key: 'more' })` 或 `find({ type: 'Text', text: 'Count: 2' })` | 返回第一個匹配的元素作為 `{ type, props, children }`,或 `undefined`。`text` 可以是字串或正規表達式。 |

318| `unmount()` | 移除繪圖 |318| `unmount()` | 移除繪圖 |

319 319 

320每個方法在您的處理程式完成後解析,因此您可以在下一行檢查結果。將 `props` 設定為 Claude Code 為該網站傳遞的內容。[render sites table](https://code.claude.com/docs/zh-TW/plugins/mods/reference.md#render-sites) 列出每個網站的 props,[your build 的類型](https://code.claude.com/docs/zh-TW/plugins/mods/create.md#get-the-types-for-your-build) 有它們的類型。320每個方法在您的處理程式完成後解析,因此您可以在下一行檢查結果。將 `props` 設定為 Claude Code 為該網站傳遞的內容。[render sites table](https://code.claude.com/docs/zh-TW/plugins/mods/reference.md#render-sites) 列出每個網站的 props,[your build 的類型](https://code.claude.com/docs/zh-TW/plugins/mods/create.md#get-the-types-for-your-build) 有它們的類型。

321 321 

322繪圖測試檢查您的 hook 返回的樹以及它對該應用程式是否有效。它不檢查應用程式如何繪製它,因此也在真實工作階段中查看新佈局。322若要找出對您在 `surface` 中指定的應用程式無效的[元素樹](https://code.claude.com/docs/zh-TW/plugins/mods/interface.md#build-a-tree-from-elements),請使用 `find` 檢查您的 hook 新增的元素。測試不會檢查應用程式如何繪製樹,因此也請在真實工作階段中查看新佈局。

323 323 

324### 在 `/clear` 之後測試繪圖324### 在 `/clear` 之後測試繪圖

325 325 

Details

226 226 

227若要找出該 mod,請[寫入偵錯日誌](#read-the-debug-log),並在其中搜尋 `answered ui.render without next()`。像 `other-mod (user) answered ui.render without next()` 這樣的行會指出某個未呼叫 `next(e)` 就返回其樹的 mod。該行不會指出[轉譯位置](https://code.claude.com/docs/zh-TW/plugins/mods/reference.md#render-sites),因此僅使用窗格的 mod 也可能出現。呼叫了 `next(e)` 但捨棄其結果的 mod 不會產生任何行,因此也請檢查在您之前的 hook。227若要找出該 mod,請[寫入偵錯日誌](#read-the-debug-log),並在其中搜尋 `answered ui.render without next()`。像 `other-mod (user) answered ui.render without next()` 這樣的行會指出某個未呼叫 `next(e)` 就返回其樹的 mod。該行不會指出[轉譯位置](https://code.claude.com/docs/zh-TW/plugins/mods/reference.md#render-sites),因此僅使用窗格的 mod 也可能出現。呼叫了 `next(e)` 但捨棄其結果的 mod 不會產生任何行,因此也請檢查在您之前的 hook。

228 228 

229變更之後,若任何 mod 返回未通過驗證的樹,帶狀中將不會顯示任何內容。若要讀取原因,請在 `--plugin-dir` 工作階段的逐字稿中尋找 `ui.render (AbovePrompt) refused:` 行,或在偵錯日誌中搜尋 `does not validate`。當帶狀中有多個 mod 時,這兩行都不會指出是哪個 mod,因此請檢查每個 mod 的樹。229當某個 mod 自身的 hook 返回的樹未通過驗證時,該 mod 的帶狀也會消失,而其他 mod 的帶狀則會保留。若要找出是哪個 mod 以及原因,請[寫入偵錯日誌](#read-the-debug-log),並在其中搜尋 [`ui.render hook skipped`](#a-pane-or-band-is-empty)。

230 230 

231### 窗格或帶狀為空或顯示 Claude Code 的常見內容231### 窗格或帶狀為空或顯示 Claude Code 的常見內容

232 232 

233您的 hook 返回的[樹](https://code.claude.com/docs/zh-TW/plugins/mods/interface.md#build-a-tree-from-elements)未通過驗證。使用 `--plugin-dir` 時,逐字稿會顯示 `ui.render (Pane) refused:` 並附上原因,例如 `first-mod: ui.render (Pane) refused: Box prop "flexDirection" must be one of row, column, row-reverse, column-reverse; the engine drew its own`。偵錯日誌中會有 `a hook returned a tree that does not validate` 並附上相同的原因。233您的 hook 返回的[樹](https://code.claude.com/docs/zh-TW/plugins/mods/interface.md#build-a-tree-from-elements)未通過驗證。[逐字稿或偵錯日誌中](#find-out-why-a-mod-does-nothing)的 [`hook skipped`](#hook-skipped) 行會指出您的 mod 與原因,例如以下這行是針對窗格中的 `Box`:

234 234 

235讀取該行上的原因。常見原因是元素不接受的 prop 和應用程式沒有的元素。235```text theme={null}

236first-mod: ui.render hook skipped: returned the wrong shape (a tree Pane refuses: Box prop "flexDirection" must be one of row, column, row-reverse, column-reverse)

237```

238 

239修正原因所指出的問題。若原因被截斷,請[寫入偵錯日誌](#read-the-debug-log),並在其中搜尋 `a hook returned a tree that does not validate` 以讀取其餘內容。

240 

241若該行在位置名稱之後緊接著顯示 `refused:`,例如 `ui.render (Pane) refused:`,請參閱 [`ui.render` 行顯示 `refused`](#ui-render-refused)。

242 

243### `ui.render` 行顯示 `refused`

244 

245`ui.render (<site>) refused:`,或[偵錯日誌](#read-the-debug-log)中的 `ui.render (<site>): the chain settled on a tree that does not validate`,表示該位置的[樹](https://code.claude.com/docs/zh-TW/plugins/mods/interface.md#build-a-tree-from-elements)超出了[大小限制](https://code.claude.com/docs/zh-TW/plugins/mods/reference.md#limits)。這兩行都會先指出[轉譯位置](https://code.claude.com/docs/zh-TW/plugins/mods/reference.md#render-sites),接著是原因,而原因會指出該限制。

246 

247請修改在該位置繪製的 mod,使其 [`ui.render`](https://code.claude.com/docs/zh-TW/plugins/mods/reference#interface) hook 返回較小的樹,或請其作者修改。若逐字稿行以 `hooks` 開頭,表示有多個已載入的 mod 具有該位置的 `ui.render` hook,因此請檢查每個 mod 的樹。當多個 mod 在提示詞上方的帶狀巢狀組成超過 32 層深的樹時,該行如下:

248 

249```text theme={null}

250hooks: ui.render (AbovePrompt) refused: deeper than 32; nothing was drawn

251```

252 

253在 v2.1.307 之前,任何位置的 `refused:` 行都會回報任何未通過驗證的樹,且對於 `Pane` 與 `AbovePrompt`,其結尾為 `; the engine drew its own`。在這些版本中,請修正原因所指出的問題。

236 254 

237### `needs a key`、`is drawn twice` 或 `key each once`255### `needs a key`、`is drawn twice` 或 `key each once`

238 256 


383hooks module first-mod@inline loaded (worker, environment 2, tier user); events: session.start,tool.call,command.run,ui.render401hooks module first-mod@inline loaded (worker, environment 2, tier user); events: session.start,tool.call,command.run,ui.render

384```402```

385 403 

386未驗證的繪圖計為被拒絕的結果,也會得到一行。若要在日誌中寫入您自己的行,請呼叫 [`$.ui.log`](https://code.claude.com/docs/zh-TW/plugins/mods/api#show-something-without-starting-a-turn),並帶有第二個引數,例如 `$.ui.log('message', { to: 'debug' })`。沒有第二個引數,`$.ui.log` 會在逐字稿中新增暗淡行。404若要在日誌中寫入您自己的行,請呼叫 [`$.ui.log`](https://code.claude.com/docs/zh-TW/plugins/mods/api#show-something-without-starting-a-turn),並帶有第二個引數,例如 `$.ui.log('message', { to: 'debug' })`。沒有第二個引數,`$.ui.log` 會在逐字稿中新增暗淡行。

387 405 

388當您編輯使用 `--plugin-dir` 載入的 mod 時,逐字稿會為每次重新載入顯示一行,其命名 mod 並列出其 hook。如果儲存破壞了模組,該行說 `reload failed, the previous version stays loaded:` 並帶有原因,最後一個可運作的版本會保持執行,直到 Claude Code 下次重新載入外掛為止,例如當您執行 `/reload-plugins` 時。406當您編輯使用 `--plugin-dir` 載入的 mod 時,逐字稿會為每次重新載入顯示一行,其命名 mod 並列出其 hook。如果儲存破壞了模組,該行說 `reload failed, the previous version stays loaded:` 並帶有原因,最後一個可運作的版本會保持執行,直到 Claude Code 下次重新載入外掛為止,例如當您執行 `/reload-plugins` 時。

389 407 

plugins/org.md +6 −2

Details

182| `blockedMarketplaces` | 市場來源的封鎖清單,在允許清單之前檢查 | 不阻止已從不符合的來源註冊的市場 |182| `blockedMarketplaces` | 市場來源的封鎖清單,在允許清單之前檢查 | 不阻止已從不符合的來源註冊的市場 |

183| `syncClaudeAiPlugins` | 設定 `false` 以停止 Claude Code 下載和載入為每個使用者帳戶[從 claude.ai 同步](https://code.claude.com/docs/zh-TW/plugins/loading.md#synced-plugins)的外掛程式。需要 Claude Code v2.1.273 或更新版本 | 不關閉一個同步外掛程式。為此,在[`enabledPlugins`](https://code.claude.com/docs/zh-TW/settings-reference#enabledplugins)中設定 `"<name>@synced": false` |183| `syncClaudeAiPlugins` | 設定 `false` 以停止 Claude Code 下載和載入為每個使用者帳戶[從 claude.ai 同步](https://code.claude.com/docs/zh-TW/plugins/loading.md#synced-plugins)的外掛程式。需要 Claude Code v2.1.273 或更新版本 | 不關閉一個同步外掛程式。為此,在[`enabledPlugins`](https://code.claude.com/docs/zh-TW/settings-reference#enabledplugins)中設定 `"<name>@synced": false` |

184| `enabledPlugins` | `true` 強制啟用,`false` 在每個範圍阻止並隱藏外掛程式 | 不安裝其市場未註冊或不允許的外掛程式 |184| `enabledPlugins` | `true` 強制啟用,`false` 在每個範圍阻止並隱藏外掛程式 | 不安裝其市場未註冊或不允許的外掛程式 |

185| `disableSideloadFlags` | 拒絕 `--plugin-dir`、`--plugin-url`、`--agents`、Agent SDK `plugins` 選項和非 SDK `--mcp-config` 在啟動時,並以相同方式拒絕[`CLAUDE_CODE_PLUGIN_DIRS`](https://code.claude.com/docs/zh-TW/env-vars#variables)變數中命名的資料夾 | 不限制 `.mcp.json`、`claude mcp add` 或 SDK 提供的伺服器。將其與[`allowedMcpServers`](https://code.claude.com/docs/zh-TW/managed-mcp)配對 |185| `disableSideloadFlags` | 在啟動時拒絕 `--plugin-dir`、`--plugin-url`、`--agents`、Agent SDK `plugins` 選項以及[`CLAUDE_CODE_PLUGIN_DIRS`](https://code.claude.com/docs/zh-TW/env-vars#variables)變數中命名的資料夾,也會拒絕 `--mcp-config`,除非其中的每個伺服器都是處理程序內的 `type: "sdk"` 項目。拒絕 Agent SDK 應用程式在工作階段中途透過[`addPlugins`](https://code.claude.com/docs/zh-TW/agent-sdk/typescript#load-more-plugin-folders-with-addplugins)新增的外掛程式資料夾 | 不限制 `.mcp.json`、`claude mcp add` 或 SDK 提供的伺服器。將其與[`allowedMcpServers`](https://code.claude.com/docs/zh-TW/managed-mcp)配對 |

186| `disableCommandPluginSources` | 阻止具有 `command` 來源的外掛程式安裝、更新或載入。`command` 來源是其外掛程式目錄由在機器上執行命令產生的來源。未設定時,它採用 `allowManagedHooksOnly` 的值 | 不影響其他來源類型 |186| `disableCommandPluginSources` | 阻止具有 `command` 來源的外掛程式安裝、更新或載入。`command` 來源是其外掛程式目錄由在機器上執行命令產生的來源。未設定時,它採用 `allowManagedHooksOnly` 的值 | 不影響其他來源類型 |

187| `allowManagedHooksOnly` | 限制哪些 hooks 執行。請參閱[`allowManagedHooksOnly`](https://code.claude.com/docs/zh-TW/settings-reference#allowmanagedhooksonly) | 不信任使用者自己啟用的外掛程式中的 hooks |187| `allowManagedHooksOnly` | 限制哪些 hooks 執行。請參閱[`allowManagedHooksOnly`](https://code.claude.com/docs/zh-TW/settings-reference#allowmanagedhooksonly) | 不信任使用者自己啟用的外掛程式中的 hooks |

188| `strictPluginOnlyCustomization` | 封鎖不來自外掛程式、受管設定或 Claude Code 內建功能的 skill、agent、hook 和 MCP 伺服器。它也會阻止[skill 目錄外掛程式](#keep-skills-directory-plugins-loading)載入。設定 `true` 以涵蓋全部四種類型,或設定由 `skills`、`agents`、`hooks` 和 `mcp` 值組成的陣列(例如 `["skills", "hooks"]`)以涵蓋其中部分類型 | 不會限制使用者安裝哪些外掛程式。將其與 `strictKnownMarketplaces` 搭配使用 |188| `strictPluginOnlyCustomization` | 封鎖不來自外掛程式、受管設定或 Claude Code 內建功能的 skill、agent、hook 和 MCP 伺服器。它也會阻止[skill 目錄外掛程式](#keep-skills-directory-plugins-loading)載入。設定 `true` 以涵蓋全部四種類型,或設定由 `skills`、`agents`、`hooks` 和 `mcp` 值組成的陣列(例如 `["skills", "hooks"]`)以涵蓋其中部分類型 | 不會限制使用者安裝哪些外掛程式。將其與 `strictKnownMarketplaces` 搭配使用 |

189| `pluginSuggestionMarketplaces` | 其外掛程式可能作為安裝建議出現的市場。請參閱[推薦外掛程式](#recommend-plugins) | 不影響內建提示 |189| `pluginSuggestionMarketplaces` | 其外掛程式可能作為安裝建議出現在終端機中的市集。請參閱[推薦外掛程式](#recommend-plugins) | 不影響內建提示 |

190| `pluginTrustMessage` | 將您的文字附加到 `/plugin` 在外掛程式安裝前顯示的信任警告 | 不改變警告自己的文字 |190| `pluginTrustMessage` | 將您的文字附加到 `/plugin` 在外掛程式安裝前顯示的信任警告 | 不改變警告自己的文字 |

191| `allowedChannelPlugins` | 替換允許推送頻道訊息的預設外掛程式清單。需要 `channelsEnabled: true` | 請參閱[限制哪些頻道外掛程式可以執行](https://code.claude.com/docs/zh-TW/channels.md#restrict-which-channel-plugins-can-run) |191| `allowedChannelPlugins` | 替換允許推送頻道訊息的預設外掛程式清單。需要 `channelsEnabled: true` | 請參閱[限制哪些頻道外掛程式可以執行](https://code.claude.com/docs/zh-TW/channels.md#restrict-which-channel-plugins-can-run) |

192| [`CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL=1`](https://code.claude.com/docs/zh-TW/env-vars) | 停止互動式終端機工作階段自動註冊官方市場 | 不移除已註冊的市場。允許清單和封鎖清單在沒有它的情況下控制相同的自動註冊。在設定它的情況下啟動一次的機器在您取消設定後不會恢復自動註冊 |192| [`CLAUDE_CODE_DISABLE_OFFICIAL_MARKETPLACE_AUTOINSTALL=1`](https://code.claude.com/docs/zh-TW/env-vars) | 停止互動式終端機工作階段自動註冊官方市場 | 不移除已註冊的市場。允許清單和封鎖清單在沒有它的情況下控制相同的自動註冊。在設定它的情況下啟動一次的機器在您取消設定後不會恢復自動註冊 |


361 361 

362來自市場的建議僅在其在使用者的機器上註冊、您在受管設定中的 `pluginSuggestionMarketplaces` 中列出其名稱,並且您在相同政策中聲明其來源時出現。聲明來源作為市場的 `extraKnownMarketplaces` 項目或允許清單項目。官方市場僅需要名稱。請參閱[在受管設定中啟用建議](https://code.claude.com/docs/zh-TW/plugins/relevance.md#enable-suggestions-in-managed-settings)。362來自市場的建議僅在其在使用者的機器上註冊、您在受管設定中的 `pluginSuggestionMarketplaces` 中列出其名稱,並且您在相同政策中聲明其來源時出現。聲明來源作為市場的 `extraKnownMarketplaces` 項目或允許清單項目。官方市場僅需要名稱。請參閱[在受管設定中啟用建議](https://code.claude.com/docs/zh-TW/plugins/relevance.md#enable-suggestions-in-managed-settings)。

363 363 

364> [!NOTE]

365>

366> 在雲端工作階段的對話中,無論您是否設定 `pluginSuggestionMarketplaces`,Claude 都可以建議外掛程式。若要關閉這些建議,請參閱[關閉外掛程式建議](https://code.claude.com/docs/zh-TW/claude-code-on-the-web.md#turn-off-plugin-suggestions)。

367 

364## 稽核和檢視368## 稽核和檢視

365 369 

366OpenTelemetry 事件和 Analytics API 告訴您您的車隊安裝和執行的內容。370OpenTelemetry 事件和 Analytics API 告訴您您的車隊安裝和執行的內容。

Details

8 8 

9Claude Code 可以在使用者的工作階段符合您為該 plugin 定義的訊號時,建議從您組織的 marketplace 安裝 plugin。訊號包括工作目錄、Claude 已讀取的檔案,以及 Claude 已執行的命令。您可以透過在 `marketplace.json` 中的 plugin 項目新增 `relevance` 區塊來定義這些訊號。9Claude Code 可以在使用者的工作階段符合您為該 plugin 定義的訊號時,建議從您組織的 marketplace 安裝 plugin。訊號包括工作目錄、Claude 已讀取的檔案,以及 Claude 已執行的命令。您可以透過在 `marketplace.json` 中的 plugin 項目新增 `relevance` 區塊來定義這些訊號。

10 10 

11marketplace 操作員會撰寫 `relevance` 項目。管理員隨後在受管設定中將 marketplace 加入允許清單。在 marketplace 被加入允許清單之前,使用者看不到來自該 marketplace 的任何建議。11marketplace 操作員會撰寫 `relevance` 項目。管理員隨後在受管設定中將 marketplace 加入允許清單。在終端機中,於 marketplace 被加入允許清單之前,使用者看不到來自該 marketplace 的任何建議。

12 12 

13> [!NOTE]13> [!NOTE]

14>14>

15> 這些情況涵蓋在其他頁面上:15> 這些情況涵蓋在其他頁面上:

16>16>

17> * **您想要安裝 plugins**:請參閱 [安裝和管理 plugins](https://code.claude.com/docs/zh-TW/plugins/install.md)17> * **您想要安裝 plugins**:請參閱 [安裝和管理 plugins](https://code.claude.com/docs/zh-TW/plugins/install.md)

18> * **您想要關閉建議**:請參閱 [了解 plugin 相關性的運作方式](#understand-how-plugin-relevance-works)18> * **您想要關閉建議**:請參閱 [了解 plugin 相關性的運作方式](#understand-how-plugin-relevance-works),或者針對 Claude 在雲端工作階段對話中提出的建議,請參閱 [關閉 plugin 建議](https://code.claude.com/docs/zh-TW/claude-code-on-the-web.md#turn-off-plugin-suggestions)

19 19 

20從適合您角色的部分開始:20從適合您角色的部分開始:

21 21 


158 158 

159## 在受管設定中啟用建議159## 在受管設定中啟用建議

160 160 

161使用者看不到來自 marketplace 的任何建議,直到管理員在 [受管設定](https://code.claude.com/docs/zh-TW/plugins/org.md) 中將其加入允許清單,即使其 `marketplace.json` 宣告了 `relevance`。161在終端機中,使用者看不到來自 marketplace 的任何建議,直到管理員在 [受管設定](https://code.claude.com/docs/zh-TW/plugins/org.md) 中將其加入允許清單,即使其 `marketplace.json` 宣告了 `relevance`。

162 162 

163若要將 marketplace 加入允許清單,請編輯您的受管設定如下:163若要將 marketplace 加入允許清單,請編輯您的受管設定如下:

164 164 

Details

788常見問題:788常見問題:

789 789 

790* **Runner 未出現在環境中**:請確認主機能透過 HTTPS 連線至 `api.anthropic.com`、環境密鑰為最新,且主機時鐘與實際時間的誤差在五分鐘以內;誤差更大會導致身分驗證失敗。身分驗證失敗時,runner 會記錄 `[runner:fatal]` 並附上拒絕原因。790* **Runner 未出現在環境中**:請確認主機能透過 HTTPS 連線至 `api.anthropic.com`、環境密鑰為最新,且主機時鐘與實際時間的誤差在五分鐘以內;誤差更大會導致身分驗證失敗。身分驗證失敗時,runner 會記錄 `[runner:fatal]` 並附上拒絕原因。

791* **Runner 在啟動時以 `cannot create or write to base directory` 結束**:runner 無法建立或寫入 `--base-dir`,其預設值為 `/workspace`。請修正該目錄的擁有權,或將 `--base-dir` 指向可寫入的路徑,如[讓所有 runner 的基礎目錄與容量保持一致](#keep-the-base-directory-and-capacity-identical-across-runners)中所述。如果 runner 改為記錄 `[runner:fatal]`,表示基礎目錄檢查逾時,則該目錄位於停擺的 NFS 或 CSI 掛載上。請檢查掛載的健康狀態,而非權限。Runner 會在開啟 `--log-file` 之前將這兩種啟動失敗輸出至 stderr,因此請在終端機或您平台的容器日誌中尋找,而非在日誌檔中。在 v2.1.225 之前,runner 不會在啟動時檢查基礎目錄,這種設定錯誤會改為在接收工作階段後導致工作階段失敗。791* **Runner 在啟動時以 `cannot create or write to base directory` 結束**:runner 無法建立或寫入 `--base-dir`,其預設值為 `/workspace`。請修正該目錄的擁有權,或將 `--base-dir` 指向可寫入的路徑,如[讓所有 runner 的基礎目錄與容量保持一致](#keep-the-base-directory-and-capacity-identical-across-runners)中所述。如果 runner 改為記錄指出基礎目錄檢查逾時的 `[runner:fatal]`,則該目錄位於停擺的 NFS 或 CSI 掛載上。請檢查掛載的健康狀態,而非權限。Runner 會在開啟 `--log-file` 之前將這兩種啟動失敗輸出至 stderr,因此請在終端機或您平台的容器日誌中尋找,而非在日誌檔中。在 v2.1.225 之前,runner 不會在啟動時檢查基礎目錄,這種設定錯誤會改為在接收工作階段後導致工作階段失敗。

792* **Runner 在啟動時以 `RegisterRunner failed:` 及 TLS 憑證錯誤結束**:錯誤可能是 `self signed certificate in certificate chain` 等。Runner 不信任其收到之憑證背後的憑證授權單位(CA),這種情況會發生在執行 TLS 檢查的代理伺服器後方。請在 runner 的環境中將 [`NODE_EXTRA_CA_CERTS`](https://code.claude.com/docs/zh-TW/network-config#custom-ca-certificates) 設為包含代理伺服器根 CA 的 PEM 檔案。792* **Runner 在啟動時以 `RegisterRunner failed:` 及 TLS 憑證錯誤結束**:錯誤可能是 `self signed certificate in certificate chain` 等。Runner 不信任其收到之憑證背後的憑證授權單位(CA),這種情況會發生在執行 TLS 檢查的代理伺服器後方。請在 runner 的環境中將 [`NODE_EXTRA_CA_CERTS`](https://code.claude.com/docs/zh-TW/network-config#custom-ca-certificates) 設為包含代理伺服器根 CA 的 PEM 檔案。

793 793 

794 您不需要為工作階段再次設定,工作階段會繼承它。Git 不會讀取它:若要透過該代理伺服器進行 clone,也請設定 [`GIT_SSL_CAINFO`](#trust-a-private-certificate-authority-with-anthropic-managed-git)。794 您不需要為工作階段再次設定,工作階段會繼承它。Git 不會讀取它:若要透過該代理伺服器進行 clone,也請設定 [`GIT_SSL_CAINFO`](#trust-a-private-certificate-authority-with-anthropic-managed-git)。

Details

170 170 

171**具有快取設定的後續啟動:**171**具有快取設定的後續啟動:**

172 172 

173* 快取的設定會在啟動時立即套用,但快取的 `modelPricing` 和 `managedMcpServers` 值,以及 Claude Code 在伺服器確認 payload 之前暫緩的環境變數除外173* 快取的設定會在啟動時立即套用,但以下項目除外:快取的 `modelPricing` 和 `managedMcpServers` 值;Claude Code 在伺服器確認 payload 之前暫緩的環境變數;快取的外掛清單對[內建防護](https://code.claude.com/docs/zh-TW/plugins/mods/admin.md#know-what-happens-by-default)所做的移除、重新定位或停用;以及在端點受管來源自行列出或啟用外掛的電腦上,僅由快取清單啟用之外掛的[組織歸屬](https://code.claude.com/docs/zh-TW/plugins/mods/admin.md#install-your-organizations-mods)

174* 快取的 [`modelPricing`](https://code.claude.com/docs/zh-TW/settings-reference#modelpricing) 在工作階段的擷取確認 payload 之前不會套用。在那之前,開發人員在 `/usage` 和狀態列中看到的費用數字皆為定價174* 快取的 [`modelPricing`](https://code.claude.com/docs/zh-TW/settings-reference#modelpricing) 在工作階段的擷取確認 payload 之前不會套用。在那之前,開發人員在 `/usage` 和狀態列中看到的費用數字皆為定價

175* 快取的 [`managedMcpServers`](https://code.claude.com/docs/zh-TW/settings-reference#managedmcpservers) 區塊在工作階段的擷取確認 payload 之前不會套用。Claude Code 會在連線 MCP 伺服器之前等待該擷取最多 30 秒。如果擷取失敗或逾時,工作階段會在沒有組織伺服器的情況下啟動,`/status` 會註明此情況,而這些伺服器會在之後的擷取確認它們後連線。如需完整行為(包括首次啟動),請參閱[提供的伺服器何時連線](https://code.claude.com/docs/zh-TW/managed-mcp.md#when-provided-servers-connect)。需要 Claude Code v2.1.259 或更新版本175* 快取的 [`managedMcpServers`](https://code.claude.com/docs/zh-TW/settings-reference#managedmcpservers) 區塊在工作階段的擷取確認 payload 之前不會套用。Claude Code 會在連線 MCP 伺服器之前等待該擷取最多 30 秒。如果擷取失敗或逾時,工作階段會在沒有組織伺服器的情況下啟動,`/status` 會註明此情況,而這些伺服器會在之後的擷取確認它們後連線。如需完整行為(包括首次啟動),請參閱[提供的伺服器何時連線](https://code.claude.com/docs/zh-TW/managed-mcp.md#when-provided-servers-connect)。需要 Claude Code v2.1.259 或更新版本

176* 快取的 [`prependPlugins`](https://code.claude.com/docs/zh-TW/settings-reference#prependplugins)、[`appendPlugins`](https://code.claude.com/docs/zh-TW/settings-reference#appendplugins) 或 [`enabledPlugins`](https://code.claude.com/docs/zh-TW/settings-reference#enabledplugins) 值,在工作階段的擷取確認 payload 之前,無法移除內建防護、變更其位置或將其關閉

177* 在[端點受管來源](https://code.claude.com/docs/zh-TW/managed-settings.md#choose-a-delivery-mechanism)自行列出或啟用外掛的電腦上,僅由快取清單啟用的外掛在擷取確認 payload 之前,會被視為[使用者的](https://code.claude.com/docs/zh-TW/plugins/mods/admin.md#install-your-organizations-mods)外掛,而非您組織的外掛

176* Claude Code 會在背景擷取最新設定178* Claude Code 會在背景擷取最新設定

177* 快取的設定在網路故障期間會持續保留。如果啟動時的擷取失敗,Claude Code 會在互動式工作階段中警告目前生效的是快取的政策179* 快取的設定在網路故障期間會持續保留。如果啟動時的擷取失敗,Claude Code 會在互動式工作階段中警告目前生效的是快取的政策

178* 在擷取成功之前,啟動時暫緩的值會持續暫緩180* 在擷取成功之前,啟動時暫緩的值會持續暫緩

sessions.md +1 −1

Details

249 249 

250根據預設,Claude Code 將逐字稿儲存為 JSONL,位置為 `~/.claude/projects/<project>/<session-id>.jsonl`,其中 `<project>` 是您的工作目錄路徑,非英數字元已被 `-` 取代。對於轉換後的名稱超過 200 個字元的工作目錄,Claude Code 會將名稱截斷為 200 個字元,並附加完整路徑的雜湊值,以便目錄名稱保持在檔案系統限制內。250根據預設,Claude Code 將逐字稿儲存為 JSONL,位置為 `~/.claude/projects/<project>/<session-id>.jsonl`,其中 `<project>` 是您的工作目錄路徑,非英數字元已被 `-` 取代。對於轉換後的名稱超過 200 個字元的工作目錄,Claude Code 會將名稱截斷為 200 個字元,並附加完整路徑的雜湊值,以便目錄名稱保持在檔案系統限制內。

251 251 

252每一行都是訊息、工具使用或中繼資料項目的 JSON 物件。項目格式是 Claude Code 的內部格式,在版本之間會變更,因此直接解析這些檔案的指令碼可能在任何版本上中斷。若要建立在工作階段資料上,請改用 `/export` 或 [指令碼介面](#access-conversations-from-scripts)。252每一行都是一個 JSON 物件:一則訊息、一次工具使用或結果、一筆 Claude Code 傳送給模型的請求紀錄,或一個中繼資料項目。項目格式是 Claude Code 的內部格式,在版本之間會變更,因此直接解析這些檔案的指令碼可能在任何版本上中斷。若要建立在工作階段資料上,請改用 `/export` 或 [指令碼介面](#access-conversations-from-scripts)。

253 253 

254位置、保留期和寫入行為可設定:254位置、保留期和寫入行為可設定:

255 255 

Details

2037* **類型**:字串陣列,每個都是服務名稱;單一結尾的 `*` 會比對前綴,單獨的 `"*"` 則會比對所有服務2037* **類型**:字串陣列,每個都是服務名稱;單一結尾的 `*` 會比對前綴,單獨的 `"*"` 則會比對所有服務

2038* **預設值**:未設定2038* **預設值**:未設定

2039 2039 

2040以下設定允許 `com.apple.coresimulator.` 前綴下的每個服務:2040以下設定允許 `com.apple.CoreSimulator.` 前綴下的所有服務:

2041 2041 

2042```json settings.json theme={null}2042```json settings.json theme={null}

2043{2043{

2044 "sandbox": {2044 "sandbox": {

2045 "network": {2045 "network": {

2046 "allowMachLookup": ["com.apple.coresimulator.*"]2046 "allowMachLookup": ["com.apple.CoreSimulator.*"]

2047 }2047 }

2048 }2048 }

2049}2049}


4729* **Type**: array of strings,相對於儲存庫根目錄的目錄路徑4729* **Type**: array of strings,相對於儲存庫根目錄的目錄路徑

4730* **Default**: 未設定,因此每個 worktree 簽出整個樹4730* **Default**: 未設定,因此每個 worktree 簽出整個樹

4731 4731 

4732此範例在每個 worktree 中僅簽出 `packages/my-app` 和 `shared/utils`,加上根層級檔案:4732請在清單中包含 `.claude`,讓每個 worktree 也具有儲存庫的 `.claude/settings.json` 和 `.claude/rules/`。此範例在每個 worktree 中僅簽出 `.claude`、`packages/my-app` 和 `shared/utils`,加上根層級檔案:

4733 4733 

4734```json settings.json theme={null}4734```json settings.json theme={null}

4735{4735{

4736 "worktree": {4736 "worktree": {

4737 "sparsePaths": ["packages/my-app", "shared/utils"]4737 "sparsePaths": [".claude", "packages/my-app", "shared/utils"]

4738 }4738 }

4739}4739}

4740```4740```


5525 5525 

5526Claude Code 仍然接受其伺服器全部為進程內 `type: "sdk"` 項目的 `--mcp-config`,因此 Agent SDK 和 VS Code 擴充功能可繼續運作。使用者仍然可以使用 `claude mcp add` 或 `.mcp.json` 檔案新增伺服器;如需個別伺服器控制,也請設定 [`allowedMcpServers`](https://code.claude.com/docs/zh-TW/managed-mcp)。需要 Claude Code v2.1.193 或更新版本。5526Claude Code 仍然接受其伺服器全部為進程內 `type: "sdk"` 項目的 `--mcp-config`,因此 Agent SDK 和 VS Code 擴充功能可繼續運作。使用者仍然可以使用 `claude mcp add` 或 `.mcp.json` 檔案新增伺服器;如需個別伺服器控制,也請設定 [`allowedMcpServers`](https://code.claude.com/docs/zh-TW/managed-mcp)。需要 Claude Code v2.1.193 或更新版本。

5527 5527 

5528相同的檢查涵蓋在 [`CLAUDE_CODE_PLUGIN_DIRS`](https://code.claude.com/docs/zh-TW/env-vars#variables) 環境變數中命名的外掛程式資料夾,這需要 Claude Code v2.1.280 或更新版本。當變數命名資料夾時,Claude Code 會以相同的錯誤結束,且錯誤會說明要取消設定變數。5528`disableSideloadFlags` 也會拒絕來自下列來源的外掛程式資料夾:

5529 

5530* **[`CLAUDE_CODE_PLUGIN_DIRS`](https://code.claude.com/docs/zh-TW/env-vars#variables) 環境變數**:當變數指定外掛程式資料夾時,Claude Code 會在啟動時以錯誤結束,錯誤會指出該變數並說明要取消設定它。需要 Claude Code v2.1.280 或更新版本

5531* **Agent SDK [`addPlugins`](https://code.claude.com/docs/zh-TW/agent-sdk/typescript#load-more-plugin-folders-with-addplugins) 選項**:當應用程式在 `addPlugins` 中將外掛程式資料夾傳遞給 `reloadPlugins()` 時,該呼叫會以錯誤失敗。工作階段會以已有的外掛程式繼續執行。需要 Claude Code v2.1.301 或更新版本

5529 5532 

5530在雲端工作階段中,Claude Code 也會忽略伺服器傳遞的中途 MCP 更新,即雲端工作階段設定和 SDK `setMcpServers()` 呼叫背後的路徑,這些呼叫會到達這些工作階段。進程內 `type: "sdk"` 項目和 Claude Tag 工作階段的 Slack 工具在那裡也保持豁免。在 v2.1.268 之前,此捨棄和啟動捨棄也移除了 Claude Tag 工作階段的 Slack 工具。在 v2.1.239 之前,伺服器傳遞的 `--mcp-config` 會阻止雲端工作階段啟動。5533在雲端工作階段中,Claude Code 也會忽略伺服器傳遞的中途 MCP 更新,即雲端工作階段設定和 SDK `setMcpServers()` 呼叫背後的路徑,這些呼叫會到達這些工作階段。進程內 `type: "sdk"` 項目和 Claude Tag 工作階段的 Slack 工具在那裡也保持豁免。在 v2.1.268 之前,此捨棄和啟動捨棄也移除了 Claude Tag 工作階段的 Slack 工具。在 v2.1.239 之前,伺服器傳遞的 `--mcp-config` 會阻止雲端工作階段啟動。

5531 5534 


5656 5659 

5657當協助程式發出 `managedSettings` 時,該物件成為執行的唯一受管設定來源:Claude Code 會忽略 MDM、檔案和 HKCU 來源,只從協助程式的輸出讀取[跨來源金鑰](https://code.claude.com/docs/zh-TW/managed-settings.md#keys-read-from-every-admin-source),並從不合併[父設定](https://code.claude.com/docs/zh-TW/managed-settings.md#parent-settings-from-embedding-hosts)。5660當協助程式發出 `managedSettings` 時,該物件成為執行的唯一受管設定來源:Claude Code 會忽略 MDM、檔案和 HKCU 來源,只從協助程式的輸出讀取[跨來源金鑰](https://code.claude.com/docs/zh-TW/managed-settings.md#keys-read-from-every-admin-source),並從不合併[父設定](https://code.claude.com/docs/zh-TW/managed-settings.md#parent-settings-from-embedding-hosts)。

5658 5661 

5659啟動 `forceRemoteSettingsRefresh` 檢查在協助程式之前執行,並讀取任何管理員來源。以 0 結束且信封省略 `managedSettings` 的協助程式不貢獻受管設定,其他來源照常套用。5662啟動 `forceRemoteSettingsRefresh` 檢查在協助程式之前執行,並讀取任何管理員來源。以 `0` 結束且信封省略 `managedSettings` 的協助程式不貢獻受管設定,其他來源照常套用。

5660 5663 

5661#### 協助程式失敗5664#### 協助程式失敗

5662 5665 


5670 5673 

5671當啟動執行失敗時,Claude Code 會列印原因並拒絕啟動。在非零結束後,原因包括協助程式的 stderr,或當 stderr 為空時的 stdout。在逾時後,原因會命名 `timeoutMs` 限制,不包括協助程式輸出的任何部分。拒絕涵蓋互動式工作階段、`claude -p`、Agent SDK 工作階段、[背景工作階段](https://code.claude.com/docs/zh-TW/agent-view.md) 和大多數子命令。5674當啟動執行失敗時,Claude Code 會列印原因並拒絕啟動。在非零結束後,原因包括協助程式的 stderr,或當 stderr 為空時的 stdout。在逾時後,原因會命名 `timeoutMs` 限制,不包括協助程式輸出的任何部分。拒絕涵蓋互動式工作階段、`claude -p`、Agent SDK 工作階段、[背景工作階段](https://code.claude.com/docs/zh-TW/agent-view.md) 和大多數子命令。

5672 5675 

5673拒絕是刻意的,因此需要中斷復原能力的協助程式應該從其自己的快取提供並以 0 結束。5676拒絕是刻意的,因此需要中斷復原能力的協助程式應該從其自己的快取提供並以 `0` 結束。

5674 5677 

5675當背景重新整理失敗時,Claude Code 會保持最後成功的原則有效,`/status` 會顯示失敗的重新整理及其原因,直到重新整理成功。每次重新整理在與啟動執行相同的 `timeoutMs` 和失敗規則下執行。5678當背景重新整理失敗時,Claude Code 會保持最後成功的原則有效,`/status` 會顯示失敗的重新整理及其原因,直到重新整理成功。每次重新整理在與啟動執行相同的 `timeoutMs` 和失敗規則下執行。

5676 5679 

vs-code.md +36 −17

Details

203What's in @src/components/ (include a trailing slash for folders)203What's in @src/components/ (include a trailing slash for folders)

204```204```

205 205 

206對於大型 PDF,您可以要求 Claude 讀取特定頁面,而不是整個檔案。您可以要求單一頁面、範圍(例如第 1-10 頁),或開放式範圍(例如第 3 頁之後)。讀取特定頁面需要在執行 Claude Code 的機器上安裝 [poppler-utils](https://code.claude.com/docs/zh-TW/tools-reference.md#read-tool-behavior)。206### 讀取 PDF 的特定頁面

207 

208當您在編輯器中選取文字時,Claude 可以自動看到您反白的程式碼。提示詞輸入框的頁尾會顯示已選取的行數。按下 `Option+K`(Mac)/ `Alt+K`(Windows/Linux)即可插入包含檔案路徑和行號的 @ 提及,例如 `@app.ts#5-10`。點擊選取指示器上的 **X** 即可將其移除,讓 Claude 不會收到該選取內容。當您選取其他文字時,指示器會重新出現。

209 207 

210擴充功能會對某些檔案隱瞞所選取的文字:208對於大型 PDF,您可以要求 Claude 讀取特定頁面,而不是整個檔案。您可以要求單一頁面、範圍(例如第 1-10 頁),或開放式範圍(例如第 3 頁之後)。讀取特定頁面需要在執行 Claude Code 的機器上安裝 [poppler-utils](https://code.claude.com/docs/zh-TW/tools-reference.md#read-tool-behavior)。

211 

212* 當檔案位於您的工作區內,且符合您的 `files.exclude` 或 `search.exclude` 設定時,Claude 最多只會收到檔案的路徑,而不會收到您選取的文字。

213* 這同樣適用於被 git 忽略的檔案,前提是 VS Code 的 `search.useIgnoreFiles` 設定和擴充功能的 [`respectGitIgnore` 設定](#extension-settings)都已開啟(此為預設值)。

214 209 

215此篩選僅涵蓋聊天面板。當 Claude Code 在整合式終端機中執行時,無論是哪個檔案,CLI 都會傳送您選取的文字。若要在該處避免 Claude 取得檔案內容,請新增 [`Read` 拒絕規則](#the-built-in-ide-mcp-server)。210### 在提示詞中包含終端機輸出

216 211 

217即使沒有選取任何內容,Claude 也會看到您在編輯器中開啟的檔案,且提示詞輸入框會顯示其名稱。若只要加入您選取的文字,請關閉 [Attach Open File 設定](vscode://settings/claudeCode.attachOpenFile)。此設定需要 Claude Code v2.1.271 或更新版本。212使用 `@terminal:name` 在提示詞中參照終端機輸出,其中 `name` 是終端機的標題。這可讓 Claude 看到命令輸出、錯誤訊息或日誌,而不需要複製貼上。

218 213 

219您也可以將圖片和檔案附加到訊息中:214### 附加圖片和檔案

220 215 

221* 若要附加圖片,請從剪貼簿將其貼到提示詞輸入框中。216* 若要附加圖片,請從剪貼簿將其貼到提示詞輸入框中。

222* 若要附加檔案,請在將檔案拖曳至提示詞輸入框時按住 `Shift`。217* 若要附加檔案,請在將檔案拖曳至提示詞輸入框時按住 `Shift`。

223* 若要從上下文中移除附件,請點擊其上的 X。218* 若要從上下文中移除附件,請點擊其上的 X。

224 219 

225### 在提示詞中包含終端機輸出

226 

227使用 `@terminal:name` 在提示詞中參照終端機輸出,其中 `name` 是終端機的標題。這可讓 Claude 看到命令輸出、錯誤訊息或日誌,而不需要複製貼上。

228 

229### 貼上文字220### 貼上文字

230 221 

231您貼上的文字會在提示詞輸入框中保持可見,而不會像[在終端機中](https://code.claude.com/docs/zh-TW/terminal-config.md#paste-large-content)那樣摺疊成預留位置。在 Claude Code [會標記貼上文字](https://code.claude.com/docs/zh-TW/terminal-config.md#how-claude-treats-pasted-text)的工作階段中,Claude 仍會將大量貼上的內容視為您貼上的文字,而非您輸入的文字。222您貼上的文字會在提示詞輸入框中保持可見,而不會像[在終端機中](https://code.claude.com/docs/zh-TW/terminal-config.md#paste-large-content)那樣摺疊成預留位置。在 Claude Code [會標記貼上文字](https://code.claude.com/docs/zh-TW/terminal-config.md#how-claude-treats-pasted-text)的工作階段中,Claude 仍會將大量貼上的內容視為您貼上的文字,而非您輸入的文字。


235* 如果在您貼上時出現 `Removed 3 invisible characters from the pasted text` 之類的通知,表示文字已在移除這些字元後輸入。226* 如果在您貼上時出現 `Removed 3 invisible characters from the pasted text` 之類的通知,表示文字已在移除這些字元後輸入。

236* 如果在您傳送時出現有關已移除字元的通知,表示沒有傳送任何內容。清理後的文字會回到提示詞輸入框中。再次傳送即可依所顯示的內容傳送文字。227* 如果在您傳送時出現有關已移除字元的通知,表示沒有傳送任何內容。清理後的文字會回到提示詞輸入框中。再次傳送即可依所顯示的內容傳送文字。

237 228 

229### 來自您的選取內容和開啟檔案的自動上下文

230 

231當您在編輯器中選取文字時,Claude 可以自動看到您反白的程式碼。提示詞輸入框的頁尾會顯示已選取的行數。即使沒有選取任何內容,Claude 也會看到您在編輯器中開啟的檔案,且提示詞輸入框會顯示其名稱。

232 

233按下 `Option+K`(Mac)/ `Alt+K`(Windows/Linux)即可插入包含檔案路徑和行號的 @ 提及,例如 `@app.ts#5-10`。

234 

235#### 避免將您的選取內容和開啟的檔案加入訊息

236 

237若要避免所選取的文字或您開啟的檔案進入您的訊息,請在 VS Code 的設定中關閉對應的設定:

238 

239* **所選取的文字**:關閉 [Attach Selection 設定](vscode://settings/claudeCode.attachSelection)。需要 Claude Code v2.1.300 或更新版本。若要捨棄單一選取內容,請點擊行數旁的 **X**。當您選取其他文字時,行數會重新出現。

240* **開啟的檔案**:關閉 [Attach Open File 設定](vscode://settings/claudeCode.attachOpenFile)。需要 Claude Code v2.1.271 或更新版本。除非您的訊息包含您在該檔案中選取的文字,否則不會加入該檔案。

241 

242若要在 Attach Selection 關閉時將文字加入為 @ 提及,請選取文字,然後在 Mac 上按下 `Option+K`,或在 Windows 和 Linux 上按下 `Alt+K`。

243 

244當您在 VS Code 的整合式終端機中執行 `claude` 時,這兩項設定同樣適用。

245 

246#### 來自已排除或已忽略檔案的選取文字

247 

248在聊天面板中,擴充功能會對某些檔案隱瞞所選取的文字:

249 

250* 當檔案位於您的工作區內,且符合您的 `files.exclude` 或 `search.exclude` 設定時,Claude 最多只會收到檔案的路徑,而不會收到您選取的文字。

251* 這同樣適用於被 git 忽略的檔案,前提是 VS Code 的 `search.useIgnoreFiles` 設定和擴充功能的 [`respectGitIgnore` 設定](#extension-settings)都已開啟(此為預設值)。

252 

253此篩選僅涵蓋聊天面板。當 Claude Code 在整合式終端機中執行時,Claude 可能會收到您在這些檔案中選取的文字。若要在該處避免 Claude 取得檔案內容,請新增 [`Read` 拒絕規則](https://code.claude.com/docs/zh-TW/permissions#read-and-edit)。

254 

238### 回應中的 LaTeX 數學式255### 回應中的 LaTeX 數學式

239 256 

240聊天面板會將 Claude 回應中的 LaTeX 數學式顯示為排版後的公式。數學式呈現需要 Claude Code v2.1.301 或更新版本。在[終端機模式](#switch-to-terminal-mode)中,數學式不會排版。面板會同時排版獨立顯示數學式和行內數學式:257聊天面板會將 Claude 回應中的 LaTeX 數學式顯示為排版後的公式。數學式呈現需要 Claude Code v2.1.301 或更新版本。在[終端機模式](#switch-to-terminal-mode)中,數學式不會排版。面板會同時排版獨立顯示數學式和行內數學式:


694| `preferredLocation` | `panel` | Claude 開啟的位置:`sidebar`(右側)或 `panel`(新分頁) |711| `preferredLocation` | `panel` | Claude 開啟的位置:`sidebar`(右側)或 `panel`(新分頁) |

695| `lockEditorGroups` | `true` | [鎖定 Claude 為其分頁啟動的編輯器群組](#choose-where-claude-lives),讓您在 Claude 分頁處於焦點時開啟的檔案會移至其他群組。關閉時,擴充功能永遠不會鎖定編輯器群組。需要 Claude Code v2.1.274 或更新版本 |712| `lockEditorGroups` | `true` | [鎖定 Claude 為其分頁啟動的編輯器群組](#choose-where-claude-lives),讓您在 Claude 分頁處於焦點時開啟的檔案會移至其他群組。關閉時,擴充功能永遠不會鎖定編輯器群組。需要 Claude Code v2.1.274 或更新版本 |

696| `autosave` | `true` | 在 Claude 讀取或寫入檔案前自動儲存檔案 |713| `autosave` | `true` | 在 Claude 讀取或寫入檔案前自動儲存檔案 |

697| `attachOpenFile` | `true` | 將編輯器中開啟的檔案新增至您的訊息,並顯示在提示詞輸入框中。關閉時,只會新增您選取的文字。需要 Claude Code v2.1.271 或更新版本 |714| `attachOpenFile` | `true` | 將編輯器中開啟的檔案新增至您的訊息,並顯示在提示詞輸入框中。關閉時,只有在連同您選取的文字一起時才會新增該檔案。需要 Claude Code v2.1.271 或更新版本 |

715| `attachSelection` | `true` | 將您在編輯器中選取的文字新增至您的訊息,並顯示在提示詞輸入框中。關閉時,您仍可[將選取內容以 @-mention 形式新增](#automatic-context-from-your-selection-and-open-file)。需要 Claude Code v2.1.300 或更新版本 |

698| `useCtrlEnterToSend` | `false` | 使用 Ctrl/Cmd+Enter 而非 Enter 傳送提示詞 |716| `useCtrlEnterToSend` | `false` | 使用 Ctrl/Cmd+Enter 而非 Enter 傳送提示詞 |

699| `scrollToBottomOnSend` | `true` | 傳送訊息時將對話捲動至底部。關閉時,對話會停留在您離開時的位置。需要 Claude Code v2.1.275 或更新版本 |717| `scrollToBottomOnSend` | `true` | 傳送訊息時將對話捲動至底部。關閉時,對話會停留在您離開時的位置。需要 Claude Code v2.1.275 或更新版本 |

700| `showMessageTimestamps` | `true` | 顯示每則訊息的傳送時間。日期行會標示日期變更之處。需要 Claude Code v2.1.284 或更新版本。在 v2.1.290 之前,預設值為 `false` |718| `showMessageTimestamps` | `true` | 顯示每則訊息的傳送時間。日期行會標示日期變更之處。需要 Claude Code v2.1.284 或更新版本。在 v2.1.290 之前,預設值為 `false` |


705| `continueAfterReload` | `true` | 視窗重新載入後,Claude 會在還原的工作階段中[繼續被中斷的步驟](#continue-conversations-after-a-reload)。需要 Claude Code v2.1.274 或更新版本 |723| `continueAfterReload` | `true` | 視窗重新載入後,Claude 會在還原的工作階段中[繼續被中斷的步驟](#continue-conversations-after-a-reload)。需要 Claude Code v2.1.274 或更新版本 |

706| `hideOnboarding` | `false` | 隱藏入門檢查清單(學士帽圖示) |724| `hideOnboarding` | `false` | 隱藏入門檢查清單(學士帽圖示) |

707| `focusView` | `false` | 將工具呼叫、工具結果和思考隱藏在可展開的列中,只留下您的提示詞和 Claude 的回應。Claude 最新的待辦事項清單會保持可見;這需要 Claude Code v2.1.225 或更新版本。您也可以從命令選單切換 Focus view。需要 Claude Code v2.1.221 或更新版本 |725| `focusView` | `false` | 將工具呼叫、工具結果和思考隱藏在可展開的列中,只留下您的提示詞和 Claude 的回應。Claude 最新的待辦事項清單會保持可見;這需要 Claude Code v2.1.225 或更新版本。您也可以從命令選單切換 Focus view。需要 Claude Code v2.1.221 或更新版本 |

708| `respectGitIgnore` | `true` | 從檔案搜尋和[選取內容脈絡](#reference-files-and-folders)中排除 .gitignore 模式 |726| `respectGitIgnore` | `true` | 從檔案搜尋和[選取內容脈絡](#selected-text-from-excluded-or-ignored-files)中排除 .gitignore 模式 |

709| `usePythonEnvironment` | `true` | 執行 Claude 時啟用工作區的 Python 環境。需要 Python 擴充功能。 |727| `usePythonEnvironment` | `true` | 執行 Claude 時啟用工作區的 Python 環境。需要 Python 擴充功能。 |

710| `environmentVariables` | `[]` | 為 Claude 程序設定環境變數。若要共用設定,請改用 Claude Code 設定。[`CLAUDE_CONFIG_DIR`](https://code.claude.com/docs/zh-TW/env-vars) 項目僅在其值為絕對路徑時才會套用;擴充功能不會展開 `~`,並會忽略相對路徑值。 |728| `environmentVariables` | `[]` | 為 Claude 程序設定環境變數。若要共用設定,請改用 Claude Code 設定。[`CLAUDE_CONFIG_DIR`](https://code.claude.com/docs/zh-TW/env-vars) 項目僅在其值為絕對路徑時才會套用;擴充功能不會展開 `~`,並會忽略相對路徑值。 |

711| `disableLoginPrompt` | `false` | 略過身分驗證提示(適用於第三方供應商設定) |729| `disableLoginPrompt` | `false` | 略過身分驗證提示(適用於第三方供應商設定) |


835 853 

836**選取範圍與開啟檔案的上下文。** 連線期間,CLI 會在您送出的每個提示詞中,將您目前的編輯器選取範圍以及作用中檔案的路徑作為上下文一併附上。發生這種情況時,逐字稿會顯示一行 `⧉ Selected N lines from <file>`。以下情況會改變該上下文:854**選取範圍與開啟檔案的上下文。** 連線期間,CLI 會在您送出的每個提示詞中,將您目前的編輯器選取範圍以及作用中檔案的路徑作為上下文一併附上。發生這種情況時,逐字稿會顯示一行 `⧉ Selected N lines from <file>`。以下情況會改變該上下文:

837 855 

856* **關閉 [Attach Selection 設定](#keep-your-selection-and-open-file-out-of-your-messages)**:CLI 不會將您的選取範圍作為上下文附上。

857* **關閉 Attach Open File 設定**:CLI 只有在同時附上選取範圍時,才會附上作用中檔案的路徑。

838* **佇列中的訊息**:如果您[在 Claude 工作時將訊息加入佇列](https://code.claude.com/docs/zh-TW/interactive-mode.md#queue-messages-while-claude-works),該訊息會保留您按下 `Enter` 時的選取範圍,無論您之後選取了什麼。858* **佇列中的訊息**:如果您[在 Claude 工作時將訊息加入佇列](https://code.claude.com/docs/zh-TW/interactive-mode.md#queue-messages-while-claude-works),該訊息會保留您按下 `Enter` 時的選取範圍,無論您之後選取了什麼。

839* **敏感檔案**:若要排除 `.env` 等敏感檔案,請為其路徑新增 [`Read` 拒絕規則](https://code.claude.com/docs/zh-TW/permissions#read-and-edit)。相符的拒絕規則會阻止該檔案的選取文字和開啟檔案通知傳送給 Claude。859* **敏感檔案**:若要排除 `.env` 等敏感檔案,請為其路徑新增 [`Read` 拒絕規則](https://code.claude.com/docs/zh-TW/permissions#read-and-edit)。相符的拒絕規則會阻止該檔案的選取文字和開啟檔案通知傳送給 Claude。

840* **關閉 Attach Open File**:如果您關閉 [Attach Open File 設定](#extension-settings),CLI 只有在您於作用中檔案內選取文字時,才會收到該檔案的路徑。

841 860 

842**傳輸與身分驗證。** 伺服器會繫結到 `127.0.0.1` 上 10000–65535 範圍內的隨機連接埠,且該連接埠無法設定。傳輸方式與驗證 token 的運作方式如下:861**傳輸與身分驗證。** 伺服器會繫結到 `127.0.0.1` 上 10000–65535 範圍內的隨機連接埠,且該連接埠無法設定。傳輸方式與驗證 token 的運作方式如下:

843 862 

workflows.md +5 −4

Details

333 333 

334工作流程執行時期在隔離環境中執行指令碼,與您的對話分開。中間結果保留在指令碼變數中,而不是進入 Claude 的上下文。334工作流程執行時期在隔離環境中執行指令碼,與您的對話分開。中間結果保留在指令碼變數中,而不是進入 Claude 的上下文。

335 335 

336每次執行都會將其指令碼寫入您工作階段目錄下的 `~/.claude/projects/` 中的檔案。執行開始時 Claude 會收到該路徑,因此您可以要求它。您可以開啟該檔案以讀取 Claude 編寫的協調指令碼,將其與先前執行的指令碼進行比較,或編輯它並要求 Claude 從編輯後的版本重新啟動。336除非 Claude 從指令碼檔案的路徑啟動執行,否則 Claude Code 會將該次執行的指令碼寫入您工作階段目錄下 `~/.claude/projects/` 中的檔案。執行開始時 Claude 會收到該指令碼的路徑,因此您可以向它詢問。您可以開啟該檔案以讀取 Claude 編寫的協調指令碼,將其與先前執行的指令碼進行差異比較,或編輯它並要求 Claude 從編輯後的版本重新啟動。

337 337 

338Claude 只能從工作階段已允許讀取的指令碼檔案啟動工作流程。若要執行保存在工作目錄外的指令碼,請先使用 [`/add-dir`](https://code.claude.com/docs/zh-TW/permissions#working-directories) 或 [Read 允許規則](https://code.claude.com/docs/zh-TW/permissions.md#read-and-edit)新增其目錄。338Claude 只能從工作階段已允許讀取的指令碼檔案啟動工作流程。若要執行保存在工作目錄外的指令碼,請先使用 [`/add-dir`](https://code.claude.com/docs/zh-TW/permissions#working-directories) 或 [Read 允許規則](https://code.claude.com/docs/zh-TW/permissions.md#read-and-edit)新增其目錄。

339 339 


387 387 

388#### 離開工作階段後恢復388#### 離開工作階段後恢復

389 389 

390您可以在同一 Claude Code 工作階段內恢復執行。當您離開工作階段時,執行中的工作流程會發生什麼取決於您如何離開:390如果您在工作流程執行進行中將工作階段放到背景或退出 Claude Code,該執行不會自行繼續。只有當 Claude 以 `Workflow` 呼叫重新啟動它時,執行才會繼續,這會[從其已保存的結果重新執行該執行](#which-agents-run-again)。

391 391 

392* 如果您[將工作階段放在背景](https://code.claude.com/docs/zh-TW/agent-view.md#what-carries-over-when-you-background),Claude Code 會在背景工作階段中以相同方式重新執行該執行並繼續它。392* **您將工作階段放到背景,或選擇了 [`Move to background and exit`](https://code.claude.com/docs/zh-TW/agent-view#from-inside-a-session)**:如果您查看[背景工作階段](https://code.claude.com/docs/zh-TW/agent-view.md#what-carries-over-when-you-background)時執行尚未繼續,請在那裡要求 Claude 重新啟動工作流程。視您的[權限模式](#approve-the-plan-before-it-runs)而定,Claude Code 會先要求您核准重新啟動。如果該工作階段在 agent 檢視中顯示於 `Needs input` 之下,請[附加到該工作階段](https://code.claude.com/docs/zh-TW/agent-view.md#attach-to-a-session)以回應核准提示。

393* 如果您在工作流程執行時退出 Claude Code 並且[代理檢視已開啟](https://code.claude.com/docs/zh-TW/agent-view.md#from-inside-a-session),退出對話框會提供 `Move to background and exit`,它以相同方式帶過該執行。如果您改為選擇 `Exit and stop tasks`,或未提供該選項,執行會隨工作階段停止。Claude Code 將執行的已保存結果保留在 `~/.claude/projects/` 中該工作階段的目錄下,因此您使用 `claude --resume` 恢復的工作階段可以在您要求 Claude 重新啟動工作流程時重新執行它們。在您全新啟動的工作階段中,Claude 沒有較早的執行可重新啟動,並將工作流程作為新執行啟動。393* **背景工作階段中的重新啟動因 `nothing to resume` 而失敗**:要求 Claude 將工作流程作為新執行重新開始。如果 Claude 是從 `~/.claude/projects/` 以外的指令碼檔案路徑(例如您工作目錄中的檔案)啟動該執行,Claude 就無法在背景工作階段中重新啟動它。

394* **您選擇了 `Exit and stop tasks`,或未提供 `Move to background and exit`**:執行已隨工作階段停止,Claude Code 會將執行的已保存結果保留在 `~/.claude/projects/` 中該工作階段的目錄下。請在您的 shell 中使用 `claude --resume` 恢復工作階段,然後要求 Claude 重新啟動工作流程。在全新的工作階段中,Claude 沒有較早的執行可重新啟動,會將工作流程重新開始。

394 395 

395在[雲端工作階段](https://code.claude.com/docs/zh-TW/claude-code-on-the-web.md)中,Claude Code 也會將執行的結果與工作階段的對話歷史記錄一起保存,當工作階段的 VM 被回收時,這些結果會保留。當您[重新開啟此類工作階段](https://code.claude.com/docs/zh-TW/claude-code-on-the-web.md#environment-expired)並要求 Claude 重新啟動工作流程時,已完成的代理仍會返回其已保存的結果。396在[雲端工作階段](https://code.claude.com/docs/zh-TW/claude-code-on-the-web.md)中,Claude Code 也會將執行的結果與工作階段的對話歷史記錄一起保存,當工作階段的 VM 被回收時,這些結果會保留。當您[重新開啟此類工作階段](https://code.claude.com/docs/zh-TW/claude-code-on-the-web.md#environment-expired)並要求 Claude 重新啟動工作流程時,已完成的代理仍會返回其已保存的結果。

396 397