dsh-chrome-shell
v0.1.2
Published
Windows launcher shell for DeepSeek Harness (dsh) Web UI: hidden start, dedicated Chrome app window with a first-frame crisp whale taskbar icon, system tray with open-page / direct exit.
Maintainers
Readme
dsh-chrome-shell
把 DeepSeek Harness 的 Web UI 变成"像桌面应用一样的体验"(Chrome 专用应用窗口 + 系统托盘,非独立打包软件):
双击桌面「DSH Web」→ 无控制台窗口地后台启动 dsh web → 打开专属 Chrome 应用窗口(首帧即最大化、任务栏第一帧就是高清黑鲸鱼图标) → 系统托盘(打开页面 / 退出 DSH)。
适用于 Windows 10/11。纯 PowerShell + VBS + Chrome 实现,不打包 Electron、不修改 DSH 本体,每用户安装、无需管理员。
功能特性
- 双击即用:无任何黑窗/闪烁(
wscript隐藏包装 + 启动进度小窗 + 失败红字提示) - 专属窗口:独立
--user-data-dir强制专属 Chrome 实例,绝不打扰日常浏览器;首帧即最大化(非 F11 真全屏) - 第一帧高清任务栏图标:页面 favicon 注入 512×512 鲸鱼 PNG + 静态 MIME 补丁 +
WM_SETICON即时/爆发式应用 + 托盘 1s 自愈 - 系统托盘:左键双击/菜单「打开 DSH 页面」、右键「退出 DSH」(点击后立即执行退出,优先调用官方优雅退出接口,回退兜底杀进程),使用 Windows 原生托盘菜单
- 单实例互斥、窗口身份校验(
hwnd|title|pid)、防重复开窗(命名互斥锁 + 过期记录清理) npm update后自动自愈:启动器每次运行时幂等重注入 favicon/MIME 补丁
环境要求
| 组件 | 说明 |
|---|---|
| Windows 10/11 | 仅每用户安装,无需管理员 |
| Google Chrome | 用于专属应用窗口 |
| Node.js + @deepseek-ai/dsh | dsh 本体,npm install -g @deepseek-ai/dsh;dsh-chrome-shell 不自带 DSH |
| PowerShell 7(推荐) | winget install Microsoft.PowerShell;缺失时自动回退 5.1 |
安装
方式一(推荐,npm):需要 Node.js(npm)。一条命令装包、一条命令创建快捷方式:
npm install -g dsh-chrome-shell
dsh-chrome-shell install之后可以随时 npm update -g dsh-chrome-shell 升级、dsh-chrome-shell uninstall 卸载。
方式二(git / 源码):
git clone https://github.com/Slacom/dsh-chrome-shell.git
cd dsh-chrome-shell
pwsh -NoProfile -ExecutionPolicy Bypass -File install.ps1(不想用 git 的话:仓库页面 → Code → Download ZIP → 解压到任意目录 → 同样运行 install.ps1。)
方式三(Agent 自助安装):把下面这段提示词粘贴给任意 AI 编码 Agent(Claude Code / Codex / Cursor / DSH 等),它会按指南自动完成安装并汇报结果:
请安装 dsh-chrome-shell:按 https://raw.githubusercontent.com/Slacom/dsh-chrome-shell/main/docs/agent-install.md 中的说明完成安装,并汇报结果。install.ps1(或 dsh-chrome-shell install)会:检查依赖(Chrome / dsh / pwsh)
→ 复制运行时文件到 %LOCALAPPDATA%\DSHChromeShell
→ 创建桌面与开始菜单的「DSH Web」快捷方式。
卸载请通过删除 %LOCALAPPDATA%\DSHChromeShell 与两个快捷方式。
快捷方式图标与托盘、窗口图标均为高清黑色鲸鱼(
dsh-window.ico多尺寸 8~256)。
使用
- 启动:双击桌面「DSH Web」。首次会先显示"正在启动"小窗(
dsh web --no-open隐藏启动,端口就绪后自动打开专属窗口),随后托盘常驻右下角。 - 重新打开页面:托盘左键双击,或右键 →「打开 DSH 页面」。若已有专属窗口则聚焦,否则新建。
- 退出 DSH:托盘右键 →「退出 DSH」。点击后立即退出,优先
POST /api/dsh-desktop-launcher/shutdown优雅退出(托盘消失、窗口关闭、服务器退出),接口不可用时自动回退为关窗 + 终止进程。 - 命令行停止:
pwsh -File dsh-web-stop.ps1。
文件说明
| 文件 | 作用 |
|---|---|
| dsh-web-launch.vbs | 无控制台启动包装(快捷方式目标;优先 pwsh 回退 powershell) |
| dsh-web-start.ps1 | 启动器:启动/检测服务器、WPF 启动进度小窗、打开专属窗口、拉起托盘 |
| dsh-win.ps1 | 共享库:Chrome 定位、窗口身份/图标、favicon 注入、互斥与记录管理 |
| dsh-tray.ps1 | 系统托盘:Windows 原生菜单、打开页面、退出 DSH、1s 自愈 |
| dsh-web-stop.ps1 | 命令行停止脚本 |
| dsh-web-patch.ps1 | 查看/回滚 favicon 补丁(status / -Restore) |
| dsh-window.ico / dsh-whale-*.png/svg | 鲸鱼图标资源 |
| install.ps1 | 一键安装(复制 + 快捷方式 + 依赖检查) |
| dsh-web-uninstall.ps1 | 卸载(删除快捷方式与安装目录) |
| package.json + bin/cli.js | npm 包元数据与 dsh-chrome-shell 命令行入口(install / status / uninstall) |
| tools/ | 开发诊断工具(逐帧图标监视器等) |
| docs/agent-install.md | Agent 安装指南(README 方式三的提示词指向此文档) |
| docs/开发记录.md | 完整开发记录 |
贡献与反馈
- 遇到问题或建议改进,欢迎开 GitHub Issues;Pull Request 同样欢迎。
- 开发中可用
tools/下的诊断脚本协助定位窗口/图标相关问题。
排障
- 日志:
%TEMP%\dsh-web.out.log/dsh-web.err.log(服务器)、%TEMP%\dsh-web-launch.log(启动器/补丁记录)。 - 页面 401 "dsh web authentication required":服务器重启后 token 变化,重开一次页面即可;启动器会自动从日志取最新
?token=URL。 - 没有专属窗口而是开了浏览器标签:多半是 DSHWebProfile 被残留 Chrome 进程锁住。启动器已内置
Stop-StaleDshInstances(记录 PID + 命令行双路径清理);仍出现则先退出 DSH 再启动。 - 图标仍是 Chrome/模糊:确认完成一次"退出 DSH → DSH Web"(MIME 补丁需服务器重启才加载);或该机
dsh安装路径非全局 npm(npx缓存安装)——需npm install -g @deepseek-ai/dsh。 - 端口占用:默认 3080;改动请同步修改
dsh-win.ps1/dsh-tray.ps1/dsh-web-start.ps1中的$Port。
许可
MIT(见 LICENSE)。致谢:
- 启动进度弹窗改编自 @linxin666/dsh-desktop-launcher(Apache-2.0)
- 鲸鱼图标源自 DeepSeek Harness 官方 favicon 与 Chrome 生成的网页应用图标
