跳到主内容

dskin

7Star1Fork0Issue0Watching

为 DSH Web 界面加入 1~4 只像素小猫皮肤,原始 UI 不变,可拖拽、可换装、会互动。

机审证据5/5方法论数据来源安装命令持续维护DSH 版本风险扫描
机审证据安装命令仓库已核验dsh-plugin Topic许可证READMEAI 百科
语言
TypeScript
License
MIT
分支
main
cartoondeepseek-harnessdshdsh-pluginpixel-artskinthemeui-skin

安装

命令web profile
$ dsh plugin --profile web add --allow-build=dskin github:dancingmemory/dskin

在终端中运行以上命令,通过 dsh CLI 安装此插件。可在右上角切换 Profile。 第一次用 dsh?看这篇新手教程

对话式安装

帮我安装 DeepSeek Harness 插件 dancingmemory/dskin:先查看仓库 https://github.com/dancingmemory/dskin 确认安全性,然后执行安装命令并验证插件加载成功。

把这段指令粘贴给 DSH Web GUI 里的助手,由它代你完成安装与验证。

一句话定位

为 DeepSeek Harness (DSH) Web 界面叠加一层卡通像素小猫皮肤,原始界面零改动,小猫在屏幕底部散步、相遇玩耍、可拖拽甚至挂顶。

核心能力

  • 在屏幕底边随机生成 1~4 只像素小猫(大橘 / 小白 / 玄猫 / 花猫),数量可调、单只品种可换
  • 小猫之间会互动:相遇停下面对面蹦跳,然后各自散开;点击单只可让它跳起来
  • 鼠标可以拖拽小猫到任意位置;拖到屏幕顶边小猫会倒挂着不掉下来,再拉下来才落地
  • 鼠标悬停小猫会冒出爱心 ♥;选中小猫头顶出现 ★,10 秒后自动取消选中
  • 右下角 🐾 按钮打开面板,可加减数量、随机全员换装、切换静音;偶尔有小猫冒出随机语录(来自 1000+ 条中文箴言)
  • 内置升级检查:每 6 小时后台读一次 GitHub releases,发现新版本在面板里提示一键打开升级页

技术实现

  • 语言: TypeScript
  • 关键依赖: @deepseek-ai/cordis(peer 类型)、CSS Modules(样式作用域)、Web Audio API(喵叫合成)
  • 架构模式: 遵循 dsh.client 客户端插件契约,导出 apply(ctx),所有 DOM 写入通过 ctx.effect disposer 在卸载时收回;cordis.patch.yml 向 web 图谱插入 ui-skin-dskin 行
  • 入口文件: src/index.ts(host 端空实现)+ src/client/index.ts(浏览器主逻辑 apply(ctx))

适用场景

想让长时间打开的 DSH Web 页面多一些陪伴感的用户;不想动界面布局、只想加一点"养眼"小细节的人。不适合追求严肃生产效率或希望 DSH 跑得更轻量的用户——多几只小猫会持续占用 requestAnimationFrame。

前置依赖与兼容性

依赖最低版本说明
DSH未声明走 dsh.client 契约,未在 package.json 写 dsh 版本约束
Node未声明未声明 engines,按 DSH CLI 当前要求
平台跨平台仅在 DSH Web 浏览器端运行;所有能力基于浏览器 DOM / Web Audio
原生模块无无 node-gyp 依赖,无系统级编译

安装方式

dsh plugin --profile web add --allow-build=dskin github:dancingmemory/dskin

配置项

本插件无需额外配置。所有用户偏好(猫数量、每只品种、是否静音、首选猫种)都自动写入浏览器 localStorage,由插件内部管理:

  • 数量与品种:键 dskin-cats,保存 { count, types[] }
  • 首选猫种:键 dskin-kitten,保存当前选中的猫种 id
  • 静音开关:键 dskin-sound,"1" = 开,"0" = 关

常见问题

Q: 安装后页面没有任何变化?

A: 插件是按 dsh.client 契约加载的,必须安装到 web profile 下并重启 dsh web 才会注入;如果用的是 pnpm ≥ 10 且首次安装失败,把 allowBuilds: dskin: true 加到 ~/.dsh/profiles/web/pnpm-workspace.yaml 后重跑安装命令。

Q: 小猫会不会挡住界面操作?

A: 不会。CSS 显式把活动区限定在屏幕底部(bottom: 4px、高度 160 px 的 home zone),所有小猫 z-index 固定在最高层但体积小、不吃事件,点击穿透交给原 UI。

Q: 卸载后能恢复原样吗?

A: 可以。dsh plugin --profile web remove dskin 后重启 dsh web,ctx.effect 的 disposer 会把 body 上的 data-dsh-dskin 属性、所有 DOM 节点和 CSS Modules 样式全部收回。

Q: 这会影响 DSH 跟大模型的对话吗?

A: 不会。插件不注入 cordis 服务、不发送 cordis 事件、不读取或转发聊天内容;唯一的对外网络请求是每 6 小时读一次 api.github.com/repos/dancingmemory/dskin/releases/latest 检查新版本,失败时回退到 raw package.json。

Q: 喵叫声很烦人怎么关?

A: 点右下角 🐾 按钮打开面板,点 🔊 猫叫 切换成 🔇 静音,状态会写入 dskin-sound 永久生效。声音用 Web Audio 实时合成,无音频文件、无网络流量。

Q: 能不能增加更多品种的小猫?

A: 目前版本(1.0.17)内置 4 种小猫;想增加需要在源码 src/client/mascots.ts 增加帧数据和 KITTENS 数组,然后重新构建。

Q: 小猫卡住不动怎么办?

A: 代码里有 stuck watchdog(4 秒无位移自动回到底边修复),平时不会出现真卡死;如果浏览器标签进入后台或节能模式,requestAnimationFrame 被节流,回来后小猫会自然恢复。

上手难度

入门 — 安装一条命令即可,零配置项,所有交互通过右下角 🐾 面板完成,普通用户可直接使用。

已知问题与限制

  • pnpm ≥ 10 首次安装 git 依赖可能拒绝执行构建脚本,需要手动把 allowBuilds: dskin: true 写入 profile 的 pnpm-workspace.yaml(README.md:103-104)
  • 拖拽小猫到屏幕极顶部会进入倒挂"hang"状态;源码注释(src/client/index.ts:586-600)特别处理了松手位置过低的回退,但仍存在用户误以为小猫"卡住"的体验边界
  • 挂顶小猫偶尔需要向下拖 40 px 以上才能解锁(UNHANG_DRAG = 40,src/client/index.ts:121)
  • 浏览器必须支持 Web Audio API 才能发声;不支持或被静音时喵叫自动退化为无操作
  • 升级提示依赖 GitHub API 可达;网络受限或 GitHub 限流时检查静默失败,不影响主体功能
  • localStorage 被禁用(隐私模式 / 企业策略)时,猫数量和品种选择不会跨会话保存,但当前会话内功能正常

查看使用指南 →

该插件的安装步骤、关键要点、FAQ 与兼容性说明(基于已收录字段派生)。

收录徽章

Listed on deepseek-plugin.org
[![Listed on deepseek-plugin.org](https://img.shields.io/badge/listed_on-deepseek--plugin.org-007EC6)](https://deepseek-plugin.org/plugins/dancingmemory/dskin)

把这段 markdown 粘贴到你的 GitHub README,链接回本插件详情页。徽章只声明已被本站收录,不代表安全认证。

返回插件目录