DeepSeek Harness Hub
← 返回列表

alexcarterio/deepseek-whale-pet

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

一个适用于 Windows 的透明、始终置顶的桌面宠物——一只可爱的鲸鱼伙伴,

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

为DeepSeek用户打造的透明鲸鱼桌面宠物:DSH会话通知、语音播报、余额查询和手机推送

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

README

deepseek-whale-pet

CI

鲸鱼宠物的三个视图
行走动画

一个适用于 Windows 的透明、始终置顶的桌面宠物——一只可爱的鲸鱼伙伴,
它生活在你的桌面上,四处走动、说话,并关注你的
DeepSeek Harness (DSH)
会话。当一个 DSH 工作回合结束时,它会弹出一个对话气泡,并用可爱的声音
播报;当 DSH 正在等待你的批准或提问时,它会提醒你采取行动。它还可以
查询你的 DeepSeek API 余额,并为你启动 DSH。

该宠物以只读方式读取 DSH 的会话数据,绝不会修改或
重启 DSH。

功能特性

桌面宠物

- 三视图行走:侧面(自动镜像)、背面(向上行走)、正面(向下行走)。
- 三种移动模式:自由漫游 / 跟随光标 / 原地不动。
- 交互:拖拽(带语音台词)、单击弹跳 + 俏皮话 + 聊天入口、
双击喂食(小鱼干、蛋糕、棒棒糖、饺子、钻石)。
- 对话气泡系统:随机台词、反应台词,以及显示在灰色斜体气泡中的
内心“思维链”声音。
- 细节动画:呼吸、摇摆、跳跃、进食、方向交叉淡入淡出、
加速/减速惯性,以及随机休息。
- AI 聊天:点击 💬 入口,通过 DeepSeek deepseek-chat 模型聊天,
最多保留 40 条消息的上下文。
- 天气查询(右键菜单,数据来自 wttr.in)。
- 系统监控:当 CPU > 90%、RAM > 95% 或 NVIDIA GPU > 80 °C 时弹出气泡。
- 托盘图标、始终置顶、点击穿透(鼠标穿透)、开机自启,
以及记住位置/设置。

DSH 集成

- DSH 会话完成通知:当一个 DSH 工作回合结束时,宠物
显示气泡并大声播报。
- DSH 等待用户通知:当 DSH 正在等待批准或
提问时,宠物会提示你采取行动。
- DeepSeek 余额查询:右键菜单中的“查看 DeepSeek 余额”,
带气泡 + 语音播报,以及自动低余额提醒(静默
每小时巡检)。
- 自动启动 DSH:启动几秒后,宠物会探测
127.0.0.1:,如果 DSH Web 未运行,则启动它。它只会
启动 DSH——绝不会停止或重启它。

系统要求

- Windows 10 或 11
- Python 3.11+(已在 3.13 上测试)
- DSH (DeepSeek Harness)——可选,仅在需要 DSH 集成
功能时必需
- 用于 DeepSeek API、edge-tts 语音和天气的网络连接

安装

方式 A——一键安装

双击 install.bat。它会:

1. 安装 Python 依赖(pip install -r requirements.txt),
2. 启用开机自启(这也会启用自动启动 DSH 的行为),
3. 启动宠物。
选项 B — 手动

py -3 -m pip install -r requirements.txt
py -3 desktop_pet.py

日常使用时,只需双击 start_pet.bat。

开机启动 也可以通过右键菜单(“Start on Boot”)切换。
要从命令行中移除它,请运行:
py -3 desktop_pet.py --uninstall-autostart(或双击 uninstall.bat)。

配置

默认配置模板是
config.example.json。首次运行时,宠物会在脚本旁边创建实际的 config.json(在源码模式下),或在 %APPDATA%\WhalePet\config.json 下创建(在冻结的 .exe 构建中)。

