桌面客户端也能是插件:DSH Desktop 的宿主架构与故障恢复设计
多数人说到「桌面客户端」,默认它是个包在命令行外面的壳:启动进程、开个窗口、把网页塞进去。DSH Desktop 的定位更拧巴——仓库 anywhere-labs/dsh-desktop 写着,桌面本身就是一个 Cordis 插件,可以和其他 DSH 插件组合使用。这让它不是一个游离在生态外的独立 App,而是 Harness 生态里的宿主型插件:基于固定上游 DSH 版本构建,兼容现有插件生态,MIT 许可,站点归类为「dsh 原生插件 · desktop」,详情页显示 28855 star。
身份先说清楚:这是社区桌面客户端。仓库自述写明它是「独立的社区开源项目,与深度求索不存在隶属、合作、授权或背书关系」,release notes 也写了「并非 DeepSeek 官方产品」。
桌面即插件:定位带来的第一层约束
宿主型插件的边界在于:它得把自己嵌进已有的 Profile 与插件加载机制里,而不是另起一套。所以它的安装形态是命令行式的——dsh plugin --profile web add anywhere-labs/dsh-desktop,命令里带着 --profile web,说明它落在 Profile 体系内,受同一套加载规则管辖。它声明基于固定的上游 DSH 版本,这个「固定」是双刃的:兼容面因此清晰,但内核跟进要等宿主自己发版。
站点对它的安装检查结论是「✓ 可直接安装」——npm 包 dsh-plugin-desktop 的归属已校验回本仓库,engines.node 声明的 ^22.19.0 || >=24.0.0 满足基线;实装验证为 pass(L4 · 真实安装,2026/9/16,非静态推断)。这些结论回答的是「装得上、装成功」。安全是另一个维度:站点扫描结论为中风险(自动静态分析源码,发现可执行外部命令、写入/删除本地文件、读取剪贴板与密钥类环境变量),且尚无人工评估,站点「安全吗」一栏显示尚未做风险分级。可行性、安全性、可靠性三者不该互相顶替。
宿主替你做了什么
README 那一节可以按三条线读。
生命周期线:自动启动与停止 Harness,不需要另开 CLI 或常驻浏览器标签页;升级时保留 Profile、插件、工作区、会话和模型配置——升级不推倒重来,本身就是宿主能力的组成部分。
工作流线:系统原生目录选择器管理工作区;支持 DeepSeek 官方模型与主流第三方模型提供方;自定义 Agent Preset 可导入/导出为便携 .dshpreset 压缩包,安装前检查命名冲突并提示信任风险;内置 PPT 模式提供 16 套模板、192 种版式,输出可继续编辑的 PPTX,PPT 功能保持预装,相关自动提示词只在选中 PPT 按钮的会话中生效。
环境线:v2.0.14 起跟随系统代理,模型请求、网页抓取、联网搜索、MCP 和插件安装可走启动时读取的系统 HTTP/HTTPS 代理,显式设置的代理环境变量优先;同版本补上 Linux x64 的 AppImage、.deb 与 .tar.gz 包,以及 Windows 下把文件夹拖入启动。
进程与安全边界:三条被划清的线
网络暴露面:Harness 的 Web UI 只运行在随机回环端口上,不监听对外地址。
渲染进程权限:Renderer 不具备 Node.js 权限,Context Isolation 与 Sandbox 同时启用;WebView、不可信站内跳转、非预期权限请求都会被阻止,外部网页链接一律交给系统浏览器打开。
数据落点:Profile 与会话保存在 Electron 的用户级应用数据目录,不在安装目录内;数据目录继续沿用 ~/.dsh。这意味着装包、解包都不动你的数据——v2.0.14 把内核从 v0.1.5-rc.2 升到 v0.1.7-rc.1,适配新版 Profile 与设置机制,但数据目录位置没变。
故障恢复:安全模式怎么设计
第三方插件把启动流程搞坏,是插件型架构的经典失效模式:出问题的组件恰好是加载链路的一环,于是你连打开界面卸载它的机会都没有。DSH Desktop 给的是一整套路径。
先是证据采集:结合 Runtime 与前端证据定位到相关插件,把诊断写入 harness.log,并打开引导式恢复界面。顺序是先定位再引导,而不是直接弹一句「要不要进安全模式」。
然后是安全模式:从 Harness 菜单选「以安全模式重启…」,会用只包含官方核心 Bundle 的隔离 Profile 启动,正常 Profile 中的第三方插件被屏蔽,但 Agent、会话、模型配置和工作区仍然可用。设计的关键是「不当机」——不是退化成空壳,而是带着数据进入受控环境。
最后是退出路径:页面顶部会挂安全模式提示,可在此卸载问题插件或恢复正常启动;正常界面完全进不去时,还有命令行兜底,例如 macOS 下 open -a "DSH Desktop" --args --safe-mode。
手机接入:回环端口加配对 Bridge
这类功能通常两种做法:把服务暴露出去,或者加一层配对中介。它选了后者。
无论手机连接是否开启,Harness 始终运行在随机的 127.0.0.1 端口,手机侧访问由独立的配对 Bridge 提供。入口是 Harness 菜单的「连接手机…」,扫配对二维码;WiFi 下扫码即连,走互联网隧道还要输入电脑上显示的 6 位连接密码——默认是 5 分钟、只存在于内存中的临时密码,只有在窗口里勾选同意后才会在本机生成长效密码。手机访问本身需要短时配对 Token。
链路上,README 的口径是:Cloudflare Quick Tunnel 是常态长连接路径;免费 Pinggy 是 Cloudflare 不可用(例如中国大陆)时的备用通道,大约 60 分钟后失效。Cloudflare 启动失败会尝试 Pinggy;已拿到 Cloudflare 链接但手机打不开,可点「扫码打不开?换一条线路」。桌面端断开连接后,手机会话随即失效。对上前面那条边界就能看出:暴露到公网的从来不是 Harness 本体,而是需要密码或 Token 才能穿的 Bridge。
体积与通道:架构的两个直接后果
安装包从 305.8 MB(Windows x64)到 553.6 MB(macOS 通用包),Linux x64 为 328.2 MB——这是 Electron 打包并内嵌 Harness 运行时的代价,换来的正是上面那套宿主能力与边界控制。
通道上三条线并存,同一天(2026-09-24)发布:稳定版 v2.0.14(16:09:43Z)、实验通道 v2.0.14-next(16:04:46Z)、预发布 v2.0.14-beta.1(16:21:40Z,GitHub 标记 prerelease: true)。-next 的实验内容偏宿主能力扩张,包括系统托盘、后台运行、任务通知与诊断导出、原生侧边栏浏览器、插件市场切换,以及 Agents Anywhere 远程控制与 Computer Use。
总结
DSH Desktop 的架构主线可以压成一句:把桌面做成受约束的宿主插件,用回环端口加配对 Bridge 收住暴露面,用隔离 Profile 的安全模式守住可恢复性;想对照同类插件的中文清单与安装形态见 DeepSeek Harness Hub 插件清单。
适合与不适合
适合:需要免 Node.js 的 Windows / macOS 原生安装包、希望 Harness 跟着桌面一起启停的人;要在多台机器之间搬运 Agent Preset、工作区与会话配置的人;需要用 PPT 模式产出可继续编辑 PPTX 的人;想用手机在局域网里续上会话、并能接受隧道只在短时有效的人。
不适合:要官方 SLA 与官方支持渠道的生产环境——这是社区项目,明确与深度求索不存在隶属、合作、授权或背书关系,没有官方兜底;磁盘或内存紧张的老机器,305–553 MB 的包体加 Electron 运行时是实打实的负担;对安装包安全结论要求人工复核的团队,该插件目前只有自动静态扫描得出的中风险结论,尚无人工评估。
标签:dsh-desktop、DeepSeek Harness、桌面端、Cordis 插件、进程隔离
本文由 DeepSeek Harness Hub 自动整理,数据来源于插件详情页。