打开网易新闻 查看精彩图片

前面研究 0.1.3-alpha.2 的时候,我顺手提到了一件很大的事:DeepSeek Harness 官方 Desktop 已经正式合进 master。

当时我只是简单说了一句“桌面版快来了”。

这两天我又把 apps/desktop、Desktop Host、插件管理、自动更新、打包和回滚这些代码顺着看了一遍,发现这东西比我最开始想象的完整得多。

它并不是简单把现在的 DSH Web 页面塞进一个 Electron 窗口。

官方真正想解决的是:

普通用户怎么安装Node.js / pnpm 怎么处理Desktop 和 CLI 会不会互相打架插件装坏了怎么办DSH 更新以后 Desktop 怎么跟Windows / Mac 怎么打包升级失败以后怎么退回去

而且这些东西,大部分已经有实际代码,不只是写在规划文档里。

先说目前最重要的状态。

官方 Desktop 代码已经进入 master,当前包版本也跟着 DSH 写到了:

0.1.3-alpha.2

但是截至我这次研究,0.1.3-alpha.2 的 GitHub Release 仍然没有给普通用户提供 Desktop 安装包。

所以现在最准确的说法是:

官方桌面版的核心架构、打包和更新基础设施已经进入主线,但面向普通用户的公开下载安装入口还没有正式放出来。

为什么我还是觉得“快来了”?

下面这 8 个设计,看完基本就明白了。

打开网易新闻 查看精彩图片

一、以后最爽的一点:你可能根本不用自己装 Node.js

现在第一次接触 DSH,很多朋友最先遇到的其实不是 AI,而是环境。

你得先知道:

Node.jsnpmpnpm终端环境变量

这些东西是什么。

然后才能运行 DSH。

但官方 Desktop 的思路完全变了。

它会自己带:

Node.jspnpm匹配版本的 DSH

也就是说,Desktop 启动 DSH 时,不依赖你电脑上已经安装的 Node.js,也不会去找你 PATH 里面的 pnpm。

官方甚至明确把这件事当成了一个设计原则:

系统 Node.js、系统 pnpm,以及用户自己的包管理器配置,不进入 Desktop 的正常执行路径。

这句话对程序员可能很普通,对普通用户意义却非常大。

以后安装体验理论上可以变成:

下载安装包安装 DeepSeek Harness打开配置模型开始使用

不用再先看半小时:

node -vpnpm -v

也不用因为 Node 22、24、26 又折腾一轮。

我觉得这可能是 Desktop 最大的价值之一。

DSH 如果真的想从开发者工具走向更多普通用户,这道门槛早晚都得拿掉。

打开网易新闻 查看精彩图片

二、它甚至没打算偷偷给你启动一个 localhost 网页

一看到:

Electron Desktop

我原本以为架构会非常简单:

Electron后台执行 dsh web启动 localhost:xxxxElectron 打开这个网页

但官方没有这么干。

当前 Desktop 的设计里,应用不会为了 Web UI 再开放一个普通监听端口。

界面使用的是:

dsh-app://

这样的自定义协议。

Electron 壳和内部启动的 DSH Backend 之间,则使用专门的分帧字节通道传输 Fetch 请求和流式响应。

生命周期控制再走 IPC。

大白话理解就是:

外面看到的是一个桌面 App里面虽然仍然复用了 DSH Web UI但它没有再给你开一个http://127.0.0.1:xxxx

为什么要绕这么一圈?

因为一旦继续使用 localhost,就又会出现我们非常熟悉的问题:

端口被占用认证怎么处理CORS 怎么处理本机服务暴露范围到底哪个进程拥有这个端口

官方 Desktop 直接把这一层收回应用内部。

所以它更接近真正意义上的:

本地桌面程序。

而不是一个“帮你自动打开网页版”的启动器。

打开网易新闻 查看精彩图片

三、Desktop 和 CLI 能看到同一批 Session,但环境不会搅在一起

这个设计我觉得特别适合已经在使用 DSH 的老用户。

官方没有准备给 Desktop 再建一套完全独立的数据世界。

它仍然使用:

所以受支持的用户数据,比如:

SessionWorkspace设置凭据Storage

可以继续被 Desktop 和我们现在使用的 DSH 共享。

这意味着以后你理论上可以:

以前用 CLI / Web 创建的 SessionDesktop 继续打开

而不用从零重新积累。

但问题来了。

如果连插件和 node_modules 也一起共享,会非常危险。

比如:

CLI 装的是插件 A 1.2Desktop 装的是插件 A 1.5DSH 版本又不一样

很快就乱套了。

所以官方专门留了一块:

/profiles/desktop

给 Desktop 自己使用。

桌面端自己的:

node_modulespnpm store插件lockfile包管理状态

全部独立管理。

