Skip to content

Releases: itchenshi/dsh-ready-gui

DSH Ready GUI v0.5.0

Choose a tag to compare

@github-actions github-actions released this 22 Sep 11:37

🚀 DSH Ready GUI v0.5.0

DeepSeek Harness 桌面壳 —— 内嵌 Web UI、自动保持最新引擎、自带数据目录管理与系统托盘。

发布说明: 这一版做两件事:应用改名为 DSH Ready GUI,以及四个随附插件回到内置

改名是为了能被找到。旧名字 DeepSeekHarnessGUI 与别人的 ScannerVpn/DeepSeekHarnessGui 只差一个
大小写,GitHub 搜索视为同一个名字,而对方的星数是旧仓库的两倍——搜这个关键词的人先看到的是别人;
dsh-gui 也已被四个别人的仓库占用。新名字 dsh-ready-gui 三项实测全零:npm 空闲、GitHub 无同名
仓库、DSH 生态注册表(4000+ 条目)里没有占用。「ready」对应这个项目的定位——打开就用

插件回到内置,是因为「从 npm 安装」这条路暂时走不通:四个插件原计划拆出去发布到 npm、壳改成像
dsh-market 那样从 registry 安装(好处是插件更新不必等壳发版,任何 DSH 宿主都能装)。但 npm 账号
注册目前拿不到,包发布不出去;而 profile 里登记着一个 registry 上不存在的包,会让插件直接从引擎的
加载列表里消失,并且让这个 profile 里每一次安装操作一起失败——两条都在本机实测到了。所以这一版
保持内置,四个独立仓库先留着,等发布渠道通了再切。


🏷 改名:DSH GUI → DSH Ready GUI

应用显示名 DSH GUI DSH Ready GUI
应用身份 appId com.dsh.guishell com.dshready.gui
仓库名(三平台) DeepSeekHarnessGUI dsh-ready-gui
包名 dsh-gui-shell dsh-ready-gui
构建产物 DSH-GUI-WIN/MAC/LINUX DSH-READY-GUI-WIN/MAC/LINUX

⚠️ 装新版前请先做一件事

appId 变了,操作系统会把它当成另一个应用:新版不会覆盖旧安装。而 Electron 的数据目录由应用名
推导(<appData>\DSH GUI<appData>\DSH Ready GUI),引擎、dsh-home、设置、会话记录全在里面。

启动新版时会在任何代码读取数据目录之前做一次性迁移:把旧目录里「新目录还没有」的条目搬过去,
只 rename、绝不删除,迁移失败也不会让应用起不来(最坏情况是当作全新安装)。建议:先启动一次新版
完成迁移、确认一切正常,再卸载旧版「DSH GUI」。

📦 四个随附插件仍然内置

模型余量、会话续接、OpenCode Go 路由、按键设置继续随应用打包(源码在 plugins/),装上 GUI
就有,安装/卸载/启用都在设置窗口里完成,不需要自己 dsh plugin add。它们各自也有独立仓库,包名与
仓库名一一对应:

插件 包名 仓库
模型余量 dsh-model-surplus https://github.com/itchenshi/dsh-model-surplus
会话续接 dsh-gui-last-session https://github.com/itchenshi/dsh-gui-last-session
OpenCode Go 路由 dsh-opencode-go-path https://github.com/itchenshi/dsh-opencode-go-path
按键设置 dsh-keys-setting https://github.com/itchenshi/dsh-keys-setting

三个包名变了(功能不变)

dsh-opencode-godsh-opencode-go-pathdsh-composer-keysdsh-keys-setting(这两个
原名在 npm 上已被其他作者占用)、dsh-model-usagedsh-model-surplus(名字虽然空着,但
GitHub 上已有三个别人的同名仓库,其中两个的 package.json 也写着它)。

老用户不需要手动做任何事:启动维护会摘掉旧包名的登记、清掉补丁层残留行,并把「已禁用」的选择
搬到新包上,不会新旧两份同时加载。补丁层行 id 与设置命名空间保持原样composer-keys /
model-usage),所以你保存的键位和启用/禁用选择都不会因为改包名而失效。

安装来源不对的插件会自动修好

