🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

Windows 启动器 HF-MTF/HFRin-DSH-Windows-Launcher

DeepSeek Harness
HF-MTF32 天前有提交已提供中文文档扫描:无法判定

一键启停 DSH 并在内嵌窗口打开界面

31.5/100
综合分
2
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/9/30 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

自动兼容检查未通过:仓库根目录及浅层子目录均无 dsh 插件清单,无法用 dsh 插件安装命令安装。以下命令仍可尝试,但可能失败。
无法用 dsh 插件命令安装(仓库内无 dsh 插件清单)
git clone https://github.com/HF-MTF/HFRin-DSH-Windows-Launcher.git
按该仓库 README 的原生方式安装;若作者另行发布了 DSH 插件包,请以其文档为准

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:需留意
是什么
dsh 原生插件 · market
装得上吗
作者未把包发布到 npm,只能用源码安装
插件本身没问题,是分发方式不同
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 32 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查需源码安装

仓库根目录及浅层子目录均无 dsh 插件清单,无法用 dsh 插件安装命令安装

展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✗npm 包HFRin-DSH-Windows-Launcher(未发布到 npm,仅可源码安装)
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✗入口文件缺少入口声明

源码安装时若 pnpm 拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑。

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/11 22:14:58

安全扫描自动 · 静态分析源码
v2.7.0
⚪ 扫描:无法判定尚无人工评估
展开查看扫描说明与证据 ↓

已尝试扫描但取不到可分析的源码:仓库或包不存在、已删除,或为非 JS/TS 实现、未随包发布源码。无法判定,不代表安全。

  • · 包内无可扫 JS
  • · TS 源码(可能为非 JS 实现或未发布源码),无法判定
扫描于 2026/11/1(0 天前) · 范围 全包扫描(包内未声明入口) · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 一键安装启动
  • 内嵌窗口打开界面

README

由 DeepSeek 最新模型翻译生成
DSH 启动器 · DSH Launcher License Release Platform .NET Framework Windows 上的 DeepSeek Harness 启动器:一块面板管启停与日志,一个内嵌窗口看界面 —— 不再往浏览器里塞标签页。 ⬇ 下载最新成品包 —— 解压即用,不用编译、不用改任何配置。 它解决什么问题 - 原生 dsh web 每次都弹浏览器,DSH 混在几十个标签页里找不着 - 命令行启停麻烦,看不到实时日志和账户余额 - 关掉终端/启动器窗口会把 DSH 一起带走(stdout 管道断开 → EPIPE → 进程崩溃) - 高 DPI 屏上界面发虚、窗口标题栏是系统白条,跟深色界面割裂 功能 面板窗口 - 一键 启动 / 重启 / 停止 DSH - 自动找 DSH:路径不写死,可识别任意位置的安装;找不到时支持一键安装或手动指定 - 实时状态:监听地址、PID、账户余额(60 秒自动刷新) - 运行日志:DSH 的 stdout/stderr 实时回显到面板 - 系统托盘式的精简尺寸,DPI 感知(PerMonitorV2) 运行窗口(独立窗口,不是浏览器) - WebView2 内核,没有地址栏、标签栏、书签栏
展开完整文档(README 剩余 1 节)
DSH 启动器 · DSH Launcher

License
Release
Platform
.NET Framework

Windows 上的 DeepSeek Harness 启动器:一块面板管启停与日志,一个内嵌窗口看界面 —— 不再往浏览器里塞标签页。

⬇ 下载最新成品包 —— 解压即用,不用编译、不用改任何配置。

它解决什么问题

- 原生 dsh web 每次都弹浏览器,DSH 混在几十个标签页里找不着
- 命令行启停麻烦,看不到实时日志和账户余额
- 关掉终端/启动器窗口会把 DSH 一起带走(stdout 管道断开 → EPIPE → 进程崩溃)
- 高 DPI 屏上界面发虚、窗口标题栏是系统白条,跟深色界面割裂

