xuboboo / dsh-gui

Listed

DeepSeek Harness 桌面版客户端(GUI):品牌启动动画 + DeepSeek 设计语言界面 + rc.5 启动崩溃修复。第三方非官方项目。

mainTool View source

Installation

npx -y @deepseek-ai/dsh plugin --profile web add github:xuboboo/dsh-gui

This installation command is an unverified starting point generated from the GitHub repository address.

README

Maintainer-authored documentation snapshot.

View on GitHub ↗
Commit 4e0d60aSynced Aug 18, 2026

DeepSeek Harness 桌面版客户端(GUI)

把 DeepSeek Harness 装进一个原生桌面窗口:品牌化启动动画、DeepSeek 设计语言界面、稳定启动。 第三方非官方项目(与 DeepSeek / DeepSeek AI 官方无关)。

English: A desktop GUI client for DeepSeek Harness — native window, branded splash animation, DeepSeek design language UI, and a stable startup (includes the rc.5 startup crash fix). Third-party, unofficial.

下载与安装 / Download & Install

前往 Releases 下载最新版本:

  • dsh-gui-v1.0.17-win-x64.zip(Windows 64 位,约 280 MB)— 最新版(含新电脑首次启动修复 + 自动更新循环修复)

安装步骤

  1. 解压 zip 到任意目录(建议英文路径,如 D:\Tools\dsh-gui
  2. 双击 DeepSeek Harness.exe
  3. 首次启动会显示品牌启动动画,几秒后进入主界面

无需安装 Node.js 或其他任何运行时——exe 已内置完整运行环境,解压即用。

卸载

删除解压目录即可。用户数据(会话、配置)保存在 %USERPROFILE%\.dsh,如需彻底清除可一并删除。

系统要求 / System requirements

  • 操作系统:Windows 10 / 11(64 位)
  • 内存:建议 4 GB 以上
  • 磁盘:解压后约 900 MB
  • 无需 Node.js / npm / pnpm / 任何开发环境(内置运行时)

使用说明 / Usage

首次启动

  1. 双击 DeepSeek Harness.exe
  2. 等待品牌启动动画结束(首次启动需初始化,约 3–10 秒)
  3. 在界面中配置模型服务(设置 → 模型,填入你的 DeepSeek API Key)即可开始对话

日常使用

  • 本地服务默认运行在 http://127.0.0.1:3081(仅本机可访问)
  • 界面语言:简体中文(默认),可在界面内切换
  • 支持浅色 / 深色主题,跟随系统或手动切换

端口冲突

如果 3081 端口被占用,可设置环境变量后重启:

DSH_DESKTOP_PORT=3082

常见问题 / FAQ

Q:需要先安装 Node.js 吗? A:不需要。本客户端完全自包含,运行时已内置在 exe 中,解压后双击即可使用。

Q:杀毒软件提示风险? A:本客户端为第三方构建、未做商业签名,Windows SmartScreen / 杀毒软件可能提示。来源为本仓库 Releases 的安装包可放心使用;也可以选择自行构建(见下文源码构建)。

Q:启动后白屏 / 无法打开? A:请确认已解压完整(不要直接运行压缩包内的 exe);首次启动请耐心等待动画结束。仍失败可查看日志 %APPDATA%\@deepseek-ai\dsh-root\logs\desktop.log

Q:数据存放在哪里? A:用户数据(会话记录、配置、凭据)保存在 %USERPROFILE%\.dsh,与官方版本一致。

Q:如何更新? A:关注本仓库 Releases,下载新版 zip 解压覆盖即可(保留 %USERPROFILE%\.dsh 即可保留数据)。

特性 / Features

  • 🪟 原生桌面窗口 — 独立窗口承载完整 Harness Web UI
  • 🎬 品牌启动动画 — logo 呼吸光晕 + 双环加载动画 + 深色渐变背景(纯 CSS,无外部依赖)
  • 🎨 DeepSeek 设计语言界面 — token 级主题覆盖:品牌蓝主按钮、浅蓝消息气泡、蓝调选中/悬停态、细圆角滚动条、品牌色选区与焦点环、柔和过渡与按压反馈
  • 🔧 rc.5 启动崩溃修复 — launcher 补传 --expose-internals、profile 依赖落盘、ensureSymlink 兼容真实目录
  • 📋 复制按钮修复(v1.0.1) — 放行 clipboard-sanitized-write 权限,对话/代码块复制按钮恢复可用
  • 📊 Token 用量统计(v1.0.2) — 设置页新增用量统计:总览卡片、每日柱状图(7/30 天)、会话排行;支持清空统计(非破坏性,不删会话)与一键恢复完整统计
  • 🌗 浅色 / 深色双主题 — 跟随系统或手动切换,两套配色均对齐品牌

更新日志 / Changelog

v1.0.17(2026-08-17)

  • 🔄 修复"自动更新无限循环"(v1.0.16 更新循环问题):内置版本号 DSH_GUI_VERSION 同步为 1.0.17,不再自我触发更新;更新器对"暂存版本不高于当前版本"的旧更新包自动清理,退出时不再应用旧包(即使之前循环残留,升级后也会自动清除)。

v1.0.16(2026-08-17)

  • 🐛 修复新电脑首次启动失败runtime exited with code 1 / ERR_MODULE_NOT_FOUND):Windows 下 healProfilesModuleFallback 不再创建指向 app.asar 内部路径的 Junction(Node ESM 加载器无法解析这类路径),改为实体拷贝 app.asarapp.asar.unpacked 中的全部依赖(含 node-pty / sharp / koffi / ripgrep 等原生模块)到 %USERPROFILE%\.dsh\profiles\node_modules;已有完整目录跳过、残留 Junction 替换,首次启动自动完成(1–3 分钟),之后正常速度。已在全新 DSH_HOME 环境实测通过。