| 键 | 默认值 | 描述 |
|---|---|---|
| mode | "wander" | 移动模式:wander / follow / still。 |
| size | 0.7 | 宠物缩放:0.55(小)/ 0.7(中)/ 0.9(大)。 |
| topmost | true | 保持宠物始终置顶。 |
| passthrough | false | 点击穿透(宠物变得不可点击)。 |
| autostart | false | 开机启动(安装程序会将其设为 true)。 |
| x, y | 0 | 保存的窗口位置(退出时覆盖)。 |
| ds_api_key | "" | 用于聊天和余额查询的 DeepSeek API 密钥。留空则回退到 DSH 凭据文件(~/.dsh/.credentials.yaml)。 |
| city | "" | 用于天气查询的城市名称(wttr.in)。 |
| voice_enabled | true | 语音播报开/关。 |
| voice_name | "" | SAPI 语音名称(空 = 系统默认)。 |
| voice_engine | "edge" | 语音引擎:edge(在线)或 sapi(离线)。 |
| say_voice | true | 语音播报日常台词(仅完整语音模式)。 |
| voice_mode | "full" | full(语音宠物)或 notify(仅任务通知)。 |
| voice_preset | "Xiaoyi - Sweet (recommended)" | edge-tts 语音预设(参见“Voice Preset”菜单)。 |
| dsh_launch | true | 启动后自动启动 DSH。 |
| dsh_dir | "" | DSH 安装目录(空 = 自动检测)。 |
| dsh_port | 3080 | DSH Web 端口。 |
| dsh_startup_delay | 10 | 启动后探测 DSH 前的秒数。 |
| dsh_notify_done | true | 当 DSH 会话回合完成时通知。 |
| dsh_notify_waiting | true | 当 DSH 等待用户操作时通知。 |
| dsh_notify_balance_low | true | 余额低时自动提醒。 |
| balance_low_threshold | 5.0 | 低余额阈值(单位:人民币)。 |

隐私与安全

这是一个纯客户端桌面应用:它不打开任何监听端口,也没有入站攻击面。出站数据仅限于以下内容,全部通过 HTTPS 发送:

| 数据 | 目的地 | 备注 |
|---|---|---|
| 聊天内容 + 上下文(最多 40 条消息,仅存于内存) | DeepSeek API | 仅在你使用聊天时发送。 |
| 城市名称 | wttr.in | 天气查询所必需。 |
| 语音播报文本 | Microsoft Edge TTS | 仅固定短语和台词 — 绝不包含 DSH 会话标题。 |
| DSH 会话数据 | 无 | 对本地状态文件的只读访问;不写入或传输任何内容。 |
API 密钥存储: 你的 API 密钥以明文形式存储在 config.json 中
(默认情况下仅你自己的 Windows 账户可读)。为避免这种情况,请将
ds_api_key 留空,改为将密钥保存在 DSH 凭据文件中;更
高级的设置可以使用 Windows 凭据管理器(DPAPI)。

DSH 访问: 桌宠只读取 DSH 的本地会话数据。它绝不会修改、
停止或重启 DSH。

使用方法

启动

- start_pet.bat — 正常启动桌宠。
- install.bat — 安装依赖 + 启用开机自启 + 首次启动。
- py -3 desktop_pet.py — 直接从终端启动。

交互

| 操作 | 效果 |
|---|---|
| 左键拖动 | 拖动桌宠(它会转向拖动方向,并在松开时说话)。 |
| 单击 | 弹跳 + 一句反应台词 + 💬 聊天入口。 |
| 双击 | 打开喂食面板。 |
| 右键单击(桌宠或托盘图标) | 完整菜单。 |

菜单亮点

- 查看 DeepSeek 余额 — 以气泡 + 语音播报你的剩余余额。
- DSH 状态 — 列出最近 DSH 会话的工作状态。
- 打开 DSH Web — 在 http://127.0.0.1: 打开 DSH Web UI。
- 语音播报 / 语音模式 / 语音预设 — 控制语音输出。
- 自动启动 DSH — 切换启动时是否自动启动 DSH。

语音播报

桌宠可以通过两种引擎说话:

- edge — 微软 Edge 在线 TTS(免费,无需密钥)。结果缓存在
%APPDATA%\WhalePet\voice_cache\ 下。
- sapi — Windows 内置离线语音,当 edge-tts 无法访问时
自动作为后备使用。

在仅通知语音模式下,桌宠在正常使用期间保持安静,
仅在任务事件(完成 / 等待 / 余额提醒)时说话。

DSH 集成

桌宠每 2 秒轮询一次 DSH 的会话数据(只读):

- ~/.dsh/storages/session_projcache.json — 会话标题。
- ~/.dsh/sessions///session.jsonl.zstd — 事件日志,
用于精确检测一轮对话何时结束(turn/end)以及模型何时
在等待你(调用 ask_user_question 或有待处理的审批)。

设置 DSH_HOME 可覆盖 ~/.dsh 位置。dsh_dir(或自动检测)
告诉桌宠 DSH 的安装位置,以便在 DSH Web 尚未运行时
启动它。

开发者工具

tools/ 目录包含开发期间使用的辅助脚本,用于
试听语音、重做精灵图和打包发布版本。它们不是运行桌宠所必需的 —
普通用户可以忽略它们。

