dsh-desktop
DSh Whale · DeepSeek Harness 桌面启动器:WebView2 内嵌 DSH 界面,实时日志、单实例托盘、多开、等比缩放,装插件自动快照回滚。install.cmd 一键配置。
- Stars
- 1
- Language
- C#
- Created
- Sep 2, 2026
- Updated
- Sep 2, 2026
Introduction
DSh Whale · DeepSeek Harness 桌面启动器
当前版本 v1.0.1 · 修改与优化见 CHANGELOG.md
把 DeepSeek Harness 的 Web 版(dsh --profile web,默认 http://127.0.0.1:3080)封装成桌面应用:内嵌网页窗口、实时日志、托盘、插件安全监控、等比缩放与自动更新检查。
运行展示
默认主题

鲸鱼娘主题(深海女仆工坊)

特性
- 内嵌 Web 窗口:基于 WebView2,直接渲染 DSH Web 界面,不另开浏览器。
- 高 DPI 清晰 + 等比缩放:Per-Monitor-V2 感知不发虚;默认按窗口宽度等比缩放,可手动 缩小/100%/放大,也支持
Ctrl+滚轮、Ctrl ±。 - 实时日志:dsh 服务的 stdout/stderr 逐行写入
logs\dsh-web-<时间戳>.log。 - 托盘 + 单实例:最小化到托盘;重复打开只保留一个图标,并唤醒已运行窗口。
- 多开(新建窗口):同一进程内可新开多个 DSH Web 窗口,仍只占一个托盘图标。
- 插件安全监控:装插件前自动快照;服务在插件加载后崩溃则自动回滚并重启;重启后健康则自验证。
- 安全面板:查看服务健康、上次好快照、待验证插件与快照列表,可新建快照/回滚/验证/打开日志。
- 通知 + 自动更新:服务就绪、崩溃回滚、版本更新等弹系统通知;启动时检查 GitHub Release,发现新版本可提示打开。
目录结构
dsh-desktop\
├─ bin\Dwhale.exe ← 应用(build.ps1 生成,不提交)
├─ bin\dps.ico ← 应用图标
├─ bin\Microsoft.Web.WebView2.*.dll, WebView2Loader.dll ← WebView2 SDK(build.ps1 放置)
├─ config.json ← 本机配置(install-shortcut.ps1 生成,不提交)
├─ config.sample.json ← 配置模板
├─ dsh-safe-add.cmd ← 安全装插件入口
├─ LICENSE ← MIT
├─ CHANGELOG.md ← 版本变更记录
├─ docs\ ← 运行展示截图
├─ logs\ ← 实时日志(运行期生成)
├─ state\ ← 快照与 manifest(运行期生成)
├─ scripts\
│ ├─ install-shortcut.ps1 ← 生成本机 config.json + 桌面快捷方式
│ ├─ build.ps1 ← 用 csc 编译 exe(自动寻找 WebView2 SDK)
│ ├─ dsh-safety.ps1 ← 安全模块(Snapshot/Add/Rollback/Verify/Status/Monitor)
│ └─ convert-icon.ps1 ← PNG→ICO 转换
└─ src\Dwhale.cs, MainForm.cs, WebWindow.cs ← C# 源码
路径均按脚本所在位置推导,换目录或换机器只需重跑一次 install-shortcut.ps1。
安装
1. 前置准备
- Windows 10/11
- Node.js:启动器用
node跑 dsh,必需。 - pnpm:
npm i -g pnpm。 - DeepSeek Harness(dsh)本体:启动器只是去启动
dsh --profile web,不打包 DSH;新机器需先装好 dsh 及所需的皮肤/插件(可用dsh plugin --profile web add …,或交给 AI 按仓库指引装)。 - WebView2 运行时(Win10/11 一般随 Edge 自带)+ .NET Framework 4.x(自带)。
2. 获取程序
- 方式 A(推荐,新机器免构建):解压
DSh-Whale-1.0.1.zip到任意目录。 - 方式 B(从仓库构建):
powershell -NoProfile -ExecutionPolicy Bypass -File scripts\build.ps1build.ps1自动用 csc 编译出bin\Dwhale.exe并定位 WebView2 SDK(网络可用时可先dotnet add package Microsoft.Web.WebView2,把三个 DLL 放入lib\webview2\)。
3. 配置(生成 config.json + 桌面快捷方式)
在解压/仓库目录运行:
powershell -NoProfile -ExecutionPolicy Bypass -File scripts\install-shortcut.ps1
会自动探测本机 node/dsh 路径、生成 config.json 并创建桌面「DSh Web」快捷方式。
只要配置不要快捷方式:加
-NoShortcut;只看结果不写文件:加-DryRun。
4. 启动
双击桌面「DSh Web」快捷方式(或 bin\Dwhale.exe)。端口 127.0.0.1:3080 已有 dsh 服务则复用,否则自动拉起并打开内嵌网页。重复双击只唤起已有窗口(单实例,一个托盘图标)。
使用
双击快捷方式即启动,窗口内即 DSH Web 界面。工具栏:新建窗口 / 刷新 / 重启服务 / 快照 / 验证 / 安全(回滚)/ 状态面板 / 打开日志 / 浏览器打开 / 最小化到托盘。关闭窗口默认最小化到托盘,从托盘「退出」才真正退出并停止服务。
安全装插件(先快照)
# 方式 A(推荐)
.\dsh-safe-add.cmd "github:Small-tailqwq/dsh-deep-whale#path:/skin-manager"
# 方式 B
powershell -NoProfile -ExecutionPolicy Bypass -File scripts\dsh-safety.ps1 `
-Action Add -Plugin "github:Small-tailqwq/dsh-deep-whale#path:/skin-manager" -Config config.json
流程:拍快照 → dsh plugin --profile web add <插件> → 标记待验证 → 重启。重启后用「重启服务」或面板「验证」;若服务崩溃则自动回滚到装插件前的快照。
常用命令
| 用途 | 命令 |
|---|---|
| 查看状态/健康 | dsh-safety.ps1 -Action Status |
| 新建基准快照 | dsh-safety.ps1 -Action Snapshot -Reason baseline |
| 验证并提升为 good | dsh-safety.ps1 -Action Verify |
| 回滚 | dsh-safety.ps1 -Action Rollback -Snapshot <id|lastgood> |
| 独立监控 | dsh-safety.ps1 -Action Monitor |
配置 config.json
由 install-shortcut.ps1 生成,字段见 config.sample.json。
nodePath/dshBinJs:Node 与 dsh 的 bin.js 路径。dshHome/webProfile/webHost/webPort:DSH 数据目录与 web profile(默认127.0.0.1:3080)。logDir/stateDir/snapshotDir/manifestPath/safetyScript/iconPath:各资源位置。updateUrl:GitHub Release API 地址,留空则关闭自动更新。appVersion:当前版本,用于与远端版本比较。
config.json含本机绝对路径,不要提交;提交config.sample.json。
注意事项
- 写入真实的
%USERPROFILE%\.dsh(默认DSH_HOME)。回滚会还原~/.dsh/profiles/web\package.json、pnpm-lock.yaml、cordis.patch.yml与~/.dsh\cordis.patch.yml。 - 首次装新插件包需重启一次 DSH(新增/删除包才重启;切皮肤/换配置走热重载)。
- WebView2 需要运行时;若内嵌窗口初始化失败,状态栏会提示,此时可用「浏览器打开」。
📌 提示:你也可以把本仓库地址发给任意 AI 助手,让 AI 按上面的安装流程自动帮你完成环境检测、安装皮肤/插件与首次配置。 例如对 AI 说:“读取本仓库 README 的安装流程,并按步骤帮我在本机装好。”