Back to home@nexsjournal

dsh-desktop-app

Includes image recognition and generation functions.

Stars
1
Language
JavaScript
Created
Aug 17, 2026
Updated
Aug 17, 2026

Introduction

YuanHarness 桌面端

YuanHarness 桌面端界面截图

基于官方 DeepSeek Harness 桌面端架构(Electron 壳 + loopback DSH Web Host,壳核分离)的 YuanHarness 定制版桌面端。开箱即用:安装包内置四个插件与品牌默认外观,下载 → 安装 → 启动即可使用,无需手动 dsh plugin add

内置插件

插件说明
dsh-vision-plugin模型目录「图片输入」开关 + 可选视觉中转(vision_analyze / vision_status / vision_test / vision_configure)
dsh-imagegen-plugin生图/改图中转(image_generate / imagegen_status / imagegen_test / imagegen_configure + 生图 skill)
dsh-customui-pluginWeb GUI 个性化:侧边栏 Logo、空对话欢迎区(Logo + 文案)、对话背景图
dsh-better-sidebaromdsh-dev/DSH-better-sidebarVSCode 风格右侧边栏(资源管理器 / 编辑器 / 终端 / git / 浏览器)

首次启动时,App 会自动把上述插件安装到 $DSH_HOME/profiles/web(默认 ~/.dsh/profiles/webDSH_HOME 环境变量可覆盖),并执行 pnpm install(使用随包 pnpm,无需用户预装; 默认走 npmmirror 源,可在 profile 的 .npmrc 修改)。

开发

npm install          # electron / electron-builder
npm run fetch:all    # 拉取 resources/host(~300MB)与 resources/pnpm
npm run dev          # 开发态启动(electron .)

开发态默认使用系统 PATH 的 node 作为 Host 运行时(可用 DSH_DESKTOP_NODE_EXECUTABLE 覆盖)。

打包

npm run build:mac    # → dist/qydsh-<版本>-mac-<架构>.dmg
npm run build:win    # → dist/qydsh-<版本>-win-<架构>.exe(NSIS 安装包)
npm run build:all    # 两者都打
  • macOS 目标:DMG(Apple Silicon;electron-builder --mac --x64 可出 Intel 版, 注意 resources/host 需在同一架构机器上重新 npm run fetch:host)。
  • Windows 目标:NSIS 安装包(x64)。
  • 未做代码签名:macOS 首次打开需右键 → 打开(Gatekeeper 提示),或 xattr -dr com.apple.quarantine "YuanHarness.app"

自检

npm run selftest:mac
# 用全新 DSH_HOME 启动打包产物,走完 provision → Host 启动 → 截屏,
# 输出 dist/selftest/home(完整 DSH home)与 dist/selftest/screenshot.png

发布(GitHub Releases)

推送 v* tag 即触发 .github/workflows/release.yml:mac(dmg)与 win(exe)并行构建, 自动创建/更新 GitHub Release 并挂载安装包——用户即可在 Releases 页面一键下载。

git tag v0.1.1 && git push origin v0.1.1

与官方桌面端的关系

  • 主进程生命周期/Host 监督逻辑源自官方 @deepseek-ai/dsh-desktop(MIT),保留其 安全策略(loopback 随机端口、会话加固、外链拦截、单实例锁、托盘常驻)。
  • DSH 运行时来自 npm 发布的 @deepseek-ai/dsh(版本固定于 scripts/fetch-host.mjs)。
  • 内置插件来自各自仓库 / 本地维护版本,升级方式:替换 vendor/plugins/<插件> 后重新打包。

License

MIT(各内置插件沿用其自身许可证,见 vendor/plugins/*/LICENSE)。