Back to home@lansi-ai

dsh-desktop

把 DeepSeek Harness 做成一个真正的桌面应用:Electron 主进程内嵌 Cordis Host(与官方 Web 版同内核、零移植), 渲染进程加载官方 Web UI 发行物(file:///自定义协议 + IPC 桥接,不开放 HTTP 端口), 所有桌面原生能力(托盘、全局热键、系统通知、剪贴板、开机自启、协议唤起、多窗口)以 host 插件 形态注入运行时, 与官方「一切皆插件」的架构同构——不是给网页套壳,而是把桌面能力变成可装配、可卸载、可审查的插件树。 AI 驱动开发声明

Stars
1
Language
TypeScript
Created
Aug 25, 2026
Updated
Aug 26, 2026

Introduction

dsh-desktop — DeepSeek Harness 桌面客户端(非套壳路线)

状态:M1 实施中 — 脚手架已就绪(Electron 44 + TS strict + ESLint),主链路由 src/desktop-shell 起步。 目标版本基线:@deepseek-ai/dsh 0.1.0-rc.8(本地检出权威基线;GitHub Latest rc.12 差异待 M4 核查)。

当前优先级(2026-08 用户确认):先做「把 DSH 做成桌面应用」的技术方案,主面复用官方 Web UI 发行物; 自绘 Desktop UI(docs/13-ui-design.mdADR-006暂缓为二期可选, 本轮不纳入主线。下文「定位/判定/路线」均以「官方 UI 复用 + 内嵌宿主 + IPC 载波」为默认方案。

一句话定位

把 DeepSeek Harness 做成一个真正的桌面应用:Electron 主进程内嵌 Cordis Host(与官方 Web 版同内核、零移植), 渲染进程加载官方 Web UI 发行物file:///自定义协议 + IPC 桥接,不开放 HTTP 端口), 所有桌面原生能力(托盘、全局热键、系统通知、剪贴板、开机自启、协议唤起、多窗口)以 host 插件 形态注入运行时, 与官方「一切皆插件」的架构同构——不是给网页套壳,而是把桌面能力变成可装配、可卸载、可审查的插件树

AI 驱动开发声明

本项目(含 docs/ 设计文档、.rules/ 工程规则、src/ 代码、scripts/ 验证脚本)全程由 AI 驱动编写, 迭代过程基于 .trae/rules/workflow.md 的协作 SOP 与 docs/pitfalls.md 的实战踩坑记录进行。 开发中遵循以下原则:

  • 契约优先:所有 IPC 契约 / zod Schema / DTO 先定义于 src/types/,作为唯一类型源头,preload / 桥 / 测试类型均由推导获得。
  • 规则驱动.trae/rules/ 下的核心规范(core-standards / architecture / active-context / git-commit-guide / workflow)约束编码、放置、提交与看板同步。
  • 可复现排障:开发中遇到的环境/架构问题与解法沉淀于 docs/pitfalls.md,供后续会话与协作者查阅复用。
  • 质量自检链:交付前必过 typecheck / lint / build + 自动化验证脚本(scripts/verify-*.cjs)全绿,并经实机验收。

说明:代码为 AI 生成 + 人工决策审阅的产物;架构与技术选型(Electron 内嵌 Host、IPC 载波零端口、官方 UI 复用、插件化桌面能力)基于 docs/ 与 ADR 的评审结论确定。

「非套壳」判定标准(本项目红线)

维度套壳(反面教材)本项目(目标)
Host 进程外部子进程 dsh web,壳只是浏览器主进程内嵌 Cordis Host,生命周期与应用合一,可编程启停
传输直接加载 http://127.0.0.1:3080官方预留的 Electron 载波插槽:file:// dist + AbstractApiClient IPC 桥(doFetch 覆写),零端口
原生能力无 / 壳层脚本零散处理每个能力一个 host 插件(desktop-tray / desktop-shortcuts / …),经 cordis.patch.yml 装配
UIWebView 原样 iframe复用官方 Web UI 发行物,经官方槽位注入桌面侧功能(二期可选自绘主面,见 ADR-006)
旧插件无视host 半零改动可用(desktopRoutes 等价面);client 半经零端口 bundle 兼容面保留(ADR-007)
可审查性壳行为不可见桌面动作进会话轨迹、权限走 approval 服务、日志统一
分发安装包 + 手动 dsh plugin一包涵盖 runtime + 官方 UI dist + 插件 + 皮肤 + 更新,零外部依赖(仅 Electron 运行时)

文档导航

文档内容
docs/01-research.mdDSH 架构调研:Cordis、Host/Client 分层、四象限 RPC、客户端插件加载、SDK、官方/社区桌面现状
docs/02-requirements.md产品定位、目标用户、功能需求矩阵(P0/P1/P2)、非功能需求
docs/03-routes.md技术路线对比:Electron 内嵌 Host + 官方 UI 复用(推荐)/ Tauri 2 / SDK 自研 / PWA / 纯套壳;选择论证
docs/04-architecture.md总体架构:进程模型、模块划分、数据流、与官方 layering 模型的对齐
docs/05-host-plugins.md宿主插件设计:desktop bundle、ctx.desktop.* 服务接口、各能力插件规格
docs/06-client-plugins.md客户端插件设计:官方 UI 槽位注入 + 零端口 bundle 兼容面(含旧插件承接)
docs/07-desktop-shell.md桌面外壳设计:主进程装配(boot())、IPC 桥协议、官方 dist 装载、窗口管理、打包分发、自动更新
docs/08-security.md安全与信任模型:无端口、renderer 隔离、权限、签名、外链白名单
docs/09-roadmap.md里程碑 M1–M6 与任务拆解、验收标准
docs/10-development.md开发环境、构建链路、调试、测试、与上游同步
docs/11-risks.md风险登记与控制措施
docs/12-references.md全部依据:本地源码路径 + 官方/社区 URL 引用 + 现有插件 API 面盘点
docs/13-ui-design.md(二期可选) Desktop-First 自绘 UI 愿景——暂缓,主线不依赖
docs/adr/架构决策记录:ADR-001 选 Electron · ADR-002 宿主内嵌 · ADR-003 IPC 载波 · ADR-004 装配模型 · ADR-005 版本钉死 · ADR-006 自绘主面(暂缓·可选) · ADR-007 旧插件兼容

关键结论速览

  1. 官方已为桌面预留架构插槽:GUI 分层说明明确「未来 Electron 应用复用同一套 web client 包,仅换 IPC fetch 载波」; webserver 文档明确「只服务浏览器:Electron 用 file:// 加载 dist,fetch 走 IPC 桥」。
  2. 社区桌面(sdkwork-ai/deepseek-harness-desktop 等)已实现「Electron + IPC + 官方 Web profile + 打包分发」—— 它们解决的是分发与桌面体验,未深入宿主内嵌与能力插件化。本项目的差异化在第二层深度。
  3. 推荐方案(当前主线):Electron 主进程内嵌 Host(dsh-app-boot.boot() 装配 desktop profile), renderer 加载官方 UI dist,传输用官方预留的 IPC 载波;桌面能力全部做成 host 插件。
  4. 旧插件不丢弃dsh-terminal / dsh-rule-manager / dsh-restart 的 host 半经 desktopRoutes 等价面零改动可用, client 半经零端口 bundle 兼容面保留(ADR-007)。
  5. 红线:默认零 HTTP 端口;一切与官方 API 的耦合点(AbstractApiClient.doFetchBootSeams.loadBundlewebServer 路由、bundle patch)都收敛在少数可替换文件,随上游 rc 版本钉死。
  6. UI 差异化(二期可选):见 13-ui-design.mdADR-006——本轮明确不纳入主线。

目录规划(未来实现期)

dsh-desktop/
├─ docs/                  # 本文档集(当前阶段唯一内容)
├─ shell/                 # Electron 应用(main / preload / IPC 桥 / 协议 / 窗口/托盘)
├─ bundle/                # desktop profile 的 cordis.patch.yml(dsh.bundle 声明)
├─ packages/
│  ├─ desktop-host-*      # 桌面能力宿主插件(tray/shortcuts/notifications/clipboard/compat/…)
│  ├─ desktop-client-*    # 官方 UI 槽位注入的客户端插件
│  └─ desktop-*           # 共享库(IPC 协议类型、桥接、配置 schema)
├─ scripts/               # 构建(dist/shell)/ 打包 / 签名 / 更新产物脚本
└─ tools/                 # 与上游 dsh 仓库同步的工具

许可证与归属

设计文档按 MIT 发布(与 DeepSeek Harness 一致)。本项目为独立社区项目,与 DeepSeek 官方无附属关系; 所有官方商标/名称的使用遵循其品牌指引。