deepseek-harness
deepseek-ai
DeepSeek Harness: Everything is a Plugin.
PROJECT TOPICS
INSTALL REFERENCE
dsh plugin --profile web add github:zeckauh/DSH_Desktop
该命令指向仓库当前默认分支;尚无绑定当前 commit 的完整验证结果。
PROJECT README
👇 快速开始:去 GitHub Releases 下载对应平台的安装包,安装后双击即可使用,无需安装 Node.js。
把官方命令行 @deepseek-ai/dsh 封装成真正的跨平台桌面客户端:
.exe、macOS .dmg、Linux .AppImage / .deb;| 特性 | 说明 |
|---|---|
| 🖥️ 原生窗口 | Harness 界面内嵌应用窗口,无地址栏/标签页/浏览器外壳 |
| 🧩 系统托盘常驻 | 关闭窗口最小化到托盘,服务后台继续运行 |
| 📦 内置运行时 | 应用自带 Electron 与 dsh,最终用户零依赖 |
| 🔄 自动更新 | 基于 GitHub Releases,发现新版自动下载、一键安装 |
| 🧠 窗口状态记忆 | 记住位置/大小/最大化状态;显示器变更时自动避让屏幕外 |
| 🛡️ 单实例 | 重复启动只聚焦已有窗口 |
| 🔗 外链安全 | 窗口内外部链接自动转默认浏览器打开 |
| 🔍 插件搜索 | 顶部菜单「搜索」按 topic: dsh-plugin 搜索 GitHub 第三方插件 |
| 🌍 三平台 | Windows x64 / macOS (Intel + Apple Silicon) / Linux x64 |
DeepSeek Harness Desktop-<版本>-windows-setup.exe;若 SmartScreen 提示「未知发布者」,点击「更多信息 → 仍要运行」即可(应用未做代码签名)。
DeepSeek Harness Desktop-<版本>-mac-<x64|arm64>.dmg;chmod +x *.AppImage 再双击运行,无需安装;sudo apt install ./DeepSeek\ Harness\ Desktop-<版本>-linux-amd64.deb。topic: dsh-plugin,支持关键词过滤、按 Star 排序);「搜索 → 浏览 dsh-plugin 插件库」
可直接打开 GitHub 插件主题页;~/.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
推送 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>(原生窗口,非浏览器)
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 报告 / 功能建议),并尽量附上:
git checkout -b feature/你的功能;npm run smoke 冒烟测试通过;npm install # 安装依赖
npm run icons # 生成图标(首次/修改图标后)
npm run start:dev # 本地开发运行
npm run smoke # 无 GUI 冒烟测试
MIT © DH_Desktop contributors
使用本项目代码请保留 MIT 版权声明(LICENSE 文件或版权注释)。
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: 无有效分类标签。