MarecGents/marec-dsh-desktop ↗★ 1
mg-dsh-desktop
DeepSeek Harness desktop shell + feature plugin integration. Launches dsh's Web UI in a native WebView2 window with theme sync and window-state memory; injects the plugin config page only when started by this project (desktop shortcut or `mg-dsh` command).
安装
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:MarecGents/marec-dsh-desktop说明文档
阅读完整 README ↗mg-dsh-desktop
DeepSeek Harness(dsh)的桌面化项目。以原生 Windows 窗口(系统 WebView2)运行 dsh 的 Web UI,提供主题同步、窗口状态记忆、系统托盘与托盘命令;设置 → 插件页提供桌面壳配置卡片。
定位
- 桌面化:以原生 Windows 窗口(系统 WebView2)运行 dsh 的 Web UI。
- 插件配置卡片:dsh 设置 → 插件页的 Marec-DSH-Plugin 卡片(窗口尺寸/主题/托盘行为),走插件自有 HTTP 路由。
- 启动体验:品牌化 splash 页(主题色 + dsh logo + spinner)覆盖从窗口打开到 SPA 首绘的整个加载过程,无白/黑闪块。
- 托盘:常驻系统托盘;右键菜单「显示主界面/隐藏主界面(按窗口状态动态切换) / 打开工作区 / 新建任务 / 退出」;最小化/关闭到托盘可配置;打开工作区后会自动激活并前置 Explorer 窗口。
- 状态记忆:上次最大化状态恢复;配置持久化到
$DSH_HOME/mg-dsh-desktop/config.json。 - 窗口分辨率:插件页设置的分辨率保存后立即生效;最大化时保存会先自动取消最大化并清除 maximized 标记;非最大化启动/普通还原固定为屏幕 3/4;输入自动限制在当前屏幕最大宽高内。
安装与使用
# 全局安装(自动检测 dsh/pnpm,未装则一并安装;Windows 自动创建桌面快捷方式)
npm i -g mg-dsh-desktop
# 方式一:桌面快捷方式(无控制台)
# 双击「DeepSeek Harness」
# 方式二:mg-dsh 命令(终端,继承输出)
mg-dsh
# 验证门控(CLI 启动不注入桌面壳)
dsh web # 无窗口、无托盘、无注入
核心设计(严格遵循官方开发者文档 + 官方接口)
| 原则 | 实现 |
|---|---|
| 零改动 dsh | dsh 源码 git status 始终干净 |
| 官方插件形态 | bundle(dsh.bundle.patch)+ client 双 half(dsh.client + exports["./client"]),参照 dsh-web-ui / DSH-better-sidebar |
| 启动门控 | cordis.patch.yml 的行 disabled: !!js process.env.MG_DSH_DESKTOP_LAUNCHED !== '1' —— 非本项目启动的 dsh web 完全不加载插件(无窗口、无 client row、无任何注入) |
| 配置面 | 插件自有 HTTP 路由 /api/mg-dsh-desktop/config(GET/POST)读写 $DSH_HOME/mg-dsh-desktop/config.json。刻意不用 settings 命名空间:dsh 的 RPC settings.describe 只暴露硬编码白名单(第三方插件命名空间是 "deferred work"),第三方配置 UI 的受支持模式是插件自有路由(dsh-web-ui 同款) |
| 随机端口 | 启动器固定传 dsh web --port 0(OS 随机分配),CLI dsh web 不受影响(默认 3080) |
| 单实例 | 桌面快捷方式与 mg-dsh 命令共用 $DSH_HOME/mg-dsh-desktop/launcher.lock PID 锁;随机端口下仍能可靠防止双开,并自动接管陈旧锁 |