MoneShadow
DeepSeek-Harness-linux-
一个基于官方WebUI二改的Linux桌面端,内置了一个外挂视觉插件(需手动接入API Key),已经迭代了四个版本,可能还是有些小毛病,不过目前用下来暂时没有什么大问题。
- Stars
- 1
- Language
- JavaScript
- Created
- Aug 14, 2026
- Updated
- Aug 14, 2026
Introduction
DSH Desktop
DeepSeek Harness 的 Linux 桌面客户端(Electron 外壳)。内嵌官方 DeepSeek Harness Web UI,附带自动更新、稳定性自愈与视觉辅助插件。
设计哲学
不 fork、不魔改官方 dsh——纯外壳封装:
- 应用启动时 spawn 官方
dsh --profile web(随机 loopback 端口),窗口内 iframe 嵌入官方 Web UI - 官方 dsh 升级后自动跟进(内置更新管理器)
- 本仓库不包含任何官方 dsh 代码(官方 CLI 由用户自行安装,MIT 许可)
功能
- 官方 Web UI 内嵌:原生 Harness 界面,会话/工具/工作流全支持
- 自动更新:检查
@deepseek-ai/dsh@next(或 latest 通道)→ 一键安装 → 失败自动回滚 - 稳定性自愈:Web 引擎意外退出自动重启(指数退避);引擎日志面板
- 单实例锁:重复启动聚焦已有窗口,不会起双引擎
- 设置面板(顶栏 ⚙):更新偏好、视觉助手配置、引擎日志、关于;ESC 关闭
- 视觉辅助插件:让没有视觉能力的主模型通过 OpenAI 兼容视觉 API "看图"(见下)
- 无边框窗口:自绘顶栏 + 窗口控制按钮
环境要求
- Linux(实测 Fedora + Wayland/niri;X11 应可用)
- Node.js ≥ 22、全局安装的 @deepseek-ai/dsh(
npm install -g @deepseek-ai/dsh@next) - 凭据:
~/.dsh/.credentials.yaml(官方 dsh 读取,本应用不接触密钥)
安装与运行
一键安装
git clone https://github.com/MoneShadow/DeepSeek-Harness-linux- && cd DeepSeek-Harness-linux-
./install.sh # 全自动:环境检查 → dsh CLI → 依赖 → 视觉插件 → AppImage → 桌面入口 → 图标
分步模式:
./install.sh --no-build # 跳过打包(仅依赖+插件)
./install.sh --no-plugin # 跳过插件(仅依赖+构建)
npm start # 开发模式
npm run selfcheck # 自检模式(截图+诊断,跑完自动退出)
npm run selfcheck-crash # 自检 + 引擎崩溃自愈演练
npm test # 单元测试(28 用例)
npx electron-builder --linux AppImage # 手动打包
⚠️ install.sh 首次安装官方 dsh 时执行全局
npm install -g,安装期间请勿中断 (中断会损坏全局依赖树)。若误中断,执行npm install -g @deepseek-ai/dsh@next --force修复。
视觉助手插件(dsh-plugin-vision)
给主模型装上"眼睛":注册 vision_describe 工具,通过 OpenAI 兼容视觉 API 描述图片(本地路径 / file:// / http(s) URL)。
可用性分层:
- 工具层:引擎侧注册,官方 Web UI、桌面端、headless 均可用
- 配置层:桌面端设置面板「视觉助手」区块(读写
~/.dsh/settings.yaml的vision:段,保存即时生效,无需重启);官方 UI 的插件配置区仅渲染内置卡片,第三方插件暂不显示
安装插件(需先退出 DSH Desktop / 停用该 profile 的引擎):
./scripts/deploy-plugin.sh web # 挂载到 web profile
# 验证:dsh --profile web --dump-config | grep -A8 'id: vision'
⚠️ 不要使用
dsh plugin add file:安装本插件——它会向 profile 注入@deepseek-ai/dsh-tools依赖副本,与全局树形成双实例,导致工具调用崩溃 (Cannot read properties of undefined (reading 'prepare'))。deploy-plugin.sh采用正确挂载方式(全局树实体 + profile 软链 + 清副本)。
配置(设置面板或手动编辑 ~/.dsh/settings.yaml):
vision:
enabled: true
baseURL: https://api.openai.com/v1 # 任意 OpenAI 兼容服务(通义千问/智谱/SiliconFlow…)
apiKey: "" # 视觉模型密钥
model: gpt-4o-mini # 如 qwen-vl-max / glm-4v
timeoutMs: 60000
关闭 enabled 时工具仍注册,但调用返回引导提示,主模型会据此提醒用户开启。
目录结构
main.js # 主进程:引擎生命周期/更新管理/自愈/窗口/IPC
preload.js # contextBridge 安全桥
lib/pure.js # 纯函数(版本比较/ANSI/URL 同源判定)
lib/vision-settings.js # 视觉助手配置读写(settings.yaml 行级手术)
renderer/ # 顶栏/设置面板/日志/iframe(原生 JS,无框架)
plugins/dsh-plugin-vision/ # 视觉辅助插件(独立 npm 包形态)
scripts/deploy-plugin.sh # 插件部署(自动探测 dsh 安装位置)
scripts/sync-icons.sh # 图标同步系统缓存(换图标后必跑)
scripts/panel-shot.js # 设置面板截图/断言工具(UI 迭代验证)
tests/ # node:test 单元测试
已知限制
- 仅打包 Linux AppImage(代码跨平台性待 mac/win 真机验证,见 TODO)
- 官方 UI 插件配置区仅渲染三张内置卡片,第三方插件需自带浏览器组件才能显示
- 应用自身(AppImage)无自更新机制(dsh 引擎的更新是自动的)
版权与致谢
- 应用图标为 DeepSeek 官方 logo(
assets/icon-source.jpg/assets/icon.png),版权归 DeepSeek 所有,仅用于本应用标识 - DeepSeek Harness(MIT)——官方 CLI 与 Web UI;官方项目处于开发者预览阶段,破坏性变更频繁,本应用通过自动更新机制跟进
- 依赖许可证清单见 THIRD_PARTY_NOTICES.md
社区
- 插件相关问题欢迎在官方 Discussions 交流
- 本仓库话题:
dsh-plugin、deepseek-harness、electron、linux