dsh-client-ui-pet

DSH PLUGINUI 与外观

仓库 LucasleeCN/dsh-client-ui-pet

UI 与外观 L5 · 运行验证通过 安全审查:低风险 可信度:金 可安装插件
安装这个插件

为 DeepSeek Harness 官方 Web UI 注入可拖拽桌宠,跟随会话状态切换动作,支持抚摸、喂食、玩耍等轻养成互动,并提供设置面板与开发者 API。

一句话选型结论

按资料字段整理

dsh-client-ui-pet 是UI 与外观类的 DSH 可安装插件,验证等级 L5 · 运行验证通过,安全审查为低风险,列出 4 项功能,有可直接复制的安装命令。验证通过不等于安全:插件会读写文件、执行命令或联网,装前先到仓库确认它做了什么;涉及密钥或系统权限的,建议先在隔离环境试装。

分类UI 与外观 收录类型可安装插件 验证等级L5 · 运行验证通过 安全审查低风险
验证等级 L5 L5 · 运行验证通过
GitHub 星标 0 复刻 0 · 未关闭 issue 0
最近更新 2026-08-16 创建于 2026-08-16
README 11.0 KB 正文体量,越大说明说明书写得越细

安装

可安装插件
在 DSH 里执行,装完用 dsh plugin list 确认已挂上;标了 L4 / L5 的命令已在沙盒里真实跑通
dsh plugin --profile web add github:LucasleeCN/dsh-client-ui-pet
  1. 1
    确认版本与运行环境

    兼容的 DSH 版本为 0.2.0-rc.2 等 10 个;版本不匹配时安装会报错。

  2. 2
    执行安装命令

    在 DSH 里执行上面的命令;多包仓库要注意区分具体子包名,别装错包。

  3. 3
    确认已挂载

    用 dsh plugin list 查看列表里是否出现这个插件,出现即挂载成功。

  4. 4
    试跑并检查权限

    加载后跑一个最小用例,确认它能正常工作;同时看它申请了哪些文件、命令或网络权限。

兼容 DSH 版本0.2.0-rc.2 等 10 个版本版本不匹配时安装会报错
Node.js 要求未标注来自仓库 package.json 的 engines 字段
前置依赖无需要同时安装的同级依赖
npm 包名未发布到 npm可用 npm view 查看包信息

能做什么

4 项功能
字段来自项目仓库与公开索引,中文说明由本站标注

dsh-client-ui-pet:为 DeepSeek Harness 官方 Web UI 注入陪伴式桌宠的 DSH plugin

  • 状态跟随动作
  • 轻养成互动
  • 自定义外观
  • 开发者 API

上游标签

dsh-plugindsh-plugin-marketdsh-plugins

验证等级与安全审查

L5 · 运行验证通过
自动化流程结论,不是人工审核
验证等级L5 · 运行验证通过在 dsh 沙盒中完成安装与运行冒烟——装得上、跑得起来
安全审查低风险静态分析结论,未标注不代表已通过审查
仓库健康度稳定按仓库活跃度与最近更新时间给出
可信度金综合仓库活跃度与验证结果

上面的结论来自上游最近一次自动化验证(2026-10-08): 同一套检查会在插件发新版后重跑,页面显示的是最新一次的逐项结果。

逐项检查结果

L1 · 已找到 ✓ 通过
  • L1.0_DEFAULTED_FROM_L3 由 L3 推定 默认通过——L3 安装规范已通过(全库 L3 扫描策略)
L2 · 结构化 ✓ 通过
  • L2.0_DEFAULTED_FROM_L3 由 L3 推定 默认通过——L3 安装规范已通过(全库 L3 扫描策略)
L3 · 安装规范 ✓ 通过
  • L3.1_INSTALL_COMMAND_PARSED 安装命令已解析 方式:安装规范解析
  • L3.2_DSH_VERSION_DECLARED DSH 版本已声明 方式:DSH 版本声明
L4 · 安装已测 ✓ 通过
  • L4.1_INSTALL_EXECUTED_CONFINED 受限沙盒内执行安装 方式:沙盒安装执行
  • L4.2_INSTALL_SUCCESS 沙盒安装成功 方式:沙盒安装执行
  • L4.3_ARTIFACT_CONFIRMED 安装产物已确认 方式:沙盒安装执行
L5 · 运行已测 ✓ 通过
  • L5.1_INSTALL_PASSED_SANDBOXED 沙盒安装通过 方式:沙盒安装执行
  • L5.2_WEB_BOOT_READY Web 启动就绪 方式:Web 启动
  • L5.3_HTTP_SERVED HTTP 服务响应 方式:HTTP 请求
  • L5.4_PLUGIN_INVENTORY_ACTIVE 插件清单中已激活 方式:插件清单查询
