豆豆桌宠 iDou.pet

VibeCoding

用 AI Coding 工具制作会互动的桌宠包

把桌宠玩法讲清楚,让 AI 帮你生成插件逻辑,再通过 Creator API 校验、预览并打包成可安装的 .petpack。

Before you start

开始前准备

AI Coding 工具可以直接读取本页来生成插件源码;校验、预览和打包需要在本地创作者工具链里完成。

01

下载并安装豆豆桌宠创作者工具包

工具包提供项目模板、Creator API 校验器、预览环境和 .petpack 打包能力。

下载创作者工具包
02

把素材放进插件目录

图片、序列帧和音频请放在 plugin/assets/ 下,提示词里只列这些素材路径。

03

让 AI 读取本页并修改工程

AI 负责生成 plugin.jsonmain.js;本地工具负责检查、预览和最终打包。

Prompt

复制这段提示词给 AI Coding 工具

请先把你的宠物想法写清楚,再把下面提示词交给 Codex、Cursor、Claude Code 或其他 AI Coding 工具。

我要制作一个豆豆桌宠 VibeCoding 插件,并打包成可安装的 .petpack 宠物包。

请先阅读本页的 Creator API 能力、权限说明和开发命令,然后帮我生成插件文件。

- 宠物想法:[宠物想法,例如:一只会在我久坐时绕着屏幕散步的小狗]
- 触发场景:[触发场景,例如:鼠标靠近、提醒到期、前台应用变化]
- 希望动作:[希望动作,例如:说话、移动、播放动画、生成便签]
- 本地资源路径:[本地资源路径,例如 my-plugin/plugin/assets/footprint.png;没有素材就写暂无]
- 宠物包目标:输出一个可安装的 .petpack 宠物包

请帮我生成 plugin/plugin.json 和 plugin/main.js,并确认需要打包进宠物包的资源都放在 plugin/assets/。

要求:
1. 使用 definePetPlugin。
2. 只声明真正需要的 permissions。
3. 只使用我列出的资源路径;不要读取任意本地文件。
4. 不要使用 fs、child_process、process.env、eval 或动态 import。
5. 如果有更安全的 API,优先使用更安全的 API。
6. 生成完成后先运行 npm run creator:check my-plugin/plugin,并根据报错继续修复。
7. 校验通过后运行 npm run creator:preview my-plugin/plugin 预览行为。
8. 满意后运行 npm run creator:pack my-plugin/plugin,制作宠物包。

AI-readable brief

AI 可读完整制作说明

如果你的 AI Coding 工具只能读取一个页面,请把本模块和上方提示词一起交给它。这里补齐目录结构、插件字段、权限、修复循环和验收标准。

你正在帮助用户制作一个豆豆桌宠 VibeCoding 宠物包。目标是输出一个可安装的 .petpack 文件。

一、插件目录结构
my-plugin/
  plugin/
    plugin.json
    main.js
    assets/
      用户明确提供、并且需要打包进宠物包的图片、序列帧、音频或其他静态素材

只允许修改 plugin/plugin.json、plugin/main.js 和 plugin/assets/。
不要读取用户没有列出的本地路径,不要扫描任意目录,不要把服务器密码、私钥、环境变量或临时凭据写进插件。

二、plugin.json 必填字段
{
  "name": "插件英文短名,使用小写字母、数字和连字符",
  "version": "1.0.0",
  "displayName": "展示给用户看的中文名称",
  "description": "一句话说明这个桌宠包会做什么",
  "entry": "main.js",
  "permissions": [
    "只声明真正需要的权限"
  ]
}

三、权限对照
- pet.control:控制宠物动画、说话、移动、缩放、心情或自主行为时使用。
- desktop.overlay:创建桌面便签、贴纸、图片、足迹或小面板时使用。
- mouse.read:需要读取鼠标位置、速度或是否靠近宠物时使用。
- app.foreground:需要根据前台应用或窗口上下文触发行为时使用。
- widgets.read:需要读取番茄钟、休息、水提醒或久坐提醒状态时使用。

原则:能不用权限就不用;能用低风险 API 就不要申请高风险能力。

