![]()
前面研究 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.comDesktop 产物准备进入的路径也已经规定好了:
/_/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 点就是:
- 不用依赖系统 Node.js / pnpm:Desktop 自带运行环境,普通用户安装门槛会大幅下降。
- 不是简单 localhost 套壳:Web UI 走 dsh-app://,应用内部自己处理 Backend 通信。
- 共享 Session,隔离运行环境:CLI 和 Desktop 可以共享用户数据,但插件、node_modules、pnpm 状态各管各的。
- 有单实例和多层锁机制:避免两个 Desktop 或多个进程同时乱写自己的运行环境和 Session。
- 插件有 GUI,还有 staging + health check + rollback:插件装坏以后,不应该再轻易把整个 Desktop 搞瘫。
- Desktop 和 DSH 精确绑定版本:升级一次就是升级完整产品,不让壳、后端和 Host 各跑各的版本。
- 目前正式发布目标是 Windows x64、Apple Silicon Mac、Intel Mac:Linux 有代码预留,但还不是当前正式发布目标。
- 正式分发基础设施已经搭好:生产更新域名、产物命名、签名、公证、校验和上传顺序都已经进入代码。
所以我现在对 Desktop 的判断,和第一次看到 Electron 代码时已经完全不一样了。
它真正重要的地方,可能根本不是什么“终于多了一个桌面图标”。
而是它有机会把现在这套:
安装 Node配 pnpm跑命令管插件处理版本冲突自己维护运行环境全部藏到应用后面。
用户最终面对的可能只剩下:
安装 DeepSeek Harness,然后告诉 Agent 你想让它做什么。
如果官方最后真的把这套体验顺利交付出来,我觉得这才可能是 DSH 从技术圈工具往普通用户扩出去的一道真正分水岭。
![]()
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.