为 DSH Web GUI 添加像素风桌宠爱弥斯,根据 agent 状态切换待机/工作/失败等动画并显示中英气泡。
- 语言
- TypeScript
- License
- Apache-2.0
- 分支
- main
安装
$ dsh plugin --profile web add github:culture-flask/dsh-aemeath-pet在终端中运行以上命令,通过 dsh CLI 安装此插件。可在右上角切换 Profile。 第一次用 dsh?看这篇新手教程
对话式安装
帮我安装 DeepSeek Harness 插件 culture-flask/dsh-aemeath-pet:先查看仓库 https://github.com/culture-flask/dsh-aemeath-pet 确认安全性,然后执行安装命令并验证插件加载成功。
把这段指令粘贴给 DSH Web GUI 里的助手,由它代你完成安装与验证。
一句话定位
为 DeepSeek Harness Web GUI 添加一只名为「爱弥斯」的像素风桌宠:常驻屏幕一角,跟随 agent 状态自动切换待机 / 工作 / 失败等动画并说出中英气泡。
核心能力
- 根据当前会话状态自动切换待机、工作、等待三种循环动画,agent 出错时播放失败动画并弹出错误气泡
- agent 启动新一轮任务时跳跃庆祝并说「交给我吧!」,一轮结束时再次跳跃并说「搞定啦 ✨」
- 闲置时随机左右斜向奔跑、原地工作或跳跃,停靠和自由摆放模式下都会出现
- 支持鼠标拖拽改变位置、右键菜单切换停靠/自由摆放、调整大小(小/中/大)、隐藏与重置位置
- 单击宠物会挥手回应并随机说一句招呼语
- 偏好(启用、缩放、停靠或自由摆放的位置)持久化到 localStorage,刷新浏览器后恢复
技术实现
- 语言: TypeScript
- 关键依赖: @deepseek-ai/cordis、@deepseek-ai/dsh-client-runtime、@deepseek-ai/dsh-client-locale、@deepseek-ai/dsh-host-webserver
- 架构模式: host + client 双端;host 半通过 cordis 注入 webServer 并注册精确路由
/aemeath-pet/spritesheet.webp返回 spritesheet,client 半通过__ModuleLoader__注册并注入 sessions + locale,订阅会话快照派生宠物状态 - 入口文件: src/index.ts(host 端)、src/client/index.ts(client 端)
- 渲染: canvas 绘制精灵图,DOM 注入气泡与右键菜单,无 React 依赖
适用场景
DSH Web 用户希望界面更有陪伴感、不只是冷冰冰的命令行面板。安装后这只像素宠物会常驻屏幕右下角,并在你向 agent 提问、等待回复、出错调试的全程给出反馈,适合长时间挂着 DSH 处理任务的开发者与重度用户。如果你不希望画面被动画打扰,也可以一键隐藏。
前置依赖与兼容性
| 依赖 | 最低版本 | 说明 |
|---|---|---|
| DSH | >=0.0.1 | 插件清单声明的引擎要求,几乎不限制宿主版本 |
| Node | 未声明 | 运行时无需 Node;构建依赖要求 @types/node ^24.0.0,仅影响开发 |
| 平台 | 跨平台 | host 端运行在 DSH 内部,client 端运行在浏览器,无原生绑定 |
| 原生模块 | 无 | 不依赖 node-pty、node:sqlite 等原生扩展 |
安装方式
dsh plugin --profile web add github:culture-flask/dsh-aemeath-pet
配置项
本插件无需预先声明配置项。所有可调参数都通过右键菜单即时生效:
| 配置 | 类型 | 说明 | 默认值 |
|---|---|---|---|
| 显示 / 隐藏 | 开关 | 是否在屏幕上显示桌宠,隐藏后会留下一个爪印按钮可再次唤出 | 显示 |
| 摆放方式 | 开关 | 停靠到右下角,还是可以自由拖到任意位置 | 停靠 |
| 大小 | 单选 | 0.75 / 1 / 1.25 三档缩放 | 中(1.0) |
这些偏好会写入当前浏览器的 localStorage(键名 dsh-aemeath-pet.prefs),不跨设备同步;如需恢复默认可点菜单中的「重置位置」或清除该键。
常见问题
Q: 安装后桌宠不显示怎么办?
A: 重启 dsh web 并在浏览器端执行 Cmd/Ctrl+Shift+R 硬刷新,旧版 Service Worker 可能缓存了缺失的精灵图路由。注意命令里的 --profile web 是必需的,插件只对 web profile 生效。
Q: 桌宠数据存在哪里?会随账号同步吗?
A: 偏好(是否启用、缩放、停靠或自由摆放的位置)只写到当前浏览器的 localStorage,键名 dsh-aemeath-pet.prefs,不会联网,也不会跨设备同步。卸载插件或清除该 localStorage 键即可恢复默认。
Q: 桌宠会挡住页面上其它按钮吗?
A: 不会。桌宠根容器固定为 pointer-events: none,只在画布、菜单和「爪印」按钮上重新启用指针事件;CSS 把 z-index 设为最高层级(2147483000)但不会拦截下层应用的交互。
Q: 鼠标点击 / 拖拽会触发什么?
A: 单击会播放挥手动画并随机说一句「嗨~」或「我在哦~」;按住拖拽超过 5 像素则进入自由摆放模式,松开后位置会写回 localStorage。右键则打开大小、停靠、隐藏、重置等菜单。
Q: 素材加载失败会怎样?
A: 画布保持空白,桌宠会弹出「素材加载失败啦…」气泡提示。这通常是 host 半的 /aemeath-pet/spritesheet.webp 路由不可达或 lib 资源未正确安装导致,请确认插件已加入 dsh.profile.bundles 并重启过 dsh web。
Q: 这是官方插件吗?素材能商用吗?
A: 不是。爱弥斯角色出自《鸣潮》(Kuro Games),精灵图源自 aemeath-codex-pet 的 Apache-2.0 版本和 B 站「Neuro音乐」发布的动态;插件代码本身是 Apache-2.0,但角色形象与原始美术素材权利归原作者与相应权利方,仓库不授予额外的商业使用许可。
上手难度
入门 — 安装一行命令即可看到桌宠,所有交互通过右键菜单和拖拽完成,无需阅读文档或修改配置文件。
已知问题与限制
- localStorage 不可用(隐私模式、配额耗尽)时偏好仅在当前会话保留,刷新后丢失;插件不会抛出错误
- 首次启动后约 4–8 秒才会出现第一次随机动作,后续间隔 6–15 秒,期间若浏览器标签切到后台动作会被挂起、不会补播
- 拖拽中或正在播放一次性动画时,新的随机动作与状态切换会顺延,不会打断当前帧
- 桌宠只对 web profile 生效,命令行 profile 不会加载;也不要装到 desktop profile,会因为缺少 webServer 注入而无法启动
- 角色形象为同人素材,仅供个人使用,不建议二次分发或商用
爱弥斯 · DeepSeek Harness 桌宠 — DeepSeek Harness Web GUI 的像素风宠物插件。
爱弥斯会停在页面角落,陪 agent 一起工作:
| 场景 | 动作 |
|---|---|
| Agent 空闲 | 随机奔跑 / 原地工作 / 跳跃(不受会话状态限制) |
| Agent 正在运行 | 工作动画 + 「思考中…」 |
| Agent 等待你输入 | 等待动画 + 「等你哦~」 |
| Agent 步骤出错 | 失败动画 + 「唔…出错了」 |
| 新任务开始 | 跳跃 + 「交给我吧!」 |
| 一轮任务完成 | 跳跃庆祝 + 「搞定啦 ✨」 |
| 点击 / 触碰 | 挥手回应 |
功能
- 🎬 全部 11 种动画(待机 / 左右移动 / 挥手 / 跳跃 / 失败 / 等待 / 工作 / 检查 / 两向注视),帧布局与 Codex Pet V2 图集一致(1536×2288,8×11 格,每格 192×208)
- 🐾 右击菜单:停靠角落 / 自由摆放、大小(小·中·大)、隐藏、重置位置;拖拽可随意移动
- 💬 跟随 DSH 语言的中/英气泡文案(locale 命名空间
dsh-aemeath-pet) - 🏃 随时随机表演:向左/右斜向奔跑(running-left / running-right,含垂直分量)、原地工作(running)、跳跃(jumping)— 停靠和自由摆放模式下都会出现
- 💾 偏好(启用 / 缩放 / 位置)持久化在 localStorage
- 🔌 纯客户端渲染(canvas + DOM,无 React 依赖);Host 半只负责服务精灵图素材
安装
dsh plugin --profile web add https://github.com/culture-flask/dsh-aemeath-pet/archive/refs/tags/v0.1.0.tar.gz
重启 dsh web 并硬刷新浏览器(Cmd/Ctrl+Shift+R)即可看到爱弥斯。
目录结构
dsh-aemeath-pet/
├─ src/
│ ├─ index.ts # host 半:webServer 素材路由(/aemeath-pet/spritesheet.webp)
│ └─ client/ # 浏览器半(无 React,canvas + DOM)
│ ├─ index.ts # 会话接线:snapshot → 情绪/动作 + 气泡
│ ├─ pet.ts # 宠物引擎:动画循环、随机动作、拖拽/菜单/偏好
│ ├─ state.ts # 纯函数状态派生(单测覆盖)
│ ├─ atlas.ts # Codex Pet V2 图集布局(每动画的行/帧/帧率)
│ ├─ locales.ts # 中英文案
│ └─ styles.ts # 注入样式
├─ assets/ # spritesheet-v2-r2.webp(素材见下)
├─ lib/ # 构建产物(提交)
├─ tests/ # state 纯逻辑 + pet jsdom 引擎测试
├─ cordis.patch.yml # bundle 补丁(挂载行)
└─ dsh.plugin.json # 插件元数据
素材与版权
素材来源:
- 精灵图与图集布局:源自 aemeath-codex-pet(Apache-2.0,R2)——本插件使用的
assets/spritesheet-v2-r2.webp是该仓库的原始文件 - 角色形象:爱弥斯出自游戏 《鸣潮》(Wuthering Waves),角色及美术素材权利归 Kuro Games / 相应权利方所有
- 原始表情包素材:出自 B 站 up 主 「Neuro音乐」 的动态:哔哩哔哩 · 爱弥斯表情包
本项目是非官方、非商业的同人桌宠适配项目;本仓库不对这些素材授予额外的商业使用许可。角色形象与原始美术素材权利归原作者与相应权利方所有,仅供个人使用;二次分发或商业使用请先取得授权。
License
Apache-2.0,见 LICENSE。
查看使用指南 →
该插件的安装步骤、关键要点、FAQ 与兼容性说明(基于已收录字段派生)。
收录徽章
[](https://deepseek-plugin.org/plugins/culture-flask/dsh-aemeath-pet)把这段 markdown 粘贴到你的 GitHub README,链接回本插件详情页。徽章只声明已被本站收录,不代表安全认证。