SpyBara
Go Premium

Documentation 2026-05-13 23:01 UTC to 2026-05-14 17:02 UTC

22 files changed +422 −99. View all changes and history on the product overview
2026
Sun 31 06:39 Sat 30 06:23 Fri 29 06:38 Thu 28 06:37 Wed 27 06:42 Tue 26 06:33 Sun 24 06:25 Sat 23 06:18 Fri 22 06:33 Thu 21 06:36 Wed 20 06:35 Tue 19 06:34 Mon 18 23:59 Sun 17 01:01 Fri 15 22:58 Thu 14 17:02 Wed 13 23:01 Tue 12 22:57 Mon 11 23:00 Sun 10 23:03 Sat 9 04:57 Fri 8 22:00 Thu 7 22:59 Tue 5 23:00 Mon 4 22:58 Sat 2 18:14 Fri 1 18:19
Details

235 235 

236您的回調返回一個具有兩類欄位的物件:236您的回調返回一個具有兩類欄位的物件:

237 237 

238* **頂級欄位**控制對話:`systemMessage` 將訊息注入對話中,模型可見,`continue`(Python 中的 `continue_`)決定此 hook 後代理是否繼續執行。238* **頂級欄位**在每個事件上的工作方式相同:`systemMessage` 向使用者顯示訊息,`continue`(Python 中的 `continue_`)決定此 hook 後代理是否繼續執行。

