# deepseek-harness-desktop **Repository Path**: eason4798_admin/deepseek-harness-desktop ## Basic Information - **Project Name**: deepseek-harness-desktop - **Description**: DeepSeek Harness (MacOS桌面应用) - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-08-19 - **Last Updated**: 2026-08-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # DeepSeek Harness for macOS (Intel) 把 [deepseek-harness](https://github.com/deepseek-ai/deepseek-harness) 打包成 macOS 桌面应用(**Intel x64**),产物为 `.app` 与 `.dmg`。 ## 工作原理 DeepSeek Harness(`dsh`)本身是一个 Node.js 程序,其 Web GUI 由 `dsh web` 提供, 并且**必须**通过该服务加载(它会注入 `window.__DSH_BOOT__`)。因此本应用采用: - **Electron** 作为桌面外壳(浏览器窗口 + Dock 图标 + 菜单)。 - **捆绑一个独立的 Node.js 22 运行时**(`resources/node`)来运行 `dsh web`。 这样规避了 Electron 自带 Node 与 `node-pty` 等非 N-API 原生模块的 ABI 不匹配问题。 - 启动时主进程执行 `dsh web --host 127.0.0.1 --port 0`,从 stdout 解析出本地 URL(`dsh web: http://127.0.0.1:PORT`),轮询确认就绪后加载到窗口中。 - 关闭应用时自动结束 `dsh web` 子进程。 ## 目录结构 ``` src/main.js Electron 主进程 resources/node/ 捆绑的 Node.js 22 运行时(构建时下载) build/icon.icns 应用图标 build/make_icon.py 图标生成脚本 package.json 依赖与 electron-builder 配置 ``` ## 构建 前置条件:macOS(本机为 x64,可直接产出 Intel 产物)、Node.js 22、npm。 > 注意:**必须用 Node 22 安装依赖**(而不是更新版本的 Node),以保证 `node-pty` > 等原生模块编译为 Node 22 ABI,与捆绑的 Node 22 运行时匹配。 > 另外:`@deepseek-ai/*` 多个包之间通过 `peerDependencies` 声明依赖,而 > electron-builder 打包时只收集 `dependencies`(会漏掉 peer 依赖,导致运行时 > `ERR_MODULE_NOT_FOUND`)。因此 `package.json` 的 `dependencies` 里除了 > `@deepseek-ai/dsh`,还**显式列出了这些 peer 依赖**。升级 dsh 版本后如果又出现 > 缺包报错,按同样方式把缺失的 `@deepseek-ai/*` 补进 `dependencies` 即可。 ```bash # 1. 下载并捆绑 Node 22.22.2 运行时(darwin-x64) mkdir -p resources curl -fsSL -o /tmp/node.tar.gz https://nodejs.org/dist/v22.22.2/node-v22.22.2-darwin-x64.tar.gz tar -xzf /tmp/node.tar.gz -C resources mv resources/node-v22.22.2-darwin-x64 resources/node # 2. 安装依赖(用 Node 22;国内可加 ELECTRON_MIRROR 加速) npm install # 3. 生成图标(可选,已提供 icon.icns) # python3 build/make_icon.py # 4. 打包 .app + .dmg(x64) npm run dist ``` 产物输出到 `dist/`: - `dist/mac-x64/DeepSeek Harness.app` - `dist/DeepSeek-Harness-0.1.0-mac-x64.dmg` - `dist/DeepSeek-Harness-0.1.0-mac-x64.zip` ## 说明 - 首次启动会在本机随机端口起 `dsh web`,应用关闭时自动清理。 - 模型 API Key、工作区等配置由 Harness 自身管理(与命令行 `dsh` 一致)。 - 未签名(未公证),首次打开若被 Gatekeeper 拦截,可在「系统设置 → 隐私与安全性」 中选择「仍要打开」,或执行 `xattr -dr com.apple.quarantine "DeepSeek Harness.app"`。