← 返回列表
未验证
把网页工作台封装成免装 Node 的原生桌面应用
尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/8/23 · 已提供中文文档
综合分
28.3
GitHub 分
28.3
用户评分
—
★ Stars
1
周下载量
—
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add mecoren/deepseek-harness-launcher该插件未发布到 npm,走 GitHub 源安装(pnpm 若拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑)
数据截至 2026/9/16(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动
README
DeepSeek Harness 桌面启动器
基于 Tauri 2 的轻量桌面外壳,把 DeepSeek 网页工作台(dsh web)封装成一个
原生 Windows 应用:系统托盘常驻、自带标题栏、内置离线运行环境,终端用户无需安装
Node.js / npm 即可使用与更新。
为什么要有这个项目
DeepSeek 官方提供的 dsh web 是一个命令行启动的本地网页工作台,但它本质上是
“跑在终端里的一条命令”,存在几个对普通用户不友好的地方:
- 没有原生窗口外壳:dsh web 启动后只往终端打印一个 http://127.0.0.1:
地址,用户得自己开浏览器访问;没有最小化/关闭、托盘驻留、独立窗口这些桌面体验。
- 依赖用户本机的 Node / npm 环境:跑 dsh web 需要先装好 Node.js,更新时还要
用 npm,普通用户机器上往往没有,或者版本不对。
- 更新链路裸露:检查版本、拉新版都散落在命令行里,没有统一入口。
这个项目就是把这些“零散的命令行体验”包成一个开箱即用的桌面应用:
- 用 Tauri 2 提供一个原生窗口(自定义注入标题栏,去掉了系统边框);
- 启动后自动在后台拉起 dsh web(loopback 随机端口),主窗口直接导航过去;
- 把 Node 运行环境和 dsh CLI 打包进应用内部(runtime-host/),首次运行免联网;
- 更新功能改用应用自带的 npm CLI(独立安装在 runtime-host/tools/npm),不再调用用户机器上的 npm,所以最终用户也不用装 npm。
一句话:让 dsh web 从“一条命令”变成“一个双击就开的桌面程序”。
它做什么
- 桌面外壳:Tauri 2 窗口承载 DeepSeek 网页工作台,去掉系统边框,
注入自定义标题栏(🐋 DeepSeek Harness 品牌 + 最小化 / 全屏 / 关闭按钮)。
- 自动启动工作台:后台线程以 dsh web --host 127.0.0.1 --port 0
(系统随机分配 loopback 端口)拉起服务,读取就绪行 dsh web: 后把主窗口
导航过去。点击标题栏品牌文字可展开下拉菜单,内含「检查 DeepSeek Harness 更新」。
- 托盘常驻:关闭窗口 只隐藏,进程继续驻留系统托盘(黑鲸图标);
只有托盘菜单的「退出」才真正结束进程,并在退出时强杀 dsh web 进程树。
- 离线运行:优先使用内置 runtime-host/(随包发布的 Node 可执行文件 +
@deepseek-ai/dsh CLI + 独立 npm CLI),首次运行完全免联网。
- 自带更新器:通过 runtime-host/node.exe tools/npm/node_modules/npm/bin/npm-cli.js
执行 npm view / npm install 检查并安装新版,只需能访问 npm registry,
不依赖用户机器上的 Node / npm / pnpm。独立 npm 装在 dsh 依赖图之外,
npm install 不会破坏更新器自身(此前用 pnpm 时出现过自举损坏问题)。
- 提示样式:内联实现 shadcn Sonner 风格的居中 toast(顶部居中、成功绿 /
失败红、自动消失),不引入任何外部 CDN 或前端组件依赖。
怎么启动 / 怎么跑起来
环境要求(开发者侧,Windows 10 / 11,x64)
| 依赖 | 说明 |
| --- | --- |
| Rust 工具链 | 稳定版(≥ 1.77) |
| MSVC 目标 | x86_64-pc-windows-msvc(不能用 GNU,Tauri 资源是 MSVC COFF 格式) |
| Visual Studio Build Tools 2022 | “使用 C++ 的桌面开发”工作负载(含 MSVC + Windows SDK) |
| Node.js + npm | ≥ 18,仅用于组装离线 CLI 包;终端用户不需要 |
| WebView2 运行时 | Win10/11 已预装,Tauri 渲染前端依赖它 |
1. 准备 Rust MSVC 目标
rustup target add x86_64-pc-windows-msvc
2. 准备离线 CLI 包(首次必须,否则无离线模式)
runtime-host/ 全部内容(含 package.json 元数据)已在 .gitignore 中忽略,
克隆仓库后需要本地重建:
推荐一键脚本(生成 package.json + 复制 node.exe + npm install + 安装独立 npm + 校验):
.\tools\prepare-runtime-host.ps1
若 PATH 上没有 node:.\tools\prepare-runtime-host.ps1 -NodeExe "C:\Program Files\nodejs\node.exe"
等价手动步骤:
cd runtime-host
1) 先生成最小 package.json(缺失时 npm 会向上层目录查找,把依赖错装到仓库根)
'{ "name": "deepseek-harness-runtime-host", "version": "0.0.0", "private": true }' | Set-Content package.json
copy \node.exe node.exe # 2) 复制一份 Windows Node 进来
npm install @deepseek-ai/dsh@latest --save-exact --no-audit --no-fund # 3) 安装官方 CLI
npm install npm@11.17.0 --prefix tools/npm --no-audit --no-fund # 4) 独立安装更新器 npm
⚠️ 必须用 npm(扁平布局、无符号链接);不要用 pnpm,其 symlink 布局打包后会丢失、
且把更新器放进 dsh 依赖图会导致更新时自举损坏
若 runtime-host/ 缺失,应用会自动回退到 npx -y @deepseek-ai/dsh web
(首次运行需联网下载一次),仍能启动。
3. 启动方式
开发模式(最常用)
cd deepseek-harness-launcher
npm install # 仅首次:拉取 @tauri-apps/cli
npm run dev # = tauri dev:编译 debug 二进制并打开窗口
tauri.conf.json 的 devUrl 为 null,tauri dev 直接用 Tauri 内置开发服务器
伺服静态 dist/,不需要额外的前端 dev server(本项目没有 Vite/React)。
只出可执行文件(最快验证)
cargo build --release --target x86_64-pc-windows-msvc
产物直接双击启动:
src-tauri/target/x86_64-pc-windows-msvc/release/deepseek_harness_launcher.exe
打包安装程序
npm run build # = tauri build(按 tauri.conf.json 的 bundle.targets:nsis/deb/rpm/dmg/app)
产物在 src-tauri/target/x86_64-pc-windows-msvc/release/bundle/(NSIS 安装包,安装时可选择「仅为当前用户 / 所有用户」)。
4. 启动后行为
1. 外壳先显示加载页(dist/index.html,中文 spinner 文案,含实时等待秒数)。
2. 后台拉起 dsh web,读取就绪行后主窗口导航到本地工作台。
3. 关闭窗口 → 仅隐藏,进程继续驻留托盘。
4. 托盘菜单「显示主窗口」/「退出」;「退出」才真正结束并强杀 dsh web 进程树。
为什么界面是「网页」:按上游架构,桌面外壳只负责无边框标题栏、托盘与
服务生命周期;工作台 UI 由官方 Web 前端在本地 dsh web 上渲染。实测服务
就绪约 2–4 秒(冷热启动几乎一致)。安装后的首次启动更慢是 Windows
Defender 逐个扫描 runtime-host 数万个文件的一次性成本,之后不再发生。
标题栏注入已改为页面加载事件驱动(不再 500ms 轮询),运行时开销可忽略。
更多细节
完整的依赖清单、离线包目录结构、更新机制、项目结构、排错与 GitHub 元数据,
见仓库内的 INSTALL.md。
技术栈
- Tauri 2(Rust 后端 + WebView2 渲染)
- 内置 Node 22 运行环境 + @deepseek-ai/dsh CLI(离线)
- 自带独立 npm 更新器(runtime-host/tools/npm)
- 自定义注入式标题栏 + 内联 Sonner toast(无前端框架、无外部依赖)扫码进群