Back to home@Practice019

dsh-kun-like-pet

Kun Like 桌宠 - DSH 桌面宠物插件

Stars
0
Language
JavaScript
Created
Aug 15, 2026
Updated
Aug 16, 2026
GitHub repo

Introduction

🐔 Kun Like 桌宠 - DSH 桌面宠物插件

DSH Plugin npm version npm downloads License Stars
npm 主页 · GitHub 仓库 · 安装指南 · 常见问题

Kun Like 桌宠

DeepSeek Harness 桌面宠物插件
Web 界面右下角的小坤宠,随 Agent 工作状态切换动作,任务完成时播放「你干嘛~哎哟」语音

动画预览(idle 序列帧)


🎨 状态总览

9 种动画状态

状态触发条件气泡文字
💤 idle空闲时休息中~ 有事叫我
🔧 working工具执行中努力工作中…
🤔 review思考中思考中…
⏳ waiting等待用户回复在等你回复哦~
❌ failed出错时呜…出错了 (._.)
🎉 celebrating任务完成完成啦!你干嘛~哎哟
🏃 runRight/runLeft拖拽时呜哇~ 别拽我!
👋 wave点击时诶嘿~

✨ 功能特性

功能说明
🎭 9种动画状态idle、working、review、waiting、failed、celebrating、runRight、runLeft、wave/jump
🔊 单端语音播放每个对话窗口停止输出时由 Host PowerShell 各播放一次(提问工具触发后不重复;多窗口各自触发,不依赖浏览器焦点)
🖱️ 拖拽移动按住桌宠拖动到任意位置
👆 点击互动点击桌宠挥手打招呼

📦 一键安装(静态插件)

前置条件

安装命令

# 方式 1(推荐):从 npm registry 一键安装
dsh plugin --profile web add dsh-kun-like-pet

# 方式 2:从 Git 仓库安装
dsh plugin --profile web add github:Practice019/dsh-kun-like-pet

# 方式 3:本地开发(link 模式,改代码重启即生效)
dsh plugin --profile web add ./dsh-kun-like-pet

安装后重启 DSH 即可,桌宠会自动出现在 Web 界面右下角,无需任何手动激活步骤。

更新插件

# 检查并更新到最新版本
dsh plugin update dsh-kun-like-pet

安装原理

dsh plugin add  →  pnpm 安装包
                →  识别 package.json 的 dsh.bundle.patch 声明
                →  自动加入 profile 的 bundles 列表
                →  识别 dsh.client 声明,注册浏览器端 bundle
重启 DSH        →  Host 端 (lib/index.js) 由 cordis.patch.yml 自动加载
                →  Client 端 (lib/client.js) 由浏览器模块表自动加载

卸载

dsh plugin --profile web remove dsh-kun-like-pet

🎮 使用说明

交互方式

  • 拖拽:按住桌宠拖动到任意位置
  • 点击:小鸡会挥手打招呼
  • 任务完成:自动播放「你干嘛~哎哟」语音

声音播放

  • 任务完成:Host 端 PowerShell 系统级播放(完整播放,等待播放结束才关闭;需要 Windows PresentationCore);多窗口同时工作时,每个窗口停止输出都会各自播放一次
  • 提问等回复:AI 调用提问工具的瞬间立即播放;同一回合停止输出时不会重复播放
  • 点击小鸡:浏览器 Audio 即时播放(交互反馈)

🔧 技术架构

┌─────────────────────────────────────────────────────────────┐
│                      DSH Web 界面                           │
│  ┌─────────────────────────────────────────────────────┐   │
│  │                   shell.overlay 插槽                  │   │
│  │  ┌─────────────────────────────────────────────┐    │   │
│  │  │              KunPet 组件                      │    │   │
│  │  │  - 精灵图动画 (8列×9行)                       │    │   │
│  │  │  - 状态同步 (每400ms)                         │    │   │
│  │  │  - 拖拽/点击交互                              │    │   │
│  │  │  - 浏览器 Audio 播放声音                      │    │   │
│  │  └─────────────────────────────────────────────┘    │   │
│  └─────────────────────────────────────────────────────┘   │
└─────────────────────────────────────────────────────────────┘
                              │
                              │ fetch('/kun-pet/state') 每 400ms
                              ▼