— · 其它检查项
  • L4_0_SANDBOX 沙盒安装判定 方式:沙盒安装执行

风险详情

  • 审查结论 通过
  • 结论说明 vet 静态分析未发现可疑行为,判定为干净(clean)。
  • 风险计数 严重 0 / 高 0 / 中 0
  • 风险详情 未发现严重或警告级问题。

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 验证等级 L5:安装和运行都在沙盒里跑通过,装完能直接用的概率高。
  • 静态安全审查为低风险,没有发现明显可疑行为。
  • 有可直接复制的安装命令,不用自己翻文档找入口。
  • 标注了兼容的 DSH 版本(0.2.0-rc.2 等 10 个),按版本装不容易报错。
  • 列出了 4 项功能,能直接看出它解决什么问题。

先想清楚的地方

  • 没有声明 Node.js 版本要求,版本不匹配可能装不上。
  • 验证通过不等于安全:插件会读写文件、执行命令或联网,装前先到仓库确认它做了什么。

更适合

  • 需要在UI 与外观场景里给 DSH 补能力的人。
  • 想装完就能用、不想自己排依赖的人。
  • 能接受在本地装依赖、愿意自己确认权限的人。

不太适合

  • 只使用 DSH 官方内置能力、不接受第三方插件的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
插件验证等级安全审查星标兼容版本安装命令
dsh-client-ui-pet当前 L5 · 运行验证通过 低风险 0 0.2.0-rc.2 等 10 个 有
nuwa-skill 未做沙盒验证 未标注 3.8 万 未标注 有
awesome-dsh-plugin L4 · 沙盒安装通过 低风险 1.8 万 0.1.1-rc.2 有
deepseek-balance-whale-widget L4 · 沙盒安装通过 低风险 4,492 0.1.7-rc.2 等 2 个 有
dsh-better-sidebar L4 · 沙盒安装通过 低风险 4,112 0.1.7-rc.2 等 10 个 有
dsh-deep-whale L4 · 沙盒安装通过 低风险 2,470 未标注 有

仓库档案

UI 与外观
字段来自项目仓库与公开索引,中文说明由本站标注
作者 / 维护方LucasleeCN仓库 dsh-client-ui-pet · 默认分支 main
分类UI 与外观skin
收录类型可安装插件声明了 dsh.bundle、可用 dsh plugin add 安装的条目
开发语言JavaScript仓库主语言
许可证MIT商用或二次分发前请确认条款原文
星标 / 复刻 / issue0 / 0 / 0收录时的数值,非实时
创建 / 更新2026-08-16 · 2026-08-16最后推送 2026-08-16
本站收录2026-08-27首次进入本站目录的时间

README 全文

11.0 KB
作者原文,中文版优先;只做安全转义,不改内容

dsh-client-ui-pet

DeepSeek Harness 官方 Web UI 的客户端宠物插件:在界面右下角注入一只可拖拽的桌宠,
参考 Codex Pets 的陪伴式交互与状态叠加层设计。宠物会跟随会话状态切换动作(思考 / 工作 /
完成 / 报错 / 睡觉…),支持点击抚摸、喂食、玩耍等轻养成互动,并提供一个完整的
宠物设置面板和 window.dshPet 开发者 API。

当前内置 1 只宠物——由用户提供的状态图生成的 JPG 宠物(WebP 内嵌,免主机重启):

id 宠物 说明
deepseek-whale 鲸鱼娘(原图) 由 assets/deepseek-whale/ 下 8 个状态 PNG 抠背景、压缩为 WebP 后内嵌生成

> 手绘 SVG 内置宠(鲸鱼娘 / 橘猫 / 柴犬 / 史莱姆)已按用户要求移除;
> 如需恢复,取裁剪前的历史 client.js,或通过开发者工作室重新导入任意 SVG / raster 定义。

功能

Codex 式状态陪伴

宠物通过 MutationObserver 感知 Harness Web UI 的真实活动信号:

  • 在 [data-composer-seat] / textarea 中输入 → typing(注视键盘)
  • 出现 button[aria-label="停止生成"] / [data-state="running"] → thinking(思考)
  • 出现 [data-streaming] → working(忙碌)
  • 运行结束 → done(完成庆祝,心情 +2、亲密度 +1)
  • 出现 [data-error] → error(担心,心情 -3)
  • 空闲超过设定时间 → sleep(睡觉 + Zzz 粒子);任何活动或互动会唤醒

