Back to home@MrtHmk

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 一键启动器:双击图标,立即打开界面;服务未启动时自动在后台拉起,全程无黑窗、无任务栏命令行图标,一次点击只开一个页面

logo

Windows PowerShell License CI

为什么需要它

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

安装脚本会自动:

  1. 自动探测 @deepseek-ai/dsh 的安装位置(lib\bin.js),找不到时提示你手动填写
  2. 把启动器文件(模板 + 你的真实路径)生成到 %USERPROFILE%\Documents\DeepSeek Harness
  3. 在桌面创建 DeepSeek Harness 快捷方式(隐藏窗口启动,带专属图标)
  4. 输出完成提示

可选参数

# 修改端口或手动指定 dsh 入口
powershell -ExecutionPolicy Bypass -File install.ps1 -Port 3080 -DshBin "C:\path\to\lib\bin.js"
参数默认值说明
-DshHome%USERPROFILE%\.dshDSH 数据目录
-WorkDir%USERPROFILE%\Documents\DeepSeek Harness启动器文件安装目录
-WebUrlhttp://127.0.0.1:3080界面地址
-Port3080服务端口
-NodeExeC:\Program Files\nodejs\node.exeNode.js 路径
-DshBin自动探测@deepseek-ai/dsh\lib\bin.js 完整路径
-IconFileicon\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 秒)→ 界面自动打开

停止服务

服务现在完全隐藏运行,停止方式:

  1. 任务管理器 → 结束 node.exe(不确定哪个时按 CPU/命令行匹配),或
  2. 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

工作原理

启动流程

  1. 快捷方式 → wscript.exelaunch-hidden.vbs,以 SW_HIDE 方式运行启动器 PowerShell(控制台从头到尾不可见)
  2. 启动器检查互斥锁(Local mutex):已有实例则直接退出,防止重复双击
  3. 探测端口:在运行 → 直接打开浏览器;未运行 → 通过 start-service.vbs + start-service.cmd 全隐藏启动服务(windowstyle 0,无控制台窗口)
  4. 等待端口就绪 → dsh 自身打开浏览器(带 token);启动器不再重复打开
  5. 打开完成后启动器保持互斥锁 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