| 脚本 | 用途 | 依赖 | 示例 |
|---|---|---|---|
| tools/synth_candidates.py | 生成多个 edge-tts“萌化”试听变体。 | edge-tts(在 requirements.txt 中) | py tools/synth_candidates.py |
| tools/synth_kids.py | 使用 edge-tts 生成柔和的童声音调变体。 | edge-tts(在 requirements.txt 中) | py tools/synth_kids.py |
| tools/synth_chattts.py | 使用不同的语音种子合成 ChatTTS 试听候选音频。 | torch、torchaudio、ChatTTS | py tools/synth_chattts.py [out_dir] |
| tools/synth_chattts_loli.py | 将 F0 最高的 ChatTTS 种子进行变调,生成“萝莉”变体。 | torch、torchaudio、ChatTTS | py tools/synth_chattts_loli.py [out_dir] |
| tools/synth_chattts_scan.py | 扫描 50 个 ChatTTS 种子,并根据 F0 自动挑选少女音色。 | torch、torchaudio、ChatTTS | py tools/synth_chattts_scan.py [out_dir] |
| tools/preprocess.py | 从正面/侧面/背面源图像重建三视图精灵图。 | Pillow (PIL) | py tools/preprocess.py [src_dir] [out_dir] |
| tools/preprocess2.py | 边缘去污 + 预乘 Alpha 精灵图缩放。 | Pillow (PIL) | py tools/preprocess2.py [src_dir] [out_dir] |
| tools/make_zip.py | 将运行时源代码打包为可分享的 zip 文件。 | 无 | py tools/make_zip.py |

ChatTTS 脚本需要安装 torch、torchaudio 和
2noise/ChatTTS(通过 pip 或按照其
仓库说明安装);它们体积较大且为可选组件。

语音样本

samples/ 目录存放候选语音的试听录音:edge-tts
变体(Xiaoyi / Xiaoxiao 等)以及 ChatTTS 多种子试听。宠物
的默认语音是内置的,因此无需 samples/ 也能正常运行。若要
重新生成候选语音,请运行相应的 tools/ 脚本——edge-tts
脚本无需额外依赖,而 ChatTTS 脚本需要先安装 torch
和 ChatTTS。

运行测试

py tests/test_watch.py

该测试需要 zstandard(pip install zstandard)。它使用伪造的(zstd 压缩)会话日志
驱动 DSH 事件状态机,并验证
普通工具活动不会被误报为“等待中”,只有问题和
审批才会报告“等待中”,并且只有回合结束才会报告“完成”。

常见问题 / 故障排除

1. 宠物不说话。

- 确保 config.json 中的 voice_enabled 为 true(或检查
“语音播报”菜单项)。
- edge 引擎需要互联网访问;如果离线,它会回退到
Windows SAPI 语音。请检查 Windows 是否已安装语音
(设置 → 时间和语言 → 语音)。你可以通过
菜单强制使用离线语音:语音预设 → “系统离线语音(无网络)”。

2. DSH 集成不显示通知。

- 确认 DSH 已安装并正在运行(或 dsh_dir 指向它,并且
dsh_launch 已启用)。
- 宠物会读取 ~/.dsh;如果你的 DSH 主目录在其他位置,请在启动宠物前
将 DSH_HOME 环境变量设置为该位置。
- 会话必须是最近的(在过去 24 小时内写入)才会被跟踪。

3. 如何移除开机自启动?

- 右键单击宠物或托盘图标 → 取消勾选“开机自启动”,或
- 双击 uninstall.bat,或
- 运行 py -3 desktop_pet.py --uninstall-autostart。

4. 余额查询失败。
- 在 config.json 中设置 ds_api_key(或在
~/.dsh/.credentials.yaml 中设置 DEEPSEEK_API_KEY)。该密钥必须是有效的 DeepSeek 开放平台
密钥。余额接口需要可用的互联网连接。

许可证

基于 MIT 许可证 发布。

致谢与参考

本项目基于以下项目的工作构建:

- dafeiyu-pet — 宠物行为、精灵图及基础应用程序源自
1190fasheqi/dafeiyu-pet
(MIT 许可证)。详情请见 NOTICE。
- edge-tts — 通过
rany2/edge-tts 实现在线语音合成。
- ChatTTS — 试听脚本使用
2noise/ChatTTS。
- wttr.in — 天气数据来自 wttr.in。
- DeepSeek Harness — 此宠物所监视的 DSH 会话状态由
deepseek-ai/deepseek-harness 生成。

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

同作者(alexcarterio)的其他插件

💬 加入 DPharness 群聊

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

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