内置条目的「正版」只有一份:随壳打包、启动时 staging 出来的
<home>\.dsh-gui\bundled-plugins\<包名>。profile 里的依赖只要指向别处(开发用的 checkout、npm 或
git 安装、旧 staging 目录),启动维护就换回随包那一份;换不回来时把原来那份装回去,不会把插件
弄丢
。这里有个实测得出的顺序要求:先把所有来源不对的登记一起摘掉,再统一安装——否则只要
profile 里留着一条解析不了的 file: 依赖,接下来每次 pnpm 调用都会整体失败,连累的正是我们想修的
那个插件。同理,摘登记之前会先确认随包那份能 staging 出来,staging 失败就什么都不动。

📖 文档重写:README 按「打开就能用」重来

根 README 中英双版都重写了一遍,篇幅砍掉约 70%:先回答「你想要什么 → 这里怎么做」(不用敲命令、
不用管升级、不用配模型、不丢会话、数据能搬走),再讲设置窗口、数据位置、常见问题。原先按版本堆叠的
更新亮点、逐条罗列的内部实现细节、重复多遍的「为什么内置」都收敛掉了。

界面预览也按场景重排,中英文各用本语言的截图(主窗口的两种模型余量、设置窗口、DSH 设置弹窗里的
按键设置与自动添加 V4.1 模型)。四个随附插件的 README 同样重写。

🔧 随附插件修复:opencode-go 路由(0.1.3 → 0.1.4)

三处都是 deepseek-v4.1-flashopencode-go 上真实踩到的问题:

  1. 没配模型列表时什么都不做 —— 原先只在用户已配 models 时才动手,所以「插件装了、模型却没进
    模型目录」。现在用引擎自己的 llm.discoverModels() 检测该路由的目录(自带目录的路由不触网),
    没配列表时用目录做种子,写出「V4.1 在最前 + 目录里全部模型」,一项都不丢。
  2. 加了模型却发不出请求 —— 目录外的模型必须有路由级 baseURL 才有地址,而 opencode-go 没有
    provider 级 baseUrl,写 settings.yaml 的严格校验会整笔被拒。现在仅在路由没有时补上。
  3. 多轮对话 400 reasoning_content —— pi-ai 按厂商名/域名自动探测 DeepSeek 兼容,OpenCode Go
    中继两样都不匹配,于是回放历史缺 reasoning_content。现在补上与同路由目录条目逐字一致的
    compatreasoningEfforts

三处都幂等且只补不覆盖:你已经加过的那条会被就地升级,不用删了重加;你自己改过的名字、容量、
compat 开关都保留。单测 27 项全过,另在真实引擎 + 隔离数据目录上端到端验证过。

🧪 这一版是怎么验证的

npm run verify:builtin 会真的装插件、真的启动引擎:在一个临时数据目录里伪造出「三个插件登记在
某个已消失的 checkout 上、第四个缺失」,然后检查它们全部被换回随包那一份、缺失的那个能装上、
第二次启动不再重复安装、引擎带着四个插件正常起来(共 17 项检查)。它还守住「staging 失败时不许
动 profile」这条底线。


⬆️ 升级说明

  • 先启动一次新版完成数据目录迁移,再卸载旧版(见上)。
  • 无配置迁移、无需手动操作;数据目录、模型配置、会话历史原样保留。
  • 旧包名的插件会被自动清理并换成新包名,不会新旧两份同时加载。

📦 下载

三个平台都有 v0.5.0 的 Release 页与更新说明;安装包只在 GitHub(Gitee / GitCode 的 Release 提供
源码包)。原因有两条:

  • 本项目要同时产出 Windows 安装包、macOS(x64 + arm64)的 .dmg 和 Linux 的 AppImage,只有 GitHub
    Actions 能一次提供 Windows / macOS / Linux 三种 runner 做矩阵构建(Gitee Go 的云端构建只有 Linux
    容器,Node 版本也只到 15,够不上本项目要求的 Node ≥ 23)。
  • Gitee 免费版限制附件单文件 100MB、单仓库附件共 1GB,而我们的 9 个产物是 133–194MB、合计约
    1.6GB —— 一个都传不上去。

国内网络下载慢的话,可以用镜像加速或代理,安装包本身与源码是同一份。

DSH GUI 0.4.1

Choose a tag to compare

