README
dsh-pet-live2d
给 DSH(DeepSeek Harness)Web GUI 用的 Live2D 桌宠插件 —— 一只可以拖动、跟着鼠标看、点她会害羞、 还会跟着会话状态换动作与表情的桌宠。自带 DS鲸鱼娘(8 组动作 + 44 个表情/道具),装完即用。
拖动定位 · 视线跟随 · 摸头互动 · 会话相位 · 右键换装 · 事件穿透
20 个互斥槽位 · 摸鱼随机演出 · 双半区插件,装完即用
是什么
DSH 的 Web GUI 负责对话,而 dsh-pet-live2d 是挂在这块界面上的一只桌宠:她住在页面右下角,能拖、能缩、 跟着鼠标看,点她会有反应。更有意思的是她订阅 DSH 的真实事件(工具调用、审批请求、子代理、轮次结束……), 于是「在想」「在跑工具」「在等你批准」「出错了」这些状态会变成她的动作、表情和台词 —— 不用盯着日志看进度。
| 能力 | 原生 DSH Web GUI | 装了 dsh-pet-live2d |
|---|---|---|
| 界面陪伴 | 无 | 桌宠常驻页面,可拖动 / 缩放,位置和大小记在 localStorage |
| 状态可视化 | 文字与状态点 | 8 个会话相位,各有一套动作 + 表情 + 台词,长任务持续播放 |
| 互动 | 无 | 摸头 / 摸尾巴 / 绕着转圈都有反应,按模型的三角面判定,不是方框 |
| 换装 | 无 | 20 个互斥槽位、44 个表情/道具,右键面板现场换,装扮跨会话保留 |
| 挡不挡 UI | — | 只有角色剪影吃鼠标事件,方形画布的透明处穿透到底下页面 |
| 打扰程度 | — | 静置才会自己演一段;平时画面上没有任何常驻 UI,鼠标划过也不显示 |
另有桌面端(
dsh-live2d-pet-desktop/,Tauri 壳): 把同一份宠物代码放进透明置顶窗口、逐像素穿透到壁纸。Windows x64 的单文件 exe 随插件包分发(装完在设置里选「桌面」);macOS(Apple Silicon)的构建由 CI 产出, 尚未在真机验证 —— 平台支持与已知限制见它的 README。
快速上手
在 DSH 里点几下就装好了(不用命令行):
- 侧栏点「插件」→「添加插件」;
- 包名框里输入
dsh-pet-live2d,回车或点「安装」; - 装完点「立即启用」—— 只关掉对话框的话,它会是"已安装但关闭",插件不会被加载;
- 重启一次
dsh web,她就站在那儿了(启用了 HMR 的 profile 会自己重组,重启最稳妥)。
官方插件页目前不支持自动更新:升级要在这里先卸载、再按上面装一次。
习惯命令行的话,等价的几条:
# 从 npm 装(推荐:插件和自带宠物一起下好)
dsh plugin --profile web add dsh-pet-live2d
# 或从仓库装(# 后面是 pnpm 的 path: 协议,注意那个斜杠)
dsh plugin --profile web add "github:A8Chann/dsh-pet-live2d#path:/dsh-live2d-pet"
# 或先克隆再装本地目录
git clone https://github.com/A8Chann/dsh-pet-live2d
dsh plugin --profile web add "link:./dsh-pet-live2d/dsh-live2d-pet"
仓库根目录没有
package.json:可安装的包在子目录dsh-live2d-pet/里,所以从 Git 装必须带#path:/dsh-live2d-pet。从 npm 装不用管这些。
装完之后会发生什么:
- 宠物随包自带。插件包里就带着那只鲸鱼娘,第一次运行时宿主半区把它复制进
%DSH_HOME%\pets\, 重启dsh web就能看见。只在目标不存在时复制,或者内容与随包分发的那份逐字节相同时才同步升级 —— 你自己改过的那份一个字都不会动。 - Cubism Core 不用手动装。
live2dcubismcore.min.js是 Live2D 株式会社的专有运行时,不能随插件分发; 插件第一次用到它时去 Live2D 官方 CDN 取一份(校验过再发出去),缓存到%DSH_HOME%\pets\.runtime\,之后离线也能用。 - 重启
dsh web。bundle 不做热重载,重启之后她就站在那儿了。
| 项目 | 要求 |
|---|---|
| DSH | >= 0.1.5-rc.1,装在 web profile 上 |
| 浏览器 | 支持 WebGL 的现代浏览器(无头 Edge / Chrome 也跑得动,见回归测试) |
| 操作系统 | 跟着 DSH 走:Windows / macOS / Linux 是同一套 Web 端代码 |
| 网络 | 只在第一次取 Cubism Core 时需要外网;取不到就按 FAQ 手动放一份 |
dsh plugin --profile web update dsh-pet-live2d # 升级(宠物默认值会一起同步)
dsh plugin --profile web remove dsh-pet-live2d # 卸载(%DSH_HOME%\pets\ 里的宠物不会被删)
怎么玩
- 拖动 / 缩放:拖到哪就是哪,大小从 160px 到 760px(默认 300px,右键面板底部的滑杆调), 两者都记在 localStorage,重启还在。
- 右键面板:呼出「动作」「装扮」两个页签 + 大小滑杆 + 「归位」。面板跟随 DSH 的浅色 / 深色主题。
- 跟着鼠标看:视线和头部跟着指针走,移开(或窗口失焦)自动回正。
- 点击反应:点头部才挥锤撒娇,点身上其它地方只出气泡 —— 判定读的是模型自己的几何 (当前帧变形后的三角面 + 作者在 cdi3 里写的部件名),不是画出来的区域。
- 事件穿透:只有角色剪影吃鼠标事件,方形画布的透明处穿到底下的页面,不挡 DSH 的 UI。
- 都会自己收尾:动作、定格、表情到点全部回到初始待机,不会卡住。
- 待机摸鱼:静置一会儿会自己随机演一段(不会演「点击」「出错」这类专属动作)。
| 互动 | 怎么触发 | 默认反应 |
|---|---|---|
| 摸头 | 点在头部(含头发、耳朵等 21 个部件) | 重锤出击 / 问号 / 星星眼 随机一个,不脸红 |
| 摸尾巴 | 点在看得见的鲸鱼尾鳍上(按贴图认那 5 块 drawable,可点区域跟着尾鳍摆动走) | 吐魂 / 问号 随机一个 |
| 转圈转晕 | 鼠标绕着她转圈(默认 2 圈、1.6 秒内) | 演「晕晕」 |
三个互动各自可开关,反应也能改;共用的三句台词在设置页的「气泡」卡里。

