dsh-wsl-tray

DSH PLUGIN会话与消息

仓库 liyu34/dsh-wsl-tray · npm dsh-wsl-tray

会话与消息 L5 · 运行验证通过 安全审查:低风险 可信度:金 可安装插件
安装这个插件

为运行在 WSL 中的 DeepSeek Harness 提供 Windows 桌面快捷方式与系统托盘启动器,支持守护进程自动重启与状态监控。

验证等级 L5 L5 · 运行验证通过
GitHub 星标 3 复刻 0 · 未关闭 issue 0
最近更新 2026-09-27 创建于 2026-08-22
README 7.7 KB 正文体量,越大说明说明书写得越细

安装

可安装插件
在 DSH 里执行,装完用 dsh plugin list 确认已挂上;标了 L4 / L5 的命令已在沙盒里真实跑通
dsh plugin --profile web add github:liyu34/dsh-wsl-tray#v0.1.7
兼容 DSH 版本0.2.0-rc.2 等 4 个版本版本不匹配时安装会报错
Node.js 要求>=20来自仓库 package.json 的 engines 字段
前置依赖@deepseek-ai/cordis@^4.0.1、@deepseek-ai/dsh-client-ui-primitives@^0.1.7-alpha.2需要同时安装的同级依赖
npm 包名dsh-wsl-tray可用 npm view 查看包信息

能做什么

4 项功能
字段来自项目仓库与公开索引,中文说明由本站标注

dsh-wsl-tray:为 DeepSeek Harness 提供 WSL 桌面快捷方式与系统托盘启动器

  • 桌面快捷方式启动
  • 系统托盘菜单控制
  • 守护进程自动重启
  • 状态与日志查看

适用场景

终端命令

上游标签

dsh-pluginwsl

验证等级与安全审查

L5 · 运行验证通过
自动化流程结论,不是人工审核
验证等级L5 · 运行验证通过在 dsh 沙盒中完成安装与运行冒烟——装得上、跑得起来
安全审查低风险静态分析结论,未标注不代表已通过审查
仓库健康度活跃按仓库活跃度与最近更新时间给出
可信度金综合仓库活跃度与验证结果

上面的结论来自上游最近一次自动化验证(2026-10-08): 同一套检查会在插件发新版后重跑,页面显示的是最新一次的逐项结果。

逐项检查结果

L1 · 已找到 ✓ 通过
  • L1.0_DEFAULTED_FROM_L3 由 L3 推定 默认通过——L3 安装规范已通过(全库 L3 扫描策略)
L2 · 结构化 ✓ 通过
  • L2.0_DEFAULTED_FROM_L3 由 L3 推定 默认通过——L3 安装规范已通过(全库 L3 扫描策略)
L3 · 安装规范 ✓ 通过
  • L3.1_INSTALL_COMMAND_PARSED 安装命令已解析 方式:安装规范解析
  • L3.2_DSH_VERSION_DECLARED DSH 版本已声明 方式:DSH 版本声明
L4 · 安装已测 ✓ 通过
  • L4.1_INSTALL_EXECUTED_CONFINED 受限沙盒内执行安装 方式:沙盒安装执行
  • L4.2_INSTALL_SUCCESS 沙盒安装成功 方式:沙盒安装执行
  • L4.3_ARTIFACT_CONFIRMED 安装产物已确认 方式:沙盒安装执行
L5 · 运行已测 ✓ 通过
  • L5.1_INSTALL_PASSED_SANDBOXED 沙盒安装通过 方式:沙盒安装执行
  • L5.2_WEB_BOOT_READY Web 启动就绪 方式:Web 启动
  • L5.3_HTTP_SERVED HTTP 服务响应 方式:HTTP 请求
  • L5.4_PLUGIN_INVENTORY_ACTIVE 插件清单中已激活 方式:插件清单查询

风险详情

  • 审查结论 通过
  • 结论说明 vet 静态分析未发现可疑行为,判定为干净(clean)。
  • 风险计数 严重 0 / 高 0 / 中 0
  • 风险详情 未发现严重或警告级问题。