@github-actions github-actions released this 21 Sep 10:10

🚀 DSH GUI v0.4.1

DeepSeek Harness 桌面壳 —— 内嵌 Web UI、自动保持最新引擎、自带数据目录管理与系统托盘。

发布说明: 这是一次安全与可靠性修复版本。起因是两轮针对「GUI + 四个内置插件」的安全审计:修掉了一批围栏缺失与鉴权缺失问题,其中一条(插件注册的浏览器路由没有鉴权)会导致本机任何进程、以及被 DNS rebinding 的网页都能读到你的账户用量与余额;另有一条会让任意第三方插件把引擎自己的行禁用掉。同时新增「DSH GUI 自身自动检查新版本」与「输入框快捷键」插件。


🔐 安全修复(建议所有用户升级)

  • 插件浏览器路由此前完全没有鉴权dsh-model-usage / dsh-composer-keys / dsh-gui-last-session)。
    实测:不带任何凭据的 GET /model-usage 会返回账户用量与 DeepSeek 余额POST /composer-keys
    真的写入设置;带上 Host: evil.example 也一样(DNS rebinding 形状)。
    现在统一走引擎自己的信任围栏(Host 白名单 + 浏览器会话 cookie),拿不到围栏时 fail-closed。
    合法的页面请求不受影响(同源自动带 cookie)。
  • 主窗口缺少导航围栏:引擎页里的任何脚本(包括第三方插件的页面半边)此前能把
    带着 preload 桥的窗口导航到任意外部页面,从而拿到「重启引擎」「读写上次会话」的能力。
    现在只允许停留在已验证的引擎来源,弹窗一律不托管(http(s) 交给系统浏览器)。
  • 引擎 URL 不再无条件信任dsh web: … 那行来自引擎进程的 stdout,插件能在服务真正监听前
    打印自己的 URL。现在只接受 http + 回环/私有 IP 字面量,域名一律拒绝。
  • 权限默认全放行:Electron 默认批准所有权限请求,此前引擎页/插件页面半边可静默打开麦克风、
    摄像头、读取定位、刷通知
    。现在默认拒绝,只放行剪贴板写入、全屏、指针锁定。
  • 任意第三方插件可禁用引擎自己的行:插件声明 dsh.bundle.patch: "../../…"(越界到别的补丁文件)
    或额外塞一个引擎根本不会加载cordis.patch.yml,就能把 webserver / modules / session
    之类的引擎行 id 认领成自己的,随后由 GUI「名正言顺」地写出 disabled: true 并返回成功。
    现在只读引擎真正会加载的那一个补丁文件,且必须落在包目录内;另有保护名单与跨包归属校验。
  • 特权 IPC 统一校验发送方(此前 13 个通道里只有 1 个校验);断开时的引擎 token 不再写入
    启动失败日志
    ;破坏性测试钩子仅在未打包构建生效。

🛠 可靠性修复

  • 补丁层跨进程丢行:GUI 与插件市场会写同一个 cordis.patch.yml,此前用固定 .tmp 名且没有
    锁 —— 实测 3 个进程并发写 40 行会丢掉 17–28 行却仍报成功。现在有跨进程锁、唯一临时名、
    写后校验与重试。
  • 写失败不再翻转市场状态:此前补丁层写失败时仍会把「已禁用」写进市场状态,界面显示已禁用、
    引擎照常加载(正是这类漂移最容易让人以为插件坏了)。
  • 补丁层损坏会被拒绝而不是接受:空占位后还有内容、缩进垃圾等形状此前会被当成合法并继续追加。
  • 安装/更新:登记在案但文件已丢的插件现在会真的重装(此前点多少次都是「失败:?」);
    随包版本比已装旧时才重装(此前会把更新的副本无人值守降级);暂存复制不再跟随软链;
    手动更新引擎前先停引擎;npm 安装加 10 分钟超时。
  • 数据目录切换:修复「移动并切换」后引擎不会重启的回归;确认框被取消时不再闪「已保存」。
  • 引擎页「回到最近会话」的兜底补丁锚点已适配当前引擎(此前因函数签名多了参数而从未生效)。

