deepseek-harness
deepseek-ai
DeepSeek Harness: Everything is a Plugin.
PROJECT TOPICS
INSTALL REFERENCE
dsh plugin --profile web add github:mecoren/deepseek-harness-launcher
该命令指向仓库当前默认分支;尚无绑定当前 commit 的完整验证结果。
PROJECT README
基于 Tauri 2 的轻量桌面外壳,把 DeepSeek 网页工作台(dsh web)封装成一个
原生 Windows 应用:系统托盘常驻、自带标题栏、内置离线运行环境,终端用户无需安装
Node.js / npm 即可使用与更新。
DeepSeek 官方提供的 dsh web 是一个命令行启动的本地网页工作台,但它本质上是
“跑在终端里的一条命令”,存在几个对普通用户不友好的地方:
dsh web 启动后只往终端打印一个 http://127.0.0.1:<port>
地址,用户得自己开浏览器访问;没有最小化/关闭、托盘驻留、独立窗口这些桌面体验。dsh web 需要先装好 Node.js,更新时还要
用 npm,普通用户机器上往往没有,或者版本不对。这个项目就是把这些“零散的命令行体验”包成一个开箱即用的桌面应用:
dsh web(loopback 随机端口),主窗口直接导航过去;dsh CLI 打包进应用内部(runtime-host/),首次运行免联网;runtime-host/tools/npm),不再调用用户机器上的 npm,所以最终用户也不用装 npm。一句话:让 dsh web 从“一条命令”变成“一个双击就开的桌面程序”。
🐋 DeepSeek Harness 品牌 + 最小化 / 全屏 / 关闭按钮)。dsh web --host 127.0.0.1 --port 0
(系统随机分配 loopback 端口)拉起服务,读取就绪行 dsh web: <url> 后把主窗口
导航过去。点击标题栏品牌文字可展开下拉菜单,内含「检查 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 时出现过自举损坏问题)。| 依赖 | 说明 |
|---|---|
| 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 渲染前端依赖它 |
rustup target add x86_64-pc-windows-msvc
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 安装目录>\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(首次运行需联网下载一次),仍能启动。
开发模式(最常用)
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 安装包,安装时可选择「仅为当前用户 / 所有用户」)。
dist/index.html,中文 spinner 文案,含实时等待秒数)。dsh web,读取就绪行后主窗口导航到本地工作台。dsh web 进程树。为什么界面是「网页」:按上游架构,桌面外壳只负责无边框标题栏、托盘与 服务生命周期;工作台 UI 由官方 Web 前端在本地
dsh web上渲染。实测服务 就绪约 2–4 秒(冷热启动几乎一致)。安装后的首次启动更慢是 Windows Defender 逐个扫描 runtime-host 数万个文件的一次性成本,之后不再发生。 标题栏注入已改为页面加载事件驱动(不再 500ms 轮询),运行时开销可忽略。
完整的依赖清单、离线包目录结构、更新机制、项目结构、排错与 GitHub 元数据,
见仓库内的 INSTALL.md。
runtime-host/tools/npm)CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: 无有效分类标签。