chenzhaoxuan0/dsh-tray

chenzhaoxuan0★ 0C#最后同步: 2026-08-14

在 GitHub 打开

DeepSeek Harness tray app + web settings plugin: show tray icon / restart / exit the dsh service. 系统托盘 + 设置页控制(MIT)

README 摘要

dsh-tray DeepSeek Harness 的 托盘 + Web 设置插件 单一仓库:系统托盘图标(右键菜单只有 重启 / 退出 )+ Web 设置页里的「显示托盘图标 / 重启 / 退出」卡片。两个入口驱动同一个托盘程序,一次安装全部到位。 预览 这是什么 一个仓库包含两个组件,功能相同、入口不同: 组件 位置 作用 托盘程序 DshTray.exe src/DshTray (C WinForms) 系统托盘图标,右键菜单: 重启 / 退出 Web 设置插件 dsh-tray-plugin plugin/ (DSH 官方 SDK) 设置 - 插件 页面卡片: 显示托盘图标 / 重启 / 退出 + 实时状态 + 配置表单 两者的「重启 / 退出」都由 DshTray.exe 执行:按端口找到 dsh 服务进程,捕获其 命令行 + 工作目录 , 杀掉进程树后用完全相同的命令重放拉起(支持 pnpm dsh web / 源码 node ... bin.ts web / npx @deepseek-ai/dsh 等任意启动方式)。 为什么不是纯插件? DSH 插件是进程内模块,框架没有任何原生系统托盘能力(见官方 develop/basic)。 托盘图标、右键菜单是 Windows 原生外壳元素,必须由独立原生进程承载;「重启 / 退出」还需要控制宿主进程本身, 在进程内部做很别扭。因此:托盘用 C 小程序(与 dsh-launcher 同技术栈),Web 入口用官方 SDK 插件,两者通过 DshTray.exe 的 CLI 协同。 快速安装(一键) 需要:.NET SDK 10(构建托盘)、Node.js 18+ 与 pnpm(构建插件)、已安装 dsh 并启动过目标 profile。 脚本做四件事: 1. 构建托盘程序并把 DshTray.exe 复制到 %LOCALAPPDATA%\dsh-tray\ (插件自动检测的首选位置); 2. pnpm install && pnpm build 构建 plugin/ 设置插件; 3. 把插件注册进 /.dsh/profiles/ /package.json (dependencies + bundles,幂等)并 pnpm install ; 4. 提示重启。 然后 重启 dsh 服务 (托盘右键 - 重启,或手动),浏览器硬刷新,进入 设置 - 插件 即可看到卡片。 手动安装 使用 托盘 (直接运行 DshTray.exe ): - 右键菜单恰好两项: 重启 / 退出 ;双击图标打开 http://127.0.0.1:3080 ; - 单实例;日志 %USERPROFILE%\.dsh-tray.log 。 Web 设置插件 (设置 - 插件 - dsh-tray 卡片): - 实时状态:托盘图标运行…

在 GitHub 查看完整 README →
工具/开发dsh-plugin

分类