✨ 新功能

  • 自动检查 DSH GUI 新版本:启动后自动查(12 小时内不重复),有新版用通知窗口提醒,离线静默。
    检查自动兼顾国内外网络 —— 同一个版本同时发布于 GitHub / Gitee / GitCode,国内网络
    zh-CN 或 Asia/Shanghai 等时区)先试 Gitee → GitCode → GitHub,国外反之;每个源单独限时、
    逐个回退,并记住上次可用的源优先使用。无需任何配置;手动入口是托盘「检查 DSH GUI 更新…」,
    会打开实际答上来的那个平台的下载页。(实测本机 Gitee 首次尝试 251ms 命中。)
  • 输入框快捷键插件(dsh-composer-keys:在设置窗口「通用」页配置 Enter / Shift+Enter /
    Ctrl+Enter 是「发送消息」还是「换行」。默认即引擎默认,不改动任何现有习惯;实现上是转派引擎
    自己的按键事件,因此不会与编辑器行为不一致。

🎛 顺带

  • 设置窗口的第三方插件列表更紧凑:通用规则写在段落说明里,因插件而异的
    「含页面部分 · 需刷新页面」以小标签标在对应行上。
  • 插件状态指纹补上页面半边与补丁行 id —— 这两项变化此前不会触发设置窗口重绘。

⬆️ 升级说明

  • 插件版本号已提升dsh-model-usage 0.3.1、dsh-gui-last-session 0.1.1、
    dsh-opencode-go 0.1.1、dsh-composer-keys 0.2.0)。GUI 的「随包更新」只在版本变化时才替换
    已装副本,因此必须使用 v0.4.1 及以后的新构建,这些安全修复才会真正进入你的 profile。
    装好新版本后首次启动会自动替换;也可以在新版设置窗口点「修复 / 重试」立即触发。
  • 无配置迁移、无需手动操作;数据目录与既有设置原样保留。

📦 下载

🙏 致谢

本轮修复来自一次针对 GUI 与四个内置插件的系统审计(含可复现的攻击验证)。感谢每一位反馈问题的用户。

DSH GUI 0.4.0

Choose a tag to compare

@github-actions github-actions released this 21 Sep 02:42

🚀 DSH GUI v0.4.0

DeepSeek Harness 桌面壳 —— 内嵌 Web UI、自动保持最新引擎、自带数据目录管理与系统托盘。

发布说明: 自 v0.3.0 以来的功能版本。两个 OpenCode 插件合并为「OpenCode Go 增强」并自动维护 DeepSeek V4.1 模型;用量插件新增当前选中模型的每月额度上限并会自动从官方文档更新额度表;设置窗口的第三方插件区更紧凑、描述更简短。


✨ 主要更新

🔧 插件合并:「OpenCode Go 增强」(dsh-opencode-go)

dsh-opencode-go-sessiondsh-opencode-go-api 合并为一个插件,一次解决 OpenCode / OpenCode Go 路由的三件事:

  • 声明路由协议:给 opencode-go 路由补 api: openai-completions,修掉目录外模型(如 deepseek-v4.1-flash)的
    needs an api 报错,以及模型页「添加模型」被拒的问题。
  • 自动补 DeepSeek V4.1 模型(新):引擎启动后检查——存在 opencode-go 路由且模型列表里还没有 deepseek-v4.1-* 时自动追加
    (走与模型页相同的写入路径,幂等;路由不存在则不动)。
  • 附加会话头:为发往 OpenCode 的请求附按会话 x-opencode-session 头,修复 400 MissingSessionID;默认用不透明 UUID,绝不把内部会话 ID 发给第三方。

升级平滑:装过任一旧插件的用户,首次启动会自动摘除旧包、装上新插件,并沿用你原来的启用/禁用选择;旧补丁层的遗留行也会被清理,不会新旧两版同时加载。

📊 用量插件:显示选中模型的每月上限 + 自动更新额度表

