zeckauh
DSH_Desktop
DeepSeek桌面版,支持Windows 10/11(x64)、macOS、Linux(x64)不同操作系统一键安装
- Stars
- 1
- Language
- JavaScript
- Created
- Aug 15, 2026
- Updated
- Aug 15, 2026
Introduction
DeepSeek Harness Desktop
👇 快速开始:去 GitHub Releases 下载对应平台的安装包,安装后双击即可使用,无需安装 Node.js。
把官方命令行 @deepseek-ai/dsh 封装成真正的跨平台桌面客户端:
- 原生窗口运行 —— DeepSeek Harness 界面直接显示在应用窗口里,不再跳转到浏览器;
- 系统托盘 / 原生菜单 / 单实例 / 窗口状态记忆 —— 体验接近 VS Code / Codex 这类桌面 IDE;
- 内置 dsh 运行时 —— 打包进应用,首次启动无需联网下载;没有安装 Node.js 也能运行;
- 一键安装 —— Windows
.exe、macOS.dmg、Linux.AppImage/.deb; - 自动更新 —— 启动后后台检查新版本,一键重启安装。
✨ 功能特性
| 特性 | 说明 |
|---|---|
| 🖥️ 原生窗口 | Harness 界面内嵌应用窗口,无地址栏/标签页/浏览器外壳 |
| 🧩 系统托盘常驻 | 关闭窗口最小化到托盘,服务后台继续运行 |
| 📦 内置运行时 | 应用自带 Electron 与 dsh,最终用户零依赖 |
| 🔄 自动更新 | 基于 GitHub Releases,发现新版自动下载、一键安装 |
| 🧠 窗口状态记忆 | 记住位置/大小/最大化状态;显示器变更时自动避让屏幕外 |
| 🛡️ 单实例 | 重复启动只聚焦已有窗口 |
| 🔗 外链安全 | 窗口内外部链接自动转默认浏览器打开 |
| 🔍 插件搜索 | 顶部菜单「搜索」按 topic: dsh-plugin 搜索 GitHub 第三方插件 |
| 🌍 三平台 | Windows x64 / macOS (Intel + Apple Silicon) / Linux x64 |
一、下载与安装(面向最终用户)
Windows 10/11
- 下载
DeepSeek Harness Desktop-<版本>-windows-setup.exe; - 双击运行安装程序(可自定义安装目录,自动创建桌面/开始菜单快捷方式);
- 双击「DeepSeek Harness」图标即可启动。
若 SmartScreen 提示「未知发布者」,点击「更多信息 → 仍要运行」即可(应用未做代码签名)。
macOS(Intel / Apple Silicon)
- 下载对应架构的
DeepSeek Harness Desktop-<版本>-mac-<x64|arm64>.dmg; - 双击打开 DMG,把应用拖入「应用程序」;
- 首次打开如被 Gatekeeper 拦截,右键应用 →「打开」,再点「打开」确认。
Linux(x64)
- AppImage:下载后执行
chmod +x *.AppImage再双击运行,无需安装; - deb(Debian/Ubuntu):
sudo apt install ./DeepSeek\ Harness\ Desktop-<版本>-linux-amd64.deb。
二、使用
- 启动后应用会在后台拉起 Harness 服务,就绪后自动在窗口内显示界面;
- 关闭窗口 = 最小化到系统托盘(服务继续后台运行),右键托盘图标可「打开界面 / 退出」;
- 「退出」会停止后台服务;再次启动即可恢复;
- 菜单栏「帮助 → 打开日志目录」查看运行日志;
- 插件搜索:菜单栏「搜索 → 🔍 搜索 dsh-plugin 插件」可搜索 GitHub 上的第三方插件
(
topic: dsh-plugin,支持关键词过滤、按 Star 排序);「搜索 → 浏览 dsh-plugin 插件库」 可直接打开 GitHub 插件主题页; - 自动更新:安装版启动后会在后台检查新版本(更新源为 GitHub Releases), 发现新版本自动下载,完成后提示一键重启安装;也可通过菜单「帮助 → 检查更新」手动检查;
- 数据与配置仍保存在
~/.dsh(DSH_HOME),与命令行版互通。
三、配置
运行一次后,应用数据目录下会生成可编辑的 config.json:
| 平台 | 位置 |
|---|---|
| Windows | %APPDATA%\DeepSeek Harness Desktop\config.json |
| macOS | ~/Library/Application Support/DeepSeek Harness Desktop/config.json |
| Linux | ~/.config/DeepSeek Harness Desktop/config.json |
{
"port": 3080,
"host": "127.0.0.1"
}
出于安全,
dsh web只绑定127.0.0.1,host请保持默认。
四、从源码构建(面向开发者)
环境要求:Node.js 22+(仅构建需要;最终用户不需要)。
# 1. 安装依赖
npm install
# 2. 生成跨平台图标(首次/修改图标后)
npm run icons
# 3. 本地开发运行(原生窗口 + 开发者工具)
npm run start:dev
# 4. 打包安装包
npm run dist:win # Windows -> dist/*.exe
npm run dist:mac # macOS -> dist/*.dmg(需在 macOS 上执行)
npm run dist:linux # Linux -> dist/*.AppImage, dist/*.deb
# 5. 无 GUI 冒烟测试(验证服务拉起,不创建窗口)
npm run smoke
自动构建(GitHub Actions)
推送 v* 标签(或手动触发 workflow)会在三个平台并行构建并发布到 GitHub Release:
git tag v1.0.0 && git push origin v1.0.0
产物:Windows -setup.exe、macOS -dmg(x64/arm64)、Linux .AppImage + .deb。
五、工作原理
启动应用
└─ Electron 主进程
├─ ServerManager 解析运行环境(内置 dsh > npx 缓存 > npx 下载)
├─ 后台拉起 `dsh web --port <port>`
├─ 轮询端口就绪
└─ BrowserWindow 加载 http://127.0.0.1:<port>(原生窗口,非浏览器)
- 运行环境优先级:内置 dsh + 系统 Node → 内置 dsh + Electron 内置 Node(无系统 Node 时) → npx 缓存 → npx 联网下载;
- 若启动时端口已被占用(例如你手动跑着
npx @deepseek-ai/dsh web),应用直接连上现有实例、只显示窗口,退出时不会误杀它; - 单实例锁:重复双击只会聚焦已有窗口,不会重复启动。
六、项目结构
electron/
main.js 主进程:窗口/托盘/菜单/单实例/生命周期
server-manager.js 跨平台服务管理(定位运行环境、拉起/看护/停止 dsh)
updater.js 自动更新(electron-updater + GitHub Releases)
config.js 配置读取
window-state.js 窗口状态持久化
menu.js 原生菜单
preload.js contextBridge 暴露的只读桌面信息
loading.html 启动加载页
error.html 启动失败页
assets/ 运行时图标(由 scripts/generate-icons.js 生成)
plugins-search.js GitHub 插件搜索(主进程:GitHub Search API + IPC)
inject-plugin-search.inject.js 注入「设置 → 插件」页面的搜索面板(浏览器端)
scripts/
generate-icons.js 零依赖生成 ico/icns/png 图标
smoke.js 无 GUI 冒烟测试
build/
entitlements.mac.plist
.github/workflows/build.yml 三平台自动构建与发布
七、历史说明
早期的「后台启动 + 打开浏览器」Windows 脚本封装(launcher.js、start.vbs、stop.vbs、
logs.vbs、tray.ps1、setup.ps1、uninstall.ps1、refresh-icon.ps1 及 assets/dsh.ico、
node-path.txt)已被 Electron 客户端完全取代,并已从仓库移除。
常见问题
Q:应用窗口里显示的是网页吗? 是 Harness 的本地 Web UI,但它运行在应用自带的原生窗口内(无地址栏、无标签页、无浏览器外壳), 并拥有独立应用图标、菜单栏、托盘与单实例行为,等同于一个桌面客户端。
Q:为什么没有代码签名 / 报「未知发布者」?
发布未配置代码签名证书。企业/正式分发时可在 electron-builder 配置中接入
Windows 代码签名、Apple Developer ID 公证等,见 electron-builder 文档。
🤝 贡献
欢迎任何形式的贡献:报 Bug、提需求、改进代码、完善文档。
反馈问题 / 提需求
在 Issues 新建 issue,请选择对应的模板 (Bug 报告 / 功能建议),并尽量附上:
- 操作系统与版本、应用版本(菜单「帮助 → 关于」可见)
- 复现步骤、期望行为、实际行为
- 运行日志(菜单「帮助 → 打开日志目录」)
提交代码
- Fork 本仓库并克隆到本地;
- 创建功能分支:
git checkout -b feature/你的功能; - 修改代码,并保证
npm run smoke冒烟测试通过; - 提交并推送到你的 Fork,然后发起 Pull Request(请填写 PR 模板)。
开发环境
npm install # 安装依赖
npm run icons # 生成图标(首次/修改图标后)
npm run start:dev # 本地开发运行
npm run smoke # 无 GUI 冒烟测试
📄 许可证
MIT © DH_Desktop contributors
使用本项目代码请保留 MIT 版权声明(LICENSE 文件或版权注释)。