dsh-gui

by monkeydadlufy

0 工具与能力github收录于 08-23

打包好的 DeepSeek Harness Windows 桌面版。双击即可打开原生窗口使用,无需安装 Node.js、无需命令行。

安装

dsh plugin --profile web add github:monkeydadlufy/dsh-gui

GitHub 源码安装:首次需按提示配置 allowBuilds 构建授权后重试

安装与环境配置指引、插件开发教程见 DSH 中文社区文档 ↗

安装即在你的机器上以你的权限运行第三方代码——它可读写文件、使用凭据、访问网络,DSH 的工具审批不会为插件代码加沙箱。「检测到 manifest」仅代表发现 dsh.bundle / dsh.plugin 清单,不构成兼容性或安全审查;安装前请审阅源码,不熟悉的插件先在不含密钥的环境试用。

README

目录

打包好的 DeepSeek Harness Windows 桌面版。双击即可打开原生窗口使用,无需安装 Node.js、无需命令行。

  • 单文件便携版(推荐):dist/DeepSeek-Harness-portable-0.1.0-rc.5-x64.exe — 一个 exe 就是整个应用,双击运行,不写注册表、不需要安装。
  • 解压版:dist/DeepSeek Harness-0.1.0-rc.5-x64.zip — 解压后运行 DeepSeek Harness.exe。

注:NSIS 安装包(Setup.exe)需要 wine 才能在 Linux/macOS 上交叉构建;便携版 与解压版功能完全一致且不需要 wine。在 Windows 上可直接把 win-unpacked 目录 打成安装包。


在 Windows 上使用

系统要求

  • Windows 10/11(64 位)
  • 自带 PowerShell(Windows 内置,无需额外安装);若已安装 PowerShell 7 (pwsh) 则体验更佳(工具默认走 pwsh,找不到时回退到 Windows PowerShell)
  • 首次运行建议联网(用于模型 API 调用)

运行

  1. 双击 DeepSeek-Harness-portable-0.1.0-rc.5-x64.exe(便携版),或解压 zip 后 双击 DeepSeek Harness.exe。
  2. 应用会启动内置的 dsh web 服务(自动选取空闲端口,一般显示在 http://127.0.0.1:<port>),并弹出原生窗口加载界面。
  3. 关闭窗口即退出;服务进程会随之停止。

首次配置模型

打开界面后,进入 设置 → 模型(Settings → Models),添加你的模型服务商 (如 DeepSeek API),填入 API Key 即可开始对话。

数据目录默认在 %USERPROFILE%\.dsh(会话、设置、凭据)。想改位置可设置环境变量 DSH_HOME。


从源码重新构建

在任意装有 Node.js ≥ 24 与 pnpm 的机器(Linux / macOS / Windows+Git Bash)上:

cd dsh-gui
bash build-windows-gui.sh

产物输出到 dsh-gui/dist/。脚本会依次:安装依赖 → 编译 dsh(lib + web 前端)→ 用 pnpm deploy 布置 Windows 运行闭包(含 win32 原生模块与前端 dist)→ 补齐 vendor/peer 包 → 下载 Windows 版 node.exe → 用 electron-builder 交叉打包。

常用环境变量:

变量 说明
ELECTRON_MIRROR Electron 二进制镜像(国内可设 https://npmmirror.com/mirrors/electron/)
ELECTRON_BUILDER_BINARIES_MIRROR electron-builder 工具镜像(同上 npmmirror)
NODE_VERSION 要捆绑的 Windows Node 版本,默认自动取最新 v24

构建细节备忘

  • pnpm deploy 必须使用共享工作区锁文件(非 --legacy)部署:legacy 部署会绕过 锁文件从 registry 重新解析 semver 范围,曾把 koffi 拉到 3.1.4(其 win32 二进制 改用 Clang 交叉编译,未经本仓库 CI 验证),导致 Windows 上文件夹选择器子进程原生 崩溃(报 win32 folder dialog worker exited before reporting a result)。 共享锁文件路径会把每个包钉死在冻结锁文件版本(koffi 3.1.1 等)。
  • pnpm deploy 默认不含 workspace peer 依赖与 link: vendor 覆盖包,脚本会把它们 从已构建的源码树补齐(dsh-timeout、dsh-fs、dsh-shell、 cordis-plugin-group 等)。
  • 运行闭包内的 node-pty 自带 win32 预编译二进制;koffi 通过 supportedArchitectures: os:[current, win32] 安装 win32 变体;Linux 专有的 landlock-run 在 Windows 上会优雅地探测为不可用。
  • 打包机不是 Windows 时,electron-builder 需要 win.signAndEditExecutable=false (跳过 rcedit/wine 编辑 exe 资源);exe 图标仍会应用到安装产物与快捷方式。
  • 中文路径:目录选择器子进程读取 COM 返回的路径时按 16 位码元扫描 NUL(修复前按 字节扫,低字节为 0 的汉字如"一" U+4E00 会提前截断路径)。源码修复位于 packages/host/directory-picker-native/src/win32-dialog-bindings.ts,构建脚本会在 部署后同步修补 lib/worker.cjs(见 scripts/patch-worker-cjk.js)。
  • 启动提速:构建脚本精简运行闭包(删除 .d.ts/.map/README 等 1.4 万+ 非运行 文件、node-pty win32-arm64 prebuild),并让主进程以 NODE_COMPILE_CACHE 持久缓存 V8 编译结果、先显示启动画面再加载 UI。Windows 首次启动受 Defender 扫描影响最大, 精简后文件数约减半。

目录结构

dsh-gui/
├── main.js                     # Electron 主进程:拉起 dsh web、开窗口、随窗口退出
├── electron-builder.json       # 打包配置
├── build-windows-gui.sh        # 一键构建脚本
├── runtime/                    # 部署好的 dsh 运行闭包(lib + node_modules + web dist)
├── node/node.exe               # 捆绑的 Windows Node 24
└── dist/                       # 产物(便携版 exe / zip / win-unpacked)

主进程逻辑:spawn(node.exe, [runtime/lib/bin.js, 'web', '--port', '0']),从 stdout 解析 dsh web: http://127.0.0.1:<port> 就绪行后加载到窗口;窗口关闭即杀 子进程退出。

版本

DeepSeek Harness 0.1.0-rc.5(对应仓库 tag),Electron 43,Windows x64。

原始 README: https://github.com/MonkeyDadLufy/dsh-gui/blob/main/README.md ↗