四、main.js 写法
- 使用 import { definePetPlugin } from "@pixelpet/creator-api";
- 默认导出 definePetPlugin({...})。
- 常见触发点可以包含 onStart、onReminderDue、onMouseNear、onForegroundAppChanged 等。
- 行为要短、可预览、可重复触发,避免无限循环和长时间阻塞。
- 使用 ctx.pet 控制宠物,使用 ctx.desktop 创建桌面元素,使用 ctx.mouse / ctx.apps / ctx.widgets 读取上下文。

五、禁止事项
- 不要使用 fs、child_process、process.env、eval、Function 构造器或动态 import。
- 不要访问网络地址,除非用户明确要求且权限允许。
- 不要读取 plugin/assets/ 以外的任意本地文件。
- 不要伪造不存在的素材路径。
- 不要为了省事声明全部权限。

六、失败修复循环
1. 生成 plugin/plugin.json 和 plugin/main.js。
2. 运行 npm run creator:check my-plugin/plugin。
3. 如果失败,完整读取错误信息,只修改错误相关文件。
4. 再次运行 npm run creator:check my-plugin/plugin。
5. 重复直到校验通过。
6. 运行 npm run creator:preview my-plugin/plugin 预览行为。
7. 预览满意后运行 npm run creator:pack my-plugin/plugin 输出 .petpack。

七、验收标准
- plugin.json 结构完整,entry 指向 main.js。
- permissions 只包含真实需要的权限。
- main.js 能被校验器解析,使用 definePetPlugin。
- 所有引用素材都在 plugin/assets/ 下。
- npm run creator:check my-plugin/plugin 通过。
- npm run creator:preview my-plugin/plugin 能启动预览。
- npm run creator:pack my-plugin/plugin 能生成可安装的 .petpack。
- 没有使用禁止 API,没有读取任意本地文件,没有写入敏感信息。

Workflow

制作流程

把想法拆成清晰输入,AI 生成代码后再用官方命令校验和打包。

01

描述玩法

写清宠物要响应什么场景,以及用户看到的动作、话术或桌面元素。

02

整理素材

把会用到的图片、序列帧或声音放进插件内的 plugin/assets/ 路径。

03

生成插件

让 AI 生成 plugin.json 和 main.js,并只声明必要权限。

04

校验修复

运行校验命令,把报错继续交给 AI,让它按错误解释修复。

05

预览行为

在预览环境里确认动画、说话、移动和桌面元素表现符合预期。

06

打包安装

预览满意后打包成 .petpack,得到可安装的桌宠包。

Creator API

常用能力

插件通过上下文对象控制宠物、桌面元素、鼠标状态和系统场景。

  • ctx.pet 控制动画、说话、移动、缩放、心情和自主行为。
  • ctx.desktop 创建临时便签、贴纸、图片、足迹和小面板。
  • ctx.mouse 读取鼠标位置、速度和是否靠近宠物。
  • ctx.windows / ctx.apps 读取前台应用和窗口上下文。
  • ctx.widgets 读取番茄钟、休息、水提醒和久坐提醒状态。
import { definePetPlugin } from "@pixelpet/creator-api";

export default definePetPlugin({
  async onStart(ctx) {
    await ctx.pet.say("Ready.");
    await ctx.pet.play("idle");
  },
  async onReminderDue(ctx) {
    await ctx.desktop.spawnNote({
      title: "休息一下",
      text: "喝水、眨眼、伸展。"
    });
  }
});

Commands

开发命令与安全说明

先校验再预览,最后打包。权限声明越小,用户安装时越安心。

npm run creator:new my-plugin
npm run creator:check my-plugin/plugin
npm run creator:preview my-plugin/plugin
npm run creator:pack my-plugin/plugin
npm run creator:explain-errors my-plugin/plugin

权限最小化

插件必须在 plugin.json 里声明权限。只写真实需要的能力,高风险能力会被校验器拦截,并需要用户明确同意。

{
  "permissions": [
    "pet.control",
    "desktop.overlay",
    "mouse.read"
  ]
}