可以把它理解成:

                 ~/.dsh┌──────────┴──────────┐│                     │用户数据共享          运行环境隔离Session               CLI packagesWorkspace             Desktop packagesSettings              Desktop pluginsCredentials           Desktop node_modules

这套设计的好处特别实际:

Desktop 不应该因为你 CLI 里折腾一个实验插件,就一起打不开。

反过来也一样。

桌面端更新插件,不应该偷偷把你的命令行环境改掉。

打开网易新闻 查看精彩图片

四、连“开两个 Desktop”这种问题,官方都提前堵了

DSH 0.1.3 这轮我们已经反复遇到 Session Lock。

原因很简单:

两个进程如果同时往同一 Session 写,很容易把数据搞乱。

Desktop 又多了一层类似的保护。

官方要求一个 Desktop 实例先获取应用级的 Single Instance Lock(单实例锁)。

如果你已经打开一个 DSH Desktop,又双击启动第二次:

第二个进程发现已经有 Desktop自己退出把第一个窗口拉到前台

而不是让两个桌面进程同时跑。

这件事看起来很小,但结合:

插件安装自动更新profile 切换pnpm storeSession

就非常重要。

因为 Desktop 不只是读数据,它还会管理一整套自己的运行环境。

如果两个 Desktop 同时认为:

“这个 profile 是我的。”

后面的问题会比两个浏览器窗口严重得多。

所以现在这套架构里,其实有好几层不同的“锁”:

Desktop 单实例Desktop profile 所有权事务锁安装 / 更新过程Session LockSession 写入

这已经是按长期运行的软件在考虑问题了。

打开网易新闻 查看精彩图片

五、插件终于不用全靠命令行,而且装坏了还能回滚

这个可能是普通用户最容易有感觉的一项。

Desktop 代码里已经存在一个单独的:

桌面插件

管理窗口。

界面支持:

安装移除更新刷新

你甚至可以直接输入:

@scope/plugin@1.2.3

这种 npm 包。

官方中文文案都已经写好了:

插件只安装到桌面端自己的 node_modules,并由内置 pnpm 管理。

这意味着以后管理插件,很可能不再必须:

dsh plugin ...

直接在 GUI 里完成就可以。

但真正让我觉得这东西已经不像 Demo 的,是它处理“插件装坏”的办法。

正常想象可能是:

点安装pnpm add修改当前环境重启

如果插件有问题:

完蛋,DSH 打不开了。

而官方 Desktop 做的是另外一套流程。

先创建:

staging

也就是临时的新环境。

然后:

安装插件生成完整 staging profile暂时停止当前 Backend启动 staging Backend做健康检查

只有这个新环境能够完整启动:

健康检查通过才正式激活

旧环境则进入:

rollback/profile

如果新插件直接把 Backend 搞挂:

健康检查失败不切换当前环境继续保留

这套思路非常像我们平时部署正式服务。

一句话:

不是相信插件一定不会出错,而是假设它可能会出错,然后提前给用户留后路。

这对 DSH 特别重要。

因为我们前面已经研究过很多次:

插件一个 API 不兼容,整个 Web 都可能起不来。

Desktop 现在是在架构层面解决这类风险。

打开网易新闻 查看精彩图片

六、Desktop 不允许“壳是新版,里面 DSH 还是旧版”

自动更新也是我觉得设计得比较靠谱的地方。

以后 Desktop 不准备走这种路线:

Electron Desktop单独升级DSH再自己升级插件又各自升级

这样很快会出现:

Desktop 0.1.4DSH 0.1.3Desktop Host 0.1.2插件按另外一版 API 编译

官方的选择反而简单粗暴:

DesktopDSHDesktop Host

必须是同一个精确版本。

当前代码里两边就是:

0.1.3-alpha.2

所以将来即使:

Electron 壳一行代码都没有改。

只要 DSH 要升级,官方仍然需要制作一个新的 Desktop Release。

从下载体积和发布工作量来看,这可能更麻烦。

但从用户角度看反而简单:

我安装的“DeepSeek Harness 0.1.4”,就是一整套已经配好的 0.1.4。

没有“UI 和后端到底配不配”的问题。

自动更新界面现在也已经写出来了。

Desktop 启动后会检查更新,菜单里还有:

检查更新…

发现新版本以后,会显示:

发现可用更新DeepSeek Harness x.x.x新版本绑定匹配的 dsh安装后将重新启动

然后让用户自己选:

安装并重启

或者:

稍后

并不是静默在后台把程序换掉。

打开网易新闻 查看精彩图片

七、Windows 和两种 Mac 都已经进入正式发布流水线

这一点很容易被误读。

当前 Electron Builder 配置里确实还能看到 Linux:

AppImage

