> ## 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/docs/web/before-you-start.md)

[终端基础知识](https://supastack.dev/zh/docs/web/terminal-basics.md)

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

[座席提示和项目内存](https://supastack.dev/zh/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/docs/desktop/ship-in-5-minutes.md)

[窗口、托盘和热键行为](https://supastack.dev/zh/docs/desktop/run.md)

[桌面构建和分发](https://supastack.dev/zh/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）让 webview 保持沙箱化；只有当某个原生功能需要时才放宽 src-tauri/capabilities 中的权限。


如果你想继续完成设置，可以阅读《[运行并配置外壳](https://supastack.dev/zh/docs/desktop/run.md)》。


## 下一篇

[5 分钟启动桌面应用](https://supastack.dev/zh/docs/desktop/ship-in-5-minutes.md)