轻养成

  • 心情(0-100):随时间缓慢衰减,互动会恢复;低于 30 宠物会主动求关注。
  • 亲密度(0-100):只增不减,记录你们共同工作的羁绊。
  • 互动统计:抚摸 / 喂食 / 玩耍次数。
  • 数据按宠物独立保存到浏览器 localStorage。

用户自定义界面

设置面板(宠物工具栏齿轮按钮)包含 5 个页签:

  1. 宠物:图库选择内置 / 自定义宠物;一键四角定位、复位、隐藏。
  2. 外观:昵称、体型滑杆、每个宠物声明自己的调色板(`` 换色)。
  3. 行为:状态跟随 / 气泡台词 / 粒子特效 / 自动睡觉开关,入睡时间可选 1/3/5/10 分钟;
    每个状态都有手动预览按钮。
  4. 养成:心情与亲密度进度条、互动统计、重置数据。
  5. 工作室:粘贴 JSON 校验并导入自定义宠物、导出当前宠物定义、管理已导入列表。

宠物本身可以直接拖拽;同时提供四角定位按钮,满足 WCAG 2.2 对拖拽操作
必须有单指针替代方案的要求。宠物可聚焦,Enter / Space 抚摸,工具栏按钮均为 44px 触控目标,
prefers-reduced-motion 下自动关闭全部动画。

JPG 主图宠物(raster 模式)

不想要手绘 SVG?把一张 JPG/PNG/WebP 交给插件即可作为宠物:引擎会在图片外套上
状态动画(呼吸 / 点头 / 弹跳 / 拖拽 / 睡觉…),气泡、粒子、互动、养成与设置面板全部复用。
JPG 宠物不支持换色(保留原图配色),其余外观选项照常可用。

{
"id": "my-jpg-pet",
"name": "我的 JPG 宠物",
"mode": "raster",                    // 启用图片模式
"image": "/plugins/dsh-client-ui-pet/assets/my-pet/idle.webp",
// 可选:为不同状态指定不同图片;缺省的状态回退到 image
"images": { "sleep": "/plugins/dsh-client-ui-pet/assets/my-pet/sleep.webp" },
"states": { "idle": { "hold": true } },
"behaviors": []
}

image / images 只接受三种来源(其余会被校验拒绝):data:image/...;base64、
http(s)://、或 / 开头的同源路径。把图片放在本包 assets/<宠物>/ 目录下,
Host 半侧会自动把它们发布到 /plugins/dsh-client-ui-pet/assets/<宠物>/<文件>
(Host 半侧代码更新后需要重启一次 Harness Web 才会生效)。

免重启内嵌路线(当前 deepseek-whale 用的就是它):

python scripts\make-raster-pet.py assets\<宠物id> --name "宠物名" --embed
node scripts\embed-pet.mjs assets\<宠物id>\<宠物id>.embed.definition.json

第一条命令抠背景 / 缩放 / 压缩为 WebP 并内联成 data:image/webp;base64;
第二条把定义嵌入 lib/client.js 的内置宠物列表。同步 client.js 后刷新页面即可。

开发者完全自定义:dshPetDefinition

动作、行为、表现全部由定义数据驱动。定义是一个 JSON 对象:

{
"id": "pudding-ghost",          // /^[a-z0-9][a-z0-9_-]{1,39}$/i
"name": "布丁幽灵",
"version": "1.0.0",
"author": "you",
"description": "示例宠物",
"size": { "min": 64, "max": 240, "default": 112 },
"colors": [
{ "key": "primary", "label": "身体", "default": "#c084fc" }
],
// 内联 SVG 标记。颜色用 var(--dsh-pet-c-, 默认色) 引用,
// 这样设置面板的换色器会自动生效。
"svg": "…",
// 只作用于本 SVG 的 CSS:关键帧 + 状态选择器。
// 引擎会把 data-state 同步到 .dsh-pet-root 分组和 svg 元素上。
"style": ".dsh-pet-root[data-state=\"idle\"] .p-body { animation: pet-bob 3s infinite; } …",
"states": {
"idle":  { "label": "空闲", "hold": true },
"happy": { "label": "开心", "durationMs": 1800 }
},
"behaviors": [
{
"trigger": "activity:done",   // 或数组;见下方触发器表
"state": "happy",
"bubbles": ["完成啦!"],
"effect": "sparkles",         // 内置:hearts/sparkles/food/note/zzz/drop/star
"mood": 2,                    // 心情变化
"affinity": 1,                // 亲密度变化
"hold": false,                // true = 事件持续期间保持状态
"cooldownMs": 0
}
],
"interactions": {
"pet":  { "state": "happy", "effect": "hearts", "mood": 5, "affinity": 1 },
"feed": { "state": "happy", "effect": "food",   "mood": 12, "affinity": 2 },
"play": { "state": "happy", "effect": "sparkles", "mood": 8, "affinity": 2 }
},
"bubbles": { "idle": ["我在这里~"] }
}