239* **`hookSpecificOutput`** 控制目前操作。內部的欄位取決於 hook 事件類型。對於 `PreToolUse` hooks,這是您設定 `permissionDecision`(`"allow"`、`"deny"`、`"ask"` 或 `"defer"`)、`permissionDecisionReason` 和 `updatedInput` 的地方。返回 `"defer"` 會結束查詢,以便您可以[稍後繼續](/zh-TW/hooks#defer-a-tool-call-for-later)。對於 `PostToolUse` hooks,您可以設定 `additionalContext` 以將資訊附加到工具結果,或設定 `updatedToolOutput` 以在 Claude 看到之前完全替換工具的輸出。239* **`hookSpecificOutput`** 控制目前操作。內部的欄位取決於 hook 事件類型。對於 `PreToolUse` hooks,這是您設定 `permissionDecision`(`"allow"`、`"deny"`、`"ask"` 或 `"defer"`)、`permissionDecisionReason` 和 `updatedInput` 的地方。返回 `"defer"` 會結束查詢,以便您可以[稍後繼續](/zh-TW/hooks#defer-a-tool-call-for-later)。對於 `PostToolUse` hooks,您可以設定 `additionalContext` 以將資訊附加到工具結果,或設定 `updatedToolOutput` 以在 Claude 看到之前完全替換工具的輸出。

240 240 

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


331 331 

332### 新增上下文並阻止工具332### 新增上下文並阻止工具

333 333 

334此範例阻止任何嘗試寫入 `/etc` 目錄,並一起使用兩個輸出欄位:`permissionDecision: 'deny'` 停止工具呼叫,而 `systemMessage` 將提醒注入對話,以便代理接收有關操作被阻止原因的上下文並避免重試334此範例阻止寫入 `/etc` 目錄並向模型和使用者解釋原因

335 

336* `permissionDecision: 'deny'` 停止工具呼叫。

337* `permissionDecisionReason` 告訴模型原因,以便它避免重試。

338* `systemMessage` 向使用者顯示發生了什麼。

335 339 

336<CodeGroup>340<CodeGroup>

337 ```python Python theme={null}341 ```python Python theme={null}


340 344 

341 if file_path.startswith("/etc"):345 if file_path.startswith("/etc"):

342 return {346 return {

343 # 頂級欄位:將指導注入對話347 # 頂級欄位:顯示給使用者的訊息

344 "systemMessage": "Remember: system directories like /etc are protected.",348 "systemMessage": "Remember: system directories like /etc are protected.",

345 # hookSpecificOutput:阻止操作349 # hookSpecificOutput:阻止操作

346 "hookSpecificOutput": {350 "hookSpecificOutput": {


360 364 

361 if (filePath?.startsWith("/etc")) {365 if (filePath?.startsWith("/etc")) {

362 return {366 return {

363 // 頂級欄位:將指導注入對話367 // 頂級欄位:顯示給使用者的訊息

364 systemMessage: "Remember: system directories like /etc are protected.",368 systemMessage: "Remember: system directories like /etc are protected.",

365 // hookSpecificOutput:阻止操作369 // hookSpecificOutput:阻止操作

366 hookSpecificOutput: {370 hookSpecificOutput: {


807 811 

808### systemMessage 未出現在輸出中812### systemMessage 未出現在輸出中

809 813 

810`systemMessage` 欄位將上下文新增到模型可見的對話中但它可能不會出現在所有 SDK 輸出模式中。如果您需要將 hook 決定呈現給您的應用程式請分別記錄它們或使用專用輸出頻道814`systemMessage` 欄位向使用者顯示訊息而不是模型。預設情況下,SDK 不會在訊息流中呈現 hook 輸出因此除非您設定 `includeHookEvents`(Python 中的 `include_hook_events`),否則訊息可能不會出現要改為將上下文傳遞給模型,請返回 [`additionalContext`](/zh-TW/hooks#add-context-for-claude)。

815 

816如果您需要可靠地將 hook 決定呈現給您的應用程式,請分別記錄它們或使用專用輸出頻道。

811 817 

812## 相關資源818## 相關資源

813 819 

Details

1860返回可能包含以下內容的 [`HookJSONOutput`](#hookjsonoutput):1860返回可能包含以下內容的 [`HookJSONOutput`](#hookjsonoutput):

1861 1861 

1862* `decision`:`"block"` 以阻止動作1862* `decision`:`"block"` 以阻止動作

1863* `systemMessage`:要新增到記錄的系統消息1863* `systemMessage`:警告消息,顯示給使用者

1864* `hookSpecificOutput`:hook 特定輸出資料1864* `hookSpecificOutput`:hook 特定輸出資料

1865 1865 

1866### `HookContext`1866### `HookContext`


2645 2645 

2646**Tool 名稱:** `TodoWrite`2646**Tool 名稱:** `TodoWrite`

2647 2647 

2648<Note>

2649 `TodoWrite` 已棄用,將在未來版本中移除。改用 `TaskCreate`、`TaskGet`、`TaskUpdate` 和 `TaskList`。設定 `CLAUDE_CODE_ENABLE_TASKS=1` 以選擇加入。見 [遷移到 Task tools](/zh-TW/agent-sdk/todo-tracking#migrate-to-task-tools) 以了解如何監視程式碼變更。

2650</Note>

2651 

2648**輸入:**2652**輸入:**

2649 2653 

2650```python theme={null}2654```python theme={null}


2668}2672}

2669```2673```

2670 2674 

2675### TaskCreate

2676 

2677**Tool 名稱:** `TaskCreate`

2678 

2679**輸入:**

2680 

2681```python theme={null}

2682{

2683 "subject": str, # 簡短的任務標題

2684 "description": str, # 詳細的任務內容

2685 "activeForm": str | None, # 進行中時顯示的現在式標籤

2686 "metadata": dict | None, # 任意呼叫者中繼資料

2687}

2688```

2689 

2690**輸出:**

2691 

2692```python theme={null}

2693{

2694 "task": {"id": str, "subject": str}, # 建立的任務及指派的 ID

2695}

2696```

2697 

2698### TaskUpdate

2699 

2700**Tool 名稱:** `TaskUpdate`

2701 

2702**輸入:**

2703 

2704```python theme={null}

2705{

2706 "taskId": str, # 要修補的任務的 ID

2707 "status": Literal["pending", "in_progress", "completed", "deleted"] | None,

2708 "subject": str | None,

2709 "description": str | None,

2710 "activeForm": str | None,

2711 "addBlocks": list[str] | None, # 此任務現在阻止的任務 ID

2712 "addBlockedBy": list[str] | None, # 現在阻止此任務的任務 ID

2713 "owner": str | None,

2714 "metadata": dict | None,

2715}

2716```

2717 

2718**輸出:**

2719 

2720```python theme={null}

2721{

2722 "success": bool,

2723 "taskId": str,

2724 "updatedFields": list[str], # 變更的欄位名稱

2725 "error": str | None,

2726 "statusChange": {"from": str, "to": str} | None,

2727}

2728```

2729 

2730### TaskGet

2731 

2732**Tool 名稱:** `TaskGet`

2733 

2734**輸入:**

2735 

2736```python theme={null}

2737{

2738 "taskId": str, # 要讀取的任務的 ID

2739}

2740```

2741 

2742**輸出:**

2743 

2744```python theme={null}

2745{

2746 "task": {

2747 "id": str,

2748 "subject": str,

2749 "description": str,

2750 "status": Literal["pending", "in_progress", "completed"],

2751 "blocks": list[str],

2752 "blockedBy": list[str],

2753 } | None, # 當找不到 ID 時為 None

2754}

2755```

2756 

2757### TaskList

2758 

2759**Tool 名稱:** `TaskList`

2760 

2761**輸入:**

2762 

2763```python theme={null}

2764{}

2765```

2766 

2767**輸出:**

2768 

2769```python theme={null}

2770{

2771 "tasks": [

2772 {

2773 "id": str,

2774 "subject": str,

2775 "status": Literal["pending", "in_progress", "completed"],

2776 "owner": str | None,

2777 "blockedBy": list[str],

2778 }

2779 ],

2780}

2781```

2782 

2671### BashOutput2783### BashOutput

2672 2784 

2673**Tool 名稱:** `BashOutput`2785**Tool 名稱:** `BashOutput`

Details

388| `extraArgs` | `Record<string, string \| null>` | `{}` | 其他參數 |388| `extraArgs` | `Record<string, string \| null>` | `{}` | 其他參數 |

389| `fallbackModel` | `string` | `undefined` | 主模型失敗時使用的模型 |389| `fallbackModel` | `string` | `undefined` | 主模型失敗時使用的模型 |

390| `forkSession` | `boolean` | `false` | 使用 `resume` 恢復時,分叉到新會話 ID 而不是繼續原始會話 |390| `forkSession` | `boolean` | `false` | 使用 `resume` 恢復時,分叉到新會話 ID 而不是繼續原始會話 |

391| `hooks` | `Partial<Record<`[`HookEvent`](#hookevent)`, `[`HookCallbackMatcher`](#hookcallbackmatcher)`[]>>` | `{}` | 事件的 Hook 回調 |391| `hooks` | `Partial<Record<`[`HookEvent`](#hookevent)`, `[`HookCallbackMatcher`](#hookcallbackmatcher)`[]>>` | `{}` | 事件的 hooks 回調 |

392| `includeHookEvents` | `boolean` | `false` | 將 hooks 生命週期事件包括在消息流中,作為 [`SDKHookStartedMessage`](#sdkhookstartedmessage)、[`SDKHookProgressMessage`](#sdkhookprogressmessage) 和 [`SDKHookResponseMessage`](#sdkhookresponsemessage) |

392| `includePartialMessages` | `boolean` | `false` | 包括部分消息事件 |393| `includePartialMessages` | `boolean` | `false` | 包括部分消息事件 |

393| `maxBudgetUsd` | `number` | `undefined` | 當客戶端成本估計達到此 USD 值時停止查詢。與 `total_cost_usd` 的相同估計進行比較;見 [跟蹤成本和使用情況](/zh-TW/agent-sdk/cost-tracking) 了解準確性注意事項 |394| `maxBudgetUsd` | `number` | `undefined` | 當客戶端成本估計達到此 USD 值時停止查詢。與 `total_cost_usd` 的相同估計進行比較;見 [跟蹤成本和使用情況](/zh-TW/agent-sdk/cost-tracking) 了解準確性注意事項 |

394| `maxThinkingTokens` | `number` | `undefined` | *已棄用:* 改用 `thinking`。思考過程的最大令牌數 |395| `maxThinkingTokens` | `number` | `undefined` | *已棄用:* 改用 `thinking`。思考過程的最大令牌數 |


401| `permissionMode` | [`PermissionMode`](#permissionmode) | `'default'` | 會話的權限模式 |402| `permissionMode` | [`PermissionMode`](#permissionmode) | `'default'` | 會話的權限模式 |

402| `permissionPromptToolName` | `string` | `undefined` | 權限提示的 MCP 工具名稱 |403| `permissionPromptToolName` | `string` | `undefined` | 權限提示的 MCP 工具名稱 |

403| `persistSession` | `boolean` | `true` | 當為 `false` 時,禁用會話持久化到磁盤。會話之後無法恢復 |404| `persistSession` | `boolean` | `true` | 當為 `false` 時,禁用會話持久化到磁盤。會話之後無法恢復 |

404| `plugins` | [`SdkPluginConfig`](#sdkpluginconfig)`[]` | `[]` | 從本地路徑加載自定義插件。見 [Plugins](/zh-TW/agent-sdk/plugins) 了解詳情 |405| `plugins` | [`SdkPluginConfig`](#sdkpluginconfig)`[]` | `[]` | 從本地路徑加載自定義 plugins。見 [Plugins](/zh-TW/agent-sdk/plugins) 了解詳情 |

405| `promptSuggestions` | `boolean` | `false` | 啟用提示建議。在每個轉數後發出 `prompt_suggestion` 消息,帶有預測的下一個用戶提示 |406| `promptSuggestions` | `boolean` | `false` | 啟用提示建議。在每個轉數後發出 `prompt_suggestion` 消息,帶有預測的下一個用戶提示 |

406| `resume` | `string` | `undefined` | 要恢復的會話 ID |407| `resume` | `string` | `undefined` | 要恢復的會話 ID |

407| `resumeSessionAt` | `string` | `undefined` | 在特定消息 UUID 處恢復會話 |408| `resumeSessionAt` | `string` | `undefined` | 在特定消息 UUID 處恢復會話 |


410| `sessionStore` | [`SessionStore`](/zh-TW/agent-sdk/session-storage#the-sessionstore-interface) | `undefined` | 將會話記錄鏡像到外部後端,以便任何主機都可以恢復它們。見 [將會話持久化到外部存儲](/zh-TW/agent-sdk/session-storage) |411| `sessionStore` | [`SessionStore`](/zh-TW/agent-sdk/session-storage#the-sessionstore-interface) | `undefined` | 將會話記錄鏡像到外部後端,以便任何主機都可以恢復它們。見 [將會話持久化到外部存儲](/zh-TW/agent-sdk/session-storage) |

411| `settings` | `string \| Settings` | `undefined` | 內聯 [設置](/zh-TW/settings) 對象或設置文件的路徑。填充 [優先級順序](/zh-TW/settings#settings-precedence) 中的標誌設置層。使用 [`applyFlagSettings()`](#applyflagsettings) 在運行時更改 |412| `settings` | `string \| Settings` | `undefined` | 內聯 [設置](/zh-TW/settings) 對象或設置文件的路徑。填充 [優先級順序](/zh-TW/settings#settings-precedence) 中的標誌設置層。使用 [`applyFlagSettings()`](#applyflagsettings) 在運行時更改 |

412| `settingSources` | [`SettingSource`](#settingsource)`[]` | CLI 默認值(所有源) | 控制加載哪些文件系統設置。傳遞 `[]` 以禁用用戶、項目和本地設置。無論如何都會加載託管策略設置。見 [使用 Claude Code 功能](/zh-TW/agent-sdk/claude-code-features#what-settingsources-does-not-control) |413| `settingSources` | [`SettingSource`](#settingsource)`[]` | CLI 默認值(所有源) | 控制加載哪些文件系統設置。傳遞 `[]` 以禁用用戶、項目和本地設置。無論如何都會加載託管策略設置。見 [使用 Claude Code 功能](/zh-TW/agent-sdk/claude-code-features#what-settingsources-does-not-control) |

413| `skills` | `string[] \| 'all'` | `undefined` | 會話可用的技能。傳遞 `'all'` 以啟用每個發現的技能或傳遞技能名稱列表。設置後,SDK 會自動啟用 Skill 工具,無需在 `allowedTools` 中列出。見 [Skills](/zh-TW/agent-sdk/skills) |414| `skills` | `string[] \| 'all'` | `undefined` | 會話可用的 skills。傳遞 `'all'` 以啟用每個發現的 skill或傳遞 skill 名稱列表。設置後,SDK 會自動啟用 Skill 工具,無需在 `allowedTools` 中列出。見 [Skills](/zh-TW/agent-sdk/skills) |

414| `spawnClaudeCodeProcess` | `(options: SpawnOptions) => SpawnedProcess` | `undefined` | 用於生成 Claude Code 進程的自定義函數。用於在 VM、容器或遠程環境中運行 Claude Code |415| `spawnClaudeCodeProcess` | `(options: SpawnOptions) => SpawnedProcess` | `undefined` | 用於生成 Claude Code 進程的自定義函數。用於在 VM、容器或遠程環境中運行 Claude Code |

415| `stderr` | `(data: string) => void` | `undefined` | stderr 輸出的回調 |416| `stderr` | `(data: string) => void` | `undefined` | stderr 輸出的回調 |

416| `strictMcpConfig` | `boolean` | `false` | 強制執行嚴格的 MCP 驗證 |417| `strictMcpConfig` | `boolean` | `false` | 強制執行嚴格的 MCP 驗證 |


588| `prompt` | 是 | 代理的系統提示 |589| `prompt` | 是 | 代理的系統提示 |

589| `model` | 否 | 此代理的模型覆蓋。接受別名如 `'sonnet'`、`'opus'`、`'haiku'`、`'inherit'` 或完整模型 ID。如果省略或 `'inherit'`,使用主模型 |590| `model` | 否 | 此代理的模型覆蓋。接受別名如 `'sonnet'`、`'opus'`、`'haiku'`、`'inherit'` 或完整模型 ID。如果省略或 `'inherit'`,使用主模型 |

590| `mcpServers` | 否 | 此代理可用的 MCP 服務器規範 |591| `mcpServers` | 否 | 此代理可用的 MCP 服務器規範 |

591| `skills` | 否 | 要預加載到代理上下文中的技能名稱數組 |592| `skills` | 否 | 要預加載到代理上下文中的 skill 名稱數組 |

592| `initialPrompt` | 否 | 當此代理作為主線程代理運行時,自動提交為第一個用戶轉數 |593| `initialPrompt` | 否 | 當此代理作為主線程代理運行時,自動提交為第一個用戶轉數 |

593| `maxTurns` | 否 | 最大代理轉數(API 往返),然後停止 |594| `maxTurns` | 否 | 最大代理轉數(API 往返),然後停止 |

594| `background` | 否 | 當調用時,將此代理作為非阻塞後台任務運行 |595| `background` | 否 | 當調用時,將此代理作為非阻塞後台任務運行 |


861 862 

862### `SdkPluginConfig`863### `SdkPluginConfig`

863 864 

864SDK 中加載插件的配置865SDK 中加載 plugins 的配置

865 866 

866```typescript theme={null}867```typescript theme={null}

867type SdkPluginConfig = {868type SdkPluginConfig = {


871```872```

872 873 

873| 字段 | 類型 | 描述 |874| 字段 | 類型 | 描述 |

874| :----- | :-------- | :----------------------- |875| :----- | :-------- | :----------------------------- |

875| `type` | `'local'` | 必須是 `'local'`(目前僅支持本地插件) |876| `type` | `'local'` | 必須是 `'local'`(目前僅支持本地 plugins) |

876| `path` | `string` | 插件目錄的絕對或相對路徑 |877| `path` | `string` | 插件目錄的絕對或相對路徑 |

877 878 

878**示例:**879**示例:**


884];885];

885```886```

886 887 

887有關創建和使用插件的完整信息,見 [Plugins](/zh-TW/agent-sdk/plugins)。888有關創建和使用 plugins 的完整信息,見 [Plugins](/zh-TW/agent-sdk/plugins)。

888 889 

889## 消息類型890## 消息類型

890 891 


1596 | ReadMcpResourceInput1597 | ReadMcpResourceInput

1597 | SubscribeMcpResourceInput1598 | SubscribeMcpResourceInput

1598 | SubscribePollingInput1599 | SubscribePollingInput

1600 | TaskCreateInput

1601 | TaskGetInput

1602 | TaskListInput

1599 | TaskStopInput1603 | TaskStopInput

1604 | TaskUpdateInput

1600 | TodoWriteInput1605 | TodoWriteInput

1601 | UnsubscribeMcpResourceInput1606 | UnsubscribeMcpResourceInput

1602 | UnsubscribePollingInput1607 | UnsubscribePollingInput


1850**工具名稱:** `TaskCreate`1855**工具名稱:** `TaskCreate`

1851 1856 

1852```typescript theme={null}1857```typescript theme={null}

1853// 尚未從 SDK 導出;在本地定義。

1854type TaskCreateInput = {1858type TaskCreateInput = {

1855 subject: string;1859 subject: string;

1856 description: string;1860 description: string;


1866**工具名稱:** `TaskUpdate`1870**工具名稱:** `TaskUpdate`

1867 1871 

1868```typescript theme={null}1872```typescript theme={null}

1869// 尚未從 SDK 導出;在本地定義。

1870type TaskUpdateInput = {1873type TaskUpdateInput = {

1871 taskId: string;1874 taskId: string;

1872 status?: "pending" | "in_progress" | "completed" | "deleted";1875 status?: "pending" | "in_progress" | "completed" | "deleted";


1887**工具名稱:** `TaskGet`1890**工具名稱:** `TaskGet`

1888 1891 

1889```typescript theme={null}1892```typescript theme={null}

1890// 尚未從 SDK 導出;在本地定義。

1891type TaskGetInput = {1893type TaskGetInput = {

1892 taskId: string;1894 taskId: string;

1893};1895};


1900**工具名稱:** `TaskList`1902**工具名稱:** `TaskList`

1901 1903 

1902```typescript theme={null}1904```typescript theme={null}

1903// 尚未從 SDK 導出;在本地定義。

1904type TaskListInput = {};1905type TaskListInput = {};

1905```1906```

1906 1907 


1983 | MonitorOutput1984 | MonitorOutput

1984 | NotebookEditOutput1985 | NotebookEditOutput

1985 | ReadMcpResourceOutput1986 | ReadMcpResourceOutput

1987 | TaskCreateOutput

1988 | TaskGetOutput

1989 | TaskListOutput

1986 | TaskStopOutput1990 | TaskStopOutput

1991 | TaskUpdateOutput

1987 | TodoWriteOutput1992 | TodoWriteOutput

1988 | WebFetchOutput1993 | WebFetchOutput

1989 | WebSearchOutput;1994 | WebSearchOutput;


2347**工具名稱:** `TaskCreate`2352**工具名稱:** `TaskCreate`

2348 2353 

2349```typescript theme={null}2354```typescript theme={null}

2350// Not yet exported from the SDK; define locally.

2351type TaskCreateOutput = {2355type TaskCreateOutput = {

2352 task: {2356 task: {

2353 id: string;2357 id: string;


2363**工具名稱:** `TaskUpdate`2367**工具名稱:** `TaskUpdate`

2364 2368 

2365```typescript theme={null}2369```typescript theme={null}

2366// Not yet exported from the SDK; define locally.

2367type TaskUpdateOutput = {2370type TaskUpdateOutput = {

2368 success: boolean;2371 success: boolean;

2369 taskId: string;2372 taskId: string;


2383**工具名稱:** `TaskGet`2386**工具名稱:** `TaskGet`

2384 2387 

2385```typescript theme={null}2388```typescript theme={null}

2386// Not yet exported from the SDK; define locally.

2387type TaskGetOutput = {2389type TaskGetOutput = {

2388 task: {2390 task: {

2389 id: string;2391 id: string;


2403**工具名稱:** `TaskList`2405**工具名稱:** `TaskList`

2404 2406 

2405```typescript theme={null}2407```typescript theme={null}

2406// Not yet exported from the SDK; define locally.

2407type TaskListOutput = {2408type TaskListOutput = {

2408 tasks: Array<{2409 tasks: Array<{

2409 id: string;2410 id: string;

agent-view.md +45 −7

Details

46 </Step>46 </Step>

47 47 

48 <Step title="分派工作階段">48 <Step title="分派工作階段">

49 輸入描述工作的提示並按 `Enter`。新的背景工作階段在該工作上啟動並顯示為一列,顯示它是否正在工作、等待您或已完成。新工作階段使用 agent view 標題中顯示的模型和在該目錄中執行 `claude` 時會獲得的相同[權限模式](#permission-mode-and-settings)。49 輸入描述工作的提示並按 `Enter`。新的背景工作階段在該工作上啟動並顯示為一列,顯示它是否正在工作、等待您或已完成。新工作階段使用 agent view 標題中顯示的模型和在該目錄中執行 `claude` 時會獲得的相同[權限模式](#permission-mode-model-and-effort)。

50 50 

51 您在此輸入的每個提示都會啟動自己的新工作階段。輸入另一個提示並按 `Enter` 會在第一個工作階段旁邊啟動第二個工作階段,而不是向其發送後續訊息。您可以以這種方式並行執行多個工作階段。51 您在此輸入的每個提示都會啟動自己的新工作階段。輸入另一個提示並按 `Enter` 會在第一個工作階段旁邊啟動第二個工作階段,而不是向其發送後續訊息。您可以以這種方式並行執行多個工作階段。

52 52 


74 74 

75該列表涵蓋您啟動的每個背景工作階段,跨越所有您的專案。在一個儲存庫中工作的工作階段和在不同 worktree 中工作的另一個工作階段都會出現在這裡,無論您從哪個目錄開啟 agent view。您在其他終端中開啟的互動工作階段在您 [背景化它們](#from-inside-a-session) 之前不會出現。[Subagents](/zh-TW/sub-agents) 和 [teammates](/zh-TW/agent-teams) 工作階段產生的不會列為單獨的行。75該列表涵蓋您啟動的每個背景工作階段,跨越所有您的專案。在一個儲存庫中工作的工作階段和在不同 worktree 中工作的另一個工作階段都會出現在這裡,無論您從哪個目錄開啟 agent view。您在其他終端中開啟的互動工作階段在您 [背景化它們](#from-inside-a-session) 之前不會出現。[Subagents](/zh-TW/sub-agents) 和 [teammates](/zh-TW/agent-teams) 工作階段產生的不會列為單獨的行。

76 76 

77要將檢視範圍限制在一個專案,使用 `claude agents --cwd <path>` 啟動。只有在該目錄下啟動的工作階段會出現,包括在從它分派的任何 [worktree](/zh-TW/worktrees) 中執行的工作階段。

78 

77```text theme={null}79```text theme={null}

78Pinned80Pinned

79 ✽ clawd walk cycle Write assets/sprites/clawd-walk.png 3m81 ✽ clawd walk cycle Write assets/sprites/clawd-walk.png 3m


285 287 

286### 設定模型288### 設定模型

287 289 

288agent view 標題中顯示的模型名稱是分派預設值。您從輸入啟動的新工作階段使用此模型,這與 [`/model`](/zh-TW/model-config) 在任何工作階段中控制的設定相同。290agent view 標題中顯示的模型名稱是分派預設值。您從輸入啟動的新工作階段使用此模型,這與 [`/model`](/zh-TW/model-config) 在任何工作階段中控制的設定相同。要為整個 agent view 工作階段覆蓋它,請在開啟 agent view 時傳遞 `--model`。請參閱[權限模式、模型和努力](#permission-mode-model-and-effort)。

289 291 

290每個背景工作階段可以在不同的模型上執行。要為一個工作階段覆蓋它:292每個背景工作階段可以在不同的模型上執行。要為一個工作階段覆蓋它:

291 293 


293* 附加到執行中的工作階段並在那裡執行 `/model`。如果工作階段被重新生成,更改會持續。295* 附加到執行中的工作階段並在那裡執行 `/model`。如果工作階段被重新生成,更改會持續。

294* 分派一個 [subagent](/zh-TW/sub-agents),其 frontmatter 設定 `model` 欄位。296* 分派一個 [subagent](/zh-TW/sub-agents),其 frontmatter 設定 `model` 欄位。

295 297 

296### 權限模式和設定298### 權限模式、模型和努力

299 

300背景工作階段從它執行的目錄讀取其 [settings](/zh-TW/settings),就像您在那裡啟動了 `claude` 一樣。

301 

302[permission mode](/zh-TW/permissions) 取決於您如何啟動工作階段。使用 `/bg` 或 `←` 背景化現有工作階段會保持當前權限模式,因此您切換到 `acceptEdits` 或 `auto` 的工作階段在分離後仍保持該模式。從 agent view 輸入分派或從 shell 執行 `claude --bg` 使用該目錄設定中的 `defaultMode`,或分派的 [subagent 的 frontmatter](/zh-TW/sub-agents#supported-frontmatter-fields) 中的 `permissionMode`。

303 

304要為您從 agent view 分派的每個工作階段設定預設值,請在開啟它時傳遞 `--permission-mode`、`--model` 或 `--effort` 中的任何一個:

305 

306```bash theme={null}

307claude agents --permission-mode plan --model opus --effort high

308```

309 

310<Note>

311 傳遞 `--permission-mode`、`--model` 或 `--effort` 到 `claude agents` 需要 Claude Code v2.1.142 或更新版本。較早的版本會以未知選項錯誤拒絕這些標誌。

312</Note>

297 313 

298分派的工作階段從它執行的目錄讀取其 [settings](/zh-TW/settings) 和 [permission mode](/zh-TW/permissions),就像您在那裡啟動了 `claude` 一樣。從 agent view 輸入分派不會傳遞權限模式,因此工作階段使用該目錄設定中的 `defaultMode` 或分派的 [subagent 的 frontmatter](/zh-TW/sub-agents#supported-frontmatter-fields) 中的 `permissionMode`314活動預設值出現在分派輸入下方的頁腳中

299 315 

300要從 shell 設定模式使用 `claude --bg` 傳遞 `--permission-mode`。使用 `bypassPermissions` `auto` 這種方式被拒絕直到您通過以互動方式運行 `claude` 接受該模式,因為這些模式讓您未監視的工作階段無需批准即可行動316沒有這些標誌工作階段使用該目錄設定中的 `defaultMode` 或分派的 [subagent 的 frontmatter](/zh-TW/sub-agents#supported-frontmatter-fields) 中的 `permissionMode`,以及 agent view 標題中顯示的模型

317 

318使用 `bypassPermissions` 或 `auto` 被拒絕,直到您通過以互動方式運行 `claude` 接受該模式,因為這些模式讓您未監視的工作階段無需批准即可行動。無論您是將模式傳遞給 `claude agents` 還是 `claude --bg --permission-mode`,同樣的規則也適用。

319 

320### Settings、plugins 和 MCP servers

321 

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

323 

324| 標誌 | 效果 |

325| :-------------------------------------------------------------------------------------------------- | :--------------------------------------------- |

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

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

328| [`--plugin-dir <path>`](/zh-TW/plugins) | 從本地目錄載入 plugin |

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

330| `--strict-mcp-config` | 僅使用來自 `--mcp-config` 的 MCP servers,忽略其他 MCP 配置 |

331 

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

333 

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

335 

336```bash theme={null}

337claude agents --settings ./ci-settings.json --add-dir ../shared-lib

338```

301 339 

302## 從 shell 管理工作階段340## 從 shell 管理工作階段

303 341 

304每個背景工作階段都有一個短 ID,您可以從 shell 使用。當您使用 `claude --bg` 啟動工作階段時會列印該 ID,每個工作階段的 ID 是其在 `~/.claude/jobs/` 下的目錄名稱。這些命令對於指令碼編寫或當您不想開啟 agent view 時很有用。342每個背景工作階段都有一個短 ID,您可以從 shell 使用。當您使用 `claude --bg` 啟動工作階段時會列印該 ID,每個工作階段的 ID 是其在 `~/.claude/jobs/` 下的目錄名稱。這些命令對於指令碼編寫或當您不想開啟 agent view 時很有用。

305 343 

306| 命令 | 目的 |344| 命令 | 目的 |

307| :--------------------- | :---------------------------------- |345| :--------------------- | :----------------------------------------------- |

308| `claude agents` | 開啟 agent view |346| `claude agents` | 開啟 agent view。傳遞 `--cwd <path>` 以僅列出在該目錄下啟動的工作階段 |

309| `claude attach <id>` | 在此終端中附加到工作階段 |347| `claude attach <id>` | 在此終端中附加到工作階段 |

310| `claude logs <id>` | 列印工作階段的最近輸出 |348| `claude logs <id>` | 列印工作階段的最近輸出 |

311| `claude stop <id>` | 停止工作階段。也接受 `claude kill` |349| `claude stop <id>` | 停止工作階段。也接受 `claude kill` |

Details

170 170 

171Claude Code 支援 AWS SSO 和公司身分提供者的自動認證重新整理。將這些設定新增至您的 Claude Code 設定檔(請參閱[設定](/zh-TW/settings)以了解檔案位置)。171Claude Code 支援 AWS SSO 和公司身分提供者的自動認證重新整理。將這些設定新增至您的 Claude Code 設定檔(請參閱[設定](/zh-TW/settings)以了解檔案位置)。

172 172 

173當 Claude Code 偵測到您的 AWS 認證已過期(基於本機時間戳記或當 Bedrock 傳回認證錯誤時),它將自動執行您設定的 `awsAuthRefresh` 和/或 `awsCredentialExport` 命令以取得新認證,然後重試請求。173這兩個設定有不同的觸發條件:

174 

175* **`awsAuthRefresh`**:僅在 Claude Code 偵測到您的 AWS 認證已過期時執行,基於本機時間戳記或當 Bedrock 傳回認證錯誤時,然後使用重新整理的認證重試請求。

176* **`awsCredentialExport`**:在工作階段開始時和每次認證重新載入時執行,即使您的 AWS 預設認證提供者鏈中的認證仍然有效。當您的 Bedrock 帳戶需要與預設提供者鏈會解析的認證不同的跨帳戶認證時,請使用此選項。

174 177 

175##### 範例設定178##### 範例設定

176 179 


187 190 

188**`awsAuthRefresh`**:用於修改 `.aws` 目錄的命令,例如更新認證、SSO 快取或設定檔。命令的輸出會顯示給使用者,但不支援互動式輸入。這適用於瀏覽器型 SSO 流程,其中 CLI 顯示 URL 或代碼,您在瀏覽器中完成驗證。191**`awsAuthRefresh`**:用於修改 `.aws` 目錄的命令,例如更新認證、SSO 快取或設定檔。命令的輸出會顯示給使用者,但不支援互動式輸入。這適用於瀏覽器型 SSO 流程,其中 CLI 顯示 URL 或代碼,您在瀏覽器中完成驗證。

189 192 

190**`awsCredentialExport`**:僅在您無法修改 `.aws` 且必須直接傳回認證時使用。輸出會被無聲地擷取,不會顯示給使用者。命令必須以此格式輸出 JSON:193**`awsCredentialExport`**:僅在您無法修改 `.aws` 且必須直接傳回認證時使用。此命令在每次需要重新整理認證時執行,而不僅在認證過期時執行。輸出會被無聲地擷取,不會顯示給使用者。命令必須以此格式輸出 JSON:

191 194 

192```json theme={null}195```json theme={null}

193{196{

best-practices.md +19 −25

Details

52 將研究和規劃與實施分開,以避免解決錯誤的問題。52 將研究和規劃與實施分開,以避免解決錯誤的問題。

53</Tip>53</Tip>

54 54 

55讓 Claude 直接跳到編碼可能會產生解決錯誤問題的代碼。使用 [Plan Mode](/zh-TW/common-workflows#use-plan-mode-for-safe-code-analysis) 將探索與執行分開。55讓 Claude 直接跳到編碼可能會產生解決錯誤問題的代碼。使用 [Plan Mode](/zh-TW/permission-modes#analyze-before-you-edit-with-plan-mode) 將探索與執行分開。

56 56 

57推薦的工作流程有四個階段:57推薦的工作流程有四個階段:

58 58 


60 <Step title="探索">60 <Step title="探索">

61 進入 Plan Mode。Claude 讀取文件並回答問題,不進行任何更改。61 進入 Plan Mode。Claude 讀取文件並回答問題,不進行任何更改。

62 62 

63 ```txt claude (Plan Mode) theme={null}63 ```txt claude (plan mode) theme={null}

64 read /src/auth and understand how we handle sessions and login.64 read /src/auth and understand how we handle sessions and login.

65 also look at how we manage environment variables for secrets.65 also look at how we manage environment variables for secrets.

66 ```66 ```


69 <Step title="規劃">69 <Step title="規劃">

70 要求 Claude 創建詳細的實施計劃。70 要求 Claude 創建詳細的實施計劃。

71 71 

72 ```txt claude (Plan Mode) theme={null}72 ```txt claude (plan mode) theme={null}

73 I want to add Google OAuth. What files need to change?73 I want to add Google OAuth. What files need to change?

74 What's the session flow? Create a plan.74 What's the session flow? Create a plan.

75 ```75 ```


78 </Step>78 </Step>

79 79 

80 <Step title="實施">80 <Step title="實施">

81 切換回正常模式,讓 Claude 編碼,根據其計劃進行驗證。81 切換出 Plan Mode,讓 Claude 編碼,根據其計劃進行驗證。

82 82 

83 ```txt claude (Normal Mode) theme={null}83 ```txt claude (default mode) theme={null}

84 implement the OAuth flow from your plan. write tests for the84 implement the OAuth flow from your plan. write tests for the

85 callback handler, run the test suite and fix any failures.85 callback handler, run the test suite and fix any failures.

86 ```86 ```


89 <Step title="提交">89 <Step title="提交">

90 要求 Claude 使用描述性消息進行提交並創建 PR。90 要求 Claude 使用描述性消息進行提交並創建 PR。

91 91 

92 ```txt claude (Normal Mode) theme={null}92 ```txt claude (default mode) theme={null}

93 commit with a descriptive message and open a PR93 commit with a descriptive message and open a PR

94 ```94 ```

95 </Step>95 </Step>


396* 在任務之間頻繁使用 `/clear` 以完全重置 context window396* 在任務之間頻繁使用 `/clear` 以完全重置 context window

397* 當自動壓縮觸發時,Claude 總結最重要的內容,包括代碼模式、文件狀態和關鍵決策397* 當自動壓縮觸發時,Claude 總結最重要的內容,包括代碼模式、文件狀態和關鍵決策

398* 為了更好地控制,運行 `/compact <instructions>`,如 `/compact Focus on the API changes`398* 為了更好地控制,運行 `/compact <instructions>`,如 `/compact Focus on the API changes`

399* 要僅壓縮對話的一部分,使用 `Esc + Esc` 或 `/rewind`,選擇消息檢查點,然後選擇 **從此處進行總結**。這會壓縮該點之後的消息,同時保持早期 context 完整。399* 要僅壓縮對話的一部分,使用 `Esc + Esc` 或 `/rewind`,選擇消息檢查點,然後選擇 **從此處進行總結** 或 **總結到此處**第一個會壓縮該點之後的消息,同時保持早期 context 完整;第二個會壓縮早期消息,同時保持最近的消息完整請參閱 [恢復與總結](/zh-TW/checkpointing#restore-vs-summarize)。

400* 在 CLAUDE.md 中使用像 `「壓縮時,始終保留完整的修改文件列表和任何測試命令」` 這樣的指令自定義壓縮行為,以確保關鍵 context 在總結中存活400* 在 CLAUDE.md 中使用像 `「壓縮時,始終保留完整的修改文件列表和任何測試命令」` 這樣的指令自定義壓縮行為,以確保關鍵 context 在總結中存活

401* 對於不需要留在 context 中的快速問題,使用 [`/btw`](/zh-TW/interactive-mode#side-questions-with-btw)。答案出現在可關閉的覆蓋層中,永遠不會進入對話歷史記錄,所以您可以檢查詳細信息而不會增加 context。401* 對於不需要留在 context 中的快速問題,使用 [`/btw`](/zh-TW/interactive-mode#side-questions-with-%2Fbtw)。答案出現在可關閉的覆蓋層中,永遠不會進入對話歷史記錄,所以您可以檢查詳細信息而不會增加 context。

402 402 

403### 使用 subagents 進行調查403### 使用 subagents 進行調查

404 404 


424### 使用檢查點倒帶424### 使用檢查點倒帶

425 425 

426<Tip>426<Tip>

427 Claude 進行的每個操作都會創建一個檢查點。您可以將對話、代碼或兩者恢復到任何之前的檢查點。427 您發送的每個提示都會創建一個檢查點。您可以將對話、代碼或兩者恢復到任何之前的檢查點。

428</Tip>428</Tip>

429 429 

430Claude 在更改前自動檢查點。雙擊 `Escape` 或運行 `/rewind` 打開倒帶菜單。您可以僅恢復對話、僅恢復代碼、恢復兩者或從選定的消息進行總結。有關詳細信息,請參閱 [Checkpointing](/zh-TW/checkpointing)。430Claude 在每次更改前自動快照文件,所以檢查點可以將它們恢復。雙擊 `Escape` 或運行 `/rewind` 打開倒帶菜單。您可以僅恢復對話、僅恢復代碼、恢復兩者或從選定的消息進行總結。有關詳細信息,請參閱 [Checkpointing](/zh-TW/checkpointing)。

431 431 

432與其仔細規劃每一步,不如告訴 Claude 嘗試一些冒險的事情。如果不起作用,倒帶並嘗試不同的方法。檢查點在會話之間持續,所以您可以關閉終端並稍後仍然倒帶。432與其仔細規劃每一步,不如告訴 Claude 嘗試一些冒險的事情。如果不起作用,倒帶並嘗試不同的方法。檢查點在會話之間持續,所以您可以關閉終端並稍後仍然倒帶。

433 433 


438### 恢復對話438### 恢復對話

439 439 

440<Tip>440<Tip>

441 運行 `claude --continue` 以從中斷的地方繼續或 `--resume` 以從最近的會話中選擇441 使用 `/rename` 給會話命名並像對待分支一樣對待它們:每個工作流都有自己的持久 context

442</Tip>442</Tip>

443 443 

444Claude Code 在本地保存對話。當任務跨越多個會話時,您不必重新解釋 context444Claude Code 在本地保存對話,所以當任務跨越多個會話時,您不必重新解釋 context。運行 `claude --continue` 以選擇最近的會話,或 `claude --resume` 以從列表中選擇。給會話起描述性名稱,如 `oauth-migration`,以便您稍後可以找到它們。有關完整的恢復、分支和命名控制集,請參閱 [管理會話](/zh-TW/sessions)。

445 

446```bash theme={null}

447claude --continue # Resume the most recent conversation

448claude --resume # Select from recent conversations

449```

450 

451使用 `/rename` 給會話起描述性名稱,如 `「oauth-migration」` 或 `「debugging-memory-leak」`,以便您稍後可以找到它們。像對待分支一樣對待會話:不同的工作流可以有單獨的、持久的 contexts。

452 445 

453***446***

454 447 


464 在 CI、pre-commit hooks 或腳本中使用 `claude -p "prompt"`。添加 `--output-format stream-json` 以獲得流式 JSON 輸出。457 在 CI、pre-commit hooks 或腳本中使用 `claude -p "prompt"`。添加 `--output-format stream-json` 以獲得流式 JSON 輸出。

465</Tip>458</Tip>

466 459 

467使用 `claude -p "your prompt"`,您可以非交互地運行 Claude,不需要會話。非交互模式是您將 Claude 集成到 CI 管道、pre-commit hooks 或任何自動化工作流中的方式。輸出格式讓您以編程方式解析結果:純文本、JSON 或流式 JSON。460使用 `claude -p "your prompt"`,您可以非交互地運行 Claude,不需要會話。[非交互模式](/zh-TW/headless)是您將 Claude 集成到 CI 管道、pre-commit hooks 或任何自動化工作流中的方式。輸出格式讓您以編程方式解析結果:純文本、JSON 或流式 JSON。

468 461 

469```bash theme={null}462```bash theme={null}

470# One-off queries463# One-off queries


483 並行運行多個 Claude 會話以加快開發、運行隔離的實驗或啟動複雜的工作流。476 並行運行多個 Claude 會話以加快開發、運行隔離的實驗或啟動複雜的工作流。

484</Tip>477</Tip>

485 478 

486有三種主要方式來運行平行會話479選擇適合您想要自己進行多少協調的平行方法

487 480 

488* [Claude Code 桌面應用](/zh-TW/desktop#work-in-parallel-with-sessions):以視覺方式管理多個本地會話。每個會話都有自己的隔離 worktree。481* [Worktrees](/zh-TW/worktrees):在隔離的 git 檢出中運行單獨的 CLI 會話,以便編輯不會衝突

489* [Claude Code 在網絡上](/zh-TW/claude-code-on-the-web):在 Anthropic 的安全雲基礎設施上在隔離的 VM 中運行。482* [桌面應用](/zh-TW/desktop#work-in-parallel-with-sessions):以視覺方式管理多個本地會話,每個會話都在自己的 worktree

490* [Agent teams](/zh-TW/agent-teams):多個會話的自動協調,具有共享任務、消息和團隊領導。483* [Claude Code 在網絡上](/zh-TW/claude-code-on-the-web):在 Anthropic 管理的雲基礎設施中在隔離的 VM 中運行會話

484* [Agent teams](/zh-TW/agent-teams):多個會話的自動協調,具有共享任務、消息和團隊領導

491 485 

492除了並行化工作外,多個會話還支持質量聚焦的工作流。新鮮的 context 改進代碼審查,因為 Claude 不會偏向於它剛剛編寫的代碼。486除了並行化工作外,多個會話還支持質量聚焦的工作流。新鮮的 context 改進代碼審查,因為 Claude 不會偏向於它剛剛編寫的代碼。

493 487 

Details

30* **從此處總結**:將此點之後的對話壓縮為摘要,釋放 context window 空間30* **從此處總結**:將此點之後的對話壓縮為摘要,釋放 context window 空間

31* **算了**:返回訊息清單而不進行任何變更31* **算了**:返回訊息清單而不進行任何變更

32 32 

33恢復對話或總結後,所選訊息的原始提示會恢復到輸入欄位中,以便您可以重新傳送或編輯它。33恢復對話或選擇「從此處總結」後,所選訊息的原始提示會恢復到輸入欄位中,以便您可以重新傳送或編輯它。

34 

35選擇「算了」會讓您留在訊息清單,不進行任何變更。

34 36 

35#### 恢復與總結37#### 恢復與總結

36 38 

37三個恢復選項會回復狀態:它們撤銷程式碼變更、對話歷史或兩者。「從此處總結」的運作方式不同39恢復選項會回復狀態:它們撤銷程式碼變更、對話歷史或兩者。總結選項會將對話的一部分壓縮為 AI 生成的摘要,而不改變磁碟上的檔案

38 40 

39* 所選訊息之前的訊息保持完整41* **從此處總結**:所選訊息之前的訊息保持完整。所選訊息及其後的所有訊息都被替換為摘要。使用此選項可以捨棄旁支討論,同時保持早期上下文的完整詳細資訊。

40* 所選訊息及其後的所有訊息都被替換為緊湊的 AI 生成摘要42* **算了**:所選訊息之前的訊息被替換為摘要。所選訊息及其後的所有訊息保持完整,您保持在對話末尾。使用此選項可以壓縮早期設定討論,同時保持最近工作的完整詳細資訊。

41* 磁碟上的檔案不會改變

42* 原始訊息保存在會話記錄中,因此 Claude 可以在需要時參考詳細資訊

43 43 

44這類似於 `/compact`,但更有針對性:您不是總結整個對話,而是保持早期上下文的完整詳細資訊,只壓縮佔用空間的部分。您可以輸入可選指示來引導摘要的重點44在這兩種情況下,原始訊息都保存在會話記錄中,因此 Claude 可以在需要時參考詳細資訊。您可以輸入可選指示來引導摘要的重點。這類似於 `/compact`,但更有針對性:您不是總結整個對話,而是選擇所選訊息的哪一側要壓縮

45 45 

46<Note>46<Note>

47 總結讓您保持在同一會話中並壓縮上下文。如果您想嘗試不同的方法,同時保持原始會話完整,請改用 [fork](/zh-TW/how-claude-code-works#resume-or-fork-sessions)(`claude --continue --fork-session`)。47 總結讓您保持在同一會話中並壓縮上下文。如果您想嘗試不同的方法,同時保持原始會話完整,請改用 [fork](/zh-TW/sessions#branch-a-session)(`claude --continue --fork-session`)。

48</Note>48</Note>

49 49 

50## 常見使用案例50## 常見使用案例


85## 另請參閱85## 另請參閱

86 86 

87* [Interactive mode](/zh-TW/interactive-mode) - 快捷鍵和會話控制87* [Interactive mode](/zh-TW/interactive-mode) - 快捷鍵和會話控制

88* [Built-in commands](/zh-TW/commands) - 使用 `/rewind` 存取 checkpoints88* [Commands](/zh-TW/commands) - 使用 `/rewind` 存取 checkpoints

89* [CLI reference](/zh-TW/cli-reference) - 命令列選項89* [CLI reference](/zh-TW/cli-reference) - 命令列選項

Details

782 782 

783### 遠端控制工作階段已過期或存取被拒絕783### 遠端控制工作階段已過期或存取被拒絕

784 784 

785`--teleport` 通過與雲端工作階段使用的相同遠端控制工作階段基礎設施連接,因此驗證和工作階段過期錯誤會以遠端控制措辭出現。您可能會看到 `Remote Control session has expired` 或 `Access denied`。連接令牌是短期的,並限定於您的帳戶。785`--teleport` 通過與雲端工作階段使用的相同遠端控制工作階段基礎設施連接,因此驗證和工作階段過期錯誤會以遠端控制措辭出現。您可能會看到 `Remote Control session expired` 或 `Access denied`。連接令牌是短期的,並限定於您的帳戶。

786 786 

787* 在本機執行 `/login` 以刷新您的認證,然後重新連接787* 在本機執行 `/login` 以刷新您的認證,然後重新連接

788* 確認您登入到擁有工作階段的相同帳戶788* 確認您登入到擁有工作階段的相同帳戶

Details

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

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

26| `claude auth status` | 以 JSON 格式顯示驗證狀態。使用 `--text` 以人類可讀的格式輸出。如果已登入則以代碼 0 退出,如果未登入則以代碼 1 退出 | `claude auth status` |26| `claude auth status` | 以 JSON 格式顯示驗證狀態。使用 `--text` 以人類可讀的格式輸出。如果已登入則以代碼 0 退出,如果未登入則以代碼 1 退出 | `claude auth status` |

27| `claude agents` | 開啟 [agent view](/zh-TW/agent-view) 以監控和分派平行背景工作階段。當輸出被管道化時,改為列出已設定的 [subagents](/zh-TW/sub-agents) | `claude agents` |27| `claude agents` | 開啟 [agent view](/zh-TW/agent-view) 以監控和分派平行背景工作階段。使用 `--cwd <path>` 僅顯示在該目錄下啟動的工作階段 | `claude agents` |

28| `claude attach <id>` | 在此終端中附加到 [background session](/zh-TW/agent-view#manage-sessions-from-the-shell) | `claude attach 7c5dcf5d` |28| `claude attach <id>` | 在此終端中附加到 [background session](/zh-TW/agent-view#manage-sessions-from-the-shell) | `claude attach 7c5dcf5d` |

29| `claude auto-mode defaults` | 以 JSON 格式列印內建的 [auto mode](/zh-TW/permission-modes#eliminate-prompts-with-auto-mode) 分類器規則。使用 `claude auto-mode config` 查看您的有效設定及套用的設定 | `claude auto-mode defaults > rules.json` |29| `claude auto-mode defaults` | 以 JSON 格式列印內建的 [auto mode](/zh-TW/permission-modes#eliminate-prompts-with-auto-mode) 分類器規則。使用 `claude auto-mode config` 查看您的有效設定及套用的設定 | `claude auto-mode defaults > rules.json` |

30| `claude logs <id>` | 從 [background session](/zh-TW/agent-view#manage-sessions-from-the-shell) 列印最近的輸出 | `claude logs 7c5dcf5d` |30| `claude logs <id>` | 從 [background session](/zh-TW/agent-view#manage-sessions-from-the-shell) 列印最近的輸出 | `claude logs 7c5dcf5d` |

commands.md +1 −1

Details

26 26 

27**在工作階段之間。** `/clear` 在保持專案記憶的同時開始新工作的新鮮開始。`/resume` 和 `/branch` 讓您返回或分叉較早的對話。`/teleport` 將網頁工作階段拉入此終端機,`/remote-control` 讓您從另一個裝置繼續此本地工作階段。27**在工作階段之間。** `/clear` 在保持專案記憶的同時開始新工作的新鮮開始。`/resume` 和 `/branch` 讓您返回或分叉較早的對話。`/teleport` 將網頁工作階段拉入此終端機,`/remote-control` 讓您從另一個裝置繼續此本地工作階段。

28 28 

29**當出現問題時。** `/rewind` 將程式碼和對話倒帶到 checkpoint。`/doctor` 和 `/debug` 診斷安裝和執行時問題,`/feedback` 報告附加工作階段上下文的錯誤。29**當出現問題時。** `/rewind` 將程式碼和對話倒帶到 checkpoint,或總結對話的一部分。`/doctor` 和 `/debug` 診斷安裝和執行時問題,`/feedback` 報告附加工作階段上下文的錯誤。

30 30 

31## 所有命令31## 所有命令

32 32 

desktop.md +5 −2

Details

148 148 

149### 在終端機中執行命令149### 在終端機中執行命令

150 150 

151整合終端機讓您在會話旁執行命令,而無需切換到另一個應用程式。從 **Views** 選單開啟它,或在 macOS 或 Windows 上按 **Ctrl+\`**。終端機在您會話的工作目錄中開啟,並與 Claude 共用相同的環境,因此 `npm test` 或 `git status` 等命令會看到 Claude 正在編輯的相同檔案。終端機僅在本機會話中可用。151整合終端機讓您在會話旁執行命令,而無需切換到另一個應用程式。從 **Views** 選單開啟它,或在 macOS 或 Windows 上按 **Ctrl+\`**。終端機在您會話的工作目錄中開啟,並與 Claude 共用相同的環境,因此 `npm test` 或 `git status` 等命令會看到 Claude 正在編輯的相同檔案。若要開啟第二個終端機標籤,請點擊終端機窗格標題中的 **+** 或右鍵點擊聊天中的資料夾以選擇 **Open in terminal**。終端機僅在本機會話中可用。

152 152 

153### 開啟和編輯檔案153### 開啟和編輯檔案

154 154 


296 296 

297使用側邊欄頂部的控制項按狀態、專案或環境篩選會話,並按專案分組會話。若要重新命名會話,請點擊活動會話頂部工具列中的會話標題。若要檢查上下文使用情況,請參閱[檢查使用情況](#check-usage)。當上下文填滿時,Claude 會自動總結對話並繼續工作。您也可以輸入 `/compact` 來更早觸發總結並釋放上下文空間。有關壓縮如何運作的詳細資訊,請參閱[上下文視窗](/zh-TW/how-claude-code-works#the-context-window)。297使用側邊欄頂部的控制項按狀態、專案或環境篩選會話,並按專案分組會話。若要重新命名會話,請點擊活動會話頂部工具列中的會話標題。若要檢查上下文使用情況,請參閱[檢查使用情況](#check-usage)。當上下文填滿時,Claude 會自動總結對話並繼續工作。您也可以輸入 `/compact` 來更早觸發總結並釋放上下文空間。有關壓縮如何運作的詳細資訊,請參閱[上下文視窗](/zh-TW/how-claude-code-works#the-context-window)。

298 298 

299桌面應用程式會在 Code 會話完成任務且您目前未檢視該會話時傳送作業系統通知。

300 

299### 在不偏離會話的情況下詢問側邊問題301### 在不偏離會話的情況下詢問側邊問題

300 302 

301側邊聊天讓您詢問 Claude 一個使用您會話上下文的問題,但不會將任何內容新增回主對話。當您想要理解一段程式碼、檢查假設或探索想法而不引導會話偏離時,請使用它。303側邊聊天讓您詢問 Claude 一個使用您會話上下文的問題,但不會將任何內容新增回主對話。當您想要理解一段程式碼、檢查假設或探索想法而不引導會話偏離時,請使用它。


598受管設定會覆蓋專案和使用者設定,並在 Desktop 產生 CLI 會話時套用。您可以在您組織的[受管設定](/zh-TW/settings#settings-precedence)檔案中設定這些金鑰,或透過管理員主控台遠端推送它們。600受管設定會覆蓋專案和使用者設定,並在 Desktop 產生 CLI 會話時套用。您可以在您組織的[受管設定](/zh-TW/settings#settings-precedence)檔案中設定這些金鑰,或透過管理員主控台遠端推送它們。

599 601 

600| 金鑰 | 描述 |602| 金鑰 | 描述 |

601| ------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------- |603| ------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------- |

602| `permissions.disableBypassPermissionsMode` | 設定為 `"disable"` 以防止使用者啟用略過權限模式。 |604| `permissions.disableBypassPermissionsMode` | 設定為 `"disable"` 以防止使用者啟用略過權限模式。 |

603| `disableAutoMode` | 設定為 `"disable"` 以防止使用者啟用 [Auto](/zh-TW/permission-modes#eliminate-prompts-with-auto-mode) 模式。從模式選擇器中移除 Auto。也在 `permissions` 下接受。 |605| `disableAutoMode` | 設定為 `"disable"` 以防止使用者啟用 [Auto](/zh-TW/permission-modes#eliminate-prompts-with-auto-mode) 模式。從模式選擇器中移除 Auto。也在 `permissions` 下接受。 |

604| `autoMode` | 自訂 auto 模式分類器在您的組織中信任和阻止的內容。請參閱[配置 auto 模式](/zh-TW/auto-mode-config)。 |606| `autoMode` | 自訂 auto 模式分類器在您的組織中信任和阻止的內容。請參閱[配置 auto 模式](/zh-TW/auto-mode-config)。 |

605| `sshConfigs` | 預先配置[SSH 連線](#pre-configure-ssh-connections-for-your-team),在環境下拉式選單中顯示。使用者無法編輯或刪除受管連線。 |607| `sshConfigs` | 預先配置[SSH 連線](#pre-configure-ssh-connections-for-your-team),在環境下拉式選單中顯示。使用者無法編輯或刪除受管連線。 |

606| `sshHostAllowlist` | 限制 [SSH 會話](#restrict-which-ssh-hosts-users-can-connect-to)連線到已解析主機名稱符合這些模式之一的主機。空陣列會停用 SSH 會話。僅從受管設定讀取。 |608| `sshHostAllowlist` | 限制 [SSH 會話](#restrict-which-ssh-hosts-users-can-connect-to)連線到已解析主機名稱符合這些模式之一的主機。空陣列會停用 SSH 會話。僅從受管設定讀取。 |

609| `managedMcpServers` | 將 MCP 伺服器配置推送到第三方部署中的所有使用者。每個項目指定 `"http"`、`"sse"` 或 `"stdio"` 的傳輸、連線詳細資訊,以及可選的 `toolPolicy` 對應,限制該伺服器中使用者可以叫用的工具。僅在第三方 (3P) Desktop 部署中可用。 |

607 610 

608部署到每台機器上磁碟的受管設定檔案適用於 Desktop 會話。透過管理員主控台推送的遠端受管設定目前僅適用於 CLI 和 IDE 會話,因此對於 Desktop 部署,請透過 MDM 分發檔案或使用上面的[管理員主控台控制](#admin-console-controls)。611部署到每台機器上磁碟的受管設定檔案適用於 Desktop 會話。透過管理員主控台推送的遠端受管設定目前僅適用於 CLI 和 IDE 會話,因此對於 Desktop 部署,請透過 MDM 分發檔案或使用上面的[管理員主控台控制](#admin-console-controls)。

609 612 

desktop-scheduled-tasks.md +106 −0 created

Details

1> ## Documentation Index

2> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt

3> Use this file to discover all available pages before exploring further.

4 

5# 在 Claude Code Desktop 中排程定期任務

6 

7> 在 Claude Code Desktop 中設定排程任務,以定期自動執行 Claude 進行每日程式碼審查、相依性稽核或早晨簡報。

8 

9排程任務會在您選擇的時間和頻率自動啟動新的工作階段。使用它們進行定期工作,例如每日程式碼審查、相依性更新檢查,或從您的日曆和收件匣提取資訊的早晨簡報。

10 

11Desktop 應用程式的 **Routines** 頁面可讓您建立本機排程任務和遠端 [routines](/zh-TW/routines)。本機任務在您的機器上執行,可直接存取您的檔案和工具,但只有在應用程式開啟且您的電腦處於喚醒狀態時才會觸發。遠端 routine 在 Anthropic 管理的雲端基礎設施上執行,即使您的電腦關閉也能執行,並且也可以透過 API 呼叫或 GitHub 事件觸發。本頁涵蓋本機排程任務;如需遠端 routine 及其觸發選項,請參閱 [Routines](/zh-TW/routines)。

12 

13## 比較排程選項

14 

15Claude Code offers three ways to schedule recurring or one-off work:

16 

17| | [Cloud](/en/routines) | [Desktop](/en/desktop-scheduled-tasks) | [`/loop`](/en/scheduled-tasks) |

18| :------------------------- | :----------------------------- | :------------------------------------- | :---------------------------------- |

19| Runs on | Anthropic cloud | Your machine | Your machine |

20| Requires machine on | No | Yes | Yes |

21| Requires open session | No | No | Yes |

22| Persistent across restarts | Yes | Yes | Restored on `--resume` if unexpired |

23| Access to local files | No (fresh clone) | Yes | Yes |

24| MCP servers | Connectors configured per task | [Config files](/en/mcp) and connectors | Inherits from session |

25| Permission prompts | No (runs autonomously) | Configurable per task | Inherits from session |

26| Customizable schedule | Via `/schedule` in the CLI | Yes | Yes |

27| Minimum interval | 1 hour | 1 minute | 1 minute |

28 

29<Tip>

30 Use **cloud tasks** for work that should run reliably without your machine. Use **Desktop tasks** when you need access to local files and tools. Use **`/loop`** for quick polling during a session.

31</Tip>

32 

33<Note>

34 根據預設,排程任務會針對您的工作目錄的任何狀態執行,包括未提交的變更。在建立任務時啟用 worktree 切換,為每次執行提供其自己的隔離 Git worktree,與 [parallel sessions](/zh-TW/desktop#work-in-parallel-with-sessions) 的工作方式相同。

35</Note>

36 

37## 建立排程任務

38 

39按一下側邊欄中的 **Routines**,然後按一下 **New routine** 並選擇 **Local**。設定這些欄位:

40 

41| 欄位 | 說明 |

42| ------------ | ----------------------------------------------------------------------------------------------------------- |

43| Name | 任務的識別碼。轉換為小寫 kebab-case 並用作磁碟上的資料夾名稱。在您的任務中必須是唯一的。 |

44| Description | 在任務清單中顯示的簡短摘要。 |

45| Instructions | Claude 執行任務時應執行的操作。以您在提示框中撰寫任何訊息的相同方式撰寫此項。instructions 輸入包括權限模式和模型的選擇器,在其下方您可以選擇工作資料夾以及是否在隔離的 worktree 中執行。 |

46| Schedule | 任務執行的頻率。請參閱下方的 [schedule options](#schedule-options)。 |

47 

48您必須先有一個資料夾才能儲存任務。如果您尚未信任該資料夾,Desktop 會在儲存前提示您信任它。

49 

50您也可以透過在任何工作階段中描述您想要的內容來建立任務。例如,「設定每天早上 9 點執行的每日程式碼審查」會建立定期任務,而「提醒我明天下午 3 點檢查部署」會建立一次性任務,在觸發後會自動停用。

51 

52## 排程選項

53 

54從 Schedule 控制項中選擇預設值:

55 

56* **Manual**:無排程,只有在您按一下 **Run now** 時才執行。適用於儲存您按需觸發的提示

57* **Hourly**:每小時執行一次

58* **Daily**:顯示時間選擇器,預設為本機時間上午 9:00

59* **Weekdays**:與 Daily 相同,但跳過星期六和星期日

60* **Weekly**:顯示時間選擇器和日期選擇器

61 

62對於選擇器不提供的間隔,例如每 15 分鐘、每月的第一天或在特定未來時間的單次執行,請在任何 Desktop 工作階段中詢問 Claude 以設定排程。使用純文字;例如,「排程任務每 6 小時執行一次所有測試」。

63 

64## 排程任務如何執行

65 

66排程任務在您的機器上執行。Desktop 在應用程式開啟時每分鐘檢查一次排程,並在任務到期時啟動新的工作階段,獨立於您開啟的任何手動工作階段。每個任務在排程時間後會有幾分鐘的小延遲,以錯開 API 流量。延遲是確定性的:同一任務始終在相同的偏移量處啟動。

67 

68當任務觸發時,您會收到桌面通知,新的工作階段會在側邊欄的 **Scheduled** 部分下出現。開啟它以查看 Claude 執行的操作、審查變更或回應權限提示。工作階段的工作方式與任何其他工作階段相同:Claude 可以編輯檔案、執行命令、建立提交和開啟提取請求。

69 

70任務只有在 desktop 應用程式執行且您的電腦處於喚醒狀態時才會執行。如果您的電腦在排程時間內進入睡眠狀態,該執行會被跳過。若要防止閒置睡眠,請在 Settings 中的 **Desktop app → General** 下啟用 **Keep computer awake**。關閉筆記型電腦蓋仍會使其進入睡眠狀態。對於需要在電腦關閉時執行或應該透過 API 呼叫或 GitHub 事件觸發的任務,請改為建立遠端 [routine](/zh-TW/routines)。

71 

72## 錯過的執行

73 

74當應用程式啟動或您的電腦喚醒時,Desktop 會檢查每個任務是否在過去七天內錯過了任何執行。如果有,Desktop 會為最近錯過的時間啟動恰好一次的追趕執行,並丟棄任何較舊的執行。錯過六天的每日任務在喚醒時執行一次。Desktop 會在追趕執行啟動時顯示通知。

75 

76在撰寫提示時請記住這一點。排程在上午 9 點的任務可能在晚上 11 點執行,如果您的電腦整天都在睡眠狀態。如果時間很重要,請在提示本身中新增護欄,例如:「只審查今天的提交。如果已經過下午 5 點,請跳過審查,只發佈錯過內容的摘要。」

77 

78## 排程任務的權限

79 

80每個任務都有其自己的權限模式,您在建立或編輯任務時設定。來自 `~/.claude/settings.json` 的允許規則也適用於排程任務工作階段。如果任務在 Ask 模式下執行,並且需要執行它沒有權限的工具,執行會停滯,直到您批准它。工作階段保持在側邊欄中開啟,以便您稍後可以回答。

81 

82為了避免停滯,在建立任務後按一下 **Run now**,監視權限提示,並為每個提示選擇「always allow」。該任務的未來執行會自動批准相同的工具,無需提示。您可以從任務的詳細資料頁面審查和撤銷這些批准。

83 

84## 管理排程任務

85 

86按一下 **Routines** 清單中的任務以開啟其詳細資料頁面。從這裡您可以:

87 

88* **Run now**:立即啟動任務,無需等待下一個排程時間

89* **Status**:在 Active 和 Paused 之間切換,以暫停或繼續排程執行,無需刪除任務

90* **Edit**:變更 instructions、排程、資料夾或其他設定

91* **Review history**:查看每次過去的執行,包括跳過的執行。將滑鼠懸停在跳過的項目上以查看原因:您的電腦在睡眠狀態、前一次執行仍在進行中,或其他排程任務已在執行。按一下 **Show more** 以載入較舊的項目。

92* **Review allowed permissions**:從 **Always allowed** 面板查看和撤銷此任務的已儲存工具批准

93* **Delete**:移除任務並封存它建立的所有工作階段。確認對話方塊中會出現 **Also delete files on disk** 核取方塊;勾選它也會移除任務的 `SKILL.md` 檔案和 `~/.claude/scheduled-tasks/` 中的相關資料。

94 

95您也可以透過在任何 Desktop 工作階段中詢問 Claude 來列出、建立、編輯和暫停任務。例如,「暫停我的 dependency-audit 任務」或「顯示我的排程任務」。若要刪除任務,請使用其詳細資料頁面上的 **Delete** 按鈕。

96 

97排程任務也可以使用 `update_scheduled_task` MCP 工具在執行中的工作階段內修改其自己的排程或提示。這可讓任務根據其發現重新排程自己,例如,當它偵測到已建立發行分支時,重新排程程式碼審查以更早執行。

98 

99若要在磁碟上編輯任務的提示,請開啟 `~/.claude/scheduled-tasks/<task-name>/SKILL.md`(如果設定了 [`CLAUDE_CONFIG_DIR`](/zh-TW/env-vars),則在其下)。該檔案使用 YAML frontmatter 作為 `name` 和 `description`,提示作為主體。變更在下一次執行時生效。Schedule、資料夾、模型和啟用狀態不在此檔案中:透過 Edit 表單變更它們或詢問 Claude。

100 

101## 相關資源

102 

103* [Routines](/zh-TW/routines):在 Anthropic 管理的基礎設施上按排程、透過 API 呼叫或回應 GitHub 事件執行任務,即使您的電腦關閉也能執行

104* [Run prompts on a schedule](/zh-TW/scheduled-tasks):在 CLI 中使用 `/loop` 的工作階段範圍排程

105* [Claude Code GitHub Actions](/zh-TW/github-actions):在 CI 中按排程執行 Claude,而不是在您的機器上執行

106* [Use Claude Code Desktop](/zh-TW/desktop):完整的 Desktop 應用程式指南

env-vars.md +3 −1

Details

45| `ANTHROPIC_SMALL_FAST_MODEL_AWS_REGION` | 使用 Bedrock 或 Bedrock Mantle 時覆蓋 Haiku 級別模型的 AWS 區域 |45| `ANTHROPIC_SMALL_FAST_MODEL_AWS_REGION` | 使用 Bedrock 或 Bedrock Mantle 時覆蓋 Haiku 級別模型的 AWS 區域 |

46| `ANTHROPIC_VERTEX_BASE_URL` | 覆蓋 Vertex AI 端點 URL。用於自訂 Vertex 端點或透過 [LLM gateway](/zh-TW/llm-gateway) 路由。請參閱 [Google Vertex AI](/zh-TW/google-vertex-ai) |46| `ANTHROPIC_VERTEX_BASE_URL` | 覆蓋 Vertex AI 端點 URL。用於自訂 Vertex 端點或透過 [LLM gateway](/zh-TW/llm-gateway) 路由。請參閱 [Google Vertex AI](/zh-TW/google-vertex-ai) |

47| `ANTHROPIC_VERTEX_PROJECT_ID` | Vertex AI 的 GCP 專案 ID。被 `GCLOUD_PROJECT`、`GOOGLE_CLOUD_PROJECT` 或您的 `GOOGLE_APPLICATION_CREDENTIALS` 認證檔案中的專案覆蓋。請參閱 [Google Vertex AI](/zh-TW/google-vertex-ai) |47| `ANTHROPIC_VERTEX_PROJECT_ID` | Vertex AI 的 GCP 專案 ID。被 `GCLOUD_PROJECT`、`GOOGLE_CLOUD_PROJECT` 或您的 `GOOGLE_APPLICATION_CREDENTIALS` 認證檔案中的專案覆蓋。請參閱 [Google Vertex AI](/zh-TW/google-vertex-ai) |

48| `ANTHROPIC_WORKSPACE_ID` | [workload identity federation](https://platform.claude.com/docs/en/manage-claude/workload-identity-federation) 的工作區 ID。當您的聯盟規則的範圍涵蓋多個工作區時設定此項,以便權杖交換知道要針對哪個工作區 |

48| `API_TIMEOUT_MS` | API 請求的逾時(以毫秒為單位)(預設值:600000,或 10 分鐘;最大值:2147483647)。在緩慢網路上請求逾時或透過代理路由時增加此值。超過最大值的值會導致基礎計時器溢位,並導致請求立即失敗 |49| `API_TIMEOUT_MS` | API 請求的逾時(以毫秒為單位)(預設值:600000,或 10 分鐘;最大值:2147483647)。在緩慢網路上請求逾時或透過代理路由時增加此值。超過最大值的值會導致基礎計時器溢位,並導致請求立即失敗 |

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

50| `BASH_DEFAULT_TIMEOUT_MS` | 長時間執行的 bash 命令的預設逾時(預設值:120000,或 2 分鐘) |51| `BASH_DEFAULT_TIMEOUT_MS` | 長時間執行的 bash 命令的預設逾時(預設值:120000,或 2 分鐘) |


138| `CLAUDE_CODE_PLUGIN_CACHE_DIR` | 覆蓋外掛程式根目錄。儘管名稱如此,這會設定父目錄,而不是快取本身:市場和外掛程式快取位於此路徑下的子目錄中。預設為 `~/.claude/plugins` |139| `CLAUDE_CODE_PLUGIN_CACHE_DIR` | 覆蓋外掛程式根目錄。儘管名稱如此,這會設定父目錄,而不是快取本身:市場和外掛程式快取位於此路徑下的子目錄中。預設為 `~/.claude/plugins` |

139| `CLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MS` | 安裝或更新外掛程式時 git 操作的逾時(以毫秒為單位)(預設值:120000)。對於大型儲存庫或網路連線緩慢,請增加此值。請參閱 [Git operations time out](/zh-TW/plugin-marketplaces#git-operations-time-out) |140| `CLAUDE_CODE_PLUGIN_GIT_TIMEOUT_MS` | 安裝或更新外掛程式時 git 操作的逾時(以毫秒為單位)(預設值:120000)。對於大型儲存庫或網路連線緩慢,請增加此值。請參閱 [Git operations time out](/zh-TW/plugin-marketplaces#git-operations-time-out) |

140| `CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE` | 設定為 `1` 以在 `git pull` 失敗時保留現有的市場快取,而不是擦除並重新複製。在離線或隔離環境中很有用,其中重新複製會以相同方式失敗。請參閱 [Marketplace updates fail in offline environments](/zh-TW/plugin-marketplaces#marketplace-updates-fail-in-offline-environments) |141| `CLAUDE_CODE_PLUGIN_KEEP_MARKETPLACE_ON_FAILURE` | 設定為 `1` 以在 `git pull` 失敗時保留現有的市場快取,而不是擦除並重新複製。在離線或隔離環境中很有用,其中重新複製會以相同方式失敗。請參閱 [Marketplace updates fail in offline environments](/zh-TW/plugin-marketplaces#marketplace-updates-fail-in-offline-environments) |

142| `CLAUDE_CODE_PLUGIN_PREFER_HTTPS` | 設定為 `1` 以透過 HTTPS 而不是 SSH 複製 GitHub `owner/repo` 外掛程式來源。在 CI 執行器、容器或任何沒有為 `github.com` 配置 SSH 金鑰的環境中很有用 |

141| `CLAUDE_CODE_PLUGIN_SEED_DIR` | 一個或多個唯讀外掛程式種子目錄的路徑,在 Unix 上以 `:` 分隔,在 Windows 上以 `;` 分隔。使用此選項可將預先填充的外掛程式目錄捆綁到容器映像中。Claude Code 在啟動時從這些目錄註冊市場,並使用預先快取的外掛程式而無需重新複製。請參閱 [Pre-populate plugins for containers](/zh-TW/plugin-marketplaces#pre-populate-plugins-for-containers) |143| `CLAUDE_CODE_PLUGIN_SEED_DIR` | 一個或多個唯讀外掛程式種子目錄的路徑,在 Unix 上以 `:` 分隔,在 Windows 上以 `;` 分隔。使用此選項可將預先填充的外掛程式目錄捆綁到容器映像中。Claude Code 在啟動時從這些目錄註冊市場,並使用預先快取的外掛程式而無需重新複製。請參閱 [Pre-populate plugins for containers](/zh-TW/plugin-marketplaces#pre-populate-plugins-for-containers) |

142| `CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST` | 由嵌入 Claude Code 並代表其管理模型提供者路由的主機平台設定。設定時,提供者選擇、端點和驗證變數(例如 `CLAUDE_CODE_USE_BEDROCK`、`ANTHROPIC_BASE_URL` 和 `ANTHROPIC_API_KEY`)在設定檔案中被忽略,以便使用者設定無法覆蓋主機的路由。Bedrock、Vertex 和 Foundry 的自動遙測選擇退出也會被跳過,因此遙測遵循標準 `DISABLE_TELEMETRY` 選擇退出。請參閱 [Default behaviors by API provider](/zh-TW/data-usage#default-behaviors-by-api-provider) |144| `CLAUDE_CODE_PROVIDER_MANAGED_BY_HOST` | 由嵌入 Claude Code 並代表其管理模型提供者路由的主機平台設定。設定時,提供者選擇、端點和驗證變數(例如 `CLAUDE_CODE_USE_BEDROCK`、`ANTHROPIC_BASE_URL` 和 `ANTHROPIC_API_KEY`)在設定檔案中被忽略,以便使用者設定無法覆蓋主機的路由。Bedrock、Vertex 和 Foundry 的自動遙測選擇退出也會被跳過,因此遙測遵循標準 `DISABLE_TELEMETRY` 選擇退出。請參閱 [Default behaviors by API provider](/zh-TW/data-usage#default-behaviors-by-api-provider) |

143| `CLAUDE_CODE_PROXY_RESOLVES_HOSTS` | 設定為 `1` 以允許代理執行 DNS 解析而不是呼叫者。對於代理應處理主機名稱解析的環境選擇加入 |145| `CLAUDE_CODE_PROXY_RESOLVES_HOSTS` | 設定為 `1` 以允許代理執行 DNS 解析而不是呼叫者。對於代理應處理主機名稱解析的環境選擇加入 |


152| `CLAUDE_CODE_SHELL` | 覆蓋自動 shell 偵測。當您的登入 shell 與您偏好的工作 shell 不同時很有用(例如,`bash` 與 `zsh`) |154| `CLAUDE_CODE_SHELL` | 覆蓋自動 shell 偵測。當您的登入 shell 與您偏好的工作 shell 不同時很有用(例如,`bash` 與 `zsh`) |

153| `CLAUDE_CODE_SHELL_PREFIX` | 命令前綴以包裝 Claude Code 生成的 shell 命令:Bash 工具呼叫、[hook](/zh-TW/hooks) 命令和 stdio [MCP server](/zh-TW/mcp) 啟動命令。對於日誌記錄或稽核很有用。範例:設定 `/path/to/logger.sh` 會將每個命令執行為 `/path/to/logger.sh <command>` |155| `CLAUDE_CODE_SHELL_PREFIX` | 命令前綴以包裝 Claude Code 生成的 shell 命令:Bash 工具呼叫、[hook](/zh-TW/hooks) 命令和 stdio [MCP server](/zh-TW/mcp) 啟動命令。對於日誌記錄或稽核很有用。範例:設定 `/path/to/logger.sh` 會將每個命令執行為 `/path/to/logger.sh <command>` |

154| `CLAUDE_CODE_SIMPLE` | 設定為 `1` 以使用最小系統提示和僅 Bash、檔案讀取和檔案編輯工具執行。來自 `--mcp-config` 的 MCP 工具仍然可用。停用 hooks、skills、plugins、MCP 伺服器、自動記憶體和 CLAUDE.md 的自動探索。[`--bare`](/zh-TW/headless#start-faster-with-bare-mode) CLI 旗標設定此項 |156| `CLAUDE_CODE_SIMPLE` | 設定為 `1` 以使用最小系統提示和僅 Bash、檔案讀取和檔案編輯工具執行。來自 `--mcp-config` 的 MCP 工具仍然可用。停用 hooks、skills、plugins、MCP 伺服器、自動記憶體和 CLAUDE.md 的自動探索。[`--bare`](/zh-TW/headless#start-faster-with-bare-mode) CLI 旗標設定此項 |

155| `CLAUDE_CODE_SIMPLE_SYSTEM_PROMPT` | 設定為 `1` 以在 Opus 4.7 上使用較短的系統提示和縮寫工具描述。對其他模型無效。完整工具集、hooks、MCP 伺服器和 CLAUDE.md 探索保持啟用 |157| `CLAUDE_CODE_SIMPLE_SYSTEM_PROMPT` | 設定為 `1` 以在任何模型上使用較短的系統提示和縮寫工具描述。設定為 `0`、`false`、`no` `off` 以選擇退出,即使實驗或伺服器配置會以其他方式啟用它。完整工具集、hooks、MCP 伺服器和 CLAUDE.md 探索保持啟用 |

156| `CLAUDE_CODE_SKIP_ANTHROPIC_AWS_AUTH` | 跳過 [Claude Platform on AWS](/zh-TW/claude-platform-on-aws) 的用戶端驗證,用於自行簽署請求的閘道 |158| `CLAUDE_CODE_SKIP_ANTHROPIC_AWS_AUTH` | 跳過 [Claude Platform on AWS](/zh-TW/claude-platform-on-aws) 的用戶端驗證,用於自行簽署請求的閘道 |

157| `CLAUDE_CODE_SKIP_BEDROCK_AUTH` | 跳過 Bedrock 的 AWS 驗證(例如,使用 LLM 閘道時) |159| `CLAUDE_CODE_SKIP_BEDROCK_AUTH` | 跳過 Bedrock 的 AWS 驗證(例如,使用 LLM 閘道時) |

158| `CLAUDE_CODE_SKIP_FOUNDRY_AUTH` | 跳過 Microsoft Foundry 的 Azure 驗證(例如,使用 LLM 閘道時) |160| `CLAUDE_CODE_SKIP_FOUNDRY_AUTH` | 跳過 Microsoft Foundry 的 Azure 驗證(例如,使用 LLM 閘道時) |

Details

156 156 

157### 使用 skills157### 使用 skills

158 158 

159`prompt` 輸入接受 [skill](/zh-TW/skills) 調用以及純文本:

160 

161* 對於存放在您的儲存庫 `.claude/skills/` 目錄中的 skill,請在操作步驟之前執行 `actions/checkout`,並傳遞 `/skill-name`。

162* 對於打包在外掛程式中的 skill,請使用 `plugin_marketplaces` 和 `plugins` 輸入安裝外掛程式,並傳遞命名空間 `/plugin-name:skill-name`。

163 

164以下工作流程安裝 `code-review` 外掛程式,並在每個新的或更新的提取請求上執行其 skill:

165 

159```yaml theme={null}166```yaml theme={null}

160name: Code Review167name: Code Review

161on:168on:


168 - uses: anthropics/claude-code-action@v1175 - uses: anthropics/claude-code-action@v1

169 with:176 with:

170 anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}177 anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }}

171 prompt: "Review this pull request for code quality, correctness, and security. Analyze the diff, then post your findings as review comments."178 plugin_marketplaces: "https://github.com/anthropics/claude-code.git"

172 claude_args: "--max-turns 5"179 plugins: "code-review@claude-code-plugins"

180 prompt: "/code-review:code-review ${{ github.repository }}/pull/${{ github.event.pull_request.number }}"

173```181```

174 182 

175### 使用提示的自訂自動化183### 使用提示的自訂自動化


622Claude Code Action v1 使用簡化的設定:630Claude Code Action v1 使用簡化的設定:

623 631 

624| 參數 | 描述 | 必需 |632| 參數 | 描述 | 必需 |

625| ------------------- | ------------------------------------------ | ----- |633| --------------------- | ------------------------------------------ | ----- |

626| `prompt` | Claude 的指令(純文字或 [skill](/zh-TW/skills) 名稱) | 否\* |634| `prompt` | Claude 的指令(純文字或 [skill](/zh-TW/skills) 名稱) | 否\* |

627| `claude_args` | 傳遞給 Claude Code 的 CLI 引數 | 否 |635| `claude_args` | 傳遞給 Claude Code 的 CLI 引數 | 否 |

636| `plugin_marketplaces` | 以換行符分隔的 plugin marketplace Git URL 清單 | 否 |

637| `plugins` | 以換行符分隔的 plugin 名稱清單,在執行前安裝 | 否 |

628| `anthropic_api_key` | Claude API 金鑰 | 是\*\* |638| `anthropic_api_key` | Claude API 金鑰 | 是\*\* |

629| `github_token` | 用於 API 存取的 GitHub 令牌 | 否 |639| `github_token` | 用於 API 存取的 GitHub 令牌 | 否 |

630| `trigger_phrase` | 自訂觸發短語(預設:「@claude」) | 否 |640| `trigger_phrase` | 自訂觸發短語(預設:「@claude」) | 否 |

glossary.md +1 −1

Details

70 70 

71### Checkpoint71### Checkpoint

72 72 

73Claude 進行每次編輯之前捕獲的程式碼自動快照。按 `Esc` 兩次或執行 `/rewind` 以將程式碼、對話或兩者恢復到較早的時間點。Checkpoints 是會話本地的,與 git 分開,不追蹤通過 Bash 工具進行的更改。73在每個您發送的提示處建立的還原點。Claude Code 在每次編輯之前對檔案進行快照,以便 checkpoint 可以還原它們。按 `Esc` 兩次或執行 `/rewind` 以將程式碼、對話或兩者還原到較早的時間點,或從選定的訊息摘要對話的一部分。Checkpoints 是會話本地的,與 git 分開,不追蹤通過 Bash 工具進行的更改。

74 74 

75了解更多:[Checkpointing](/zh-TW/checkpointing)75了解更多:[Checkpointing](/zh-TW/checkpointing)

76 76 

goal.md +1 −1

Details

108 108 

109### 非互動式執行109### 非互動式執行

110 110 

111`/goal` 在[非互動式模式](/zh-TW/headless)和透過[遠端控制](/zh-TW/remote-control)中工作。使用 `-p` 設定目標會在單個呼叫中執行迴圈至完成:111`/goal` 在[非互動式模式](/zh-TW/headless)[桌面應用程式](/zh-TW/desktop)中工作,並透過[遠端控制](/zh-TW/remote-control)工作。使用 `-p` 設定目標會在單個呼叫中執行迴圈至完成:

112 112 

113```bash theme={null}113```bash theme={null}

114claude -p "/goal CHANGELOG.md has an entry for every PR merged this week"114claude -p "/goal CHANGELOG.md has an entry for every PR merged this week"

hooks.md +49 −9

Details

297| :-------------- | :- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |297| :-------------- | :- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

298| `type` | 是 | `"command"`、`"http"`、`"mcp_tool"`、`"prompt"` 或 `"agent"` |298| `type` | 是 | `"command"`、`"http"`、`"mcp_tool"`、`"prompt"` 或 `"agent"` |

299| `if` | 否 | 權限規則語法以篩選此 hook 何時執行,例如 `"Bash(git *)"` 或 `"Edit(*.ts)"`。Hook 僅在工具呼叫匹配模式時生成,或當 Bash 命令太複雜而無法解析時。僅在工具事件上評估:`PreToolUse`、`PostToolUse`、`PostToolUseFailure`、`PermissionRequest` 和 `PermissionDenied`。在其他事件上,設定 `if` 的 hook 永遠不會執行。使用與 [權限規則](/zh-TW/permissions) 相同的語法 |299| `if` | 否 | 權限規則語法以篩選此 hook 何時執行,例如 `"Bash(git *)"` 或 `"Edit(*.ts)"`。Hook 僅在工具呼叫匹配模式時生成,或當 Bash 命令太複雜而無法解析時。僅在工具事件上評估:`PreToolUse`、`PostToolUse`、`PostToolUseFailure`、`PermissionRequest` 和 `PermissionDenied`。在其他事件上,設定 `if` 的 hook 永遠不會執行。使用與 [權限規則](/zh-TW/permissions) 相同的語法 |

300| `timeout` | 否 | 取消前的秒數。預設值:命令 600、提示 30、代理 60 |300| `timeout` | 否 | 取消前的秒數。預設值:`command`、`http` 和 `mcp_tool` 為 600;`prompt` 30;`agent` 60。[`UserPromptSubmit`](#userpromptsubmit) 將 `command`、`http` 和 `mcp_tool` 的預設值降低到 30 |

301| `statusMessage` | 否 | hook 執行時顯示的自訂微調訊息 |301| `statusMessage` | 否 | hook 執行時顯示的自訂微調訊息 |

302| `once` | 否 | 如果為 `true`,每個工作階段只執行一次,然後被移除。僅在 [skill frontmatter](#hooks-in-skills-and-agents) 中受尊重;在設定檔和代理 frontmatter 中被忽略 |302| `once` | 否 | 如果為 `true`,每個工作階段只執行一次,然後被移除。僅在 [skill frontmatter](#hooks-in-skills-and-agents) 中受尊重;在設定檔和代理 frontmatter 中被忽略 |

303 303 


558 558 

559命令 hooks 通過 stdin 接收 JSON 資料,並通過退出代碼、stdout 和 stderr 傳回結果。HTTP hooks 接收相同的 JSON 作為 POST 請求正文,並通過 HTTP 回應正文傳回結果。本部分涵蓋所有事件通用的欄位和行為。每個事件在 [Hook 事件](#hook-events) 下的部分包括其特定的輸入架構和決定控制選項。559命令 hooks 通過 stdin 接收 JSON 資料,並通過退出代碼、stdout 和 stderr 傳回結果。HTTP hooks 接收相同的 JSON 作為 POST 請求正文,並通過 HTTP 回應正文傳回結果。本部分涵蓋所有事件通用的欄位和行為。每個事件在 [Hook 事件](#hook-events) 下的部分包括其特定的輸入架構和決定控制選項。

560 560 

561在 macOS 和 Linux 上,自 v2.1.139 起,命令 hooks 在沒有控制終端的自己的工作階段中執行。Hook 程序和任何子程序無法開啟 `/dev/tty` 或直接向 Claude Code 介面發送逃逸序列。Windows 沒有 `/dev/tty`。要在任何平台上向使用者顯示訊息,請在 JSON 輸出中返回 [`systemMessage`](#json-output)。要觸發桌面通知、設定視窗標題或響鈴,請改為返回 [`terminalSequence`](#emit-terminal-notifications)。

562 

561### 通用輸入欄位563### 通用輸入欄位

562 564 

563除了每個 [hook 事件](#hook-events) 部分中記錄的事件特定欄位外,所有 hook 事件都接收這些欄位作為 JSON。對於命令 hooks,此 JSON 通過 stdin 到達。對於 HTTP hooks,它作為 POST 請求正文到達。565Hook 事件接收這些欄位作為 JSON,除了每個 [hook 事件](#hook-events) 部分中記錄的事件特定欄位。對於命令 hooks,此 JSON 通過 stdin 到達。對於 HTTP hooks,它作為 POST 請求正文到達。

564 566 

565| 欄位 | 描述 |567| 欄位 | 描述 |

566| :---------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |568| :---------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |


685 687 

686您的 hook 的 stdout 必須僅包含 JSON 物件。如果您的 shell 設定檔在啟動時列印文字,它可能會干擾 JSON 解析。請參閱故障排除指南中的 [JSON 驗證失敗](/zh-TW/hooks-guide#json-validation-failed)。688您的 hook 的 stdout 必須僅包含 JSON 物件。如果您的 shell 設定檔在啟動時列印文字,它可能會干擾 JSON 解析。請參閱故障排除指南中的 [JSON 驗證失敗](/zh-TW/hooks-guide#json-validation-failed)。

687 689 

688注入到上下文中的 hook 輸出(`additionalContext`、`systemMessage` 或純 stdout)的上限為 10,000 個字元。超過此限制的輸出會儲存到檔案並替換為預覽和檔案路徑,與大型工具結果的處理方式相同。690Hook 輸出字串,包括 `additionalContext`、`systemMessage` 和純 stdout,上限為 10,000 個字元。超過此限制的輸出會儲存到檔案並替換為預覽和檔案路徑,與大型工具結果的處理方式相同。

689 691 

690JSON 物件支援三種欄位:692JSON 物件支援三種欄位:

691 693 


694* **`hookSpecificOutput`** 是一個嵌套物件,用於需要更豐富控制的事件。它需要一個設定為事件名稱的 `hookEventName` 欄位。696* **`hookSpecificOutput`** 是一個嵌套物件,用於需要更豐富控制的事件。它需要一個設定為事件名稱的 `hookEventName` 欄位。

695 697 

696| 欄位 | 預設 | 描述 |698| 欄位 | 預設 | 描述 |

697| :--------------- | :------ | :------------------------------------------------- |699| :----------------- | :------ | :------------------------------------------------------------------------------------------------------------------------------------------ |

698| `continue` | `true` | 如果為 `false`,Claude 在 hook 執行後完全停止處理。優先於任何事件特定的決定欄位 |700| `continue` | `true` | 如果為 `false`,Claude 在 hook 執行後完全停止處理。優先於任何事件特定的決定欄位 |

699| `stopReason` | 無 | 當 `continue` 為 `false` 時向使用者顯示的訊息。不向 Claude 顯示 |701| `stopReason` | 無 | 當 `continue` 為 `false` 時向使用者顯示的訊息。不向 Claude 顯示 |

700| `suppressOutput` | `false` | 如果為 `true`,隱藏詳細日誌中的 stdout |702| `suppressOutput` | `false` | 如果為 `true`,隱藏詳細日誌中的 stdout |

701| `systemMessage` | 無 | 向使用者顯示的警告訊息 |703| `systemMessage` | 無 | 向使用者顯示的警告訊息 |

704| `terminalSequence` | 無 | Claude Code 代表您發出的終端逃逸序列,例如桌面通知、視窗標題或響鈴。限制為 OSC `0`/`1`/`2`/`9`/`99`/`777` 和 BEL。如果值包含允許清單外的任何內容,該欄位將被忽略。使用此項而不是寫入 `/dev/tty`,後者對 hooks 不可用 |

702 705 

703要無論事件類型如何都完全停止 Claude:706要無論事件類型如何都完全停止 Claude:

704 707 


706{ "continue": false, "stopReason": "Build failed, fix errors before continuing" }709{ "continue": false, "stopReason": "Build failed, fix errors before continuing" }

707```710```

708 711 

709#### 新增 Claude 的上下文712#### 發出終端通知

713 

714`terminalSequence` 欄位需要 Claude Code v2.1.141 或更新版本。

715 

716Hooks 在沒有控制終端的情況下執行,因此直接寫入逃逸序列到 `/dev/tty` 會失敗。相反,在 `terminalSequence` 欄位中返回逃逸序列,Claude Code 通過其自己的終端寫入路徑為您發出它。這是無競爭的,在 tmux 和 GNU screen 內工作,並在沒有 `/dev/tty` 的 Windows 上工作。

717 

718該欄位接受一個或多個允許清單逃逸序列的字串:

719 

720* OSC `0`、`1`、`2`:視窗和圖示標題

721* OSC `9`:iTerm2、ConEmu、Windows Terminal 和 WezTerm 通知,包括 `9;4` 工作列進度

722* OSC `99`:Kitty 通知

723* OSC `777`:urxvt、Ghostty 和 Warp 通知

724* 裸 BEL

725 

726序列可以用 BEL 或 ST 終止。允許清單外的任何內容,包括 CSI 游標和顏色序列、OSC 調色板序列、OSC 8 超連結、OSC 52 剪貼簿寫入和 OSC 1337,都會被拒絕,該欄位將被忽略。

727 

728下面的範例從 `Notification` hook 觸發桌面通知。逃逸序列使用 `printf` 八進位逃逸構建,因此控制位元組永遠不會出現在 shell 命令行上,`jq -n --arg` 構建 JSON 輸出,因此通知訊息中的引號、反斜線和換行符被正確逃逸:

729 

730```bash theme={null}

731#!/bin/bash

732# Notification hook:當 Claude Code 需要注意時 ping 桌面。

733input=$(cat)

734title="Claude Code'

735body=$(jq -r '.message // "Needs your attention"' <<<"$input")

736seq=$(printf '\033]777;notify;%s;%s\007' "$title" "$body")

737jq -nc --arg seq "$seq" '{terminalSequence: $seq}'

738```

739 

740`{ "terminalSequence": "..." }` 形狀在任何 shell 或語言中都相同。在 Windows 上,在 PowerShell 或指令碼中構建逃逸字串並發出相同的 JSON 物件。

741 

742<Note>

743 `terminalSequence` 是之前直接寫入逃逸序列到 `/dev/tty` 的 hooks 的支援替代品。允許清單限制為無法移動游標或改變顏色的序列,因此 hook 永遠無法損壞螢幕上的提示。

744</Note>

745 

746#### 為 Claude 新增上下文

710 747 

711`additionalContext` 欄位將字串從您的 hook 傳遞到 Claude 的上下文視窗。Claude Code 將字串包裝在系統提醒中,並將其插入到 hook 觸發的對話點。Claude 在下一個模型請求時讀取提醒,但它不會在介面中顯示為聊天訊息。748`additionalContext` 欄位將字串從您的 hook 傳遞到 Claude 的上下文視窗。Claude Code 將字串包裝在系統提醒中,並將其插入到 hook 觸發的對話點。Claude 在下一個模型請求時讀取提醒,但它不會在介面中顯示為聊天訊息。

712 749 


989 1026 

990在使用者提交提示時執行,在 Claude 處理之前。這允許您根據提示/對話新增額外上下文、驗證提示或阻止某些類型的提示。1027在使用者提交提示時執行,在 Claude 處理之前。這允許您根據提示/對話新增額外上下文、驗證提示或阻止某些類型的提示。

991 1028 

1029`UserPromptSubmit` hooks 對於 `command`、`http` 和 `mcp_tool` 類型的預設逾時為 30 秒,比其他事件上這些類型的 600 秒預設值更短。因為此 hook 在每個提示之前執行並阻止模型處理直到完成,卡住的 hook 會停滯工作階段。如果您的 hook 需要更多時間,請在 hook 項目中設定 `timeout` 欄位。

1030 

992#### UserPromptSubmit 輸入1031#### UserPromptSubmit 輸入

993 1032 

994除了 [通用輸入欄位](#common-input-fields) 外,UserPromptSubmit hooks 還接收包含使用者提交的文字的 `prompt` 欄位。1033除了 [通用輸入欄位](#common-input-fields) 外,UserPromptSubmit hooks 還接收包含使用者提交的文字的 `prompt` 欄位。


2601 2640 

2602當非同步 hook 觸發時,Claude Code 啟動 hook 程序並立即繼續,而不等待它完成。Hook 在 stdin 上接收與同步 hook 相同的 JSON 輸入。2641當非同步 hook 觸發時,Claude Code 啟動 hook 程序並立即繼續,而不等待它完成。Hook 在 stdin 上接收與同步 hook 相同的 JSON 輸入。

2603 2642 

2604背景程序退出後,如果 hook 產生了帶有 `systemMessage` 或 `additionalContext` 欄位的 JSON 回應,該內容會在下一個對話輪次上作為上下文傳遞給 Claude。2643背景程序退出後,如果 hook 產生了帶有 `additionalContext` 欄位的 JSON 回應,該內容會在下一個對話輪次上作為上下文傳遞給 Claude。`systemMessage` 欄位會顯示給你,而不是 Claude。

2605 2644 

2606非同步 hook 完成通知預設被抑制。要查看它們,請使用 `Ctrl+O` 啟用詳細模式或使用 `--verbose` 啟動 Claude Code。2645非同步 hook 完成通知預設被抑制。要查看它們,請使用 `Ctrl+O` 啟用詳細模式或使用 `--verbose` 啟動 Claude Code。

2607 2646 


2622 exit 02661 exit 0

2623fi2662fi

2624 2663 

2625# 執行測試並通過 systemMessage 報告結果2664# 執行測試並通過 additionalContext 報告結果給 Claude

2626RESULT=$(npm test 2>&1)2665RESULT=$(npm test 2>&1)

2627EXIT_CODE=$?2666EXIT_CODE=$?

2628 2667 

2629if [ $EXIT_CODE -eq 0 ]; then2668if [ $EXIT_CODE -eq 0 ]; then

2630 echo "{\"systemMessage\": \"Tests passed after editing $FILE_PATH\"}"2669 MSG="Tests passed after editing $FILE_PATH"

2631else2670else

2632 echo "{\"systemMessage\": \"Tests failed after editing $FILE_PATH: $RESULT\"}"2671 MSG="Tests failed after editing $FILE_PATH: $RESULT"

2633fi2672fi

2673jq -nc --arg msg "$MSG" '{hookSpecificOutput: {hookEventName: "PostToolUse", additionalContext: $msg}}'

2634```2674```

2635 2675 

2636然後將此配置新增到專案根目錄中的 `.claude/settings.json`。`async: true` 標誌讓 Claude 在測試執行時繼續工作:2676然後將此配置新增到專案根目錄中的 `.claude/settings.json`。`async: true` 標誌讓 Claude 在測試執行時繼續工作:

hooks-guide.md +4 −1

Details

865### 限制865### 限制

866 866 

867* 命令 hooks 只透過 stdout、stderr 和退出代碼通訊。它們無法觸發 `/` 命令或工具呼叫。透過 `additionalContext` 傳回的文字會作為系統提醒注入,Claude 將其讀取為純文字。HTTP hooks 改為透過回應主體通訊。867* 命令 hooks 只透過 stdout、stderr 和退出代碼通訊。它們無法觸發 `/` 命令或工具呼叫。透過 `additionalContext` 傳回的文字會作為系統提醒注入,Claude 將其讀取為純文字。HTTP hooks 改為透過回應主體通訊。

868* Hook 超時預設為 10 分鐘,可透過 `timeout` 欄位(以秒為單位)按 hook 配置868* Hook 超時因類型而異。透過 `timeout` 欄位(以秒為單位)按 hook 覆寫

869 * `command`、`http`、`mcp_tool`:10 分鐘。`UserPromptSubmit` 將這些降低至 30 秒。

870 * `prompt`:30 秒。

871 * `agent`:60 秒。

869* `PostToolUse` hooks 無法撤銷操作,因為工具已經執行。872* `PostToolUse` hooks 無法撤銷操作,因為工具已經執行。

870* `PermissionRequest` hooks 在[非互動模式](/zh-TW/headless)(`-p`)中不觸發。對於自動化權限決策,使用 `PreToolUse` hooks。873* `PermissionRequest` hooks 在[非互動模式](/zh-TW/headless)(`-p`)中不觸發。對於自動化權限決策,使用 `PreToolUse` hooks。

871* `Stop` hooks 在 Claude 完成回應時觸發,而不僅在任務完成時。它們在使用者中斷時不觸發。API 錯誤觸發 [StopFailure](/zh-TW/hooks#stopfailure) 代替。874* `Stop` hooks 在 Claude 完成回應時觸發,而不僅在任務完成時。它們在使用者中斷時不觸發。API 錯誤觸發 [StopFailure](/zh-TW/hooks#stopfailure) 代替。

mcp.md +1 −1

Details

458 458 

459許多雲端 MCP servers 需要驗證。Claude Code 支援 OAuth 2.0 以進行安全連接。459許多雲端 MCP servers 需要驗證。Claude Code 支援 OAuth 2.0 以進行安全連接。

460 460 

461Claude Code 會在 server 以 `401 Unauthorized` 和指向其授權 server 的 `WWW-Authenticate` 標頭回應時,將遠端 server 標記為需要驗證。任何傳回該回應的自訂 server 都會獲得與任何其他遠端 server 相同的 `/mcp` 驗證流程461Claude Code 會在 server 以 `401 Unauthorized` `403 Forbidden` 回應時,將遠端 server 標記為需要驗證。任一狀態碼都會在 `/mcp` 中標記 server,以便您可以完成 OAuth 流程。傳回指向其授權 server `WWW-Authenticate` 標頭的自訂 server 會獲得與任何其他遠端 server 相同的自動探索

462 462 

463<Steps>463<Steps>

464 <Step title="新增需要驗證的 server">464 <Step title="新增需要驗證的 server">

Details

51 可用的旗標:51 可用的旗標:

52 52 

53 | 旗標 | 說明 |53 | 旗標 | 說明 |

54 | ----------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |54 | ----------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

55 | `--name "My Project"` | 設定自訂會話標題,在 claude.ai/code 的會話清單中可見。 |55 | `--name "My Project"` | 設定自訂會話標題,在 claude.ai/code 的會話清單中可見。 |

56 | `--remote-control-session-name-prefix <prefix>` | 未設定明確名稱時自動生成會話名稱的前綴。預設為您機器的主機名稱,產生類似 `myhost-graceful-unicorn` 的名稱。設定 `CLAUDE_REMOTE_CONTROL_SESSION_NAME_PREFIX` 以獲得相同效果。 |56 | `--remote-control-session-name-prefix <prefix>` | 未設定明確名稱時自動生成會話名稱的前綴。預設為您機器的主機名稱,產生類似 `myhost-graceful-unicorn` 的名稱。設定 `CLAUDE_REMOTE_CONTROL_SESSION_NAME_PREFIX` 以獲得相同效果。 |

57 | `--spawn <mode>` | 伺服器如何建立會話。<br />• `same-dir`(預設):所有會話共享目前的工作目錄,因此如果編輯相同的檔案可能會衝突。<br />• `worktree`:每個按需會話都會獲得自己的 [git worktree](/zh-TW/common-workflows#run-parallel-claude-code-sessions-with-git-worktrees)。需要 git 儲存庫。<br />• `session`:單一會話模式。恰好提供一個會話並拒絕其他連接。僅在啟動時設定。<br />在執行時按 `w` 在 `same-dir` 和 `worktree` 之間切換。 |57 | `--spawn <mode>` | 伺服器如何建立會話。<br />• `same-dir`(預設):所有會話共享目前的工作目錄,因此如果編輯相同的檔案可能會衝突。<br />• `worktree`:每個按需會話都會獲得自己的 [git worktree](/zh-TW/worktrees)。需要 git 儲存庫。<br />• `session`:單一會話模式。恰好提供一個會話並拒絕其他連接。僅在啟動時設定。<br />在執行時按 `w` 在 `same-dir` 和 `worktree` 之間切換。 |

58 | `--capacity <N>` | 並行會話的最大數量。預設值為 32。不能與 `--spawn=session` 一起使用。 |58 | `--capacity <N>` | 並行會話的最大數量。預設值為 32。不能與 `--spawn=session` 一起使用。 |

59 | `--verbose` | 顯示詳細的連接和會話日誌。 |59 | `--verbose` | 顯示詳細的連接和會話日誌。 |

60 | `--sandbox` / `--no-sandbox` | 啟用或停用[沙箱](/zh-TW/sandboxing)以進行檔案系統和網路隔離。預設為關閉。 |60 | `--sandbox` / `--no-sandbox` | 啟用或停用[沙箱](/zh-TW/sandboxing)以進行檔案系統和網路隔離。預設為關閉。 |


113 113 

114* **開啟會話 URL** 在任何瀏覽器中直接進入 [claude.ai/code](https://claude.ai/code) 上的會話。114* **開啟會話 URL** 在任何瀏覽器中直接進入 [claude.ai/code](https://claude.ai/code) 上的會話。

115* **掃描 QR 碼** 顯示在會話 URL 旁邊,直接在 Claude 應用程式中開啟它。使用 `claude remote-control` 時,按空格鍵切換 QR 碼顯示。115* **掃描 QR 碼** 顯示在會話 URL 旁邊,直接在 Claude 應用程式中開啟它。使用 `claude remote-control` 時,按空格鍵切換 QR 碼顯示。

116* **開啟 [claude.ai/code](https://claude.ai/code) 或 Claude 應用程式**,並在會話清單中按名稱找到會話。Remote Control 會話在線上時顯示帶有綠色狀態點的電腦圖示。116* **開啟 [claude.ai/code](https://claude.ai/code) 或 Claude 應用程式**,並在會話清單中按名稱找到會話。在 Claude 行動應用程式中,點擊導航中的**程式碼**以到達會話清單。Remote Control 會話在線上時顯示帶有綠色狀態點的電腦圖示。

117 117 

118遠端會話標題按以下順序選擇:118遠端會話標題按以下順序選擇:

119 119 


130 130 

131### 為所有會話啟用 Remote Control131### 為所有會話啟用 Remote Control

132 132 

133預設情況下,Remote Control 只在您明確執行 `claude remote-control`、`claude --remote-control` 或 `/remote-control` 時啟動。要為每個互動式會話自動啟用它,請在 Claude Code 內執行 `/config` 並將**為所有會話啟用 Remote Control** 設定為 `true`。將其設定回 `false` 以停用。133預設情況下,Remote Control 只在您明確執行 `claude remote-control`、`claude --remote-control` 或 `/remote-control` 時啟動。要為每個互動式會話自動啟用它,請在 Claude Code 內執行 `/config` 並將**為所有會話啟用 Remote Control** 設定為 `true`。將其設定回 `false` 以停用。在桌面應用程式中,您也可以從**設定 → Claude Code → 預設啟用遠端控制**切換此選項。

134 134 

135啟用此設定後,每個互動式 Claude Code 程序會註冊一個遠端會話。如果您執行多個實例,每個實例都會獲得自己的環境和會話。要從單個程序執行多個並行會話,請改用[伺服器模式](#start-a-remote-control-session)。135啟用此設定後,每個互動式 Claude Code 程序會註冊一個遠端會話。如果您執行多個實例,每個實例都會獲得自己的環境和會話。要從單個程序執行多個並行會話,請改用[伺服器模式](#start-a-remote-control-session)。

136 136 


215 215 

216### 「Remote Control 已被您的組織政策停用」216### 「Remote Control 已被您的組織政策停用」

217 217 

218此錯誤有三個不同的原因。首先執行 `/status` 以查看您使用的登入方法和訂閱。218此錯誤有四個不同的原因。首先執行 `/status` 以查看您使用的登入方法和訂閱。

219 219 

220* **您使用 API 金鑰或 Console 帳戶進行驗證**:Remote Control 需要 claude.ai OAuth。執行 `/login` 並選擇 claude.ai 選項。如果在您的環境中設定了 `ANTHROPIC_API_KEY`,請取消設定它。220* **您使用 API 金鑰或 Console 帳戶進行驗證**:Remote Control 需要 claude.ai OAuth。執行 `/login` 並選擇 claude.ai 選項。如果在您的環境中設定了 `ANTHROPIC_API_KEY`,請取消設定它。

221* **您的 Team 或 Enterprise 管理員尚未啟用它**:Remote Control 在這些方案上預設為關閉。管理員可以在 [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code) 透過開啟 **Remote Control** 切換來啟用它。這是伺服器端組織設定,不是[僅限管理的設定](/zh-TW/permissions#managed-only-settings)金鑰221* **您的 Team 或 Enterprise 管理員尚未啟用它**:Remote Control 在這些方案上預設為關閉。管理員可以在 [claude.ai/admin-settings/claude-code](https://claude.ai/admin-settings/claude-code) 透過開啟 **Remote Control** 切換來啟用它。此切換是伺服器端組織設定

222* **管理員切換呈灰色**:您的組織具有與 Remote Control 不相容的資料保留或合規配置。這無法從管理面板更改。請聯絡 Anthropic 支援以討論選項。222* **管理員切換呈灰色**:您的組織具有與 Remote Control 不相容的資料保留或合規配置。這無法從管理面板更改。請聯絡 Anthropic 支援以討論選項。

223* **錯誤提及 `disableRemoteControl`**:您的 IT 管理員已透過[受管設定](/zh-TW/settings#settings-files)在此裝置上停用 Remote Control,獨立於組織範圍的切換。

223 224 

224### 「Remote credentials fetch failed」225### 「Remote credentials fetch failed」

225 226 

sub-agents.md +6 −4

Details

158 158 

159這是建立和管理 subagents 的建議方式。對於手動建立或自動化,您也可以直接新增 subagent 檔案。159這是建立和管理 subagents 的建議方式。對於手動建立或自動化,您也可以直接新增 subagent 檔案。

160 160 

161若要從命令行列出所有配置的 subagents 而不開啟 [agent view](/zh-TW/agent-view),請使用管道輸出 `claude agents`。例如,`claude agents | cat` 會按來源分組列印代理,並指示哪些被更高優先級的定義覆蓋。

162 

163### 選擇 subagent 範圍161### 選擇 subagent 範圍

164 162 

165Subagents 是具有 YAML frontmatter 的 Markdown 檔案。根據範圍將它們儲存在不同位置。當多個 subagents 共享相同名稱時,更高優先級的位置獲勝。163Subagents 是具有 YAML frontmatter 的 Markdown 檔案。根據範圍將它們儲存在不同位置。當多個 subagents 共享相同名稱時,更高優先級的位置獲勝。


178 176 

179**使用者 subagents**(`~/.claude/agents/`)是在所有專案中可用的個人 subagents。177**使用者 subagents**(`~/.claude/agents/`)是在所有專案中可用的個人 subagents。

180 178 

179Claude Code 會遞迴掃描 `.claude/agents/` 和 `~/.claude/agents/`,因此您可以將定義組織到子資料夾中,例如 `agents/review/` 或 `agents/research/`。子目錄路徑不會影響 subagent 的識別或呼叫方式,因為身份僅來自 `name` frontmatter 欄位。在整個樹中保持 `name` 值唯一:如果一個範圍內的兩個檔案宣告相同的名稱,Claude Code 會保留一個並丟棄另一個,不會發出警告。

180 

181外掛程式 `agents/` 目錄也會遞迴掃描。與專案和使用者範圍不同,外掛程式 `agents/` 目錄內的子資料夾成為 [scoped identifier](#invoke-subagents-explicitly) 的一部分:外掛程式 `my-plugin` 中位於 `agents/review/security.md` 的檔案註冊為 `my-plugin:review:security`。

182 

181**CLI 定義的 subagents** 在啟動 Claude Code 時作為 JSON 傳遞。它們僅存在於該工作階段,不會儲存到磁碟,使其適用於快速測試或自動化指令碼。您可以在單一 `--agents` 呼叫中定義多個 subagents:183**CLI 定義的 subagents** 在啟動 Claude Code 時作為 JSON 傳遞。它們僅存在於該工作階段,不會儲存到磁碟,使其適用於快速測試或自動化指令碼。您可以在單一 `--agents` 呼叫中定義多個 subagents:

182 184 

183<Tabs>185<Tabs>


638 640 

639您的完整訊息仍然會傳送給 Claude,它根據您要求的內容為 subagent 編寫任務提示。@-mention 控制 Claude 呼叫哪個 subagent,而不是它接收什麼提示。641您的完整訊息仍然會傳送給 Claude,它根據您要求的內容為 subagent 編寫任務提示。@-mention 控制 Claude 呼叫哪個 subagent,而不是它接收什麼提示。

640 642 

641由啟用的 [plugin](/zh-TW/plugins) 提供的 Subagents 在預輸入中顯示為 `<plugin-name>:<agent-name>`。名為背景 subagents 目前在工作階段中執行也出現在預輸入中,在名稱旁邊顯示其狀態。您也可以手動輸入提及而不使用選擇器:`@agent-<name>` 用於本地 subagents,或 `@agent-<plugin-name>:<agent-name>` 用於外掛程式 subagents。643由啟用的 [plugin](/zh-TW/plugins) 提供的 Subagents 在預輸入中顯示為其限定名稱,例如 `my-plugin:code-reviewer` 或 `my-plugin:review:security`(當 plugin [將 agents 組織到子資料夾](#choose-the-subagent-scope) 時)。名為背景 subagents 目前在工作階段中執行也出現在預輸入中,在名稱旁邊顯示其狀態。您也可以手動輸入提及而不使用選擇器:`@agent-<name>` 用於本地 subagents,或 `@agent-` 後跟外掛程式 subagents 的限定名稱,例如 `@agent-my-plugin:code-reviewer`

642 644 

643**將整個工作階段作為 subagent 執行。** 傳遞 [`--agent <name>`](/zh-TW/cli-reference) 以啟動一個工作階段,其中主執行緒本身採用該 subagent 的系統提示、工具限制和模型:645**將整個工作階段作為 subagent 執行。** 傳遞 [`--agent <name>`](/zh-TW/cli-reference) 以啟動一個工作階段,其中主執行緒本身採用該 subagent 的系統提示、工具限制和模型:

644 646 


650 652 

651這適用於內建和自訂 subagents,選擇在您恢復工作階段時持續。653這適用於內建和自訂 subagents,選擇在您恢復工作階段時持續。

652 654 

653對於外掛程式提供的 subagent,傳遞限定名稱:`claude --agent <plugin-name>:<agent-name>`。655對於外掛程式提供的 subagent,傳遞限定名稱:`claude --agent <plugin-name>:<agent-name>`。如果 plugin 將 agent 放在其 `agents/` 目錄的子資料夾中,請在限定名稱中包括子資料夾,例如 `claude --agent my-plugin:review:security`。

654 656 

655若要使其成為專案中每個工作階段的預設值,請在 `.claude/settings.json` 中設定 `agent`:657若要使其成為專案中每個工作階段的預設值,請在 `.claude/settings.json` 中設定 `agent`:

656 658 

Details

16 16 

17語音聽寫會將您錄製的音頻串流傳輸到 Anthropic 的伺服器進行轉錄。音頻不在本地處理。語音轉文字服務僅在您使用 Claude.ai 帳戶進行身份驗證時可用,當 Claude Code 配置為直接使用 Anthropic API 金鑰、Amazon Bedrock、Google Vertex AI 或 Microsoft Foundry 時不可用。轉錄不會消耗 Claude 訊息或代幣,也不會計入 `/usage` 中顯示的限制。請參閱[資料使用](/zh-TW/data-usage)了解 Anthropic 如何處理您的資料。17語音聽寫會將您錄製的音頻串流傳輸到 Anthropic 的伺服器進行轉錄。音頻不在本地處理。語音轉文字服務僅在您使用 Claude.ai 帳戶進行身份驗證時可用,當 Claude Code 配置為直接使用 Anthropic API 金鑰、Amazon Bedrock、Google Vertex AI 或 Microsoft Foundry 時不可用。轉錄不會消耗 Claude 訊息或代幣,也不會計入 `/usage` 中顯示的限制。請參閱[資料使用](/zh-TW/data-usage)了解 Anthropic 如何處理您的資料。

18 18 

19語音聽寫還需要本地麥克風存取權限,因此它在遠端環境中不起作用,例如[網頁上的 Claude Code](/zh-TW/claude-code-on-the-web) 或 SSH 工作階段。在 WSL 中,語音聽寫需要 WSLg 來進行音頻存取WSL2 Windows 11 上包含此功能。在 Windows 10 或 WSL1 上,改為在原生 Windows 中執行 Claude Code。19語音聽寫還需要本地麥克風存取權限,因此它在遠端環境中不起作用,例如[網頁上的 Claude Code](/zh-TW/claude-code-on-the-web)或 SSH 工作階段。在 WSL 中,語音聽寫需要 WSLg 來進行音頻存取WSL2 在從 Microsoft Store 在 Windows 10 或 11 上安裝時包含 WSLg。如果 WSLg 不可用,例如在 WSL1 上,改為在原生 Windows 中執行 Claude Code。

20 20 

21音頻錄製在 macOS、Linux 和 Windows 上使用內建的原生模組。在 Linux 上,如果原生模組無法載入,Claude Code 會回退到 ALSA utils 中的 `arecord` 或 SoX 中的 `rec`。如果兩者都不可用,`/voice` 會列印您的套件管理員的安裝命令。21音頻錄製在 macOS、Linux 和 Windows 上使用內建的原生模組。在 Linux 上,如果原生模組無法載入,Claude Code 會回退到 ALSA utils 中的 `arecord` 或 SoX 中的 `rec`。如果兩者都不可用,`/voice` 會列印您的套件管理員的安裝命令。

22 22 


51}51}

52```52```

53 53 

54啟用語音聽寫時,當提示為空時,輸入頁尾會顯示 `hold Space to speak` 提示。提示文字在兩種模式中都相同,如果您配置了[自訂狀態行](/zh-TW/statusline),則不會出現。54啟用語音聽寫時,當提示為空時,輸入頁尾會顯示 `hold Space to speak` 提示。提示文字反映您目前的 `voice:pushToTalk` 快捷鍵繫結,如果您[重新繫結聽寫鍵](#rebind-the-dictation-key),則會更新。提示文字在兩種模式中都相同,如果您配置了[自訂狀態行](/zh-TW/statusline),則不會出現。

55 55 

56轉錄在兩種模式中都針對編碼詞彙進行了調整。常見的開發術語如 `regex`、`OAuth`、`JSON` 和 `localhost` 都能正確識別,您目前的專案名稱和 git 分支名稱會自動新增為識別提示。56轉錄在兩種模式中都針對編碼詞彙進行了調整。常見的開發術語如 `regex`、`OAuth`、`JSON` 和 `localhost` 都能正確識別,您目前的專案名稱和 git 分支名稱會自動新增為識別提示。

57 57 


155* **`Voice mode requires a Claude.ai account`**:您使用 API 金鑰或第三方提供者進行了身份驗證。執行 `/login` 以使用 Claude.ai 帳戶登入。155* **`Voice mode requires a Claude.ai account`**:您使用 API 金鑰或第三方提供者進行了身份驗證。執行 `/login` 以使用 Claude.ai 帳戶登入。

156* **`Microphone access is denied`**:在系統設定中授予您的終端機麥克風權限。在 macOS 上,前往系統設定 → 隱私與安全 → 麥克風並啟用您的終端機應用程式,然後再次執行 `/voice`。在 Windows 上,前往設定 → 隱私與安全 → 麥克風並開啟桌面應用程式的麥克風存取,然後再次執行 `/voice`。如果您的終端機未列在 macOS 設定中,請參閱[終端機未列在 macOS 麥克風設定中](#terminal-not-listed-in-macos-microphone-settings)。156* **`Microphone access is denied`**:在系統設定中授予您的終端機麥克風權限。在 macOS 上,前往系統設定 → 隱私與安全 → 麥克風並啟用您的終端機應用程式,然後再次執行 `/voice`。在 Windows 上,前往設定 → 隱私與安全 → 麥克風並開啟桌面應用程式的麥克風存取,然後再次執行 `/voice`。如果您的終端機未列在 macOS 設定中,請參閱[終端機未列在 macOS 麥克風設定中](#terminal-not-listed-in-macos-microphone-settings)。

157* **Linux 上的 `No audio recording tool found`**:原生音頻模組無法載入,且未安裝回退。使用錯誤訊息中顯示的命令安裝 SoX,例如 `sudo apt-get install sox`。157* **Linux 上的 `No audio recording tool found`**:原生音頻模組無法載入,且未安裝回退。使用錯誤訊息中顯示的命令安裝 SoX,例如 `sudo apt-get install sox`。

158* **`Voice mode could not find a working audio recorder in WSL`**:WSLg 透過 PulseAudio 而非 ALSA 裝置路由音頻,因此 SoX 需要明確安裝其 PulseAudio 後端。執行 `sudo apt install sox libsox-fmt-pulse`。單獨安裝 `sox` 會拉入 ALSA 後端,這在 WSL 上無法錄製,因為沒有 `/dev/snd` 裝置。

159* **`Voice input is failing repeatedly and has been paused`**:語音聽寫連續遇到多個啟動失敗,並停止嘗試新的工作階段,直到一個成功。這通常表示此主機上的麥克風或音頻堆疊無法捕獲音頻,例如無頭伺服器、沒有音頻傳遞的遠端 shell 或被拒絕的麥克風權限。確認工作輸入裝置,修復上述項目中的根本原因,然後再次觸發語音。

158* **在按住模式中按住 `Space` 時沒有任何反應**:在按住時監視提示輸入。如果空格不斷累積,語音聽寫可能已關閉;執行 `/voice hold` 啟用它。如果只出現一個或兩個空格然後沒有任何反應,語音聽寫已開啟但按住偵測未觸發。按住偵測需要您的終端機發送按鍵重複事件,因此如果在作業系統層級停用了按鍵重複,它無法偵測按住的鍵。使用 `/voice tap` 切換到點擊模式以避免按鍵重複要求。160* **在按住模式中按住 `Space` 時沒有任何反應**:在按住時監視提示輸入。如果空格不斷累積,語音聽寫可能已關閉;執行 `/voice hold` 啟用它。如果只出現一個或兩個空格然後沒有任何反應,語音聽寫已開啟但按住偵測未觸發。按住偵測需要您的終端機發送按鍵重複事件,因此如果在作業系統層級停用了按鍵重複,它無法偵測按住的鍵。使用 `/voice tap` 切換到點擊模式以避免按鍵重複要求。

159* **在點擊模式中點擊 `Space` 輸入空格而不是錄製**:第一次點擊只在提示輸入為空時開始錄製。先清除輸入,或通過執行 `/voice tap` 檢查您是否處於點擊模式。161* **在點擊模式中點擊 `Space` 輸入空格而不是錄製**:第一次點擊只在提示輸入為空時開始錄製。先清除輸入,或通過執行 `/voice tap` 檢查您是否處於點擊模式。

160* **`No audio detected from microphone`**:錄製已開始但捕獲了無聲。確認正確的輸入裝置設定為系統預設值,其輸入級別未靜音或接近零。在 Windows 上,開啟設定 → 系統 → 聲音 → 輸入並選擇您的麥克風。在 macOS 上,開啟系統設定 → 聲音 → 輸入。162* **`No audio detected from microphone`**:錄製已開始但捕獲了無聲。確認正確的輸入裝置設定為系統預設值,其輸入級別未靜音或接近零。在 Windows 上,開啟設定 → 系統 → 聲音 → 輸入並選擇您的麥克風。在 macOS 上,開啟系統設定 → 聲音 → 輸入。