For AI agents: fetch the complete documentation index at /llms.txt, the full documentation corpus at /llms-full.txt, the agent skill at /skill.md, or this page as Markdown at /zh/docs/desktop.md (or send Accept: text/markdown).
桌面端概览
一个包裹同一个 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/ 镜像;检查此处指定的确切源文件;列出文件并在编辑前进行检查;保留工作区所有权和仅限服务器的机密;并向您展示差异。告诉它您想要的行为、输入和输出字段、允许的角色、预期的成功和错误以及测试帐户、提供程序或设备。使用样本值;永远不要粘贴真正的秘密。
# 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 和桌面以进行本地工作,然后构建并验证本机目标及其平台先决条件。商店签名、安装程序和物理桌面行为需要单独接受。
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 中的权限。
如果你想继续完成设置,可以阅读《运行并配置外壳》。
