为 DeepSeek Harness 提供 Windows 桌面浮窗伴侣,根据 Agent 真实事件切换状态动作并显示项目阶段与待办进度。
- 语言
- JavaScript
- License
- MIT
- 分支
- main
安装
$ dsh plugin --profile web add github:QCYTSN/dsh-dafeiyu在终端中运行以上命令,通过 dsh CLI 安装此插件。可在右上角切换 Profile。 第一次用 dsh?看这篇新手教程
对话式安装
帮我安装 DeepSeek Harness 插件 QCYTSN/dsh-dafeiyu:先查看仓库 https://github.com/QCYTSN/dsh-dafeiyu.git 确认安全性,然后执行安装命令并验证插件加载成功。
把这段指令粘贴给 DSH Web GUI 里的助手,由它代你完成安装与验证。
一句话定位
DSH 大肥鱼是挂在 Windows 桌面最上层的小鱼浮窗。它由 DeepSeek Harness 插件启用,跟随 DSH 一起启动和退出,通过订阅 DSH 的 Session 事件实时切换思考、工作、等待、完成和错误等动作,让你在切到 VS Code、浏览器或其他软件时也能一眼看到 Agent 当前在做什么。
核心能力
- 在 Windows 桌面以无边框、透明、始终置顶的窗口显示角色,绑定 DSH Host 的生命周期
- 把 DSH Agent 的事件(turn/start、assistant/message、tool/call、tool/result、todo/write、turn/end 等)映射成 7 种状态:空闲、思考、工作、等待、完成、错误、已断开
- 根据当前阶段和真实待办,在气泡里显示项目名、阶段名、当前待办和“已完成 N/M 步”进度
- 多个 DSH Session 并行时,按优先级(等待 > 错误 > 工作 > 思考 > 空闲)选择最需要关注的任务展示,并同时在气泡里列出其他活动任务
- 通过 DSH WebUI 的“设置 → 插件 → 插件配置 → 大肥鱼桌面伴侣”实时调整大小、气泡、活动程度、是否响应子 Agent 等参数,调整不用重启浮窗
- 支持拖动、单击/双击、右键菜单、本次隐藏、本次关闭等桌面交互,窗口位置和设置自动保存
技术实现
- 语言: JavaScript(Node.js,ESM)+ Python 3(Helper 子进程,PySide6/Qt 桌面渲染)
- 关键依赖: @deepseek-ai/schemastery(DSH 设置面板的 Schema 定义);PySide6>=6.7,<7(Helper 桌面渲染);PyInstaller(把 Helper 打成 .exe,普通用户无需自装)
- 架构模式: DSH 插件按 Cordis patch 注入,把 settings、webServer、sessions 等子能力注入到
apply();订阅全局session/event与session/disposed,由CompanionReducer把事件归并成消息流,再以 JSONL 协议写到 Helper 子进程的 stdin;Helper 用Qt.WindowStaysOnTopHint | FramelessWindowHint渲染透明无边框窗口,并通过环境变量(DSH_DAFEIYU_SCALE 等)接收配置 - 入口文件: Node 端
src/index.js(导出apply、ConfigSchema、HelperProcess、CompanionReducer);DSH 设置面板lib/client.js(注入@deepseek-ai/dsh-client-ui-settings-plugins);桌面渲染runtime/helper.py
适用场景
DSH 大肥鱼适合“开了 DSH 让 Agent 自己干活,自己去 VS Code 写代码或者开会”的用户:你想随时知道 Agent 是还在想、卡在哪个工具调用、需要等你确认、还是这一轮已经结束,但又不想反复切回 DSH 标签页。它不读屏、不监听其他应用,状态完全来自 DSH 的真实事件流,所以适合对隐私和“只看真实进度”有要求的场景;不适合需要截屏、监听其他应用、或在 macOS / 纯 Linux 上显示桌宠的用户。
前置依赖与兼容性
| 依赖 | 最低版本 | 说明 |
|---|---|---|
| DSH | 未声明 | 插件按 dsh.bundle.patch 注入,需 DSH WebUI(dsh plugin --profile web) |
| Node.js | >=22.19 | 仅插件宿主进程需要(package.json#engines.node) |
| Python + PySide6 | Python 3 + PySide6>=6.7,<7 | 仅从源码开发或重新构建 Helper 时需要;普通用户通过预构建 .exe 安装无需自装 |
| 操作系统 | Windows 10/11 x64 | 桌面浮窗的运行目标;CPU 限制为 x64 |
| WSL2 | — | 可在 WSL 终端用 dsh plugin --profile web add 安装,Helper 走 cmd.exe 调用 Windows 的 .exe |
| 原生模块 | PySide6(仅 Helper) | 包内已通过 PyInstaller 把 Helper 打成独立 .exe,免安装 |
安装方式
dsh plugin --profile web add github:QCYTSN/dsh-dafeiyu
配置项
| 配置 | 类型 | 说明 | 默认值 |
|---|---|---|---|
| 启用大肥鱼 | 开关 | 关闭后立即退出桌面伴侣;重新开启无需手动启动程序 | 开启 |
| 角色大小 | 70%–140%(滑块) | 调整桌面浮窗角色的整体尺寸 | 100% |
| 气泡大小 | 80%–120%(滑块) | 调整状态气泡的大小,兼顾信息可读性 | 100% |
| 活跃程度 | 安静 / 标准 / 活泼 | 控制空闲时眨眼、观察等微动作的出现频率 | 标准 |
| 减少动态效果 | 开关 | 减少走动、循环帧和程序化晃动,渲染帧率也降到 25 FPS | 关闭 |
| 气泡显示 | 常驻显示 / 完全隐藏 / 自定义 | 自定义模式下可勾选哪几种状态显示气泡 | 常驻显示 |
| 自定义显示状态 | 多选(空闲/思考中/工作中/等待确认/完成/错误) | 仅在“气泡显示=自定义”时生效,决定哪些状态出现气泡 | 完成、错误、等待确认 |
| 响应子 Agent | 开关 | 开启后允许子 Agent 抢占宠物状态;默认只跟随顶层任务以避免状态过度跳动 | 关闭 |
常见问题
Q: 安装命令成功,但桌面上看不到大肥鱼。
A: 首先确认安装用了 --profile web;然后必须完全退出 DSH Host(不只是关浏览器标签页)再重新启动;进入 DSH 的“设置 → 插件 → 插件配置 → 大肥鱼桌面伴侣”,确认“启用大肥鱼”已勾选;并确认你用的是带预构建 Helper 的安装包(runtime/bin/win32-x64/dsh-dafeiyu-helper.exe 存在),而不是只有源码的克隆。
Q: 关掉 DSH 浏览器标签页,大肥鱼还在桌面上。
A: 大肥鱼绑定的是 DSH Host 的进程生命周期,而不是浏览器标签页。只要 DSH 后台还在跑,它就会继续显示;真正退出 DSH Host 之后会自动关闭。
Q: 状态卡为什么只显示阶段名,没有“已完成 N/M 步”的数字?
A: 数字进度只有在 DSH Agent 写入了结构化的待办(todo/write 事件)时才会可靠计算。DSH 没提供真实待办时,状态卡只显示当前工作阶段,避免编造百分比。
Q: 右键选“本次关闭”后,大肥鱼没自动回来。
A: 预期行为。“本次关闭”会抑制当前 DSH 运行期间的自动重启;完全退出 DSH 并重新启动后会恢复。如果想永久关闭,去 DSH 设置里取消“启用大肥鱼”即可。
Q: 我是普通用户,需要自己装 Python 或 PySide6 吗?
A: 不需要。npm alpha 包和 GitHub Release 的 .tgz 包内已经带了 Windows x64 的 dsh-dafeiyu-helper.exe(PyInstaller 打包),DSH 会自动拉起它。只有从源码开发或自己重新构建 Helper 时才需要本地装 PySide6>=6.7,<7。
Q: macOS 或纯 Linux 上能用吗?
A: 不能。当前 Alpha 桌面浮窗只支持 Windows x64;WSL2 可以通过 cmd.exe 调用 Windows 的 Helper 来显示浮窗,但普通 Linux、远程 Linux 和容器不是本版本的桌面显示目标。
Q: 这个插件会读取屏幕、监听其他应用或者上传数据吗?
A: 不会。插件只订阅 DSH 的 session/event 与 session/disposed,不读取或保存模型 API Key,不截图,不监听键盘或其他应用,也不发送遥测;设置卡复用 DSH 自己的本地 Web 服务(/plugins/dsh-dafeiyu/config,且只接受 127.0.0.1 的请求),不新开网络端口。
Q: 怎么卸载?
A: 完全退出 DSH Host,然后运行 dsh plugin --profile web remove dsh-dafeiyu,再重新启动 DSH 即可。插件代码和 Helper 会从 web profile 中移除;DSH 可能保留一份不再生效的历史设置,不会启动进程或占用端口。
上手难度
入门 — 不需要任何额外配置:装好插件、启动 DSH、开始一个任务就能看到大肥鱼工作;唯一需要关心的就是“确认系统是 Windows x64”,以及设置面板的几个开关都在中文 UI 里。
已知问题与限制
- Alpha 状态:版本号为
0.1.0-alpha.12,设置面板和桌面状态文案使用简体中文(README.md:81),接口与默认值可能再调整。 - 仅 Windows x64 + WSL2:Helper 实际运行目标是 Windows x64;普通 Linux、远程 Linux、容器、macOS 无法显示桌面浮窗(README.md:111-112,src/helper-process.js:16-31)。
- 历史坏版本:0.1.0-alpha.7 发布的 Windows Helper 漏掉了 PySide6/Qt,导致桌面浮窗不会出现;该版本已声明 “Known broken release”,需要升级到 alpha.8 或之后(CHANGELOG.md:134-138)。
- DSH 配置同步问题:早期 alpha 版本的 cordis.patch.yml 没有同步
bubbleScale/bubbleMode/bubbleStates,DSH Harness 更新后可能出现failed to apply loader entry;0.1.0-alpha.12 已经修复(CHANGELOG.md:23、cordis.patch.yml:5-15)。 - 不显示虚假进度:当 DSH 没写入结构化待办时,状态卡只显示当前工作阶段,不会编造完成百分比(src/companion-reducer.js:81-90)。
- 子 Agent 默认不响应:默认只跟随最近活跃的顶层 DSH Session;开启“响应子 Agent”会改变状态优先级策略,可能让桌面浮窗更频繁跳动(README.md:269-276、src/companion-reducer.js:53-56,111-121)。
- 从源码运行需要 Python + PySide6:仅开发者从源码运行 Helper 时需要本机装 PySide6>=6.7,<7(requirements.txt:1、README.md:39-41);普通安装走预构建包无需此步骤。
DSH 大肥鱼 🐋
住在 Windows 桌面上、由 DeepSeek Harness 真实工作状态驱动的 Agent 伴侣。
入口属于 DSH,生命周期属于 DSH,显示层属于桌面。

DSH 大肥鱼不是一个需要单独启动的桌宠应用。它由 DSH 插件启用,跟随 DSH 一起启动和退出,并以透明、无边框、始终置顶的原生窗口显示在桌面上。即使切换到 VS Code、浏览器或文件管理器,也能知道 DSH 当前在思考、修改、测试、等待还是已经完成。
当前版本:
0.1.2· Windows / WSL2 Alpha
关注最新进展
- 最新版本永远以 npm
latest和 GitHub Releases 为准(Releases 里同时提供.tgz安装包);顶部的版本徽章会自动更新。 - 给仓库 Star 只是收藏,不会收到更新通知。想第一时间知道「更新了什么」:
- 打开仓库点 Watch → Custom → Releases,只订阅 Release 通知;
- 或直接订阅 Releases 的 feed:https://github.com/QCYTSN/dsh-dafeiyu/releases.atom
- 已安装用户升级:完全退出 DSH 后执行
然后重新启动 DSH 即可。dsh plugin --profile web update dsh-dafeiyu
它有什么用?
- 离开 DSH 页面也能看到状态:大肥鱼始终显示在 Windows 桌面最上层。
- 反馈来自真实 Agent 事件:不会读取屏幕,也不会把你在其他软件里的操作误判为 DSH 工作。
- 展示足够但不过量的信息:项目名、当前阶段、正在进行的步骤和真实待办进度会显示在状态卡上。
- 有生命力但不打扰:思考、查找、修改、执行、验证、等待、完成和错误都有对应动作与自然文案。
- 没有第二套应用入口:无需单独运行 Helper、安装 Python或配置额外端口。
如果 DSH 没有提供待办清单,大肥鱼只显示“分析阶段”“实现阶段”“验证阶段”等可靠信息, 不会编造完成百分比。
状态展示
| 思考 | 工作 |
|---|---|
![]() | ![]() |
| 等待确认 | 完成 |
|---|---|
![]() | ![]() |
| 遇到问题 |
|---|
![]() |
状态大致按照下面的流程变化:
stateDiagram-v2
[*] --> 空闲
空闲 --> 思考: DSH 开始一轮任务
思考 --> 工作: 搜索、读取、修改、执行或测试
工作 --> 思考: 整理工具结果
思考 --> 等待: 需要用户确认
工作 --> 等待: 需要用户确认
思考 --> 完成: 本轮任务完成
工作 --> 完成: 本轮任务完成
思考 --> 错误: 任务异常结束
工作 --> 错误: 工具或任务失败
等待 --> 思考: 用户继续任务
错误 --> 思考: 用户重试
完成 --> 空闲
多个 DSH Session 同时运行时,默认优先展示最需要注意的顶层任务:
等待确认 > 错误 > 工作 > 思考 > 空闲
当有多个活动任务时,状态气泡会同时列出这些任务的状态。
系统要求
- Windows 10/11 x64,或 WSL2(通过 Windows interop 运行桌面 Helper)
- 已安装并能正常运行的 DeepSeek Harness WebUI
- DSH CLI 中可以使用
plugin --profile web命令 - npm 上的稳定版
dsh-dafeiyu(或抢先测试的dsh-dafeiyu@alpha),或 GitHub Release 中的.tgz安装包
普通用户不需要安装 Python、PySide6 或单独运行
dsh-dafeiyu-helper.exe。Windows Helper 已经包含在发布包里。
当前 Alpha 版的设置与桌面状态文案使用简体中文。
安装插件
1. 完全退出 DSH
先关闭 DSH Host,而不只是关闭浏览器标签页。安装或更新时不要让旧版插件继续运行。
2. 一行命令安装
在 PowerShell 中进入你的 DSH 安装目录,例如:
cd D:\DSH
然后从 npm 安装稳定版:
pnpm exec dsh plugin --profile web add dsh-dafeiyu
如果你的系统已经能直接使用全局 dsh 命令,只需要:
dsh plugin --profile web add dsh-dafeiyu
想抢先试用新功能(@alpha 测试版)的用户,把命令里的包名换成 dsh-dafeiyu@alpha 即可。
如果 DSH 运行在 WSL2,请在 WSL 终端执行同一条安装命令。插件会自动通过
cmd.exe 启动包内的 Windows Helper,不需要手动 chmod,也不需要在 WSL
安装 Python 或 PySide6。当前支持范围是 Windows x64 上的 WSL2;普通 Linux、
远程 Linux 和容器不是本版本的桌面显示目标。
3. GitHub Release 备用安装方式
进入 GitHub Releases,下载最新的:
dsh-dafeiyu-<version>.tgz
不要解压这个文件。
不解压,在 DSH 目录中直接安装下载的插件包:
pnpm exec dsh plugin --profile web add "C:\Users\you\Downloads\dsh-dafeiyu-<version>.tgz"
4. 启动 DSH
照常启动 DSH WebUI。插件默认启用,大肥鱼会由 DSH 自动拉起;不要手动打开 Helper。
5. 找到设置入口
在 DSH WebUI 中进入:
设置 → 插件 → 插件配置 → 大肥鱼桌面伴侣

怎么使用?
安装后不需要额外操作:
- 启动 DSH。
- 在 DSH 中开始一个项目任务。
- 大肥鱼根据 DSH 的真实事件切换动作和状态卡。
- 切换到其他窗口继续工作;大肥鱼仍然保持在桌面最上层。
- DSH Host 真正退出后,大肥鱼自动退出。
状态卡可能显示:
- 项目目录名称,例如
dsh-dafeiyu - 当前阶段,例如“分析阶段”“实现阶段”“验证阶段”
- 当前待办,例如“完善项目文档”
- 真实进度,例如“已完成 3/5 步”
- 等待、完成或错误提示
大肥鱼不会监听 VS Code、浏览器或其他应用,也不会截图。只有 DSH Agent 的事件能够 改变它的工作状态。
可配置项目
| 设置 | 作用 |
|---|---|
| 启用大肥鱼 | 立即显示或关闭桌面伴侣 |
| 角色大小 | 在 70%~140% 之间调整 |
| 气泡大小 | 在 80%~120% 之间调整状态气泡,兼顾信息可读性 |
| 气泡显示 | 常驻显示、完全隐藏,或自定义哪些状态显示气泡 |
| 活跃程度 | 控制空闲时眨眼、观察等微动作频率 |
| 减少动态效果 | 减少走动、循环帧和程序化晃动 |
| 响应子 Agent | 允许子 Agent 状态参与优先级选择;默认关闭 |
设置由 DSH 保存,更新插件后通常不需要重新配置。
桌面互动
- 拖动:按住大肥鱼移动位置,位置会自动保存。
- 点击或双击:触发摸头、戳一下、尾巴等短互动,之后恢复最新 DSH 状态。
- 右键菜单:调整大小、气泡大小、减少动态、打开 WebUI、本次隐藏或本次关闭。
- 本次隐藏:只隐藏窗口,不禁用插件。
- 本次关闭:关闭当前 Helper,本次 DSH 运行期间不会自动重启;下次启动 DSH 会再次出现。
更新插件
GitHub 仓库出现新提交后,已经安装的插件不会自动变化。新版本发布后,完全退出 DSH,然后更新 npm 稳定版包:
cd D:\DSH
pnpm exec dsh plugin --profile web update dsh-dafeiyu
也可以再次执行安装命令,它会解析 npm latest 标签指向的新版本:
pnpm exec dsh plugin --profile web add dsh-dafeiyu
使用 @alpha 测试版的用户,把更新命令里的包名换成 dsh-dafeiyu@alpha 即可。
使用 GitHub Release 安装的用户,可以下载新 .tgz 后覆盖安装:
pnpm exec dsh plugin --profile web add "C:\Users\you\Downloads\dsh-dafeiyu-<new-version>.tgz"
以上方式都会替换插件及随包携带的 Windows Helper,并保留 DSH 已保存的设置。详细 说明见 插件更新与回退。
回退到旧版本
完全退出 DSH,重新安装之前保留的旧版 .tgz:
cd D:\DSH
pnpm exec dsh plugin --profile web add "C:\Users\you\Downloads\dsh-dafeiyu-<old-version>.tgz"
卸载插件
完全退出 DSH 后运行:
cd D:\DSH
pnpm exec dsh plugin --profile web remove dsh-dafeiyu
然后重新启动 DSH。插件代码和 Helper 会从 web profile 中移除。DSH 可能保留一份
不会再生效的历史设置,这不会启动进程或占用额外端口。
常见问题
安装后没有看到大肥鱼
- 确认安装使用的是
--profile web。 - 完全退出并重新启动 DSH Host。
- 进入“设置 → 插件 → 插件配置”确认“启用大肥鱼”已经勾选。
- 确认使用 Windows x64 发布包,而不是只克隆了缺少预构建 Helper 的源码。
关闭了 DSH 网页,为什么大肥鱼还在?
大肥鱼绑定的是 DSH Host 生命周期,而不是浏览器标签页。只要 DSH 后台仍在运行, 大肥鱼就会继续显示;真正退出 DSH Host 后它会自动关闭。
为什么没有显示数字进度?
只有 DSH 写入了结构化待办时,插件才能可靠计算“已完成 3/5 步”。没有真实待办数据时, 状态卡只显示当前工作阶段,避免制造虚假的百分比。
右键选择“本次关闭”后为什么没有自动回来?
这是预期行为。“本次关闭”会抑制当前 DSH 运行期间的自动重启;完全退出并重新启动 DSH 后会恢复。若想永久关闭,请在 DSH 设置中取消“启用大肥鱼”。
隐私与边界
- 不读取或保存模型 API Key
- 不截图,不读取其他窗口内容
- 不发送遥测
- 不监听键盘输入或其他应用行为
- 不新开网络端口;设置卡复用 DSH 的本地 Web 服务
- 默认只跟随最近活跃的顶层 DSH Session
开发与测试
pnpm install
npm test
py -3 -m unittest discover -s runtime/tests -t .
开发时可以从源码运行 Helper,但正式用户不应手动启动它:
py -3 -m pip install -r requirements.txt
py -3 runtime\helper.py
构建 Windows Helper:
python -m pip install -r requirements.txt pyinstaller
$env:DSH_DAFEIYU_BUILD_PYTHON = (Get-Command python).Source
npm run build:helper:windows
更多文档
相关项目:QCYTSN/ds-local-pet 是独立桌宠版本; 本仓库是只服务于 DSH 状态的插件版本。
License
代码采用 MIT License。角色视觉资产不适用 MIT 代码许可证,来源和使用边界 见 ASSET_LICENSE.md。
收录徽章
[](https://deepseek-plugin.org/plugins/QCYTSN/dsh-dafeiyu)把这段 markdown 粘贴到你的 GitHub README,链接回本插件详情页。徽章只声明已被本站收录,不代表安全认证。