「模型用量与余量」(dsh-model-usage 0.3.0)在原有账户级用量/余额之外新增:

  • 选中模型的每月额度上限:会话标题右侧在「滚动 / 周 / 月」百分比之后显示 上限 $60 一类的标签。
  • 悬停看三段额度:该模型的 5 小时 / 周 / 每月 额度(按官方「5 小时 = 月额度 20%、每周 = 50%、每月 = 100%」规则换算),
    并标注数据来源与「百分比是账户整体用量,上限按当前选中模型」——两者含义不同,不会看混。
  • 额度表自动更新:OpenCode Go 官方没有提供每模型额度的接口,插件因此内建一份额度表(28 个模型),
    并在启动时自动抓取官方文档页解析更新(公开页面、不需要 API 密钥),结果缓存本地;
    抓取或解析失败会回退到上次缓存、再回退到内置表,不会报错也不会空白。
  • 新增限流提示:账户达到每月上限(上游返回 rate-limited)时,上限标红并在悬停里给出重置时间。

🎛 设置窗口:第三方插件区更清爽

  • 布局优化:插件标题加粗成行,描述最多显示两行、超出自动省略,行距更紧凑。
  • 描述精简:全部插件的中英文描述都改为一句话(例如「OpenCode Go 增强」由 151 字精简到 49 字),
    设置窗口不再被大段说明撑开。

📦 下载

平台 安装包 便携版
Windows DSH GUI Setup 0.4.0.exe(NSIS 安装包) DSH GUI-0.4.0-win.zip(便携) / DSH-GUI-WIN.zip(解压即用目录)
macOS DSH GUI-0.4.0-arm64.dmg(Apple Silicon) / DSH GUI-0.4.0.dmg(Intel)
Linux DSH GUI-0.4.0.AppImage DSH-GUI-LINUX.zip

提示:各平台安装包均已捆绑便携 Node(v26),终端用户无需安装任何运行时。
三平台仓库(GitHub / Gitee / GitCode)互为镜像;安装包只挂在 GitHub Releases
—— Gitee 单附件上限 100 MB、GitCode 不支持附件,因此这两个镜像只承载源码与发布说明。

升级说明

  • 直接覆盖安装即可,数据目录与会话记录不受影响。
  • 若你在 v0.3.0 装过「OpenCode 会话头」或「OpenCode Go 路由协议」插件:首次启动会自动合并换成
    「OpenCode Go 增强」,无需手动操作。
  • 用量插件会自行维护额度表:首次启动会联网抓一次官方文档(约 1 秒,失败不影响使用)。

文件名说明:GitHub 会把附件名里的空格替换成点号,所以页面上的文件是
DSH.GUI.Setup.0.4.0.exeDSH.GUI-0.4.0-win.zip 这种形式(本地构建产物为空格版)。
内容完全一致,按页面上的名字下载即可。


🧭 运行方式

# 源码运行(需 Node.js ≥ 23)
npm install
npm start

首次启动自动安装 DeepSeek Harness 引擎(约 1–2 分钟)。


🙏 反馈

完整改动见 CHANGELOG.md

DSH GUI 0.3.0

Choose a tag to compare

@github-actions github-actions released this 11 Sep 15:44

🚀 DSH GUI v0.3.0

DeepSeek Harness 桌面壳 —— 内嵌 Web UI、自动保持最新引擎、自带数据目录管理与系统托盘。

发布说明: 自 v0.2.0 以来的功能版本。打包不再每轮重新下载 Node / Electron;第三方插件的「安装」与「启用」拆成两个独立状态并全部与插件市场双向同步;用量插件加入 DeepSeek 账户余额,更名为「模型用量与余量」;应用图标底色改为白色。


✨ 主要更新

📊 模型用量与余量(原「OpenCode Go 用量」)

  • 新增 DeepSeek 账户余额:使用 DeepSeek 模型时,会话标题右侧显示账户余额(总 / 赠送 / 充值,按币种带 ¥ / $),余额不足时标红提示。宿主侧取 DEEPSEEK_API_KEY 调 DeepSeek 官方 GET /user/balance密钥不下发浏览器
  • 插件更名dsh-opencode-go-usagedsh-model-usage(「模型用量与余量」)。按会话当前选中的模型路由分流:OpenCode Go 模型显示套餐用量(滚动 / 周 / 月 百分比 + 重置时间),DeepSeek 模型显示账户余额。
  • 两段各自独立:一次请求返回两段,各自报告成功/失败原因 —— 只有其中一个密钥也能正常用那一半,另一半显示诊断文案而不是整块消失。
  • 升级平滑:旧包会被自动摘除并换成新版,连「原本被禁用」的选择一起搬过去,不会新旧两版同时加载。