右键呼出面板:「动作 8」是模型自带的动作,「装扮 20」是 20 个互斥槽位;底部是大小滑杆和「归位」

同样的她,换一套槽位就是另一个样子(44 个表情/道具里的一小部分)
跟着会话走
她订阅的是 DSH 的真实事件,不是猜的:
| 相位 | thinking |
tool |
waiting |
asking |
helper |
queued |
done |
failed |
|---|---|---|---|---|---|---|---|---|
| 什么时候 | 模型在想 / 刚开工 | 在调工具 | 有操作等你批准 | 它问了你一句、等你回答 | 起了子代理 | 你发的话排队了 | 这一轮说完 | 出错了 |
更多「界面与体验」插件
dsh-tui
作者 ccch1mneyyy
DSH's officially top-recommended TUI plugin — high performance, low overhead, cute pixel whale, smooth mouse interaction. One-command install via npm. / DSH 官方首推的 TUI 插件,高性能低占用,可爱像素鲸鱼,流畅鼠标交互,npm 一键安装
baoyu-design
作者 jimliu
将 Claude Design 作为本地 Agent Skill 运行,为 Cursor、Codex 和 DeepSeek Harness 生成 UI 原型、线框图和演示文稿 HTML。
dsh-better-sidebar
作者 omdsh-dev
开放的侧边栏底座,支持三方拓展注册新侧边栏页面。内置文件渲染编辑/终端/侧边对话/Git/子代理页面 | Open sidebar foundation, supports third-party extensions to register new sidebar pages. Built-in file rendering/editing, terminal, side chat, Git, and sub-agent pages.
dsh-claude-style
作者 nwflower
Claude Code Desktop theme for DeepSeek Harness| 为 DeepSeek Harness 复刻 Claude Code Desktop 风格与交互体验的主题插件