功能

面板窗口

- 一键 启动 / 重启 / 停止 DSH
- 自动找 DSH:路径不写死,可识别任意位置的安装;找不到时支持一键安装或手动指定
- 实时状态:监听地址、PID、账户余额(60 秒自动刷新)
- 运行日志:DSH 的 stdout/stderr 实时回显到面板
- 系统托盘式的精简尺寸,DPI 感知(PerMonitorV2)

运行窗口(独立窗口,不是浏览器)

- WebView2 内核,没有地址栏、标签栏、书签栏
- 自动带 token:从 $DSH_HOME/logs/dsh-web.out.log 解析当前 token,避免根路径 401
- --no-proxy-server:系统开着代理时也能正常访问 127.0.0.1
- 自绘边框:圆角、渐变描边(左上受光)、鲸鱼头像 + 标题的深色标题栏、三个自绘按钮
- 最大化自动收细边框(8px → 3px),窗口矩形精确贴合工作区,不压任务栏
- 原生窗口动画:打开 / 关闭 / 最小化 / 还原由 DWM 播放(缩放淡入、飞向任务栏)
- 拖动标题栏移动,拖到屏幕边缘可分屏;双击标题栏最大化 / 还原
- F12 开发者工具、右键菜单、Ctrl+R 刷新
- 页面里的外链(target=_blank)交给系统默认浏览器

两者关系

面板和运行窗口是同一个 exe 的两个窗口,各自独立关闭:

- 关掉面板 → 运行窗口继续开着,进程不退
- 两个都关掉 → 进程才退出
- 面板与页面窗口用自定义 ApplicationContext 管理生命周期
- 同一时间只允许一个实例(两个窗口共用同一份 WebView2 数据目录,而它是独占的):重复双击会把已有窗口叫到前台;万一已有实例连窗口都没有了,会问一句是否结束它再重新打开 —— 只结束启动器本身,不碰正在跑的 DSH

环境要求

| 依赖 | 说明 |
| Windows 10 / 11 x64 | 开发和验证环境是 Windows 11 |
| .NET Framework 4.8 | Win10 1803+ 自带 |
| WebView2 Runtime | Win11 随 Edge 自带;Win10 可能需单独安装 |
| DeepSeek Harness | 已安装的 @deepseek-ai/dsh(Node 运行时 + 主程序)|

下载

| 方式 | 说明 |
| 成品包(推荐) | 到 Releases 下载 DSH启动器-成品-.zip,解压到任意目录,双击 exe 就能用 —— 启动器会自己找到 DSH |
| 自己编译 | 见下方「快速开始 → 自己编译」,只需要 .NET Framework 自带的 csc.exe,不用装 .NET SDK |

仓库里的 release/、build/ 是本地构建目录,没有纳入版本库(见 .gitignore)。
dist/ 是成品目录,内容与成品包一致:

| 文件 | 说明 |
| dist\DSH启动器.exe | 主程序(属性里能看到版本号,当前 1.0.6)|
| dist\Microsoft.Web.WebView2..dll | WebView2 托管库(运行必需)|
| dist\WebView2Loader.dll | 原生加载器(运行必需)|
| dist\使用说明.txt | 面向使用者的说明(常见问题、命令行参数)|
| dist\LICENSE | MIT 许可证 |

改了源码要重新编译,双击 一键编译并部署.bat 即可(编译 → 自动检测 DSH 安装位置 → 部署 → 冒烟验证 → 同步 dist)。

快速开始

直接用编译好的

1. 取 DSH启动器.exe 和这三个文件放在同一目录:

DSH启动器.exe Microsoft.Web.WebView2.Core.dll Microsoft.Web.WebView2.WinForms.dll WebView2Loader.dll

2. 双击运行 —— 不用改任何源码,启动器会自己找到 DSH

没找到时,面板上有两个按钮兜底:

