DSH Desktop 是 DeepSeek Harness Web UI 的 Windows x64 桌面封装。它把 Node.js、pnpm、MinGit、Harness 源码和生产依赖放入便携包,用户不需要单独安装 Node.js、pnpm、Git 或 Harness。
从 Releases 下载:
DeepSeekHarness-portable-x64.zip
解压后运行:
.\DeepSeekHarness\DeepSeekHarness.exe这是免安装版本。程序只依赖自身目录中的运行时文件,不需要执行 MSI 或 NSIS 安装程序。
- Windows 10 或 Windows 11,x64。
- Microsoft Edge WebView2 Runtime。绝大多数现代 Windows 10/11 已预装。
- 用户目录可写
- 首次启动需要可访问 GitHub:程序会从上游克隆并构建 Harness
- 首次运行建议预留至少 3 GB 可用空间(源码、完整依赖树和 pnpm 存储)
便携包只包含运行所需的工具,不附带 Harness 源码或构建产物。首次启动时,程序会在 用户可写目录中部署 Harness:
%APPDATA%\com.deepseek.harness.desktop\harness\
├── source\ # 从 GitHub 克隆的 Harness Git 工作目录
└── runtime\ # 本地构建出的生产依赖和 Web 构建产物
首次启动会依次执行:git clone 上游 master、pnpm install、
pnpm run clean、pnpm run build、pnpm deploy,然后启动服务。整个过程通常需要
5–15 分钟,具体取决于网络、磁盘和杀毒软件。这一步必须联网。
后续启动会复用已部署的 source 和 runtime,只需几秒。
应用使用一个原生窗口:
- 顶部控制栏始终可用。
- Harness Web 界面位于顶部控制栏下方。
- “状态与日志”按钮会展开顶部抽屉,显示启动状态、更新进度和运行日志。
- “打开日志目录”按钮会打开持久化诊断日志所在目录。
- 再次点击按钮后,Harness 界面恢复到完整高度。
- 关闭这一个窗口时,Harness Node 进程树会被终止。
- 应用使用单实例锁;重复启动只会聚焦已有窗口,不会并发修改 runtime。
顶部控制栏提供:
- 当前 Harness 状态与本地 Harness 版本号。
- 重启 Harness。
- 更新 Harness(已是最新版本时直接返回,不重新构建)。
- 强制重新构建(即使本地提交与上游一致也完整重建,用于修复损坏的运行时)。
- 中英文切换。
- 展开或收起状态与日志抽屉。
点击更新按钮后,程序会依次执行:
- 停止当前 Harness 服务。
- 读取本地提交,获取上游
master最新提交。 - 若两者一致则直接重启服务并提示“已是最新”,不做任何重建。
- 重置可写源码目录并清理未跟踪文件。
- 执行
pnpm install --frozen-lockfile。 - 执行
pnpm run clean。 - 执行
pnpm run build。 - 生成新的生产运行时目录(
runtime-next)。 - 修复生产树中可能缺失的 workspace peer 依赖。
- 运行 node-pty、koffi 等必要的安装步骤。
- 切换到新运行时并重新启动 Harness。
如果源码目录缺失或损坏,更新会先重新克隆,因此更新同时充当修复入口。
更新期间会保留旧运行时。如果新版本构建失败或启动失败,应用会恢复旧运行时并 继续提供服务。强制重新构建按钮走同一流程,但跳过第 3 步的比较。
DeepSeekHarness\
├── DeepSeekHarness.exe
├── node.exe
├── runtime\
│ ├── pnpm\
│ └── git\
└── tools\
└── repair-runtime.mjs
便携包不包含 Harness 源码或构建产物,压缩包约 79 MiB、解压后约 201 MiB。
node.exe 同时用作 Tauri sidecar 和所有构建命令的解释器。runtime 和 tools
通过相对路径定位,因此整个 DeepSeekHarness 目录可以移动到其他位置或其他
Windows x64 电脑。
程序文件位于便携目录,Harness 工作副本位于:
%APPDATA%\com.deepseek.harness.desktop\harness
如果首次部署被中断:
- 关闭 DSH Desktop。
- 删除
%APPDATA%\com.deepseek.harness.desktop\harness。 - 重新启动
DeepSeekHarness.exe,程序会重新克隆并构建。
如果运行环境被破坏但源码目录完好,也可以直接用顶部控制栏的“强制重新构建”。
DSH 的会话、凭据和工作区设置由 Harness 自身管理,删除 Harness 工作副本不一定 会删除这些用户数据。
- Node.js
^22.19.0或>=24.0.0 - pnpm
11.7.0 - Git
- Rust
1.77.2+ - Visual Studio 2022 C++ Build Tools,包含 MSVC x64 工具链
- Windows WebView2 Runtime
pnpm installpnpm prepare:runtime该命令会:
- 下载并固定 Node.js、pnpm 和 MinGit。
- 下载 DeepSeek Harness 源码。
- 初始化用于增量更新的 Git 基线。
- 构建 Host、Client 和 Web 前端。
- 生成生产依赖树。
- 修复上游 runtime 清单可能遗漏的 workspace peer。
- 生成 Tauri 使用的 ZIP 资源。
- 生成 Tauri Node.js sidecar。
首次执行下载量较大,通常需要数分钟。
pnpm tauri devpnpm package:portable输出:
DeepSeekHarness\DeepSeekHarness.exe
DeepSeekHarness-portable-x64.zip
pnpm tauri build输出位于:
src-tauri\target\release\bundle\
.
├── index.html
├── src\
│ ├── main.ts
│ └── styles.css
├── scripts\
│ ├── prepare-runtime.mjs
│ ├── repair-runtime.mjs
│ └── build-portable.mjs
├── src-tauri\
│ ├── src\
│ ├── icons\
│ ├── binaries\
│ ├── capabilities\
│ └── tauri.conf.json
└── docs\
├── ARCHITECTURE.md
└── BUILDING.md
这是首次部署过程。请等待状态切换为“Harness 已就绪”,不要在部署过程中关闭 程序。
安装 Microsoft Edge WebView2 Evergreen Runtime 后重新启动程序。
当前发布包未进行商业代码签名。允许运行前,请先核对 Release 页面提供的 SHA-256。
正常关闭窗口会调用:
taskkill /PID <pid> /T /F
Harness 服务进程树同时被放进一个 Windows Job Object
(JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE)。句柄随 DeepSeekHarness.exe 消失而
关闭,内核随即终止 job 内的全部进程,因此任务管理器强杀、程序崩溃、注销和断电
也不会留下 node.exe。
只有当 Job Object 创建或分配失败时(日志中会出现 Could not place the Harness process in a job object 警告),才会退回按 PID 清理这一条路径;此时强制结束进程
仍可能留下 node.exe,可在任务管理器手动结束。
应用会尝试恢复旧运行时。日志抽屉中会显示失败步骤和错误信息。确认网络、代理 和磁盘空间正常后可以再次更新。每次更新都会在以下目录生成独立日志:
%APPDATA%\com.deepseek.harness.desktop\harness\logs\update-YYYYMMDD-HHMMSS-mmm.log
日志包含更新阶段、完整命令、工作目录、退出码,以及失败命令的 stdout/stderr 末尾内容。遇到更新失败时,可通过界面中的“打开日志目录”按钮直接找到该文件。