但真正的 Desktop 发布和自动更新流水线,目前明确支持的是:

mac-arm64mac-x64win-x64

对应:

Apple Silicon MacIntel MacWindows x64

所以现阶段不能写:

Linux 桌面版也马上发布。

更准确的说法是:

Linux 有构建配置上的预留,但目前官方明确的发布目标仍是 Windows x64 和两种 Mac 架构。

这其中 Intel Mac 很有意思。

因为前面的 0.1.3-alpha.1 才刚补:

macOS x64 Python Runtime

现在 Desktop 的正式打包目标里也已经明确保留:

mac-x64

对仍然使用 Intel Mac 的朋友算是个好消息。

macOS 这边甚至已经做到:

Developer ID 签名Hardened RuntimeApple NotarizationDMGZIP差分更新

Windows 则采用:

NSIS 安装包代码签名允许选择安装目录差分更新

所以如果只是做一个开发演示版本,根本没必要做到这里。

这些东西更像:

真准备把安装包交给普通用户。

打开网易新闻 查看精彩图片

八、连正式下载地址和生产更新通道都已经写进代码了

这一条是我这次继续往下挖以后,觉得最接近“快来了”的证据。

官方已经把 Desktop 自动更新区分为:

testproduction

两套环境。

测试环境的域名可以动态配置。

但正式生产环境的 Origin 已经直接固定成:

https://download.deepseek.com

Desktop 产物准备进入的路径也已经规定好了:

/_/harness/desktop/stable/mac-arm64//_/harness/desktop/stable/mac-x64//_/harness/desktop/stable/win-x64/

文件名规则则是:

deepseek-harness-${version}-${os}-${arch}.${ext}

所以按照目前规则,未来你看到的安装包名字,很可能会类似:

deepseek-harness-x.x.x-mac-arm64.dmgdeepseek-harness-x.x.x-mac-x64.dmgdeepseek-harness-x.x.x-win-x64.exe

更有意思的是,上传之前也不是简单把文件扔服务器。

代码会先核:

Desktop 版本DSH 版本目标平台文件大小SHA-512Updater metadata

都一致以后,才允许上传。

而且:

安装包先上传Channel metadata最后上传

避免客户端刚看到“有新版”,对应安装包却还没有全部准备好。

这已经是一套完整的软件发布流水线了。

也正因为看到这里,我才觉得标题里的:

“就快来了”

是有依据的。

但还是那句话:

截至现在,我没有找到官方公开给普通用户点击下载 Desktop 的正式入口。

当前 0.1.3-alpha.2 GitHub Release 里也没有 Desktop assets。

所以现在能说的是:

代码进 master 了Desktop 架构完成度很高插件管理有了自动更新有了回滚有了签名 / 公证有了Windows / Mac 打包目标有了生产下载通道也预留好了

但还不能说:

“现在去下载官方桌面版吧。”

这一点要等官方真正放出入口。

打开网易新闻 查看精彩图片

干货总结

研究到这里,我觉得 DeepSeek Harness 官方 Desktop 最值得记住的 8 点就是:

  1. 不用依赖系统 Node.js / pnpm:Desktop 自带运行环境,普通用户安装门槛会大幅下降。
  2. 不是简单 localhost 套壳:Web UI 走 dsh-app://,应用内部自己处理 Backend 通信。
  3. 共享 Session,隔离运行环境:CLI 和 Desktop 可以共享用户数据,但插件、node_modules、pnpm 状态各管各的。
  4. 有单实例和多层锁机制:避免两个 Desktop 或多个进程同时乱写自己的运行环境和 Session。
  5. 插件有 GUI,还有 staging + health check + rollback:插件装坏以后,不应该再轻易把整个 Desktop 搞瘫。
  6. Desktop 和 DSH 精确绑定版本:升级一次就是升级完整产品,不让壳、后端和 Host 各跑各的版本。
  7. 目前正式发布目标是 Windows x64、Apple Silicon Mac、Intel Mac:Linux 有代码预留,但还不是当前正式发布目标。
  8. 正式分发基础设施已经搭好:生产更新域名、产物命名、签名、公证、校验和上传顺序都已经进入代码。

所以我现在对 Desktop 的判断,和第一次看到 Electron 代码时已经完全不一样了。

它真正重要的地方,可能根本不是什么“终于多了一个桌面图标”。

而是它有机会把现在这套:

安装 Node配 pnpm跑命令管插件处理版本冲突自己维护运行环境

全部藏到应用后面。

用户最终面对的可能只剩下:

安装 DeepSeek Harness,然后告诉 Agent 你想让它做什么。

如果官方最后真的把这套体验顺利交付出来,我觉得这才可能是 DSH 从技术圈工具往普通用户扩出去的一道真正分水岭。

打开网易新闻 查看精彩图片