- 人工智能
- AI 应用
- AI Agent
- 桌面应用
- 插件系统
- DeepSeek
- dsh-plugin
【免费下载链接】deepseek-harness-desktop
为 DeepSeek Harness (DSH) 插件生态打造的现代化桌面端解决方案。万物皆「插件」,桌面本身也是「插件」。
DSH Desktop 是一个面向 Windows 与 macOS 的开源桌面客户端,把 DeepSeek Harness(DSH)的本地 Web UI、Host 服务与插件体系原样封装进原生桌面应用:它不修改上游源码,而是让桌面外壳(窗口、托盘、终端、更新、工作区)以 DSH 插件的形式与官方插件共用同一套组合机制。读完本文,你将掌握 DSH Desktop 的下载安装、首次配置、浏览器访问与局域网暴露的安全边界、更新与隐私机制,以及如何通过 Desktop 插件服务把第三方插件接入窗口、托盘与工作区能力。
项目定位:一个「薄」的 Electron 宿主
从架构上看,DSH Desktop 是一个刻意保持精简的 Electron 宿主。架构文档 的开篇就给出定性:它在 Electron 主进程中启动官方 DSH Host,由 Host 通过 HTTP + WebSocket 的 Web carrier 暴露普通 Web UI;carrier 默认只监听回环地址,只有在用户明确确认风险后才会暴露到局域网。值得注意的是,Desktop 并没有另起一套 renderer IPC 插件体系,也不会把原始 Electron API 直接暴露给页面——这是它与「用 Electron 套壳 Web 应用」类项目在信任模型上的根本区别。
在根目录 README 中,这种关系被概括为一句话:DSH Desktop 运行一个固定版本(pinned)的上游 DeepSeek Harness,且不修改其源码;桌面外壳本身——窗口、托盘、终端、更新与工作区——通过 DeepSeek Harness 提供的插件机制,以 DSH 插件的形式接入。从核心 Agent 到桌面外壳,整条产品链路遵循同一条规则:万物皆插件(Everything is a plugin)。
这条规则在代码库中有直接的落点:根 package.json 通过resolutions把@deepseek-ai/*全部锁定到vendor/dsh-runtime/0.1.5-rc.2(稳定版)与0.1.6-alpha.1(Beta 版)两个固定版本的 vendored 运行时,部分包还叠加了 patches 目录下的补丁,例如dsh-settings、dsh-agent-presets、dsh-web-app等——补丁只作用于 Desktop 侧需要适配的兼容点,不改变上游运行时的核心行为。
下载与安装:开箱即用,无需 Node.js
当前发布的安装包支持Windows x64与macOS Universal,无需任何额外运行环境(不要求用户安装 Node.js),下载安装后即可使用:
| 平台 | 安装方式 |
|---|---|
| Windows x64 | 运行 NSIS 安装程序,按提示完成安装 |
| macOS Universal | 打开 DMG,将 DSH Desktop 拖入 Applications |
安装包发布与升级链路在仓库中有完整的工程化支撑:dsh-plugin-desktop/scripts/下可以看到 package-win.ts、package-mac.ts、package-dir.mjs 等打包脚本,以及verify-win-installer.ts、verify-mac-release.ts、verify-packaged-runtime.ts等发布前校验脚本,保证安装包与打包后运行时的一致性与可复现性。
安装后的使用细节(插件命令、平台差异、故障排查)见 用户指南 与 FAQ。
核心特性一览
桌面(Desktop)
将上游 DeepSeek Harness 本地 Web UI 带进原生桌面应用:应用自行启动并管理本地 Harness 服务,集成系统托盘与桌面窗口,全程不需要 Node.js 安装或命令行配置。桌面窗口相关的核心实现集中在 dsh-plugin-desktop/src,例如 window-material.ts(窗口材质)、tray-icons.ts(托盘图标)与 main-window-state.ts(主窗口状态)。
插件市场(Plugin Marketplace)
DSH Community Market 已内置(Built in),提供插件发现、详情、安装与管理能力。它不依赖单一数据源,而是开放式对接多种插件数据源:任何人只要遵循公开的 schema 即可提供、接入和使用一个数据源,已有 API 则可通过经过审核的 adapter 加入为合作数据源。市场的前后端实现位于 dsh-community-market 仓库包内,包括 adapters、catalog、client 与 contracts 等模块,产品与安全设计见 DSH Community Market 文档。
移动远程控制(Mobile Remote Control)
从 iOS 与 Android 设备连接 Desktop,可在手机上启动任务、监控 Agent 进度并发送追问,自 2.0.9 起内置。桌面侧的远程控制能力在源码中对应 remote-control-offer.ts(远程控制提供方)等模块。
首次启动:Setup Wizard 与浏览器访问、局域网暴露
每个未初始化的 profile 在首次正常启动时,Desktop 会先展示原生 Setup Wizard(设置向导)。向导可配置:
- 窗口模式与系统材质(window mode / system material)
- 插件市场(plugin marketplace)
- 通知(notifications)
- 是否自动打开系统默认浏览器(open in browser)
- Web 访问范围(Web access scope)
向导也可以被跳过。值得注意的是,在向导完成或跳过之前,Host 与主 DSH 窗口不会启动;完成或跳过状态按每个 profile 分别记录,显式的恢复启动(recovery launch)仍会先进入 Recovery Assistant。
从源码看,setup-wizard-settings.ts 是 Host 启动前的偏好读取与原子写入器,完整字段包括:mode(取值为'compatibility' | 'extended' | 'advanced',见 setup-wizard-contract.ts)、macosMaterial/windowsMaterial(保留双平台偏好)、openBrowser(兼容键)、networkExposure('loopback' | 'lan')与notifications。设置文档以 YAML 或 JSON 格式持久化,目录权限0o700、文件权限0o600。
浏览器访问与 LAN 暴露的安全模型
Web 服务默认监听本地回环(loopback)接口。当启用Open in browser时,Desktop 会在 Web 服务真正就绪后把页面交给系统默认浏览器——注意这个偏好不会改变监听器的暴露范围;Desktop 设置界面会在控件下方显示实际的本地 URL。
LAN 访问是单独的 opt-in 设置,启用后才会显示当前可用的局域网 URL。这部分在源码中有清晰的实现证据:desktop-network.ts 定义了DesktopNetworkExposure = 'loopback' | 'lan',并明确「LAN 暴露仅在启用普通浏览器访问时才有意义」(desktopNetworkExposureForBrowserAccess会在未授权浏览器访问时把暴露范围强制收敛回 loopback);desktop-browser-access.ts 则为每个 Host generation 生成一个 32 字节 base64url 的随机 renderer token,通过x-dsh-desktop-renderer请求头以timingSafeEqual恒定时间比较来区分「Electron 渲染进程流量」与「普通浏览器流量」,未开启浏览器访问时普通浏览器请求一律denied。
危险警告:LAN 暴露没有任何认证。同一局域网内的任何人都可以打开 DSH 并直接操作你的电脑。只应在完全可信的网络中谨慎启用。
从 architecture.en.md 还能看到三种窗口模式的边界:Compatibility 模式只通过 overlay 槽位增加一个独立的 36 像素 Desktop 外框,官方布局、根节点、侧边栏与会话保持为下方不相关的视图;Extended 模式禁用官方根布局并注册自己的 Desktop 布局/侧边栏;Enhanced 模式保留独立根注册与紧凑的内置标题几何。桌面级确认框、警告、错误与结果不会进入 Web Client 树,而是由DesktopDialogWindow创建独立的沙箱化模态 BrowserWindow。
更新机制与隐私边界
自动更新器的版本检查请求会携带两个固定请求头:
X-DSH-Desktop-Version:当前安装版本;X-DSH-Desktop-Installation-Id:本地生成并持久化存储的随机 UUID。
其中安装 ID 的生成与存储逻辑在 desktop-installation-id.ts 中有完整的实现细节:它是一个规范的小写 UUID v4,不包含任何硬件信息派生;状态文件位于 ElectronuserData目录下的identity/installation-id,使用0o700目录权限与0o600文件权限、通过文件锁与原子写保证并发安全,且拒绝符号链接等非常规文件条目。包下载请求及其下载重定向不会携带这些请求头。
从架构文档 还可以看到完整的发布通道协议:稳定版与 Beta 版是两个独立的物理 npm 包与系统应用(Stable 使用dsh-plugin-desktop/DSH Desktop/ai.deepseek.dsh.desktop,Beta 使用dsh-plugin-desktop-beta/DSH Desktop Beta/ai.deepseek.dsh.desktop.beta),Git 分支不定义通道。版本检查与安装包下载请求携带X-DSH-Desktop-Channel: stable|beta(见 update-checker.ts),下载请求额外携带X-DSH-Desktop-Target-Version(见 update-download.ts);Beta 客户端只接受显式的channel: "beta"响应,Stable 只接受发布版 SemVer,Beta 只接受-beta.N,客户端不会静默跨通道。
插件生态:像手机应用商店一样协作
插件是为 DSH 增加能力的扩展——模型、工具、界面、工作流都可以是插件,像积木一样组合。DSH Desktop 不修改上游源码,也不是固定写死的外壳:与固定上游版本兼容的插件都能用,而桌面能力本身(窗口、托盘、终端、更新、工作区)也以同样的方式被组合、替换与演进。
生态愿景是让插件生态像手机应用商店一样运转:每个插件都基于同一套规则构建,因此可以一起安装、一起工作、互不干扰。生态共建宣言见 DSH plugin ecosystem manifesto,统一插件契约的社区草案见 DSH Community Fabric,其背后的框架与真实插件调研见 成熟插件框架研究。
对开发者的意义
与许多项目不同,这个项目本身就是 DSH 插件:桌面外壳使用的正是第三方插件所用的同一套插件组合机制。桌面插件能力现已开放,Desktop 提供了一系列服务,让插件作者能把插件与桌面能力集成:
- 查看与切换工作区(work profiles):由
desktopProfiles服务提供,实现在 profile-service.ts——current暴露当前 profile 的身份与绝对目录,list()是只读发现,select()会持久化目标并通过有序重启完成切换,create/delete提供安全的创建与删除。 - 在活动 profile 中安装、更新与移除插件:由
desktopPnpm服务提供,实现在 pnpm.ts——run()直接运行打包自带的 pnpm,runPlugin()使用打包的 DSH CLI 语义,保证 profile 初始化、相对源与 bundle 调和的一致性,且两者都通过 subprocess 服务获得完整的进程树归属。
完整的用法说明见 Desktop plugin API;设计动机与第三方边界见 Why DSH Desktop 与 插件开发文档。
与 DeepSeek Harness 的关系
DSH Desktop 是构建在 DeepSeek Harness 与 Cordis 插件模型之上的独立社区项目,与 DeepSeek 不存在从属、授权或背书关系,当前也没有任何 DeepSeek 员工或上游官方团队成员参与本仓库的开发、维护与治理(GitHub 上显示的上游贡献者源自 fork 时继承并同步的上游提交历史,仅反映提交来源)。
上游项目提供核心 Agent 能力、插件系统与 Web UI;DSH Desktop 主要提供:
- 桌面应用打包
- 本地服务的启动、停止与恢复
- 桌面窗口与系统托盘集成
- macOS 与 Windows 安装包构建与发布
- 面向桌面使用设计的界面
如果你更倾向于从命令行运行 DeepSeek Harness 或参与其核心功能开发,请优先参考上游仓库。
从源码运行与开发
桌面源码位于dsh-plugin-desktop/(Beta 变体在dsh-plugin-desktop-beta/)。外层仓库使用 Yarn,固定版本(pinned)的deepseek-harness/子模块维护自己的 pnpm workspace。在仓库根目录:
git submodule update --init --recursive corepack yarn install --immutable corepack yarn dev使用corepack yarn check运行无头(headless)门禁检查。完整构建、测试与发布边界见 架构文档 与 dsh-plugin-desktop 包 README。
从源码结构可以进一步看到工程约束:发布产物使用 Electron Builder 与app.asar,而必须为物理文件的依赖(如 pnpm、node-pty、Windows ACL/原生文件)放在app.asar.unpacked下;packaged-runtime 门禁同时检查归档条目与物理运行时条目。外层 workspace 使用 Yarn,deepseek-harness/子模块保留自己的 pnpm workspace,稳定版与 Beta 版有 variant-alignment 门禁保护两者共享的行为,两个包都不会修改上游子模块。
文档导航
普通用户从 用户指南 开始即可;开发者文档仅在需要扩展或维护应用时才需要。
| 目标 | 入口 |
|---|---|
| 安装与使用应用 | 用户指南 |
| 平台、前置条件与产品边界 | FAQ |
| 数据处理与隐私选择 | 隐私政策 |
| 项目存在的原因 | Why DSH Desktop |
| 完整文档与 README 地图 | 文档索引 |
| 插件生态宣言 | Plugin ecosystem manifesto |
| 构建普通插件或 Desktop 插件 | 插件开发 |
| 统一插件契约讨论 | DSH Community Fabric |
| 统一插件框架研究 | 框架与真实插件调研 |
| 插件市场产品与安全设计 | DSH Community Market |
| Desktop 插件可用能力 | Desktop plugin API |
| 桌面工作原理 | 架构 |
| 包级构建与发布细节 | dsh-plugin-desktop README |
生态与社区
仓库中还沉淀了围绕 DeepSeek Harness 的生态工程:除本仓库自带的 dsh-community-market(社区插件市场)与 dsh-community-fabric(统一插件契约研究)外,社区还围绕 DSH 构建了学习与分享社区、插件目录、可视化插件市场、侧边栏工作台、远程控制插件、Web UI 插件主题等各类工具(见根 README 的 Related Links 一节,可通过仓库首页查看完整清单)。
社区交流渠道包括企业微信、QQ 群与 Discord;若希望加入技术团队,可通过根 README 中的联系方式联系。
许可证与声明
本项目采用 MIT License。
“DeepSeek Harness” 是 DeepSeek AI 的注册商标,此处使用该名称仅为准确描述兼容性、技术来源及本项目与上游软件的关系。
DSH Desktop 是独立社区项目,与 DeepSeek 无关联、无赞助、无授权、无背书关系。
- 人工智能
- AI 应用
- AI Agent
- 桌面应用
- 插件系统
- DeepSeek
- dsh-plugin
【免费下载链接】deepseek-harness-desktop
为 DeepSeek Harness (DSH) 插件生态打造的现代化桌面端解决方案。万物皆「插件」,桌面本身也是「插件」。
相关推荐
DSH Desktop:基于 DeepSeek Harness 的 Windows/macOS 插件化桌面客户端全解析
DSH Desktop:基于 DeepSeek Harness 的 Windows/macOS 插件化桌面客户端全解析 DSH Desktop 是一个将 Dee
人工智能AI 应用AI Agent桌面应用插件系统DeepSeekdsh-pluginDSH Desktop 深度解析:以 Electron 为壳的 DeepSeek Harness 桌面端插件化架构与实战指南
DSH Desktop 深度解析:以 Electron 为壳的 DeepSeek Harness 桌面端插件化架构与实战指南 导读 DSH Desktop( d
人工智能AI 应用AI Agent桌面应用插件系统DeepSeekdsh-pluginVisualCppRedist AIO:快速修复 Visual C++ 运行库缺失的一站式终极方案
VisualCppRedist AIO:快速修复 Visual C++ 运行库缺失的一站式终极方案 晚上十一点,你终于下载完期待已久的 3A 大作,双击图标,屏
人工智能AI 应用AI Agent桌面应用插件系统DeepSeekdsh-plugin
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考