这是一个基于 Tauri 2 开发的桌面应用源码项目,主要用于将本机的 DeepSeek Harness Web UI(https://127.0.0.1:3080)嵌入到独立的桌面窗口中。该桌面窗口默认尺寸为 1280×800,并支持窗口缩放,便于作为 DeepSeek Harness 桌面端使用。

自动启动 harness 服务
应用启动后会先检测 127.0.0.1:3080 是否可以正常访问:
- 服务已运行:直接加载 Web UI,不做额外干预,关闭桌面应用时也不会影响当前服务。
- 服务未运行:程序会在后台自动启动服务,等待服务就绪后再加载 Web UI;退出应用时,会自动停止由程序拉起的服务,避免误关闭你手动启动的进程。
启动服务所使用的命令、工作目录、访问地址、超时时间等参数,全部由 exe 同目录下的 harness.json 配置文件决定,程序本身不再写死源码路径,方便部署和修改:
{
"url": "https://127.0.0.1:3080",
"probeAddr": "127.0.0.1:3080",
"workingDir": "D:/deepseek_harness/deepseek-harness-master/deepseek-harness-master",
"command": "node",
"args": ["--import", "tsx/esm", "apps/cli/src/bin.ts", "web"],
"startupTimeoutSecs": 60
}
- 当找不到 harness.json 时,程序会使用内置默认配置(与上面一致),保证开箱即用。
- 打包时,harness.json 会随安装包一起放在 exe 同级目录中(bundle.resources);安装完成后,直接修改安装目录里的这份配置文件即可生效,无需重新编译项目。
- 项目根目录中的 harness.json 属于“源配置文件”,修改后需要重新执行 tauri build,新的内容才会进入安装包。
- 路径既可以使用 /,也可以使用 \(但 JSON 中的反斜杠需要转义)。
目录结构
deepseek-harness-desktop/
├── package.json # Node 侧(@tauri-apps/cli)
├── harness.json # 启动配置(随安装包分发)
├── dist/index.html # 前端占位(实际加载外部 URL)
└── src-tauri/
├── Cargo.toml # Rust 依赖
├── build.rs
├── tauri.conf.json # 应用/打包配置(含 resources 打包 harness.json)
├── capabilities/default.json
├── icons/ # 图标集(png + ico)
└── src/
├── main.rs
└── lib.rs # 读取配置 → 自动启动服务 → 创建窗口并加载 Web UI
环境要求
- Rust stable(MSVC 工具链)+ VS Build Tools 2022
- Node.js(用于
@tauri-apps/cli以及启动 harness 服务) - cargo 已配置 USTC 镜像、npm 已配置 npmmirror 镜像(可显著提升依赖下载速度)
构建
cd D:deepseek-harness-desktop npm install # 安装 @tauri-apps/cli(走 npmmirror) npm run tauri build # 编译并打包(走 USTC 镜像)
构建产物位于 src-tauritargetreleasebundle 目录下:
- nsisDeepSeek Harness_0.1.0_x64-setup.exe —— 安装版,推荐优先使用
- msi*.msi
首次构建时需要下载 Rust 依赖并完成编译,通常耗时约 5–15 分钟。
自定义
| 想改什么 | 改哪里 |
|---|---|
| 启动命令 / 工作目录 / 网址 / 超时 | 安装目录里的 harness.json(源文件位于项目根目录 harness.json) |
| 窗口尺寸 | src-tauri/src/lib.rs 中的 inner_size / min_inner_size |
| 应用名 / 版本 / 包名 | src-tauri/tauri.conf.json 的 productName / version / identifier |
| 图标 | 替换 src-tauri/icons/,或使用 npm run tauri icon 图标.png 重新生成整套图标 |
| 打包目标(只要 exe) | tauri.conf.json 的 bundle.targets 改为 ["nsis"] |
说明
- npm run tauri dev 会以调试模式运行(开发阶段默认使用内置配置,也可以在调试 exe 同目录放置 harness.json 进行覆盖)。
- 如果服务始终无法启动(窗口显示无法连接),建议先在终端手动执行 pnpm dsh web 查看具体报错信息。
- 如需打包 macOS(.dmg),必须在 macOS 环境下执行,并补充 src-tauri/icons/icon.icns。
- 如果你想使用 git 管理项目,仓库中已包含 .gitignore(默认忽略 node_modules/ 与 target/)。
项目地址
czzzlq/deepseek-harness-desktop:deepseek-harness-desktop / DeepSeek Harness 桌面端
