dsh-windows-launcher
为 DeepSeek Harness 打造的 Windows 一键启动器:双击图标,立即打开界面; 服务未启动时自动在后台拉起,全程无黑窗、无任务栏命令行图标,一次点击只开一个页面。
- Stars
- 0
- Language
- PowerShell
- Created
- Sep 8, 2026
- Updated
- Sep 8, 2026
Introduction
DSH Windows Launcher
为 DeepSeek Harness 打造的 Windows 一键启动器:双击图标,立即打开界面;服务未启动时自动在后台拉起,全程无黑窗、无任务栏命令行图标,一次点击只开一个页面。
![]()
为什么需要它
DeepSeek Harness 的 Web 界面通常需要一条命令 (npx @deepseek-ai/dsh web) 启动,并且在终端里常驻。
这个启动器把这一切变成"双击一下":
- ✅ 零窗口:启动器与服务全部隐藏运行,没有任何黑色命令行窗口,任务栏也没有 PowerShell/CMD 图标
- ✅ 智能拉起:检测
127.0.0.1:3080,服务未运行则自动后台启动,运行中则直接打开界面 - ✅ 防重复:互斥锁 + 12 秒防抖,手滑多双击也不会弹出多个页面
- ✅ 单页面:服务启动时由 dsh 自带机制打开一次界面(带 token),启动器不再重复打开
- ✅ 可排查:启动器与服务均有日志文件,出错时弹窗提示具体原因
界面预览
| 桌面图标 | 启动流程 |
|---|---|
![]() |
环境要求
- Windows 10 / 11
- Node.js(以及已安装的
@deepseek-ai/dsh,即npx @deepseek-ai/dsh web可正常运行)
安装
下载本仓库文件后,在 PowerShell 中执行:
powershell -ExecutionPolicy Bypass -File install.ps1
安装脚本会自动:
- 自动探测
@deepseek-ai/dsh的安装位置(lib\bin.js),找不到时提示你手动填写 - 把启动器文件(模板 + 你的真实路径)生成到
%USERPROFILE%\Documents\DeepSeek Harness - 在桌面创建 DeepSeek Harness 快捷方式(隐藏窗口启动,带专属图标)
- 输出完成提示
可选参数
# 修改端口或手动指定 dsh 入口
powershell -ExecutionPolicy Bypass -File install.ps1 -Port 3080 -DshBin "C:\path\to\lib\bin.js"
| 参数 | 默认值 | 说明 |
|---|---|---|
-DshHome | %USERPROFILE%\.dsh | DSH 数据目录 |
-WorkDir | %USERPROFILE%\Documents\DeepSeek Harness | 启动器文件安装目录 |
-WebUrl | http://127.0.0.1:3080 | 界面地址 |
-Port | 3080 | 服务端口 |
-NodeExe | C:\Program Files\nodejs\node.exe | Node.js 路径 |
-DshBin | 自动探测 | @deepseek-ai/dsh\lib\bin.js 完整路径 |
-IconFile | icon\icon.ico | 自定义图标:.ico 直接使用;.png 自动转换为多尺寸 ICO |
图标主题
内置两套图标,安装时用 -IconFile 切换:
| 主题 | 图标 | 文件 |
|---|---|---|
| 默认(蓝色 D) | icon\icon.ico | |
| 肥鲸 | themes\whale\icon.ico |
# 使用肥鲸主题
powershell -ExecutionPolicy Bypass -File .\install.ps1 -IconFile .\themes\whale\icon.png
已知原始素材与作者版权:项目中收录,整理和参考的部分已知核心形象设定与二创素材来源于以下创作者,其原始著作权归原作者所有:
-
B站 ZipZipPipe:space.bilibili.com/4168597
-
B站 上善无形:space.bilibili.com/4456176
-
如涉及版权问题请自行替换或改用默认主题。
使用
双击桌面 DeepSeek Harness 图标即可:
- 服务在运行 → 约 1 秒内打开界面(无任何窗口)
- 服务未运行 → 后台隐藏启动(约 10–30 秒)→ 界面自动打开
停止服务
服务现在完全隐藏运行,停止方式:
- 任务管理器 → 结束
node.exe(不确定哪个时按 CPU/命令行匹配),或 taskkill /f /im node.exe(会结束所有 node 进程,慎用)
固定到任务栏
右键桌面快捷方式 → 显示更多选项 → 固定到任务栏。
卸载
删除桌面快捷方式与 %USERPROFILE%\Documents\DeepSeek Harness 目录即可。
日志位置
| 日志 | 路径 |
|---|---|
| 启动器日志 | %WORK_DIR%\dsh-launcher.log |
| 服务标准输出 | %TEMP%\dsh-service.out.log |
| 服务错误输出 | %TEMP%\dsh-service.err.log |
工作原理

- 快捷方式 →
wscript.exe→launch-hidden.vbs,以SW_HIDE方式运行启动器 PowerShell(控制台从头到尾不可见) - 启动器检查互斥锁(Local mutex):已有实例则直接退出,防止重复双击
- 探测端口:在运行 → 直接打开浏览器;未运行 → 通过
start-service.vbs+start-service.cmd全隐藏启动服务(windowstyle 0,无控制台窗口) - 等待端口就绪 → dsh 自身打开浏览器(带 token);启动器不再重复打开
- 打开完成后启动器保持互斥锁 12 秒再退出,期间再次点击均被忽略
常问问题
Q:为什么双击后什么窗口都看不到?
这是设计目标——启动器与服务均为隐藏窗口。界面会自动打开;若长时间没反应(超过 60 秒),请查看 %TEMP%\dsh-service.err.log 或重新运行 install.ps1。
Q:为什么页面会自动打开、只开一个?
dsh web 启动成功后会自带"打开默认浏览器"行为(可用 --no-open 关闭)。因此"服务未运行"场景由 dsh 打开页面;"服务已在运行"场景由启动器打开一次。
Q:改了端口怎么办?
重新运行 install.ps1 -Port <新端口> -WebUrl http://127.0.0.1:<新端口>。
Q:为什么不再需要终端? 服务由启动器在后台隐藏运行,与终端无关;原先用 bash 手动启动的方式依然兼容(先关掉旧实例避免端口冲突)。
License
MIT © DeepSeek Harness Launcher contributors