DeepSeek Harness Hub
← 返回列表

iobee/dsh-desktop

DeepSeek Harnessspec-screened在 GitHub 查看 ↗
未验证

DSH 的 Web…

尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/9/9 · 已提供中文文档

一个轻量级的 macOS 桌面宿主,用于 DeepSeek Harness,支持基于 npm 的安全运行时更新。

综合分
29.6
GitHub 分
29.6
用户评分
★ Stars
1
周下载量
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add iobee/dsh-desktop
该插件未发布到 npm,走 GitHub 源安装(pnpm 若拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑)
数据截至 2026/9/20(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动

README

DSH Desktop

DSH Desktop 是一个独立、轻量的 macOS 与 Windows 外壳,让 DeepSeek Harness 可以像普通应用一样打开。macOS 使用沉浸式窗口,不保留单独的标题栏占位,原生窗口按钮仅在鼠标移入左上角时显示;外壳不修改、复制或 fork 来源仓库的代码,运行内容始终来自 npm 官方包 @deepseek-ai/dsh。

DSH 的 Web 界面直接显示在应用窗口中;支持该选项的运行时不会再额外打开系统浏览器,旧版运行时会自动使用兼容启动方式。新版运行时的浏览器认证会在本机同源页面内完成,启动令牌不会写入 Desktop 日志。

macOS 窗口顶部的非交互区域可以拖动,按钮、标签页和输入框保留网页本身的点击行为;窗口拖动和左上角悬停检测不覆盖页面控件。

“文件 → 新建会话”支持 macOS ⌘N / Windows Ctrl+N,与侧边栏的新建按钮使用同一流程,在主窗口中沿用当前工作区,不另开窗口。已有空白会话会由 DSH 复用;快捷键也适用于输入框有焦点或侧边栏收起时,不直接清空草稿或改写历史。

产品介绍与下载:DSH Desktop 官网

使用方式

macOS

1. 打开 DMG,把 DSH Desktop.app 拖进“应用程序”。
2. 这是未公证的极客向构建。首次运行若被 macOS 拦截,可在终端执行:

xattr -dr com.apple.quarantine "/Applications/DSH Desktop.app"

3. 再正常打开应用。应用会先检测本机环境;已有兼容安装就直接进入,否则显示准备页。

也可以先尝试打开一次,然后到“系统设置 → 隐私与安全性”选择“仍要打开”。不要全局关闭 Gatekeeper。

Windows

1. 下载并运行 DSH.Desktop__x64-setup.exe。安装只写入当前用户目录,不需要管理员权限。
2. 当前构建没有 Authenticode 证书。若 SmartScreen 拦截,选择“更多信息”→“仍要运行”。
3. 应用会先检测本机环境;没有开发环境也可以通过准备页下载所需组件。

第一次打开与运行环境

安装包不包含 Node、npm、pnpm 或 DSH。启动检测只读取本机环境,不会自动下载、修改全局 PATH,或覆盖用户安装。macOS 检测登录 shell 的 PATH,并识别常见安装目录;DSH Desktop 自己创建的终端命令不会被当成本机 DSH。

- 已有兼容的 Node、pnpm 和 DSH:直接使用并记住安装位置。Node 支持 22.19 及以上的 22.x 或 24 及以上稳定版本;工具还必须能通过实际执行检查。
- 缺少组件:点击“下载并开始”才联网准备,只补齐缺失或不兼容的组件。兼容的本机 Node 和 pnpm 可以搭配应用管理的 DSH。
- 自己安装或指定位置:点击“使用已有安装…”,可重新检测、输入绝对路径或使用文件选择器。缺少插件安装所需的组件时,会先说明再补齐。
- 下载可以取消和重试;临时安装通过版本与启动检查后才会提交。已完成的组件会保留供重试使用,原来的运行环境不会被移动或覆盖。
- “DSH Desktop → 运行环境…”可以更换来源,明确保存后才重启。已保存的安装失效时会提示修复,不会悄悄切换到另一套环境。

首次启动使用居中的内容区;“运行环境”使用紧凑的独立窗口,集中显示当前版本和来源,组件路径按需展开。取消选择会返回当前安装,不改变已保存的来源。

应用下载的组件位于自己的用户数据目录下的 runtime/toolchains/,DSH 位于 runtime/versions/,不要求安装到 ~/.local,也不需要管理员权限。当前缺省下载版本为 Node 24.19.0、npm 11.19.0 和 pnpm 11.7.0;Node 使用官方发行包并校验 SHA-256,npm/pnpm 使用 npm 官方包并校验固定 SHA-512。DSH 由 npm 下载官方包并进行完整性校验,安装脚本采用明确的许可列表。

首次补齐组件需要网络;环境准备好后,启动不等待网络。应用只管理自己下载的文件,不升级或卸载用户已有的 Node、pnpm、npm 或 DSH。

两条更新通道

“DSH Desktop → 关于 DSH Desktop”显示桌面外壳与 DSH 运行时的版本、日志入口和 DeepSeek Harness GitHub 链接。“DSH Desktop → 检查更新…”在独立窗口中显示两条更新通道的状态与进度,并用一个按钮同时检查它们。

DSH 运行时

使用本机 DSH 时,版本由原来的安装方式管理;更新窗口会标注“本机安装 · 自行管理”,不会安装另一份 DSH 替换它。以下更新流程只适用于应用管理的 DSH:

- 启动只读取本机当前版本,不等待网络。
- 默认跟随 npm dist-tags.latest;“检查更新”窗口可开启“加入 DSH Beta”,改为跟随预发布的 dist-tags.next。
- 切换通道后立即检查一次;此后的手动检查与每 12 小时后台检查都使用所选通道。
- 退出 Beta 会取消尚未应用的 Beta 更新,但不会把当前正在运行的较新 DSH 自动降级;Desktop 会等 latest 追平后再更新。
- 界面打开 60 秒后开始首次后台检查;应用持续运行时也会按该周期继续检查。
- 新版本会安装到独立的版本目录,使用已选择的 Node 和兼容安装工具验证版本并完成一次启动冒烟测试。
- 正在运行的版本不会被替换;新版本在下次启动时切换。
- 若新版本启动失败,应用自动退回上一版本。网络或安装失败也不会影响当前版本。
- “DSH Desktop → 检查更新…”可随时强制检查,不受 12 小时间隔或失败重试间隔限制;“重新启动”可应用已就绪的更新。

DSH Desktop 外壳

- 界面打开 120 秒后,若距离上次成功检查已满 24 小时,后台读取 GitHub Release 的 latest.json,不影响启动速度。
- 发现新版本时由用户确认后再下载;Tauri 使用应用内置公钥强制验签,验签通过才会安装。
- 安装完成后自动结束本机 DSH 子进程并重启应用。
- 检查或安装失败不会影响当前应用;失败后最早一小时重试。
- “DSH Desktop → 检查更新…”可随时手动检查。

Windows 与 macOS 使用同一份签名更新清单;应用只会下载与当前系统和架构匹配的更新包。

可选终端命令
默认情况下,DSH Desktop 不修改用户 PATH,也不影响终端里已有的 dsh。使用本机 DSH 时继续使用原来的终端命令即可。使用应用管理的 DSH 时,可选择“DSH Desktop → 安装终端命令…”:

- 若终端中没有 dsh,安装名为 dsh 的轻量启动命令。
- 若检测到已有 dsh,改为安装 dsh-desktop,不覆盖、不移动,也不改变原命令的优先级。
- macOS 会同时配置 zsh 的 .zshrc 与 fish 的 conf.d/dsh-desktop.fish;旧版本写入 .zprofile 的受管片段会在重新安装时迁移。
- 该命令始终读取 Desktop 当前生效的隔离运行时,因此会跟随应用从 npm 安装并验证过的 DSH 更新。
- “移除终端命令…”只删除 DSH Desktop 自己创建的命令和 PATH 配置。

Harness 的用户配置和会话仍由上游存放在 ~/.dsh。外壳自己的版本缓存、可选终端启动器与日志位于 ~/Library/Application Support/com.iobee.dsh-desktop/。

Windows 上的外壳数据位于 %APPDATA%\com.iobee.dsh-desktop\。

本机构建

macOS 要求:Apple Silicon Mac、Rust、Xcode Command Line Tools、用于执行准备脚本的 Node,以及更新签名私钥 ~/.tauri/dsh-desktop.key。

npm ci
npm run desktop:build

prepare:runtime 只检查轻量资源清单,不下载运行时。安装包只携带启动适配脚本;工作区里旧的 Node/DSH 资源缓存不会被打入应用。macOS 构建会生成 DMG、DSH Desktop.app.tar.gz 更新包和对应的 .sig 签名,产物位于 src-tauri/target/release/bundle/。

Windows 安装包由 .github/workflows/windows-build.yml 在 GitHub 的 Windows runner 上原生构建。工作流验证轻量资源清单和测试后,静默安装生成的 NSIS 包,并在隔离数据目录中验证首次下载与缓存启动;通过后才保存 Actions artifact。

本机验证命令:

npm test
npm run build
cargo test --manifest-path src-tauri/Cargo.toml
npm run runtime:smoke -- --app "src-tauri/target/release/bundle/macos/DSH Desktop.app/Contents/MacOS/dsh-desktop" --download

最后一条命令在临时目录模拟没有 Node、pnpm 和 DSH 的电脑,验证首次准备与再次启动;省略 --download 则只验证启动检测不会下载任何工具。测试失败时保留临时目录并报告位置,成功后清理。测试不使用正式应用的数据目录。

发布新版本

更新签名私钥不能提交到仓库,也不能随意重新生成;丢失它后,已安装用户将无法验证后续更新。公钥已经固定在 tauri.conf.json,私钥默认从 ~/.tauri/dsh-desktop.key 读取并应另行安全备份。

以后发布时先同步版本号并提交到 main:

npm run version:set -- 0.1.5
npm run release:verify -- v0.1.5
git add -A
git commit -m "Release v0.1.5"

等待 Windows build 工作流通过,再把其 artifact 下载到本机:

gh run list --workflow "Windows build" --branch main
gh run download  --name dsh-desktop-windows-x64 --dir dist-windows

确认提交和 Windows 安装包无误后运行:

npm run release:publish -- --windows-installer "dist-windows/DSH Desktop_0.1.5_x64-setup.exe" "本次更新说明"

该命令会在本机运行测试、构建轻量应用、在临时目录验证实际首次下载与缓存启动、ad-hoc 签名 macOS 应用,并用同一把更新私钥为 macOS 更新包和 Windows 安装包签名。随后它生成同时包含 darwin-aarch64 与 windows-x86_64 的 latest.json,推送 main 和版本标签,并通过已登录的 gh 创建 GitHub Release。私钥全程留在本机,不会交给 GitHub Actions。只想验证完整打包链路而不推送时使用:

npm run release:publish -- --dry-run --windows-installer "dist-windows/DSH Desktop_0.1.5_x64-setup.exe"

当前发行物没有 Apple Developer ID、公证或 Windows Authenticode 签名,适合小范围极客用户;Tauri 更新包仍使用项目自己的私钥强制验签。以后获得平台证书时,系统信任签名可以与 npm dsh 更新继续保持两条独立通道。

许可与来源

本外壳使用 MIT License。DeepSeek Harness 及其依赖保留各自的许可与版权;上游 npm 包被原样安装为运行时依赖。

上游仓库有新提交时邮件通知你(每天最多一封,无更新不打扰),随时一键退订。

💬 加入 DPharness 群聊

插件用法、部署报错、新插件第一时间同步——群里问,比一个人翻文档快。

点击加入 QQ 群
DPharness 群聊二维码,手机 QQ 扫码进群
扫码进群