Skip to content

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Latest commit

 

History

2 Commits

Folders and files

Repository files navigation

DSH Desktop Rust Edition

用 Rust + Tauri 2 封装的 DeepSeek Harness(dsh)桌面壳,支持:

  • Windows x64
  • macOS arm64(Apple Silicon)
  • macOS x64(Intel)

设计原则

  1. 不 fork 官方源码:运行时通过 npm 安装官方 @deepseek-ai/dsh。
  2. 可跟进后续官方版本:启动前可检查 npm latest / 任意版本,并支持钉住版本。
  3. 保留官方功能面:桌面窗口直接承载官方 dsh web Web UI(聊天、模型、设置、会话、插件能力均来自官方包)。
  4. 本机不依赖预装 Node:若系统 Node 不满足官方 engine 要求(^22.19 || >=24),会自动下载便携版 Node。

与官方 Electron Desktop 的关系

官方仓库自带 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:*。

本地构建(Windows)

依赖:

  • 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

macOS 构建

本机是 Windows 时无法直接产出可签名 mac 安装包。推送仓库后由 GitHub Actions 在 macos-14 / macos-13 runner 构建:

  • macos-arm64 → aarch64-apple-darwin
  • macos-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 暴露到局域网)。

本项目做法:

  1. dsh 仍只监听 127.0.0.1
  2. 桌面壳在本地端口开 反向代理,转发时把 Host 重写为本机回环地址
  3. 两种手机接入模式:
    • 局域网:二维码为 http://<局域网IP>:<代理端口>/?token=...(需同一 Wi-Fi)
    • 公网:通过临时隧道(优先 localtunnel,其次 cloudflared)转发到上述代理,二维码为 https://<公网域名>/?token=...(不在同一网络也能连)
  4. 手机完成官方 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 许可。

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages