一键生成Windows桌面宠物程序

SKILL开发

原名 petdex-pet-exe

开发 未标注权限 许可证不明确
安装这个技能

把petdex宠物打包成单文件、零依赖的Windows桌面宠物exe,运行后宠物透明置顶、自动走动,可与它互动并修改名字,适合直接放到桌面使用。

一句话选型结论

按资料字段整理

一键生成Windows桌面宠物程序是开发类的 Agent Skill,安装方式未标注,权限级别未标注,许可证不明确,有可直接复制的安装命令。技能本质是给模型读的说明书,效果取决于模型与客户端;装完先用一个小任务验证,再放进正式流程。

分类开发 安装方式未标注 权限级别未标注权限 许可证许可证不明确
累计安装 未标注 本周 未标注
GitHub 星标 未标注 仓库 未标注
下载量 未标注 技能市场下载数
权限级别 未标注权限 安装前请确认风险范围
许可证 许可证不明确 未说明

安装

未标注
在支持 Skills 的客户端里执行,装完问一句「你有哪些技能」验证
skillhub install user_d22c96c4/petdex-pet-exe
  1. 1
    确认客户端支持

    确认你的客户端支持 Skills(Claude、Codex、Cursor 等),并升级到较新的版本。

  2. 2
    拿到技能文件

    执行上面的命令安装;也可以把仓库里的 SKILL.md 手动放进客户端的 skills 目录。

  3. 3
    刷新技能列表

    重新打开客户端,或刷新技能列表,让新放进来的技能被加载。

  4. 4
    验证是否生效

    问一句「你有哪些技能」,确认列表里出现它,再拿一个小任务试跑。

技能档案

开发
字段来自技能仓库与公开索引,中文说明由本站标注
作者 / 维护方user_d22c96c4仓库 未标注 · 版本 未标注
宿主客户端未标注技能可被这些客户端加载
安装方式未标注安装包 community
权限级别未标注权限安装前请确认风险范围
许可证未说明许可证不明确,商用前请自行确认条款
仓库可用性available技能仓库当前是否可访问
最近核验2026-11-06上游最后核验时间 · 数据更新 2026-11-06
正文体量14.3 KBSKILL.md 原文大小,越大说明说明书写得越细

能做什么

0 项能力
上游给出的能力概览与适用场景
制作桌面宠物程序生成免安装宠物exe给宠物改名字

典型使用场景

3 类
按分类整理的常见用法,具体以 SKILL.md 为准
写代码与改 bug

按需求补代码、定位并修掉报错。

读仓库与生成改动

让模型读懂项目结构,再给出可落地的改动。

跑测试与排查故障

按现象排查问题,补测试用例并复跑。

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 有可直接复制的安装命令,不用自己翻文档找入口。

先想清楚的地方

  • 没有标注权限级别,实际能做什么要装好后确认。
  • 许可证不明确,商用或二次分发前先到仓库确认条款。
  • 没有做站内核验,内容以作者仓库为准。
  • 技能只是说明书,实际效果取决于模型与客户端,装完先用小任务试一遍。

更适合

  • 需要在开发场景里给模型补一套做法的人。
  • 愿意先读一遍 SKILL.md、确认它会让模型做什么的人。

不太适合

  • 对许可证要求很严、必须明确可商用的人。
  • 只想装完就自动变强、不打算看说明书的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
技能权限级别安装方式累计安装宿主客户端安装命令
一键生成Windows桌面宠物程序当前 未标注权限 未标注 未标注 未标注 有
技能审查员 浏览器控制 ClawHub 市场 877.9 万 OpenClaw 有
Vercel React 最佳实践 浏览器控制 GitHub 仓库 849.1 万 Codex、Claude、Cursor 有
GitHub 代码协作 联网访问 ClawHub 市场 763.3 万 OpenClaw 有
网页设计指南 联网访问 GitHub 仓库 668.6 万 Codex、Claude、Cursor 有
本体论 只读 ClawHub 市场 663.7 万 OpenClaw 有

SKILL.md 全文

14.3 KB
模型实际读到的说明书原文,来自技能仓库

