DeepSeek Harness Hub
← 返回列表

konmins/delfin

DeepSeek Harnessspec-screened在 GitHub 查看 ↗
未验证

A Windows system-tray controller for DeepSeek Harness dsh ·…

尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/9/12 · 已提供中文文档

A Windows system-tray controller for DeepSeek Harness (dsh) · dsh 的 Windows 托盘启动器:一键启停、版本管理与更新

综合分
29.5
GitHub 分
29.5
用户评分
★ Stars
0
周下载量
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add konmins/delfin
该插件未发布到 npm,走 GitHub 源安装(pnpm 若拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑)
数据截至 2026/9/16(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动

README

简体中文 · English

Delfin

DeepSeek Harness(dsh)的 Windows 系统托盘控制器

服务状态一眼可见,启停重启一键完成,内置版本管理与一键更新。

Delfin —— 德语与西班牙语里的「海豚」。就像任务栏角落那只小海豚,安静地守着你的 dsh。

Release
License: MIT
Platform
Python
Unofficial

这是什么

DeepSeek Harness(命令 dsh)提供了一个本地 Web 控制台。但它需要一直挂着一个终端窗口,出了问题也只能对着滚动的日志发呆。

Delfin 把这些收进系统托盘:

- 海豚图标右下角一个 绿点/红点,扫一眼就知道服务活着没有
- 右键即可 启动 / 停止 / 重启,打开 Web 界面
- 内置 版本检查与一键更新,还能在 latest / next / alpha 通道之间切换
- 全程 没有控制台窗口,也不占用任务栏

功能特性

| 特性 | 说明 |
| --- | --- |
| 状态可视化 | 托盘图标右下角状态点:绿=运行中,红=已停止;悬停显示版本与 PID |
| 一键控制 | 启动 / 停止 / 重启服务,停止时会连子进程一起收干净 |
| 打开 Web 界面 | 自动从服务日志里取出带 token 的地址再打开浏览器(新版本 dsh 直连会 401) |
| 版本管理 | 自带本地受管运行时(runtime/),版本可控、可随时切换 |
| 一键更新 | 停服务 → 下载安装 → 自动重启,全程只弹一个气泡 |
| 多通道 | latest / next / alpha 三个通道,偏好记在 settings.json |
| 中英双语 | 界面文案内置中英两套,默认跟随系统语言,也可在托盘菜单里随时切换 |
| 自动检查 | 启动 8 秒后静默查一次,只在真有新版时提示,不打扰 |
| 单实例 | 命名互斥体保证只有一个托盘进程,重复双击不会叠出好几只海豚 |
| 崩溃有据 | 所有异常写入 logs/tray.log;轮询线程永不退出,消息循环意外结束会自动重建图标 |
| 开箱自检 | dsh-tray.exe --selftest 不需要开图形界面就能验证菜单、图标与网络 |

使用说明

右键托盘图标:

菜单随服务状态实时变化:服务没跑时「停止 / 重启」自动置灰,「检查更新」会就地给出结果。

| 菜单项 | 说明 |
| --- | --- |
| 状态: 运行中 · v0.1.5-rc.1 | 只读状态行,顺带显示当前版本 |
| 打开 Web 界面 (http://127.0.0.1:3080) | 打开带 token 的完整地址;服务没跑时置灰 |
| 启动服务 / 停止服务 / 重启服务 | 服务未运行时「停止/重启」置灰,反之亦然 |
| 检查更新 | 查询 npm registry 的 dist-tags |
| 更新到 v0.1.6(通道 latest) | 有新版时才出现;已是最新时显示 已是最新(vX) |
| 更新通道 ▸ | latest / next / alpha 单选,选择后立即重查 |
| 查看更新日志 | 打开 logs/update.log(含完整 npm 命令行) |
| 查看服务日志 | 打开 logs/dsh.log |
| 语言 / Language ▸ | 简体中文 / English 单选,选中立即生效并记入 settings.json |
| 退出托盘 | 只关掉托盘进程,不会停止服务 |

关于界面语言:首次运行按 Windows 界面语言自动选择(非中文系统用英文)。
语言子菜单里的名称固定用各自母语书写(简体中文 / English),所以即使自动判断猜错了,
你也能在自己看得懂的那半边找到切换入口。「语言 / Language」这一项本身也是双语的。

找不到图标? Windows 默认把新出现的托盘图标收进「隐藏的图标」溢出区(任务栏那个 ^ 箭头)。
从溢出面板里把海豚拖到任务栏上即可固定常驻。

开机自启

把 start-tray.vbs 的快捷方式丢进启动目录:

1. 右键 start-tray.vbs → 发送到 → 桌面快捷方式
2. Win+R 输入 shell:startup 回车
3. 把快捷方式拖进去

start-tray.vbs 用 WScript.Shell.Run(..., 0, False) 启动,所以不会闪任何窗口。

快速开始

方式一:下载现成的 exe

到 Releases 下载 dsh-tray.exe,放到任意目录,双击即可。
需要本机已装 Node.js(dsh 依赖它)。
⚠️ 这个 exe 可能被 Windows Defender 误报拦截

它用 PyInstaller 单文件打包,且尚未做代码签名,因此会被 Defender 的机器学习启发式判成
Trojan:Win32/Sabsik.FL.A!ml。

注意 !ml 这个后缀 —— 它表示启发式/机器学习判定,并非匹配到了真实的病毒特征。
这是 PyInstaller --onefile 长期存在的已知误报,与代码本身无关。本项目全部源码公开,
你随时可以按方式二自己跑一遍再打包。

被拦时的处理办法见下方「常见问题」;按里面的步骤仍然装不上,欢迎开 issue。

方式二:从源码运行

git clone https://github.com/konmins/delfin.git
cd delfin

pip install -r requirements.txt
python dsh-tray.py

想打包成单文件 exe:

build.bat

等价于:

pyinstaller --onefile --noconsole --name dsh-tray ^
--icon assets\dsh-tray.ico ^
--hidden-import dsh_icons --hidden-import dsh_update ^
dsh-tray.py

系统要求

- Windows 10 / 11(依赖 Win32 API:命名互斥体、taskkill、netstat)
- Node.js 18+(建议 20 或 22 LTS),dsh 本体由它运行
- Python 3.9+(仅源码运行时需要)
- 默认端口 3080,可用环境变量 DSH_PORT 改

更新机制

这里有个坑值得说明。早期版本用 npx -y @deepseek-ai/dsh web 启动,而 npx 会把版本锁进缓存——
一旦缓存里解析成 ^0.1.1-rc.2 这类范围,预发布版本只有 major.minor.patch 完全相同才满足约束,
结果是永远不会升级,还看不出来。

所以现在改成托盘自己管一份运行时:

runtime/                                  ← 托盘创建和维护
├── package.json                          ← 私有清单,dependencies 里精确锁定 dsh 版本
└── node_modules/@deepseek-ai/dsh/

- 启动时优先用 runtime\ 里的 dsh,没有才回退到 npx(dsh-runner.cmd)
- 更新走 npm install @deepseek-ai/dsh@ --save-exact,版本号写死,不留歧义
- 首次使用不需要手动初始化,点一次「更新到 vX」它自己就把 runtime/ 建好

目录结构

delfin/
├── dsh-tray.py           主程序:托盘图标、菜单、状态轮询、服务控制
├── dsh_update.py         纯逻辑模块:semver 比较、registry 查询、运行时安装
├── dsh_i18n.py           界面文案的中英双语表 + 系统语言自动检测
├── dsh_icons.py          自动生成的图标(base64 内嵌,保证 exe 自包含)
├── make_icon.py          图标生成器:形状遮罩 + 状态点 → dsh_icons.py / .ico / preview.png
├── dsh-runner.cmd        服务启动器,被托盘调用
├── start-tray.vbs        无窗口启动托盘(推荐)
├── start-tray.bat        同上,cmd 备用
├── build.bat             一键打包 exe
├── selftest.py           纯逻辑自检(不含 GUI):semver / registry / 图标解码
├── dsh-tray.spec         PyInstaller 配置
├── assets/
│   ├── whale_mask.png    海豚形状遮罩(重新生成图标所需)
│   ├── dsh-tray.ico      多尺寸 exe 图标(16~256)
│   └── donate/           赞赏码
├── preview.png           图标多尺寸预览(浅底 / 深底)
└── runtime/              本地受管 dsh 运行时(首次更新时生成,不进版本库)

常见问题

下载 exe 被拦,或者下载完文件就消失了?

这是 Defender 对「PyInstaller 单文件 + 未签名」的误报(Trojan:Win32/Sabsik.FL.A!ml),
详见方式一里的说明。不是真的病毒,处理办法:

1. 文件下载后消失 → Defender 把它隔离了。到「Windows 安全中心 → 病毒和威胁防护 →
保护历史记录」,找到那条 Trojan:Win32/Sabsik.FL.A!ml,点「操作 → 还原」。
2. 还原不了(显示已删除) → 先加排除项再重新下载:
「病毒和威胁防护 → 管理设置 → 排除项 → 添加或删除排除项 → 添加 → 文件夹」,
选中你打算放 dsh-tray.exe 的目录(或先建一个空目录专门放它)。
3. Edge 提示「已阻止不安全的下载」 → 在下载提示上点 … → 选「保留」。
4. 不想折腾杀软设置 → 走方式二,源码全在仓库里,自己跑。

顺带一提:如果只是弹「Windows 已保护你的电脑 / 未知发布者」,那只是 SmartScreen 对
「从 Internet 下载且无签名」文件的例行提示,可以勾选「更多信息 → 仍要运行」。
也可以用 Unblock-File .\dsh-tray.exe 去掉文件的「来自 Internet」标记 ——
但这只影响 SmartScreen 提示,不能解除 Defender 的病毒判定。

托盘里找不到海豚?
被 Windows 收进溢出区了,见上方「使用说明」末尾。

「打开 Web 界面」打不开或提示 401?
新版 dsh 要求地址带 ?token=…。托盘会从 logs/dsh.log 里抓最后一条完整地址。
如果日志被清空过,先「重启服务」让新地址落盘。

更新失败怎么办?
打开「查看更新日志」,里面记着完整的 npm 命令与返回码。常见原因是 npm 不在 PATH 里,
或网络访问 registry 超时。也可以直接删掉 runtime/ 目录重新更新一次。

托盘莫名其妙消失了?
看 logs/tray.log。所有未捕获异常、pystray 内部错误、消息循环重建记录都在里面。

能改端口吗?
可以,设置环境变量 DSH_PORT 后重启托盘,菜单和探测都会跟着走。

界面语言能改吗?
能。右键托盘 → 语言 / Language → 选 简体中文 或 English,选中立即生效并记入 settings.json。
首次运行按 Windows 界面语言自动判断(非中文系统用英文)。也可以用 dsh-tray.exe --lang en
在启动时强制指定,写 --lang 时 dsh-tray.exe --lang=en 这种形式同样有效。

免责声明

- 本项目是第三方非官方工具,与 DeepSeek 官方无任何隶属或背书关系。
- 图标使用的 DeepSeek 海豚标志是其权利人的商标,此处仅用于标识「这个托盘控制的是 dsh」。
商标不适用本仓库的 MIT 许可(详见 LICENSE 与下方说明)。
- 程序按「原样」提供,不对因使用造成的任何后果负责。
- 本仓库不包含 dsh 本体,也不随源码分发其二进制;运行时由你的机器通过 npm 自行安装。

赞赏

如果这个小工具帮到了你,欢迎请作者喝杯咖啡 ☕

   

也可以直接给这个仓库点个 ⭐ —— 那是最不要钱的鼓励。

许可

MIT © 2026 Konmin

关于图标与商标:assets/whale_mask.png、assets/dsh-tray.ico、dsh_icons.py 与 preview.png
中包含的形状源自 DeepSeek 的官方标志,其商标权归权利人所有。上述文件仅为表明本项目
是 dsh 的配套工具而使用,不包含在 MIT 许可的授权范围内。若权利人提出异议,可自行
用 make_icon.py 换掉形状遮罩重新生成一套图标。

English

Delfin is an unofficial Windows system-tray controller for
DeepSeek Harness (dsh).

Full English documentation: README.en.md

上游仓库有新提交时邮件通知你(每天最多一封,无更新不打扰),随时一键退订。

💬 加入 DPharness 群聊

插件用法、部署报错、新插件第一时间同步——群里问,比一个人翻文档快。

点击加入 QQ 群
DPharness 群聊二维码,手机 QQ 扫码进群
扫码进群