Binaryinject/dsh-tray

Desktop桌面端 ⭐ 2 MIT Clients & Launchers客户端与启动器

DeepSeek Harness 的原生托盘启动器。它负责启动 DSH Web 服务、等待 DSH 官方就绪信号,并在 Windows 上优先打开 Chrome PWA 应用窗口。

catalog descriptioncatalog 简介 / catalog description:DeepSeek Harness 的托盘启动器(原生、无依赖)

Project Overview项目介绍

dsh-tray is a native system tray and menu bar launcher built exclusively for DeepSeek Harness (DSH). It spins up the DSH web service via npx, listens for DSH’s ready signal, and checks for a valid Google Chrome installation before opening any interface. If Chrome is not found, it displays a themed prompt with official download links and exits, avoiding conflicts from unmet prerequisites. It also automatically cleans up old processes that occupy the target port, ensuring only one DSH instance managed by the tray runs at any time.

The launcher supports one-click switching of DSH’s npm distribution branches via the tray menu, letting users toggle between the stable latest, development next, and preview alpha channels. It also supports creating, switching, and deleting DSH web profiles, and automatically restarts the DSH service after any change to the branch or profile. The custom-styled tray menu matches DSH’s official design language, with options to check for updates, view logs, restart the service, and bring minimized DSH windows to the foreground.

dsh-tray is released under the permissive MIT license, and is distributed as a native single-file binary compiled via NativeAOT, so no separate .NET runtime installation is required. To run the app, users need to have Node.js (with npx available) and Google Chrome already installed on their system. Pre-built installers are available for 64-bit Windows and Apple Silicon macOS, which can be downloaded directly from the project’s GitHub Releases page for immediate use.

dsh-tray 是专为 DeepSeek Harness(DSH)打造的原生系统托盘启动器,负责启动 DSH Web 服务,等待服务就绪后再打开界面。它会优先在 Windows 平台调用 Chrome 打开已安装的 DSH PWA 应用窗口,启动前会检查系统是否已安装 Google Chrome,未安装则提示下载后退出。同时它会清理占用目标端口的旧进程,保证仅运行当前托盘管理的 DSH 实例。

它支持在托盘/菜单栏切换 DSH 的 npm 分发分支(latest 稳定版、next 开发版、alpha 预览版,默认 next),也支持创建、切换和删除 DSH 配置文件(Profile),切换后自动重启服务。托盘菜单自带自绘主题,和 DSH 官方样式保持一致,支持状态通知、查看日志、重启服务、激活已最小化的 DSH 窗口等功能。

该项目采用 MIT 许可证,使用 NativeAOT 单文件发布,运行时不需要额外安装 .NET 运行环境。运行依赖 Node.js(带 npx 能力)和 Google Chrome,首次启动可能需要联网下载依赖。支持 Windows x64 和 macOS Apple Silicon 平台,可通过官方发布的安装包直接安装使用,也可自行编译构建。

Pre-install check安装前体检Compatibility · Security兼容性 · 安全性 2 warnings2 项注意
  • Only 2 stars - very few users, little community feedback星标只有 2,几乎没人在用,遇到问题缺少社区反馈
  • No DSH plugin manifest detected - it may only carry the dsh-plugin topic, so the install method must be confirmed on the spot未检测到 DSH 插件清单:可能只是打了 dsh-plugin 话题,安装方式要现场确认
DSH walks through these 9 checksDSH 会逐条核对这 9 项

Compatibility兼容性

  • DSH, Node, OS and profile requirementsDSH 版本 / Node 版本 / 操作系统 / profile 是否满足要求
  • External dependencies and runtimes (Electron / Python / Docker, ...)外部依赖与运行时(Electron / Python / Docker 等)是否齐备
  • Conflicts with installed plugins: command names, skill / tool names, ports, duplicate MCP registration与已装插件是否冲突:命令名、skill / tool 重名、端口占用、重复 MCP 注册

Security安全性

  • Repo matches the facts registered here; archived or abandoned?仓库是否与页面登记一致,是否归档或长期停更
  • Safety of preinstall / install / postinstall and install.sh / setup.ps1preinstall / install / postinstall 与 install.sh、setup.ps1 是否安全
  • curl|bash, download-then-execute, obfuscation, unrelated domains → stop immediatelycurl|bash、下载即执行、混淆代码、无关域名 → 立刻停止
  • Typosquatting or unmaintained packages among the new dependencies新增依赖里有没有 typosquatting 或无人维护的包
  • Requested permissions vs. what the feature actually needs申请了哪些权限、是否超出功能所需(filesystem / network / shell / clipboard)
  • Any sudo / admin requirement, plus uninstall and rollback是否要求 sudo / 管理员权限,以及卸载与回滚方式

Anything uncertain must be marked unknown with a note on how to confirm it. This site's signal screen is a static snapshot, not a security audit.拿不准的必须标「未知」并说明要我怎么确认。本站的信号筛查是静态快照,不能替代安全审计。

Or use CLI install (for developers)或使用命令行安装(适合开发者)