仓库档案

会话与消息
字段来自项目仓库与公开索引,中文说明由本站标注
作者 / 维护方liyu34仓库 dsh-wsl-tray · 默认分支 master
分类会话与消息desktop
收录类型可安装插件声明了 dsh.bundle、可用 dsh plugin add 安装的条目
开发语言TypeScript仓库主语言
许可证MIT商用或二次分发前请确认条款原文
星标 / 复刻 / issue3 / 0 / 0收录时的数值,非实时
创建 / 更新2026-08-22 · 2026-09-27最后推送 2026-09-27
本站收录2026-08-22首次进入本站目录的时间

README 全文

7.7 KB
作者原文,中文版优先;只做安全转义,不改内容

dsh-wsl-tray

中文 | English

为运行在 WSL 里的 DeepSeek Harness(DSH)提供 Windows 桌面快捷方式与系统托盘启动器。

  • 双击桌面 DeepSeek Harness 快捷方式:DSH 会在 WSL 后台启动(或复用已运行的实例),稍后浏览器自动打开(只打开一个标签页)。
  • 启动后出现 DSH 鱼形托盘图标,右键菜单:
  • 打开 DeepSeek Harness
  • 重新生成桌面快捷方式
  • 重启 DSH 服务
  • 暂停守护进程 / 恢复守护进程
  • 退出托盘
  • 双击托盘图标也会直接打开 DSH 网页。
  • 托盘内置守护进程:定时探测 DSH 网址,探测失败即自动重启 DSH,连续失败到上限后
    停止自动重启,并把全过程写入 watchdog.log(详见下文「守护进程」)。
  • 插件在设置里拥有独立页面(设置 → WSL 桌面与托盘):查看状态(托盘文件 + 守护
    进程状态),一键重新生成桌面快捷方式,还可以直接查看守护日志。
  • 全程无控制台窗口:快捷方式通过 wscript.exe + VBS 完全隐藏启动。

环境要求

  • DSH 本身运行在 WSL 中(WSL_DISTRO_NAME 已设置,或 /mnt/c 可访问)。
  • Windows 侧可执行 wscript.exe / powershell.exe / wsl.exe。
  • DSH web 0.1.7-alpha.2 或更新版本(客户端设置分区 + 客户端 bundle 机制)。

安装

发布到 npm 后,在 DSH web profile 中执行:

dsh plugin --profile web add dsh-wsl-tray

或手动加入 profile:

cd ~/.dsh/profiles/web
pnpm add dsh-wsl-tray

并把 "dsh-wsl-tray" 加入 package.json 的:

"dsh": {
"profile": {
"bundles": [
"@deepseek-ai/dsh-base",
"@deepseek-ai/dsh-web-app",
"dsh-wsl-tray"
]
}
}

重启 dsh web,然后打开 设置 → WSL 桌面与托盘 即可看到该页面。

源码编译安装(从 checkout 运行 DSH)

托盘永远不用 src 启动 checkout。用 tsx 跑 src 时,插件包会按 runtime 解析模式从
lib 加载,同一个包在一个进程里出现两份实例;Symbol 不跨实例共享,于是工具状态取到
undefined、调用工具直接报错。因此 start.sh 只会启动 checkout 的构建产物:

cd ~/deepseek-harness
pnpm run build        # 必须执行一次;之后每次改源码都要重新构建

然后在 设置 → WSL 桌面与托盘 里把源码路径填上(填仓库根目录或它的 apps/cli
目录都可以)。配置了路径之后:

  1. start.sh 优先执行 node /apps/cli/lib/bin.js web --no-open —— 既不用
    src,也不会被 PATH 上的另一个 dsh 抢走。
  2. 构建产物缺失时,启动脚本把原因和修法写入 ~/.dsh/dsh-wsl-tray/start.log 并退出,
    而不是悄悄换成别的安装版本运行。
  3. 在 WSL 环境里导出 DSH_WSL_TRAY_AUTO_BUILD=1,脚本会在产物缺失时自己跑
    pnpm run build(完整构建较慢,因此默认关闭)。
  4. 源码比构建产物新时,脚本会写一条 WARN ... newer than the build output 日志,
    避免「改了源码却像没生效」这种排查噩梦。

