🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

照照小厨娘 ting-good/dsh-cook-pet

DeepSeek Harnessv1.0.1
ting-good12 天前有提交已提供中文文档扫描:含敏感能力

用于DeepSeek Harness的可爱小厨娘插件,展示任务状态,也可以点击互动

32.2/100
综合分
3
GitHub 星标
259
npm 周下载
—/5
用户评分

数据截至 2026/10/23 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add dsh-cook-pet
npm 源 · dsh-cook-pet 的发布者账号已校验与本仓库一致

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么
dsh 原生插件 · other
装得上吗
本站已在 dsh 0.2.1-rc.2 下真实安装成功
非静态推断
L5 · 运行时冒烟等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 12 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查✓ 自动检查通过
展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✓npm 包dsh-cook-pet @ 1.0.1
✓Node 引擎要求 >=22.12.0 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/21 15:44:14

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

读写/删除本地文件发起外部网络请求
查看扫描证据(共 13 处,展示前 13 条)
  • 读取本地文件
    lib/index.js:83
    const stream = createReadStream(file);
  • 读取本地文件
    lib/index.js:249
    if (file === undefined || !existsSync(file)) {
  • 读取本地文件
    lib/desktop.js:62
    return candidates.find((p) => existsSync(p));
  • 读取本地文件
    lib/desktop.js:102
    return Boolean(this.electron) && existsSync(this.electron) && existsSync(join(HELPER_DIR, 'main.js'));
  • 读取本地文件
    runtime/electron-helper/main.js:195
    const raw = JSON.parse(readFileSync(posFile(), 'utf8'));
  • 写入本地文件
    runtime/electron-helper/main.js:205
    mkdirSync(path.dirname(posFile()), { recursive: true });
  • 写入本地文件
    runtime/electron-helper/main.js:207
    writeFileSync(posFile(), JSON.stringify({ rx, ry, h: h ?? PET_H }), 'utf8');
  • 读取本地文件
    runtime/electron-helper/main.js:296
    if (!existsSync(ASSET_DIR)) {
  • 读取本地文件
    runtime/electron-helper/main.js:300
    (f) => !existsSync(path.join(ASSET_DIR, f)),
  • 发起网络请求
    runtime/electron-helper/main.js:524
    const res = await fetch(STATE_URL, { cache: 'no-store' });
  • 写入本地文件
    runtime/electron-helper/main.js:542
    mkdirSync(CAPTURE_DIR, { recursive: true });
  • 写入本地文件
    runtime/electron-helper/main.js:570
    writeFileSync(file, image.toPNG());
  • 发起网络请求
    runtime/electron-helper/renderer.js:193
    fetch(STATE_URL, { cache: 'no-store' })
扫描于 2026/11/3(0 天前) · 范围 入口闭包 + 全包扫描 · 来源 npm 发布包

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

README

由 DeepSeek 最新模型翻译生成
照照 · dsh-cook-pet 🍳 一只小厨娘桌宠,住在 DeepSeek Harness 里。 她叫照照 —— 没活干时握着锅铲站着晃;你派活给她就颠锅炒菜;一轮任务做完,她端着一盘热菜来报喜;需要你批准或回话时,她托着腮歪头等你;戳一下还会 wink 或转个圈。 照照:透明背景,直接浮在桌面上 四种状态(动图,就是桌面上的实际动作): | 待机 | 炒菜 | 上菜 | 托腮 | | 待机 | 炒菜 | 上菜 | 托腮 | | 站着轻轻晃 | 颠锅翻炒 | 端盘报喜 | 歪头等你 | ✨ 她会做什么 | 时机 | 状态 | 画面 | 文字 | | 没有任务在跑 | 待机 | 握着锅铲站着轻轻晃 | 无 | | 回合进行中(turn/start) | 炒菜 | 颠锅翻炒 | 无 | | 等你批准 / 等你回答问题 | 托腮 | 手背抵着下巴歪头看你 | 等你回话 | | 回合成功完成 | 上菜 | 端着盘子报喜,约 5 秒后自动回待机 | 无 | | 回合被打断 / 出错 | 静默回待机 | 不庆祝 | 无 | | 你点她一下 | wink 或转圈 | 两个里随机挑一个,播完回到当前状态 | 无 | 只有「托腮」会显示一行字,其余全部纯动作。桌宠是装饰性的,平时不该有字挡住画面;只有"轮到你了"这件事值得你一眼看见。
展开完整文档(README 剩余 1 节)
照照 · dsh-cook-pet 🍳

一只小厨娘桌宠,住在 DeepSeek Harness 里。
她叫照照 —— 没活干时握着锅铲站着晃;你派活给她就颠锅炒菜;一轮任务做完,她端着一盘热菜来报喜;需要你批准或回话时,她托着腮歪头等你;戳一下还会 wink 或转个圈。

照照:透明背景,直接浮在桌面上

四种状态(动图,就是桌面上的实际动作):

| 待机 | 炒菜 | 上菜 | 托腮 |
| 待机 | 炒菜 | 上菜 | 托腮 |
| 站着轻轻晃 | 颠锅翻炒 | 端盘报喜 | 歪头等你 |

✨ 她会做什么

| 时机 | 状态 | 画面 | 文字 |
| 没有任务在跑 | 待机 | 握着锅铲站着轻轻晃 | 无 |
| 回合进行中(turn/start) | 炒菜 | 颠锅翻炒 | 无 |
| 等你批准 / 等你回答问题 | 托腮 | 手背抵着下巴歪头看你 | 等你回话 |
| 回合成功完成 | 上菜 | 端着盘子报喜,约 5 秒后自动回待机 | 无 |
| 回合被打断 / 出错 | 静默回待机 | 不庆祝 | 无 |
| 你点她一下 | wink 或转圈 | 两个里随机挑一个,播完回到当前状态 | 无 |

只有「托腮」会显示一行字,其余全部纯动作。桌宠是装饰性的,平时不该有字挡住画面;只有"轮到你了"这件事值得你一眼看见。

还有一条刻意的设计:「上菜」只在任务真的成功时出现。被打断、出错、超时,她只会安静地回到待机 —— 不会给你一个假的「完成」信号。

🤔 「托腮」到底在等什么

托腮不是模糊的"忙碌"态,它只对应两类真实等待:

| 触发 | 对应宿主事件 |
| 权限确认弹窗(某个工具要你允许/拒绝) | approval/asked → approval/decided |
| 模型用 ask_user_question 向你提问 | tool/call → tool/result |
| 计划模式把方案交给你批准(exit_plan_mode) | 同上 |
| run_code 脚本里发起的提问 | tool/ptc-dispatch-start → tool/ptc-dispatch |

这些是成对出现的持久化事件,所以「开始等你」和「你已答复」都能被精确捕获 ——不需要轮询、不需要猜,也不会因为弹窗被直接关掉而卡在托腮状态。

🖱️ 交互

| 操作 | 效果 |
| 单击 | 随机 wink 或转圈,播完回到当前状态 |
| 拖拽 | 换位置,松手记住(刷新不丢) |
| 右键 | 在 110 / 138 / 190 / 260 px 四档间切换大小(同样记住) |

| 点一下 · wink | 点一下 · 转圈 |
| wink | 转圈 |

📦 安装

需要 DSH ≥ 0.2.0(在 0.2.0-rc.1 ~ 0.2.1-rc.2 上实测通过)。

⚡ 一句命令安装(推荐,走 npm)

dsh plugin --profile desktop add dsh-cook-pet

把 desktop 换成你实际使用的 profile 名(dsh web 用户一般是 web),然后重启 DSH。

- ✅ 不需要 git:pnpm 直接从 npm registry 拉包,机器上有没有 git 都不影响
- ✅ 国内用户若配了 registry.npmmirror.com 镜像,会自动走镜像加速
- ✅ 锁定版本:dsh plugin --profile desktop add dsh-cook-pet@1.0.1
- 本项目是纯 JavaScript、无构建步骤,也没有安装时脚本,所以不需要任何构建授权

备选:从 GitHub 安装

dsh plugin --profile desktop add github:ting-good/dsh-cook-pet

注意:这一路需要机器上装有 git 且能连 github.com(git 解析器要跑 git ls-remote)。

🧑💻 从本地目录安装(开发者 / 离线)

dsh 不在 PATH 时用全路径,例如 Windows 桌面版:
D:\Deepseek\resources\runtime\cli\bin\dsh.cmd
dsh plugin --profile desktop add file:/绝对路径/dsh-cook-pet

🛠️ 装不上时:镜像加速与排查

| 现象 | 原因 | 解法 |
| git ls-remote failed | github 方式需要 git,机器上没有 | 改用 npm 方式(推荐) |
| npm 方式很慢 | 直连 registry.npmjs.org 慢 | 在 ~/.npmrc 写 registry=https://registry.npmmirror.com(DSH 自带 pnpm 会自动读取) |
| dsh 不是命令 | 打包版 CLI 不在 PATH | 用全路径:<安装目录>\resources\runtime\cli\bin\dsh.cmd |

🖥️ 桌面置顶窗:Electron 会自动准备好(可选)

「浮在其它应用之上」那个窗口由独立 Electron 进程渲染,需要一份 Electron 运行时(DSH 宿主本身是纯 Node,不带 Electron 二进制)。

你不需要做任何事:首次缺运行时的时候,插件会在后台自动下载(约 140 MB,只做一次),下载完成后桌面窗会自动出现。下载期间 DSH 完全正常,只是还没看到她。

下载本身是打不死的:

| 能力 | 说明 |
| 多镜像回退 | npmmirror → registry.npmmirror → huaweicloud,逐个尝试 |
| 有限重试 | 每个镜像 3 次;全部失败才放弃 |
| 断点续传 | 中断/重启后从已下载的字节继续,进度保留在 ~/.dsh/electron/.download/ |
| 停滞超时 | 连续 60 秒无数据主动放弃本次尝试,不会挂死 |

万一全部失败,DSH 日志里会打印可照抄的手动安装指引(手动下载 URL、解压目录、指定已有 Electron、关闭桌面窗四种方式),重启 DSH 后自动续传。

| 想做的事 | 怎么做 |
| 手动触发/重试下载(自动续传) | node scripts/ensure-electron.mjs |
| 复用已有的 Electron | DSH_COOK_PET_ELECTRON=<electron 可执行文件路径> |
| 换下载镜像(设置后只用它) | DSH_COOK_PET_ELECTRON_MIRROR=<镜像地址> |

注意:删掉 ~/.dsh/electron 后,她就不会出现了(插件本身仍在跑)。
想彻底关掉桌宠:DSH_COOK_PET_DESKTOP=0,或直接卸载插件。

装完照照会出现在屏幕右下角(屏幕,不是页面里 —— 她浮在所有应用之上)。
位置可以拖,大小右键切换,下次启动都还记得。

🗑️ 卸载

dsh plugin --profile desktop remove dsh-cook-pet

卸载后 Electron 进程、定时器、事件监听全部回收(有测试守着这条)。

🎨 她是怎么做出来的

角色与全部 6 段动作都是 AI 生成(Q 版日系画风,绿幕/黑底源),再经一条可复现的素材管线转成带 alpha 的透明视频。

| 步骤 | 做法 | 为什么 |
| 1. 取 alpha | 只把「与画面四边连通的纯黑」当背景 | 黑色锅铲、深棕描边不会被误删 |
| 2. 边缘颜色外扩 | 把人物颜色铺满羽化带 | 否则羽化带里的黑底会变成一圈脏黑边 |
| 3. 统一裁切框 | 6 段共用同一框(并集) | 切换动作时人物不会跳位 |
| 4. 编码 | 预乘 alpha → VP9 yuva420p | 浏览器唯一可靠的透明视频格式 |

最关键的一条:mp4/H.264 没有 alpha 通道。所谓"抠图 mp4"只是把背景换成了纯黑或绿幕,透明信息在文件里并不存在 —— 必须重新编码成 yuva420p 的 WebM。

🎨 想换成自己的角色?

第 0 步(最关键):生成视频时用绿幕。

| 背景选择 | 后果 |
| 纯绿幕 #00FF00 ⭐ | 最好抠:绿与人物色差大,能干净分离;半透明效果(烟雾、光晕)也能保住 |
| 纯黑背景 | 能扣,但半透明内容会被压平(白色半透明的烟会变成不透明的深灰),需要额外反推 |
| 白/灰/渐变背景 | 难抠,容易误伤人物浅色部分(白帽子、白围裙) |

另外这几条也要写进生成提示词:正对镜头固定机位、人物不产生位移、 首尾帧姿态一致(循环才不跳帧)、无文字/水印。
本项目 6 段素材的完整提示词可直接参考 docs/视频提示词-等待确认.md 与 docs/视频提示词-点击回应.md。

第 1 步:准备素材文件

6 段视频按动作语义命名,放进 assets/cook-已抠图/:

| 文件名 | 什么时候播 | 要求 |
| 待机.mp4 | 没有任务 | 首尾姿态一致,可循环 |
| 颠锅.mp4 | 回合进行中 | 同上 |
| 上菜.mp4 | 回合成功完成 | 一次性播放 |
| 托腮.mp4 | 等你批准/回答 | 首尾姿态一致,可长时间循环 |
| wink.mp4 | 点击回应 | 首尾姿态 = 待机姿态 |
| 转圈.mp4 | 点击回应 | 同上 |

也可以像本项目最终版那样,直接用逐帧抠好的 PNG 序列(真 alpha)替换 ——画质最好,不需要反推。参考 scripts/build-assets.py 里的读取分支。

第 2 步:跑管线并验收

npm run assets # 生成 6 段透明 WebM 到 assets/pet/
npm run assets:check # 验收:四角透明 / 暗部未误抠 / 6 段尺寸一致 / 颜色通道顺序

管线会自动:取 alpha → 边缘颜色外扩 → 统一裁切框 → 编码 VP9 alpha。
控制台会打印每段的尺寸、alpha 覆盖率与四角 alpha。

第 3 步:只有换了画幅比例时才要改的两处

| 改了什么 | 还要同步改哪里 |
| 裁切框(脚本顶部 CROP) | runtime/electron-helper/renderer.js 顶部的命中框比例常量 |
| 素材内容变了 | renderer.js 里的 ASSET_VERSION +1(否则桌面窗可能读到旧缓存) |

第 4 步:重启 DSH

桌面窗在启动时就把素材读进内存了,所以换素材后必须重启才完全生效。

素材管线踩过的坑(都有数据与回归测试)见 docs/素材管线实测.md。

🗂️ 项目结构

dsh-cook-pet/
├── 🧩 lib/ # 宿主侧:跑在 DSH 进程里 │ ├── index.js # 入口:监听事件、暴露 /state 与 /asset、拉起桌面窗 │ ├── state.js # 四态状态机(idle / cook / serve / think) │ ├── waiting.js # 「等你回话」识别 │ └── desktop.js # 桌面窗进程管理(含自动准备 Electron) │ ├── 🖥️ runtime/electron-helper/ # 桌面窗:独立 Electron 进程,就是你在屏幕上看到的那只 │ ├── main.js # 透明·置顶·无边框窗口 + 点击穿透 + 右键改大小 │ ├── renderer.js # 播放动画、命中判定、拖拽 │ └── preload.js # 渲染端与主进程的桥 │ ├── 🎬 assets/pet/.webm # 6 段透明动画(514×512, VP9 alpha) ├── 🛠️ scripts/ # 素材管线、发布自检、Electron 准备 └── 📚 docs/ # 详细文档(不随包发布)

它是怎么跑起来的:

DSH 宿主进程(lib/index.js) ├─ 监听 session/event → lib/state.js(四态) ├─ 监听审批/提问 → lib/waiting.js(托腮) └─ 暴露 /dsh-cook-pet/state 与 /asset/ │ 1 秒轮询 ▼ Electron 桌面置顶窗(runtime/electron-helper)透明·无边框·浮在所有应用之上

没有构建步骤:lib/*.js 是手写纯 JS,DSH 直接加载。
也没有浏览器内嵌版本 —— 照照只以这个置顶窗存在,最小化 DSH 也能看见她。

🧩 兼容性

| 项 | 状态 |
| DSH | 0.2.0-rc.1 / 0.2.0-rc.2 / 0.2.1-rc.1 / 0.2.1-rc.2 实测通过(engines.dsh: >=0.2.0) |
| 桌面窗 | Windows 实测通过(Electron 43,transparent + alwaysOnTop);macOS/Linux 未实测 |
| Node | ≥ 22.12 |

⚠️ 已知限制

1. 素材的 alpha 部分是推算的:源视频没有 alpha,4 段靠「从黑底/绿幕反推」得到;颠锅与上菜已换成逐帧抠图的 PNG 序列(真 alpha),边缘更准。
2. 上菜素材是 30fps 但删过 5 帧(4.73s → 4.57s),理论上可能有一帧级的细微跳变。
3. 换素材要重启一次:?v= 版本号能绕过缓存,但桌面窗启动时就把素材读进内存了。
4. 点击回应是随机二选一,不按点击位置/次数区分。
5. 没有设置页:大小用右键循环(110 / 138 / 190 / 260),位置拖拽即可(都持久化)。
6. 只在桌面窗里存在:Electron 首次需下载约 100 MB。没有页面内嵌版本 ——如果 Electron 起不来(下载失败、极端受限环境),就看不到照照,但 DSH 本身不受影响。

📜 许可

- 角色「照照」的形象与全部 6 段动作素材由本项目自行生成。
- 本插件代码以 MIT 许可发布,详见 LICENSE。

📚 相关文档

| 文档 | 内容 |
| docs/素材管线实测.md | 6 段素材的重编码实测数据:尺寸、帧数、alpha 覆盖率、裁切框推导 |
| docs/视频提示词-等待确认.md | 托腮动作的完整生成提示词 |
| docs/视频提示词-点击回应.md | wink / 转圈两个点击回应的完整提示词 |
预览分享卡片长什么样 ↓ting-good/dsh-cook-pet
分享 · DeepSeek Harness Hub
ting-good/dsh-cook-pet

用于DeepSeek Harness的可爱小厨娘插件,展示任务状态,也可以点击互动

这是你的仓库?认领条目

回到顶部