v1.0.15(2026-08-16)

  • 🔄 修复"立即重启后启动失败":立即重启时先停本地服务(释放 3081 端口)再退出;启动失败自动清理残留端口进程并重试
  • 🐛 修复更新解压失败(Invalid package config):fflate 解压库加载改三级回退(asar → 绝对路径 → profile 真实文件系统)

v1.0.14(2026-08-15)

  • 🐛 修复"每次启动弹已自动更新"循环:更新暂存清理顺序错误导致重复应用,已修正

v1.0.13(2026-08-15)

  • 📁 目录选择器最终修复:改为 GUI 原生对话框(Electron dialog,模态、必见、焦点安全,网页版与桌面版共用),彻底解决:koffi 崩溃、中文路径乱码、对话框被遮挡、焦点误触关机、选择结果被超时丢弃等一系列问题
  • 🛡️ 修复版 worker 内嵌启动器,每次启动自愈覆盖

v1.0.12(2026-08-15)

  • 📁 目录选择器彻底修复(v1.0.10 修复不彻底,本次根治):worker 字符串读取越界导致选中目录后原生崩溃;改为安全逐字符读取,自动化测试通过(真实对话框→自动选目录→正确返回路径)
  • 🔄 启动自愈:每次启动自动用修复版覆盖 profile 中的官方缺陷文件,已装用户升级后无需手动操作

v1.0.11(2026-08-15)

  • 🔍 全程序体检修复(审计 v1.0.10 全部代码路径):
    • 已暂存更新的重启提示在启动时立即弹出(不再等 8 秒自动检查)
    • 原地应用后正确记录,下次启动弹"已更新到 vX"确认
    • GitHub API 检查/校验失败自动切换 curl(直连→系统代理),不再静默失败
    • 主进程未捕获异常/拒绝写入日志,可追溯
    • 窗口关闭后停止 toast 轮询,无资源泄漏
    • 未应用的暂存更新不再被启动清理(异常退出不丢更新)

