> ## Documentation Index
> Fetch the complete documentation index at: https://code.claude.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Desktop 應用程式

> 充分利用 Claude Code Desktop：具有 Git 隔離的並行會話、拖放窗格佈局、整合終端機和檔案編輯器、側邊聊天、電腦使用、從您的手機 Dispatch 會話、視覺化差異檢查、應用程式預覽、PR 監控、連接器和企業配置。

Claude Desktop 應用程式有三個標籤：**Chat** 用於對話、**Cowork** 用於 [Dispatch 和更長的代理工作](https://claude.com/product/cowork)，以及 **Code** 用於軟體開發。本頁面是 Code 標籤的參考。

<CardGroup cols={3}>
  <Card title="下載 macOS 版本" icon="apple" href="https://claude.ai/api/desktop/darwin/universal/dmg/latest/redirect?utm_source=claude_code&utm_medium=docs">
    適用於 Intel 和 Apple Silicon 的通用版本
  </Card>

  <Card title="下載 Windows 版本" icon="windows" href="https://claude.ai/api/desktop/win32/x64/setup/latest/redirect?utm_source=claude_code&utm_medium=docs">
    適用於 x64 處理器
  </Card>

  <Card title="取得 Claude for Linux (測試版)" icon="linux" href="/docs/zh-TW/desktop-linux">
    適用於 Ubuntu 和 Debian 的 apt 或 .deb
  </Card>
</CardGroup>

若要使用 Windows ARM64，請下載 [ARM64 安裝程式](https://claude.ai/api/desktop/win32/arm64/setup/latest/redirect?utm_source=claude_code\&utm_medium=docs)。在 Linux 上，使用 apt 安裝；請參閱 [Claude Desktop on Linux](/docs/zh-TW/desktop-linux)。

安裝後，啟動 Claude，登入，然後點擊 **Code** 標籤。如需您第一個會話的逐步說明，請參閱[快速入門指南](/docs/zh-TW/desktop-quickstart)。

在 Code 標籤中，每個對話都是一個**會話**：它有自己的聊天歷史記錄和專案資料夾，獨立於任何其他會話。側邊欄列出您的會話，並讓您並行執行多個會話。在會話中，您可以：

* [使用差異檢查檢查和評論變更](#review-changes-with-diff-view)，然後[透過 CI 監控產生的 PR](#monitor-pull-request-status)
* [在瀏覽器窗格中預覽您執行的應用程式](#preview-your-app)，同時 Claude 驗證其自己的變更，並[在其旁邊開啟外部網站](#browse-external-sites)
* [在 iOS Simulator 窗格中觀看 Claude 執行和測試您的 iOS 應用程式](/docs/zh-TW/desktop-ios-simulator)
* [排列窗格](#arrange-your-workspace)，將聊天、差異、瀏覽器、終端機和檔案編輯器並排放置
* 提出[側邊問題](#ask-a-side-question-without-derailing-the-session)，使用會話的內容而不會偏離主題
* 讓 Claude [檢查、訊息或封存您的其他會話](#work-across-sessions)
* [連接外部工具](#connect-external-tools)，例如 GitHub、Slack 和 Linear
* 讓 Claude [開啟應用程式並控制您的螢幕](#let-claude-use-your-computer)
* 在您的機器上、[雲端](#run-long-running-tasks-in-the-cloud)或 [SSH](#ssh-sessions) 上執行

如需[排程定期工作](/docs/zh-TW/desktop-scheduled-tasks)、[快捷鍵](#keyboard-shortcuts)或[從您的手機傳送任務](#sessions-from-dispatch)，請參閱連結的頁面和章節。如果您已經使用基於終端機的 CLI，請參閱 [CLI 比較](#coming-from-the-cli)以了解哪些內容可以轉移。

<h2 id="start-a-session">
  開始會話
</h2>

在發送第一條訊息之前，在提示區域中配置四項內容：

* **環境**：選擇 Claude 執行的位置。選擇 **Local** 用於您的機器、**Cloud** 用於[雲端工作階段](#cloud-sessions)（在您關閉應用程式後仍會繼續），[**SSH 連線**](#ssh-sessions)用於您管理的遠端機器，或在 Windows 上選擇 [**WSL 發行版**](/docs/zh-TW/desktop-wsl)。SSH 工作階段中的任務可以[在 Desktop 中斷連線時繼續執行](#keep-a-task-running-while-desktop-is-disconnected)，但若使用 Claude 帳戶，任務可能會在登入過期時停止。請參閱[環境設定](#environment-configuration)。
* **專案資料夾**：選擇 Claude 工作的資料夾或儲存庫。對於雲端會話，您可以新增[多個儲存庫](#run-long-running-tasks-in-the-cloud)。
* **模型**：從傳送按鈕旁的下拉式選單中選擇[模型](/docs/zh-TW/model-config#available-models)。您可以在會話期間變更此設定。
* **權限模式**：從[模式選擇器](#choose-a-permission-mode)中選擇 Claude 擁有多少自主權。您可以在會話期間變更此設定。

輸入您的任務並按 **Enter** 開始。每個會話都會追蹤自己的上下文並獨立進行變更。

<h2 id="work-with-code">
  使用程式碼
</h2>

提供 Claude 正確的背景資訊、控制它自主執行的程度，並檢查它所做的變更。

<h3 id="use-the-prompt-box">
  使用提示詞輸入框
</h3>

輸入您想讓 Claude 執行的操作，然後按 **Enter** 鍵傳送。Claude 會讀取您的專案檔案、進行變更，並根據您的[權限模式](#choose-a-permission-mode)執行命令。您可以隨時重新導向 Claude：點擊停止按鈕立即中斷，或輸入更正並按 **Enter** 鍵傳送，無需停止執行中的操作。Claude 會在目前操作完成後立即讀取更正，並在下一步之前進行調整。

提示詞輸入框旁的 **+** 按鈕可讓您存取檔案附件、[skills](#use-skills)、[connectors](#connect-external-tools) 和 [plugins](#install-plugins)。

<h3 id="accept-a-suggested-prompt">
  接受建議的提示詞
</h3>

Claude 回覆後，Code 標籤可能會在空白的提示詞輸入框中以灰色文字顯示建議的下一個提示詞。Claude Code 會透過一個簡短的背景請求，根據您的對話[產生每個建議](/docs/zh-TW/interactive-mode#prompt-suggestions)，此請求會計入您方案的用量上限或您的 API 費用。

* **使用建議**：按 **Tab** 或**向右鍵**將其放入提示詞輸入框，視需要進行編輯，然後按 **Enter** 傳送。在接受建議之前按 **Enter** 不會傳送該建議。
* **撰寫您自己的提示詞**：直接開始輸入。建議只會在提示詞輸入框為空且沒有附加檔案時顯示。

前往**設定 > Claude Code**，並在**工作階段**下關閉**提示詞建議**，即可讓每個工作階段從下次啟動或繼續時起不再顯示建議。

<h3 id="add-files-and-context-to-prompts">
  將檔案和背景資訊新增至提示詞
</h3>

提示詞輸入框支援兩種方式來引入外部背景資訊：

* **@mention 檔案**：輸入 `@` 後跟檔案名稱，將檔案新增至對話背景資訊。Claude 隨後可以讀取並參考該檔案。@mention 在雲端或 WSL 工作階段中不可用。
* **附加檔案**：使用附件按鈕將影像、PDF 和其他檔案附加到您的提示詞，或直接將檔案拖放到提示詞中。這對於分享錯誤的螢幕截圖、設計模型或參考文件很有用。

<h3 id="choose-a-permission-mode">
  選擇權限模式
</h3>

權限模式控制 Claude 在工作階段期間的自主程度：它是否在編輯檔案、執行命令或兩者之前詢問。您可以隨時使用傳送按鈕旁的模式選擇器切換權限模式。若要自行核准每項變更，請切換至「手動」。

若要為新的本機工作階段設定預設模式，請將 `permissions.defaultMode` 新增至您的[設定檔](/docs/zh-TW/settings#where-settings-live)。桌面應用程式讀取與 CLI 相同的設定檔。您在選擇器中選擇的模式會記住每個資料夾，並優先於該資料夾的 `defaultMode`，但 Plan 除外，它僅適用於目前工作階段。

| 模式 | 設定鍵 | 行為 |
| - | - | - |
| **手動** | `default` | Claude 在編輯檔案或執行命令之前詢問。您會看到差異，並可以接受或拒絕每項變更。 |
| **接受編輯** | `acceptEdits` | Claude 自動接受檔案編輯和常見的檔案系統命令，例如 `mkdir`、`touch` 和 `mv`，但在執行其他終端機命令之前仍會詢問。當您信任檔案變更並想要更快速的迭代時，請使用此選項。 |
| **Plan** | `plan` | Claude 讀取檔案並執行命令以進行探索，然後提出計畫而不編輯您的原始程式碼。適合複雜的工作，您想先檢查方法。 |
| **自動** | `auto` | Claude 執行時不會出現例行提示；在 shell 命令和網路請求等操作執行之前，背景分類器會檢查它們是否與您的請求一致。當[自動模式可用](#auto-mode-availability)時出現；沒有單獨的設定切換。 |
| **略過權限** | `bypassPermissions` | Claude 執行時不會出現權限提示，除了[任何模式都不會自動核准的操作](/docs/zh-TW/permission-modes#actions-no-mode-auto-approves)、當 Claude [在外部網站上執行操作](#browse-external-sites)時的安全分類器，或桌面操作，例如刪除工作階段（但不包括[封存工作階段](#work-across-sessions)）。相當於 CLI 中的 `--dangerously-skip-permissions`。在 Pro 和 Max 方案上，在您的設定 → Claude Code 中的「允許略過權限模式」下啟用它；在 Team 和 Enterprise 方案上沒有設定切換，組織政策會控制它。僅在沙箱容器或虛擬機中使用此選項。 |

Code 標籤的早期版本將這些模式標記為「詢問權限」、「自動接受編輯」和「Plan 模式」。

`dontAsk` 權限模式僅在 [CLI](/docs/zh-TW/permission-modes#allow-only-pre-approved-tools-with-dontask-mode) 中可用。

<Tip title="最佳實踐">
  在 Plan 中開始複雜的工作，讓 Claude 在進行變更之前規劃方法。一旦您核准計畫，切換至「接受編輯」或「手動」以執行它。請參閱[先探索，然後計畫，然後編碼](/docs/zh-TW/best-practices#explore-first-then-plan-then-code)以了解更多有關此工作流程的資訊。
</Tip>

雲端工作階段支援「接受編輯」、「Plan」和「自動」。「接受編輯」對應於 `default` 模式：雲端工作階段預先核准檔案編輯，因此選擇器顯示「接受編輯」而不是「手動」。「略過權限」在雲端工作階段中不可用，包括[自託管環境](/docs/zh-TW/self-hosted-environments)中的工作階段。

Enterprise 管理員可以限制哪些權限模式可用。請參閱[企業設定](#enterprise-configuration)以了解詳細資訊。

<h4 id="auto-mode-availability">
  自動模式可用性
</h4>

自動模式適用於 Anthropic API 上的所有使用者，需要 Claude Opus 4.6 或更新版本、Sonnet 4.6 或更新版本、Haiku 5.5，或 [Fable 模型](/docs/zh-TW/model-config#work-with-fable)。組織管理員可以使用[受管設定](#managed-settings)中的 `disableAutoMode` 鍵關閉自動模式。

在將 Desktop 路由到 Google Cloud 的 Agent Platform 的 Enterprise 部署中，自動模式也預設可用；請參閱 [Bedrock、Agent Platform 或 Foundry 上的自動模式](/docs/zh-TW/permission-modes#enable-auto-mode-on-bedrock-agent-platform-or-foundry)以了解支援的模型。

<h3 id="preview-your-app">
  預覽您的應用程式
</h3>

Claude 可以啟動開發伺服器並在「瀏覽器」窗格中開啟它以驗證其變更。這適用於前端網路應用程式以及後端伺服器：Claude 可以測試 API 端點、檢視伺服器日誌，並對它發現的問題進行迭代。在大多數情況下，Claude 在編輯專案檔案後會自動啟動伺服器。您也可以隨時要求 Claude 進行預覽。預設情況下，Claude [自動驗證](#auto-verify-changes)每次編輯後的變更。

「瀏覽器」窗格也可以從您的專案中開啟靜態 HTML 檔案、PDF、影像和影片。在聊天中點擊 HTML、PDF、影像或影片路徑以在那裡開啟它。

<Note>
  在 [SSH 工作階段](#ssh-sessions)中，Claude 無法在「瀏覽器」窗格中開啟您的應用程式，因為它在那裡沒有該窗格的工具。若要自行查看應用程式，請[將其連接埠轉送到您的電腦](#reach-a-port-on-the-remote-machine)。
</Note>

從「瀏覽器」窗格，您可以：

* 直接在「瀏覽器」窗格中與執行中的應用程式互動
* 觀看 Claude 自動驗證其自身的變更：它會擷取螢幕截圖、檢查 DOM、點擊元素、填寫表單，並修復它發現的問題
* 從「瀏覽器」窗格標題列中的**開發伺服器**選單啟動或停止伺服器，或一次停止所有伺服器
* 透過「瀏覽器」窗格 **⋮** 選單中的**保留 Cookie**，選擇「瀏覽器」是否在您結束應用程式後保留 Cookie，因此您在開發期間不必重新登入

Claude 根據您的專案建立初始伺服器設定。如果您的應用程式使用自訂開發命令，請編輯 `.claude/launch.json` 以符合您的設定。請參閱[設定預覽伺服器](#configure-preview-servers)以了解完整參考。

若要清除「瀏覽器」已儲存的資料，請在「瀏覽器」窗格的 **⋮** 選單中選擇**清除瀏覽資料**。若要完全關閉「瀏覽器」，請在**設定 > Claude Code** 中關閉**瀏覽器工具**。

<h3 id="browse-external-sites">
  瀏覽外部網站
</h3>

「瀏覽器」窗格是一個標籤式瀏覽器，因此您可以在執行中的應用程式旁邊開啟文件、問題追蹤器或任何其他網站。若要開啟「瀏覽器」，請在 macOS 上按 **Cmd+Shift+B**，或在 Windows 上按 **Ctrl+Shift+B**，或點擊工作階段標題列中的**瀏覽器**。您可以登入窗格中的網站，包括彈出式登入流程，例如 Google OAuth。

您第一次點擊聊天中的外部連結時，會出現一個對話方塊，詢問連結要在「瀏覽器」窗格中開啟，還是在您的預設瀏覽器中開啟。若要稍後變更您的選擇，請使用「瀏覽器」窗格 **⋮** 選單中的**在內建瀏覽器中開啟連結**。在 macOS 上按 **Cmd** 點擊或在 Windows 上按 **Ctrl** 點擊，會直接在您的預設瀏覽器中開啟連結。

Claude 可以使用與[驗證您的應用程式](#preview-your-app)相同的工具讀取和互動外部頁面，並進行兩項額外的安全檢查：

* 安全分類器在每個權限模式中檢查 Claude 在外部頁面上的寫入操作，例如點擊和輸入。這些是[自動模式](#choose-a-permission-mode)使用的相同分類器，當它們標記操作時，您會獲得權限提示，無論模式如何。
* 在「自動」和「略過權限」以外的權限模式中，在 Claude 導航到新網站之前也會應用網域允許清單檢查。

<h4 id="approve-claude’s-actions-on-a-site">
  核准 Claude 在網站上的操作
</h4>

Claude 首次在外部網站上執行操作時，會出現權限卡，Claude 會等待您的選擇：**允許一次**、**始終允許**或**拒絕**。**允許一次**核准操作而不儲存任何內容。**始終允許**在您的裝置上儲存該網站的核准，您可以在「設定」中撤銷它。每個網站都需要自己的核准，包括子網域。您的本機開發伺服器和專案檔案不需要核准，因此[自動驗證](#auto-verify-changes)可以繼續進行而不會出現提示。

即使在已核准的網站上，Claude 也不會在沒有您的輸入的情況下購買商品、建立帳戶或繞過 CAPTCHA。在「瀏覽器」窗格中瀏覽使用與 [Chrome 中的 Claude 擴充功能](/docs/zh-TW/chrome)相同的安全模型。請參閱[安全地使用 Chrome 中的 Claude](https://support.claude.com/en/articles/12902428-using-claude-in-chrome-safely)以了解 Claude 如何處理敏感網站和危險操作。

<h4 id="choose-between-the-browser-and-the-chrome-extension">
  在「瀏覽器」和 Chrome 擴充功能之間選擇
</h4>

「瀏覽器」窗格使用乾淨的瀏覽器設定檔，與您的個人瀏覽器分開，沒有您儲存的登入或歷史記錄。使用它來建立和測試您的應用程式，以及不需要您的身份的網站。當您想讓 Claude 在您的已登入工作階段中充當您時，請改用 [Chrome 中的 Claude 擴充功能](/docs/zh-TW/chrome)，它會共享您的瀏覽器的登入狀態。

<h4 id="restrict-external-browsing-for-your-organization">
  限制您的組織的外部瀏覽
</h4>

「瀏覽器」遵循與 Claude in Chrome 擴充功能相同的[網站允許清單和封鎖清單控制](https://support.claude.com/en/articles/13065128-claude-in-chrome-admin-controls)。如果您的組織已為擴充功能設定了這些清單，「瀏覽器」會自動尊重它們。管理員也可以使用 [`browserExternalPageTools` 受管設定](#managed-settings)關閉 Claude 在外部頁面上的工具。停用工具後，使用者仍然可以導航到外部網站；Claude 的工具無法讀取或對其進行操作。

若要完全關閉外部瀏覽，請將 [`disableBrowserExternalNavigation` 受管設定](#managed-settings)設定為 `true`。這會阻止「瀏覽器」中的所有外部導航，包括您的組織允許清單上的網站；localhost 開發伺服器和檔案預覽保持運作。使用 `browserExternalPageTools` 讓使用者繼續瀏覽外部網站而不使用 Claude 的工具，並使用 `disableBrowserExternalNavigation` 為使用者和 Claude 阻止外部網站。

<h3 id="review-changes-with-diff-view">
  使用差異檢視檢查變更
</h3>

Claude 對您的程式碼進行變更後，差異檢視可讓您在建立 pull request 之前逐個檔案檢查修改。

當 Claude 變更檔案時，會出現差異統計指示器，顯示新增和移除的行數，例如 `+12 -1`。點擊此指示器以開啟差異檢視器，它在左側顯示檔案清單，在右側顯示每個檔案的變更。

若要對特定行進行評論，請點擊差異中的任何行以開啟評論框。輸入您的意見反應並按 **Enter** 鍵以新增評論。在多行新增評論後，一次提交所有評論：

* **macOS**：按 **Cmd+Enter**
* **Windows**：按 **Ctrl+Enter**

Claude 會讀取您的評論並進行要求的變更，這些變更會顯示為您可以檢查的新差異。

<h3 id="review-your-code">
  檢查您的程式碼
</h3>

若要讓 Claude 在您提交之前審查您的變更，請在[提示詞輸入框](#use-the-prompt-box)中輸入 `/code-review`。審查完成後，結果會出現在對話中。

在本機、[SSH](#ssh-sessions) 和 [WSL](/docs/zh-TW/desktop-wsl) 工作階段中，結果會以**程式碼審查**卡片呈現，並依檔案分組。使用該卡片來處理這些結果：

* 點擊**在差異中逐一檢視**以開啟差異檢視，並逐一檢視各項結果。位於目前差異中的結果會顯示在其對應的行，您可以在那裡點擊**修正此項**或將其關閉。
* 點擊**套用修正**以要求 Claude 修正仍未處理的結果。

在任何工作階段中，您也可以在提示詞輸入框中要求 Claude 修正審查發現的問題。若要了解 `/code-review` 檢查的內容及其接受的引數，請參閱[使用 `/code-review` 在本機審查](/docs/zh-TW/code-review-local)。

<h3 id="monitor-pull-request-status">
  監控 pull request 狀態
</h3>

開啟 pull request 後，CI 狀態列會出現在工作階段中。Claude Code 使用 GitHub CLI 輪詢檢查結果並顯示失敗。

* **自動修復 CI 並處理評論**：啟用後，Claude 會自動嘗試透過讀取失敗輸出並進行迭代來修復失敗的 CI 檢查。在本機工作階段中，當作者是儲存庫擁有者、組織成員、協作者或 GitHub App 時，Claude 也會處理由您以外的人留下的新審查評論。
* **就緒時自動合併**：啟用後，Claude 會在所有檢查通過後合併 PR。合併方法是壓縮。首先在您的 [GitHub 儲存庫設定](https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/configuring-pull-request-merges/managing-auto-merge-for-pull-requests-in-your-repository)中啟用自動合併；沒有它，Claude 無法合併 PR。

若要開啟這些選項，請點擊狀態列中的 **CI**。若要在 PR 合併或關閉後自動封存工作階段，請在**設定 > Claude Code** 中開啟[自動封存](#work-in-parallel-with-sessions)。

<Note>
  PR 監控需要在您的機器上安裝並驗證 [GitHub CLI (`gh`)](https://cli.github.com/)。如果未安裝 `gh`，Desktop 會在您首次嘗試建立 PR 時提示您安裝它。

  在 [SSH 工作階段](#ssh-sessions)中，請在點擊**建立 PR** 之前於遠端機器上設定 `git` 和 `gh`，因為 Claude 會在那裡推送分支並執行 `gh pr create`。請自行在那裡安裝 `gh`，因為 Desktop 在 SSH 工作階段中不會提示您安裝。接著在那裡確認 `git push` 可以正常運作，且 `gh auth status` 顯示您已登入。
</Note>

<h2 id="arrange-your-workspace">
  安排您的工作區
</h2>

Code 標籤是圍繞您可以以任何佈局排列的窗格構建的：聊天、差異、瀏覽器、終端機、檔案、plan、tasks 和 subagent，以及 macOS 上的 [iOS Simulator](/docs/zh-TW/desktop-ios-simulator)。透過其標題拖動窗格以重新定位它，或拖動窗格邊緣以調整其大小。在 macOS 上按 **Cmd+\\** 或在 Windows 上按 **Ctrl+\\** 以關閉焦點窗格。點擊工作階段標題列中的 **Terminal**、**Changes** 或 **Browser** 以開啟終端機、差異或瀏覽器窗格。它們旁邊的 **⋮** 選單可開啟更多窗格（例如 **Files**），並在視窗太窄而無法顯示這些按鈕時收納這些按鈕。

若要跨螢幕工作，將窗格（例如差異或終端機）彈出到其自己的視窗中，完成後將其停靠回來。Claude 會在主視窗中繼續工作。

<Note>
  本節中的窗格佈局、終端機、檔案編輯器和檢視模式需要 Claude Desktop v1.2581.0 或更新版本。在 macOS 上開啟 **Claude → Check for Updates** 或在 Windows 上開啟 **Help → Check for Updates** 以更新。
</Note>

<h3 id="run-commands-in-the-terminal">
  在終端機中執行命令
</h3>

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

終端機可在本機和 [SSH](#ssh-sessions) 工作階段中使用，但在 [Windows 遠端機器](#windows-remote-machines)上有所限制。

<h3 id="open-and-edit-files">
  開啟和編輯檔案
</h3>

點擊聊天或差異檢視器中的檔案路徑以在檔案窗格中開啟它。HTML、PDF、影像和影片路徑改為在[瀏覽器窗格](#preview-your-app)中開啟。進行現場編輯並點擊 **Save** 以寫回。如果自您開啟檔案以來檔案在磁碟上已變更，窗格會警告您並讓您覆寫或放棄。點擊 **Discard** 以還原您的編輯，或點擊窗格標題中的路徑以複製絕對路徑。

檔案窗格在本機和 SSH 工作階段中可用。對於雲端工作階段，請要求 Claude 進行變更。

<h3 id="open-files-in-other-apps">
  在其他應用程式中開啟檔案
</h3>

右鍵點擊聊天、差異檢視器或檔案窗格中的任何檔案路徑以開啟上下文選單：

* **Attach as context**：將檔案新增到您的下一個提示詞
* **Open in**：在已安裝的編輯器（如 VS Code、Cursor 或 Zed）中開啟檔案
* **Show in Finder**（在 macOS 上），**Show in Explorer**（在 Windows 上）：開啟包含資料夾
* **Copy path**：將絕對路徑複製到您的剪貼簿

<h3 id="switch-view-modes">
  切換檢視模式
</h3>

檢視模式控制聊天逐字稿中顯示多少詳細資訊。若要切換檢視模式，請從工作階段標題旁的插入符號開啟工作階段選單並選擇 **Transcript view**，或在 macOS 或 Windows 上按 **Ctrl+O** 以循環瀏覽它們。Thinking 模式僅在 Claude 在您正在檢視的工作階段中產生思考後才會出現在選單中。

| 模式 | 它顯示什麼 |
| - | - |
| **Normal** | 工具呼叫摺疊成摘要，具有完整文字回應 |
| **Thinking** | 工具呼叫摺疊成摘要，加上 Claude 的思考 |
| **Verbose** | Claude 採取的每個工具呼叫、檔案讀取和中間步驟，加上 Claude 的思考 |

使用 Thinking 來追蹤 Claude 的推理，工具呼叫仍然摺疊。在除錯 Claude 為什麼採取特定操作時使用 Verbose。Claude Desktop 1.46388.1 之前的版本也列出 Summary 模式，而仍設定為 Summary 的工作階段在您更新後會以 Normal 開啟。

<h3 id="keyboard-shortcuts">
  鍵盤快捷鍵
</h3>

在 macOS 上按 **Cmd+/** 或在 Windows 上按 **Ctrl+/** 以查看 Code 標籤中可用的所有快捷鍵。在 Windows 上，對下面的快捷鍵使用 **Ctrl** 代替 **Cmd**。工作階段循環、終端機切換和檢視模式切換在每個平台上都使用 **Ctrl**。

| 快捷鍵 | 操作 |
| - | - |
| `Cmd` `/` | 顯示鍵盤快捷鍵 |
| `Cmd` `N` | 新工作階段 |
| `Cmd` `W` | 關閉工作階段 |
| `Ctrl` `Tab` / `Ctrl` `Shift` `Tab` | 下一個或上一個工作階段 |
| `Cmd` `Shift` `]` / `Cmd` `Shift` `[` | 下一個或上一個工作階段 |
| `Esc` | 停止 Claude 的回應 |
| `Tab` / `Right arrow` | 在空白的提示詞輸入框中[接受建議的提示詞](#accept-a-suggested-prompt) |
| `Cmd` `Shift` `D` | 切換差異窗格 |
| `Cmd` `Shift` `B` | 切換瀏覽器窗格 |
| `Cmd` `Shift` `S` | 在瀏覽器中選擇元素 |
| `Ctrl` `` ` `` | 切換終端機窗格 |
| `Cmd` `\` | 關閉焦點窗格 |
| `Cmd` `;` | 開啟側邊聊天 |
| `Ctrl` `O` | 循環檢視模式 |
| `Cmd` `Shift` `M` | 開啟權限模式選單 |
| `Cmd` `Shift` `I` | 開啟模型選單 |
| `Cmd` `Shift` `E` | 開啟工作量選單 |
| `1`–`9` | 在開啟的選單中選擇項目 |

這些快捷鍵適用於 Code 標籤。在 Desktop 中，`Shift+Tab` 不會像在終端機的 [interactive mode](/docs/zh-TW/interactive-mode#keyboard-shortcuts) 中那樣循環切換權限模式。

<h3 id="check-usage">
  檢查使用情況
</h3>

點擊模型選擇器旁的使用情況環，以查看您目前的上下文視窗使用情況，以及您的方案在該期間的使用情況。上下文使用情況是按工作階段計算的；方案使用情況在您所有的 Claude Code 使用介面中共用。

<h2 id="let-claude-use-your-computer">
  讓 Claude 使用您的電腦
</h2>

電腦使用讓 Claude 開啟您的應用程式、控制您的螢幕，並以您的方式直接在您的機器上工作。要求 Claude 與沒有 CLI 的桌面工具互動，或自動化只能透過 GUI 運作的內容。對於執行和測試 iOS 應用程式，Desktop 會開啟專用的 [iOS Simulator 窗格](/docs/zh-TW/desktop-ios-simulator)，而不是控制您的螢幕；該窗格無需啟用電腦使用即可運作。

<Note>
  電腦使用是 macOS 和 Windows 上的研究預覽版，需要 Pro 或 Max 計畫。它在 Team 或 Enterprise 計畫上不可用。Claude Desktop 應用程式必須執行。
</Note>

電腦使用預設為關閉。[在設定中啟用它](#enable-computer-use)，然後 Claude 才能控制您的螢幕。在 macOS 上，您還需要授予協助工具和螢幕錄製權限。

在 macOS 上，電腦使用也可以在背景執行：Claude 在您批准的應用程式中工作，同時您繼續工作。

<Warning>
  與[沙箱化 Bash 工具](/docs/zh-TW/sandboxing)不同，電腦使用在您的實際桌面上執行，可以存取您批准的任何內容。Claude 會檢查每個操作並標記螢幕上內容的潛在提示注入，但信任邊界不同。有關最佳實踐，請參閱[電腦使用安全指南](https://support.claude.com/en/articles/14128542)。
</Warning>

<h3 id="when-computer-use-applies">
  何時應用電腦使用
</h3>

Claude 有多種方式與應用程式或服務互動，電腦使用是最廣泛和最慢的。它首先嘗試最精確的工具：

* 如果您有服務的[連接器](#connect-external-tools)，Claude 會使用連接器。
* 如果任務是 shell 命令，Claude 會使用 Bash。
* 如果任務是瀏覽器工作且您已設定[Chrome 中的 Claude](/docs/zh-TW/chrome)，Claude 會使用它。
* 如果任務是執行或測試 iOS 應用程式，Claude 會使用 [iOS Simulator 窗格](/docs/zh-TW/desktop-ios-simulator)，它不使用螢幕控制。
* 如果以上都不適用，Claude 會使用電腦使用。

[每個應用程式的存取層級](#app-permissions)強化了這一點：瀏覽器限制為僅檢視，終端機和 IDE 限制為僅點擊，引導 Claude 使用專用工具，即使電腦使用處於活動狀態。螢幕控制保留給其他工具無法到達的內容，例如原生應用程式、硬體控制面板或沒有 API 的專有工具。

<h3 id="enable-computer-use">
  啟用電腦使用
</h3>

電腦使用預設為關閉。如果您要求 Claude 執行需要它的操作而它處於關閉狀態，Claude 會告訴您如果在設定中啟用電腦使用，它可以執行該任務。

<Steps>
  <Step title="更新桌面應用程式">
    確保您有最新版本的 Claude Desktop。在 macOS 和 Windows 上，在 [claude.com/download](https://claude.com/download) 下載或更新；在 Linux 上，透過您的套件管理員更新（[說明](/docs/zh-TW/desktop-linux)）。然後重新啟動應用程式。
  </Step>

  <Step title="開啟切換">
    在桌面應用程式中，前往 **Settings > This computer > System**。在 **Computer use** 下，開啟 **Enable computer use**。在 Windows 上，切換立即生效，設定完成。在 macOS 上，繼續下一步。

    如果您看不到切換，請確認您在 macOS 或 Windows 上使用 Pro 或 Max 計畫，然後更新並重新啟動應用程式。
  </Step>

  <Step title="授予 macOS 權限">
    在 macOS 上，在切換生效之前授予兩個系統權限：

    * **Accessibility**：讓 Claude 點擊、輸入和滾動
    * **Screen Recording**：讓 Claude 看到您螢幕上的內容

    「設定」頁面顯示每個權限的目前狀態。如果任一被拒絕，點擊徽章以開啟相關的「系統設定」窗格。
  </Step>
</Steps>

<h3 id="app-permissions">
  應用程式權限
</h3>

Claude 第一次需要使用應用程式時，會在您的會話中出現提示。點擊 **Allow for this session** 或 **Deny**。批准在目前會話中持續，或在 [Dispatch 產生的會話](#sessions-from-dispatch)中持續 30 分鐘。

提示也顯示 Claude 對該應用程式獲得的控制級別。這些層級由應用程式類別固定，無法變更：

| 層級 | Claude 可以執行的操作 | 適用於 |
| :- | :- | :- |
| 僅檢視 | 在螢幕截圖中查看應用程式 | 瀏覽器、交易平台 |
| 僅點擊 | 點擊和滾動，但不能輸入或使用快捷鍵 | 終端機、IDE |
| 完全控制 | 點擊、輸入、拖動和使用快捷鍵 | 其他所有內容 |

具有廣泛影響力的應用程式（如終端機、Finder 或檔案總管，以及「系統設定」或「設定」）在提示中顯示額外警告，以便您知道批准它們會授予什麼。

**Settings > This computer > System** 中的 **Computer use** 區段包含以下選項：

* **Denied apps**：在此處新增應用程式以拒絕它們而不提示。Claude 可能仍會透過允許應用程式中的操作間接影響被拒絕的應用程式，但它無法直接與被拒絕的應用程式互動。
* **Unhide apps when Claude finishes**：當電腦使用未在背景執行時，Claude 工作時會隱藏您的其他視窗，以便它僅與批准的應用程式互動。當 Claude 完成時，隱藏的視窗會被恢復，除非您關閉此設定。

<h2 id="manage-sessions">
  管理工作階段
</h2>

每個工作階段都是一個獨立的對話，具有自己的上下文和變更。您可以並行執行多個工作階段、分支出側邊聊天、讓 Claude 檢查並傳送訊息到您的其他工作階段、將工作傳送到雲端，或讓 Dispatch 從您的手機為您啟動工作階段。

<h3 id="work-in-parallel-with-sessions">
  使用工作階段並行工作
</h3>

點擊側邊欄中的 **+ New session**，或在 macOS 上按 **Cmd+N** 或在 Windows 上按 **Ctrl+N**，以並行處理多個任務。按 **Ctrl+Tab** 和 **Ctrl+Shift+Tab** 以循環瀏覽側邊欄中的工作階段。對於 Git 儲存庫，選擇分支名稱旁邊的 **worktree** 選項，以使用 [Git worktrees](/docs/zh-TW/worktrees) 為工作階段提供自己的隔離專案副本。

若要同時檢視兩個工作階段，請在 macOS 上按住 **Cmd** 或在 Windows 上按住 **Ctrl**，然後點擊側邊欄中的工作階段。工作階段會在您已開啟的工作階段旁邊的第二個窗格中開啟。當分割處於活動狀態時，點擊另一個側邊欄工作階段會取代具有焦點的窗格。在 macOS 上按 **Cmd+\\** 或在 Windows 上按 **Ctrl+\\** 以關閉焦點窗格並返回單一工作階段。

Worktrees 預設儲存在 `<project-root>/.claude/worktrees/` 中。您可以將其變更為自訂目錄：

* **本機工作階段**：在 **Settings > Claude Code** 中設定 **Worktree location**
* **SSH 工作階段**：在 [SSH 連線](#choose-where-ssh-session-worktrees-go)上設定 **Worktree folder**

您也可以在 **Settings > Claude Code** 中設定 **Branch prefix**。Desktop 會將其加在每個 worktree 分支名稱前面，這對於保持 Claude 建立的分支井然有序很有用。

若要在完成後移除 worktree，請將滑鼠懸停在側邊欄中的工作階段上，然後點擊存檔圖示。若要在 pull request 合併或關閉後自動存檔工作階段，請在 **Settings > Claude Code** 中開啟 **Auto-archive after PR merge or close**。自動存檔僅適用於已完成執行的本機工作階段。

若要在新 worktrees 中包含 gitignored 檔案（如 `.env`），請在您的專案根目錄中建立 [`.worktreeinclude` 檔案](/docs/zh-TW/worktrees#copy-gitignored-files-into-worktrees)。請參閱 [worktree 與主要簽出共用的內容](/docs/zh-TW/worktrees#what-worktrees-share-with-the-main-checkout)，了解 worktree 工作階段從何處讀取專案設定、hook 和 skill。

<Note>
  工作階段隔離需要 [Git](https://git-scm.com/downloads)。大多數 Mac 預設包含 Git。在終端機中執行 `git --version` 進行檢查；如果它列印版本號，表示已安裝 Git。如果您遇到 Git 錯誤，請在 [Cowork 標籤](https://claude.com/product/cowork) 中詢問 Claude 以幫助排除您的設定問題。
</Note>

使用側邊欄頂部的控制項按狀態、專案或環境篩選工作階段，並按專案分組工作階段。若要重新命名工作階段，請點擊活動工作階段頂部工具列中的工作階段標題。

若要檢查上下文使用情況，請參閱[檢查使用情況](#check-usage)。當上下文填滿時，Claude 會自動總結對話並繼續工作。您也可以輸入 `/compact` 來更早觸發總結並釋放上下文空間。有關壓縮如何運作的詳細資訊，請參閱[上下文視窗](/docs/zh-TW/how-claude-code-works#the-context-window)。

桌面應用程式會在 Code 工作階段完成任務且您目前未檢視該工作階段時傳送作業系統通知。對於屬於[專案](/docs/zh-TW/claude-projects#see-what-needs-you-in-overview)的工作階段，您會改為收到專案的通知。

<h3 id="ask-a-side-question-without-derailing-the-session">
  在不偏離工作階段的情況下詢問側邊問題
</h3>

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

在 macOS 上按 **Cmd+;** 或在 Windows 上按 **Ctrl+;** 以開啟側邊聊天，或在提示詞輸入框中輸入 `/btw`。側邊聊天可以讀取主執行緒中到該點為止的所有內容。完成後，關閉側邊聊天並在您離開的地方繼續主工作階段。

側邊聊天在本機、SSH 和 WSL 工作階段中可用。桌面應用程式不會將側邊聊天儲存到磁碟，因此您在關閉應用程式後無法返回到一個。

<h3 id="watch-background-tasks">
  觀看背景任務
</h3>

任務窗格顯示在目前工作階段內執行的背景工作：subagents、背景 shell 命令和[動態工作流程](/docs/zh-TW/workflows)。當工作階段有背景工作時，請從標題列的 **⋮** 選單中選擇 **Background tasks** 以開啟此窗格。

點擊任何項目以在 subagent 窗格中查看其輸出或停止它。若要查看其他工作階段正在執行的操作，請使用[側邊欄](#work-in-parallel-with-sessions)，或詢問 Claude [為您檢查它們](#work-across-sessions)。

<h3 id="work-across-sessions">
  跨工作階段工作
</h3>

Claude 可以列出您的其他 Code 標籤工作階段、讀取每個工作階段一直在執行的操作，以及在它們之間傳送訊息。以日常用語詢問：「哪個工作階段涉及了身份驗證重構？」、「API 工作階段得出了什麼結論？」或「告訴付款工作階段 schema 已變更」。您也可以詢問 Claude 重新命名或存檔工作階段。Claude 存檔工作階段的方式與側邊欄的存檔圖示相同，因此可以請它清理 PR 已合併的工作階段。

透過此使用介面，Claude 只能看到桌面應用程式本身執行的工作階段：Code 標籤中的本機、[SSH](#ssh-sessions) 和 [WSL](/docs/zh-TW/desktop-wsl) 工作階段。Claude 看不到雲端工作階段，或您從終端機 CLI 或 VS Code 擴充功能啟動的工作階段，即使在同一專案的 worktrees 中也是如此，因此有九個終端機 worktrees 開啟和兩個桌面工作階段時，Claude 在其中一個回答會報告另一個桌面工作階段。Claude 永遠不會列出您詢問的工作階段。預設情況下，它會看到 20 個最近活躍的工作階段，並跳過已存檔的工作階段，除非您要求它們。[跨工作階段傳訊](/docs/zh-TW/cross-session-messaging)另外讓 Claude 傳送訊息到[您的其他 Claude Code 工作階段](/docs/zh-TW/cross-session-messaging#see-which-sessions-claude-can-reach)，包括終端機工作階段。

當 Claude 透過此使用介面傳送訊息到另一個工作階段時，Claude Code 會在那裡將其顯示為一張卡片，標籤為傳送工作階段的標題和返回連結，因此您總是可以看到訊息來自何處。如果接收工作階段正在執行任務中，Claude Code 會保留訊息，Claude 會在目前工作完成後讀取它。接收端的 Claude 可以回覆，Claude Code 會透過此使用介面傳遞回覆。Claude 無法傳遞到已存檔的工作階段，並會在訊息未送達時告訴您。

Claude Code 在工作階段間應用四個安全行為：

* 在 Claude 存檔工作階段之前，您會收到核准卡片，但自動模式和略過權限模式除外，在這兩種模式下，Claude 可以在沒有核准卡片的情況下存檔工作階段。若要被詢問，請切換到 Manual。
* 透過此使用介面，Claude 無法從沒有人監視的工作階段（例如排程任務執行）傳送跨工作階段訊息，也無法傳遞訊息到這類工作階段。
* Claude Code 會根據接收工作階段的[入站控制](/docs/zh-TW/cross-session-messaging#control-inbound-messages)檢查來自此使用介面的每條訊息，即使接收工作階段本身沒有[跨工作階段傳訊](/docs/zh-TW/cross-session-messaging#availability)。如果您在接收工作階段中將 [`crossSessionInbound`](/docs/zh-TW/settings-reference#crosssessioninbound) 設定為 `refuse`，Claude Code 會丟棄來自此使用介面的訊息。Claude Code 會向 Claude 桌面應用程式報告拒絕。在 v2.1.234 之前，Claude Code 會丟棄來自此使用介面到沒有跨工作階段傳訊的接收工作階段的每條訊息。
* Claude Code 引用每條傳入訊息並將其歸因於傳送它的工作階段，Claude 在對其進行操作時仍然遵循接收工作階段自己的權限設定。

Claude 也可以建議新工作階段。當它注意到值得修復但超出目前任務範圍的內容時，它會在聊天中以任務晶片的形式提供該工作。點擊晶片以在具有自己 worktree 的新工作階段中啟動該工作；Claude 會不中斷地繼續您的目前工作階段。

<h3 id="run-long-running-tasks-in-the-cloud">
  在雲端執行長時間執行的任務
</h3>

對於大型重構、測試套件、遷移或其他長時間執行的任務，在開始工作階段時選擇 **Cloud** 而不是 **Local**。雲端工作階段預設在 Anthropic 管理的基礎設施上執行，即使您關閉應用程式或關閉電腦，也會繼續執行。隨時檢查以查看進度或引導 Claude 朝不同方向發展。您也可以從 [claude.ai/code](https://claude.ai/code) 或 [Claude 行動應用程式](/docs/zh-TW/mobile)監控雲端工作階段。

雲端工作階段也支援多個儲存庫。選擇雲端環境後，點擊所選儲存庫旁邊的 **+** 按鈕，將其他儲存庫新增到工作階段。每個儲存庫都有自己的分支選擇器。這對於跨越多個程式碼庫的任務很有用，例如更新共用程式庫及其使用者。

有關雲端工作階段如何運作的更多資訊，請參閱[在雲端使用 Claude Code](/docs/zh-TW/claude-code-on-the-web)。當一項工作需要許多雲端工作階段時，請在側邊欄中選擇 **Projects** 以建立[專案](/docs/zh-TW/claude-projects)，Claude 會從一個對話中為您啟動並追蹤工作階段。

<Note>
  [SSH 工作階段](#ssh-sessions)中的任務也可以[在 Desktop 中斷連線時繼續執行](#keep-a-task-running-while-desktop-is-disconnected)，但若使用 Claude 帳戶，任務可能會在其登入過期時停止。
</Note>

<h3 id="continue-in-another-surface">
  在另一個使用介面中繼續
</h3>

若要在其他地方繼續工作階段，請從工作階段標題旁的插入符號或側邊欄中該工作階段的列開啟工作階段選單，然後選擇 **Open in**：

* 選擇 **Cloud** 以將工作階段作為[雲端工作階段](/docs/zh-TW/claude-code-on-the-web)繼續，您的對話會以摘要形式帶過去。在您確認之前，對話框會說明您的檔案是否也會一併移動，以及雲端工作階段準備就緒後是否會存檔此工作階段。透過 [SSH](#ssh-sessions) 或在 [WSL](/docs/zh-TW/desktop-wsl) 中執行的工作階段無法以此方式移動。
* 選擇已安裝的編輯器或您的檔案管理器，以在其中開啟該工作階段在磁碟上的資料夾。

<h3 id="control-which-sessions-appear-on-your-other-devices">
  控制哪些工作階段會出現在您的其他裝置上
</h3>

本機工作階段在 [Remote Control](/docs/zh-TW/remote-control) 將其連線後，就會出現在您的其他裝置上。已連線的工作階段會出現在 [claude.ai/code](https://claude.ai/code) 的工作階段清單中，以及已登入您 claude.ai 帳戶之裝置上的 Claude 應用程式中。

本機工作階段會在您為其開啟 Remote Control 時連線，或在啟動時自動連線：

* **您為該工作階段開啟**：使用該工作階段的 **Remote Control** 開關，或在其提示詞輸入框中輸入 `/remote-control`。
* **在啟動時連線**：當 **Settings > Claude Code** 中的 **Connect new sessions to Remote Control** 開啟時，新工作階段會自動連線。如果您從未變更該設定，Desktop 會遵循您使用者設定或受管設定中的 [`remoteControlAtStartup`](/docs/zh-TW/settings-reference#remotecontrolatstartup)，其次是您組織的預設值。

若要查看工作階段是否已連線，請查看工具列中工作階段標題前的筆記型電腦圖示。當工作階段已連線或正在連線時，該圖示會反白顯示。點擊它以開啟該工作階段的 **Remote Control** 開關。

若要讓工作階段不出現在您的其他裝置上，請在您需要的層級關閉 Remote Control：

* **單一工作階段**：關閉其 **Remote Control** 開關。在啟動時即已連線的工作階段中，輸入 `/remote-control` 會讓 Remote Control 保持開啟，並顯示 `Remote Control is already on. This session connected automatically when it started.`。點擊該行上的 **Turn off** 以中斷連線。
* **此電腦上的新 Desktop 工作階段**：在 **Settings > Claude Code** 中關閉 **Connect new sessions to Remote Control**。如果它已顯示為關閉，請先將其開啟再關閉，讓 Desktop 儲存您的選擇。儲存後，它會優先於 `remoteControlAtStartup` 和預設值。
* **此電腦上的任何工作階段，包括 CLI**：在 `~/.claude/settings.json` 中將 [`disableRemoteControl`](/docs/zh-TW/settings-reference#disableremotecontrol) 設定為 `true`，以阻止工作階段連線。在您儲存該檔案時已連線的工作階段會保持連線，直到您為其關閉 Remote Control。

若要隱藏已出現在您其他裝置上的工作階段，請在 Desktop 中將其存檔。Desktop 也會存檔該工作階段的 Remote Control 副本，使其離開那些裝置上的預設工作階段清單。若要在那裡檢視或刪除它，請參閱[存檔工作階段](/docs/zh-TW/claude-code-on-the-web#archive-sessions)。

<h3 id="sessions-from-dispatch">
  來自 Dispatch 的工作階段
</h3>

[Dispatch](https://support.claude.com/en/articles/13947068) 是與 Claude 的持久對話，存在於 [Cowork](https://claude.com/product/cowork) 標籤中。您向 Dispatch 傳送任務，它決定如何處理它。

任務可以透過兩種方式成為 Code 工作階段：您直接要求一個，例如「開啟 Claude Code 工作階段並修復登入錯誤」，或 Dispatch 決定任務是開發工作並自行產生一個。通常路由到 Code 的任務包括修復錯誤、更新相依性、執行測試或開啟 pull request。研究、文件編輯和試算表工作保留在 Cowork 中。

無論哪種方式，Code 工作階段都會在 Code 標籤的側邊欄中出現，帶有 **Dispatch** 徽章。當它完成或需要您的核准時，您會在手機上收到推送通知。

如果您已[啟用電腦使用](#let-claude-use-your-computer)，Dispatch 產生的 Code 工作階段也可以使用它。這些工作階段中的應用程式核准在 30 分鐘後過期並重新提示，而不是像常規 Code 工作階段那樣持續整個工作階段。

有關設定、配對和 Dispatch 設定，請參閱 [Dispatch 幫助文章](https://support.claude.com/en/articles/13947068)。Dispatch 需要 Pro 或 Max 計畫，在 Team 或 Enterprise 計畫上不可用。

Dispatch 是當您遠離終端機時與 Claude 合作的多種方式之一。如需與其他選項的比較，請參閱[平台和整合](/docs/zh-TW/platforms#work-when-you-are-away-from-your-terminal)。

<h2 id="extend-claude-code">
  擴展 Claude Code
</h2>

連接外部服務、新增可重複使用的工作流程、自訂 Claude 的行為，並配置預覽伺服器。若要在一個地方管理連接器、skills 和 plugins，請點擊側邊欄中的 **Customize**。[Cowork](https://claude.com/product/cowork) 標籤在桌面應用程式中從此 Customize 配置取得其 skills、plugins 和連接器，該配置透過您的 claude.ai 帳戶同步，而不是從 CLI 的 `~/.claude` 目錄。

Claude Code 也會在您使用相同帳戶登入的終端機會話中載入為您的 claude.ai 帳戶啟用的 skills 和 plugins。請參閱 [Skills synced from claude.ai](/docs/zh-TW/skills#how-synced-skills-behave) 和 [Plugins synced from claude.ai](/docs/zh-TW/plugins/loading#synced-plugins)。

<h3 id="connect-external-tools">
  連接外部工具
</h3>

對於本機和 [SSH](#ssh-sessions) 會話，點擊提示框旁的 **+** 按鈕，然後選擇 **Connectors** 以新增 Google Calendar、Slack、GitHub、Linear、Notion 等整合。您可以在會話之前或期間新增連接器。**+** 按鈕在雲端或 WSL 會話中不可用，但 [routines](/docs/zh-TW/routines) 在 routine 建立時配置連接器。

若要管理或斷開連接器，請在桌面應用程式中前往「設定」→「Connectors」，或從提示框中的「Connectors」選單中選擇 **Manage connectors**。

連接後，Claude 可以讀取您的日曆、傳送訊息、建立問題，並直接與您的工具互動。您可以詢問 Claude 在您的會話中配置了哪些連接器。

連接器是 [MCP servers](/docs/zh-TW/mcp)，具有圖形設定流程。使用它們可以快速與支援的服務整合。對於「Connectors」中未列出的整合，透過 [settings files](/docs/zh-TW/mcp#installing-mcp-servers) 手動新增 MCP servers。您也可以 [create custom connectors](https://support.claude.com/en/articles/11175166-getting-started-with-custom-connectors-using-remote-mcp)。

<h3 id="use-skills">
  使用 skills
</h3>

[Skills](/docs/zh-TW/skills) 擴展 Claude 可以執行的操作。Claude 在相關時自動載入它們，或者您可以直接呼叫一個：在提示框中輸入 `/` 或點擊 **+** 按鈕並選擇 **Slash commands** 以瀏覽可用的內容。這包括 [built-in commands](/docs/zh-TW/commands)、您的 [custom skills](/docs/zh-TW/skills#create-your-first-skill)、來自您程式碼庫的專案 skills，以及來自任何 [installed plugins](/docs/zh-TW/plugins/install) 的 skills。選擇一個，它會在輸入欄位中突出顯示。在其後輸入您的任務並照常傳送。

您可以在 Claude 正在工作時傳送命令，就像傳送任何其他訊息一樣，工作階段會在回合完成後回到閒置狀態。

本機會話從 `~/.claude/skills/` 載入您的個人 skills。[SSH](#ssh-sessions) 會話從遠端主機的主目錄讀取 `~/.claude/skills/`，而不是從您的機器。

本機和雲端會話也會載入為您的 claude.ai 帳戶啟用的 skills，除了本機會話（當您的組織設定 [`disableSideloadFlags`](/docs/zh-TW/settings-reference#disablesideloadflags) 時）。雲端會話改為載入它們，而不是 `~/.claude/skills/`，如 [Skills in Cowork and cloud sessions](/docs/zh-TW/skills#skills-in-cowork-and-cloud-sessions) 所述。

<h3 id="install-plugins">
  安裝 plugins
</h3>

[Plugins](/docs/zh-TW/plugins/overview) 是可重複使用的套件，可將 skills、agents、hooks、MCP servers 和 LSP 配置新增到 Claude Code。您可以從桌面應用程式安裝 plugins，而無需使用終端機。

對於本機和 [SSH](#ssh-sessions) 會話，點擊提示框旁的 **+** 按鈕，然後選擇 **Plugins** 以查看您已安裝的 plugins 及其 skills。若要新增 plugin，從子選單中選擇 **Add plugin** 以開啟 plugin 瀏覽器，它顯示來自您配置的 [marketplaces](/docs/zh-TW/plugins/overview)（包括官方 Anthropic 市場）的可用 plugins。選擇 **Manage plugins** 以啟用、停用或解除安裝 plugins。

您可以將 plugins 限定於您的使用者帳戶、特定專案或僅本機。如果您的組織集中管理 plugins，這些 plugins 在桌面會話中的可用方式與在 CLI 中相同，除了桌面應用程式在 [`disableSideloadFlags`](/docs/zh-TW/settings-reference#disablesideloadflags) 下扣留的那些。

plugin 瀏覽器在雲端會話中不可用，而且您從桌面應用程式安裝的 plugins 不適用於雲端會話。雲端會話也不會安裝儲存庫的 `.claude/settings.json` 宣告的 plugins，如 [What carries over from your setup](/docs/zh-TW/cloud-environments#what-carries-over-from-your-setup) 所述。Plugins 在 WSL 會話中不可用。有關完整的 plugin 參考（包括建立您自己的 plugins），請參閱 [plugins](/docs/zh-TW/plugins/overview)。

<h3 id="configure-preview-servers">
  配置預覽伺服器
</h3>

Claude 會自動偵測您的開發伺服器設定，並將配置儲存在您開始會話時選擇的資料夾根目錄中的 `.claude/launch.json`。Preview 使用此資料夾作為其工作目錄，因此如果您選擇了父資料夾，具有自己開發伺服器的子資料夾將不會自動偵測。若要使用子資料夾的伺服器，請直接在該資料夾中開始會話，或手動新增配置。

若要自訂伺服器的啟動方式，例如使用 `yarn dev` 而不是 `npm run dev` 或變更連接埠，請編輯 `.claude/launch.json`。該檔案支援帶註解的 JSON。

```json theme={null}
{
  "version": "0.0.1",
  "configurations": [
    {
      "name": "my-app",
      "runtimeExecutable": "npm",
      "runtimeArgs": ["run", "dev"],
      "port": 3000
    }
  ]
}
```

您可以定義多個配置以從同一專案執行不同的伺服器，例如前端和 API。請參閱下面的 [examples](#examples)。

<h4 id="auto-verify-changes">
  自動驗證變更
</h4>

啟用 `autoVerify` 時，Claude 會在編輯檔案後自動驗證程式碼變更。它會擷取螢幕截圖、檢查錯誤，並在完成回應之前確認變更有效。

自動驗證預設為開啟。若要按專案停用，請將 `"autoVerify": false` 新增到 `.claude/launch.json`，或在 Browser 窗格的 **⋮** 選單中關閉 **Auto-verify changes**。

```json theme={null}
{
  "version": "0.0.1",
  "autoVerify": false,
  "configurations": [
    {
      "name": "my-app",
      "runtimeExecutable": "npm",
      "runtimeArgs": ["run", "dev"],
      "port": 3000
    }
  ]
}
```

停用後，預覽工具仍然可用，您可以隨時要求 Claude 進行驗證。自動驗證使其在每次編輯後自動進行。

<h4 id="configuration-fields">
  配置欄位
</h4>

`configurations` 陣列中的每個項目接受以下欄位：

| 欄位 | 類型 | 描述 |
| - | - | - |
| `name` | string | 此伺服器的唯一識別碼 |
| `runtimeExecutable` | string | 要執行的命令，例如 `npm`、`yarn` 或 `node` |
| `runtimeArgs` | string\[] | 傳遞給 `runtimeExecutable` 的引數，例如 `["run", "dev"]` |
| `port` | number | 您的伺服器監聽的連接埠。預設為 3000 |
| `cwd` | string | 相對於您的專案根目錄的工作目錄。預設為專案根目錄。使用 `${workspaceFolder}` 明確參考專案根目錄 |
| `env` | object | 其他環境變數作為鍵值對，例如 `{ "NODE_ENV": "development" }`。不要在此處放置機密，因為此檔案會提交到您的儲存庫。若要將機密傳遞到您的開發伺服器，請在 [local environment editor](#local-sessions) 中設定它們。 |
| `autoPort` | boolean | 如何處理連接埠衝突。請參閱 [Port conflicts](#port-conflicts) |
| `program` | string | 使用 `node` 執行的指令碼。請參閱 [when to use `program` vs `runtimeExecutable`](#when-to-use-program-vs-runtimeexecutable) |
| `args` | string\[] | 傳遞給 `program` 的引數。僅在設定 `program` 時使用 |
| `url` | string | preview 開啟的位址，而不是 `http://localhost:<port>`。請參閱 [open the preview at a specific URL](#open-the-preview-at-a-specific-url) |

<a id="when-to-use-program-vs-runtimeexecutable" />

<h5 id="when-to-use-program-vs-runtimeexecutable">
  何時使用 `program` 與 `runtimeExecutable`
</h5>

使用 `runtimeExecutable` 搭配 `runtimeArgs` 透過套件管理器啟動開發伺服器。例如，`"runtimeExecutable": "npm"` 搭配 `"runtimeArgs": ["run", "dev"]` 執行 `npm run dev`。

當您有想要直接使用 `node` 執行的獨立指令碼時，使用 `program`。例如，`"program": "server.js"` 執行 `node server.js`。使用 `args` 傳遞其他標誌。

<a id="open-the-preview-at-a-specific-url" />

<h5 id="open-the-preview-at-a-specific-url">
  在特定 URL 開啟 preview
</h5>

根據預設，preview 開啟 `http://localhost:<port>`。當您的伺服器需要不同的位址時，設定 `url`。常見情況是需要本機 HTTPS 的伺服器、使用 `*.localhost` 子網域的應用程式，以及透過重新導向登入您的應用程式。

```json theme={null}
{
  "version": "0.0.1",
  "configurations": [
    {
      "name": "my-app",
      "runtimeExecutable": "npm",
      "runtimeArgs": ["run", "dev"],
      "port": 8443,
      "url": "https://localhost:8443"
    }
  ]
}
```

Localhost 位址直接開啟，完全像預設連接埠位址一樣。這包括 `localhost`、任何 `*.localhost` 子網域、`127.0.0.1` 和 `::1`。基於安全考量，localhost `url` 必須只是您伺服器的來源 — 沒有路徑或查詢，且連接埠必須符合項目的連接埠。若要顯示特定頁面，請在 preview 開啟後要求 Claude 導覽到該處。具有路徑、查詢或不符合連接埠的 localhost `url` 會報告為配置錯誤，該錯誤會命名 url 並顯示修正。

對於任何其他位址，Desktop 會在 preview 首次開啟它時要求您的許可，就像您在 preview 中瀏覽到新網站時一樣。外部位址可能包括路徑。選擇 **Always allow** 以在未來跳過該網站的提示。限制 preview 中外部網站的組織原則仍然適用。

若要預覽您已經自己執行的伺服器，請設定 `url` 而不設定命令。Claude 會將 preview 附加到您執行中的伺服器，而不是啟動一個：

```json theme={null}
{
  "version": "0.0.1",
  "configurations": [
    {
      "name": "my-app",
      "url": "https://app.localhost:3000"
    }
  ]
}
```

`url` 必須是 `http` 或 `https`，且不得包含使用者名稱或密碼。

<h4 id="port-conflicts">
  連接埠衝突
</h4>

`autoPort` 欄位控制當您偏好的連接埠已在使用時會發生什麼：

* **`true`**：Claude 自動尋找並使用空閒連接埠。適合大多數開發伺服器。
* **`false`**：Claude 失敗並出現錯誤。當您的伺服器必須使用特定連接埠時使用此選項，例如 OAuth 回呼或 CORS 允許清單。
* **未設定（預設）**：您的伺服器會取得下一個空閒連接埠，與 `true` 相同，但下述一種情況除外。在 Claude Desktop v2.37337.0 之前，Claude 會改為詢問伺服器是否需要該確切連接埠，然後將您的答案儲存在 `launch.json` 中。

如果您偏好的連接埠已在使用且未設定 `autoPort`，當下列所有條件都成立時，您的伺服器會保持停止狀態：

* 您透過 `npm`、`yarn`、`pnpm` 或 `bun` 指令碼啟動伺服器。
* 您偏好的連接埠寫死在該指令碼中，或 Claude 無法檢查該指令碼。
* 您未在 `runtimeArgs` 中傳遞連接埠。

在這種情況下，請釋放該連接埠、移除寫死的值，或變更 `port` 以符合指令碼。改為設定 `"autoPort": true` 僅適用於會讀取 `PORT` 的指令碼。

讓您的伺服器從 `PORT` 環境變數讀取其連接埠，該變數帶有指派的連接埠。當 Claude 將您的伺服器移至不同的連接埠時，也會改寫 `runtimeArgs` 中的 `--port` 或 `-p` 值以使其相符。

<h4 id="examples">
  範例
</h4>

這些配置顯示不同專案類型的常見設定：

<Tabs>
  <Tab title="Next.js">
    此配置使用 Yarn 在連接埠 3000 上執行 Next.js 應用程式：

    ```json theme={null}
    {
      "version": "0.0.1",
      "configurations": [
        {
          "name": "web",
          "runtimeExecutable": "yarn",
          "runtimeArgs": ["dev"],
          "port": 3000
        }
      ]
    }
    ```
  </Tab>

  <Tab title="Multiple servers">
    對於具有前端和 API 伺服器的 monorepo，定義多個配置。前端使用 `autoPort: true`，因此如果 3000 被佔用，它會選擇空閒連接埠，而 API 伺服器需要確切的連接埠 8080：

    ```json theme={null}
    {
      "version": "0.0.1",
      "configurations": [
        {
          "name": "frontend",
          "runtimeExecutable": "npm",
          "runtimeArgs": ["run", "dev"],
          "cwd": "apps/web",
          "port": 3000,
          "autoPort": true
        },
        {
          "name": "api",
          "runtimeExecutable": "npm",
          "runtimeArgs": ["run", "start"],
          "cwd": "server",
          "port": 8080,
          "env": { "NODE_ENV": "development" },
          "autoPort": false
        }
      ]
    }
    ```
  </Tab>

  <Tab title="Node.js script">
    若要直接執行 Node.js 指令碼而不是使用套件管理器命令，請使用 `program` 欄位：

    ```json theme={null}
    {
      "version": "0.0.1",
      "configurations": [
        {
          "name": "server",
          "program": "server.js",
          "args": ["--verbose"],
          "port": 4000
        }
      ]
    }
    ```
  </Tab>
</Tabs>

<h2 id="environment-configuration">
  環境設定
</h2>

您在[啟動工作階段](#start-a-session)時選擇的環境，決定了 Claude 在何處執行以及您如何連線：

* **Local**：在您的機器上執行，可直接存取您的檔案
* **Cloud**：預設在 Anthropic 管理的基礎架構上執行。即使您關閉應用程式，工作階段仍會繼續。
* **SSH**：在您透過 SSH 連線的遠端機器上執行，例如您自己的伺服器、雲端 VM 或開發容器。正在執行的任務可以[在 Desktop 中斷連線時繼續進行](#keep-a-task-running-while-desktop-is-disconnected)，但使用 Claude 帳戶時，任務可能會在其登入過期時停止。
* **WSL**（Windows）：在您機器上的 [WSL 2 發行版](/docs/zh-TW/desktop-wsl)內執行，使用其 Linux 工具鏈和原生路徑

<h3 id="local-sessions">
  本機工作階段
</h3>

桌面應用程式不一定會繼承您完整的 shell 環境。在 macOS 上，當您從 Dock 或 Finder 啟動應用程式時，它會讀取您的 shell 設定檔（例如 `~/.zshrc` 或 `~/.bashrc`），以提供 Claude Code `PATH` 和一組固定的 Claude Code 變數，但不會提供您在其中匯出的其他變數。在 Windows 上，應用程式會繼承使用者和系統環境變數，但不會讀取 PowerShell 設定檔。

若要在任何平台上為本機工作階段和開發伺服器設定環境變數，請開啟提示詞方塊中的環境下拉選單，將滑鼠游標停在 **Local** 上，然後按一下齒輪圖示以開啟本機環境編輯器。您在此儲存的變數會加密儲存在您的機器上，並套用至您啟動的每個本機工作階段和預覽伺服器。您也可以將變數加入 `~/.claude/settings.json` 檔案中的 `env` 鍵，但這些變數只會傳遞給 Claude 工作階段，而不會傳遞給開發伺服器。如需支援的變數完整清單，請參閱[環境變數](/docs/zh-TW/env-vars)。

[延伸思考](/docs/zh-TW/model-config#extended-thinking)預設為啟用，可提升複雜推理任務的效能，但會使用額外的 token。在 Anthropic API 上，於本機環境編輯器中將 `MAX_THINKING_TOKENS` 設為 `0` 即可關閉思考；這對 Opus 5.5、Sonnet 5.5、Haiku 5.5 或 Fable 模型沒有作用，因為這些模型一律使用延伸思考。在 Anthropic API 上關閉思考時，對於 Claude Code 已知[不接受該組合](/docs/zh-TW/errors#effort-isnt-available-with-thinking-turned-off)的模型（例如 Opus 5），Claude Code 會傳送 effort `high`，而非更高的等級。

在具有[自適應推理](/docs/zh-TW/model-config#adjust-effort-level)的模型上，Claude Code 會忽略正值 `MAX_THINKING_TOKENS` 中的數字本身，因為改由自適應推理控制思考深度。在 Opus 4.6 和 Sonnet 4.6 上，將 `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` 設為 `1` 即可使用固定的思考預算；Fable 模型、Sonnet 5 及更新版本、Haiku 5.5，以及 Opus 4.7 及更新版本一律使用自適應推理，沒有固定預算模式。

<h4 id="local-sessions-on-managed-devices">
  受管裝置上的本機工作階段
</h4>

您的管理員可以透過 [`disableDesktopLocalSessions` 受管設定](#managed-settings)關閉本機工作階段。若管理員已這樣做，**Local** 仍會留在環境下拉選單中，但會呈現灰色且無法選取，並顯示工具提示說明您的組織已將其關閉；在 Windows 上，[WSL](/docs/zh-TW/desktop-wsl) 項目（其在受管裝置上的可用性[另行管理](/docs/zh-TW/admin-setup#wsl-sessions-in-claude-code-desktop)）也會以相同方式呈現灰色。若已設定 SSH 連線，新工作階段預設會使用第一個 SSH 連線；若您嘗試繼續現有的工作階段，Desktop 會顯示訊息，說明此裝置無法使用本機工作階段。請改為選擇 [SSH](#ssh-sessions) 或[雲端](#cloud-sessions)環境，或聯絡您的 IT 團隊。

<h3 id="cloud-sessions">
  雲端工作階段
</h3>

即使您關閉應用程式，雲端工作階段仍會在背景繼續執行。使用量會計入您的[訂閱方案限制](/docs/zh-TW/costs)，不另外收取運算費用。

您可以建立具有不同網路存取層級和環境變數的自訂雲端環境。若要管理這些環境，請開啟提示詞方塊中的環境下拉選單，然後選取 **Cloud**：

* **新增環境**：選取 **Add cloud environment**
* **編輯或封存您自己的其中一個環境**：將滑鼠游標停在該環境上，然後按一下齒輪圖示

如需設定網路存取和環境變數的詳細資訊，請參閱[設定雲端環境](/docs/zh-TW/cloud-environments)。

<h3 id="ssh-sessions">
  SSH 工作階段
</h3>

SSH 工作階段可讓您在遠端機器上執行 Claude Code，同時使用桌面應用程式作為介面。這對於處理位於雲端 VM、開發容器，或具有特定硬體或相依性的伺服器上的程式碼庫很有用。

<Note>
  如果您搭配[第三方供應商](/docs/zh-TW/third-party-integrations)使用 Desktop，SSH 工作階段需要另外設定。請參閱 [SSH remote sessions in Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/ssh-remote-sessions)。
</Note>

若要新增 SSH 連線，請在啟動工作階段之前開啟提示詞方塊中的環境下拉選單，然後選取 **SSH > Add SSH connection…** 並填寫連線詳細資料：

* **Name**：此連線的易記標籤
* **SSH host**：`user@hostname` 或 `~/.ssh/config` 中定義的主機
* **SSH port**：若留空則預設為 22，或使用您 SSH 設定中的連接埠
* **SSH key (optional)**：您私密金鑰的路徑，例如 `~/.ssh/id_ed25519`。留空則使用您的 SSH 設定或 SSH agent。
* **Worktree folder**：遠端機器上的資料夾，例如 `~/worktrees`，新工作階段會在其中建立 worktree。留空則使用[遠端機器的預設值](#choose-where-ssh-session-worktrees-go)。

新增後，連線會出現在環境下拉選單的 **SSH** 下方。選取它即可在該機器上啟動工作階段。Claude 會在遠端機器上執行，並可存取其檔案和工具。

遠端機器可以執行 Linux、macOS 或 [Windows](#windows-remote-machines)。Desktop 會在您第一次連線時自動在遠端機器上安裝 Claude Code。連線後，SSH 工作階段支援權限模式、連接器、外掛和 MCP 伺服器。

<h4 id="remote-machine-requirements-for-ssh-sessions">
  SSH 工作階段的遠端機器需求
</h4>

Linux 或 macOS 遠端機器需要支援的處理器、具有 SFTP 的 SSH 伺服器、未以 `noexec` 掛載的安裝資料夾、可運作的 shell，以及網路存取。請在連線之前，或在登入後連線失敗時，檢查每一項需求：

* **系統**：x86\_64 或 arm64 處理器。該機器也必須符合 Claude Code 的[系統需求](/docs/zh-TW/setup#system-requirements)。在 Linux 上，Claude Code 需要 glibc 2.17 或更新版本，或 musl。若要查看機器使用哪一種，請在該機器上執行 `ldd --version`。在 Alpine Linux 等以 musl 為基礎的發行版上，也請安裝 [Claude Code 所需的套件](/docs/zh-TW/setup#alpine-linux-and-musl-based-distributions)。
* **SFTP**：SSH 伺服器必須提供 SFTP 子系統，其 `sshd_config` 中的 `Subsystem sftp` 行會開啟此子系統。若要檢查，請在您電腦上的終端機中以 `sftp` 連線到相同的主機和連接埠。可正常運作的伺服器會顯示 `sftp>` 提示字元。
* **每個連線的工作階段數**：macOS 和 Linux 上的 Desktop 會在一個 SSH 連線上開啟多個工作階段。如果伺服器的 `sshd_config` 設定了 `MaxSessions 1`，請將其調高，例如調到 OpenSSH 的預設值 10。
* **安裝資料夾**：Desktop 會在您家目錄的 `~/.claude/remote/` 下安裝輔助程式和 Claude Code。它會從該處執行這些程式，因此該資料夾不能位於以 `noexec` 掛載的檔案系統上。請在每位連線使用者的家目錄中預留約 1 GB 的磁碟空間。如需該資料夾包含的內容，請參閱[遠端機器上的檔案和程序](#files-and-processes-on-the-remote-machine)。
* **Shell**：遠端機器上為您帳戶設定的 shell 必須能執行透過 SSH 傳送的命令，如同 Bash、Zsh 和 `sh`
* **網路**：Claude Code 在遠端機器上執行，並從該處發出網路請求，因此該機器需要 [Claude Code 所需的網路存取](/docs/zh-TW/network-config#network-access-requirements)。如果該機器無法下載 Claude Code，Desktop 會在您的電腦上下載後再上傳。Claude Code 的其他請求仍會從遠端機器發出。在 Linux 遠端機器上，如果這些請求需要代理伺服器，請[為 SSH 工作階段設定它](#set-a-proxy-or-a-ca-certificate-for-ssh-sessions)。

<h4 id="set-a-proxy-or-a-ca-certificate-for-ssh-sessions">
  為 SSH 工作階段設定代理伺服器或 CA 憑證
</h4>

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

SSH 工作階段不會從這些檔案取得這些變數，即使在該機器的終端機中執行的 `claude` 會取得。工作階段可能會因此停滯，或顯示 **The connection from … to the API failed** 或 **Authentication failed**，而重新登入也無濟於事。

<Steps>
  <Step title="加入變數">
    對於 CA 檔案，請使用 [`NODE_EXTRA_CA_CERTS`](/docs/zh-TW/network-config#custom-ca-certificates)，因為 Claude Code 不會信任 `~/.claude/settings.json` 中來自 `SSL_CERT_FILE` 的 CA。此範例設定了代理伺服器和 CA 檔案：

    ```json ~/.claude/settings.json theme={null}
    {
      "env": {
        "HTTPS_PROXY": "http://proxy.example.com:8080",
        "NODE_EXTRA_CA_CERTS": "/etc/ssl/certs/example-ca.pem"
      }
    }
    ```
  </Step>

  <Step title="再次傳送您的訊息">
    請再次傳送您的訊息，因為您在該檔案中新增或變更的變數會在幾秒內生效。如果仍然失敗，請啟動新的工作階段。
  </Step>
</Steps>

<h5 id="find-a-proxy-or-ca-variable-set-elsewhere-on-the-remote-machine">
  找出在遠端機器其他位置設定的代理伺服器或 CA 變數
</h5>

請檢查 Linux 遠端機器是否在其他位置設定了代理伺服器或 CA 變數，因為工作階段會使用該值，並[忽略任何設定檔中的值](/docs/zh-TW/settings-reference#how-env-values-interact-with-your-shell)：

<Steps>
  <Step title="列出遠端機器設定的變數">
    在您電腦上的終端機中執行 `ssh devbox env`，並將主機換成您自己的。
  </Step>

  <Step title="在設定變數的位置變更該變數">
    如果清單中有該變數，請在設定它的檔案中變更，例如遠端機器上的 `~/.zshenv`、`/etc/environment` 或 `~/.bashrc`。
  </Step>

  <Step title="讓工作階段取得新值">
    重新啟動遠端機器，或結束 Desktop 並終止輔助程式的程序，如[移除輔助程式](#files-and-processes-on-the-remote-machine)的前兩個步驟所示。請在沒有任務執行時進行，因為任一種方式都會中斷 Claude 的工作。
  </Step>
</Steps>

<h4 id="use-your-ssh-configuration-on-macos-and-linux">
  在 macOS 和 Linux 上使用您的 SSH 設定
</h4>

在 macOS 和 Linux 上，Desktop 會執行您電腦上的 OpenSSH 用戶端來連線，因此會使用您的 `~/.ssh/config`。透過 OpenSSH 用戶端連線需要 Claude Desktop v1.37937.0 或更新版本。在 **SSH host** 欄位中輸入該檔案中的 `Host` 名稱，即可使用其項目中的設定，例如 `HostName`、`User`、`IdentityFile`、`CertificateFile`、`ProxyJump` 和 `ProxyCommand`。

新增連線之前，請在您電腦上的終端機中檢查用戶端和項目：

* **用戶端版本**：執行 `ssh -V`。用戶端必須是 OpenSSH 7.6 或更新版本。
* **項目**：以 `Host` 名稱執行 `ssh`，例如 `ssh devbox`。如果失敗，請先修正該項目。

您可以將 **SSH port** 和 **SSH key (optional)** 欄位留空。如果您填寫其中之一，Desktop 會將其與項目一併使用：

* **SSH port**：此處的值會覆寫項目的 `Port`
* **SSH key (optional)**：除了項目的 `IdentityFile` 和您 SSH agent 中的金鑰之外，Desktop 也會提供您選取的金鑰檔案

<h5 id="reach-a-machine-behind-a-jump-host">
  透過跳板主機連線到機器
</h5>

若要連線到位於跳板主機（也稱為 bastion）後方的機器，請在項目中設定 `ProxyJump` 或 `ProxyCommand`。下列項目會透過 `bastion.example.com` 連線到 `devbox.internal.example.com`：

```text ~/.ssh/config theme={null}
Host devbox
  HostName devbox.internal.example.com
  User alice
  ProxyJump bastion.example.com
```

在 **SSH host** 欄位中輸入 `devbox`。

<h5 id="reach-a-container-on-a-remote-machine">
  連線到遠端機器上的容器
</h5>

若要在未公開 SSH 連接埠的容器內執行工作階段，請使用 `ProxyCommand` 連線到它，因為 Desktop 不會執行您所連線項目的 `RemoteCommand`。如果您的項目使用 `RemoteCommand` 進入容器，工作階段會在該項目所登入的機器上執行，而不是在容器中執行。

<Steps>
  <Step title="加入項目">
    將下列項目新增至 `~/.ssh/config` 的結尾，若您有第一個 `Host *` 項目，則直接新增在其上方。請將 Docker 容器 `devbox`、其使用者 `dev` 與機器 `build.example.com` 替換為您自己的值。此項目的命令會為每個連線在容器內啟動一個 SSH 伺服器：

    ```text ~/.ssh/config theme={null}
    Host devbox-container
      User dev
      ProxyCommand ssh build.example.com docker exec -i devbox /usr/sbin/sshd -i
    ```
  </Step>

  <Step title="準備容器">
    * 安裝 OpenSSH 伺服器，並使用在您重新建置映像或重新建立容器時保持不變的主機金鑰
    * 為 `User` 中指定的帳戶提供登入方式，例如 `authorized_keys` 檔案
    * 確認容器符合[遠端機器需求](#remote-machine-requirements-for-ssh-sessions)
  </Step>

  <Step title="檢查允許清單">
    如果您的管理員[限制 SSH 主機](#restrict-which-ssh-hosts-users-can-connect-to)，請在您電腦上的終端機中執行 `ssh -G devbox-container`。請管理員在 `sshHostAllowlist` 中允許它輸出的 `hostname`，此處為 `devbox-container`。當管理員允許該名稱時，就等於允許您項目的 `ProxyCommand` 所連線的任何目標。
  </Step>

  <Step title="測試項目，然後連線">
    在您電腦上的終端機中執行 `ssh devbox-container`。修正它回報的問題，並重複執行，直到它在不詢問您任何內容的情況下於容器中開啟 shell：

    * **如果 `ssh` 要求輸入密碼、複雜密碼或驗證碼**：改用無需提示即可運作的登入方式，例如您 SSH agent 持有的金鑰
    * **如果 `ssh` 回報 `Cannot execute command-line and remote command.` 或 `Bad packet length`**：從您 `build.example.com` 的項目中移除 `RemoteCommand` 和 `RequestTTY`。之後，在您電腦上的終端機中執行 `ssh build.example.com` 會在該機器上開啟 shell，而不是在容器中。
    * **如果 `ssh` 回報 `Connection closed by UNKNOWN port 65535`**：在同一個終端機中執行 `ssh build.example.com docker exec devbox /usr/sbin/sshd -t`。
      * 如果輸出 `Missing privilege separation directory: /run/sshd`，請在容器中建立該資料夾。
      * 如果輸出 `no hostkeys available` 且容器有主機金鑰，請在此命令和項目中的 `exec` 之後加入 `-u root`。

    然後在 **SSH host** 欄位中輸入 `devbox-container`。
  </Step>
</Steps>

<h5 id="use-variables-from-your-shell-in-a-proxycommand">
  在 `ProxyCommand` 中使用來自您 shell 的變數
</h5>

若要在 `ProxyCommand` 或 `Match exec` 命令中使用您自己的環境變數，請在 shell 啟動檔案（例如 `~/.zshrc`）中匯出它，然後結束並重新開啟 Desktop。Desktop 啟動時會讀取您登入 shell 匯出的內容，並保留這些值直到您結束它。

這需要 Claude Desktop v2.37337.0 或更新版本，以及接受 `-0` 的 `env` 命令，您可以在電腦上的終端機中執行 `env -0` 來檢查。

<Note>
  如果您的 shell 設定了臨時 AWS 憑證，請[為 AWS CLI 提供設定檔](#use-aws-credentials-in-a-proxycommand)，而不是匯出 `AWS_*` 變數。
</Note>

<a id="use-aws-credentials-in-a-proxycommand" />

<h5 id="use-aws-credentials-in-a-proxycommand">
  在 `ProxyCommand` 中使用 AWS 憑證
</h5>

如果您在 shell 啟動檔案中設定了臨時 AWS 憑證，執行 AWS CLI 的 `ProxyCommand` 可能在終端機中能夠連線，但在 Desktop 中失敗。當您的 shell 匯出 `AWS_SESSION_TOKEN`、`AWS_SECURITY_TOKEN` 或 `AWS_CREDENTIAL_EXPIRATION` 時，Desktop 中的 `ssh` 和您的 `ProxyCommand` 不會取得 shell 的 AWS 憑證、`AWS_REGION` 或 `AWS_PROFILE`。

如果 AWS CLI 沒有其他區域或憑證來源，它會失敗並顯示 `You must specify a region` 或 `Unable to locate credentials`。若要從 Desktop 連線，請為 AWS CLI 提供一個它從 `~/.aws/config` 讀取的設定檔：

<Steps>
  <Step title="新增具有區域和憑證來源的設定檔">
    此範例新增名為 `corp` 的設定檔，該設定檔從輔助程式取得憑證：

    ```ini ~/.aws/config theme={null}
    [profile corp]
    region = us-east-1
    credential_process = /full/path/to/your-credential-helper
    ```

    * **`region`**：提供您所連線機器的 AWS 區域
    * **`credential_process`**：提供以 [AWS 文件所述的 JSON 格式](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sourcing-external.html)輸出憑證之程式的完整路徑。請選擇不需要您輸入任何內容的程式，因為 AWS CLI 會在每次連線時執行它，包括您不在時的重新連線。
    * **IAM Identity Center**：加入設定檔的 [IAM Identity Center 設定](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sso.html)來取代 `credential_process`。請在連線之前於終端機中執行 `aws sso login --profile corp`，並在該登入失效時再次執行。
  </Step>

  <Step title="在 ProxyCommand 中指定設定檔">
    此範例將 `--profile` 加入 [AWS 文件中針對 Session Manager 的命令](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-getting-started-enable-ssh-connections.html)：

    ```text ~/.ssh/config theme={null}
    Host i-*
      ProxyCommand sh -c "aws ssm start-session --profile corp --target %h --document-name AWS-StartSSHSession --parameters 'portNumber=%p'"
    ```
  </Step>

  <Step title="再次連線">
    在終端機中以該主機執行 `ssh`，確認項目在該處仍可連線，然後從 Desktop 連線。
  </Step>
</Steps>

<h5 id="raise-the-ssh-connection-timeout">
  提高 SSH 連線逾時
</h5>

如果您的 SSH 設定未針對主機設定 `ConnectTimeout`，Desktop 會給 `ssh` 30 秒的連線時間。透過跳板主機或 `ProxyCommand` 連線時，該時間包含路由連線所需的時間。如果您的路由需要更長時間，請在項目中加入更高的值：

```text ~/.ssh/config theme={null}
Host devbox
  HostName devbox.internal.example.com
  User alice
  ProxyJump bastion.example.com
  ConnectTimeout 120
```

`ssh` 會使用它為主機找到的第一個值，因此請將項目保持在任何設定 `ConnectTimeout` 的 `Host *` 項目之上。若要確認，請在您電腦上的終端機中執行 `ssh -G devbox`。其輸出會包含 `connecttimeout 120`。變更值之後，請結束並重新開啟 Desktop。

如果遠端機器本身會等待您在手機上核准，無論您設定的 `ConnectTimeout` 為何，都請在 45 秒內核准。您無法提高此限制，因為 Desktop 會自行設定 `ServerAliveInterval` 和 `ServerAliveCountMax`，而 `ssh` 會關閉遠端機器在這段時間內未傳送任何內容的登入。如果改為由跳板主機或 `ProxyCommand` 等待您，請在遠端機器的項目中提高 `ConnectTimeout` 以涵蓋該時間。

<h5 id="fix-a-match-host-block-that-only-desktop-applies">
  修正只有 Desktop 會套用的 `Match host` 區塊
</h5>

如果 Desktop 使用了終端機中 `ssh devbox` 不會使用的設定，請在項目的 `HostName` 行上方尋找 `Match host` 區塊。在終端機中，`ssh` 會在 `HostName` 行之前讀取該處的區塊，因此它會將區塊與 `devbox` 比較。Desktop 會在命令列上將 `HostName` 值提供給 `ssh`，因此 `ssh` 會將區塊與該值比較。

若要檢查，請在您電腦上的終端機中執行 `ssh -G`，並如同 Desktop 一樣在命令列上加入項目的 `HostName` 和 `User` 值：

```bash theme={null}
ssh -G -o HostName=devbox.internal.example.com -l alice devbox
```

將輸出與 `ssh -G devbox` 的輸出比較。如果區塊的設定（例如 `proxycommand`）只出現在第一個輸出中，該區塊就只會在 Desktop 中生效。若要讓 Desktop 也略過它，請在其 `Match` 行中加入 `!originalhost devbox`：

```text ~/.ssh/config theme={null}
Match host *.internal.example.com !originalhost devbox
```

若要確認，請再次執行第一個命令。區塊的設定不再出現在其輸出中。

<h5 id="forwarding-settings-that-desktop-leaves-off">
  Desktop 會關閉的轉送設定
</h5>

在與遠端機器的連線上，Desktop 會關閉 `ForwardAgent`、`ForwardX11`、`LocalForward`、`RemoteForward`、`DynamicForward` 和 `Tunnel`，即使您的 SSH 設定開啟了它們。在[終端機](#run-commands-in-the-terminal)或 `!` 命令中，您的轉送設定可能[只有有時會套用](#limits-while-desktop-is-disconnected)，因為 Desktop 可能會在該處啟動遵循這些設定的另一個 `ssh`。

* **若要連線到遠端機器上的連接埠**：[自行轉送](#reach-a-port-on-the-remote-machine)
* **若要從遠端機器使用您自己的金鑰**：在遠端機器本身設定憑證，例如用於 `git push`

若要防止 Desktop 轉送您的 SSH agent 或連接埠，請在您電腦上的終端機中執行 `ssh -G devbox`。然後以 Desktop 可能的執行方式再執行一次，加上它輸出的 `hostname` 和 `user` 值，如 `ssh -G -o HostName=devbox.internal.example.com -l alice devbox`。第二個輸出可能會顯示第一個輸出略過的 `Match` 區塊中的設定。

在兩個輸出中尋找值不是 `no` 的 `forwardagent` 行，以及以 `localforward`、`remoteforward` 或 `dynamicforward` 開頭的行。如果找到，請從您的 SSH 設定中移除該設定。對您的 `ProxyCommand` 以 `ssh` 連線的主機也做同樣的處理。

<h4 id="reach-a-port-on-the-remote-machine">
  連線到遠端機器上的連接埠
</h4>

若要開啟在遠端機器上執行的伺服器（例如連接埠 3000 上的開發伺服器），請自行轉送該連接埠。在您電腦上的終端機中，以 `-L` 和您連線的主機（例如 `devbox`）執行 `ssh`：

```bash theme={null}
ssh -N -L 3000:localhost:3000 devbox
```

如果您在連線上填寫了 **SSH port** 或 **SSH key (optional)**，請以相同的值加入 `-p` 或 `-i`。讓該命令保持執行，並在您電腦上的瀏覽器中開啟 `http://localhost:3000`，即可連線到遠端機器的連接埠 3000。如果 `ssh` 輸出 `open failed: administratively prohibited`，請要求該機器的管理員允許 TCP 轉送，這由 SSH 伺服器 `sshd_config` 中的 `AllowTcpForwarding` 控制。

<h4 id="windows-remote-machines">
  Windows 遠端機器
</h4>

Windows 遠端機器需要 Claude Desktop v2.31226.0 或更新版本。

請使用 Microsoft 的 OpenSSH Server。機器可以是 x64 或 ARM64。SSH 伺服器啟動的 shell 可以是 `cmd.exe`、Windows PowerShell 5.1 或 Git Bash。

Windows 遠端機器的測試比 Linux 遠端機器少。在依賴它之前，請先在該處試用您自己的工作。

在 Windows 遠端機器上，預期會有下列限制（但不限於此）：

* **終端機**：在資料夾為 Windows 路徑（例如 `C:/projects/app`）的工作階段中，[終端機](#run-commands-in-the-terminal)不會開啟
* **沙箱**：Claude Code 在該處以原生 Windows 執行，並在沙箱外執行命令。請參閱[沙箱的執行位置](/docs/zh-TW/sandboxing)。
* **外掛**：Desktop 不會複製包含 Windows 無法儲存之檔案或資料夾名稱（例如含有 `:` 的名稱）的外掛。工作階段會列出 Desktop 略過的外掛。
* **MCP 伺服器**：在某些 Windows 遠端機器上，Claude 對 `claude_desktop_config.json` 中 MCP 伺服器的呼叫會經過 Desktop，因此 Claude [在 Desktop 中斷連線時](#limits-while-desktop-is-disconnected)無法呼叫它們的工具。在 Claude Desktop v2.37337.0 之前，這適用於所有 Windows 遠端機器。
* **Worktree**：worktree 會放在 `<project-root>/.claude/worktrees/`。如果您[選擇其他資料夾](#choose-where-ssh-session-worktrees-go)，Desktop 會忽略它。
* **先前的訊息**：如果 SSH 伺服器的 shell 是 `cmd.exe` 或 Windows PowerShell，您可能必須先連線才能看到工作階段先前的訊息
* **分支**：如果 SSH 伺服器的 shell 是 `cmd.exe` 或 Windows PowerShell，您只能在工作階段的第一則訊息處分支該工作階段
* **中斷連線時執行**：只有在 SSH 伺服器允許程式在啟動它的連線結束後繼續存在時，任務才會[在 Desktop 中斷連線時繼續執行](#keep-a-task-running-while-desktop-is-disconnected)。若要確認，請[測試遠端機器](#prepare-a-long-task)。
* **殘留的程序**：工作階段結束後，請檢查機器上是否有 Claude Code 啟動的程式，因為它們可能會繼續執行。Desktop 安裝的[背景輔助程式](#keep-a-task-running-while-desktop-is-disconnected)在該處不會自行停止。

<h4 id="keep-a-task-running-while-desktop-is-disconnected">
  在 Desktop 中斷連線時讓任務繼續執行
</h4>

如果您的電腦進入睡眠、失去網路或您結束 Desktop，任務會繼續進行，直到完成、需要您處理，或達到其中一項[限制](#limits-while-desktop-is-disconnected)。闔上筆電蓋子視為睡眠。Desktop 或電腦重新啟動（包括因更新而重新啟動）視為結束。

Claude Code 在遠端機器上以程序執行，並在 Desktop 安裝於該處的背景輔助程式之下運作，因此不需要您的 SSH 連線即可繼續執行。本節所述的行為需要 Claude Desktop v2.31226.0 或更新版本。

<Warning>
  如果您使用 Claude 帳戶登入 Desktop，請勿指望任務能整夜執行。Desktop 只有在執行中且已連線時才會為任務更新該登入，因此在您中斷連線後，任務的登入可能會過期，任務隨之停止。您中斷連線時剩餘的時間不一，可能只有幾分鐘。

  目前完成的工作會保留在遠端機器上，您回來時可以傳送訊息繼續。

  如果任務必須整夜執行：

  * [讓您的電腦保持喚醒](/docs/zh-TW/desktop-scheduled-tasks#how-scheduled-tasks-run)並連上網路，筆電蓋子保持開啟且 Desktop 保持執行
  * 對遠端機器及途中的任何跳板主機，使用無需提示即可運作的登入方式，例如您 SSH agent 持有的金鑰。這樣 Desktop 就能在連線中斷後自行重新連線。

  對於必須在電腦睡眠或關機時執行的任務，請改為啟動[雲端工作階段](#run-long-running-tasks-in-the-cloud)。
</Warning>

* **睡眠或網路中斷之後**：如果程序[仍在執行](#limits-while-desktop-is-disconnected)且 Desktop 能在無提示的情況下登入，您就能取回執行中的任務。如果無法，請[傳送訊息](#reconnect-after-sleep-or-a-network-loss)。
* **結束後**：任務會繼續執行，但除非 Desktop 能重新加入其程序，否則在工作階段再次開啟時您會失去該任務。結束前，請查看 [Desktop 何時能重新加入](#reopen-a-session-after-you-quit-desktop)。如果您失去了任務，請傳送訊息以繼續。

當您回來且任務尚未完成時，請檢查是否有 Desktop 無法重新連線的訊息、身分驗證錯誤或等待中的請求：

* **Desktop 無法重新連線**：工作階段會說明原因，通知也可能會說明。Desktop 可能[需要您登入](#reconnect-after-sleep-or-a-network-loss)。
* **身分驗證錯誤**：[登入 token 或憑證](#limits-while-desktop-is-disconnected)可能已過期。使用 Claude 帳戶時，請傳送訊息以繼續。使用第三方供應商時，請參閱 [SSH remote sessions in Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/ssh-remote-sessions)。
* **等待中的請求**：[回應它](#handle-requests-that-arrive-while-you-are-away)
* **以上皆非**：傳送訊息以繼續

<a id="prepare-a-long-task" />

<h5 id="prepare-a-long-task">
  準備長時間任務
</h5>

* **先更新**：在開始長時間任務之前更新 Desktop。在 macOS 和 Windows 上，Desktop 可能會自行重新啟動以安裝已下載的更新。當 Claude 正在處理 SSH 任務時，該重新啟動會等待。在 macOS 上使用 Claude 帳戶時，預設情況下，一旦更新已等待 72 小時，重新啟動仍可能會進行。
* **不要在 Windows 上結束，或在使用第三方供應商且版本早於 v2.42304.0 時結束**：在這些情況下結束後，您會失去執行中的任務，因此請在任務期間讓 Desktop 保持開啟。在其他任何情況下，請在結束前查看[您能取回什麼](#reopen-a-session-after-you-quit-desktop)。
* **減少請求**：選擇能[讓任務較少等待您](#handle-requests-that-arrive-while-you-are-away)的權限模式、規則或 hook
* **檢查跳板主機**：如果您的跳板主機要求登入（例如推送到手機），請改用無需提示即可運作的登入方式。否則 Desktop 每次嘗試重新連線時都可能再傳送一次推送。
* **測試遠端機器**：啟動一個短任務，在任務仍在執行時結束 Desktop，並在任務應已完成很久之後再次開啟工作階段。如果任務尚未完成且工作階段未顯示身分驗證錯誤，請檢查遠端機器上[可能終止任務的因素](#limits-while-desktop-is-disconnected)。
* **不要在 Desktop 的終端機中執行命令**：如果遠端機器會[登出閒置的終端機](#limits-while-desktop-is-disconnected)，請從 Desktop 以外的 SSH 登入執行您自己的命令

<a id="limits-while-desktop-is-disconnected" />

<h5 id="limits-while-desktop-is-disconnected">
  Desktop 中斷連線時的限制
</h5>

您讓其保持執行的任務，可能會在其登入過期時、遠端機器終止它時，或輔助程式停止或被取代時結束：

* **登入 token 或憑證**：使用 Claude 帳戶時，token 過期後任務會因身分驗證錯誤而停止。使用第三方供應商時，會過期的憑證（例如來自單一登入或憑證輔助程式的憑證）也是如此。請參閱 [SSH remote sessions in Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/ssh-remote-sessions)。使用 Claude 帳戶時，請[讓 Desktop 保持執行且已連線](#keep-a-task-running-while-desktop-is-disconnected)，以便它更新登入。
* **遠端機器**：如果遠端機器重新啟動，或在您的 SSH 連線關閉時終止您的程序，執行中的任務就會結束。Desktop 中斷連線期間，沒有任何機制會重新啟動它。systemd-logind 的 `KillUserProcesses` 為 `yes` 且適用於您使用者的 Linux 機器，會以這種方式終止您的程序。若要讓任務在該處持續執行，請要求管理員將您的使用者排除，例如使用 `KillExcludeUsers`。
* **閒置的終端機**：某些 Linux 遠端機器會登出在設定時間內無人輸入的終端機（systemd-logind 的 `StopIdleSessionSec`）。Desktop 在 macOS 或 Linux 上時，工作階段的[終端機](#run-commands-in-the-terminal)和 `!` 命令預設會共用 Desktop 的 SSH 連線。該登出會在 Desktop 連線時結束連線，執行中的任務也可能隨之結束。關閉終端機窗格無法避免此情況，因此請[不要在該終端機中執行命令](#prepare-a-long-task)。
* **Desktop 更新**：如果更新帶來新的輔助程式，Desktop 會在之後的連線中取代遠端機器上的輔助程式，這可能會終止仍在執行的任務
* **長時間未連線**：在 Linux 或 macOS 遠端機器上，如果 Desktop 30 天內未連線，輔助程式會停止，並終止在其下執行的每個 Claude Code 程序。請在此之前連線。

Desktop 中斷連線時，檔案編輯和某些工具可能會失敗。如果任務需要它們，請讓 Desktop 保持連線：

* **Worktree**：在使用 [worktree](#work-in-parallel-with-sessions) 的工作階段中，Desktop 會在 Claude 進行每次檔案編輯之前先檢查。Desktop 中斷連線時，每次編輯會等待約 30 秒後失敗。Shell 命令仍會執行。在 Linux 或 macOS 遠端機器上，[編輯可能會繼續運作](#worktree-edits-while-disconnected)。如果您不確定，請不使用 worktree 啟動工作階段。
* **資料夾限制**：如果您的組織限制工作階段可使用的資料夾，無論是否使用 worktree，Desktop 都會檢查每次檔案讀取、搜尋和編輯。Desktop 中斷連線時，每項操作會等待最多 10 分鐘後失敗。
* **連接器**：[連接器](#connect-external-tools)和 Desktop 提供的其他工具會透過 Desktop 執行，因此在 Desktop 中斷連線時，每次呼叫會在約 30 秒後失敗
* **工作流程**：Desktop 會在每個新的[工作流程](/docs/zh-TW/workflows)啟動前進行檢查，因此在 Desktop 中斷連線時，新的工作流程會等待最多 10 分鐘後失敗
* **MCP 伺服器**：Claude Code 在遠端機器上啟動的 MCP 伺服器不會透過 Desktop 執行，因此 Claude 仍可呼叫它們的工具。只有在 Desktop 未使用其[內建 SSH 用戶端](#worktree-edits-while-disconnected)時，來自 `claude_desktop_config.json` 的伺服器才屬於此類。否則，以及在[某些 Windows 遠端機器](#windows-remote-machines)上，Claude 在 Desktop 中斷連線時無法呼叫它們的工具。

<span id="worktree-edits-while-disconnected" />

<Accordion title="worktree 中的編輯何時會繼續運作">
  在 Linux 或 macOS 遠端機器上，該檢查不會經過 Desktop，因此在 Desktop 中斷連線時，worktree 內的編輯會繼續運作。在 Claude Desktop v2.37337.0 之前，這僅適用於 Linux 遠端機器。

  在某些情況下編輯仍會失敗，包括下列情況：

  * **內建 SSH 用戶端**：Desktop 使用它，例如在 Microsoft Store 安裝版中、在沒有 Microsoft OpenSSH 9.4 或更新版本的 Windows 電腦上，或在 Windows 上使用第三方供應商時預設如此
  * **儲存庫位置**：儲存庫是您的家目錄、家目錄上層的資料夾，或 `~/.claude`
  * **macOS 路徑**：在 macOS 遠端機器上，儲存庫位於 `/Volumes` 之下，或儲存庫或 worktree 路徑中的資料夾名稱含有 `~` 或非 ASCII 字元
  * **資料夾限制**：您的組織限制工作階段可使用的資料夾
  * **企業啟動器**：在 Claude Desktop v2.37337.0 之前，您使用 Claude 帳戶登入，且您的組織透過[企業啟動器](/docs/zh-TW/corporate-launcher)在遠端機器上啟動 Claude Code

  沒有 worktree 的工作階段不會有此類檢查，除非您的組織限制工作階段可使用的資料夾。
</Accordion>

<a id="handle-requests-that-arrive-while-you-are-away" />

<h5 id="handle-requests-that-arrive-while-you-are-away">
  處理您不在時收到的請求
</h5>

如果 Claude 在 Desktop 中斷連線時需要您的核准或向您提問，Claude 會在遠端機器上等待。此等待本身沒有時間限制。當 Desktop 重新加入該程序時，會向您顯示該請求。如果 Desktop 改為啟動新的程序，您就會失去該請求。

如果等待您的請求在您回來時已消失，其中一個原因是 Desktop 自行重新啟動，例如為了安裝更新。只有在 Desktop 能重新加入程序時，您才能在重新啟動後保留請求，因此在讓任務持續執行前，請查看 [Desktop 何時能重新加入](#reopen-a-session-after-you-quit-desktop)。

如果您失去請求，請傳送訊息以繼續。

若要減少任務停下來等待您的頻率，並在您不在時收到任務的消息，請在離開前設定下列任一項：

* **自動模式**：如果[您可使用自動模式](#auto-mode-availability)，請選擇[自動模式](#choose-a-permission-mode)。在多次遭到封鎖後，系統會[再次詢問您](/docs/zh-TW/permission-modes#when-auto-mode-falls-back)。
* **允許規則**：在遠端機器上的使用者設定檔 `~/.claude/settings.json` 中，為任務所需的命令加入[允許規則](/docs/zh-TW/permissions#manage-permissions)。如果您的組織[只接受來自受管設定的權限規則](/docs/zh-TW/settings-reference#allowmanagedpermissionrulesonly)，請要求管理員將規則加入會傳送到遠端機器的[受管設定](#managed-settings)。如需專案 `.claude/settings.json` 中的允許規則，請參閱[專案允許規則與工作區信任](/docs/zh-TW/permissions#project-allow-rules-and-workspace-trust)。
* **會代為回應的 hook**：在遠端機器上的 `~/.claude/settings.json` 中設定 [`PermissionRequest` hook](/docs/zh-TW/hooks#permissionrequest)，代替您允許或拒絕請求
* **會提醒您的 hook**：在同一個檔案中設定帶有 `permission_prompt` matcher 的 [`Notification` hook](/docs/zh-TW/hooks#notification)，在有請求等待時傳送訊息給自己
* **在 Claude 完成時通知您的 hook**：在同一個檔案中設定 [`Stop` hook](/docs/zh-TW/hooks#stop)，在 Claude 完成回應時傳送訊息給自己。當 API 錯誤結束該回合時，它不會執行。對於該情況，請設定 [`StopFailure` hook](/docs/zh-TW/hooks#stopfailure)。

如果您的組織[只執行受管 hook](/docs/zh-TW/settings-reference#allowmanagedhooksonly)，請要求管理員將 hook 加入會傳送到遠端機器的[受管設定](#managed-settings)。

Claude Code 在任何權限模式下（包括 Bypass permissions）都不會自動核准[少數動作](/docs/zh-TW/permission-modes#actions-no-mode-auto-approves)。視權限模式而定，Claude Code 會拒絕此類動作或詢問您，任務接著會等待您的回答。

<a id="reconnect-after-sleep-or-a-network-loss" />

<h5 id="reconnect-after-sleep-or-a-network-loss">
  睡眠或網路中斷後重新連線
</h5>

如果您回來時 Desktop 尚未重新連線，請在工作階段中傳送訊息。只有在能夠無提示登入的情況下（例如使用您 SSH agent 持有的金鑰），Desktop 才會自行重新連線。

* **記住的密碼**：您讓 Desktop 記住的密碼同樣能在無提示的情況下運作，但若長時間離開，建議使用您 SSH agent 持有的金鑰。如果使用該密碼的登入中斷或停滯，Desktop 可能會停止重新連線並等待您。
* **其他任何提示**：如果遠端機器提示輸入其他內容（例如一次性驗證碼），您可能會在電腦上收到通知。按一下通知，或在工作階段中傳送訊息，Desktop 就會顯示該提示。

<Accordion title="如果跳板主機要求登入、中斷時間很長、輸出遺失或程序已消失">
  - **跳板主機，您不在時推送停止**：當沒有人回應跳板主機的登入（例如推送到手機）時，macOS 或 Linux 上的 Desktop 可能會發生此情況。Desktop 接著會在沒有人使用您電腦時停止重新連線。當您解鎖或使用電腦時，您可能會再收到一次推送，因為 Desktop 可能會再試一次。在三次嘗試未獲回應後，它會等待直到您重試或傳送訊息。
  - **跳板主機，推送持續傳來**：在 Desktop 無法判斷沒有人回應的情況下（例如 Windows 上的 Desktop），只要有可重新加入的程序，無論該程序是否仍在執行，它都會持續嘗試。您每次嘗試都可能再收到一次推送。若要結束嘗試，請結束 Desktop，這[可能會讓您失去執行中的任務](#reopen-a-session-after-you-quit-desktop)。
  - **長時間中斷**：Desktop 會放慢到大約每五分鐘嘗試一次。若要更快重新連線，請在工作階段中重試或傳送訊息，Desktop 會在連線後傳遞該訊息。
  - **輸出遺失**：Desktop 中斷連線時，輔助程式會將每個工作階段最近的 Claude Code 輸出保留在 16 MiB 的緩衝區中，並捨棄較舊的輸出。Desktop 重新連線後，工作階段可能會顯示 `Loading recent output from <host>…`。如果 Desktop 無法載入所有輸出，您會看到 `Some output produced while you were disconnected may be missing here.` 這一列。此列並不代表任務已停止。
  - **程序已消失**：程序在 Desktop 中斷連線期間結束，例如遠端電腦重新啟動時。Desktop 接著可能會從對話已儲存的歷史記錄啟動新程序，並指示 Claude 繼續任務。如果任務仍處於停止狀態，請傳送訊息。若使用第三方供應商，請更新至 Claude Desktop v2.42304.0 或更新版本，因為較早的版本永遠不會自行繼續任務。
</Accordion>

<a id="reopen-a-session-after-you-quit-desktop" />

<h5 id="reopen-a-session-after-you-quit-desktop">
  結束 Desktop 後重新開啟工作階段
</h5>

結束 Desktop 後，任務會在遠端電腦上繼續執行，但除非 Desktop 能重新加入其程序，否則工作階段再次開啟時任務會停止。Desktop 關閉期間，任務會執行直到完成、需要您處理，或達到某個[限制](#limits-while-desktop-is-disconnected)。

* **Windows 上的 Desktop**：您無法取回執行中的任務，因為 Desktop 在結束後永遠不會重新加入。請只在您預期任務已完成時再啟動 Desktop，因為工作階段可能在 Desktop 啟動時開啟。
* **第三方供應商，來自較早版本的任務**：如果您在 v2.42304.0 之前的 Desktop 版本中啟動任務，即使在 macOS 或 Linux 上您也無法取回。請只在您預期任務已完成時再啟動 Desktop。
* **其他任何任務，搭配 macOS 或 Linux 上的 Desktop**：啟動 Desktop 並開啟工作階段，如果 Desktop 重新加入，任務就會繼續。它不一定能重新加入，例如在某些 Desktop 更新之後，因此請[在長時間任務前更新](#prepare-a-long-task)。

當 Desktop 無法重新加入時，您也會失去任何正在等待您的核准或問題。如果任務沒有自行繼續，請傳送訊息，Claude 會從對話已儲存的歷史記錄繼續。

如需第三方部署的相關資訊，請參閱 [SSH remote sessions in Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/ssh-remote-sessions)。

<Warning>
  當對話的 Claude Code 程序仍在執行時，請勿在遠端機器上為該對話執行 [`claude --resume`](/docs/zh-TW/cli-reference#cli-flags)。Claude Code 不會阻止您，兩個程序接著會寫入同一個對話。如果您不確定，請加入 `--fork-session`，它會在對話的副本中繼續，但兩個程序仍會處理相同的檔案。
</Warning>

<h4 id="choose-where-ssh-session-worktrees-go">
  選擇 SSH 工作階段 worktree 的位置
</h4>

除非您的組織限制工作階段可使用的資料夾，否則新的 SSH 工作階段會在下列項目中第一個已設定的位置建立其 [worktree](#work-in-parallel-with-sessions)：

1. SSH 連線上的 **Worktree folder**
2. 遠端機器上 `~/.claude/settings.json` 中的 [`worktree.location`](/docs/zh-TW/settings-reference#worktree-location)
3. `<project-root>/.claude/worktrees/`，即預設值

每個專案會在您設定的資料夾中取得自己的子資料夾，因此使用 `~/worktrees` 時，worktree 的路徑為 `~/worktrees/<project>-<id>/<worktree-name>`。如果您設定的資料夾位於專案內，Desktop 會對該專案忽略它並使用預設值。在 [Windows 遠端機器](#windows-remote-machines)上，Desktop 一律使用預設值。

若要在您先前新增的連線或您組織管理的連線上設定 **Worktree folder**，請在環境下拉選單中將滑鼠游標停在該連線上，然後按一下齒輪圖示。

此欄位需要 Claude Desktop v1.44121.0 或更新版本。如果您的組織限制工作階段可使用的資料夾，Desktop 會隱藏此欄位，並將 worktree 保留在專案內。

<h4 id="files-and-processes-on-the-remote-machine">
  遠端機器上的檔案和程序
</h4>

Desktop 會在每位連線到 Linux 或 macOS 遠端機器的使用者家目錄中，於 `~/.claude/remote/` 下安裝輔助程式和 Claude Code。輔助程式不會監聽任何網路連接埠，但 Claude Code 及其啟動的程式（例如 MCP 伺服器和開發伺服器）可能會。

| 資料夾 | 內容 |
| - | - |
| `~/.claude/remote/srv/` | 輔助程式，每個版本一個資料夾 |
| `~/.claude/remote/ccd-cli/` | Claude Code，每個版本一個檔案 |
| `~/.claude/remote/run/` | 輔助程式的執行階段檔案，例如其 socket 和日誌，每台連線的電腦一個資料夾 |
| `~/.claude/remote/plugins/` | Desktop 從使用者電腦複製的外掛 |
| [`~/.claude/uploads/`](/docs/zh-TW/claude-directory#clear-local-data) | 使用者附加到訊息的檔案，每個工作階段一個資料夾 |

若要列出某位使用者的程序，請以該使用者身分在遠端機器上執行 `pgrep -fl "$HOME/.claude/remote/"`，或以該使用者的家目錄取代 `$HOME`：

* **輔助程式**：每台連線的電腦會有一個或多個 `server` 程序
* **Claude Code**：輔助程式為使用者工作階段啟動的程序，每個程序都來自以其版本命名的檔案，例如 `2.1.295-…`

Desktop 透過使用者的 SSH 連線，經由輔助程式在 `~/.claude/remote/run/` 下資料夾中的 Unix socket `rpc.sock` 連線到輔助程式。除了 root 之外，機器上的其他使用者無法連線到該 socket，因為它的模式為 600，且其資料夾的模式為 700。

如需輔助程式何時會自行停止，請參閱 [Desktop 中斷連線時的限制](#limits-while-desktop-is-disconnected)。

若要為某位使用者移除輔助程式和 Claude Code：

<Steps>
  <Step title="結束 Desktop">
    在該使用者連線來源的每台電腦上結束 Desktop。Desktop 會在下次連線時再次安裝這兩個程式，而且它可能會自行重新連線。
  </Step>

  <Step title="終止程序">
    以該使用者身分登入遠端機器，對 [`pgrep`](#files-and-processes-on-the-remote-machine) 列出的每個 Claude Code 程序 ID 執行 `kill`。當這些程序從清單中消失後，再對每個 `server` 程序的 ID 執行 `kill`。如果您先終止 `server` 程序，Claude Code 正在執行的命令可能會繼續執行。

    然後列出該使用者剩餘的程序，例如使用 `ps -u "$(id -un)" -f`，並終止您認得是由 Claude Code 啟動的任何程序。它留在背景的程式可能在其結束後繼續執行，且不會出現在 `pgrep` 清單中。
  </Step>

  <Step title="刪除資料夾">
    刪除 `~/.claude/remote/`。若要移除 Claude Code 本身在 `~/.claude/` 和 `~/.claude.json` 中的檔案，請參閱[移除設定檔](/docs/zh-TW/setup#remove-configuration-files)。
  </Step>
</Steps>

<h5 id="end-one-session’s-process">
  終止單一工作階段的程序
</h5>

若要終止單一工作階段的 Claude Code 程序，請在 Desktop 連線到遠端機器時，在 Desktop 中[封存該工作階段](#work-in-parallel-with-sessions)。該程序在任務完成後以及您結束 Desktop 後都會繼續執行。

在封存具有 worktree 的工作階段之前，請參閱[使用工作階段平行作業](#work-in-parallel-with-sessions)。

<h5 id="see-which-user-the-processes-run-as">
  查看程序以哪位使用者身分執行
</h5>

輔助程式和 Claude Code 會以 Desktop 透過 SSH 登入的使用者身分執行。安裝和啟動它們不需要 `sudo`。若要檢查使用者，請在遠端機器上以 [`pgrep`](#files-and-processes-on-the-remote-machine) 列出的程序 ID 執行 `ps -o user= -p`。

Claude Code 啟動的程式（例如 shell 命令和 MCP 伺服器）也會以該使用者身分啟動。請審查該使用者在遠端機器上的權限（包括其 `sudo` 規則），就像審查在該處執行命令的人員一樣。

<h5 id="see-who-connected-to-the-remote-machine">
  查看誰連線到遠端機器
</h5>

若要了解誰連線到遠端機器，請讀取該機器上 SSH 伺服器的日誌，其中來自 Desktop 的登入看起來與來自終端機的登入相同。Desktop 在 macOS 或 Linux 上時，預期每次 Desktop 連線會有一筆記錄，而不是每個工作階段一筆。

您在 Claude Code 的[指標與事件](/docs/zh-TW/monitoring-usage#available-metrics-and-events)中找不到 Desktop 的 SSH 連線。若要從中得知 SSH 工作階段在哪台遠端機器上執行，請參閱[將遙測歸因於 Desktop SSH 工作階段](/docs/zh-TW/monitoring-usage#attribute-telemetry-to-desktop-ssh-sessions)。關於 Desktop 自身的連線記錄，請參閱[取得 SSH 問題的 Desktop 日誌](#get-desktops-logs-for-an-ssh-problem)。

<h4 id="connections-that-close-before-login">
  登入前即關閉的連線
</h4>

若 SSH 伺服器的日誌顯示在任何登入之前即關閉的連線，這些可能是 Desktop 對 SSH 連接埠的測試。Desktop 會測試機器是否有回應，例如在連線至該機器失敗之後。它會開啟至該連接埠的連線並立即關閉，不傳送任何內容。預期會有一次或連續數次測試，例如約兩分鐘內八次。

若沒有任何機制因此類連線而封鎖或拒絕位址，您不需要對 Desktop 的測試採取任何行動。若 Desktop 連線所用的位址遭到拒絕或封鎖，請檢查 [SSH 伺服器本身是否拒絕該位址](#check-whether-the-ssh-server-itself-refuses-the-address)，以及 [fail2ban 是否計入 Desktop 的測試](#check-whether-fail2ban-counts-desktops-tests)。

<h5 id="recognize-a-test-in-the-ssh-server’s-log">
  在 SSH 伺服器的日誌中辨識測試
</h5>

請將您日誌中的行，與 Linux 上的 OpenSSH 伺服器在預設 `LogLevel` 下為測試寫入的行進行比較，並對照您伺服器版本所在的列。若伺服器的問候訊息在 Desktop 關閉連線之前送達，您可能會看到最後一欄中的行：

| OpenSSH 版本 | 測試的行 | 問候訊息先送達時的行 |
| - | - | - |
| 6.6 至 7.9 | 含有 `Did not receive identification string from 203.0.113.7` 的行 | 相同的行 |
| 8.0 至 8.2 | `error: kex_exchange_identification: Connection closed by remote host` | `error: kex_exchange_identification: read: Connection reset by peer` |
| 8.3 至 9.4 | `error: kex_exchange_identification: Connection closed by remote host`，接著是 `Connection closed by 203.0.113.7 port 51234` | `error: kex_exchange_identification: read: Connection reset by peer`，接著是 `Connection reset by 203.0.113.7 port 51234` |
| 9.5 至 10.2 | `Connection closed by 203.0.113.7 port 51234` | `error: kex_exchange_identification: read: Connection reset by peer`，接著是 `Connection reset by 203.0.113.7 port 51234` |
| 10.3 至 10.5 | `Connection closed by 203.0.113.7 port 51234 [preauth]` | `error: kex_exchange_identification: read: Connection reset by peer [preauth]`，接著是 `Connection reset by 203.0.113.7 port 51234 [preauth]` |

其他開啟並關閉該連接埠的程式也可能留下相同的行。若行中有位址，請確認它是執行 Desktop 的電腦所連線的位址。

8.0 至 8.2 的行沒有位址。若要取得位址，請在 `sshd_config` 中設定 `LogLevel VERBOSE`，並以 root 身分執行 `sshd -T | grep -i loglevel`。若輸出 `loglevel VERBOSE`，請重新載入 SSH 伺服器。然後在測試的行之前尋找含有 `Connection from 203.0.113.7 port 51234` 的行。

<a id="check-whether-the-ssh-server-itself-refuses-the-address" />

<h5 id="check-whether-the-ssh-server-itself-refuses-the-address">
  檢查 SSH 伺服器本身是否拒絕該位址
</h5>

若來自許多執行 Desktop 的電腦共用之位址的連線遭到拒絕，請在 SSH 伺服器的日誌中尋找結尾類似下列內容的行：

```text theme={null}
drop connection #0 from [203.0.113.7]:51234 on [192.0.2.10]:22 penalty: connections without attempting authentication
```

在預設 `LogLevel` 下，OpenSSH 9.8 及更新版本在因連線未嘗試登入即關閉（如 Desktop 的測試）而拒絕某個位址時，可能會寫入這樣的行。在預設設定下，僅憑幾次測試不會出現這樣的行。

若要防止拒絕，請在 `sshd_config` 中將 `PerSourcePenaltyExemptList` 設為使用者連線所用的位址，例如 `PerSourcePenaltyExemptList 203.0.113.7`。伺服器接著不會對這些位址套用任何懲罰，包括針對登入失敗的懲罰。若要檢查該檔案，請以 root 身分執行 `sshd -T | grep -i persourcepenalt`。若輸出您的清單，請重新載入 SSH 伺服器。

<a id="check-whether-fail2ban-counts-desktops-tests" />

<h5 id="check-whether-fail2ban-counts-desktop’s-tests">
  檢查 fail2ban 是否計入 Desktop 的測試
</h5>

若 fail2ban 0.10.5 或更新版本封鎖了 Desktop 連線所用的位址，請在 `jail.conf`、`jail.local` 或 `jail.d/` 下找出您 jail 的模式：

* **在括號中指定模式的 `filter` 行**，例如 `filter = sshd[mode=aggressive]`：使用該模式。
* **只有原始的 `filter` 行**，含有 `[mode=%(mode)s]`：使用 `mode` 行，若沒有則為 `normal`。

若模式為 `normal`，fail2ban 不會計入 Desktop 測試的行，因此請尋找封鎖的其他原因。

若為其他模式，請將您自己日誌中的行複製到遠端機器上的檔案。複製每一行的完整內容，從日期到結尾；若測試留下兩行，則兩行都複製。在該處以該檔案與您 jail 的模式（例如 `aggressive`）執行 `fail2ban-regex`：

```bash theme={null}
fail2ban-regex -o ip lines.log "sshd[mode=aggressive]"
```

對於 fail2ban 計入的每次失敗，該命令會在單獨一行輸出位址，例如 `203.0.113.7`。在此情況下，請[防止封鎖](#prevent-a-ban-by-fail2ban)。若沒有輸出任何內容，表示 fail2ban 在該模式下不會計入這些行，因此請尋找封鎖的其他原因。

<a id="prevent-a-ban-by-fail2ban" />

<h5 id="prevent-a-ban-by-fail2ban">
  防止 fail2ban 封鎖
</h5>

若要防止 fail2ban 因 Desktop 的測試而封鎖某個位址，請變更 jail 的兩項設定之一，兩者各有代價：

* **`mode`**：在您 jail 設定它的任何位置將其設為 `normal`，無論是在 `mode` 行中，或在 `filter = sshd[mode=aggressive]` 這類行的括號中。您會放棄只有其他模式才會進行的所有計數，例如對未嘗試登入即連線並離開之用戶端的計數。
* **`ignoreip`**：將其設為使用者連線所用的位址，例如 `ignoreip = 203.0.113.7`。fail2ban 接著不會計入來自這些位址的任何內容，包括登入失敗。

<h4 id="use-mcp-servers-set-up-on-the-remote-machine">
  使用在遠端機器上設定的 MCP 伺服器
</h4>

若要在 SSH 工作階段中使用來自 `~/.claude.json` 或專案 `.mcp.json` 的 [MCP 伺服器](/docs/zh-TW/mcp)，請在遠端機器上的這些檔案中設定它。Claude Code 會在該處啟動它們的 stdio 伺服器，因此請在遠端機器上安裝這些伺服器所執行的命令。如需來自 `claude_desktop_config.json` 的伺服器，請參閱 [Desktop 中斷連線時的限制](#limits-while-desktop-is-disconnected)。

<h4 id="open-an-ssh-session-from-a-link">
  從連結開啟 SSH 工作階段
</h4>

`claude://code/new` 連結會開啟 Desktop 的新工作階段頁面，且可以指定 SSH 連線。將此類連結放在執行手冊、儀表板或 wiki 頁面中，即可開啟已針對正確機器和資料夾設定好的 Desktop。對於會移除此類連結的平台，請參閱[連結顯示為純文字而非可點選的連結](/docs/zh-TW/deep-links#the-link-renders-as-plain-text-instead-of-being-clickable)。

SSH 連結需要 Claude Desktop v2.110.0 或更新版本。

下列連結指定了 `build.example.com` 上的使用者 `dev`、連接埠 2222 和資料夾 `/srv/payments`，並填入提示詞：

```text theme={null}
claude://code/new?ssh_host=dev%40build.example.com&ssh_port=2222&ssh_folder=/srv/payments&q=Investigate%20the%20failed%20deploy
```

SSH 連結接受下列參數，其中只有 `ssh_host` 為必要參數：

| 參數 | 值 |
| :- | :- |
| `ssh_host` | `host` 或 `user@host`，寫法與 **SSH host** 欄位相同。值不能以 `-` 開頭，且主機部分只接受字母、數字、`.`、`_`、`:` 和 `-` |
| `ssh_port` | 1 到 65535 之間的連接埠號碼 |
| `ssh_folder` | 遠端機器上的資料夾。以 `/` 或 `~/` 開頭，或使用 `~` |
| `q` | 要填入提示詞方塊的 URL 編碼文字 |

來自 `~/.ssh/config` 的別名只有對擁有該項目的人才能作為 `ssh_host` 使用。若要符合人們已有的連線，請為連結提供與該連線相同的使用者、主機和連接埠。

當您開啟連結時，Desktop 會在選取連線之前要求您確認：

* **您已有的連線**：如果主機、使用者和連接埠與您的其中一個連線相符，Desktop 會詢問是否使用該連線，並顯示連線的名稱和主機，以及連結指定的資料夾（若有）。
* **新連線**：否則 Desktop 會開啟新增 SSH 連線的對話方塊。當您新增連線時，Desktop 會在儲存任何內容之前詢問是否連線，並顯示連結中的主機，以及連結指定的連接埠和資料夾（若有）。

在您確認之前，Desktop 不會儲存連結中的主機、連接埠或資料夾，也不會以它們選取或開啟連線。如果已選取某個 SSH 連線，新工作階段頁面仍可能自行連線到該連線，就像沒有連結時一樣，即使連結指定的是相同的主機。連結無法攜帶金鑰檔案、密碼或命令。

任何人都可以撰寫連結，因此請檢查它填入了什麼：

* **確認之前**：檢查主機和資料夾。
* **傳送之前**：檢查提示詞和所選的環境。

Desktop 會在連結開啟時填入提示詞，取代您尚未傳送的任何文字，且絕不會代您傳送。它會將提示詞視為純文字，因此開頭的 `/` 或 `!` 以及 `@` 檔案提及不會作為命令或提及。如果您取消，提示詞會保留在方塊中，且您原先選取的環境不會變更。

連結不會繞過 [`sshHostAllowlist`](#restrict-which-ssh-hosts-users-can-connect-to)。Desktop 會在連線時檢查允許清單。

如果連結開啟 Desktop 時沒有出現有關連線的對話方塊，請查看是否為下列原因之一：

* **您已登出**：請登入，然後再次開啟連結。
* **另一個對話方塊已開啟**：請關閉它，然後再次開啟連結。
* **連結無效**：Desktop 會顯示說明需修正內容的訊息，且不會填入提示詞。
* **Desktop 版本早於 v2.110.0**：較早的版本會忽略 SSH 參數，並只以提示詞開啟新工作階段頁面。
* **SSH 工作階段已關閉**：如果您的管理員將允許清單設為空陣列，Desktop 會拒絕 SSH 連結。

<h4 id="pre-configure-ssh-connections-for-your-team">
  為您的團隊預先設定 SSH 連線
</h4>

管理員可以在[受管設定](/docs/zh-TW/managed-settings)中設定 `sshConfigs`，將 SSH 連線分發給團隊成員。以此方式定義的連線會自動出現在每位使用者的環境下拉選單中，並顯示為受管連線。使用者可以選取它們並為它們[設定自己的 **Worktree folder**](#choose-where-ssh-session-worktrees-go)，但無法在應用程式中編輯其他任何內容或刪除它們。

下列範例預先設定了單一連線：

```json theme={null}
{
  "sshConfigs": [
    {
      "id": "shared-dev-vm",
      "name": "Shared Dev VM",
      "sshHost": "user@dev.example.com",
      "sshPort": 22,
      "sshIdentityFile": "~/.ssh/id_ed25519"
    }
  ]
}
```

每個項目都需要 `id`、`name` 和 `sshHost`。`sshPort` 和 `sshIdentityFile` 欄位為選用。使用者也可以將 `sshConfigs` 加入自己的 `~/.claude/settings.json`。

如果您在 `sshHost` 中省略 `user@`，Desktop 會以每位開發人員的 `~/.ssh/config` 為該主機設定的 `User` 連線，否則以他們在自己電腦上的使用者名稱連線。

<h4 id="restrict-which-ssh-hosts-users-can-connect-to">
  限制使用者可連線的 SSH 主機
</h4>

管理員可以在[受管設定](/docs/zh-TW/managed-settings)中設定 `sshHostAllowlist`，將 Desktop 的 SSH 工作階段限制在一組核准的主機。設定後，使用者只能連線到解析後主機名稱符合其中一個模式的主機。將其設為空陣列即可停用 SSH 工作階段。[`sshHostAllowlist` 參考項目](/docs/zh-TW/settings-reference#sshhostallowlist)說明空陣列如何與其他受管來源中的清單合併。

下列範例允許連線到 `devboxes.example.com` 下的任何主機，以及單一指定的堡壘主機：

```json theme={null}
{
  "sshHostAllowlist": ["*.devboxes.example.com", "bastion.example.com"]
}
```

<Warning>
  如果您的組織提供[伺服器管理的設定](/docs/zh-TW/server-managed-settings)，請在該處設定 `sshHostAllowlist`。預設情況下，Desktop 只會從[提供政策鍵的最高排名受管來源](/docs/zh-TW/managed-settings#how-claude-code-combines-managed-sources)讀取此鍵。如果該來源未設定此鍵，Desktop 會忽略較低排名的 MDM 政策或受管設定檔中的清單，並將此鍵視為[未設定](/docs/zh-TW/settings-reference#sshhostallowlist)。Desktop 不會顯示任何警告。

  也請在每位使用者機器上的最高排名 MDM 政策或受管設定檔中保留相同的清單。Desktop 會在啟動時擷取伺服器管理的設定，且不會保留快取副本，因此在擷取成功之前，套用的是機器上的清單。
</Warning>

模式不區分大小寫。`*` 符合任何主機，而 `*.example.com` 符合 `example.com` 及其任何子網域。其他任何內容都是完全比對。檢查會針對透過 `ssh -G` 進行 `~/.ssh/config` 解析後的主機名稱執行，因此只要解析後的 `HostName` 相符，就允許 `Host` 別名和 `ProxyCommand`/`ProxyJump` 項目。

`sshHostAllowlist` 只會從受管設定讀取；使用者或專案設定中的值會被忽略。只有 Claude Desktop 應用程式會遵循此設定；Claude Code CLI 和 IDE 擴充功能不會讀取它，且它不會限制透過 Bash 工具執行的 `ssh` 命令。它管理的是 Desktop 應用程式會連線到哪些主機，而不是網路出口流量，因此如果您需要硬性邊界，請將它與您組織的網路或零信任控制措施搭配使用。

<h4 id="turn-off-local-sessions-and-distribute-ssh-connections">
  關閉本機工作階段並分發 SSH 連線
</h4>

若要關閉本機工作階段並將 SSH 工作階段限制在您選擇的主機，請同時部署 [`disableDesktopLocalSessions`](/docs/zh-TW/settings-reference#disabledesktoplocalsessions)、[`sshConfigs`](#pre-configure-ssh-connections-for-your-team) 和 [`sshHostAllowlist`](#restrict-which-ssh-hosts-users-can-connect-to)。

<Note>
  此設定適用於使用 Claude 帳戶登入的使用者。使用[第三方供應商](/docs/zh-TW/third-party-integrations)時，SSH 工作階段預設為關閉，而設定 `sshHostAllowlist` 可以開啟它們。部署這些鍵之前，請閱讀 [SSH remote sessions in Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/ssh-remote-sessions)。
</Note>

下列範例關閉本機工作階段、新增一個連線，並將 SSH 工作階段限制在該連線的主機：

```json managed-settings.json theme={null}
{
  "disableDesktopLocalSessions": true,
  "sshConfigs": [
    {
      "id": "shared-dev-vm",
      "name": "Shared Dev VM",
      "sshHost": "dev.example.com"
    }
  ],
  "sshHostAllowlist": ["dev.example.com"]
}
```

這些鍵適用於桌面應用程式。它們不會影響執行 Claude Code 的其他方式，例如 CLI、Cowork 和雲端工作階段：

* **CLI**：這些鍵都無法阻止開發人員在自己的電腦上執行 Claude Code CLI
* **Cowork**：這些鍵都不適用於 [Cowork](https://claude.com/docs/cowork/overview) 工作階段或 Cowork 排程任務
* **雲端工作階段**：這些鍵都不會改變[雲端工作階段](#cloud-sessions)是否可用。若要關閉它們，請使用 [Admin console 控制項](#admin-console-controls)下的 **Cloud sessions** 設定。

調整範例時，請檢查主機名稱、Desktop 版本和檔案權限：

* **主機名稱**：確保 `sshHostAllowlist` 中的某個模式符合每個 `sshConfigs` 項目的主機名稱（不含 `user@`），否則開發人員無法連線到它。如需 Desktop 如何比對主機名稱，請參閱[限制使用者可連線的 SSH 主機](#restrict-which-ssh-hosts-users-can-connect-to)。
* **版本**：`disableDesktopLocalSessions` 需要 Claude Desktop v1.37937.0 或更新版本
* **檔案權限**：確保電腦上每位開發人員的帳戶都能讀取受管設定檔。Desktop 不會套用帳戶無法讀取之檔案中的鍵，而 Claude Code 也會[在沒有這些鍵的情況下啟動](/docs/zh-TW/managed-settings#find-entries-claude-code-dropped)。

將這三個鍵放在同一個[受管來源](/docs/zh-TW/managed-settings#how-claude-code-combines-managed-sources)中，也就是您提供的最高排名來源。如果您提供[伺服器管理的設定](/docs/zh-TW/server-managed-settings)，也請在每台電腦上的最高排名 MDM 政策或受管設定檔中保留這三個鍵的副本。Desktop 會在啟動時擷取伺服器管理的設定，而在擷取成功之前，會套用電腦上的副本。

若要確認設定已套用，請檢查開發人員的電腦：

<Steps>
  <Step title="檢查環境下拉選單">
    結束並重新開啟 Desktop，然後開啟提示詞方塊中的環境下拉選單。**Local** 會呈現灰色，且 **Shared Dev VM** 會出現在 **SSH** 下方。如果 **Local** 仍可使用，請檢查 Desktop 版本、檔案是否為有效的 JSON，以及電腦讀取的是哪個受管來源。
  </Step>

  <Step title="新增不在允許清單上的主機">
    使用不在允許清單上的主機名稱（例如 `other.example.com`）[新增 SSH 連線](#ssh-sessions)。Desktop 會儲存該連線但拒絕連線，並說明您組織的設定不允許該連線。
  </Step>
</Steps>

<h2 id="enterprise-configuration">
  企業設定
</h2>

Team 或 Enterprise 計畫上的組織可以透過管理員主控台控制、受管設定檔案和裝置管理原則來管理桌面應用程式行為。

<h3 id="admin-console-controls">
  管理員主控台控制
</h3>

這些設定透過[管理員設定主控台](https://claude.ai/admin-settings/claude-code)進行設定：

* **Desktop**：控制您組織中的使用者是否可以在桌面應用程式中存取 Claude Code
* **雲端工作階段**：為您的組織啟用或停用[雲端工作階段](/docs/zh-TW/claude-code-on-the-web)
* **Remote Control**：為您的組織啟用或停用 [Remote Control](/docs/zh-TW/remote-control)

在已啟用 HIPAA 的 Enterprise 組織中，**Desktop** 切換開關預設為關閉，[Owner](/docs/zh-TW/server-managed-settings#access-control) 可以將其開啟。套用 [HIPAA 設定](/docs/zh-TW/hipaa-setup)會將其關閉，即使先前已開啟也一樣，因此 Owner 之後必須再將其開啟。**雲端工作階段**和 **Remote Control** 預設也為關閉，且一旦組織套用了 HIPAA 設定，Owner 便無法將其開啟。

<Note>
  管理員主控台[資料和隱私設定](https://claude.ai/admin-settings/data-privacy-controls)中**監控**下的 Cowork OpenTelemetry 表單僅適用於 Cowork 工作階段。在此機器上的 Cowork 工作階段中，桌面應用程式會將該收集器作為 `OTEL_*` 環境變數傳遞給 Claude Code，因此即使該工作階段中的 Claude Code [永遠不會擷取管理員主控台設定](#managed-settings)，表單仍會生效。

  若要從 Code 分頁工作階段匯出遙測，請在 Claude Code 受管設定的 `env` 區塊中設定 `CLAUDE_CODE_ENABLE_TELEMETRY` 和 `OTEL_*` 變數，如[監控的管理員設定](/docs/zh-TW/monitoring-usage#administrator-configuration)所示。本機、雲端和 SSH 工作階段各自[從不同來源讀取受管設定](#managed-settings)。有關雲端工作階段可以連線的主機，請參閱[網路存取](/docs/zh-TW/cloud-environments#network-access)。有關 Code 分頁工作階段回報的 `service.name`，請參閱[服務資訊](/docs/zh-TW/monitoring-usage#service-information)。

  若要了解 SSH 工作階段是在哪台遠端機器上執行，請參閱[將遙測歸屬於 Desktop SSH 工作階段](/docs/zh-TW/monitoring-usage#attribute-telemetry-to-desktop-ssh-sessions)。
</Note>

<h3 id="managed-settings">
  受管設定
</h3>

受管設定會覆寫專案和使用者設定，並套用於 Desktop 中的 Claude Code 工作階段。您可以在您組織的[受管設定](/docs/zh-TW/managed-settings)檔案中設定這些鍵，或透過管理員主控台遠端推送它們。

| 鍵 | 描述 |
| - | - |
| `permissions.disableBypassPermissionsMode` | 設定為 `"disable"` 以防止使用者啟用略過權限模式。 |
| `disableAutoMode` | 設定為 `"disable"` 以從模式選擇器中移除 [Auto](/docs/zh-TW/permission-modes#eliminate-prompts-with-auto-mode) 模式。也可放在 `permissions` 下。 |
| `autoMode` | 自訂自動模式分類器在您的組織中信任和封鎖的內容。請參閱[設定自動模式](/docs/zh-TW/auto-mode-config)。 |
| `browserExternalPageTools` | 設定為 `"disabled"` 以防止 Claude 使用工具來讀取或操作[瀏覽器窗格](#browse-external-sites)中的外部頁面。使用者仍然可以自行瀏覽外部網站，本機開發伺服器預覽不受影響。 |
| `disableMobileSimulatorTools` | 設定為 `true` 以封鎖 Claude 在 [iOS Simulator 窗格](/docs/zh-TW/desktop-ios-simulator#turn-off-simulator-access)中控制和擷取裝置的工具。該窗格仍可供使用者自行點擊使用；只有 Claude 的存取被移除。該值必須是 JSON 布林值 `true`；字串 `"true"` 會被忽略。 |
| `disableBrowserExternalNavigation` | 設定為 `true` 以完全關閉[瀏覽器窗格](#browse-external-sites)中的外部瀏覽。使用者和 Claude 都無法瀏覽外部網站，localhost 開發伺服器預覽不受影響。該值必須是 JSON 布林值 `true`；字串 `"true"` 會被忽略。 |
| `sshConfigs` | 預先設定顯示在環境下拉式選單中的 [SSH 連線](#pre-configure-ssh-connections-for-your-team)。使用者無法刪除受管連線，除了自己的 **Worktree folder** 之外也無法編輯任何內容。 |
| `sshHostAllowlist` | 將 [SSH 工作階段](#restrict-which-ssh-hosts-users-can-connect-to)限制在已解析主機名稱符合這些模式之一的主機。僅從受管設定讀取。 |
| `disableDesktopLocalSessions` | 設定為 `true` 以關閉[在裝置上執行的 Code 工作階段](#local-sessions-on-managed-devices)，僅保留連線到其他主機的 SSH 工作階段和雲端工作階段。該值必須是 JSON 布林值 `true`。僅從受管設定讀取。需要 Claude Desktop v1.37937.0 或更新版本。 |
| `disableSshSavedPasswords` | 設定為 `true` 以停止 Desktop 提供記住 SSH 密碼的選項，並停止使用或顯示先前已儲存的密碼。開啟此設定不會刪除這些密碼。僅從受管設定讀取。需要 Claude Desktop v1.49585.0 或更新版本。 |
| `managedMcpServers` | 將 MCP 伺服器設定推送給所有使用者。僅在第三方 (3P) Desktop 部署中可用。在每個項目中，設定 `"http"`、`"sse"` 或 `"stdio"` 的傳輸方式、連線詳細資訊，以及可選的 `toolPolicy` 對應，以限制使用者可以叫用該伺服器的哪些工具。請透過受管設定檔案、MDM 或 Claude apps gateway 原則的 [`desktop` 區塊](/docs/zh-TW/claude-apps-gateway-config#claude-desktop-overlay)傳遞，因為第三方部署不會收到管理員主控台設定。若要透過閘道傳遞，您需要在閘道伺服器上使用 Claude Code v2.1.232 或更新版本。這是桌面應用程式自己的鍵；Claude Code 會讀取自己的[同名受管設定](/docs/zh-TW/managed-mcp#provide-servers-through-managed-settings)，其項目結構不同。 |

哪些受管設定會套用到 Desktop 工作階段，取決於該工作階段執行的位置。模型限制（例如 [`availableModels`](/docs/zh-TW/model-config#restrict-model-selection)）在 Desktop 的 Claude Code 工作階段中的強制方式與終端機 CLI 相同；請參閱[使用介面涵蓋範圍](/docs/zh-TW/model-config#surface-coverage)。

* **此機器上的本機工作階段**：部署到磁碟的受管設定檔案會套用。當工作階段使用[符合條件的登入](/docs/zh-TW/server-managed-settings#platform-availability)向 Anthropic 的 API 進行身分驗證時，透過管理員主控台遠端推送的受管設定也會套用到這些工作階段，並遵循與終端機 CLI 相同的[設定優先順序](/docs/zh-TW/settings#settings-precedence)。
* **[雲端工作階段](#cloud-sessions)**：接收[伺服器管理的設定](/docs/zh-TW/server-managed-settings)；裝置部署的檔案不會套用到它們，因為它們在 Anthropic 管理的 VM 上執行。路由到[自託管環境](/docs/zh-TW/self-hosted-environments)的工作階段也會讀取執行器映像中的受管設定檔案。[Claude Code 如何結合受管來源](/docs/zh-TW/managed-settings#how-claude-code-combines-managed-sources)說明該檔案何時適用。
* **[SSH 工作階段](#ssh-sessions)**：工作階段從遠端主機讀取受管設定檔案。Desktop 本身會在本機上讀取 `sshConfigs`、`sshHostAllowlist`、`disableSshSavedPasswords` 和 `disableDesktopLocalSessions`。如果您傳遞多個受管來源，它[預設只從其中一個讀取](/docs/zh-TW/managed-settings#how-claude-code-combines-managed-sources)。
* **[Cowork](https://claude.com/docs/cowork/overview) 工作階段**：在此機器上的 Cowork 工作階段中，即使使用者以 Team 或 Enterprise 帳戶登入，Claude Code 也永遠不會擷取管理員主控台設定，並且會讀取部署到機器的原則，除非您的 Claude Desktop 設定設有 `requireCoworkFullVmSandbox`。遠端 Cowork 工作階段兩者皆不會接收。請參閱[原則適用的位置和時間](/docs/zh-TW/managed-settings#where-and-when-a-policy-applies)以了解哪些裝置檔案會套用到 Cowork，以及 [MCP 權限規則](/docs/zh-TW/permissions#mcp)以了解 `Bash` 和 `WebFetch` 規則如何套用於 Cowork 的工具。

在本機和 SSH 工作階段中，桌面應用程式會直接將每個使用者已連線的 claude.ai 連接器傳遞給 Claude Code。無論您使用哪個設定來源或檔案位置，任何 MCP 設定或 `managed-mcp.json` 都不會影響這些連接器。若要在這些工作階段中封鎖連接器的工具，請使用您組織的[連接器工具控制](/docs/zh-TW/mcp#organization-controls-on-connector-tools)。[連接器如何到達 Claude Code](/docs/zh-TW/mcp#how-connectors-reach-claude-code) 說明在每種工作階段中由哪些設定管理連接器。

`permissions.disableBypassPermissionsMode` 和 `disableAutoMode` 也可在使用者和專案設定中運作，但將它們放在受管設定中可防止使用者覆寫它們。

有關只有受管來源可以設定的權限、外掛和傳遞鍵，請參閱[只有受管設定可以設定的鍵](/docs/zh-TW/managed-settings#managed-only-settings)。

<h3 id="device-management-policies">
  裝置管理原則
</h3>

IT 團隊可以透過 macOS 上的 MDM、Windows 上的群組原則或 Linux 上的原則檔案來管理桌面應用程式。可用的原則包括啟用或停用 Claude Code 功能、控制 macOS 和 Windows 上的自動更新，以及設定自訂部署 URL。

* **macOS**：使用 Jamf 或 Kandji 等工具透過 `com.anthropic.claudefordesktop` 偏好設定網域進行設定
* **Windows**：透過位於 `SOFTWARE\Policies\Claude` 的登錄進行設定
* **Linux**：透過位於 `/etc/claude-desktop/managed-settings.json`、由 root 擁有的檔案進行設定，該檔案以 JSON 物件保存原則鍵。如果 root 以外的任何人可以寫入該檔案或其資料夾，Desktop 會拒絕使用該檔案。它與 Claude Code 的[受管設定檔案](/docs/zh-TW/managed-settings)是不同的檔案。

<h3 id="network-access-requirements">
  網路存取需求
</h3>

Desktop 從 Anthropic CDN 主機載入其應用程式程式碼和使用者內容。

```text theme={null}
anthropic.com
*.anthropic.com
claude.ai
*.claude.ai
claude.com
*.claude.com
claude.app
*.claude.app
*.claudeusercontent.com
*.claudemcpcontent.com
```

除非您為 [OTLP](/docs/zh-TW/monitoring-usage)、LLM 閘道或 MCP 伺服器設定自訂連接埠，否則流量皆為連接埠 443 上的 HTTPS。

有關代理伺服器、自訂憑證授權單位、mTLS 和獨立 CLI 所需的網域，請參閱[網路設定](/docs/zh-TW/network-config)。

若要減少防火牆萬用字元的數量，請改為允許這些 Anthropic 主機。某些子網域是動態產生的，必須保持為萬用字元。

```text theme={null}
anthropic.com
api.anthropic.com
a-api.anthropic.com
a-cdn.anthropic.com
s-cdn.anthropic.com
assets-proxy.anthropic.com
claude.ai
a.claude.ai
assets.claude.ai
downloads.claude.ai
*.livepreview.claude.ai
claude.com
platform.claude.com
*.livepreview.claude.app
*.claudeusercontent.com
*.claudemcpcontent.com
```

如果您的組織已為 Claude 啟用 [IP 允許清單](https://support.claude.com/en/articles/13200993-restrict-access-to-claude-with-ip-allowlisting)，請將 `bridge.claudeusercontent.com` 透過與 `claude.ai` 和 `api.anthropic.com` 相同的代理伺服器出口路由。如果您無法以這種方式路由，請將您的代理伺服器用於該主機的出口位址新增到您組織的 IP 允許清單，但僅限該位址專屬於您的組織時：共用的代理伺服器出口範圍也會放行該代理伺服器廠商的其他客戶。

Anthropic 會依據連線來源的位址，檢查與該主機的連線是否符合您組織的 IP 允許清單。如果您的代理伺服器透過不在該允許清單上的位址傳送該主機的流量，Claude in Chrome 和其他透過橋接連線的功能會停止運作，而應用程式的其餘部分則會繼續運作。

從 [Google Fonts](/docs/zh-TW/artifacts#improve-the-visual-design) 載入字體的 [artifact](/docs/zh-TW/artifacts) 也會請求 `fonts.googleapis.com` 和 `fonts.gstatic.com`。這兩個主機都是選用的。如果您封鎖它們，artifact 會以備援字體呈現。請以快速拒絕而非無聲丟棄的方式封鎖，讓字體請求立即失敗，而不會延遲頁面的首次呈現。

Artifact 也可以從 `cdnjs.cloudflare.com`、`cdn.jsdelivr.net`、`cdn.tailwindcss.com`、`code.jquery.com` 和 `unpkg.com` 載入 JavaScript 程式庫（例如 React 或圖表套件），且不會從其他任何外部主機載入。如果您封鎖這些主機，artifact 中依賴程式庫的部分將無法運作，而且與被封鎖的字體不同，被封鎖的程式庫沒有備援。此處同樣請以快速拒絕的方式封鎖，讓被封鎖的程式庫請求立即失敗，而不是懸置直到逾時。

<h3 id="authentication-and-sso">
  身分驗證和 SSO
</h3>

Team 和 Enterprise 組織可以要求所有使用者使用 SSO。有關計畫層級的詳細資訊，請參閱[身分驗證](/docs/zh-TW/authentication)；有關 SAML 設定，請參閱[設定 SSO](https://support.claude.com/en/articles/13132885-setting-up-single-sign-on-sso)；OIDC 設定則涵蓋在 [Claude Enterprise Administrator Guide](https://claude.com/resources/tutorials/claude-enterprise-administrator-guide) 中。

<h3 id="data-handling">
  資料處理
</h3>

Claude Code 在本機工作階段中於本機處理您的程式碼，或在雲端工作階段中於 Anthropic 管理的基礎設施上處理，除非您的組織將它們路由到[自託管環境](/docs/zh-TW/self-hosted-environments)。雲端工作階段（包括在自託管環境中）會將對話和程式碼上下文傳送到 Anthropic 的 API 進行處理；本機和 SSH 工作階段則會將它們傳送到您的部署所設定的[模型提供者](#feature-comparison)，預設為 Anthropic 的 API。有關資料保留、隱私和合規性的詳細資訊，請參閱[資料處理](/docs/zh-TW/data-usage)。

<h3 id="deployment">
  部署
</h3>

Desktop 可以透過企業部署工具分發：

* **macOS**：透過 MDM（例如 Jamf 或 Kandji）使用 `.dmg` 安裝程式分發
* **Windows**：透過 MSIX 套件部署。有關企業部署選項（包括無聲安裝），請參閱[為 Windows 部署 Claude Desktop](https://support.claude.com/en/articles/12622703-deploy-claude-desktop-for-windows)

有關需在防火牆中加入允許清單的網域，請參閱上方的[網路存取需求](#network-access-requirements)。有關代理伺服器設定、自訂憑證授權單位和 LLM 閘道，請參閱[網路設定](/docs/zh-TW/network-config)。

有關完整的企業設定參考，請參閱[企業設定指南](https://support.claude.com/en/articles/12622667-enterprise-configuration)。

<h2 id="coming-from-the-cli">
  來自 CLI？
</h2>

如果您已經使用 Claude Code CLI，Desktop 執行相同的基礎引擎，具有圖形介面。您可以在同一機器上同時執行兩者，甚至在同一專案上執行。每個都維護單獨的工作階段清單，您可以將 CLI 工作階段帶入 Desktop。它們透過 CLAUDE.md 檔案共用設定和專案記憶。

若要將 CLI 工作階段移至 Desktop，請在終端機中執行 `/desktop`。Claude 儲存您的工作階段並在桌面應用程式中開啟它，然後退出 CLI。此命令在 macOS 和 x64 Windows 上可用，當您使用 Claude 訂閱登入時。它不適用於 API 金鑰身分驗證或 Amazon Bedrock、Google Cloud 的 Agent Platform 或 Microsoft Foundry。

從您的 shell，[`claude --desktop`](/docs/zh-TW/cli-reference#cli-flags) 直接開啟 Desktop，無需啟動終端機工作階段。它需要 Claude Code v2.1.285 或更新版本，並具有與 `/desktop` 相同的平台和登入要求。沒有其他引數時，它會在目前目錄中開啟 Desktop。若要在 Desktop 中開啟現有的 CLI 工作階段，請為此目錄中最近的對話新增 `--continue`，或使用 `/status` 顯示的工作階段 ID 新增 `--resume`：

```bash theme={null}
claude --desktop --resume <session-id>
```

Claude Code 列印 `Opening session <session-id> in Claude Desktop`，工作階段在應用程式中開啟，命令退出。工作階段名稱不能代替 ID。Claude Code 不會移動在另一個終端機中開啟或仍在背景執行的工作階段。如果未安裝 Claude Desktop，命令會列印下載連結並退出。

您也可以從 Desktop 內部使用 `/resume` 取得 CLI 工作階段。此命令在本機工作階段中可用，不在 SSH、WSL 或雲端工作階段中可用。

若要在 Desktop 中繼續終端機工作階段：

1. 在終端機中關閉工作階段。
2. 在 Desktop 提示詞方塊中，輸入 `/resume`。Desktop 列出您從此電腦上的 CLI 啟動的工作階段。按標題、資料夾或分支搜尋，並預覽每個工作階段停止的位置。
3. 選擇工作階段。它在應用程式中繼續進行，具有完整的對話和內容。

Desktop 繼續相同的工作階段而不是副本，因此之後在終端機中執行 `claude --resume` 仍然會找到它。

<Tip>
  何時使用 Desktop 與 CLI：當您想要在一個視窗中管理並行工作階段、並排排列窗格或視覺化檢查變更時，使用 Desktop。當您需要指令碼、自動化或偏好終端機工作流程時，使用 CLI。
</Tip>

<h3 id="cli-flag-equivalents">
  CLI 旗標等效項
</h3>

此表顯示常見 CLI 旗標的桌面應用程式等效項。未列出的旗標沒有桌面等效項，因為它們是為指令碼或自動化設計的。

| CLI | Desktop 等效項 |
| - | - |
| `--model sonnet` | 傳送按鈕旁的模型下拉式選單 |
| `--resume`, `--continue` | 點擊側邊欄中的工作階段，或在提示詞方塊中輸入 `/resume` 以取得您從 CLI 啟動的工作階段 |
| `--permission-mode` | 傳送按鈕旁的模式選擇器 |
| `--dangerously-skip-permissions` | 略過權限模式。在 Pro 和 Max 方案上，在「設定」→「Claude Code」→「允許略過權限模式」中啟用它；在 Team 和 Enterprise 方案上，組織政策控制它 |
| `--add-dir` | 在雲端工作階段中使用 **+** 按鈕新增多個儲存庫 |
| `--allowedTools`, `--disallowedTools` | 沒有各別工作階段等效項。[設定檔](/docs/zh-TW/settings)中的權限規則仍然適用。 |
| `--verbose` | [Verbose 檢視模式](#switch-view-modes) |
| `--print`, `--output-format` | 不可用。Desktop 僅限互動。 |
| `ANTHROPIC_MODEL` 環境變數 | 傳送按鈕旁的模型下拉式選單 |
| `MAX_THINKING_TOKENS` 環境變數 | 在本機環境編輯器中設定。請參閱[環境設定](#environment-configuration)。 |

<h3 id="shared-configuration">
  共用設定
</h3>

Desktop 和 CLI 讀取相同的設定檔，因此您的設定會轉移：

* **[CLAUDE.md](/docs/zh-TW/memory)** 和 `CLAUDE.local.md` 檔案在您的專案中由兩者使用
* 在 `~/.claude.json` 或 `.mcp.json` 中設定的 **[MCP 伺服器](/docs/zh-TW/mcp)** 在兩者中都有效
* 在設定中定義的 **[Hooks](/docs/zh-TW/hooks)** 和 **[skills](/docs/zh-TW/skills)** 適用於兩者
* `~/.claude.json` 和 `~/.claude/settings.json` 中的 **[設定](/docs/zh-TW/settings)** 是共用的。`settings.json` 中的權限規則、允許的工具和其他設定適用於 Desktop 工作階段。
* **模型**：相同的[模型](/docs/zh-TW/model-config#available-models)在兩者中都可用。在 Desktop 中，從傳送按鈕旁的下拉式選單中選擇模型。您可以在工作階段期間從相同的下拉式選單變更模型。

<h4 id="mcp-servers-from-the-claude-desktop-chat-app">
  Claude Desktop 聊天應用程式中的 MCP 伺服器
</h4>

Desktop 應用程式從 `claude_desktop_config.json` 將 MCP 伺服器載入到本機 Code 標籤工作階段中，以及來自 `~/.claude.json` 和 `.mcp.json` 的伺服器。在 `claude_desktop_config.json` 中定義的伺服器在 Desktop 聊天使用介面和本機 Code 標籤工作階段中都可用。

如果您在 `claude_desktop_config.json` 和 `~/.claude.json` 或 `.mcp.json` 中定義相同的伺服器名稱，本機工作階段中的 Code 標籤連接一次並使用 `claude_desktop_config.json` 定義。

應用程式也會將 `~/.claude.json` 中的 stdio 伺服器重新傳遞到本機工作階段中的嵌入式 CLI。當 `~/.claude.json`（使用者範圍）和 `.mcp.json` 的頂層定義相同的 stdio 伺服器名稱時，Code 標籤使用 `~/.claude.json` 定義，偏離 CLI [範圍階層](/docs/zh-TW/mcp#scope-hierarchy-and-precedence)。

<Note>
  獨立 CLI 不讀取 `claude_desktop_config.json`。在 macOS 和 WSL 上，執行 `claude mcp add-from-claude-desktop` 將這些伺服器複製到 `~/.claude.json`。請參閱[從 Claude Desktop 匯入 MCP 伺服器](/docs/zh-TW/mcp#import-mcp-servers-from-claude-desktop)以了解匯入流程和範圍選項。
</Note>

<h3 id="feature-comparison">
  功能比較
</h3>

此表比較 CLI 和 Desktop 之間的核心功能。有關 CLI 旗標的完整清單，請參閱 [CLI 參考](/docs/zh-TW/cli-reference)。

| 功能 | CLI | Desktop |
| - | - | - |
| 權限模式 | 所有模式，包括 `dontAsk` | Manual、Accept edits、Plan 和 Auto。Bypass permissions 在模式選擇器中出現，一旦啟用：在 Pro 和 Max 方案上透過「設定」切換，或在 Team 和 Enterprise 方案上透過組織政策 |
| [第三方提供者](/docs/zh-TW/third-party-integrations) | Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry | Anthropic 的 API 預設。若要進行閘道路由，請參閱[將桌面應用程式連接到閘道](/docs/zh-TW/llm-gateway-connect#desktop-app)。若要在 Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 或自託管 LLM 閘道上執行 Code 標籤，請參閱 [Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/overview)。 |
| [MCP 伺服器](/docs/zh-TW/mcp) | 在設定檔中設定 | 本機和 SSH 工作階段的連接器 UI，或設定檔 |
| [外掛](/docs/zh-TW/plugins/overview) | `/plugin` 命令 | 外掛管理器 UI |
| @mention 檔案 | 文字型 | 具有自動完成；僅限本機和 SSH 工作階段 |
| 檔案附件 | 不可用 | 影像、PDF |
| 工作階段隔離 | [`--worktree`](/docs/zh-TW/cli-reference) 旗標 | 啟動工作階段時的 **worktree** 選項 |
| 多個工作階段 | 單獨的終端機 | 側邊欄標籤 |
| 定期任務 | Cron 工作、CI 管道 | [排程任務](/docs/zh-TW/desktop-scheduled-tasks) |
| 電腦使用 | [透過 `/mcp` 在 macOS 上啟用](/docs/zh-TW/computer-use) | [應用程式和螢幕控制](#let-claude-use-your-computer)在 macOS 和 Windows 上 |
| iOS 模擬器 | 透過[電腦使用](/docs/zh-TW/computer-use#test-a-simulator-flow)驅動模擬器 | [iOS Simulator 窗格](/docs/zh-TW/desktop-ios-simulator)自動開啟 |
| Dispatch 整合 | 不可用 | [Dispatch 工作階段](#sessions-from-dispatch)在側邊欄中 |
| 指令碼和自動化 | [`--print`](/docs/zh-TW/cli-reference)、[Agent SDK](/docs/zh-TW/headless) | 不可用 |

<h3 id="what’s-not-available-in-desktop">
  Desktop 中不可用的內容
</h3>

以下功能在 Desktop 中不可用，除非另有說明：

* **第三方提供者**：Desktop 預設連接到 Anthropic 的 API。若要透過閘道路由 Desktop，或在 Amazon Bedrock、Google Cloud 的 Agent Platform、Microsoft Foundry 或自託管 LLM 閘道上執行 Code 標籤，請遵循[第三方提供者列](#feature-comparison)中的連結。
* **Linux (beta)**：Linux 桌面應用程式中尚未提供電腦使用。請參閱 [Claude Desktop on Linux](/docs/zh-TW/desktop-linux)。
* **內嵌程式碼建議**：Desktop 不提供自動完成樣式的程式碼補全。它透過對話式提示詞和明確的程式碼變更進行工作，並可在 Claude 回覆後[建議您的下一個提示詞](#accept-a-suggested-prompt)。
* **Agent teams**：協調的團隊，其中 Claude 作為團隊組長從共用任務清單中指派任務給隊員，在 [CLI](/docs/zh-TW/agent-teams) 中可用，不在 Desktop 中。若要在一個工作階段內進行多 agent 工作，請使用 [dynamic workflows](/docs/zh-TW/workflows)，它們在 Desktop 中執行；Claude 也可以[直接傳遞訊息和管理您的其他工作階段](#work-across-sessions)。
* **Terminal-dialog 命令**：在終端機中開啟互動式面板的內建命令，在 Code 標籤中的行為不同。直接編輯[設定檔](/docs/zh-TW/settings)以管理權限規則和設定，或從獨立 CLI 執行命令。
  * 沒有引數形式的命令，例如 `/permissions`，回覆 `isn't available in this environment`。
  * `/config` 開啟「設定」→「Claude Code」。命令後的文字被忽略，因此 `/config theme=dark` 不會設定主題。

<h2 id="troubleshooting">
  疑難排解
</h2>

下面的部分涵蓋桌面應用程式特定的問題。對於出現在聊天中的執行時 API 錯誤，例如 `API Error: 500`、`529 Overloaded`、`429` 或 `Prompt is too long`，請參閱[錯誤參考](/docs/zh-TW/errors)。這些錯誤及其修復在 CLI、Desktop 和網路中是相同的。

<h3 id="check-your-version">
  檢查您的版本
</h3>

若要查看您執行的桌面應用程式版本：

* **macOS**：點擊選單列中的 **Claude**，然後點擊 **About Claude**
* **Windows**：點擊 **Help**，然後點擊 **About Claude**

點擊版本號以將其複製到您的剪貼簿。

<h4 id="claude-code-version-in-the-code-tab">
  Code 標籤中的 Claude Code 版本
</h4>

若要查看工作階段執行的 Claude Code 版本，請在 **Code** 標籤的本機工作階段中輸入 `/status`，並查看 **Claude Code** 列，其中會顯示如 `2.1.286` 的版本。

若要為本機工作階段取得較新的版本，請在 macOS 上開啟 **Claude → Check for Updates**，或在 Windows 上開啟 **Help → Check for Updates**，然後啟動新的工作階段。

在本機工作階段中，**Code** 標籤會執行其自己的 Claude Code 副本，該副本有自己的版本號。桌面應用程式會下載並更新該副本，因此它可能與您終端機中的 `claude` 命令不同，且更新其中一個不會更新另一個。

<h3 id="403-or-authentication-errors-in-the-code-tab">
  Code 標籤中的 403 或驗證錯誤
</h3>

如果在使用 Code 標籤時看到 `Error 403: Forbidden` 或其他驗證失敗：

1. 從應用程式選單登出並重新登入。這是最常見的修復。
2. 驗證您有有效的付費訂閱：Pro、Max、Team 或 Enterprise。
3. 如果 CLI 有效但 Desktop 無效，完全退出桌面應用程式（不只是關閉視窗），然後重新開啟並登入。
4. 檢查您的網際網路連線和代理設定。

<h3 id="blank-or-stuck-screen-on-launch">
  啟動時螢幕空白或卡住
</h3>

如果應用程式開啟但顯示空白或無反應的螢幕：

1. 重新啟動應用程式。
2. 檢查待處理的更新。在 macOS 和 Windows 上，應用程式在啟動時自動更新；在 Linux 上，透過 apt 更新，如 [Claude Desktop on Linux](/docs/zh-TW/desktop-linux) 中所述。
3. 在受管理的網路上，確認您的防火牆允許[網路存取要求](#network-access-requirements)中的 CDN 主機。
4. 在 Windows 上，檢查「事件檢視器」中的 **Windows 日誌 → 應用程式** 下的當機日誌。

<h3 id="failed-to-load-session">
  「無法載入會話」
</h3>

如果您看到 `Failed to load session`，選定的資料夾可能不再存在、Git 儲存庫可能需要未安裝的 Git LFS，或檔案權限可能阻止存取。嘗試選擇不同的資料夾或重新啟動應用程式。

<h3 id="session-not-finding-installed-tools">
  會話找不到已安裝的工具
</h3>

如果 Claude 找不到 `npm`、`node` 或其他 CLI 命令等工具，請驗證工具在您的常規終端機中有效、檢查您的 shell 設定檔是否正確設定 PATH，並重新啟動桌面應用程式以重新載入環境變數。

<h3 id="git-and-git-lfs-errors">
  Git 和 Git LFS 錯誤
</h3>

在其自己的 worktree 中執行的會話需要 Git。如果您看到「Git is required」，請安裝 [Git](https://git-scm.com/downloads)，或在 Windows 上安裝 [Git for Windows](https://git-scm.com/downloads/win)，然後重新嘗試。在 Windows 上，1.49585.0 之前的 Claude Desktop 版本在啟動任何本機會話之前要求 Git；如果您看到該提示且未使用 worktrees，請更新應用程式。

如果您看到「Git LFS is required by this repository but is not installed」，請從 [git-lfs.com](https://git-lfs.com/) 安裝 Git LFS，執行 `git lfs install`，然後重新啟動應用程式。

<h3 id="mcp-servers-not-working-on-windows">
  Windows 上的 MCP servers 無法運作
</h3>

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

<h3 id="ssh-connection-fails-after-you-log-in">
  登入後 SSH 連線失敗
</h3>

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

| 卡片上的標題 | 代碼 | 處理方式 |
| - | - | - |
| `<host>'s SSH server has SFTP turned off` | `[SFTP_UNAVAILABLE]` | 在伺服器的 `sshd_config` 中開啟 SFTP，如[遠端機器要求](#remote-machine-requirements-for-ssh-sessions)中所述 |
| `SFTP doesn't start on <host>` | `[SFTP_NOT_STARTED]` | 在您電腦的終端機中使用 `sftp` 連線至同一主機，以查看是什麼阻止了它，然後檢查 Desktop 訊息中指出的設定和檔案 |
| `<host> allows too few SSH sessions per connection` | `[SESSION_LIMIT]` | 提高伺服器 `sshd_config` 中的 `MaxSessions`，例如提高至 OpenSSH 的預設值 10 |
| `<host> is out of disk space` | `[ENOSPC]` 或 `[EDQUOT]` | 釋放遠端機器上您家目錄或 `/tmp` 中的空間或配額 |
| `This computer is out of disk space` | `[ENOSPC]` 或 `[EDQUOT]`，出現在以 `Couldn't prepare the deploy locally` 開頭的訊息中 | 釋放您電腦上的空間 |
| `Claude Code won't start on <host>` | `[CLI_UNRESPONSIVE]` | 等待一分鐘，然後重試。如果持續失敗，請在遠端機器上執行訊息中指出的命令，以查看 Claude Code 是否在該處有回應。 |

對於任何其他訊息，請檢查[遠端機器要求](#remote-machine-requirements-for-ssh-sessions)。

<a id="get-desktops-logs-for-an-ssh-problem" />

<h3 id="get-desktop’s-logs-for-an-ssh-problem">
  取得 SSH 問題的 Desktop 日誌
</h3>

`ssh.log` 是 Desktop 對其 SSH 連線的記錄，包含在您從 **Help** 選單儲存的 Desktop 日誌 zip 檔案中。若要儲存，請開啟 **Help > Troubleshooting**，並選擇適用於您系統的項目：

* **macOS**：**Show Logs in Finder**
* **Windows**：**Show Logs in File Explorer**
* **Linux**：**Show Logs in File Manager**

傳送前請先檢查這些檔案，因為其中可能包含您環境中的名稱和其他詳細資訊。`<host>` 和 `<user>` 代表 Desktop 已取代的名稱。Desktop 不會取代所有名稱，SSH 主機或使用者名稱仍可能以原樣出現。如果您將 zip 檔案傳送給他人，請告知是哪個主機在何時失敗，因為日誌中可能未指出該主機。

zip 檔案不包含 Desktop 安裝在遠端機器上的輔助程式的日誌。若也要取得該日誌，請從連線使用者家目錄中 [`~/.claude/remote/run/`](#files-and-processes-on-the-remote-machine) 下的輔助程式資料夾複製 `remote-server.log`。傳送前也請檢查該檔案。

<h3 id="app-won’t-quit">
  應用程式無法退出
</h3>

* **macOS**：按 Cmd+Q。如果應用程式沒有回應，使用 Cmd+Option+Esc 強制退出，選擇 Claude，然後點擊「強制退出」。
* **Windows**：使用 Ctrl+Shift+Esc 的工作管理員來結束 Claude 程序。

<h3 id="windows-specific-issues">
  Windows 特定問題
</h3>

* **安裝後 PATH 未更新**：開啟新的終端機視窗。PATH 更新僅適用於新的終端機會話。
* **並行安裝錯誤**：如果您看到有關另一個安裝進行中的錯誤，但實際上沒有，請嘗試以管理員身份執行安裝程式。

<h3 id="branch-doesn’t-exist-yet-when-opening-in-cli">
  在 CLI 中開啟時「分支尚不存在」
</h3>

雲端工作階段可以建立在您的本機機器上不存在的分支。點擊工作階段中的分支名稱並選擇 **Copy branch name**，然後在本機提取它：

```bash theme={null}
git fetch origin <branch-name>
git checkout <branch-name>
```

<h3 id="still-stuck">
  仍然卡住？
</h3>

* 在桌面應用程式中開啟「Help → Get Support」，或直接造訪 [Claude 支援中心](https://support.claude.com/)
* 對於在獨立 `claude` CLI 中也會重現的問題，請在 [GitHub Issues](https://github.com/anthropics/claude-code/issues) 上搜尋或提交錯誤

提交問題時，請包括您的桌面應用程式版本、您的作業系統、確切的錯誤訊息和相關日誌。在 macOS 上，檢查 Console.app。在 Windows 上，檢查「事件檢視器 → Windows 日誌 → 應用程式」。檢查日誌摘錄後再將其發佈到公開問題；它們可能包括來自您環境的檔案路徑和其他詳細資訊。
