dsh-web-search-ddg
aooyoo
Zero-token DuckDuckGo search provider for the DeepSeek Harness (DSH) web seam — local headless browser, no API key, no m…
PROJECT TOPICS
PROJECT README
把 DeepSeek Harness(dsh web)封装成一个原生桌面 GUI 应用:
内置官方 Node 运行时启动本地 dsh web 服务,再用 Electron 原生窗口加载 UI,
双击即可使用,无需终端、无需浏览器标签页。
前往 GitHub Releases 下载:
DeepSeek.Harness-<版本>-arm64.dmg — 安装包,双击挂载后拖入 Applications;DeepSeek.Harness-<版本>-arm64-mac.zip — 免安装版,解压即用;DeepSeek.Harness-<版本>-win-x64.zip — 绿色版(推荐),解压后直接运行里面的 DeepSeek Harness.exe,完整 dsh web 运行时已内置,全程离线;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 一次即可。
# 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 拦截,右键 → 打开。
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(与命令行共享凭据 / 设置 / 会话),
可用环境变量 DSH_HOME 覆盖。~/ 为 cwd 启动(可用 DSH_WORKSPACE 覆盖),
在 UI 内可另行切换工作区目录。~/Library/Logs/DeepSeek Harness/harness.log;
Windows %LOCALAPPDATA%\DeepSeek Harness\harness.log。DSH_APP_SELFTEST=1 启动时自动加载页面、检查渲染结果并退出
(SELFTEST_PASS / 退出码 0)。before-quit 击杀服务进程组;
服务由 guard.js 看门狗包裹,即使 Electron 被 kill -9 强杀,
父进程死亡管道一断也会自动终止服务,不留孤儿进程。node 无关),
DSH 依赖的 NAPI 原生模块(node-pty / sharp / koffi 等)无需重新编译。CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。