KAIbsb
dsh-tray
DeepSeek Harness 的 Windows 托盘管家:启动/重启/停止、崩溃自动拉起、状态图标、开机自启
- Stars
- 1
- Language
- C#
- Created
- Aug 14, 2026
- Updated
- Aug 15, 2026
Introduction
dsh-tray
简体中文 | English
DeepSeek Harness 的 Windows 托盘管家:启动 / 重启 / 停止 / 崩溃自动拉起,全部在托盘右键完成。 不用开终端、不怕误关窗口,配合浏览器 APP 模式效果更佳!
免责声明:本项目为纯「Vibe Coding」产物,未经严格测试与代码审查,可能存在未知 Bug。请自行评估风险后使用;如遇问题,欢迎到 Issues 反馈。
功能特性
- 生命周期管理:启动 / 重启 / 停止 / 退出,全部在托盘右键菜单完成
- 单击托盘图标:未运行时自动启动并打开窗口,运行中直接打开窗口
- 状态图标:运行中 = 蓝色;停止 = 黑 / 白鲸,随系统深浅色实时切换
- 崩溃自动重启(可开关):harness 意外退出自动拉起,带冷却防死循环
- 开机自启(可开关):写注册表
HKCU\...\Run,免管理员 - 原生系统右键菜单:Win11 圆角主题样式,深色模式自动跟随
- 无终端窗口:隐藏拉起
node dsh web,输出重定向到独立日志文件harness.log,与托盘生命周期解耦 - 重启后自动刷新窗口:重启完成自动刷新浏览器 APP 模式窗口
- 按需提权:harness 若以管理员身份运行,托盘自动以管理员身份执行 kill(UAC 为「从不通知」时静默)
- 手动主题:跟随系统 / 亮 / 暗(设置窗切换,存 ini
theme键) - 自动更新:发现新版时设置窗一键下载 + 校验(sha256)+ 部署提示
- 日志:
%LOCALAPPDATA%\dsh-tray\tray.log,超过 5MB 自动轮转
下载与安装
- 从 Releases 下载最新的
dsh-tray.exe - 单文件,零依赖:无需安装任何运行时(Windows 10/11 自带 .NET Framework 4.8),双击即用
- 首次运行提示:未签名的小工具会被 SmartScreen 提示「未知发布者」→ 点「更多信息」→「仍要运行」(详见 FAQ)
- 升级:下载新 exe 直接覆盖旧文件即可,设置(开机自启、崩溃自动重启、
dshtray.ini)不受影响;设置窗检测到新版时也可一键自动更新(下载 + 校验 + 部署提示) - 想自己编译或贡献代码?见 开发者文档
快速开始
1. 安装依赖
| 依赖 | 说明 |
|---|---|
| Windows 10/11 | .NET Framework 4.8 系统自带 |
| Node.js | 运行 harness 所需 |
| DeepSeek Harness | 安装方法见 DeepSeek-Harness 仓库 |
| 浏览器(Chrome / Edge 等 Chromium 系) | 可选,用于浏览器 APP 模式窗口显示 |
2. 创建浏览器 APP 模式窗口(可选但推荐)
harness 的 Web UI 在 http://127.0.0.1:3080。不想让它混进浏览器标签页的话,可以把它做成独立的浏览器 APP 模式窗口(具体创建方法请自行查阅,搜索「浏览器 app mode」即可)。
之后托盘菜单「打开窗口」会自动拉起这个窗口;窗口关了不影响 harness,想再开点一下托盘即可。
3. 运行 dsh-tray
双击 dsh-tray.exe → 托盘出现鲸鱼图标 → harness 自动启动(无终端窗口)。以后不用再手动敲 dsh web 了。 启动、重启、停止等操作都在托盘右键菜单里,详见「使用说明」。
使用说明
托盘菜单
右键托盘图标弹出:
打开窗口
────────
启动 ← harness 停止时可用
重启 ← harness 运行时可用
停止 ← 只停 harness,托盘不退
────────
设置…
────────
退出 ← 仅退出托盘,harness 保持运行(停止用「停止」)
交互约定
| 操作 | 行为 |
|---|---|
| 左键单击托盘图标 | 未运行:启动并打开窗口;运行中:打开窗口 |
| 右键托盘图标 | 仅弹出菜单 |
状态图标
| 状态 | 图标 |
|---|---|
| 运行中 | 蓝色鲸鱼 |
| 已停止 | 黑 / 白鲸,随系统深浅色切换 |
配置
dshtray.ini 是托盘的唯一配置文件。首次运行会自动在 exe 同目录生成(带注释模板),设置窗口(菜单「设置…」)的所有开关/选项也直接改这个文件。修改保存后,下次启动托盘生效。
# dshtray.ini
url = http://127.0.0.1:3080 # 默认值;端口由 url 推导,改端口直接改这里
lang = # 界面语言 zh/en,留空 = 跟随系统
autorestart = true # 崩溃自动重启 true/false
autostart = false # 开机自启 true/false(同时写入 Windows 启动项)
theme = # 亮/暗主题:light/dark,留空 = 跟随系统
node = # Node.js 路径,留空 = 自动检测
dshentry = # dsh 入口脚本路径,留空 = 自动检测
dshworkdir = # dsh 工作目录,留空 = 自动推断
chrome = # Chromium 系浏览器路径,留空 = 自动查找 Chrome/Edge
留空某行 = 该项使用默认值 / 自动检测(Node/Dsh 入口/浏览器走 PATH、常见安装路径、npm 全局目录);删除或注释某行同样生效。url 是唯一的端口配置项(端口由其自动推导)。autostart 是开机自启的唯一来源,Windows 启动项只是它的镜像(启动时按文件同步)。theme 手动主题(light/dark)优先于系统设置,留空 = 跟随系统。
日志
%LOCALAPPDATA%\dsh-tray\tray.log—— 托盘自身操作记录(启动 / 停止 / 重启 / 提权 / 自动重启等),超 5MB 自动轮转为tray.log.old%LOCALAPPDATA%\dsh-tray\harness.log—— harness 输出,独立于托盘生命周期(托盘退出后仍在写入)- 托盘菜单已无「打开日志」;可在设置窗口(菜单「设置…」)里打开日志文件夹
FAQ
完整 FAQ 见 docs/FAQ.md(Full FAQ: docs/FAQ.en.md)。以下是几个最常问的:
dsh-tray 会访问网络吗?
启动时会后台静默检查一次 GitHub 最新版本(仅此一次;可离线,失败静默,不弹窗);其余时候不访问网络。除此之外只在本机工作:启动/停止本地进程、读写注册表与日志,以及「打开窗口」时唤起本机浏览器。
退出托盘后 harness 还在运行?
这是设计行为:「退出」只退出托盘,harness 保持运行;需要完全停止请用菜单里的「停止」。
为什么有时会弹出 UAC 提权?
当 harness 以管理员身份启动时,停止 / 重启 / 退出需要管理员权限才能结束它,此时会弹 UAC。若系统 UAC 设置为「从不通知」则静默完成,不弹窗。
许可证
MIT License —— 可自由使用、修改、商用、再分发,仅需保留版权声明。