✅ 插件的「安装」与「启用」拆成两个状态

  • 安装勾选框:装了即勾、没装即不勾;勾选立即安装、取消立即卸载(不再保存勾选状态)。
  • 启用开关(新):关掉不卸载,只是让引擎不加载它;开启即恢复加载。走插件市场自己的接口,与市场页面上的开关完全同一条路径 —— 在线立即生效、保护规则一致;带页内半体的插件切换后设置窗口会出现「刷新页面」按钮(与市场「刷新后生效」的提示等价)。禁用/启用的来源会标注(插件市场 / profile 补丁层)。
  • 与插件市场双向实时同步:设置窗口同时 watch package.jsoncordis.patch.yml、市场的 state.json 三处,任一侧改动另一侧立即反映。
  • 修复「市场里禁用了、引擎其实还在加载」:根因是 profile 补丁层文件带 UTF-8 BOM,Node 读取时不会剥掉,导致市场写入禁用行时被自己的保护逻辑拒绝。现已修复并顺带修好了文件。
  • 安装/卸载过程可见:进行中显示进度条与阶段文案,并锁定全部操作按钮,不再出现「点了没反应」。

🎨 应用图标改为白色底

  • 主图标改为白色圆角方块 + 品牌蓝字形,深浅壁纸/任务栏都醒目。
  • build/icon.ico 改由 scripts/make-icons.mjs 直接生成,不再依赖打包工具从 PNG 转换。
  • scripts/ico-info.cjs / scripts/exe-icon-info.cjs,可随时自查 .ico 与 exe 内嵌图标的构成。

⚡ 打包提速(贡献者可感)

  • 便携 Node 归档缓存resources/.node-cache/(带 SHA-256 自校验),已就位时直接跳过 —— 重复打包 0 下载 0 解压
  • Electron 不再每轮 Downloading:新增 scripts/ensure-electron.mjs,首次从镜像下载并用官方 SHASUMS256.txt 校验后缓存,之后 dist:win 直接喂给 electron-builder,断网也能构建

🛠 稳定性

  • 坏掉的插件安装/卸载不再挡启动:profile bundle 自愈 + 引擎「干净重装」,已被污染的老安装下次启动自动修复。
  • 设置窗口精简:语言/主题统一在 Harness 页面里改,外壳实时跟随;移除冗余勾选项。

📦 下载

平台 安装包 便携版
Windows DSH GUI Setup 0.3.0.exe(NSIS 安装包) DSH GUI-0.3.0-win.zip(便携) / DSH-GUI-WIN.zip(解压即用目录)
macOS DSH GUI-0.3.0-arm64.dmg(Apple Silicon) / DSH GUI-0.3.0.dmg(Intel)
Linux DSH GUI-0.3.0.AppImage DSH-GUI-LINUX.zip

提示:各平台安装包均已捆绑便携 Node(v26),终端用户无需安装任何运行时。
三平台仓库(GitHub / Gitee / GitCode)互为镜像;安装包只挂在 GitHub Releases
—— Gitee 单附件上限 100 MB、GitCode 不支持附件,而 Windows 产物为 139–202 MB,
因此这两个镜像只承载源码与发布说明。

升级说明

  • 直接覆盖安装即可,数据目录与会话记录不受影响。
  • 若你在 v0.2.0 装过「OpenCode Go 用量」插件:首次启动会自动换成「模型用量与余量」,无需手动操作。
  • 升级后若桌面/开始菜单图标仍是旧的,重启一次资源管理器(或删除 %LocalAppData%\IconCache.db)即可刷新图标缓存。

文件名说明:GitHub 会把附件名里的空格替换成点号,所以页面上的文件是
DSH.GUI.Setup.0.3.0.exeDSH.GUI-0.3.0-win.zip 这种形式(本地构建产物为空格版)。
内容完全一致,按页面上的名字下载即可。


🧭 运行方式

# 源码运行(需 Node.js ≥ 23)
npm install
npm start

首次启动自动安装 DeepSeek Harness 引擎(约 1–2 分钟)。


🙏 反馈

完整改动见 CHANGELOG.md

DSH GUI v0.2.0

Choose a tag to compare

@github-actions github-actions released this 09 Sep 01:28

🚀 DSH GUI v0.2.0

