Codex 风格桌面宠物:右下角悬浮动画精灵,随 agent 运行状态实时变化(工作、等待、报错、完成)。
安装
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:minybear/DeepSeek-Harness-Pet
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。GitHub 来源的插件还会在安装时执行构建脚本——pnpm 默认拦截,所以安装可能停在 ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED 或 ERR_PNPM_IGNORED_BUILDS;dsh 会打印出需要添加的确切键名,把它加进该 profile 的 pnpm-workspace.yaml 的 allowBuilds 下,重跑一次即可装上。放行构建本身就是一次信任判断:请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。
README
Codex 风格的「桌面宠物」DSH 客户端插件:在 DeepSeek Harness(DSH)Web GUI 里漂浮一只动画小宠物,由当前会话的 agent 运行状态实时驱动(工作 / 等待输入 / 报错 / 刚完成 / 待机)。
复刻对象:OpenAI Codex 桌面版的 Pets 功能。调研结论见
docs/Codex-Pet-能力分析.md与docs/复刻方案.md;与 Codex 官方能力的逐项对照见docs/差距分析.md;版本变更记录见CHANGELOG.md。
能力
漂浮宠物:注册进 DSH 的
shell.overlay槽(帧级浮动层,可点透,右下角常驻,可拖拽换位)。状态驱动:读当前会话状态并映射到 Codex 的 9 状态动画行;会话信号按 Codex
ambient.rs的存活期衰减(Running 3min / Failed 1h / Waiting 24h / Review 7d,超时回退 idle):DSH 信号 宠物状态(行) 状态标签 running === truerunning(7) Running pendingInteractionwaiting(6) Needs input lastAgentErrorfailed(5) Blocked running true→false边沿jumping(4) Done!(约 2.6s) completedreview(8) Ready 切换/打开会话 waving(3) Hi!(约 1.7s) 拖拽移动中 running-left/right(1/2,按方向) (无) 无活动 idle(0) (无) 减少动态:跟随系统
prefers-reduced-motion,或在设置里手动锁定「完整 / 减少动态」;减少动态时按 Codex 行为固定显示 idle 第一帧。交互:
- 点击 → 弹出菜单:🍗 喂食(
eat)、🎾 玩耍(play)、⚙ 设置。 - 拖拽 → 移动宠物位置(按拖动方向播放官方 running-left/right 行走动画,静止时为
drag姿态,位置持久化到 localStorage)。
- 点击 → 弹出菜单:🍗 喂食(
养成数值:🍖 饱食 / 😊 心情 0–100,随墙钟时间衰减(关掉浏览器也计时,约 8h / 6h 见底);喂食 +30 饱食、玩耍 +25 心情;菜单里有两条数值条,待机且某项 <20 时宠物会冒「🍖 饿了 / 🎾 想玩」提示。
多宠物:内置五只宠物——Dee(青绿)/ Amber(琥珀)/ Berry(莓紫)同模配色,以及灰鲸(DeepSeek Harness logo 造型)/ 蓝鲸(DeepSeek 官方 logo 造型,品牌蓝)两只侧视鲸鱼,设置面板一键切换。
自定义宠物导入:设置面板可导入标准 Codex 宠物包(
pet.json+ 图集图片,如~/.codex/pets/下 hatch-pet 生成的宠物),校验后存入 localStorage 并立即可选;可删除。无额外交互行的官方 9 行图集会自动回退(交互态播放 idle 行)。外观设置:尺寸(0.5–1.5)、透明度(0.2–1)、动画模式、宠物选择,全部持久化到
localStorage。Codex 兼容包格式:宠物由
pet.json(id/displayName/description/spritesheetPath/frame/animations)+ 一张行优先图集(无独立 atlas 文件,帧索引index = row×columns + col)描述;内置默认宠物在运行时用 canvas 生成。前 9 行为 Codex V1 官方 9 状态,第 9–11 行为交互状态(eat/play/drag),经官方frame覆写(96×104×8×12)与animations字段声明。
结构
lib/pet-core.js 纯逻辑(Node 可测):pet.json 解析 + 帧切片 + 状态机 + 状态存活期
lib/index.js host 侧 apply(空,纯 UI 插件)
lib/client.js 浏览器侧:window.__ModuleLoader__.load + apply/inject + PetOverlay + 精灵生成
test/*.test.mjs Node 单测(pet-core + client 契约 + 双副本一致性)
docs/ 调研、方案与差距分析
注:
client.js内联了一份 pet-core(DSH 模块加载器无法解析包内文件),test/parity.test.mjs会对两份副本做全量行为一致性校验,防止分叉。
测试
npm test # 依次跑 pet-core / client-contract / parity
node scripts/render-atlas.mjs --all # 软渲染三只内置宠物图集并自检网格不变量
安装到 DSH
# 从 npm(发布后)
dsh plugin --profile web add @minybear/dsh-pet
# 或一条命令装本地 checkout(包自带 dsh.bundle.patch 自注册)
dsh plugin --profile web add .
# 或从 GitHub
dsh plugin --profile web add github:minybear/DeepSeek-Harness-Pet
然后重启 dsh web 并刷新页面,宠物应出现在右下角。离线环境或无需 pnpm 时,用 deploy\install.ps1 手动装;完整步骤见 INSTALL.md。
注:客户端插件需宿主端打包(
dsh.client.inject)与重启后生效。
链接
同类插件
PC2005-cloud/dsh-pet#dsh-pet★ 5347
DSH Web UI 桌面宠物,Windows / macOS / Linux 三端可用:浏览器浮层或透明置顶桌面窗口,106 个透明动画、带挤压与粒子的甩抛反弹物理、随会话事件实时联动的工作状态气泡、碎碎念与带持久记忆的对话、余额展示、表情包配图、多开同屏,并支持直接放入的自定义动画与宠物种类(pet pack)。
Alterssss/dsh-bili-whale★ 862
一条按自己作息过日子的 B 站插件:宿主里每 60 秒一次心跳,在设定的作息窗口里随机挑一个时刻叫醒专用会话(今天不想看是按概率跳过),再交给自带的 38 个子命令——信息流、字幕、弹幕、评论、ffmpeg 抽帧、两本日记。每天最多发 N 条评论/动态并 @ 主人(默认 3,按配额账本计数,撞到限流或验证码就停手)。同时轮询评论回复、私信和直播间弹幕;除主人以外的回复先入队,等主人在设置页批准。设置 → 养鱼 写 ~/.dsh/bili-whale.config.json;cookie 单独在 ~/.bili-ai/credentials.json,只写不回显。HTTP 路由只认回环地址并过 DSH 信任栅栏。抽帧需要 Node 18+ 与 ffmpeg。
Nagi-ovo/dsh-ads★ 707
2005 年中文站点风格的整活广告插件:侧栏广告/信息流/角落弹窗 + 假关闭叉,素材全虚构。
yyh-001/dsh-meme★ 488
聊天表情包:纯文本斗图、情绪主动发图、像 QQ/微信 一样发图、AI 自动学图、自定义表情包。
vlln/whale-girl★ 400
桌面宠物(QQ 宠物形态):右下角悬浮、可拖拽/投喂/玩耍。
a86582751/dsh-nexttavern★ 218
NextTavern 是面向 DeepSeek Harness 0.1.7-rc.2 Web 的长篇角色扮演插件,支持角色卡导入与创作、世界线、世界书、分层长期记忆、关键词/语义/混合检索、角色 Agent,以及角色卡或小说导出;支持 SillyTavern 角色卡导入,v0.2.9 修复分发与安装问题。
社区评论
评论公开保存在 GitHub Discussions。加载评论会连接 GitHub 和 Giscus;发表内容需要 GitHub 账号。