DSH Plugin Store
Back to home

innocence1110

DeepSeek-Harness

No description

Stars
0
Language
JavaScript
Created
Aug 14, 2026
Updated
Aug 14, 2026
Other
GitHub repo

Introduction

DeepSeek Harness — macOS / Windows 桌面应用

把 DeepSeek Harness(dsh web)封装成一个原生桌面 GUI 应用: 内置官方 Node 运行时启动本地 dsh web 服务,再用 Electron 原生窗口加载 UI, 双击即可使用,无需终端、无需浏览器标签页。

下载安装

前往 GitHub Releases 下载:

  • macOS DeepSeek.Harness-<版本>-arm64.dmg — 安装包,双击挂载后拖入 Applications;
  • macOS DeepSeek.Harness-<版本>-arm64-mac.zip — 免安装版,解压即用;
  • Windows DeepSeek.Harness-<版本>-win-x64.zip绿色版(推荐),解压后直接运行里面的 DeepSeek Harness.exe,完整 dsh web 运行时已内置,全程离线;
  • Windows DeepSeek.Harness.Setup-<版本>.exe — NSIS 安装程序(可选安装目录)。

注:GitHub Release 会把附件文件名中的空格规范为点号(DeepSeek.Harness-…)。

macOS 支持 Apple Silicon (arm64);Windows 支持 x64。macOS 应用已做 ad-hoc 签名, 若首次打开被 Gatekeeper 拦截,右键 → 打开。

首次启动提示:Windows 首次启动会初始化 dsh 运行时(创建模块链接、冷启动数百个 模块),可能耗时 1-3 分钟,应用最多等待 5 分钟,进度会写入日志 (%LOCALAPPDATA%\DeepSeek Harness\harness.log),请耐心等待,不要误判为卡死。

从源码构建

npm install            # 安装依赖(electron / electron-builder / sharp / png2icons)
npm run build          # macOS:bundle 资源 + 生成图标 + 打包 .app/.dmg
npm run build:win      # Windows:bundle win 资源 + 打包 Setup.exe / 便携版

macOS 产物输出到 dist/,Windows 产物输出到 dist/win/。详见下方「构建」小节。

结构

Deepseek GUI/
├── main.js                     # Electron 主进程:拉起服务、开窗口、退出清理(macOS/Windows)
├── guard.js                    # 父进程死亡看门狗(防孤儿服务进程,打包时复制进 resources/)
├── package.json                # electron / electron-builder / sharp / png2icons
├── scripts/
│   ├── bundle-resources.mjs    # macOS:内置 node 二进制 + dsh 包 + guard.js → resources/
│   ├── bundle-win-resources.mjs# Windows:node.exe + dsh win32 原生依赖 + guard.js → winbuild/resources/
│   ├── collect-artifacts.mjs   # 构建后把 .app 复制到 dist/ 根目录(与 .dmg 并列)
│   └── make-icon.mjs           # 生成 build/icon.icns(mac)与 build/icon.ico(win)
├── resources/                  # macOS 构建产物(gitignore)
│   ├── node/bin/node           # 官方 Node v25.9.0 darwin-arm64
│   ├── dsh/                    # @deepseek-ai/dsh 完整副本(含 node_modules)
│   └── guard.js                # 由根目录 guard.js 复制而来(父进程死亡看门狗)
├── winbuild/                   # Windows 构建产物(gitignore,除 .yml 配置外)
│   ├── electron-builder.win.yml# Windows 打包配置(nsis)
│   └── resources/              # node.exe + dsh(win32 原生模块)+ guard.js
└── dist/                       # electron-builder 输出
    ├── DeepSeek Harness.app    # macOS 可执行应用
    ├── DeepSeek Harness-0.1.1-arm64.dmg   # macOS 安装包
    └── win/                    # Windows 输出:Setup.exe + 便携版目录(压缩为 zip)

构建

前置:npm install 一次即可。

macOS(在 mac 上执行)

# 1. 下载官方 node 二进制(仅首次)
curl -L -o resources/node-v25.9.0-darwin-arm64.tar.gz \
  https://nodejs.org/dist/v25.9.0/node-v25.9.0-darwin-arm64.tar.gz

# 2. 一键构建(自动 bundle 资源 + 生成图标 + 打包 .app/.dmg)
npm run build

产物在 dist/ 根目录,直接可见:

  • dist/DeepSeek Harness.app — 可执行应用,把它拖进“应用程序”文件夹即完成安装;
  • dist/DeepSeek Harness-0.1.1-arm64.dmg — 安装包,双击挂载后把应用拖入 Applications。

(electron-builder 的原始输出在 dist/mac-arm64/,构建脚本会自动把 .app 再复制一份到 dist/ 根目录。) .app 已做 ad-hoc 签名;如首次打开被 Gatekeeper 拦截,右键 → 打开。

Windows(可在 mac 上交叉编译,无需 Wine)

npm run build:win

脚本会自动:下载 Node v25.9.0 win-x64 的 node.exe、复制 dsh 包并装入 win32 原生模块(sharp / koffi / node-pty / ripgrep / node-addon-require-builtin 的 Windows 预编译版本),然后由 electron-builder 打包 NSIS 安装程序。

产物在 dist/win/

  • DeepSeek Harness Setup 0.1.1.exe — NSIS 安装程序(可选择安装目录);
  • win-unpacked/ — 未压缩的应用目录,压缩成 DeepSeek Harness-<版本>-win-x64.zip 即为绿色版:解压后直接双击 DeepSeek Harness.exe 运行,无需安装。

Windows 版内置运行时是 node.exe 与完整 dsh web 前端(dsh-web-frontend), 启动全程离线、无下载步骤。日志写在 %LOCALAPPDATA%\DeepSeek Harness\harness.log, 默认工作区为 %USERPROFILE%,退出时用 taskkill /T 清理整个服务进程树。 首次启动最多等待 5 分钟(dsh 运行时初始化),进度见日志。

运行细节

  • DSH_HOME:默认复用 ~/.dsh(与命令行共享凭据 / 设置 / 会话), 可用环境变量 DSH_HOME 覆盖。
  • 工作区:服务以 ~/ 为 cwd 启动(可用 DSH_WORKSPACE 覆盖), 在 UI 内可另行切换工作区目录。
  • 日志:macOS ~/Library/Logs/DeepSeek Harness/harness.log; Windows %LOCALAPPDATA%\DeepSeek Harness\harness.log
  • 自检DSH_APP_SELFTEST=1 启动时自动加载页面、检查渲染结果并退出 (SELFTEST_PASS / 退出码 0)。
  • 退出清理:窗口关闭 / Cmd+Q 走 before-quit 击杀服务进程组; 服务由 guard.js 看门狗包裹,即使 Electron 被 kill -9 强杀, 父进程死亡管道一断也会自动终止服务,不留孤儿进程。

说明

  • 服务端始终用内置的官方 Node 运行时(与系统 node 无关), DSH 依赖的 NAPI 原生模块(node-pty / sharp / koffi 等)无需重新编译。
  • 窗口关闭即退出应用并终止服务进程树。