deepseek-harness-clean
一个"三无"DSH桌面子端:打开它,就等于在浏览器里打DSH, 只不过它是一个带托盘图标、全原生的 Windows 窗口。
- Stars
- 0
- Language
- JavaScript
- Created
- Aug 22, 2026
- Updated
- Aug 22, 2026
Introduction
DeepSeek Harness Clean
一个"三无"桌面子端:打开它,就等于在浏览器里打开 http://127.0.0.1:3080,
只不过它是一个带托盘图标、全原生的 Windows 窗口。
三无桌面端
本项目极度克制、零捆绑。安装它,你的电脑几乎什么都没多:
| 安装它会带来什么 | |
|---|---|
| 🚫 无 dsh 本体 | 包里没有任何 DeepSeek Harness 代码,只调用你机器上已全局安装的 dsh 命令(npm i -g @deepseek-ai/dsh)。 |
| 🚫 无任何自带插件 | 不携带任何 Cordis/DSH 插件、预设、Agent 配置。DSH 的能力全部来自你自己的 ~/.dsh profile,壳里一样都没有。 |
| 🚫 无自带 Node 环境 | 包内没有 Node.js。用的是你系统的 Node、系统的 npm、系统的全局 dsh 命令。 |
一句话:装这个 ≈ 你电脑里多了一个 Chromium(Electron 运行时),仅此而已。 打包后的 exe 只有 ~88 MB——就是裸 Electron 加一层薄壳。
功能
- 自动启动 — 没有 DSH 实例在跑时自动执行
dsh web --no-open,就绪后加载页面 - 端口自动匹配(永不写死) — 三层机制:
- 解析你的 dsh profile 配置(
~/.dsh/profiles/web/*.yml)里改过的端口 - 扫描常见/自定义端口,直接复用已在跑的实例(比如浏览器里开着的那个),绝不重复启动
- 都没有 → spawn
dsh web不传--port(让 dsh 完全跟随自身配置),从启动输出dsh web: http://127.0.0.1:<端口>解析实际端口
- 解析你的 dsh profile 配置(
- 系统托盘 — 显示窗口 / 检查更新 / 设置 / 两种退出;关闭窗口可三选一 (最小化到托盘 / 仅退出客户端保留服务 / 完全退出),可勾选"不再询问"
- 打开即检查更新 — 静默并行查询 官方源 + npmmirror 镜像源,有新版本才说话
- 一键更新 — 原生对话框选「镜像源(推荐)/ 官方源」,执行:
npm i -g @deepseek-ai/dsh@latest --registry=<源> --verbose系统通知报进度,成功 → 一键重启,失败 → 换源重试 / 查看日志 - 修复工具 — 强制重装最新版 dsh CLI;或(两步确认后)清除整个
~/.dsh数据目录 - 100% 原生 Windows 界面 — 所有对话框、通知、提示都是系统原生控件,没有任何自绘 UI
- 单实例运行;外部链接交给默认浏览器;未打包运行时自动注册任务栏图标
环境要求
- Windows 10/11
- Node.js + npm(任意较新的 LTS)
- 全局
dshCLI:npm i -g @deepseek-ai/dsh
使用
# 1. 安装 dsh CLI(全局,一次性)
npm i -g @deepseek-ai/dsh
# 2. 源码运行
cd dsh-desktop
npm install # 首次会下载 Electron(约 100MB)
npm start
构建完整 app 目录
npm run dist # 只产出完整应用目录,不含任何安装程序
# 产物:dist/win-unpacked/ —— 整个目录就是应用
把 dist/win-unpacked/ 整个目录复制到任意位置(U 盘、D 盘随意),双击里面的
DeepSeek Harness Clean.exe
目录里只有套壳程序 + Electron 运行时,目标机器仍需自行安装全局 dsh CLI
(更新时执行 npm i -g ... 也需要 Node)。
配置
| 环境变量 | 说明 | 默认 |
|---|---|---|
DSH_DESKTOP_PORT | 期望端口(首选扫描候选,最终以 dsh 实际端口为准) | 3080 |
DSH_DESKTOP_SCAN_PORTS | 自定义扫描端口列表(逗号分隔),如 3080,8080 | 配置端口 + 常用端口 |
DSH_DESKTOP_START_TIMEOUT_MS | 等待 dsh web 就绪的超时(毫秒) | 180000 |
DSH_DESKTOP_REGISTRY_MIRROR | 覆盖镜像源 registry 地址 | https://registry.npmmirror.com |
DSH_DESKTOP_REGISTRY_OFFICIAL | 覆盖官方源 registry 地址 | https://registry.npmjs.org |
DSH_DESKTOP_SMOKE | 1 = 冒烟测试(8 秒后自动退出) | 关 |
项目结构
dsh-desktop/
├── main.js # Electron 主进程:套壳、托盘、设置、更新流程
├── updater.js # dsh 版本检查 + npm i -g 执行(不依赖 Electron)
├── build/ # icon.ico(多尺寸)、icon.png、tray.png
└── package.json # 仅 electron + electron-builder
日志
%APPDATA%\DeepSeek Harness Clean\dsh-desktop.log
(应用日志 + dsh web 输出 + npm 更新的 verbose 日志)
常见问题
- 为什么叫"三无"? 因为下载这个仓库并运行它,你的电脑只多了一样东西:一个 Chromium。 没有 dsh 代码、没有插件、没有 Node——这些全来自你的系统。
- 我的 dsh 换了端口。 不用管——壳会解析你的配置、扫描端口、复用已开实例、 或跟随 dsh 自己选择的端口。
- 更新了 dsh 但没生效? 正在运行的
dsh web还是旧进程;点成功对话框里的 「立即重启」(或重启应用)即可加载新版本。 - 端口被别的程序占了?
set DSH_DESKTOP_PORT=3081 && npm start, 或通过DSH_DESKTOP_SCAN_PORTS指定只扫自定义端口。
License
MIT