DSHDock:给 DeepSeek Harness 配一个专属的桌面「浏览器」
一个不集成任何 DSH 代码、却能自动发现、自动启动、一键安装的跨平台桌面壳。
下载地址
痛点:DSH 很好用,但「入口」一直差点意思
用过 DeepSeek Harness(dsh)的人都知道它的好——模型编排、工具调用、Web UI 全都有。但日常使用中总有点不方便:
- 每次都要开终端敲
dsh --profile web,然后浏览器里再开一个标签页; - 标签页混在一堆工作标签里,一不留神就关掉了,会话和上下文跟着丢;
DSHDock 要解决的就是这一件事:让 DSH 有一个属于自己的、开箱即用的桌面入口。
它是什么
DSHDock 是 DeepSeek Harness 的跨平台桌面壳(wrapper)——一个「DSH 专用浏览器」。基于 Electron 构建,Windows / macOS / Linux 三平台打包。
启动后它会自动做三件事,按顺序降级:
- DSH 正在运行?直接连上,进入界面;
- 装了但没运行?自动启动本机 DSH,等待 Web UI 就绪后进入;
- 完全没装?落地页提供手动输入 URL(连服务器 / WSL / 自定义端口),或一键
npm install -g @deepseek-ai/dsh,实时显示安装输出,装完自动启动进入。
整个过程不需要你碰终端。
界面预览
落地页(未安装 / 手动连接)
主页
多标签
主页展示的是连接前的「新标签页」界面;连接后的内容区为 DSH 官方界面。
最值得说的一条设计原则
DSHDock 的架构核心是一条纪律:不集成 DSH 的任何代码,只依赖 DSH 文档化的外部契约——npm 包名@deepseek-ai/dsh、dsh --profile webCLI 参数、以及 HTTP 根页面上的标记。
这意味着DSH 官方每次更新,DSHDock 一行代码都不用改。壳和引擎彻底解耦,你永远可以放心升级 DSH 到最新版,而不用担心壳失效。
这条纪律也体现在细节里:
- 探测不靠猜。DSHDock 判断「这个端口上是不是 DSH」不是看 HTTP 200,而是校验根页面里注入的
__DSH_BOOT__/__ModuleLoader__/DeepSeek Harness标记——避免把端口上恰好运行的其他服务误认成 DSH。 - 端口冲突自动绕开。默认端口 3080 被非 DSH 服务占用时,自动挑一个空闲端口启动,而不是报错。
- 进程生命周期干净。由壳启动的本地 DSH 默认随壳退出而结束,不会留下孤儿进程。
- 兼容多种包管理器。能同时识别 npm 和 pnpm 的全局安装目录,也能通过 PATH 上的
dsh启动器兜底。
适合谁
- 日常重度使用 DSH 的人——想要一个不掉线、不乱关、记住连接的专用入口;
- 在 WSL / 远程服务器上跑 DSH 的人——落地页手动连接,或者新建标签连接;
- 折腾过端口冲突、孤儿进程、反复登录的人——这些坑 DSHDock 都替你填了。
下载地址