- Home
- Plugins
- UI Enhancements
- dsh-pet-plus (dsh-pet)
dsh-pet-plus (dsh-pet)
cloudatlasx/dsh-pet-plus/dsh-pet
An enhanced fork of PC2005-cloud/dsh-pet (do not install it alongside the upstream dsh-pet): a desktop pet for DSH with schedule reminders, approval and question bubbles you can answer in place, a 20-entry history ledger, double-click corner cycling, a configurable data directory, a step/elapsed progress line, snooze and one-hour mute, a right-click menu whose order and hidden items you can edit in settings (chat first by default), and a task-queue progress bar inside the work bubble.
Install
dsh plugin --profile web add github:cloudatlasx/dsh-pet-plusThis plugin lives in the dsh-pet subdirectory of the repository.
README
dsh-pet-plus 🐾
dsh-pet-plus 是 dsh-pet 的增强分支:还是那只住在 DeepSeek Harness 里的蓝色大肥鱼,但加上了「到点提醒、审批/提问直接在宠物身上处理、多屏跟随、存储目录可配置」这些日常更顺手的能力。
本仓库基于 PC2005-cloud/dsh-pet(MIT)二次开发,动画素材、提示词与形象版权归原作者,详见文末「许可与致谢」。
相比上游多了什么
| 能力 | 说明 |
|---|---|
| 定时提醒 | 读取 DSH 的 schedule 服务,任务到点后由宠物弹出提醒气泡(20 秒自动收起),点一下可以直接处理;不再依赖插件自己维护的待办计时器。 |
| 定时播报 + 快捷动作 | 任何 agent / 脚本都能用 POST /dsh-pet-7340/announce 往桌宠推一条「标题 + 清单 + 结论」的气泡(默认 2 分钟收起,超长在气泡里滚动),还可以带 最多 3 个快捷动作:气泡上渲染成一排胶囊按钮,点一下就把对应的那句话投回那个 DSH 会话,agent 接着往下做。所以定时任务的结论不只是一段通知,是能直接点的入口。 |
| 在宠物上直接说话 | 气泡里也能自己打一句(回车即发),走 POST /dsh-pet-7340/reply 投回会话——等价于你在 DSH 输入框里亲手发了一条消息,会真的触发工具调用与写盘。只对正在运行的会话生效,不会替你恢复已结束的会话。 |
| 进度看得见 | 工作气泡第二行是 第 3 步 · 已用 2 分钟:步数按本轮工具调用计数,起点是回合开始。下面还有一条任务队列细进度条(3/7 项),条数就是本轮 todo 清单的真实完成数——这是唯一能诚实画成条子的进度,工具步数仍只写「第几步」,不折算百分比。 |
| 等会儿 / 静音 | 提醒气泡除了「知道了」,还有「等会儿」(15 分钟后原样再弹,POST /dsh-pet-7340/reminder/snooze)和「静音 1 小时」(POST /dsh-pet-7340/mute,可传 1–480 分钟、0 解除)。静音期间到点提醒不弹,/announce 返回 muted: true,调用方因此知道是「被吞了」而不是「送达了」。 |
| 改定时任务提示词 | POST /dsh-pet-7340/schedule/patch 能改 DSH 定时任务的标题与提示词(DSH 的调度表只在启动时读一次文件,手改 schedule.json 会被覆盖,只能走服务)。 |
| 最近记录 | 弹过的提醒与推送都会记一笔(静音期间也记,最多 20 条、重启即空),菜单里点「最近记录」随时翻,点某条能回到它对应的 DSH 会话,底部可一键清空。 |
| 聊天里也能定闹钟 | 说「两分钟后提醒我开会」她不再只是嘴上答应:回复末尾带一行 `[提醒:秒数 |
| 对话记录随手翻 | 对话弹窗(右键「对话」打开)就地展开最近 200 轮记录(一问一答左右分色,附图 / 配图 / 动作 / 提醒各带一行小字),发完留下继续聊。关闭按钮在右上角。弹窗按宠物所在半边朝外生长(宠物在右半屏就从左边长出来),桌面端还会临时把那一侧的窗口余量加宽 360px 专门给弹窗用,不再压住宠物。点「保存到文件」把全部历史(不受 200 轮限制)导出成 Markdown 落到数据根 exports/,脚注显示绝对路径。 |
| 待办一句话定时间 | 待办的日历最上面是一行输入框:写「5分钟后」「明天早上九点」「下周三」「今晚八点」「8-20」这类都能看懂,回车就填进日历并选中那天;没看懂只在旁边给一行红字,不动已选的值。相对时间、中文数字、时段词都认,只给日子默认早上九点,只给时刻且今天已过就顺延明天。 |
| 自己加动作 | 素材丢进 main-animation/webm/<动作名>.webm(VP9 + alpha、16:9),在配置里写一行 animations.extra({ "category": "我加的", "actions": ["打招呼"] })就能进右键「动作」菜单——animations 现在逐块合并,不用抄整段默认动画池。新分类权重默认 0,只等你点播。 |
| 待办到点真提醒 | 待办到点时除了说一句,还会弹一条带「知道了 / 等会儿」的提醒气泡(挂 5 分钟,来源徽标是橙色的「待办提醒」);提醒时刻按最近的待办对齐,不再迟到一分钟。 |
| 她有自己的灵魂 | 数据根下的 soul.md 是她的人格:你手写,每次对话都读进提示词,改完保存下一句就生效(首次对话自动生成一份可改的模板)。 |
| 她记得住事 | 对话里说「记住……」,她会真的追加一行到 growth.md(带日期、同一条不重复写),下一次对话就带着这件事;全部对话还会按月归档到 conversations/<宠物>-YYYY-MM.jsonl,随时能翻。 |
| 对话里能指挥她 | 除了动作与定时提醒,还能给她改名、记事情、改大小、换角落([改名:…] / [记住:…] / [大小:倍率] / [位置:左上],都真的写进配置);她说「变大一点」「挪到左上角」就会照做,标记由宿主剥掉。 |
| 双击换角落 | 双击宠物就在 左上 → 右上 → 右下 → 左下 之间循环,落点直接写回配置(POST /dsh-pet-7340/corner),不用进设置页翻「落点」。 |
| 右键菜单可调 | 设置页「右键菜单」里拖左侧把手就能排序,每行等高、名字过长省略、显隐按钮固定在最右;写入配置顶层 menuOrder / menuHidden,空数组 = 默认顺序。默认把「对话」放在第一位,两端(网页 + 桌面)同一套排序。 |
| 审批 / 提问气泡 | DSH 请求审批或向你提问时,宠物身上直接出现可交互气泡:审批可选「允许一次 / 本会话都允许 / 拒绝」(会话内授权 8 小时有效,只影响本会话),提问可选选项或填自定义答案,结果原路回传给 DSH;原有的内置面板会被临时接管,不操作则自动超时放行。 |
| 拍一拍音效 | 点击宠物播放 click-duck.wav;定时提醒到达时连响两声,提醒感更强。 |
| 拍一拍会生气 | 点宠物不再只是响一声:前几次是娇羞的抱怨,越过阈值变得不高兴,再越过就说「我生气了」并躲起来(桌面端藏整个宠物窗口、网页端卡片消失),1 |
| 多屏跟随定位 | 宠物默认落在 DSH 窗口所在那块屏幕的右下角(多屏时以浏览器上报的屏幕为准,桌面模式用主进程 displayNearestPoint 换算),换屏后自动跟随;角落与边距仍可在设置页调整。 |
| 存储目录可配置 | 数据根目录可在设置页「落盘位置」里改到任意绝对路径(也可用环境变量 DSH_PET_HOME 固定)。切换时会把现有配置/记忆/日志整体搬过去,目标非空则不覆盖;默认根只留一个 home.json 指针。 |
| 桌面模式同步 | 桌面模式(Electron 透明置顶窗)与 Web 模式共用同一套提醒/审批/提问逻辑,气泡与音效行为一致。 |
| 设置项可拖动 | 物理参数(重力 / 弹性 / 摩擦 / 抛掷力)、音量、宠物大小与桌面占比、对话记忆条数都换成了滑条,拖动就能看到数值,不用再凭数字猜;字号这类精细项仍是数字输入。 |
| 语音试听 | 挑音色时先点「试听」:默认一句问候,也可以自己输入文字试播(≤500 字),播放音量就是当前设置里的音量。 |
| 语音播报互斥 | 总开关关掉时,「碎碎念播报」「待办播报」两个子开关自动禁用,避免配出「没开语音却仍要播报」的矛盾状态。 |
| 语音引擎可切换 | 内置 Edge 之外可切到 Breeze TTS 2 在线合成(brz_ Key,模型 breeze-tts-2,language_code: zh):填 Key 后音色列表直接从 Breeze 拉,语速 0.5×–2× 与朗读语速相乘,试听也走当前引擎;Key 被拒会在状态行标红而不是静默退回 Edge。四个配置项 voiceEngine / breezeApiKey / breezeVoice / breezeSpeed 也能直接写进 main-config.jsonc。 |
| 操作按钮置顶 | 保存 / 同步 / 测试通知挪到设置页顶部并吸附在页面顶端,长表单改完不用再滚到底部找保存。 |
除此之外的行为与上游 0.4.x 一致:100+ 段透明动画、多开与宠物种类、拖拽甩抛物理、碎碎念与对话、语音说/听、余额展示、工作状态联动、待办、睡觉、系统通知、右键菜单等。功能细节见上游文档 FEATURES.md、CONFIG.md、API.md。
安装
方式一:从源码(推荐,改完即用)
git clone https://github.com/cloudatlasx/dsh-pet-plus.git
cd dsh-pet-plus/dsh-pet
pnpm install # 只为本地开发 / 重新构建
仓库里已经把构建产物一起吃进去了(lib/、runtime/electron-helper/shared-core.js),
所以 clone 下来不用构建就能直接装;只有改了 src/ 或桌面共享逻辑时才需要
pnpm bundle && pnpm build,并把重新生成的产物一起提交——这样别的机器拉下来就是「完整、能跑」的状态。
然后在 DSH 里把插件装进目标 profile(dsh web 用 web,桌面应用用 desktop):
dsh plugin --profile desktop add E:\path\to\dsh-pet-plus\dsh-pet
装完重开 DSH,宠物默认出现在界面右下角。宿主半侧改动需要重开 DSH,浏览器半侧刷新页面即可。
方式二:Release 产物(不用克隆)
每个 Release 都附一个打包好的 .tgz(含 lib/、runtime/、assets/、cordis.patch.yml),直接让 DSH 装它:
dsh plugin --profile desktop add https://github.com/cloudatlasx/dsh-pet-plus/releases/download/v0.12.0/dsh-pet-plus-0.12.0.tgz
也可以直接从 git 装(包在 dsh-pet/ 子目录,构建产物已入库):
dsh plugin --profile desktop add github:cloudatlasx/dsh-pet-plus#path:/dsh-pet
方式三:DSH 市场
已向精选列表 awesome-dsh-plugin 提交条目(PR #11659),收录后即可在 DSH 市场(dshmarket)里直接搜 dsh-pet-plus 安装。
设置
- 「插件管理 → dsh-pet-plus → 设置」:
- 顶部吸附栏:保存(
Ctrl/⌘+S)、同步、测试通知。 - 审批/提问气泡:关闭后请求交回 DSH 内置面板。
- 定时提醒:关闭后不再跟随
schedule服务弹提醒。 - 语音:总开关控制下方「碎碎念播报」「待办播报」;语音引擎可选内置 Edge 或 Breeze 在线(填
brz_Key 后音色列表从 Breeze 拉、另有语速滑条),音色可选并试听(试听走当前引擎),音量用滑条。 - 落盘位置:查看并修改数据根目录(需重启 DSH 生效)。
- 顶部吸附栏:保存(
- 位置与大小:
position.corner(默认bottom-right)、marginX/marginY;桌面模式跟随 DSH 窗口所在屏幕,浏览器模式自动上报当前屏。
数据目录里有什么
数据根(默认 $DSH_HOME/dsh-pet,可在设置页「落盘位置」改)下这些文件都可以直接打开看、手改:
| 文件 | 内容 |
|---|---|
main-config.jsonc | 主宠物配置(设置页保存的那份) |
memory.json | 对话记忆(按宠物分桶;喂给模型的只是最近 N 轮,文件里是完整历史) |
soul.md | 她的人格:每次对话都读进提示词,改完保存下一句就生效(第一次对话自动生成模板) |
growth.md | 成长记录:对话里她说「记住了」的事,一行一条带日期 |
conversations/<宠物>-YYYY-MM.jsonl | 全部对话按月归档,一行一条消息,jq / 编辑器都能翻 |
todos.json | 待办清单 |
reminders.json | 聊天里约好的闹钟(重启后仍会到点) |
exports/ | 对话导出(POST /dsh-pet-7340/chat/export 落在这里) |
与上游的兼容说明
为了复用已有的配置、历史数据与他人脚本,本分支只改了分发标识(npm 包名、Cordis patch id、仓库链接),内部运行标识保持与上游一致:
- HTTP 路由前缀仍是
/dsh-pet-7340 - CSS 类名仍是
dsh-pet-* - 默认数据目录仍是
$DSH_HOME/dsh-pet(可用DSH_PET_HOME或home.json指针覆盖) - 桌面模式 bridge scheme 仍是
dsh-pet-bridge
因此 dsh-pet 与 dsh-pet-plus 不要同时装:两者会抢同一套路由与数据目录。从上游迁移时,直接把数据目录继续指向原路径即可。
从上游同步更新
git remote add upstream https://github.com/PC2005-cloud/dsh-pet.git # 仅首次
git fetch upstream
git merge upstream/main # 冲突多集中在 README / package.json / patch
pnpm --dir dsh-pet build
开发
cd dsh-pet
pnpm typecheck # tsc
pnpm test # node --test(2300+ 个用例)
pnpm build # 构建完整产物
改完安装目录后,可用插件管理的「重新加载」或 plugin_manager 关闭再开启 dsh-pet-plus 生效。
许可与致谢
- 代码:MIT(本分支新增代码同样 MIT)
- 上游:PC2005-cloud/dsh-pet,署名见 LICENSE
- 素材(动画/提示词/源视频):允许开源使用、禁止商用;二创作品须在公开渠道附上原作者地址 https://github.com/PC2005-cloud/dsh-pet
- 形象出处:社区二创的 DeepSeek「大肥鱼」(鲸鱼娘),非官方形象;原型「溟月」出自 B 站 @上善无形,DeepSeek 版设计出自 @ZipZipPipe;形象授权 CC BY-NC-SA 4.0
Related plugins
dsh-web (dsh-task-board)
zhu1090093659/dsh-web
dsh-web (dsh-web-all)
zhu1090093659/dsh-web
dsh-TUI
ccch1mneyyy/dsh-tui
dsh-web-ui (dsh-task-board)
zhu1090093659/dsh-web-ui