v1.0.10(2026-08-15)

  • 📁 修复"添加工作区"无法打开文件夹选择器:补齐官方 rc.5 漏发的 worker.cjs 与 koffi Windows 平台绑定(patches/0010-workspace-directory-picker-fix.patch

v1.0.9(2026-08-15)

  • 🤫 静默升级:发现新版本后无弹窗打扰,后台静默下载 → 校验 → 自动暂存;完成后在应用左下角弹出提示条「更新已就绪 vX.Y.Z」(立即重启 / 稍后重启)
    • 立即重启:退出并自动重启完成安装;稍后重启:下次退出应用时自动应用
    • 同时修复"稍后重启"从未生效的问题(before-quit 检查了错误的文件名)
  • 🗑️ 移除下载进度弹窗、下载通知、更新前确认框(patches/0009-silent-update-restart-toast.patch
  • 并行分块下载:更新包按字节范围拆成 12 路并发下载(直连→系统代理逐块回退),实测受限网络上 ~14 倍提速(单连接 11 KB/s → 并行 157 KB/s),sha256 校验不变
  • 🔧 "立即重启"真正可用:修复自动重启从未生效的问题——Electron 退出时会杀死其派生的子进程(Windows Job Object),导致旧的 PowerShell 应用脚本从未执行;改为主进程原地覆盖 app.asar + app.relaunch(),退出后自动重新打开即为新版本(退出时应用更新同样原地覆盖)

v1.0.8(2026-08-15)

  • 🎨 更新进度弹窗重做:去掉"正方形深色框 + 圆角卡片"两层折叠效果,改为单层扁平深色卡片;进度真实化——curl 下载通道此前不上报进度(进度条停在原地像假的),现实时解析 curl 进度并统一显示,"已下 X / 共 Y MB + 百分比"同源计算不再对不上(patches/0008-update-progress-window.patch

v1.0.7(2026-08-15)

  • 🐛 修复"重新启动本地服务"误报错误页:帮助菜单 → 重新启动本地服务 不再闪现"运行时已停止 / runtime exited with code 1"错误页;旧进程会等其完全退出后再启动新服务,连点也不会反复杀掉刚起来的服务(patches/0007-restart-no-error-flash.patch

v1.0.6(2026-08-15)

  • 🔄 自动更新完善:下载进度显示、失败必反馈、帮助菜单 → 关于(版本信息)、更新内容预览;提示框统一为系统原生对话框

v1.0.4(2026-08-15)

  • 📊 下载进度窗口:更新下载实时进度条;多通道下载快速失败切换
  • ℹ️ 帮助菜单 → 关于 dsh-gui:版本号与项目信息
  • 🐛 下载失败必提示原因(不再无响应)

v1.0.3(2026-08-15)

  • 🔄 新增自动更新:帮助菜单 → 检查更新;启动后自动检查(每 6 小时);发现新版本显示更新内容,一键下载(约 33 MB 增量包)安装,失败自动回滚(patches/0006-auto-updater.patch
  • 发布流程:每次发版需同时上传整包 + asar 更新包(见下方「发版清单」)

v1.0.2(2026-08-15)

修复多个 Bug 并新增功能:复制按钮无反应、启动崩溃(v1.0.0 起)、帮助菜单项目主页指向、设置页布局问题等均已修复。

  • 📊 新增 Token 用量统计设置页:总览卡片(输入/输出/缓存/会话数/LLM 耗时)、每日用量柱状图(近 7/30 天)、会话用量排行(Top 50);清空统计仅重置统计起点(不删除任何会话记录,localStorage 持久),可随时恢复完整统计
  • 实现:浏览器端插件 client-plugins/ui-settings-token-usage(聚合 session.list 投影列,零日志加载)
  • 🏠 项目主页:设置页新增"项目主页"页(GitHub 仓库 + Releases 直达链接);帮助菜单 → 项目主页改为指向本仓库(patches/0005-menu-project-homepage.patch
  • 🔄 自动更新(v1.0.2):帮助菜单 → 检查更新;启动后自动检查(每 6 小时),发现新版本显示更新内容并一键下载安装(patches/0006-auto-updater.patch

v1.0.1(2026-08-15)

  • 🐛 修复复制按钮无反应:官方 launcher 拒绝一切权限请求(setPermissionRequestHandler 一律 callback(false)),导致 navigator.clipboard.writeText 被拒、复制按钮静默失效。v1.0.1 放行 clipboard-sanitized-write 权限(见 patches/0003-launcher-clipboard-permission.patch)。

v1.0.0(2026-08-14)

  • 首个发行版:品牌启动动画、DeepSeek 设计语言主题、rc.5 启动崩溃修复

界面预览 / Preview

主界面设置Token 用量统计项目主页
主界面设置Token 用量统计项目主页

发版清单 / Release checklist

自动更新依赖以下步骤,每步都不能漏,否则客户收不到更新:

  1. 改版本号desktop/lib/main.jsDSH_GUI_VERSION 常量改为新版本(如 1.0.3
  2. 打整包dsh-gui-vX.Y.Z-win-x64.zip(解压即用完整包)
  3. 打更新包dsh-gui-vX.Y.Z-win-x64-asar.zip(仅 resources/app.asar,zip 内路径 resources/app.asar)——客户端自动更新下载的就是它
  4. 上传两个包到 GitHub Release(整包 + asar 更新包,tag vX.Y.Z
  5. 验证:帮助菜单 → 检查更新 应提示新版本;或等启动后 8 秒自动检查

说明:自动更新下载 asar 更新包(约 33 MB)并校验 GitHub sha256 后替换 app.asar,无需重新下载 280 MB 整包;更新失败会自动回滚并提示手动下载。

面向开发者 / For developers

本仓库包含客户端的三块核心资产:

├── theme/
│   └── dsw-override.css        # 界面主题覆盖层(DeepSeek 设计语言)
├── splash/
│   ├── splash-page.html        # 启动动画页模板(浏览器可直接预览)
│   └── launcher-patch.md       # 启动动画接入 launcher 的说明
├── patches/
│   ├── 0001-launcher-expose-internals.patch   # 启动修复 1
│   ├── 0002-app-boot-ensure-symlink.patch     # 启动修复 2
│   ├── 0003-launcher-clipboard-permission.patch # 复制按钮修复(剪贴板权限)
│   └── README.md               # rc.5 启动崩溃修复完整方案
└── SECURITY.md                 # 安全与敏感信息说明

应用主题(无需改动应用文件)

  1. 复制 theme/dsw-override.css 到前端 dist:<profile>/node_modules/@deepseek-ai/dsh-web-frontend/dist/assets/
  2. dist/index.html<head> 中、主 CSS(index-*.css)之后追加:
<link rel="stylesheet" crossorigin href="/assets/dsw-override.css">
  1. 刷新页面即生效。此后只需维护这一个文件即可持续调整界面细节。

启动动画与启动修复

详见 splash/launcher-patch.mdpatches/README.md(涉及 resources/app.asar 解包/重打包,请保留原始备份)。

从官方源码构建

本客户端基于 DeepSeek Harness(官方,MIT)桌面版构建。从源码构建需要 Node.js 环境(仅构建时需要,运行无需)——此场景才需要 Install Node.js, then run: pnpm install

技术实现 / How it works

模块方案
桌面窗口Electron 原生窗口承载 Harness Web UI
运行时Electron 内置 Node(ELECTRON_RUN_AS_NODE)运行 dsh 服务,完全自包含
启动动画纯 CSS 动画的 data: URL 页面,图标运行时内嵌 base64,无外部资源依赖
界面主题CSS 变量(--dsw-* token)覆盖层,后加载覆盖原设计系统,不破坏组件
启动修复launcher 补传 --expose-internals;profile 依赖从 junction 改为真实文件;ensureSymlink 兼容真实目录

安全 / Security

本仓库经严格敏感信息扫描:不含任何 API key、密码、凭据、本地数据或本地路径(检查方法见 SECURITY.md)。

免责声明 / Disclaimer

独立的第三方项目,与 DeepSeek / DeepSeek AI 官方无关。DeepSeek Harness 是官方项目(MIT)。

许可证 / License

MIT License © dsh-gui contributors

Project files and signals

Shown items are public repository signals detected in the directory snapshot.

Security policyDetected
DocumentationDetected

Repository information

Language
TypeScript
License
MIT
Latest release
v1.0.17
Last updated
Aug 17, 2026, 9:19 AM

Install deliberately

Review source code, permissions, lifecycle hooks, dependencies and network access. Test untrusted plugins in an isolated environment.