MoneShadow/DeepSeek-Harness-linux- ↗★ 1
dsh-desktop
DSH Desktop — 内嵌官方 DeepSeek Harness Web UI 的桌面客户端(含自动更新)
AI 분석
基于 Electron 封装的 Linux 桌面端,提供自动更新、自愈及视觉辅助。适合习惯桌面应用交互、使用 Linux 系统的 DSH 用户。
설치
검증된 bundle이 없거나 호환성 검사에 실패했습니다. 먼저 저장소 설명을 읽어 주세요. 전체 README 읽기 ↗
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