用 Rust + Tauri 2 封装的 DeepSeek Harness(dsh)桌面壳,支持:
- Windows x64
- macOS arm64(Apple Silicon)
- macOS x64(Intel)
- 不 fork 官方源码:运行时通过 npm 安装官方
@deepseek-ai/dsh。 - 可跟进后续官方版本:启动前可检查 npm
latest/ 任意版本,并支持钉住版本。 - 保留官方功能面:桌面窗口直接承载官方
dsh webWeb UI(聊天、模型、设置、会话、插件能力均来自官方包)。 - 本机不依赖预装 Node:若系统 Node 不满足官方 engine 要求(
^22.19 || >=24),会自动下载便携版 Node。
官方仓库自带 apps/desktop(Electron,无监听端口、独立 desktop profile、签名更新单元)。
本项目是第三方 Rust 轻量壳:
| 维度 | 官方 Electron Desktop | DSH Desktop Rust Edition |
|---|---|---|
| 实现 | Electron + 捆绑完整 dsh 树 | Tauri + 运行时 npm 安装 dsh |
| 更新 | 整包签名更新 | npm 版本跟进 |
| 传输 | 无 HTTP 端口,内部管道 | 127.0.0.1 + token URL |
| 功能 | Desktop 专用 profile / 插件管理器 | 官方 Web UI 全功能 |
若你需要与官方发布完全一致的桌面行为,请使用官方
pnpm run package:desktop:*。
依赖:
- Node.js 20+(构建前端/CLI 用;运行时可自动下载)
- Rust stable + MSVC Build Tools
- WebView2(Win10/11 通常自带)
npm install
npm run build产物在 src-tauri/target/release/bundle/nsis/。
开发模式:
npm run dev本机是 Windows 时无法直接产出可签名 mac 安装包。推送仓库后由 GitHub Actions 在 macos-14 / macos-13 runner 构建:
macos-arm64→aarch64-apple-darwinmacos-x64→x86_64-apple-darwin
产物为 .app / .dmg(未签名;分发需自行 codesign/notarize)。
默认应用数据目录:
- Windows:
%APPDATA%\dsh-desktop\ - macOS:
~/Library/Application Support/dsh-desktop/
结构:
dsh-desktop/
runtime/node/ # 便携版 Node(仅在需要时下载)
package/ # 管理的 @deepseek-ai/dsh npm 工程
logs/dsh-web.log # 官方 dsh web 输出
settings.json # 钉住版本 / 端口 / DSH_HOME
DSH_HOME 默认使用 ~/.dsh(与官方 CLI 一致),可在设置中覆盖。
- 启动/停止/重启
dsh web --no-open --host 127.0.0.1 --port ... - 自动解析官方输出的带 token URL,并导航 WebView(完成 cookie 鉴权)
- 检查 npm 更新、安装任意历史版本、钉住版本
- 系统托盘:打开控制台 / 打开 DSH / 重启 / 退出
- 手机扫码连接:桌面生成二维码;手机浏览器/微信扫码后访问同一 DSH Web,会话与任务一致
官方 dsh web 出于安全 禁止 --host 0.0.0.0(避免把 RCE 暴露到局域网)。
本项目做法:
dsh仍只监听127.0.0.1- 桌面壳在本地端口开 反向代理,转发时把
Host重写为本机回环地址 - 两种手机接入模式:
- 局域网:二维码为
http://<局域网IP>:<代理端口>/?token=...(需同一 Wi-Fi) - 公网:通过临时隧道(优先 localtunnel,其次 cloudflared)转发到上述代理,二维码为
https://<公网域名>/?token=...(不在同一网络也能连)
- 局域网:二维码为
- 手机完成官方 token → cookie 流程后,进入与桌面完全相同的 Web UI
因此手机与桌面共用同一个 dsh 进程与 $DSH_HOME,session/任务天然同步。
界面分工:主窗口始终是控制台;启动 DSH 会在独立窗口打开 Web UI,不会再把「手机连接」页顶掉。
公网链接可访问你本机 DSH,用完请及时关闭。局域网模式请仅在可信 Wi-Fi 下使用。
- 服务只绑定
127.0.0.1 - 访问使用官方一次性 token → 签名 cookie 流程
- 请只从官方 npm 源安装
@deepseek-ai/dsh
本壳代码 MIT。DeepSeek Harness 本身遵循其上游 MIT 许可。