Petdex → 桌面宠物 exe 生成器

把 petdex 的宠物变成单文件、零运行时依赖的 Windows exe 桌面宠物。
生成的宠物:透明置顶窗口、自动走动(含副屏)、左键拖动、右键切换动作、双击退出、启动弹对话框改名。

何时使用

  • 用户输入「生成宠物」+ petdex 安装命令,例如 生成宠物 npx petdex@latest install lulu-capybara-2
  • 用户明确要"可执行的桌面宠物程序 / 能改名、有动作互动的 exe"

环境准备

使用受管 Python venv(已验证可用路径):
~/.workbuddy/binaries/python/envs/default
- 不存在则:.../python.exe -m venv <同上路径>
- 装依赖:.../Scripts/pip install Pillow pyinstaller
- ⚠️ 受管 Python 没有 tkinter,桌面宠物必须用纯 Win32 ctypes 实现(见 scripts/build_pet.py),不要尝试 tkinter。

素材来源(petdex 路径)

  1. 直接运行该命令,例如 npx petdex@latest install lulu-capybara-2。
  2. 素材下载到 ~/.petdex/pets/<name>/(含 pet.json 与 spritesheet.webp)。
  3. pet.json 通常只有基础信息、不含帧顺序,不要依赖它定义动作。
  4. spritesheet 即素材来源,路径传给 build_pet.py --src。

工作流

1) 生成宠物源码

运行 scripts/build_pet.py(自动检测分帧网格并内嵌帧数据):

python scripts/build_pet.py --src <spritesheet.webp> \
                             --out <name>_pet.py --name 旺财
  • 输出 <name>_pet.py:构建期把每帧算成 BGRA 字节并 base64 内嵌,运行时零依赖(打包后不需要 Pillow)。
  • 不传 --actions 时默认一个"散步"动作循环所有帧(仅能用,需精修)。
  • 若自动网格不准,用 --cols '[[16,174],...]' / --rows '[[5,202],...]' 手动覆盖。
  • petdex 素材都是多帧 spritesheet,默认生成 1 个"散步"动作循环所有帧(强烈建议在第 2 步之前先用 montage 看一眼)。

2) 渲染对照图、确认动作段(关键,避免"鬼畜")

2a) 先做编号 montage

python scripts/make_montage.py --src <spritesheet.webp> \
                               --out outputs/<name>_montage.png --keep-empty
  • 务必加 --keep-empty:素材里常有几格全透明的"占位帧"(petdex 默认布局就常有)。不带这个开关脚本会丢弃空帧、把后面所有帧的索引往前挪,用网格索引写出来的 --actions 就会全部错位、播出来鬼畜。开了之后 frame index == row*cols+col,与 --actions 里写的索引直接对齐。
  • 用多模态把 montage 图读出来,肉眼确认每一行是什么动作。

2b) petdex 素材典型约定:每行 = 1 个动作

我们处理过的两个 petdex 素材(wangcai、lulu-capybara-2)都遵循同一规则 —— 一行 = 一个完整动作循环,且通常第 1 行是 idle/眨眼、第 2/3 行是左/右走或跑。按这个约定写 --actions 是最快最准的路径。

2c) 写 --actions JSON

格式:每项 [名字, 朝左帧索引列表, 朝右帧索引列表, 帧间隔ms, 移动速度]。

  • 左/右都有的动作(走、跑、转):a[1] 朝左帧、a[2] 朝右帧。宠物根据 state['face'](±1)自动选一侧,撞墙翻转。索引顺序千万别反:左行在前、右行在后。
  • 只有单一朝向的动作("向前扑"、"抬前爪"、"委屈趴下"):a[1] == a[2],左右都用同一组帧。
  • 空闲类动作(眨眼、睡觉、洗脸):速度设为 0.0,宠物原地不动 + 引擎自带的 sin bob 浮动。

wangcai 实测映射(--keep-empty + 8 列 × 9 行 = 72 帧,每行末尾有空帧):

