设计取向
薄,是故意的。启动器只做启动。
不内置账号体系,不 fork 官方界面,不捆绑多余运行时。DSH Launcher 是一个「薄壳」:准备好官方依赖、拉起官方服务、把官方地址交出去——你在浏览器里用到的,始终是 DeepSeek Harness 原版 Web UI。
不重新包装
没有自绘的聊天界面、没有中转层。界面、会话、模型能力全部来自官方 @deepseek-ai/dsh。
不抢占地址
显示和打开的永远是服务自己发布的 dsh web: <URL>;官方默认端口被占用时,用官方 --port 0 自动换空闲端口。
不碰你的数据
数据独立存放在 ~/.dsh-desktop,升级不丢配置与会话;密钥类信息永远不会进入安装目录。
运行原理
三步,从安装到官方工作台
下载安装
一个 DMG 或 EXE,拖进应用程序即完成安装。不需要自己装 Node,不需要敲任何命令。
双击启动
首次启动自动下载并校验固定版本的 Node 与官方 @deepseek-ai/dsh:SHA-256 校验、staging 安装、原子替换,失败自动回滚。
打开 Web UI
服务就绪后窗口会显示实际地址与运行时长,点一下「打开 Web UI」,在你选择的浏览器里进入官方界面。
$ open DSHLauncher.app
✓ 校验版本标记、manifest、Node 与 dsh 入口
✓ 本地服务已启动(官方默认端口)
✓ 检测到官方新版本 → 提示「立即更新」
✓ dsh web: http://127.0.0.1:3080
→ 窗口显示实际地址 + 运行时长 +「打开 Web UI」按钮
界面
桌面只管启动,工作发生在浏览器
特性
小事做稳,剩下的交给官方
双击即用
运行时(Node 与 dsh)首次启动自动下载安装,之后每次启动先校验再拉起服务,全程无需命令行。
官方 Web UI
地址由服务自己发布,点击即用所选浏览器打开。启动器永不替换为自建地址或端口。
多浏览器选择
自动检测已安装的浏览器:只有一款就直接打开,多款则下拉选择;找不到时用系统默认浏览器兜底。
托盘常驻
关闭窗口只是隐藏到系统托盘,本地服务继续运行;托盘里的「退出」才会完整停止服务进程树。
校验与回滚
Node 归档必须匹配固定的 SHA-256;安装走 staging + 原子替换,失败保留旧版本,可回滚目录始终在手。
中英双语
首次按系统语言自动选择中文或 English,侧栏菜单可随时切换,无需重启服务。
更新提醒
启动时检查 npm 上 @deepseek-ai/dsh 是否有更新的语义化版本,有则一键「立即更新」,失败自动回退。
数据隔离
服务数据独立存放于 ~/.dsh-desktop/dsh-home,可与已有的 ~/.dsh 做一次性的缺失项导入,互不覆盖。
下载
选择你的平台开始
当前版本 v0.1.0。以下链接始终指向 GitHub Releases 的最新发布。
尚未配置代码签名:macOS 为 ad-hoc 签名,首次启动请右键「打开」;Windows 可能出现 SmartScreen 提示,选择「仍要运行」即可。 查看全部历史版本 →
常见问题
FAQ
它和 DeepSeek 官方是什么关系?
DSH Launcher 是非官方启动器。它运行的是未修改的官方 @deepseek-ai/dsh 包,该包仍受其自身许可条款约束;本仓库的 MIT 协议仅覆盖启动器自身代码。
需要我自己安装 Node.js 吗?
不需要。首次启动时启动器会自动下载固定版本的 Node 归档(经 SHA-256 校验)并安装精确版本的 @deepseek-ai/dsh,全程在桌面窗口内完成。
默认端口被占用了怎么办?
不用处理。服务报 EADDRINUSE 时,启动器会自动用官方 --port 0 让系统分配空闲端口重试,并始终显示服务发布的实际地址。
我的会话和配置存在哪里?
全部在 ~/.dsh-desktop/ 下,与安装目录和已有的 ~/.dsh 相互隔离;升级启动器或更新 Harness 都不会丢失配置与会话。
关闭窗口后服务还在吗?
在。关闭窗口只会把它隐藏到系统托盘,服务继续运行;想完全停止,请使用托盘菜单里的「退出」。