| 按钮 | 作用 |
| 一键安装 DSH | 选一个目录,自动下载 Node 运行时并 npm install @deepseek-ai/dsh |
| 指定已有目录 | 已经装好但没被检测到?手动选中 DSH 根目录,路径会被记住 |

自己编译

在源码目录执行(需要 .NET Framework 自带的 csc.exe) powershell -ExecutionPolicy Bypass -File build.ps1

build.ps1 会:编译到 build\ → 自动检测 DSH 安装位置 → 部署 exe 与三个运行库 → 起一个实例检查最大化是否贴合工作区并截图留证。

可选参数:-NoDeploy(只编译)、-DeployTo (指定部署位置)、-NoSmoke(跳过冒烟)。

发新版时改 AssemblyInfo.cs 里的版本号 —— 它会被编译进 exe 属性,请与 git tag 保持一致(tag 用小写 v,如 v1.0.5)。

自动检测 DSH

启动时按优先级探测,第一个同时具备 node\node.exe 与 dsh\node_modules\@deepseek-ai\dsh\lib\bin.js 的目录胜出:

| 顺序 | 来源 |
| 1 | launcher-path.txt(exe 同目录,手动指定后写入) |
| 2 | 环境变量 DSH_ROOT |
| 3 | 环境变量 DSH_HOME 及其上级目录 |
| 4 | exe 自身所在目录,以及向上 4 级 |
| 5 | 常见位置:%LOCALAPPDATA%、%USERPROFILE%、%ProgramFiles%、C:~G: 根下的 DeepSeekHarness / DSH |
| 6 | 当前工作目录 |

所以 exe 放在 DSH 根目录、或者它的任意子目录里都能认出来。想确认探测过程:

DSH启动器.exe --where

逐条打印候选目录的判定结果,并落一份 launcher-where.txt 留档。

DSH_HOME 的确定顺序:环境变量 DSH_HOME → \home → %USERPROFILE%\.dsh。
端口固定 3080,写在 Cfg.Port。

安装 / 部署 DSH

两种方式,装出来的东西一样(Node 运行时 + @deepseek-ai/dsh):

图形界面:面板上点「一键安装 DSH」,选个目录即可。

命令行(适合脚本化 / 无人值守):

DSH启动器.exe --install "D:\DeepSeekHarness"

进度逐行写 launcher-install.log(exe 同目录)。流程:

1. 查最新 Node LTS 版本(npmmirror.com/mirrors/node/index.json),查不到就用内置的兜底版本
2. 下载 node-vX-win-x64.zip,解压时剥掉公共顶层目录
3. 用 node\npm.cmd 安装 @deepseek-ai/dsh(走 registry.npmmirror.com)
4. 建 home\,把路径写进 launcher-path.txt

目标目录里已有 Node 运行时则跳过第 2 步;整个目录已经是可用安装则直接切换过去,不重复下载。

命令行参数

| 参数 | 行为 |
| 无 | 打开启动器面板 |
| --page | 只打开运行窗口,不显示面板(适合做“直接进界面”的快捷方式)|
| --where | 只报告 DSH 位置的检测结果并退出,不弹任何窗口(同时写 launcher-where.txt)|
| --install | 无界面安装 DSH 到指定目录(下载 Node 运行时 + npm install @deepseek-ai/dsh),日志写 launcher-install.log |

目录结构

