← 返回列表
⚠ 装前注意
@zerorigin-studio/dsh-desktop-shell
基本兼容但装前注意:未发布到 npm registry,仅可从源码安装 · 最近上游提交 2026/9/18 · 已提供中文文档
dsh 桌面 shell 插件
综合分
30.8
GitHub 分
30.8
用户评分
—
★ Stars
1
周下载量
—
兼容 / 相关生态插件(非 dsh 原生,请按其对应运行时安装)
git clone https://github.com/zerorigin-studio/dsh-desktop-shell.git数据截至 2026/9/18(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
安装兼容性检查⚠ 装前注意
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✗npm 包@zerorigin-studio/dsh-desktop-shell(未发布到 npm,仅可源码安装)
✓Node 引擎要求 >=22.0.0 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明
未发布到 npm registry,仅可从源码安装
验证方式:npm registry 存在性 + package.json 静态校验 · 最后验证 2026/9/19 09:05:36
依赖的 DSH / Cordis 模块
@deepseek-ai/schemastery用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动
README
@zerorigin-studio/dsh-desktop-shell
dsh 桌面壳插件:把 DeepSeek Harness 封装成原生 Windows 桌面客户端。
功能
- 内置桌面客户端:dsh-desktop-shell-client.exe(Wails v3 + WebView2,~13MB)打包在 npm 包 bin/ 内——装插件即得桌面窗口,无需单独安装客户端
- 两种形态,同一个 exe:
- 插件形态(dsh 已在运行):插件探测 web 端口、写协议文件、启动包内 exe,窗口包裹现有 Harness 进程;
- 独立形态(机器上没有 dsh):exe 自行下载官方运行时并拉起 harness,runtime 就放在 exe 同目录,「客户端 + runtime」可整体拷贝、可离线,可直接当作完整客户端分发(见「独立使用」)。
- 设置页分为四个标签页:通用(自启 / 关闭行为 / 保留 Harness)、运行时(存放位置、已下载版本切换删除、从发布仓库下载新版本)、组件(可选组件安装卸载)、关于(版本与连接信息)。下载/安装进度显示在标签栏下方的常驻区域,任何页面都可见。
- 主题自动跟随 dsh:设置页与启动加载页都读取 dsh 的 ~/.dsh/settings.yaml → ui-theme.preference(light/dark/system)来决定深浅色,不提供手动切换;system 时由客户端解析系统明暗并随系统变化实时更新。客户端只读该文档,不写入。
- 自动拉起桌面客户端:dsh 启动后,插件探测 web 端口、写协议文件、启动包内 exe——独立桌面窗口包裹 Harness UI(无浏览器痕迹)
- 协议文件:~/.dsh/dsh-web-port.json 写入 {owner, port, url, pid, harnessVersion, pluginVersion, runtimeDir}——客户端据此连接,设置页展示版本信息;owner(plugin / client)标识写入者,插件卸载只清理自己写的那份
- 快捷方式:桌面 + 开始菜单注册;卸载插件时自动删除
- 客户端自动拉起 dsh:若 harness 未运行,客户端自身会隐形启动(无控制台窗口)
- 开机自启开关:设置页「桌面壳」开关,写入 HKCU Run 注册表项
安装
dsh plugin --profile web add @zerorigin-studio/dsh-desktop-shell
然后手动把 "@zerorigin-studio/dsh-desktop-shell" 追加到
~/.dsh/profiles/web/package.json 的 dsh.profile.bundles 数组
重启 harness
独立使用(无需先装 dsh)
直接运行 bin/dsh-desktop-shell-client.exe(或桌面快捷方式)。首次启动时它会:
1. 探测本机是否已有可用的 Harness(读协议文件);
2. 没有则从发布仓库 https://gitee.com/coldcgh/dsh-runtime 拉取 manifest.json,下载对应的官方 @deepseek-ai/dsh 运行时;
3. 校验 sha256、解压到 exe 同目录的 runtime\\,之后启动直接复用;
4. 以隐藏进程拉起 dsh web,窗口切到 Harness UI。
装好之后整个目录就是自包含的:
\
dsh-desktop-shell-client.exe
runtime\
0.1.5-rc.2\ ← 当前使用的运行时
active.json ← 记录当前版本;多版本可共存、可回滚
- 加载页会显示下载进度;失败时显示具体原因。
- 需要系统安装 Node.js(实测 v22 / v24 均可)。下载走匿名直链,客户端不含任何凭证。
- 设置页「运行时」标签:切换存放位置、查看/切换/删除已下载版本、查询发布仓库并下载新版本。若 harness 由客户端自己拉起,切换版本会立即生效(就地重启 harness 并切到新实例);若是插件拉起的 harness,则只记录选择、不中断它,重启后生效。
- 可选组件(按需安装):基础 runtime 不含 Office 转 PDF 所需的 LibreOffice 二进制(约 325MB,占官方整包 79%),需要时在设置页「组件」标签一键安装。组件直接取官方 npm 包(npmmirror 镜像),用 npm 的 sha512 integrity 校验,无需自行托管。
- 存放位置规则(设置项 runtimeLocation):
- auto(默认):插件安装的 exe → %LOCALAPPDATA%\dsh-desktop-shell-client\runtime\;独立客户端 → exe 同目录 runtime\。
- portable / user:强制指定其中之一。
- 环境变量 DSH_SHELL_RUNTIME_DIR 优先级最高。
- WebView2 用户数据与 harness 启动日志固定在 %LOCALAPPDATA%\dsh-desktop-shell-client\——exe 所在目录可能只读,这两项必须落在始终可写的位置。
- 协议文件:~/.dsh/dsh-web-port.json(设置了 DSH_HOME 时为 %DSH_HOME%\dsh-web-port.json)。
🪟 多窗口接入标准(插件开发者)
客户端向每个托管页面注入标准桌面 SDK window.dsh.desktop(version 1)。
任何 dsh 插件需要开原生独立窗口时,直接调用统一入口即可:
await window.dsh.desktop.openWindow({
url: "https://chat.deepseek.com/",
title: "DeepSeek 网页对话",
width: 1024,
height: 768,
});
协议说明:
- 底层走 WebView2 宿主消息(window.chrome.webview.postMessage → { type: "dsh.desktop.openWindow", url, title, width, height }),由客户端 RawMessageHandler 接收并打开原生窗口——无跨端口 fetch / CORS,任何页面(含外部 harness)都成立;
- SDK 方法:openWindow({url,title,width,height})(返回 Promise)、closeWindow(id)、getInfo();
- 检测宿主:有 window.chrome.webview.postMessage 即视为桌面宿主存在;没有时插件应自行降级(如当前 webview 内导航)——插件在纯浏览器/第三方壳中不应失效;
- 兼容旧协议:宿主仍注入 window.__DSH_DESKTOP_API__(http://127.0.0.1:/,HTTP 桥接),老插件 fetch(api + "/window/chat") 路径继续可用;
- 参照实现:dsh-deepseek-chat(@zerorigin-studio/dsh-deepseek-chat)通过该标准入口打开「网页对话」独立窗口。扫码进群