dsh-web
zhu1090093659/dsh-webDeepSeek Harness(DSH)Web 插件聚合生态包 · 一切皆插件,创意工坊分发(dsh-market.com)
给 DeepSeek Harness 加一只塔菲桌宠:右下角常驻一只透明立绘,能换装、能摸、会说话、会报余额。
file2x 时自动走 @2x 素材(srcset)prefers-reduced-motion 下自动关闭回弹与漂浮动画本项目 fork 自 MeteorNOX/DeepSeek-Balance-Whale-Widget(MIT): **宿主层(计费、账本、/dsh-whale/* 路由)保持不变**,浏览器端脚本整体重写为塔菲桌宠。 因此它继续读写原来的 .dshw-size.json / .dshw-usage.json,计费历史与登记方式全部继承。
素材(立绘、语音)来自永雏塔菲官方/二创公开素材,仅用于个人本地桌宠;版权归原作者所有,请勿商用。
想把塔菲当普通桌宠用(不接 DSH、不计费)?看这个姊妹项目:
同一套渲染层(three-vrm + .vrma 真动捕 + 表情/语音),Electron 全屏透明窗口,鼠标只有压在塔菲身上才响应。
塔菲的 MMD 动作包(B 站那些「关注塔菲谢谢喵」之类的配布)基本都是 .vmd,现在可以直接吃:
# 单个
node tools/vmd2vrma.mjs 某个动作.vmd ~/.dsh/taffy-pet/vrm/anim/挥手.vrma
# 一整个目录(自动放进动作目录)
node tools/vmd2vrma-all.mjs D:/下载/塔菲动作包 --out=%USERPROFILE%/.dsh/taffy-pet/vrm/anim转完重启页面(或重开桌宠),右键 → 动作 里就多出这些条目。
原理:.vmd 里记的是 MMD 日文骨骼的关键帧,工具把它们映射到 VRM humanoid (センター→hips、左腕→leftUpperArm…),并从 taffy.vrm 里取 rest 姿态拼出 标准 VRMA(VRMC_vrm_animation 扩展 + 动画通道)。骨骼名支持日文原版,也支持英文别名。
# 在 DSH profile 目录里(例如 ~/.dsh/profiles/desktop/)
npm i dsh-taffy-pet # 或 pnpm add / 用 link: 指向本地目录然后在 profile 的 package.json 里把包加进 bundles:
{
"dsh": {
"profile": {
"bundles": ["dsh-taffy-pet"]
}
}
}如果你之前装过 dsh-whale-widget,请把它从 bundles 里去掉——两个插件都会注册/dsh-whale/widget.js,同时启用会看到旧挂件。重启一次 DeepSeek Harness。插件第一次启动时会把自带的立绘与语音铺到用户目录 (只补缺、不覆盖),之后改素材不需要重启。
操作 · 效果 左键单击 · 摸一下:随机语音 + 压扁回弹 + 小爱心 + 随机台词 + 弹出余额气泡 右键单击 · 打开菜单(默认停在「设置」) 拖动 · 移动位置,松手后自由落体掉到底边(带一次回弹);位置会记住 Ctrl + 滚轮 · 缩放(以底边为锚,位置不跳)
换装 页顶部的 2D 立绘 / 3D 模型 切换(设置页不再有形态选项),会用 three.js + @pixiv/three-vrm 在你的桌宠位置上渲染一个 VRM 模型,并程序化驱动呼吸、眨眼、视线跟随鼠标、马尾/裙摆物理。
动作(点按或菜单里选)走关键帧 + smootherstep 插值,带起手/收势,共 10 个: 招手、比心、歪头、塔菲摇、唐笑、鞠躬、伸懒腰、转圈、敬礼、捂脸;动作中途再点会立刻打断重来。
模型放在 ~/.dsh/taffy-pet/vrm/(.vrm / .glb),菜单里可以直接切换;找不到模型会自动退回 2D。
官方模型:永雏塔菲本人在 Steam 创意工坊发布过
官方 MMD 模型合集(2.0 版带 VRM)。
订阅后在 Steam 里「浏览本地文件」,把 .vrm 复制到上面这个目录即可。合集里永雏塔菲MMD_2.0带 VRM(Q 版全身,官方命名永雏塔菲_0804.vrm),
另两条1883_0915/兔女郎只有 MMD 的.pmx。
⚠️ 实测:这两个.pmx被《桌面萌娘MMD4》加密过(文件头不是PMX,内部是压缩块),
直接喂给 three.js 的 MMDLoader 会报 "Unknown model file extension",所以不能拿来当 3D 模型。
插件本身支持普通.pmx(放~/.dsh/taffy-pet/models//model.pmx,贴图平铺同目录),
只是这两个需要先由别的工具导出成未加密的 pmx/vrm 才行。
该模型仅限个人二创使用,请遵守作者的授权说明。
已下载的模型在本地留了一份备份:D: affy-models-backup(创意工坊三个条目的完整拷贝),即使以后退订/退款也不会丢。
3D 相关路由:/dsh-whale/vrm-runtime.js(运行时)、/dsh-whale/vrm-list.json(模型列表)、 模型文件复用 /dsh-whale/taffy-file?p=vrm/。
素材放在 ~/.dsh/taffy-pet/(Windows:C:\Users\.dsh\taffy-pet), 通过宿主路由 /dsh-whale/taffy-file?p= 只读访问。
~/.dsh/taffy-pet/
└── art/
├── manifest.json # 套装索引
├── outfits/ # 大菲全身立绘(透明 PNG)
└── small/ # 小菲 Q 版(透明 PNG)manifest.json:
{
"version": 2,
"outfits": [
{
"id": "detective",
"name": "侦探服",
"file": "detective.png",
"w": 455,
"h": 1100,
"small": "small/small-detective.png",
"smallW": 354,
"smallH": 700
}
]
}file 相对 outfits/,small 相对 art/;没有 small 的套装在小菲页签里不显示。 改完素材重开菜单即可生效(菜单每次打开都会重新读 manifest)。
语音在 ~/.dsh/whale-audio/:.wav + audio.json 的 fragments 列表。 前端优先使用 id 以 tv- 开头的片段(塔菲语音池),没有才回落到 taffy-* 或内置 Ya1/Ya2。
所有 /dsh-whale/* 都过同源校验,未登录返回 401。桌宠新增:
路由 · 说明 GET /dsh-whale/taffy-file?p=art/manifest.json · 读取 ~/.dsh/taffy-pet/ 下的素材(路径白名单 + 目录锁定)
其余(balance.json / usage-records.json / size.json / audio.json / audio-fragment.wav / role-* …)沿用上游实现。
GET /dsh-whale/pet-state.json → { ok, activity: { status, detail, ts, session }, ui }
status 取值:idle | thinking | working | waiting | success | error。宿主在 turn/tool 事件里自动更新,前端 2.6s 轮询一次。
PUT /dsh-whale/pet-state.json body { ui: {...} } → 把桌宠的位置/大小/开关写到 ~/.dsh/taffy-pet/ui-state.json,换浏览器或清缓存后仍在原位。
npm run check # 三个入口文件的语法检查前端是单文件 lib/whale-widget.js(IIFE,window.__TAFFY_PET_BOOTED__ 防重复注入), 样式全部内联注入到 #tp-root 作用域,不污染宿主页面。
A Taffy (永雏塔菲) desktop pet for DeepSeek Harness: a transparent, draggable widget pinned in the corner of the GUI.
~/.dsh/taffy-pet/art/thinking / working / waiting / success / error) colours the pet and speaks; system notification on task completion while the window is in the backgroundInstall, then add dsh-taffy-pet to your profile's dsh.profile.bundles:
dsh plugin --profile desktop add github:111xjyuan/dsh-taffy-petBilling/host layer is inherited from DeepSeek-Balance-Whale-Widget (MIT). Character assets belong to their original authors; personal use only.
MIT。宿主层与计费逻辑来自 MeteorNOX/DeepSeek-Balance-Whale-Widget。 角色形象「永雏塔菲」版权归其著作权人所有,本项目仅为非商用的个人桌宠实现。
按住她的脑袋(立绘上方约 32% 高度、水平中间 62% 的矩形区域)左右蹭:
程序化关键帧做不出自然的动作,所以动作改由 VRM Animation(.vrma) 驱动:真动捕数据直接播在骨架上,待机、点击互动都是真人动作。
~/.dsh/taffy-pet/vrm/anim/,换装页(3D 模型下)会列出可播放的动作,点一下就播idle.vrma(可在 ui-state.json 的 idleAnim 改,留空则退回程序化待机)yv-was-taken/desktop-waifu(idle/talking/thinking/stretch/jump/spin)、ruslanmv/3D-Avatar-Chatbot(dance),仅供本地体验,商用请自行确认授权菜单 → 动作 页:
~/.dsh/taffy-pet/vrm/anim/*.vrma(官方 VRM Animation 格式)。点一下播一次,播完自动融回待机;待机本身也是循环的动捕数据。内置 18 段:待机、待机B、说话、思考、跳一下、转圈、伸懒腰、打哈欠、害羞、鼓掌、打招呼、道谢、耸肩、兴奋、走台步、甩手、点头、吃惊。
想加新的:把 .vrma 丢进 ~/.dsh/taffy-pet/vrm/anim/ 再点「重新加载桌宠」。Mixamo 的动作可以用 vrm-mixamo-retargeter 转成 VRMA。