已知限制:新鲜度检查只扫描 /apps/cli/src,改 packages/ 下的源码不会被
检测到,改完记得自己跑一次 pnpm run build。

生成的文件

插件会在以下位置写入五个生成文件:

文件 位置
dsh.ico %USERPROFILE%\.dsh\dsh-wsl-tray\dsh.ico
dsh-tray.ps1 %USERPROFILE%\.dsh\dsh-wsl-tray\dsh-tray.ps1
dsh-tray.vbs %USERPROFILE%\.dsh\dsh-wsl-tray\dsh-tray.vbs
start.sh ~/.dsh/dsh-wsl-tray/start.sh
stop.sh ~/.dsh/dsh-wsl-tray/stop.sh

并创建:

%USERPROFILE%\Desktop\DeepSeek Harness.lnk

托盘运行期间,守护进程会维护两个运行期文件(设置页面上都能看到):

文件 位置
watchdog.log %USERPROFILE%\.dsh\dsh-wsl-tray\watchdog.log(512KB 自动滚动)
watchdog-status.json %USERPROFILE%\.dsh\dsh-wsl-tray\watchdog-status.json(每次探测更新)

快捷方式指向 wscript.exe,通过 dsh-tray.vbs 隐藏启动托盘 PowerShell;托盘再通过
WScript.Shell.Run(..., 0, false) 隐藏启动 WSL 中的 start.sh。

守护进程

守护进程放在托盘里运行(托盘是唯一刻意独立于 DSH 的常驻进程),它回答了重启守护的
三个核心问题:

  1. 如何判断 DSH 运行状态:每 probeIntervalSec(默认 10 秒)对 DSH 网址做一次
    Invoke-WebRequest HTTP 探测(超时 3 秒)。每次探测都会记录状态码或错误文本,
    因此「连接被拒(无进程监听)」「超时(服务器卡死)」「异常状态码」在日志里是可以
    区分的。连续 downThreshold(3)次探测失败才会判定 DSH 失活。
  2. 重启是否成功与放弃:触发一次重启(通过 wsl.exe 停止再启动)后,等待
    restartWaitSec(180 秒)内网址重新有响应:有响应 = 重启成功,失败计数清零;
    窗口内没响应 = 本次重启失败。连续 maxRestartFailures(3)次失败后守护进程
    暂停自动重启,不再无限重试。可通过托盘菜单「恢复守护进程」手动恢复,DSH
    一旦恢复响应也会自动恢复。
  3. 日志:每次探测、状态迁移、重启触发、成功/失败、暂停/恢复都会带时间戳和
    级别追加到 watchdog.log;当前状态机快照每次探测写入 watchdog-status.json。
    设置页面通过 /dsh-wsl-tray/watchdog 和 /dsh-wsl-tray/watchdog-log 暴露它们。

状态机:starting(启动宽限期)→ probing(稳态探测)→ restarting(重启后等待)
→ backoff(冷却)或 paused(放弃/手动暂停)。上面的调参值烘焙在生成的
dsh-tray.ps1 里;改 src/artifacts.ts 的 DEFAULT_WATCHDOG_CONFIG 后重新生成即可。

不发布 npm 的安装方式

如果暂时不想注册 npm 账号,可以直接安装仓库里已生成的预构建 tarball:

cd ~/.dsh/profiles/web
pnpm add /path/to/dsh-wsl-tray-github/dist/dsh-wsl-tray-0.1.7.tgz

然后按上面的方式把 "dsh-wsl-tray" 加入 profile 的 dsh.profile.bundles。

