# dsh-pet-remielle

> 在 DSH 网页里养一只蕾米埃尔桌宠，实时跟随会话阶段切换贴纸动画与状态气泡，支持桌面悬浮窗。

## Metadata

- Author: [@Gin-7](https://github.com/Gin-7)
- Repo: <https://github.com/Gin-7/dsh-pet-remielle.git>
- GitHub: [Gin-7/dsh-pet-remielle](https://github.com/Gin-7/dsh-pet-remielle)
- Stars: 25
- Language: JavaScript
- License: [NOASSERTION](https://spdx.org/licenses/NOASSERTION.html)
- Topics: `dsh-plugin`
- Forks: 5
- Open Issues: 2
- Last push: 2026-08-20T03:42:24.000Z
- Added: 2026-08-20T00:00:00.000Z

## Install

```bash
dsh plugin --profile web add dsh-pet-remielle
```

## Wiki

## 一句话定位
在 DSH（DeepSeek Harness）网页里养一只蕾米埃尔（Remielle）动画桌宠，它会实时跟随你的会话阶段切换贴纸、显示状态气泡；可选地把桌宠"请"出网页，飘在 Windows 桌面最上层作为透明置顶悬浮窗。

## 核心能力
- 跟随 DSH 真实会话事件切换贴纸：思考、输出、调用工具、等待确认、出错等阶段对应不同的 GIF 动画
- 在桌宠上方显示状态气泡，包含项目名、阶段、待办进度（已完成 x/y）
- 多 Session 同时运行时按"等待确认 > 错误 > 工作 > 思考 > 空闲"优先级展示最需要关注的会话
- 内置多宠物注册表，可启用 / 禁用 / 重命名 / 切换当前展示的桌宠形象
- 通过 SSE 实时推送状态，断线自动重连，必要时轮询兜底
- 可选的桌面悬浮窗（Windows x64）：Electron 透明置顶窗口，双击画画的作品图弹在屏幕右上角独立小窗
- 插件内置版本检查与一键更新，跨 CN 网络有 HTTP 代理回退
- 设置页提供多标签页（外观 / 行为 / 桌面悬浮 / 更新 / 反馈）

## 技术实现
- **语言**: JavaScript（Node ESM，浏览器端也是 JS）
- **关键依赖**: @deepseek-ai/schemastery（设置配置 schema）、@deepseek-ai/cordis（DSH 插件宿主）、@deepseek-ai/dsh-client-ui-settings-plugins（客户端 UI 注入点）
- **架构模式**: Cordis 插件宿主，监听 `session/event` + `session/disposed` 全局事件总线，经纯函数 `PetReducer` 归约成结构化消息，再通过 webServer 的 loopback HTTP 端点（/config /state /stream /pets /assets /pet-view /desktop /check /update /info）暴露给浏览器端；客户端代码通过构建脚本注入版本号后打包成 `lib/client.js`
- **入口文件**: src/index.js（宿主端，导出 `name` / `apply` / `Config`）；浏览器端入口为构建产物 lib/client.js

## 适用场景
DSH 长时间跑任务时，想不盯着网页也能感知到进展 —— 看一眼屏幕角落的桌宠贴纸就知道 AI 是还在想、卡住了、还是要你确认。同时给 DSH 网页/桌面增加一点陪伴感，适合喜欢赛璐璐/二次元风格桌宠、又不想装独立桌面宠物软件的用户。

## 前置依赖与兼容性
| 依赖 | 最低版本 | 说明 |
|---|---|---|
| DSH（DeepSeek Harness） | 已在 0.1.0-rc.5 / fairy 桌面版实测 | 插件未在 manifest 声明 dsh 最低版本要求 |
| Node.js | >= 22.19.0 | 来自 package.json 的 `engines.node` |
| 平台（桌面悬浮窗） | Windows x64 | package.json 声明 `os: ["win32"]`、`cpu: ["x64"]`；其他平台桌面悬浮不可用，会自动回落到页面内桌宠 |
| 平台（页面内桌宠） | 跨平台 | SSE / 多宠物 / 双击画画 / 设置项在 macOS、Linux、浏览器端均可使用 |
| 原生模块 | 无 | 仅依赖 Node 内置 API（fs、http、tls、child_process）与 Cordis / Schemastery |

## 安装方式
```bash
dsh plugin --profile web add dsh-pet-remielle
```

## 配置项
| 配置 | 类型 | 说明 | 默认值 |
|---|---|---|---|
| enabled | 开关 | 启用桌宠；关闭后立即隐藏，重新开启恢复 | 开启 |
| scale | 滑块（0.5–2，步进 0.05） | 角色大小缩放系数 | 1.0 |
| opacity | 滑块（0.3–1，步进 0.05） | 桌宠透明度 | 1.0 |
| locked | 开关 | 锁定位置（禁止拖动） | 关闭 |
| paused | 开关 | 暂停动画 | 关闭 |
| hidden | 开关 | 隐藏桌宠 | 关闭 |
| includeSubagents | 开关 | 允许子 Agent 抢占桌宠状态 | 关闭 |
| showBubble | 开关 | 在宠物上方显示状态气泡（阶段 / 待办 / 进度） | 开启 |
| desktopMode | 开关 | 桌面悬浮模式：用独立置顶窗口显示宠物；首次开启若无 Electron 运行时，会提示下载（约 200MB，下载失败自动回落页面内） | 关闭 |
| posX | 数字 | 宠物 X 位置；留空则使用默认位置 | 自动 |
| posY | 数字 | 宠物 Y 位置；留空则使用默认位置 | 自动 |
| activePetId | 字符串 | 当前展示的宠物 id | remielle（蕾米埃尔） |
| pets | 列表 | 宠物注册表，每项含 id / 显示名 / 是否启用 | 默认包含蕾米埃尔一项 |

## 常见问题

**Q: 安装后桌宠不显示怎么办？**

A: 默认就是启用状态。如果设置里把"启用桌宠"关掉了，重新打开即可；或在 DSH 网页右上角的设置 → 蕾米埃尔桌宠中重新勾选启用。

**Q: 桌面悬浮窗和页面内桌宠有什么区别？**

A: 桌面悬浮窗是独立的透明置顶窗口（仅 Windows x64，需 Electron 运行时），双击画画的"作品图"会弹在屏幕右上角独立小窗；页面内桌宠则是嵌在 DSH 网页里，跨平台可用。

**Q: 桌面悬浮模式第一次开启会下载什么？**

A: 会下载约 200MB 的 Electron 运行时（仅 win32-x64），下载前会弹出确认提示；下载失败会自动回落到页面内展示，不影响其他功能。

**Q: 子 Agent 的状态也会被桌宠反映吗？**

A: 默认不反映。需要在设置里勾选"允许子 Agent 抢占宠物状态"（includeSubagents）才会把子 Agent 纳入状态汇总。

**Q: 旧版本为什么不能直接更新？**

A: 0.3.0 之前的包名发生过变更（0.2.0 之前是 @dsh-external/dsh-client-ui-pet-remielle，0.2.0–0.3.0 是 dsh-pet-remielle），直接覆盖升级会触发加载报错；需要先卸载旧版再装新版。

**Q: 怎么换桌宠形象？**

A: 把 6 张命名为 01.gif–06.gif 的贴纸（以及可选的 pics/01.png 等作品图）放进 assets/pets/&lt;id&gt;/ 目录，然后到设置 → 宠物管理 → 外观中启用并设为当前宠物。

**Q: 状态气泡的"项目 · 已完成 x/y · 阶段"显示什么？**

A: 来自 DSH 会话的实时事件：项目名取自 session header 或工作目录名；进度统计当前待办列表的完成条数；阶段由工具类型（搜索/编辑/测试/命令）映射。

**Q: macOS / Linux 上能用哪些功能？**

A: 页面内桌宠、SSE 推送、多宠物切换、双击画画、所有设置项都可用；只是桌面悬浮窗不提供，会自动回落页面内展示。

## 上手难度
入门 — 安装即用，默认配置就能看到桌宠；只需在 DSH 网页里跑过一次会话就能理解贴纸和气泡的含义。

## 已知问题与限制
- package.json 声明 `os: ["win32"]`、`cpu: ["x64"]`，意味着某些 dsh 安装形态可能不会在非 Windows / 非 x64 环境加载本插件；页面内桌宠本身可跨平台运行，受限于该声明。
- 桌面悬浮模式首次开启需联网下载约 200MB 的 Electron 运行时；离线 / 沙箱环境需提前把 Electron win32-x64 解压到 `vendor/electron-win32-x64/`，或设置 `DSH_PET_ELECTRON` 环境变量指向已存在的 `electron.exe`。
- 版本低于 0.3.0 的安装无法增量更新（包名发生过两次变更），必须先卸载旧版再装新版；插件内的"一键更新"按钮对低版本会给出卸载重装指引而不会直接覆盖。
- 桌面悬浮窗仅支持 Windows x64；macOS / Linux 上开启 desktopMode 不会报错，但仅会保持页面内桌宠，不会真的拉起独立窗口。

---

This document is auto-generated by [deepseek-plugin.org](https://deepseek-plugin.org). HTML page: [dsh-pet-remielle](https://deepseek-plugin.org/plugins/Gin-7/dsh-pet-remielle)
Wiki generated by AI (model: `MiniMax-M3`)
