> ## Documentation Index
> Fetch the complete documentation index at: https://supastack.dev/llms.txt
> Use this file to discover all available pages before exploring further.
> For the full documentation corpus in one file, fetch: https://supastack.dev/llms-full.txt

# 桌面端概覽

一個包裹同一個 Web 應用的 Tauri webview 外殼 —— 是入口存在，不是第二份產品。

## 初學者演練

先決條件：閱讀下面的兩個初學者指南並完成桌面本地設定，包括 Rust 和作業系統先決條件。該程式碼塊啟動了 web 應用程式和 monorepo 中的 Tauri；在僅限桌面的結賬中，僅在單獨啟動可訪問的 Web 後端後才使用其過濾命令。 Tauri 載入該後端。

簡而言之：工作區是一個團隊的單獨使用者、資料和設定。伺服器是可信後端；讓提供商金鑰遠離瀏覽器和電話程式碼。遷移是建立或更新表的版本化資料庫更改。人工智慧模型是回答的引擎；型號目錄是伺服器上可用型號 ID 和價格的列表。提供商是一種外部服務，例如人工智慧、電子郵件或計費服務。權利是允許工作區使用某項功能的授權。 Webhook 是一個服務傳送到另一個服務的 URL 的訊息。

1. 按照桌面本地設定進行操作，然後在 Tauri 視窗中開啟應用程式並登入到您在瀏覽器中使用的同一 Web 帳戶。

2. 訪問工作區頁面，從托盤隱藏/顯示視窗，然後嘗試呼叫快捷方式。

3. 螢幕應與 Web 應用程式匹配，因為 Tauri 載入配置的後端。如果為空，請確認 `SUPASTACK_APP_URL` 指向可訪問的正在執行的 Web 應用程式。

對於自定義程式碼，請從提供的 `prompts/README.md` 開始，然後複製最接近的提示：對於應用程式螢幕為 `prompts/new-app-screen.md`，對於公共頁面為 `prompts/new-landing-page.md`。對於伺服器、資料庫或提供商工作，請為您的編碼代理提供本指南的任務，並要求其讀取 `AGENTS.md`、`.ai/PROJECT_CONTEXT.md` 和匹配的 `.ai/` 映象；檢查此處指定的確切原始檔；列出檔案並在編輯前進行檢查；保留工作區所有權和僅限伺服器的機密；並向您展示差異。告訴它您想要的行為、輸入和輸出欄位、允許的角色、預期的成功和錯誤以及測試帳戶、提供程式或裝置。使用樣本值；永遠不要貼上真正的秘密。

[開始之前](https://supastack.dev/zh-tw/docs/web/before-you-start.md)

[終端基礎知識](https://supastack.dev/zh-tw/docs/web/terminal-basics.md)

[桌面本地設定](https://supastack.dev/zh-tw/docs/desktop/ship-in-5-minutes.md)

[座席提示和專案記憶體](https://supastack.dev/zh-tw/docs/web/agents.md)

```
# Monorepo: start the web app and desktop shell together
corepack pnpm dev:desktop

# Desktop-only checkout: start Tauri after a web backend is already reachable
corepack pnpm --filter @supastack/desktop dev
```


## 一個產品 UI，一個本機 shell

`apps/desktop` 是 Web 應用程式上的 Tauri Web 檢視。它與網路共享產品UI、身份驗證和聊天；本機視窗/托盤行為位於 `src-tauri/src/lib.rs` 中。它需要一個可訪問的網路後端，並且不捆綁獨立的產品介面。


## 使用本機 shell 功能

該 shell 附帶托盤選單、靠近托盤、單例項焦點、全域性召喚熱鍵、本機導航/檢視選單、系統瀏覽器中的外部連結、`supastack://` 深層連結召喚、記住的視窗狀態和離線重試覆蓋。

`SUPASTACK_APP_URL` 用於選擇後端：優先使用有效的執行時變數，其次是編譯時變數，最後回退到 localhost。`SUPASTACK_DESKTOP_HOTKEY` 可覆蓋預設的 `CmdOrCtrl+Shift+Space`。簽名釋出構建會注入 `SUPASTACK_UPDATER_ENDPOINT` 與 `SUPASTACK_UPDATER_PUBKEY`；當端點路徑包含 `{{channel}}` 時，應用選單會啟用 **Beta Updates**（在 `stable` 與 `beta` 之間切換，執行時可通過 `SUPASTACK_UPDATE_CHANNEL` 覆蓋）。


## 選擇你的桌面路徑

一起執行 Web 和桌面以進行本地工作，然後構建並驗證本機目標及其平臺先決條件。商店簽名、安裝程式和物理桌面行為需要單獨接受。

[5分鐘搭建Tauri桌面](https://supastack.dev/zh-tw/docs/desktop/ship-in-5-minutes.md)

[視窗、托盤和熱鍵行為](https://supastack.dev/zh-tw/docs/desktop/run.md)

[桌面構建和分發](https://supastack.dev/zh-tw/docs/desktop/release.md)


## Webview 外殼，而非第二個應用

apps/desktop 是一個 Tauri 2.x 外殼。src-tauri 中的 Rust 核心負責視窗、系統托盤與全域性快捷鍵，webview 載入 Web 應用。介面、認證、計費與 AI 全部來自同一個 Next.js 程式碼庫 —— 桌面端增加的是存在感，而不是並行產品。

外殼自帶 apps/desktop/ui 中的佔位頁面，在 Web 應用載入期間顯示，冷啟動永遠不會渲染空白視窗。


## 把外殼指向一個部署

視窗目標按順序解析：執行時 SUPASTACK_APP_URL 環境變數，然後是編譯期 SUPASTACK_APP_URL，最後是 http://localhost:3000。只接受 http 和 https URL —— 空值或非 Web 值會回退到下一個候選。

對於開發來說，這意味著 shell 附加到任何 corepack pnpm dev 服務的地方。對於生產，請在構建時設定變數以烘焙已部署的 Web 應用程式。


## 金鑰留在服務端

外殼不攜帶任何供應商憑據。webview 走的是與瀏覽器相同的已認證 API 介面，因此供應商金鑰、會話金鑰與計費配置都留在服務端。

包識別符號 com.supastack.desktop 與預設能力集（core:default 加用於系統瀏覽器連結的 opener:allow-open-url）讓 webview 保持沙箱化；只有當某個原生功能需要時才放寬 src-tauri/capabilities 中的許可權。


如果你想繼續完成設定，可以閱讀《[執行並配置外殼](https://supastack.dev/zh-tw/docs/desktop/run.md)》。


## 下一篇

[5 分鐘啟動桌面應用](https://supastack.dev/zh-tw/docs/desktop/ship-in-5-minutes.md)