┌─────────────────────────────────────────────────────────────┐
│                    DSH Host 进程                            │
│  ┌─────────────────────────────────────────────────────┐   │
│  │                   状态机                              │   │
│  │  - 轮询 agents.list() 每500ms                       │   │
│  │  - 监听 approval/request, tools/execute 事件        │   │
│  │  - 推导桌宠状态 (idle/working/review/celebrating)   │   │
│  └─────────────────────────────────────────────────────┘   │
│  ┌─────────────────────────────────────────────────────┐   │
│  │                   资源服务                            │   │
│  │  - /kun-pet/sprite.webp (精灵图)                    │   │
│  │  - /kun-pet/voice.mp3 (声音)                        │   │
│  │  - /kun-pet/state (状态 JSON)                       │   │
│  └─────────────────────────────────────────────────────┘   │
│  ┌─────────────────────────────────────────────────────┐   │
│  │              PowerShell 声音播放                      │   │
│  │  - 任务完成时系统级播放声音                          │   │
│  │  - 不依赖浏览器焦点                                  │   │
│  └─────────────────────────────────────────────────────┘   │
└─────────────────────────────────────────────────────────────┘

📁 文件结构

dsh-kun-like-pet/
├── package.json           ← DSH 插件声明 (dsh.bundle.patch + dsh.client)
├── cordis.patch.yml       ← Host 插件行(DSH 启动时自动加载)
├── README.md              ← 本文档
├── lib/
│   ├── index.js           ← Host 端代码(状态机 + 资源服务 + 声音播放)
│   └── client.js          ← Client 端 bundle(UI + 交互 + 浏览器声音播放)
├── assets/
│   ├── spritesheet.webp   ← 精灵图 (8列×9行, 192×208/格)
│   └── voice.mp3          ← 「你干嘛~哎哟」语音
├── docs/
│   ├── logo.png           ← README 主图(idle 第一帧)
│   ├── preview-sequence.png ← 动画序列帧预览
│   └── states.png         ← 9 种状态总览图
└── scripts/
    └── gen-docs-images.mjs ← 文档图片生成脚本

🐛 常见问题

1. 任务完成时没有声音

原因:PowerShell 播放失败(缺少 PresentationCore 程序集)或语音文件缺失

解决方案

  • 确认系统为 Windows(需要 PowerShell + WPF 运行时)
  • 检查 node_modules/dsh-kun-like-pet/assets/voice.mp3 是否存在
  • 手动测试:powershell -c "Add-Type -AssemblyName PresentationCore; $p = New-Object System.Windows.Media.MediaPlayer; $p.Open([uri]'file:///D:/test/ai_study/dsh-kun-like-pet/assets/voice.mp3'); $p.Play(); Start-Sleep -Seconds 5"

1b. 声音被截断 / 播放两次

原因:旧版本固定等待 3 秒导致长语音被截断;或双端同时播放

解决方案

  • 升级到 v1.0.0+(lib/index.js 等待 NaturalDuration 完整播放)
  • 任务完成声音统一由 Host PowerShell 播放一次,Client 仅保留点击交互播放

2. 精灵图不显示

原因:资源文件读取失败,或 Host 插件未生效(/kun-pet/state 返回 HTML 而非 JSON)

解决方案

  • 检查 node_modules/dsh-kun-like-pet/assets/ 目录是否存在精灵图文件
  • 确认 Host 插件注入了 webServer 服务(lib/index.jsinject: ['timer', 'webServer']),否则启动早期服务未就绪时插件会静默退出
  • 重启 DSH 后测试 http://127.0.0.1:3080/kun-pet/state 是否返回 JSON

3. 修改代码后不生效

原因:静态插件在 DSH 启动时加载

解决方案:修改 lib/ 下代码后重启 DSH 生效


📝 开发说明

精灵图规格

  • 格式:WebP
  • 布局:8 列 × 9 行
  • 每格尺寸:192 × 208 像素
  • 总尺寸:1536 × 1872 像素

状态对应

行号状态帧数
0idle6
1runRight8
2runLeft8
3wave4
4jump5
5failed8
6waiting6
7working6
8review6

📄 许可证

MIT License


Made with ❤️ for DSH users