仓库根目录 ├─ Launcher3.cs 启动器主体(面板 + 运行窗口 + 自绘边框 + 定位/安装) ├─ build.ps1 编译 + 自动定位 + 部署 + 冒烟 + 同步 dist ├─ 一键编译并部署.bat 双击即跑 build.ps1(全流程) ├─ app.manifest DPI 感知 / 通用控件 v6 / Win10-11 兼容 ├─ app.ico 程序图标 ├─ logo160.png 标题栏头像(编译为嵌入资源 WhaleIcon) ├─ whale64.png 备用素材 ├─ README.md 本文件 ├─ README-源码说明.txt 实现备注与踩坑记录 ├─ CHANGELOG.md 更新记录 ├─ CONTRIBUTING.md 怎么提 Issue / PR、编译方式、编码约定 ├─ CODE_OF_CONDUCT.md 贡献者公约(行为准则) ├─ SECURITY.md 安全问题怎么私下报告 ├─ LICENSE MIT ├─ .gitattributes 换行符与二进制处理规则 ├─ .github/ Issue 表单、PR 模板、CI(编译验证) ├─ lib/ WebView2 SDK(编译引用,运行也需要) ├─ docs/ README 配图 └─ dist/ 发布成品(exe + 3 个运行库),解压即用

不纳入版本库(.gitignore) ├─ build/ 编译中间产物,可随时删 └─ release/ 本地打包出来的 zip(正式分发走 Releases)

实现要点都是踩过的坑,改代码前建议看一眼 README-源码说明.txt:

- 管道 EPIPE:DSH 的 stdout/stderr 必须重定向到文件,不能接启动器进程的匿名管道,否则关掉启动器时管道读端断开,DSH 写日志直接崩
- token 401:DSH 根路径不带 token 会 401,所以运行窗口启动时从日志里解析当前 token
- 系统代理:WebView2 默认走系统代理,本地回环也被拦,需要 --no-proxy-server
- 原生动画:FormBorderStyle.None 的窗口没有 WS_CAPTION,Windows 不给播过渡动画 —— 保留 Sizable 样式再用 WM_NCCALCSIZE 抹掉非客户区
- 最大化留缝:带边框窗口被系统最大化时窗口矩形比工作区大一圈,底部压任务栏 → 自定义最大化并在 Resize 里自动纠正
- DPI 发虚:进程声明 PerMonitorV2,窗口尺寸按显示器缩放换算
- 「窗口关没关」不能用 IsDisposed 判断:FormClosed 是在 Dispose() 之前触发的,那一刻 IsDisposed 还是 false。用它判断会让 ApplicationContext 一直以为窗口还开着、永远不调 ExitThread(),进程就变成一个没有窗口却还占着单实例锁的僵尸(外部表现:任务栏里什么都没有、再双击只提示「已经在运行了」,从此进不去)。统一用 LauncherForm.IsGone
- 未处理异常绝不弹模态框:WinForms 自带的「未处理异常」对话框有嵌套消息循环,会把
ExitThread() 投递的 WM_QUIT 吃掉,外层消息循环永远退不出来。统一写 launcher-error.log

已知限制

- 仅 Windows(依赖 WinForms + WebView2 + DWM)
- 运行窗口不支持透明度动画:WebView2 在分层窗口(Opacity<1)下渲染异常,所以只有面板用了淡入淡出
- 余额显示依赖 DSH 的凭据配置($DSH_HOME/.credentials.yaml)

第三方组件

- Microsoft.Web.WebView2 1.0.4258.31(NuGet 包中的 lib/net462 与 runtimes/win-x64/native),版权归 Microsoft,遵循其许可条款
- DeepSeek Harness 由 deepseek-ai 开发,本项目只是它的 Windows 外壳

更新记录

见 CHANGELOG.md。

参与贡献

见 CONTRIBUTING.md。简单说:

- 遇到问题 → 走 Issues 里的表单,按提示填就行
- 安全漏洞 → 别开公开 Issue,见 SECURITY.md
- 想改代码 → 直接提 PR;改完跑一次 build.ps1 -NoDeploy -NoSmoke 确认能编译
- 交流请遵守 贡献者公约:友善、尊重、对事不对人

License

MIT © 2026 HF-MTF and HFRin
预览分享卡片长什么样 ↓HF-MTF/HFRin-DSH-Windows-Launcher
分享 · DeepSeek Harness Hub
HF-MTF/HFRin-DSH-Windows-Launcher

一键启停 DSH 并在内嵌窗口打开界面

回到顶部