前言¶
在 Windows 上把 DeepSeek Harness(DSH)用 Edge 或 Chrome「安装为应用」后,桌面或任务栏会多一个看起来像独立软件的图标。双击它执行的其实是浏览器代理命令,目标只是 http://127.0.0.1:3080/ 这类本地地址;dsh web 没跑起来时,点图标只会看到错误页。浏览器出于安全设计,不允许 PWA 快捷方式直接拉起本机进程,所以「点图标就顺带把服务拉起来」不能指望快捷方式本身完成。
社区插件 dsh-pwa-launcher(维护者 liudapeng0311,分类:客户端)接管的正是这一次双击:保留你已有的图标与外观,把背后要执行的逻辑换成启动器;并在 Web 界面会话标题右侧增加「重启 | 版本」胶囊,用于整进程重启与 dsh 自助升级(含失败回滚)。仅支持 Windows 10/11,许可证为 MIT。插件以当前 dsh 进程权限运行,安装前请自行查看源码与许可证。
这是什么¶
dsh-pwa-launcher 是 DSH 的 web profile 插件(包名 dsh-pwa-launcher,当前资料中版本为 1.11.0)。它做两件事:
- 桌面侧:识别并接管浏览器生成的 PWA 快捷方式(可配置为自行新建),部署
%LOCALAPPDATA%\DeepSeekHarness下的启动脚本;双击时若服务未就绪则静默拉起dsh web,就绪后再用浏览器应用窗口打开界面。 - Web 侧:在 dsh 官方扩展槽
conversation.session.header.utilities注册 UI,提供重启与版本检查/升级,不修改 dsh 核心、也不 import dsh 内部包。
DeepSeek Harness 生态强调「一切皆插件」;SkillHub 目录页 是社区站点,与 DeepSeek / 幻方无官方从属关系。
核心功能¶
双击图标:拉起服务再开窗¶
装插件之前,服务未运行 → 双击 → 错误页。装之后:
| 双击桌面图标 | |
|---|---|
| 装之前 | 服务没跑 → 错误页 |
| 装之后 | 服务没跑 → 自动拉起 → 界面打开;关掉应用窗口后服务仍在 |
行为要点(来自 README):
- 服务已在运行 → 直接开窗,延迟在毫秒级。
- 端口被其他程序占用 → 弹窗说明,不强行占用。
- 链路概览:快捷方式 →
launcher.vbs(无窗口)→launch.ps1→ 必要时隐藏启动dsh web→ HTTP 就绪后用带令牌的 app URL 开窗。
会话头部「⟳ 重启 | 版本」胶囊¶
入口在有会话时会话标题右侧,与 dsh 自带的「在文件资源管理器中打开工作目录」同一行。空白会话时 dsh 会隐藏整个会话头部,此时看不到该胶囊;发一条消息后即可出现。
重启:二次确认后整进程重启(当前任务/会话会停),窗口轮询新服务并重连;完成判据包含进程指纹变化,避免老进程仍应答 ready 时误刷新。
版本:启动后宿主在后台只读查询 npm registry(默认包 @deepseek-ai/dsh 的 dist-tags,当前运行版本默认对照 @deepseek-ai/dsh-base),关注 latest / next / alpha;可多候选时弹出选版卡。一键升级流程为停服务 → 备份 → npm install → 校验 → 重启;任一步失败自动回滚。allowSelfUpdate: false 时仅提醒不安装。
安装与启用¶
该包尚未发布到 npm,需用 GitHub 源码 tarball 直链安装(避免 github: 形式触发 pnpm 的 SSH 解析)。在已安装 DSH 的环境中执行:
dsh plugin --profile web add https://github.com/liudapeng0311/dsh-pwa-launcher/archive/refs/heads/main.tar.gz
安装完成后重启一次 dsh(Ctrl+C 停掉再启动)。插件会在 dsh 启动时部署启动器并接管/创建快捷方式;首次生效后桌面或开始菜单会出现 DeepSeek Harness 图标(名称可在配置里改)。
若你平时是手动跑 Web 服务,可继续:
dsh web
跟到特定版本时,将 URL 中的 main 换成对应 tag 名即可。
典型用法¶
日常:双击桌面图标¶
与装 PWA 后习惯一致,无需额外命令;差异在于背后会先保证本地 dsh web 可用。
卸载(顺序勿反)¶
先还原快捷方式,再从 profile 移除插件:
powershell -File "$env:LOCALAPPDATA\DeepSeekHarness\scripts\shortcut.ps1" -Action Uninstall
dsh plugin --profile web remove dsh-pwa-launcher
若先 remove 插件,桌面图标可能仍指向旧启动器,且不再有组件刷新它。
手动脚本(PowerShell)¶
不经过双击、或需要只停服务时使用:
# 只拉服务不开窗
powershell -File "$env:LOCALAPPDATA\DeepSeekHarness\scripts\launch.ps1" -NoOpen -Visible
# 停服务
powershell -File "$env:LOCALAPPDATA\DeepSeekHarness\scripts\stop.ps1"
# 重新接管 / 还原快捷方式
powershell -File "$env:LOCALAPPDATA\DeepSeekHarness\scripts\shortcut.ps1" -Action Install
powershell -File "$env:LOCALAPPDATA\DeepSeekHarness\scripts\shortcut.ps1" -Action Uninstall
配置¶
修改插件包内 cordis.patch.yml 中 pwa-launcher 一行的 config,重启 dsh 生效;若在设置 GUI 中改过,用户层配置会覆盖 patch 文件。
常用项示例:
| 键 | 默认 | 说明 |
|---|---|---|
shortcutName |
DeepSeek Harness |
快捷方式名称,也是优先接管匹配依据 |
adoptBrowserShortcut |
true |
true 接管浏览器 PWA 图标;false 自建 |
desktop / startMenu |
true |
图标放置位置 |
browser |
auto |
auto / edge / chrome / default |
appMode |
true |
应用窗口或普通标签页 |
startTimeoutSec |
120 |
等待服务就绪上限(秒) |
checkForUpdates |
true |
关闭则版本检查与相关路由不注册 |
allowSelfUpdate |
true |
是否允许一键升级 |
updateChannels |
[latest, next, alpha] |
通道顺序即保守 → 激进 |
完整键表见 GitHub README 配置一节。
适用场景与注意¶
适合谁:主要在 Windows 上用浏览器「安装为应用」固定 DSH,又希望双击图标等价于「先起服务、再进界面」,并希望在 Web 里重启实例或按通道自助升级 dsh 的用户。
环境要求:package.json 声明 os: ["win32"],engines.node >= 22;非 Windows 平台不在支持范围内。
权限与安全:插件通过 PowerShell 部署启动器、可能执行 npm install 升级 dsh,均以当前运行 dsh 的用户权限执行。安装前请阅读仓库源码与 MIT 许可证,确认可接受本地脚本与网络访问 registry 的行为。
排错:日志与状态文件位于:
%LOCALAPPDATA%\DeepSeekHarness\logs\desktop.log
%LOCALAPPDATA%\DeepSeekHarness\logs\update.log
%LOCALAPPDATA%\DeepSeekHarness\launcher.json
版本胶囊长期显示「检查…」时,优先确认 checkForUpdates 未被关闭,以及 GUI 设置是否覆盖了 patch。会话头部完全没有胶囊时,检查是否已有会话、页面是否完整刷新、控制台是否有 client-modules: 开头报错。
结尾¶
dsh-pwa-launcher 补上了 PWA 快捷方式无法拉起本机进程这一环:外观仍是原来的桌面图标,行为变成可用的 DSH 启动器,并在会话顶栏提供重启与可回滚的自助升级。进一步了解与 issue 反馈见 SkillHub 目录 与 GitHub 仓库。