工作原理

  1. 隐藏启动:快捷方式 -> wscript.exe -> VBS -> 隐藏 PowerShell 托盘。
  2. DSH 保活:start.sh 让 DSH 在隐藏 wsl.exe 会话中前台运行,因此 WSL 不会在
    一次性启动器退出后回收进程。
  3. 自动开网页:托盘脚本里的 Windows 定时器每 2 秒探测 DSH URL,一旦就绪就用
    Start-Process $webUrl 打开默认浏览器。
  4. 守护进程:第二个定时器每 10 秒探测 URL,按上面描述的状态机自动重启。
  5. 重新生成:设置页面和托盘菜单都调用同一个 dsh-tray.ps1 -Regenerate 逻辑。

开发

npm install
npm run typecheck
npm test
npm run build
npm pack --dry-run

已知限制

  • 仅在 WSL 环境中启用;非 WSL 环境设置页面会提示不可用。
  • 守护进程只在托盘运行时有效:选择「退出」会通过生成的 stop.sh 同时停止守护进程和
    它启动的 DSH 实例(PID 文件精确跟踪 start.sh 启动的实例,另有模式兜底覆盖源码、
    npm 全局、npx 三种 bin.js web 启动方式)。若希望开机后就有守护,可把快捷方式加入
    Windows 启动文件夹。
  • 用其他方式(不同参数、别的工具)启动的 DSH web 实例不被 PID 文件跟踪;若模式兜底
    没有命中,请手动停止(Windows 任务管理器或 wsl --shutdown)。

常见问题

8 问
答案由本站依据条目字段整理,不引用上游原文
dsh-wsl-tray 怎么安装?

在 DSH 里执行 `dsh plugin --profile web add github:liyu34/dsh-wsl-tray#v0.1.7` 即可。对应的 npm 包名是 `dsh-wsl-tray`。

dsh-wsl-tray 的验证等级是什么意思?

L5 · 运行验证通过。在 dsh 沙盒中完成安装与运行冒烟——装得上、跑得起来

dsh-wsl-tray 安全吗?

低风险。vet 静态分析未发现可疑行为,判定为干净(clean)。

dsh-wsl-tray 支持哪些 DSH 版本?

上游记录的兼容版本包括 0.2.0-rc.2、0.2.0-rc.1、0.1.2-alpha.1、0.1.1-rc.2。

dsh-wsl-tray 需要什么运行环境?

Node.js >=20;需要同时安装 @deepseek-ai/cordis@^4.0.1、@deepseek-ai/dsh-client-ui-primitives@^0.1.7-alpha.2。环境不满足时安装会失败,建议先确认本机版本。

dsh-wsl-tray 用的是什么许可证?

上游标注为 MIT。商用或二次分发前请到仓库确认许可证原文。

dsh-wsl-tray 有哪些功能?

桌面快捷方式启动、系统托盘菜单控制、守护进程自动重启、状态与日志查看。

这条记录的数据可靠吗?

本站按仓库名去重后合并整理,字段以作者仓库与 npm 元数据为准;安装命令、仓库地址与 README 保持原文,带 L4 / L5 标记的安装命令已在隔离沙盒里真实跑通。

同名或近似条目

1 条
不同作者的仓库分开列,请确认你要装的是哪一个
会话与消息
按星标排序,可作替代方案

dsh-desktop

dsh-desktop

为 DeepSeek Harness (DSH) 插件生态打造的现代化桌面端解决方案。万物皆「插件」,桌面本身也是「插件」。

L3 · 安装规范通过 3.0 万 星

openpets

openpets

L4 · 沙盒安装通过 1,274 星

deeptide

deeptide

L4 · 沙盒安装通过 1,104 星

jingyun-dsh

jingyun-dsh

井云 DSH 客户端插件,为 DeepSeek Harness 注入会员登录、订阅支付、算力管控与应用市场,让智能体和技能快速变成可交易商品

L3 · 安装规范通过 1,004 星

study-mate

study-mate

StudyMate 是 DSH 的「学习模式」预设与技能包,为数学、计算机科目定制学习路线、讲解课件与练习评估,跨科目共享记忆。

未标注验证等级 856 星

插件的元信息来自作者仓库;分类、验证等级与安全结论的中文说明为中文整理,最近核验 2026-10-08。