在 Windows 系统托盘中管理运行于 WSL2 的 DeepSeek Harness。当前版本为 v1.0.6。
本项目是个人作品,并非 DeepSeek 官方产品,也不代表 DeepSeek 官方认可或背书。
- 自动发现 WSL2 发行版及其中的 DSH、Node.js 和 npm 环境
- 从托盘启动、停止、重启并打开 WSL 中的 DSH Web 服务
- 只管理启动器创建并记录身份的进程,不误停其他
dsh web或端口进程 - 检查 DSH 与启动器更新,显示更新细则、阶段进度和 npm 输出
- 更新失败时尝试恢复旧版本及原服务状态
- 支持 system npm、nvm、fnm、asdf 和 Volta;仅在系统 npm 目录不可写时使用 WSL root 安装
- 自包含 Windows x64 单文件发布,无需另装 .NET Runtime
Windows 原生 Node.js 用户请使用独立的 DSH Tray Launcher for Windows。
修复 WSL 校时后托盘误判原 DSH 为未受管端口的问题:进程身份改用内核 boot ID 和启动计数;停止失败保留管理记录,不再假报停止并删除记录。
- WSL 未手动开启时,托盘先显示,后台发现重试,并等待服务就绪,减少冷启动误报。
- 新 DSH 已启动但旧入口无法认证:改用当前受管进程的启动令牌地址,Windows 侧验证认证访问。
- 更新前停止受管服务与插件,隔离第三方配置,先验证新版核心;更新失败尝试恢复旧版本与原状态。
- 更新后的首次启动只询问一次“仅核心 / 附加第三方插件”;以后从右键菜单切换,插件启动失败尝试恢复核心。
- 右键菜单点击桌面或其他窗口后收起,避免菜单一直停留。
- 使用 DeepSeek Harness 官方黑海豚图标,保留系统 npm 权限处理,并修正 WSL2 专用自更新源。
核心模式保留原会话、凭据和设置,不删除原插件。插件仍可在原环境单独修复或更新后再启用。
| 项目 | 本次范围 |
|---|---|
| 托盘 | v1.0.6,Windows 10/11 x64,WSL2;无需另装 .NET Runtime |
| 真实环境 | Windows + Ubuntu WSL2,Node.js 22.22.1 |
| DSH 已验证 | @deepseek-ai/dsh@0.1.1-rc.2、0.1.5-rc.2 |
| 新启动协议 | --profile web 与新版本地 token 认证入口 |
上述两个 DSH 版本完成真实启动验证;其他版本及发行版未逐一验收,不承诺未来启动协议不变。Node.js 需符合所安装 DSH 的版本要求。第三方插件仅检查整套服务能否启动,不保证每项插件功能兼容。
- Windows 10/11 x64,WSL2 中至少有一个 Linux 发行版
- WSL 中已安装 Node.js、npm、
curl、ps、setsid和ss - Windows 能访问 WSL 中的
http://127.0.0.1:3080
首次安装 DSH:
# nvm、fnm、asdf、Volta 等用户级 Node.js 环境
npm install -g @deepseek-ai/dsh
# 发行版自带的系统级 npm,出现 EACCES 时
sudo npm install -g @deepseek-ai/dsh确认 dsh --version 能在 WSL 中正常执行。不要给 nvm、fnm、asdf 或 Volta 的 npm 命令加 sudo。
- 从 Releases 下载最新的
*-wsl-win-x64-portable.zip。 - 解压到长期保留的目录,运行
dsh-tray.exe。 - 首次启动时选择包含 DSH 的 WSL 发行版和环境。
- 双击托盘图标打开网页;右键可管理服务、检查更新、查看日志和设置开机启动。
- 如需桌面入口,在托盘菜单中选择“创建桌面图标”。
详细说明和排障见 WSL.md。
- Windows 托盘程序与当前维护:Kindlylol
- 最初的 WSL 后端方案:Hymnia(目前没有 GitHub 账号)
Hymnia 的贡献已按本项目的进程安全与可复现构建要求重构;发布包只由本仓库源码构建。
需要 .NET 10 SDK 和 PowerShell 7:
dotnet build .\tray-wsl\dsh-tray.csproj -c Release
pwsh -NoProfile -File .\build-portable.ps1 -Version 1.0.6 -Backend wsl启动器不收集遥测。版本检查会访问 GitHub 和 npm Registry,更新只在用户确认后执行。问题请提交到 GitHub Issues,不要附带令牌、账号或私人目录信息。
源代码采用 MIT License。DeepSeek、DeepSeek Harness、相关名称及图标的权利归各自权利人所有,详见 THIRD_PARTY_NOTICES.md。