约定与扩展点:

  • states 必须包含 idle;durationMs=0 + hold:true 表示常驻状态。
  • style 里的选择器使用 .dsh-pet-root[data-state="<状态>"] .部分类名 为不同状态绑定关键帧。
  • 表情切换:在 svg 中放置 和,在 style 中按状态切换 display。
  • effects 可扩展自定义粒子({ id: { svg, durationMs } })。
  • 开发者定义的 SVG / CSS 会经过消毒(移除脚本、事件属性和 javascript:)。

内置触发器:activity:typing、activity:thinking、activity:working、
activity:done、activity:error、sleep、wake、birth、mood:low、
interaction:pet、interaction:feed、interaction:play;
另外可随时通过 window.dshPet.trigger("your:custom-trigger") 触发自定义行为。

开发者 API

window.dshPet.version                 // 插件版本
window.dshPet.listPets()              // [{ id, name, version, builtin }]
window.dshPet.registerPet(def, opts)  // 注册自定义宠物(opts.persist=false 仅本次会话)
window.dshPet.unregisterPet(id)       // 删除自定义宠物
window.dshPet.getDefinition(id?)      // 深拷贝当前/指定宠物定义
window.dshPet.selectPet(id)
window.dshPet.setState("happy", { hold: true, bubbles: false, text: "…", effect: "hearts" })
window.dshPet.trigger("interaction:pet")
window.dshPet.importPet(json, opts)   // 接受 JSON 字符串或对象
window.dshPet.exportCurrentPet()      // 返回格式化 JSON 字符串
window.dshPet.current()               // { id, state }
window.dshPet.getState()              // 当前状态名
window.dshPet.on("state", handler)    // "state" | "trigger" | "select" | "register" | "unregister"

安装

该插件是标准 dsh.client 双面包:Host 半侧为空 Loader 入口,Browser 半侧注入全部 UI。

方法 A:profile bundle(推荐)

编辑 /profiles/web/package.json:

{
"dependencies": {
"dsh-client-ui-pet": "file:D:/Softwares/CodeSoftWares/Agents/dsh-client-ui-pet"
},
"dsh": {
"profile": {
"bundles": [
"@deepseek-ai/dsh-base",
"@deepseek-ai/dsh-web-app",
"dsh-client-ui-pet"
]
}
}
}

安装依赖后重启 DeepSeek Harness Web(已打开的页面刷新即可)。

方法 B:手动插入 Loader 行

  1. 将插件目录复制到 /profiles/web/node_modules/dsh-client-ui-pet。
  2. 编辑 /profiles/web/cordis.patch.yml:
- insert:
- id: ui-pet
name: 'dsh-client-ui-pet'
config:
enabled: true
  1. 刷新 Harness Web 页面(或重启 Web)。

验证:右下角出现 DeepSeek 鲸鱼娘,点击可抚摸,悬停出现工具栏,齿轮打开设置面板。

目录结构

dsh-client-ui-pet/
├─ package.json
├─ cordis.patch.yml
├─ LICENSE
├─ README.md
├─ lib/
│  ├─ index.js                # Host 半侧(assets 静态资源路由)
│  └─ client.js               # Browser 半侧(引擎 + 内置鲸鱼娘 + 面板 + API)
├─ assets/
│  ├─ README.txt              # 图片放置说明
│  └─ deepseek-whale/         # 鲸鱼娘(原图)素材 + 生成的 WebP + 定义 JSON
├─ scripts/
│  ├─ make-raster-pet.py      # JPG/PNG → 抠背景 → WebP → 定义 JSON
│  ├─ embed-pet.mjs           # 把 --embed 定义写入 client.js 内置列表
│  ├─ prune-builtins.mjs      # 移除手绘 SVG 内置宠(保留 raster 槽)
│  ├─ verify-live.mjs         # CDP 真机探针(8787)
│  └─ verify-raster-live.mjs  # CDP raster 注入探针
├─ test/
│  └─ client.test.mjs         # node:vm 假 DOM 自动化测试(17 个用例)
├─ preview/
│  ├─ index.html              # 独立预览页(可模拟 Harness 活动信号)
│  ├─ raster-demo.html        # JPG 宠物渲染验证页(?pet=&embed=1)
│  ├─ server.mjs              # 本地静态服务器(npm run preview)
│  ├─ preview.png             # 手绘版预览截图
│  └─ deepseek-whale.png      # 鲸鱼娘(原图)预览截图
├─ examples/
│  └─ pudding-ghost.json      # 自定义宠物定义示例(可直接导入工作室)
└─ .github/workflows/
├─ check.yml
└─ release.yml

