DSH Desktop 到底是什么
DSH Desktop 是一个打包好的桌面应用,而不是装进现有 Harness 里的一个扩展。它自带一份固定版本的上游 DeepSeek Harness 并原样运行——README 明确说没有修改上游源码。它把 Harness 的本地 Web UI、Host 服务和插件系统一起装进原生桌面应用,然后把生态自己的规则用在自己身上:桌面外壳(窗口、托盘、终端、更新、工作配置这一层)本身按 DSH 插件接入,并通过 Harness 自己的插件机制组合进同一个运行时。
仓库是一个 Yarn workspace,清单文件名叫 deepseek-harness-desktop,标着 "private": true,既没有 version 字段,也没有 dsh 字段。这个机械事实值得先说清楚:它是一份产品工作区,不是发布到 npm 上的 DSH 插件包。README 也把关系写得很直白——这是独立社区项目,与深度求索不存在隶属、合作、授权或背书关系;目前没有深度求索员工或上游 DeepSeek Harness 官方团队成员参与,GitHub Contributors 上出现的上游名字来自 fork 继承与同步的提交历史,只反映提交来源。
桌面外壳实际做了什么
README 自己划了分工:上游提供智能体、模型、工具、会话、Web UI 与插件生态;DSH Desktop 负责桌面应用封装、本地服务的启动停止与恢复、桌面窗口与系统托盘集成、macOS 与 Windows 安装包的构建发布,以及更适合桌面的界面体验。它点名提到的功能有这些:
- Desktop —— 应用自己启动并管理本地 Harness 服务,把它放进带系统托盘集成的原生窗口。README 的说法是:无需安装 Node.js,也不用执行命令。
- Setup Wizard —— 某个尚未初始化的 profile 在正常首次启动时,会先看到由 Desktop 提供的原生向导。它可以设置窗口模式与系统材质、插件市场、通知、是否用系统默认浏览器自动打开,以及 Web 访问范围,也可以直接跳过。在完成或跳过之前,Host 和主 DSH 窗口都不会启动;完成或跳过的状态按 profile 分别记录,而显式恢复启动仍然优先进入恢复助手。
- Web 服务范围 —— Web 服务默认只监听本机回环地址。开启「用浏览器打开」后,Desktop 会在 Web 服务真正就绪时把地址交给系统默认浏览器,README 明确说这个选项不改变网络暴露范围。「桌面设置」里会显示实际的本机 URL;局域网访问是另一个独立开关,开启后还会显示当前的局域网 URL。
- 插件市场 —— DSH Community Market 被描述为「已完成并内置」,覆盖插件发现、详情、安装与管理。它以开放方式连接符合公开 Schema 的插件数据源,已有 API 也可以通过受审 adapter 作为合作数据源接入。
- 工作配置 —— 查看与切换工作配置,被列为已经可用的桌面能力。
README 没有做的,是继续罗列这些之外的界面功能。别处读到的面板、启动器或多会话窗口网格之类说法,在这里找不到出处。
插件机制是它的架构,不是附加功能
整个产品只有一条规则:上游插件、DSH Desktop 插件和其他社区插件遵循同一套约定、通过同一套机制组合;而 DSH Desktop 自己就是一个 DSH 插件。由于固定的上游版本是原样运行的,README 的表述是「与所固定上游版本兼容的插件可以使用」——它没有对面向其他上游版本开发的插件下任何结论。
对插件作者来说这里有真实可用的接口,而不只是口号:Desktop 提供 Desktop 服务,让插件能与桌面能力集成,README 举的例子是查看和切换工作配置,以及在当前配置中安装、更新、移除插件。哪些能力有意不向第三方插件开放,README 指向「为什么做 DSH Desktop」和插件开发指南两篇文档,并没有在 README 里列出,所以这条边界具体包含什么,此处不做断言。
安装、平台与环境要求
正式安装包只覆盖两个目标,README 说无需额外环境:
| 平台 | 下载 | 安装方式 |
|---|---|---|
| Windows x64 | NSIS 安装程序 | 运行安装程序并按提示完成 |
| macOS Universal | DMG | 打开 DMG,把 DSH Desktop 拖进 Applications |
这张表有两个推论。第一,README 全文没有提到 Linux,所以它应当被视为不支持,而不是「只是没测」。第二,macOS 只提供一个 Universal 构建,文档里不存在 Intel 与 Apple Silicon 之分。
从源码构建是另一套要求。外层仓库用 Yarn,固定的 deepseek-harness/ 子模块继续使用自己的 pnpm workspace;文档给出的顺序是 git submodule update --init --recursive,然后 corepack yarn install --immutable,再 corepack yarn dev,headless 检查用 corepack yarn check。工作区清单声明 packageManager: yarn@4.18.0 与 engines.node 为 ^22.19.0 || >=24.0.0,其 scripts 负责 macOS 与 Windows 的打包。稳定版与 Beta 桌面包分别位于 dsh-plugin-desktop/ 与 dsh-plugin-desktop-beta/。
已知边界,以及 README 没有说明的部分
README 里没有限制章节,而读者想知道的若干问题,它确实没有回答。以下照实说明:
- 局域网开放没有鉴权。 这一条在文档里是「危险」提示,不是脚注:向局域网开放不提供鉴权,所有与你处于同一局域网的人都能直接打开 DSH 并操作你的电脑。README 建议只在完全信任的网络中谨慎开启;默认状态是仅监听本机回环。
- 手机远程控制尚未发布。 iOS 与 Android 远程控制带「即将推出」标记:在手机上连接 Desktop、发起任务、查看 Agent 进度。它是预告,不是已上线功能。
- 没有提到 Linux。 文档只写了 Windows x64 与 macOS Universal。
- 代码签名与公证状态没有说明。 README 没有说 Windows 安装程序或 macOS DMG 是否已签名或公证。
- 遥测没有说明。 README 记录了一次对外请求(见下节),但从未声明「没有遥测」,所以缺一个遥测章节是沉默,不是保证。
- 凭据存储与数据处理在 README 中没有说明。 它链接到另一份独立维护的隐私政策,而不是在 README 里概述,因此凭据或会话数据存放在哪里,无法从这两份材料得到答案。
- 打包组件的第三方许可合规没有说明。 项目本身是 MIT 许可;打包后的应用再分发了什么,文档没有涉及。
- 沙箱与离线可用都没有被主张。 两者都不在 README 里,而一个会检查更新、会下载安装包的应用,不应被默认为可以离线工作。
- 没有公开的版本字段。 工作区清单里没有
version,所以你看到的版本号来自 README 的 release 徽章,而不是这个文件里的字段。
唯一被记录在案的联网请求
README 只披露了一次网络交互:固定版本的自动更新检查。该请求在 X-DSH-Desktop-Version header 里携带当前安装版本,在 X-DSH-Desktop-Channel 里携带 stable 或 beta,在 X-DSH-Desktop-Installation-Id 里携带一个由本机生成并持久保存的随机 UUID——README 明确说它不是从硬件信息推导出的标识。安装包下载会携带通道和 X-DSH-Desktop-Target-Version,但下载请求及其重定向不携带安装标识,也不携带当前版本。
文档写到的就这些。除此之外没有其他端点、载荷或留存行为的描述;本地 Harness 服务如何处理你的模型流量,属于上游范围,README 同样没有展开。
什么时候用它,什么时候不要用
适合用的场景:你想要 Harness 待在一个正常的桌面窗口里,而且不想为此安装 Node.js 或敲命令;你希望桌面外壳像其他东西一样可以被插件替换;或者你在意工作配置切换和内置插件市场。项目自己的说法是手机应用式的类比:插件按同一套规则开发,装在一起也能一起工作、互不干扰。
不适合用的场景:你在 Linux 上工作——文档只写了 Windows x64 与 macOS Universal。你真正想要的是命令行——README 自己就把「想用命令行运行 DeepSeek Harness」和「想参与核心功能开发」的人指向了上游仓库。你的需求是手机控制——这个功能是预告而非已发布;README 的友情链接里列了相邻项目 Agents-Anywhere(从手机远程控制电脑上的 Coding Agent)与 deepseek-harness-remote(基于 P2P 与 APIProxy 的远程控制与多端协同插件),但 README 把它们作为友情项目收录,并没有与 DSH Desktop 做比较,把它们当作替代品是读者的推断,而不是文档结论。同样的谨慎也适用于那份列表里更轻量的界面项目,例如 DSH-better-sidebar、dsh-web-ui、dsh-TUI、dsh-tianshu-tui:它们被收录在友情链接中,并没有被定位成替代方案。还有一条可查的线索:工作区 scripts 里包含一个 aa:prepare-release 步骤,会运行 prepare-Agents-Anywhere-release 脚本,但 README 没有解释这一步打包了什么。
最后是一个安全取舍,而不是功能取舍:如果你所在的网络不是完全可信,就不要打开局域网访问,因为开启它就等于暴露一条无鉴权的、可以操作你电脑的入口。
FAQ
DSH Desktop 是 DeepSeek 官方产品吗?
不是,README 说得很明确。它把 DSH Desktop 描述为基于 DeepSeek Harness 和 Cordis 插件思想构建的独立社区项目,声明与深度求索不存在隶属、合作、授权或背书关系,也声明目前没有深度求索员工或上游 DeepSeek Harness 官方团队成员参与其开发、维护或治理。GitHub Contributors 页面上可能出现的上游贡献者,来自 fork 继承及后续同步的上游提交历史;README 说这种署名只反映提交来源,不代表相关人员参与本仓库。「DeepSeek Harness」是深度求索的注册商标,README 使用该名称仅为准确说明兼容性、技术来源及与上游软件的关系。
需要先装 Node.js 吗?
用正式安装包的话不需要。README 说安装包无需额外环境,应用会自动启动和管理本地 Harness 服务,也不需要安装 Node.js 或执行命令。从源码运行则是另一回事:那条路径需要 Yarn 和固定的 deepseek-harness/ 子模块,并沿用工作区清单里的 engines.node 范围 ^22.19.0 || >=24.0.0。
能用手机远程控制它吗?
已发布的功能里没有。README 把 iOS 与 Android 远程控制放在「即将推出」标记之后——在手机上连接 Desktop、发起任务、跟进 Agent 进度。请把它当作预告而不是可用能力。如果今天就需要手机控制,README 的友情链接里指向了其他项目,而 README 没有说明它们与本项目的关系。
开放到局域网安全吗?
README 对这个问题给了直接的否定回答:局域网访问不提供鉴权,所有同网段的人都能直接打开 DSH 并操作你的电脑,因此建议只在完全信任的网络中开启。默认仅监听本机回环,而开启「用浏览器打开」并不会改变这一点。
它会把数据发到服务器吗?
文档只记录了一次交互:固定版本的更新检查,携带当前安装版本、通道,以及一个本机生成并持久保存的随机 UUID——README 说它不从硬件信息推导。README 没有声明「没有遥测」,没有说明凭据存储方式,并把数据处理交给另一份它链接但未概述的隐私政策;因此这些问题无法由本条目所依据的材料回答。