豆豆桌宠·自由创作编辑器

Vibe Coding

用代码制作一个会互动的桌宠包

这个页面面向开发者和 AI Coding 工具:先把行为想法写成插件,再通过本程序提供的 Creator API 校验、预览和打包。

如何使用 AI Coding 工具

把下面提示词复制到 Codex、Cursor、Claude Code 或其他 AI Coding 工具,再把方括号里的内容替换成你的宠物玩法。

基础提示词

请先阅读 docs/creator-api/AI_QUICKSTART.md、docs/creator-api/API_REFERENCE.md、docs/creator-api/PERMISSIONS.md 和 docs/creator-api/SAFETY_RULES.md。

我要制作一个豆豆桌宠 Vibe Coding 插件,并打包成可安装的 .petpack 宠物包:
- 宠物想法:[宠物想法]
- 触发场景:[触发场景]
- 希望动作:[希望动作]
- 本地资源路径:[本地资源路径,例如 my-plugin/plugin/assets/footprint.png;没有素材就写暂无]
- 宠物包目标:输出一个可安装的 .petpack 宠物包

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

使用步骤

  • 1. 先读 API 文档:让 AI 先看 `docs/creator-api/AI_QUICKSTART.md`、`API_REFERENCE.md`、`PERMISSIONS.md` 和 `SAFETY_RULES.md`。
  • 2. 写清楚玩法和资源:把 [宠物想法]、[触发场景]、[希望动作]、[本地资源路径] 换成自己的内容。本地资源路径只填写插件内可打包的 `plugin/assets/` 文件或目录。
  • 3. 交给 AI 生成:让 AI 写 `plugin.json` 和 `main.js`,不要先手动加高风险权限。
  • 4. 运行校验:生成完成后先运行 npm run creator:check,确认结构、权限和 API 调用合法。
  • 5. 继续修复:如果校验失败,把报错继续发给 AI,让它按错误解释修改。
  • 6. 制作宠物包:校验通过后运行 `npm run creator:preview`,满意后再运行 `npm run creator:pack my-plugin/plugin`,输出一个可安装的 .petpack 宠物包。

制作流程

从阅读 API 文档、填写本地资源路径,到插件校验和宠物包打包,每一步都对应当前仓库里的命令。

Step 1

描述玩法

说明宠物要响应什么场景,例如鼠标靠近、专注计时、前台应用变化或提醒到期。

Step 2

生成插件

让 AI 根据 Creator API 写出 `plugin.json` 和 `main.js`,并声明必要权限。

Step 3

校验修复

运行校验命令,根据错误解释补齐权限或改用更安全的 API。

Step 4

预览打包

在桌宠开发者预览环境里测试行为,再打包成可安装的宠物扩展。

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: "喝水、眨眼、伸展。"
    });
  }
});

开发命令

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",
    "app.foreground"
  ]
}