[
  ["眨眼",   [0,1,2,3,4,5],                    [0,1,2,3,4,5],                       220, 0.0],
  ["跑步",   [16,17,18,19,20,21,22,23],         [8,9,10,11,12,13,14,15],              75, 2.2],
  ["抬爪",   [24,25,26,27],                     [24,25,26,27],                        150, 0.0],
  ["扑",     [32,33,34,35,36],                  [32,33,34,35,36],                     110, 0.0],
  ["委屈",   [40,41,42,43,44,45,46,47],         [40,41,42,43,44,45,46,47],            200, 0.0],
  ["歪头右", [48,49,50,51,52,53],               [48,49,50,51,52,53],                  160, 0.0],
  ["跳",     [56,57,58,59,60,61],               [56,57,58,59,60,61],                  90,  1.8],
  ["歪头左", [64,65,66,67,68,69],               [64,65,66,67,68,69],                  160, 0.0]
]

执行:

python scripts/build_pet.py --src ~/.petdex/pets/wangcai/spritesheet.webp \
                             --out wangcai_pet.py --name 旺财 \
                             --htarget 130 --tagh 22 --keep-empty \
                             --actions '<上面这一坨 JSON>'
  • 素材里不存在的动作(如"打滚")做不出来,用最接近的替代,不要硬切混合帧。
  • 跑步方向会自动按宠物面朝切换;跳跃只有向左行,左右都用同一组帧。

lulu-capybara-2 实测映射(8 列 × 9 行 = 72 帧,行尾有透明占位帧,已用 check_blank.py 剔除行尾空白,否则播放到透明帧宠物会凭空消失):

[
  ["眨眼", [0,1,2,3,4,5],                    [0,1,2,3,4,5],                       220, 0.0],
  ["散步", [16,17,18,19,20,21,22,23],         [8,9,10,11,12,13,14,15],             100, 1.4],
  ["挥手", [24,25,26,27],                     [24,25,26,27],                       150, 0.0],
  ["开心", [32,33,34,35,36],                  [32,33,34,35,36],                    120, 0.0],
  ["委屈", [40,41,42,43,44,45,46,47],         [40,41,42,43,44,45,46,47],           200, 0.0],
  ["睡觉", [48,49,50,51,52,53],               [48,49,50,51,52,53],                 250, 0.0],
  ["跑步", [56,57,58,59,60,61],               [56,57,58,59,60,61],                  80, 2.0],
  ["歪头", [64,65,66,67,68,69],               [64,65,66,67,68,69],                 160, 0.0]
]

2d) 空白帧校验(必做,避免宠物"凭空消失")

petdex 素材每行动作循环后常跟若干全透明占位帧。--keep-empty 下它们仍占网格索引,若动作把末尾这些透明帧圈进播放列表,宠物播放到该帧时整窗变透明 → 凭空消失/闪没。打包前务必用 check_blank.py 校验:

python scripts/check_blank.py --src <spritesheet.webp> \
  --actions '<你的 actions JSON>'
  • 输出 [OK] 则安全;输出 [!] PROBLEM 则列出踩中透明帧的动作与帧号。
  • 直接生成修复版 JSON(剔除所有透明帧):--autofix - 打印,或 --autofix out/actions_fixed.json 写文件,再把修复后的 JSON 喂回 build_pet.py --actions。
  • 经验法则:每个动作只列该行有内容的帧;占位帧都在行尾,截掉行尾即可(或交给 --autofix 自动处理)。

3) 打包 exe(注意沙箱陷阱)

TMP=$(python -c "import tempfile;print(tempfile.gettempdir())")
pyinstaller --onefile --windowed --name LuluPet \
  --workpath "$TMP/lulu_work" --distpath "$TMP/lulu_dist" lulu_pet.py
cp -f "$TMP/lulu_dist/LuluPet.exe" "<项目>/dist/LuluPet_vN.exe"
  • ⚠️ 沙箱有"安全删除"钩子会拦截 os.remove(临时文件无法进回收站)→ PyInstaller 收尾失败。把 --workpath/--distpath 指到系统临时目录(该钩子对临时目录走原生删除、绕过回收站),打包完 cp -f 回 dist/。
  • 旧 exe 若仍在运行会锁文件 → 复制到新文件名(如 LuluPet_vN.exe)避免覆盖失败。
  • 构建告警里 numpy/olefile/grp/pwd/posix/fcntl/collections.abc/_frozen_importlib_external 是可选依赖,可忽略。

