Socialist-Sister
dsh-deck
DSH Deck — community desktop shell for DeepSeek Harness (dsh web profile in an Electron window; unofficial)
- Stars
- 1
- Language
- TypeScript
- Created
- Aug 15, 2026
- Updated
- Aug 15, 2026
Introduction
DSH Deck (dsh-deck)
⚠️ 非官方项目 / Unofficial:本项目由社区开发,与 DeepSeek 官方无隶属或背书关系。DeepSeek 及鲸鱼标志为其权利人的商标;本项目的临时图标仅为生态内的暂用占位,公开发布成熟前将替换为自有设计。上游为 deepseek-ai/deepseek-harness(MIT)。
DeepSeek Harness 的桌面壳(Deck):以 Electron 加载官方 @deepseek-ai/dsh web profile,v1 与官方 Web 保持功能与 UI 完全一致(同一份代码、同一份组合),不 fork 上游。
状态
- M1:PoC — spawn 官方 CLI、JSON 就绪发现、窗口加载官方 UI、stdin 优雅停机、孤儿自愈、冷首启缓存预热(详见
PLAN.md§13) - M2:桌面壳 — 单实例锁、托盘、窗口状态记忆、外链/下载接管、主题跟随、窗口控制与顶栏碰撞规避(§14 及后续记录)
- M3:NSIS 安装包、日志落盘、自有图标定稿
与官方 Web 的差异(仅桌面壳层;页面功能与数据 100% 一致)
数据完全共用 ~/.dsh,页面 UI 不做任何改动;以下均为桌面壳自身的行为:
| 差异点 | 说明 |
|---|---|
| Session log 按钮 | 官方会话顶部的 "Session log" 标签被隐藏,功能迁移到侧栏会话行三点菜单(⋯)里的"会话日志"(与官方菜单项同观感、同图标规范) |
| 窗口 chrome | 无边框窗口 + 自绘最小化/最大化(含还原态图标)/关闭按钮;按钮随主题反色、官方弹窗打开时变暗且禁点;顶部隐形拖拽条;无菜单栏(保留 Ctrl+R,DevTools 仅 dev 版) |
| 外链与下载 | 对话中的外链一律转系统浏览器打开(窗口永不外漂);下载走保存对话框 |
| 窗口行为 | 单实例锁(二次启动聚焦已有窗口);关闭按钮隐藏到托盘(托盘"退出"才真正退出);窗口位置/大小记忆 |
| 新会话默认目录 | DSH_DESKTOP_WORKSPACE 环境变量 → ~/.dsh 工作区注册表里最近使用的工作区 → 用户主目录(绝不落在 exe 目录) |
| 冷首启 | 启动时预热 Chromium 缓存并在 UI 健康后才显示窗口(规避上游 rc.6 的冷首启竞速,见 PLAN §13) |
| 附挂模式(防会话损坏) | 启动时探测同 ~/.dsh 是否已有 harness 在服务(:3080 或桌面实例标记文件),命中则直接作为该后端的新窗口,不启动第二个写者——避免双实例并发写坏会话日志(§16) |
开发
npm install # 根依赖(Electron 37.x + TS)
# resources/harness 需要一次完整生产安装(构建产物,不入库):
npm install --prefix resources/harness --omit=dev @deepseek-ai/dsh@0.1.0-rc.6
npm run start # 启动(dev 模式,数据隔离在 .poc-home)
npm run smoke # 一键验收(就绪→UI 渲染→优雅退出)
npm run dist # 打包(out/win-unpacked + 单文件 portable exe)
新会话的默认工作目录解析顺序:DSH_DESKTOP_WORKSPACE 环境变量 → ~/.dsh/storages/workspace.json 中最近使用的工作区 → 用户主目录。
结构
app/main/ Electron 主进程(子进程管理、冷启动预热、boot 监督)
packages/lifecycle @dsh-desktop/lifecycle 伴随插件(--patch 挂载)
preload/ 页面 chrome 注入 + 窗口控制 IPC 桥
overlays/ lifecycle.patch.yml 桌面叠加层
build/icon.png 临时图标(官方 favicon 栅格化,发布前替换)
scripts/ 上游一致性核验 + 打包后复制
PLAN.md 完整计划与决策记录
许可
MIT。上游 @deepseek-ai/dsh 及其依赖均为 MIT;第三方依赖的许可随 resources/harness 安装(发布前以 license-checker 生成 THIRD_PARTY_NOTICES)。