← 返回列表
需源码安装
在桌面窗口运行完整 Web UI,无需端口与服务器
暂不能直接安装(需源码编译或环境不满足):缺少 main/exports/bin 入口声明;仓库 package.json 标记 private,未发布到 npm,需从源码安装。 · 最近上游提交 2026/8/18 · 已提供中文文档
deepseek-harness 的桌面端插件
综合分
32.8
GitHub 分
32.8
用户评分
—
★ Stars
1
周下载量
—
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add chengxiaosheng/dsh-desktop缺少 main/exports/bin 入口声明;仓库 package.json 标记 private,未发布到 npm,需从源码安装,改用 GitHub 源安装
数据截至 2026/9/16(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
安装兼容性检查需源码安装
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✓npm 包dsh-desktop @ 0.2.0
✓Node 引擎要求 ^22.19.0 || >=24.0.0 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✗入口文件缺少入口声明
缺少 main/exports/bin 入口声明;仓库 package.json 标记 private,未发布到 npm,需从源码安装
验证方式:npm registry 存在性 + package.json 静态校验 · 最后验证 2026/9/18 18:56:49
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动
README
DSH 桌面版 - 上游项目:DeepSeek Harness —— 本产品所封装的这个开源智能体框架。 - 插件市场:dsh-market —— 内置的社区插件市场。 功能特性 零套接字主机上的完整 Web UI 在桌面窗口中运行完整的 DeepSeek Harness Web UI(会话日志、工具、模型路由、智能体循环)。主机从不绑定套接字:一个虚拟的 webServer 拦截器在无端口的情况下提供官方路由注册契约,渲染器传输客户端依托 Electron IPC 桥接而非 HTTP/WebSocket,并且每一条主机路由(/api 平面、会话日志下载以及任何插件路由)都在进程内分发。官方的 modules、ui-theme、web-runtime 和 frontend-static 行原样激活。该拦截器报告一个稳定的虚拟端口,而主机侧的虚拟主机传输则在进程内为那些读取 webServer.port 并从主进程访问框架的插件(dsh-im 及类似插件)提供服务。 内置插件市场 内置 dshmarket 作为默认插件市场:打开设置 → 插件市场,即可浏览、搜索并一键安装社区插件。该市场的 /dsh-market/ 路由通过进程内主机分发,桌面端提供该市场的主机契约(desktopProfiles + desktopPnpm)。安装会运行真正的 dsh plugin --profile desktop … CLI,它从系统 PATH 中驱动 pnpm——桌面端会将标准用户工具位置(Homebrew、~/.local/bin、~/.local/share/pnpm、~/.npm-global、~/.volta 以及 nvm)追加到该 PATH 中,因此安装插件需要 pnpm 位于上述某个标准位置。已安装的插件会在下次启动时通过一个锚定配置文件的加载器钩子加载。 系统托盘与关闭到托盘 系统托盘(显示 / 重启主机 / 退出)始终存在,其标签会跟随应用的实际显示语言。常规设置中的一项偏好设置控制关闭窗口时的行为:退出应用,或隐藏到托盘并在后台保持主机运行。 进程内主机重启 无法热加载的更改(例如需要重启的市场安装)通过设置 General 部分中的 Restart host 或托盘中的 Restart host 项生效:宿主在进程内销毁并重新启动,IPC 桥接被重新安装,渲染器重新加载——Electron 进程、窗口和托盘保持运行。 随附的 Agent 预设 桌面端组合了随附的 agent-preset 根目录,因此名单与 dsh web 一致:standard、code、minimal 和 cordis 预设以 system 信任级别解析,会话启动永远不会因 preset not found 而失败。 启动自愈 损坏的插件安装永远不会阻止应用打开:在挂载之前,无法解析其包的 bundle 会从 profile manifest 中移除(并附带警告),应用会在下一次干净启动时恢复。 运行时模式 从源码运行(开发) pnpm install # resolves @deepseek-ai/* from the dist-tags recorded in upstream.json pnpm build # compile the TypeScript sources (tsc + esbuild + the verify:upstream gate) pnpm check # strict type-check + tests for every package pnpm start # build, then launch the Electron app 打包应用 dsh-plugin-desktop 通过 electron-builder 提供可安装的构建产物: pnpm package:dir # unsigned unpacked app for the current host (dist/-unpacked) pnpm dist:mac # macOS DMG (on a macOS host) pnpm dist:win # Windows x64 NSIS installer (on a Windows host) pnpm dist:linux # Linux AppImage + deb + rpm (on a Linux host) 无头启动验证 传输层经过无头验证——一个假桥接和一个 profile 启动在无浏览器、无 socket、无窗口的情况下运行: pnpm -r test # headless boot proof + client carrier tests Electron 窗口是运行在测试所启动的同一进程内宿主之上的可运行外壳。 持续集成 GitHub Actions 对每次提交进行门禁检查并生成安装程序: - .github/workflows/ci.yml — 在每次推送到 master 和每个拉取请求时:pnpm check(对每个包进行类型检查、编译和测试)以及无头 package:dir 打包验证。 - .github/workflows/build.yml — 在 v 标签、手动触发或触及打包文件的 master 推送时:在原生运行器上构建 mac DMG、Windows x64 NSIS 和 Linux AppImage + deb + rpm,并上传未签名的构建产物。 CI 安装工作区的方式与本地检出相同——从 upstream.json 中的 dist-tags 全新解析 @deepseek-ai/,因为 pnpm-lock.yaml 未被提交。 版本管理与发布 版本遵循语义化版本,每个发布都会附带一个附带安装程序的 GitHub Release。提交信息遵循约定式提交:feat 提升次版本号,fix 提升补丁版本号,BREAKING CHANGE 提升主版本号。 流程是自动的: 1. 合并到 master —— .github/workflows/release-please.yml 会检查自上次发布以来的提交,并打开一个 release PR,该 PR 会提升每个 package.json 中的版本号并更新 CHANGELOG.md。 2. 合并该 release PR —— release-please 会创建 vX.Y.Z 标签和 GitHub Release。 3. 标签推送会触发 .github/workflows/build.yml,该工作流会在原生运行器上构建 macOS DMG、Windows x64 NSIS 以及 Linux AppImage + deb + rpm,并将它们(外加一个 SHA256SUMS 校验和文件)附加到 Release 中。 用户从仓库的 Releases 页面下载应用:macOS 选择 DMG,Windows 选择 -Setup.exe,Linux 选择 AppImage/deb/rpm。 截图 截图由维护者添加。下面的区块是占位符 —— 将图片放入 docs/screenshots/ 并更新路径。 主窗口 主窗口:桌面外壳中完整的 DeepSeek Harness Web UI。 插件市场 内置插件市场:浏览、搜索和一键安装。 参考资料 - 上游项目 —— DeepSeek Harness(dsh):此桌面应用所封装的开源 agent harness。本仓库使用从 upstream.json 中记录的 dist-tags 解析出的已发布 @deepseek-ai/* 包(dsh 系列使用 next,cordis 框架使用 latest);此处没有上游源代码检出。 - 插件商店 —— dsh-market(dshmarket):社区插件市场。桌面应用将其作为默认市场随附;发布到 awesome-dsh-plugin 注册表的第三方插件会出现在那里。 技术概览 零套接字传输 | 组件 | 行 / 包 | 替代 | |---|---|---| | 无套接字 Web 服务器 | dsh-plugin-desktop/webserver | 官方 webserver 行(已禁用) | | 渲染进程线路客户端 | dsh-plugin-desktop-connection | 官方 connection 行(已禁用)—— node 部分重新导出上游,客户端部分走 Electron IPC | | 启动清单 | Electron preload(window.__DSH_BOOT__) | 服务器索引 tap | | RPC 分发 | ipcMain(connection.createSharedFetchHandler + apiProxy) | HTTP/WebSocket 载体 | | 虚拟主机 HTTP 代理 | dsh-plugin-desktop-connection 客户端 + dispatchHttpRequest(主进程) | 主机 HTTP 表面 —— 任何 webserver 路由都通过 IPC 在进程内分发 | | 虚拟主机 WebSocket 桥接 | dsh-plugin-desktop-connection 客户端 + websocket-bridge(主进程) | 主机 WebSocket 表面 —— 升级路由通过 IPC 在进程内提供服务 | | 主机侧虚拟主机传输 | host-bridge(主进程) | 主机侧表面 —— 读取 webServer.port 并通过 fetch/WebSocket 访问 harness 的插件会在进程内得到服务(dsh-im 及类似插件) | 仓库布局 upstream.json 上游来源(dist-tags + 固定副本版本/提交) packages/ dsh-plugin-desktop/ shell 行、虚拟 Web 服务器、Electron 主进程、打包 dsh-plugin-desktop-connection/ 基于 Electron IPC 的渲染进程通信客户端 docs/ 架构图 .agents/notes/ Agent Notes(决策记录) 模型体验 桌面端是标准 DeepSeek Harness agent 之上的展示与传输层。它不改变任何面向模型的行为:底层运行的是相同的会话日志、工具、模型路由和 agent 循环。传输方式(用 Electron IPC 代替 HTTP/WebSocket)以及无套接字主机对模型而言是不可见的。 已知限制 - Electron shell 是最小化的:一个窗口加上 IPC 桥接。终端、配置文件管理、更新和签名发布均被推迟。 - 主机重启是手动的(通过设置操作和托盘项);自动触发有待于一个持久的、主机可读的信号。 - 渲染进程的 ConnectionController 是上游源码的固定副本;当安装的家族版本不一致时,verify:upstream 会使构建失败,从而强制从记录的提交重新应用。 - 桌面端保持零套接字主机;deepseek-harness-desktop 项目是用于对比的替代回环载体设计。 - 主机侧的虚拟主机传输提供标准 Web API(fetch/WebSocket);如果某个插件通过原生 node:http/https 访问 harness(例如未使用 fetch 适配器的 axios),则没有拦截路径,需要真实套接字。
扫码进群