昨天在刷 Codex 更新日志的时候,看到一个让我愣了一下的东西:桌面宠物。
对,就是那种你写代码的时候,屏幕角落有个小动画陪着你的功能。
我第一反应是“认真的吗?”。第二反应是打开了 /pet 命令试了一下。
然后我发现,这东西比我想象的有意思。
它不是一个静态贴图
Codex 的桌面宠物不是随便往屏幕上贴一个 GIF。它会根据你当前 agent 的状态自动切换动画。
你让它跑任务,它就在跑。等你确认审批,它就乖乖等着。任务失败了,它会有一个沮丧的动作。你闲置了,它就自己待机呼吸。
这个设计挺聪明的。因为它解决的不是“好看”的问题,而是“你终于不用一直盯着终端看 agent 到底在干嘛”的问题。你余光扫一眼角落,就知道当前状态。
在 Codex Desktop App 里,输入 /pet 就能唤醒或者收起它。设置里也有开关:Settings → Appearance → Pets。
自定义宠物怎么搞
Codex 支持自定义宠物,格式很清晰:
一个 pet.json 描述文件,加上一张 spritesheet(精灵图)。spritesheet 推荐尺寸 1536×1872 像素,8 列 × 9 行的网格,每一行代表一个动画状态——待机、向右跑、向左跑、挥手、跳跃、失败、等待、奔跑、审视,一共 9 种。
宠物文件放到 ~/.codex/pets/<名称>/ 目录下就能用。
听起来不复杂,但问题是:谁来画这 1300 多个角色的精灵图?
PetDex:社区已经帮你做好了
这就是 PetDex 在做的事。
petdex.crafter.run 是一个公共动画伙伴库,目前收录了 1334 个宠物,全部由社区提交。GitHub 开源,1000 多个 star。
你想要什么基本都有。
动漫向的:路飞、鸣人、悟空、祢豆子、五条悟、芙莉莲。梗图向的:Pepe、Wojak。原创机甲向的:GRAYCRAFT 系列,迷你装甲飞行员。甚至还有各种物件和生物,按心情分类——Cozy、Playful、Focused、Heroic、Chaotic,十几个标签随便筛。
安装方式一行命令:
npx petdex install <宠物名称>
下载完自动放到 ~/.codex/pets/ 下面,去 Codex 的 Settings → Appearance → Pets 里选中就能用。
不想装 CLI 的话,网页上也有 curl 方式:
curl -sSf https://petdex.crafter.run/install/<名称> | sh
我实际试了一下
我挑了几个装上去看了看效果。
整体体验比我预期的顺畅。安装基本就是一条命令的事,选中之后宠物立刻出现在桌面上。动画切换是实时的,agent 跑任务的时候它真的在动,不是录制好的循环。
网页做得也不错,支持中文,有筛选、搜索、收藏、随机推荐。点进每个宠物的详情页能看到所有动画状态的预览,不用装了才知道长什么样。
想自己做一个也行
PetDex 支持社区提交。你画好 spritesheet,写好 pet.json,通过 CLI 上传:
petdex submit <路径>
提交后进入审核队列,通过了就会出现在公共库里。每人每天限 10 次提交。
它还提供了一个 Codex/Claude Code 兼容的 skill,装上之后可以用自然语言说“给我 Codex 装一个可爱风格的宠物”,agent 会自动帮你从 PetDex 里挑一个装好。
CLI/TUI 版本还在路上
目前桌面宠物只在 Codex Desktop App 里可用。CLI 和 TUI 版本有一个 PR(#21206)正在 review,加了终端内渲染支持,兼容 kitty/sixel 协议,在 Ghostty、iTerm2、WezTerm、Windows Terminal 上都能跑。tmux 下会自动关闭。
等这个 PR 合了,在纯终端环境里也能有伙伴了。
我的看法
说实话,一开始我觉得这就是个玩具功能。
用了一阵之后我的看法变了。写代码是个很枯燥的事,尤其是跑长任务、等 CI、等 agent 回复的时候,屏幕上有个活的东西在陪着你,体感上确实不一样。
它不影响任何性能,不干扰工作流,不烧额外资源。但它让“对着终端坐 8 小时”这件事变得稍微不那么冷。
如果你也在用 Codex Desktop,推荐去 PetDex 挑一个装上试试。
不为了别的,就为了让写代码的时候屏幕角落多一点生气。