DeepSeek Harness Hub
← 返回列表

SimonMedy/DSH-Launcher

DeepSeek Harnessspec-screened在 GitHub 查看 ↗
需源码安装

一个面向 DeepSeek Harness 的非官方社区版 Windows 系统托盘启动器。本项目与 DeepSeek…

暂不能直接安装(需源码编译或环境不满足):仓库缺少 package.json,无法用 dsh 插件安装命令安装。 · 最近上游提交 2026/9/15 · 已提供中文文档

一个轻量级的 Windows 系统托盘启动器,用于 DeepSeek Harness。

综合分
37.4
GitHub 分
37.4
用户评分
★ Stars
9
周下载量
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add SimonMedy/DSH-Launcher
仓库缺少 package.json,无法用 dsh 插件安装命令安装,改用 GitHub 源安装
数据截至 2026/9/19(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
安装兼容性检查需源码安装

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

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

仓库缺少 package.json,无法用 dsh 插件安装命令安装

验证方式:npm registry 存在性 + package.json 静态校验 · 最后验证 2026/9/19 16:49:59

用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动

README

DSH 启动器

一个面向 DeepSeek Harness 的非官方社区版 Windows 系统托盘启动器。本项目与 DeepSeek 无关联,也未获得其认可。

DSH 启动器会在后台启动 DeepSeek Harness,等待经过验证的本地启动通告和 HTTP 就绪状态,并提供 WPF 托盘界面,用于打开、更新、重启和配置该服务。

功能特性

- DeepSea WPF 托盘界面
- 本地 dsh web 生命周期管理
- 仅限回环地址的 DSH Web 绑定(127.0.0.1)
- 仅在验证启动 + HTTP 就绪后才启动浏览器
- 当 3080 端口被占用时,安全回退到操作系统分配的空闲端口
- 为 DSH Web 配置受信任的授权机构
- 按需将 DeepSeek Harness 更新到精确解析的 npm 版本
- 当已安装的 DSH 版本已是最新时,检测为空操作更新
- 当全局 DSH 包缺失时自动进行首次安装
- 安全的进程归属:绝不终止无关进程
- 结构化进程参数:设置不会被插值到 shell 命令中
- 有界、轮转的本地日志,并对类似令牌的值进行脱敏
- 单实例保护

系统要求

- Windows 10 或 Windows 11 x64
- 从源码构建需要 .NET 10 SDK
- Node.js,且 npm 在 PATH 中可用

本仓库通过 global.json 固定其 .NET 10 SDK 策略。

安装设置

1. 下载或克隆本仓库。
2. 将文件夹放在一个永久位置。
3. 运行 setup.cmd。
4. 启动器将构建到 dist/,并创建一个 DeepSeek Harness 桌面快捷方式。

setup.cmd 不会请求提权,也不会绕过 PowerShell 执行策略。

使用方法

从桌面快捷方式启动 DeepSeek Harness。启动器会解析全局安装的 @deepseek-ai/dsh Node.js 入口点,并直接启动 DSH,而不会将设置放入 shell 命令中。

DSH 启动器负责浏览器交接,并向 DSH 传递 --no-open。它会等待特定于进程的 dsh web: 启动通告,验证所通告的 URL 仅限回环地址,然后验证 HTTP 就绪状态,之后才启用 Open DeepSeek Harness。

如果 TCP 端口 3080 已被占用,现有监听器将保持不变。DSH 会以 --port 0 启动,允许 Windows 分配一个空闲的回环端口。当实际端口与 3080 不同时,托盘状态会显示实际端口。
受信任的授权机构与远程访问

--trusted-host 选项是 DSH Web 的浏览器信任 / 授权机构验证设置。它不是身份验证,并且其本身不会将 Harness 暴露给另一台设备。

仅对您期望 DSH Web 接收的主机名或 IP 授权机构使用受信任的授权机构,例如:

my-pc.tailnet.ts.net
100.100.20.30
192.168.1.50
host.example:443
[fd00::1234]:443

DSH Launcher 会在保存之前以及再次启动 Harness 之前验证这些值。协议方案、路径、凭据、格式错误的端口和 shell 元字符都会被拒绝。

启动器本身会强制将 DSH Web 绑定主机设为 127.0.0.1。自由形式的附加参数无法覆盖 --host 或 --trusted-host;受信任的授权机构必须通过专用的“设置”字段进行配置。

对于远程访问,请将回环 Harness 端点置于受信任的网络边界之后,例如 Tailscale、WireGuard 或经过身份验证的反向代理。请勿将未经身份验证的 Harness 监听器直接暴露到公共互联网。

附加 CLI 参数

附加参数会被分词,每个词元都会通过 ProcessStartInfo.ArgumentList 直接传递给 DSH Node.js 进程。

启动器拥有的选项会被特殊处理:

- --host 会被拒绝,并保持固定为 127.0.0.1;
- --trusted-host 在自由形式参数中会被拒绝,必须使用受信任授权机构 UI;
- --port / --port=... 由启动器解析并验证,包括 --port 0;
- --no-open 是多余的,因为 DSH Launcher 始终负责浏览器交接。

参数值会被有意地从启动器启动日志中省略。即便如此,也不要将凭据、API 密钥或其他机密放入命令行参数中,因为命令行可能会通过操作系统或下游工具被观察到。

经过身份验证的浏览器交接

一些较新的 DeepSeek Harness 构建版本可以公布一个包含身份验证 / 引导令牌的浏览器 URL。DSH Launcher 将该 URL 视为敏感的运行时状态:

- 完整的交接 URL 仅保留在内存中;
- 携带令牌的 URL 绝不会写入 runtime.json;
- 启动日志行在持久化之前会被清理;
- 类似令牌的通用查询值会从日志中脱敏;
- 就绪探测使用干净的回环源,因此它们不会消耗或重放浏览器令牌;
- 内存中经过身份验证的 URL 仅在用户要求正在运行的启动器打开 DSH 时使用。

第二次调用启动器不会持久化或重建经过身份验证的交接令牌。如果需要经过身份验证的交接,请使用已在运行的托盘实例来安全地打开 DSH。

Harness 更新

当选择 Update DeepSeek Harness 时,DSH Launcher 会首先向 npm 查询 @deepseek-ai/dsh 的 dist-tags.latest,验证返回的版本,并将其与已安装的包版本进行比较。
如果两个版本完全相同,则跳过更新,正在运行的 Harness 进程保持不变。否则,启动器会安装确切解析出的版本,例如:

npm install -g @deepseek-ai/dsh@0.1.1-rc.2

可变的 @latest 目标绝不会直接出现在安装命令中。npm 仍然是上游包分发的信任边界。

配置

配置存储在 Git 仓库之外,位于:

%LOCALAPPDATA%\DeepSeekHarness\config.json

写入使用临时文件、回读验证和同目录替换。保存失败会向用户显示,而不是被忽略。

如果现有 JSON 已损坏,DSH Launcher 会保留一份带时间戳的副本,使用安全默认值并显示恢复警告,而不是静默覆盖原始配置。

日志

%LOCALAPPDATA%\DeepSeekHarness\logs\

文件:

harness.log
harness-error.log
launcher.log

每个活动日志的上限约为 5 MiB,并轮转为单个 .1 备份。类似令牌的值在写入时会被脱敏,但日志仍可能包含普通的上游 DSH 输出;在公开分享之前请先检查它们。

开发与 CI

安全敏感的解析、配置、更新版本处理和运行时端点行为在 tests/DSHLauncher.Tests 下有自动化回归测试。

GitHub Actions 在 Windows 上运行,执行还原、构建、测试、自包含 win-x64 发布和 CodeQL 分析。第三方 Actions 被固定到不可变的提交 SHA,Dependabot 为 Actions 和 NuGet 测试依赖项提出分组更新。

安全

有关漏洞报告流程和安全模型,请参阅 SECURITY.md。

重要不变量:

- 用户控制的设置绝不会被插值到 Harness shell 命令中;
- DSH Web 由启动器绑定到回环地址;
- 受信任的颁发机构会被验证,且无法通过自由形式的 --trusted-host 参数绕过;
- 仅终止启动器拥有的进程树;
- 无关的端口占用者保持不变;
- 经过身份验证的启动令牌不会保留在持久化的启动器状态和日志中;
- 配置写入失败和损坏恢复是可见的;
- npm 安装以确切验证的版本为目标,并且在已是最新时跳过;
- CI Actions 被固定到不可变的 SHA。

许可证

MIT。请参阅 LICENSE。

上游仓库有新提交时邮件通知你(每天最多一封,无更新不打扰),随时一键退订。

同作者(SimonMedy)的其他插件

💬 加入 DPharness 群聊

插件用法、部署报错、新插件第一时间同步——群里问,比一个人翻文档快。

点击加入 QQ 群
DPharness 群聊二维码,手机 QQ 扫码进群
扫码进群