DeepSeek Harness 桌面壳 —— 内嵌 Web UI、自动保持最新引擎、自带数据目录管理与系统托盘。

发布说明: 自 v0.1.0 以来的首个功能大版本,新增第三方插件管理、多语言、主题跟随等能力。


✨ 主要更新

🔌 第三方插件管理(新增)

  • 新增插件管理模块,设置窗口提供经核实的社区插件目录:插件市场(dsh-market)、增强侧栏(dsh-better-sidebar)、智能体团队(dsh-agent-teams)、OpenCode 会话头(dsh-opencode-go-session)
  • 勾选后每次启动自动用引擎 dsh plugin 安装并挂载到 Harness Web
  • 内置加固插件 dsh-opencode-go-session:为 OpenCode/OpenCode Go 请求注入稳定 x-opencode-session 头(修复 400 MissingSessionID),默认不透明 UUID、头值校验、debugFile 脱敏
  • 启动失败自动恢复:插件导致 dsh 无法启动时自动剔除并诊断,可一键禁用重启

🌐 多语言(新增)

  • 设置窗口「语言」:跟随系统(默认)/ 中文 / English
  • 引擎侧 locale.preference 热发布,无需重启即切换 GUI 与 Harness 页面

🎨 外观与桌面

  • 主题跟随 Harness(light / dark / system)
  • 窗口标题显示 DSH GUI v<版本>;托盘提示同时显示 GUI 与引擎版本

💾 数据与引擎

  • 数据目录可在系统 ~/.dsh 与应用目录间切换,自动检测并询问迁移
  • 每次启动内存会话(cookies/登录态不落盘)
  • 引擎版本号显示,更新后立即生效

🛠 工程与打包

  • README 双语重构(按功能分类)
  • win 打包新增便携 zip(NSIS 安装包 + 目录 zip + 便携 zip 三种产物)

📦 下载

平台 安装包 便携版
Windows DSH GUI Setup 0.2.0.exe(NSIS 安装包) DSH GUI 0.2.0-win.zip / DSH-GUI-WIN.zip(解压即用)
macOS DSH GUI 0.2.0.dmg(Intel)/ DSH GUI 0.2.0-arm64.dmg(Apple Silicon)
Linux DSH GUI 0.2.0.AppImage DSH-GUI-LINUX.zip

提示:各平台安装包均已捆绑便携 Node(≥v26),终端用户无需安装任何运行时。Gitee / GitCode 镜像因平台附件限制不挂载安装包,请统一从本 GitHub Release 下载。


🧭 运行方式

# 源码运行(需 Node.js ≥ 23)
npm install
npm start

首次启动自动安装 DeepSeek Harness 引擎(约 1–2 分钟)。


项目地址:https://github.com/itchenshi/DeepSeekHarnessGUI · 问题反馈:GitHub Issues

DSH GUI v0.1.0

Choose a tag to compare

@itchenshi itchenshi released this 06 Sep 07:54

DSH GUI v0.1.0

DeepSeek Harness 桌面壳首个版本 —— 内嵌 Web UI、自动保持最新引擎、自带数据目录管理与系统托盘。

✨ 特性

  • 不依赖外部浏览器:内嵌窗口加载 dsh web(解析带认证的 loopback URL)
  • 每次都用最新版 Harness:启动 + 每小时检查 npm registry,三档更新策略(询问后更新 / 静默更新 / 仅提示),更新后右下角持久角标
  • 每次启动都是全新会话:内存会话,cookies/登录态不落盘,退出时清理整个进程树
  • 数据目录可控:默认 ~/.dsh,可切换为应用目录并自动迁移
  • 外观跟随 Harness 主题(light / dark / system)
  • 系统托盘:打开窗口 / 设置 / 退出;关窗默认隐藏到托盘
  • 跨平台 Windows / macOS / Linux;捆绑便携 Node,终端用户零安装
  • MIT 许可,独立开源外壳(与 DeepSeek Harness 官方项目无隶属关系)

📦 安装包

  • WindowsDSH GUI Setup 0.1.0.exe(NSIS 安装包)+ DSH-GUI-WIN.zip(解压即用)
  • macOS / Linux:由 GitHub Actions CI 构建后自动附加到本 Release

更多说明见 README