开发

npm run check    # 语法检查 + 自动化测试
npm run preview  # 打开 http://127.0.0.1:4173/preview/ 独立预览

预览页可模拟「停止生成」按钮、[data-streaming]、[data-state="running"]、
[data-error] 与 composer 输入,用来观察宠物状态切换;URL hash 可直接切状态,如
/preview/#happy。

隐私

纯浏览器端插件:不读取 API Key,不修改模型输入,不上传任何数据。
设置、养成数据和导入的自定义宠物只保存在本机浏览器 localStorage。

License

MIT

常见问题

8 问
答案由本站依据条目字段整理,不引用上游原文
dsh-client-ui-pet 怎么安装?

在 DSH 里执行 `dsh plugin --profile web add github:LucasleeCN/dsh-client-ui-pet` 即可。

dsh-client-ui-pet 的验证等级是什么意思?

L5 · 运行验证通过。在 dsh 沙盒中完成安装与运行冒烟——装得上、跑得起来

dsh-client-ui-pet 安全吗?

低风险。vet 静态分析未发现可疑行为,判定为干净(clean)。

dsh-client-ui-pet 装之前要先确认什么?

先看它会读写哪些文件、执行哪些命令、连接哪些网络地址;验证等级只说明装得上、跑得起来,不等于安全。涉及密钥或系统权限的,建议先在隔离环境试装。

dsh-client-ui-pet 支持哪些 DSH 版本?

上游记录的兼容版本包括 0.2.0-rc.2、0.1.7-rc.2、0.1.6-alpha.2、0.1.6-alpha.1、0.1.5-rc.2、0.1.3-alpha.2、0.1.3-alpha.1、0.1.2-rc.1。版本较多,只列出前 8 个。

dsh-client-ui-pet 用的是什么许可证?

上游标注为 MIT。商用或二次分发前请到仓库确认许可证原文。

dsh-client-ui-pet 有哪些功能?

状态跟随动作、轻养成互动、自定义外观、开发者 API。

这条记录的数据可靠吗?

本站按仓库名去重后合并整理,字段以作者仓库与 npm 元数据为准;安装命令、仓库地址与 README 保持原文,带 L4 / L5 标记的安装命令已在隔离沙盒里真实跑通。

同名或近似条目

2 条
不同作者的仓库分开列,请确认你要装的是哪一个
UI 与外观
按星标排序,可作替代方案

nuwa-skill

nuwa-skill

女娲 DSH plugin 只需输入一个名字,就自动调研、提炼并验证任何人的心智模型、决策启发式与表达 DNA,生成可直接调用的思维视角 S

未标注验证等级 3.8 万 星

awesome-dsh-plugin

awesome-dsh-plugin

A curated list of plugins for DeepSeek Harness (dsh) · DeepSeek Harnes

L4 · 沙盒安装通过 1.8 万 星

deepseek-balance-whale-widget

DeepSeek-Balance-Whale-Widget

DSH 界面右下角的常驻小鲸鱼余额挂件,实时显示 DeepSeek 账户余额、今日已用与每轮对话消耗,支持拖拽吸附、Q 弹动画与音效,开箱即

L4 · 沙盒安装通过 4,492 星

dsh-better-sidebar

DSH-better-sidebar

面向 DeepSeek Harness 的服务化侧边栏工作台插件,把文件编辑、终端、Git 变更、子代理任务与侧边对话整合进右侧栏与底部面板

L4 · 沙盒安装通过 4,112 星

dsh-deep-whale

dsh-deep-whale

DSH Web 鲸鱼娘皮肤系列(深海女仆工坊 maid-atelier)。

L4 · 沙盒安装通过 2,470 星

deepseek-design

deepseek-design

可视化设计工作室,支持网站、App 原型、海报、信息卡、报告和杂志的模板创建、元素编辑、选区级 AI 草稿衔接与导出。

L4 · 沙盒安装通过 1,438 星

LucasleeCN 的其它插件

2 个

插件的元信息来自作者仓库;分类、验证等级与安全结论的中文说明为中文整理,最近核验 2026-10-08。