4) 交付 & 说明

  • 交付 exe(present_files)。
  • 说明:双击启动弹改名框 →「确定」用新名(写回 petname.txt)/「取消」或 ✕ 用原名;左键拖到任意屏(含副屏);右键循环切动作;双击退出。
  • 沙箱无桌面无法 GUI 实测,只验证:源码导入、帧数据、打包成功、无致命缺模块;请用户本机实测。
  • 失败排查:本机把 %TEMP%\lulu_error.log 内容发回。

限制说明(务必明示,避免误用)

  • 仅支持 Windows:宠物用纯 Win32 ctypes 实现、最终打包为 .exe,无法在 macOS / Linux 运行。
  • 构建期依赖:生成 exe 需要本机有 Python 3 + Pillow + PyInstaller(仅构建用);运行期零依赖,产物是单文件 exe。
  • 需要 petdex 素材:必须先 npx petdex@latest install <name> 拿到 spritesheet,没有素材无法生成。
  • 动作映射需人工确认:--actions 的帧索引依赖对 montage 的肉眼判断,自动网格检测可能不准,需 check_blank.py 校验。
  • 沙箱限制:CI/沙箱无桌面,无法 GUI 实测;只保证源码可导入、帧数据正确、打包成功、无致命缺模块,实际表现需本机验证。

完整示例(walkthrough)

以 lulu-capybara-2 为例的一条龙:

# 1. 拉素材(输出 ~/.petdex/pets/lulu-capybara-2/spritesheet.webp)
npx petdex@latest install lulu-capybara-2

# 2. 看布局,务必 --keep-empty
python scripts/make_montage.py \
  --src ~/.petdex/pets/lulu-capybara-2/spritesheet.webp \
  --out montage.png --keep-empty

# 3. 写 actions 后必做空白帧校验(避免宠物凭空消失)
python scripts/check_blank.py \
  --src ~/.petdex/pets/lulu-capybara-2/spritesheet.webp \
  --actions '<见上文 lulu-capybara-2 实测映射>'

# 4. 生成源码 + 打包
python scripts/build_pet.py \
  --src ~/.petdex/pets/lulu-capybara-2/spritesheet.webp \
  --out lulu_pet.py --name 噜噜 --htarget 130 --tagh 22 \
  --keep-empty --actions '<见上文 lulu-capybara-2 实测映射>'
pyinstaller --onefile --windowed --name LuluPet lulu_pet.py

最终得到 LuluPet.exe:双击启动弹改名框、左键拖动、右键切动作、双击退出。

关键代码坑(务必照做,脚本已内置)

  1. WNDCLASSEX.hInstance = 0(别用 GetModuleHandleW,其默认 restype 是 32 位,64 位 HMODULE 被截断导致 RegisterClassExW 失败)。
  2. MSG._fields_ 中 wParam/lParam 用 c_void_p(64 位),并带末尾 lPrivate DWORD;WNDPROC 回调 WPARAM/LPARAM 也用 c_void_p。
  3. 给所有 user32/gdi32 函数显式设 restype/argtypes(指针/HANDLE 返回用 c_void_p)。
  4. 分层透明窗口创建后必须 ShowWindow(SW_SHOW)——光 UpdateLayeredWindow 不显示,窗口一直隐藏(表现为"双击没反应")。
  5. 边界用虚拟屏幕坐标(SM_XVIRTUALSCREEN/YVIRTUALSCREEN/CXVIRTUALSCREEN/CYVIRTUALSCREEN)做 clamp,才能拖到副屏。
  6. 启动改名对话框:按钮 y 用 GetClientRect 取实际客户端高度(by=ch-46)算,不要用 DH-常量(客户区不含标题栏,高分屏下按钮会被裁掉看不见);窗口类 hbrBackground=c_void_p(COLOR_BTNFACE+1) 不透明,否则客户区透出后面窗口。
  7. base64 用占位符替换(__FRAME_B64__)注入,避免 f-string 大括号与 JS/CSS 冲突(本脚本用 str.replace,无此问题)。
  8. 透明占位帧会让宠物"凭空消失":--keep-empty 下全透明格子仍占索引。动作若引用到透明帧,分层窗口变全透明 → 宠物闪没/消失。打包前用 scripts/check_blank.py 校验并 --autofix 剔除(见 2d)。这是 petdex 素材最高频的坑,肉眼看 montage 很容易漏掉行尾空白帧。

