四月初,Claude Code 官方上线了 /buddy——一个数字宠物系统。
两周后,我在 GitHub 上开源了 Buddy Pet,采用 MIT 协议。
肯定会有人问:官方都做了,你为什么还要自己做一个?
答案很简单:因为我们想解决的不是同一个问题。
三个核心场景
场景一:离线环境,比如在飞机上
笔记本开启飞行模式。你想写代码,顺便也能喂养一下你的宠物。
官方的 /buddy 需要网络连接。没有网络,宠物就会停滞不动。
而 Buddy Pet 是完全离线的。零网络请求。无论是在飞机上、地铁里,还是断网的咖啡馆,你的宠物都能正常运行。
场景二:你想自定义宠物的互动规则
比如说,你觉得“喂食”这个动作可以增加一个深夜限定版本:只在晚上十点以后出现,吃完能增加混乱值并减少饥饿值。
用官方的 /buddy,你无法实现这个想法。
但在 Buddy Pet 里,你只需要打开 ~/.buddy-pet/tools.yaml 配置文件,加入几行配置就能搞定。
tools:
- name: midnight_ramen
display: “午夜泡面”
effects:
hunger: -40
chaos: +10
condition: “hour >= 22”
你的宠物,规则由你定义。
场景三:你想完全掌控宠物数据
官方的 /buddy 是个黑盒子。数据储存在云端,具体格式未知。
Buddy Pet 则将所有数据以 JSON 格式储存在 ~/.buddy-pet/state.json 文件中。格式是人类可读的,你可以直接打开查看、修改,也可以轻松地复制整个文件夹进行备份。
一个关键的技术细节:确定性生成
Buddy Pet 的宠物生成机制是确定性的。
同一个用户 ID,永远会生成同一只宠物。这不是随机抽卡,也不是概率游戏。你的 ID 决定了你宠物的物种、稀有度、初始属性,一切都是固定的。
这意味着,无论你是换了电脑、重装了系统,还是隔了三年再装回这个项目,只要你的 ID 不变,回来的就还是那只宠物。
这种设计让你能与宠物建立真正的连续性。它不是每次打开都重置的临时玩伴,而是能一直陪伴你的同一个数字生命。
适合谁用?
- 需要离线工作的开发者
- 想深度自定义宠物互动规则的人
- 关心数据隐私和本地化存储的人
- 希望通过阅读源码学习项目实现的人
不适合谁用?
- 需要云端同步功能的——请使用官方的
/buddy
- 追求绝对开箱即用、零配置的——请使用官方的
/buddy
- 需要官方客服和技术支持的——请使用官方的
/buddy
两者并不冲突,你完全可以同时安装。
项目地址: github.com/samya36/buddy-pet
安装命令: git clone → bun install → bun start
后记:这是我第一次发布这类基于官方功能的延伸开源项目,全程采用 Vibecoding 方式(无代码编写),旨在提供另一种思路。欢迎测试、提 Bug 和建议。
|