CLI Install命令行安装

dsh plugin --profile web add github:Binaryinject/dsh-tray

把 Binaryinject/dsh-tray 加入你的 DSH 配置(web profile)即可启用。

READMEREADME

dsh-tray

DeepSeek Harness 的原生托盘启动器。它负责启动 DSH Web 服务、等待 DSH 官方就绪信号,并在 Windows 上优先打开 Chrome PWA 应用窗口。

工作方式

  • 后台运行 npx --yes --loglevel http @deepseek-ai/dsh[@分支] web --port <port> --no-open(分支 latest / next / alpha 可选,默认 next)
  • 监听 DSH 输出的 dsh web: http://...,确认 Web 服务初始化完成后才打开界面
  • 启动前先确认本机已安装 Google Chrome:未安装时弹出与更新提示同一套皮肤的提示框,给出官方/国内下载链接后退出,不会启动服务
  • Windows 优先使用 Chrome 的 chrome_proxy.exe --app-id=... 启动已安装的 DSH PWA
  • 启动前先在已运行的 Chrome 里查找 DSH 窗口(进程是 chrome.exe、窗口类是 Chrome_WidgetWin_1、标题是 DSH 标题),找到就把该窗口切到前台,不再启动第二个 App 窗口
  • 如果 Chrome PWA 尚未安装,则打开带 token 的 DSH 页面,并提示手动点击地址栏的“安装应用”
  • DSH 本身不会自动打开普通浏览器页面,避免网页和 App 同时启动
  • 启动前会清理占用目标端口的旧服务,确保只运行当前托盘管理的实例

功能

  • Windows 系统托盘 / macOS 菜单栏
  • 托盘菜单(Windows)为自绘皮肤:与更新/创建对话框一致的深浅主题、圆角与高亮样式,不随系统菜单外观变化
  • 启动、下载、安装和退出状态通知
  • 托盘菜单:显示当前版本与 dsh 版本分支、打开界面、启动 dsh 控制台、查看日志、重启服务、退出
  • 双击托盘图标激活已打开的 DSH 窗口(最小化的会先还原):Chrome 不会对 PWA 启动去重,同一个 App 每启动一次就多一个窗口,所以只有在找不到 DSH 窗口时才真正启动新的 App 窗口
  • 启动时先检查更新(自绘对话框):选择「立即更新」则先更新、服务不启动,安装重启后自动开启服务;点托盘菜单的「重启服务器」时也会在后台检查一次,有新版就弹出同一个对话框
  • 重启服务前自动关闭所有 DSH Chrome App 窗口(按窗口识别,不依赖进程命令行:进程必须是 chrome.exe、窗口类必须是 Chrome_WidgetWin_1、标题必须是 DSH 标题或本端口 URL;同一个 Chrome 实例里的其它标签页不受影响)
  • 单实例和命名管道控制
  • NativeAOT 单文件发布,不需要安装 .NET Runtime
  • dsh 版本分支可选(latest / next / alpha),托盘菜单一键切换,切换后自动重启服务
  • dsh Profile 可切换、可创建(web 型,含基础组合包与网页外壳)、可删除;切换后自动重启服务
  • 启动/运行日志独立窗口:显示服务启动与运行消息,服务就绪后 2 秒自动隐藏(更新进度另用「更新」窗口显示);日志行超出可用宽度时自动换行(进度窗口里的小日志预览同样处理),并从最新一条往回填满可见区域
  • 「查看日志」为自绘日志查看器(流式读取日志尾部,支持滚轮/键盘/滚动条导航,超宽的长行按窗口宽度自动换行),不再调用系统记事本

编译

Windows

要求:.NET 10 SDK,以及带 MSVC C++ 工具链的 Visual Studio Build Tools。

dotnet publish -c Release -r win-x64

产物:bin\\Release\\net10.0-windows\\win-x64\\publish\\dsh-tray.exe

也可以运行仓库中的 NativeAot.bat。

构建完成后,双击 install-local.bat 可以把新构建覆盖到已安装位置并自动重启托盘。脚本会先停掉正在运行的托盘:运行中的 exe 被 Windows 锁定无法覆盖,而且单实例机制会让新启动的实例只是请求旧实例重开窗口。注意停托盘会一并关闭 DSH App 窗口并停止 dsh 服务,脚本结束时会重新启动。

Windows 安装器(NSIS)

安装包由 NSIS 3.12(当前稳定版)构建,脚本是仓库根目录的 installer.nsi:

# 需要先在仓库根目录放好 publish 产物(CI 中由 workflow 复制)
Copy-Item bin\Release\net10.0-windows\win-x64\publish\dsh-tray.exe .
makensis installer.nsi

产物:dsh-tray-setup.exe(CI 中重命名为 dsh-tray-setup-win-x64.exe)。

Showing the opening section of the README — the full document lives in the repository以上为 README 开头摘要,完整文档在仓库内 · View the full README on GitHub →在 GitHub 查看完整 README →

← 上一个 Prev dshmarketplace 下一个 Next dsh-np-ppt →