Resources

scripts/build_pet.py

从 petdex spritesheet 生成运行时零依赖的桌面宠物源码 <name>_pet.py。
参数:--src(必填) --out --name --actions(JSON) --htarget --tagh --cols --rows --gap-min --keep-empty。
内置:网格自动检测(透明间隙 + 小间隙合并)、动作默认循环、Win32 全量实现与改名对话框。
关键参数:
- --keep-empty:保留透明占位帧,使 frame == row*cols+col,与 montage / --actions 索引严格对齐。处理 petdex 这类常含空格的素材时必须加。
- --actions JSON:[name, left_frames, right_frames, interval_ms, move_speed]。单朝向动作 left == right;移动类动作用左/右两段帧。

scripts/make_montage.py

把 spritesheet 的每一格渲染成带红色编号的小图,便于用多模态肉眼确认"哪行是哪个动作 / 帧编号对不对"。务必配 --keep-empty,否则编号会因空帧被剔除而错位。

python scripts/make_montage.py --src spritesheet.webp --out montage.png --keep-empty

scripts/check_blank.py

校验 --actions 是否引用了全透明占位帧,并自动剔除生成修复版 JSON。复用 build_pet.py 的网格检测,索引与拼接一致。这是避免宠物"凭空消失"的必做关卡(见 2d)。

python scripts/check_blank.py --src spritesheet.webp --actions '<JSON>'          # 仅校验
python scripts/check_blank.py --src spritesheet.webp --actions actions.json \
  --autofix out/actions_fixed.json                                              # 校验并写修复版
  • --actions 可传内联 JSON,也可传一个 .json 文件路径。
  • 输出 [OK] 表示安全;[!] PROBLEM 会列出踩中透明帧的动作与帧号。
  • --autofix 会把每个动作帧列表里的透明帧全部剔除(占位帧都在行尾,剔除后动作循环更干净),- 表示打印到 stdout。

变更日志

v1.0.0 (2026-08-18)

  • 首次发布到 SkillHub。
  • 补齐 frontmatter:version / author / slug / category / tags / license / trigger / platforms。
  • 修正 SKILL.md 中硬编码的本地绝对路径为 ~/.workbuddy/...,保证跨机可移植。
  • 新增「限制说明」「完整示例」「变更日志」章节,对齐 SkillHub TRACE 评测维度。

常见问题

5 问
答案由本站依据条目字段整理
一键生成Windows桌面宠物程序怎么安装?

在支持 Skills 的客户端里执行:skillhub install user_d22c96c4/petdex-pet-exe。安装方式为未标注。装完刷新技能列表或重开客户端。

一键生成Windows桌面宠物程序支持哪些客户端?

资料没有标注宿主客户端,但只要客户端支持 Skills(Claude、Codex、Cursor 等),一般都能加载。

一键生成Windows桌面宠物程序权限高吗,安全吗?

权限级别为未标注权限。安装前先看它会读取或写入哪些内容。

一键生成Windows桌面宠物程序收费吗?

本站不代收费用,也没有标注具体价格。是否收费取决于技能本身和所用的模型或客户端,正式使用前按作者说明确认。

一键生成Windows桌面宠物程序用什么许可证?

许可证标注为 未说明(许可证不明确)。商用或二次分发前请到仓库确认条款原文。

热门专题

按场景挑技能
全部专题 →

技能内容以作者仓库为准;分类、权限级别与许可证状态的中文说明为中文整理,最近核验 2026-11-06。