lovejavacore
dsh-minecraft-pet
DeepSeek Harness(DSH)网页界面的桌面宠物——Steve、Creeper 和 Ultraman 会根据代理的工作状态做出反应。A desktop pet for the DeepSeek Harness (DSH) Web GUI — Steve, Creeper and Ultraman react to the agent's working status.
- Stars
- 1
- Language
- JavaScript
- Created
- Aug 16, 2026
- Updated
- Aug 16, 2026
Introduction
DSH Minecraft Pet · DSH 我的世界桌面宠物
一个运行在 DeepSeek Harness (DSH) Web GUI 右下角的 Minecraft 主题桌面宠物——史蒂夫(Steve)、苦力怕(Creeper)与奥特曼(Ultraman),根据当前 Agent 的工作状态实时切换动作,并在任务完成时播放专属音效。
A Minecraft-themed desktop pet in the bottom-right corner of the DSH Web GUI — Steve, Creeper and Ultraman react to the agent's working status with animations and per-pet completion sounds.
目录 Contents
- 特性 Features
- 目录结构
- 截图 / 演示 Screenshots
- 如何安装 Install
- 技术实现 Implementation
- 常见问题 FAQ
- 贡献 Contributing
- 致谢 Acknowledgments
- 免责声明 Disclaimer
- License
特性 Features
🐾 三只宠物
| 宠物 | 说明 | 皮肤 |
|---|---|---|
| ⛏ 史蒂夫 Steve | 左手拿钻石镐,像素画 | 普通 / 钻石甲 |
| 💥 苦力怕 Creeper | 侧视四腿,像素画 | — |
| 🦸 奥特曼 Ultraman | SVG 矢量,红银条纹 | 初代 / 赛文 / 泰罗 / 迪迦 / 泽塔 |
🎬 三态动作
| 状态 | 动作 |
|---|---|
| 待机 idle | 轻微上下浮动 |
| 工作 working | 史蒂夫挥镐、奥特曼出拳 + 踏步、苦力怕渐进变红膨胀(蓄力) |
| 完成 completed | 专属必杀 + 音效 |
✨ 完成专属必杀
| 宠物 | 必杀 | 音效 |
|---|---|---|
| 史蒂夫 | 跳跃 + 矿石掉落粒子 | 「叮叮」上行琶音 |
| 苦力怕 | 爆炸光球 + 火光粒子 | 「嘶嘶 → Boom」 |
| 奥特曼·初代 | 斯派修姆光线(蓝白光) | 变身英雄登场 |
| 奥特曼·赛文 | 冰斧投掷(旋转飞出 + 命中闪光) | 变身英雄登场 |
| 奥特曼·泰罗 | 斯特利姆光线(五彩光束) | 变身英雄登场 |
| 奥特曼·迪迦 | 哉佩利敖光线(双手十字 + 紫光) | 变身英雄登场 |
| 奥特曼·泽塔 | 泽斯蒂姆光线(双手并拢 + 蓝光) | 变身英雄登场 |
🖱 交互
| 操作 | 效果 |
|---|---|
| 左键点击 | 切换宠物(史蒂夫 → 苦力怕 → 奥特曼) |
| 右键点击 | 打开 / 关闭设置菜单 |
| 拖拽 | 移动宠物 |
| 菜单内 | 切换皮肤、四角定位、试听音效、静音、复位、隐藏 |
目录结构
dsh-minecraft-pet/
├── README.md
├── LICENSE
├── package.json
├── .gitignore
├── src/
│ ├── host.js # Host 半:Agent 状态跟踪 + Client 私有 RPC
│ └── client.js # Client 半:宠物 UI / 动画 / 音效 / 交互
└── audio/
├── generate.js # 音效生成脚本(8-bit PCM WAV 程序化合成)
├── steve.wav
├── ultraman.wav
└── creeper.wav
截图 / 演示 Screenshots

更多宠物(苦力怕 / 奥特曼)与三态动作(待机 / 工作 / 完成)的动图可继续补充到
assets/目录。
如何安装 Install
环境要求
- DeepSeek Harness (DSH) Web GUI(支持 Cordis 动态插件)
- 可选:Node.js ≥ 14(用于运行
npm run audio重新生成音效交付物)
本插件是一个 Cordis 动态插件(Dynamic Cordis Plugin),由「Host 半」和「Client 半」组成。
- 在 DSH Web GUI 中,将
src/host.js里createHostHalf()返回的{ ... }作为 Host 代码(code.host), 将src/client.js里createClientHalf()返回的{ ... }作为 Client 代码(code.client)。 - 通过
cordis_define定义插件,再用cordis_run激活。 - 首次使用前,在菜单里点一次「🔊 试听音效」以「预热」浏览器的音频自动播放。
这两个文件为了可读性被包装成了
module.exports工厂函数;实际作为动态插件使用时, 直接取函数体内return { ... }的部分即可(host.js/client.js的return行到结尾大括号)。
技术实现 Implementation
- 状态来源(Host):监听
agent/status事件(idle ⇄ running),按 Agent id 精确计数,避免子代理干扰; 通过get-status私有 RPC 边沿触发「已完成」。 - 渲染(Client):注册到
shell.overlay槽位,用纯React.createElement+ 内联 SVG 绘制像素画/矢量宠物。 - 动画:
styles.insert注入 CSS keyframes,对 SVG<g>局部元素(镐子、手臂、腿)做 transform 动画。 - 音效:客户端没有
AudioContext/fetch/文件访问,因此用纯 JS 程序化合成 8-bit PCM WAV 数据 URI, 渲染<audio>元素播放;audio/generate.js用同一套合成算法生成可试听的.wav交付物。
常见问题 FAQ
- 音效不响? 浏览器自动播放策略要求页面至少有过一次用户交互。先在菜单里点「🔊 试听音效」一次即可「预热」。
- 如何切换奥特曼皮肤? 右键打开菜单,选中奥特曼后会出现「初代 / 赛文 / 泰罗 / 迪迦 / 泽塔」按钮。
- 宠物位置怎么复位? 菜单里点「↺ 复位位置」,或直接拖拽到任意位置后用四角定位按钮重新固定。
- 想加新宠物 / 新皮肤? 参考
src/client.js里的PETS、ULTRA_SKINS与对应的 Art 渲染函数即可扩展,欢迎 PR。
贡献 Contributing
欢迎提交 Issue 和 Pull Request。
- Fork 本仓库并克隆到本地。
- 修改
src/host.js/src/client.js(纯 JavaScript,无 TypeScript / JSX / 打包)。 - 保持代码风格一致,提交信息清晰。
- 推送到你的 fork,发起 Pull Request 到
main分支。
致谢 Acknowledgments
- Minecraft(© Mojang / Microsoft)—— 史蒂夫、苦力怕形象来源
- 奥特曼系列(© 圆谷制作株式会社 Tsuburaya Productions)—— 奥特曼形象与必杀技来源
- DeepSeek Harness —— 运行平台
免责声明 Disclaimer
本项目仅用于学习与技术演示,为粉丝致敬性质,与 Mojang / Microsoft 及圆谷制作株式会社无关。
- 「Minecraft」「Steve」「Creeper」及相关形象版权归 Mojang / Microsoft 所有。
- 「奥特曼 / Ultraman」及相关角色、必杀技名称版权归 圆谷制作株式会社 所有。
本项目不包含任何官方素材、音频或图像资源;所有宠物造型均为代码绘制的原创近似风格,音效为程序化合成。请勿将本项目用于任何商业用途。