就在今天,Claude Code 悄悄上线了一个宠物模式。输入 /buddy,就会孵化出一只专属于你的小宠物,甚至连命令提示符都变成了彩虹色。

这个系统包含了物种、属性、性格,设计得挺花哨。

说起来也巧,就在昨天,Anthropic 的源码被泄露,多达 51 万行代码被扒了个底朝天。从泄露代码的时间戳来看,这个 Buddy 宠物系统是计划在 4 月 1 日(也就是今天)首次亮相的,算是如期而至。而且后天就是复活节,别人藏彩蛋,Anthropic 把彩蛋藏在了 /buddy 命令里。
在你输入命令后,它会有一个孵化动画,就像拆盲盒一样,你也不知道最终会蹦出个什么。

最“骚”的是,这玩意儿真的有稀有度机制,跟泄露出来的代码完全一致。

此外,还有一个独立的 Shiny(闪光) 属性,触发概率固定为 1%,与稀有度无关。
我自己也试了一下,然后……直接活生生跳出来一个白色普通仙人掌。

你要知道,我玩手游的时候,是那种标准的“强度党”,甚至会刷初始号,不刷到一个很厉害的 SSR 绝不开局。真的,看到这个白色仙人掌,我的心态当时差点崩了。
开启之后,它就会待在输入框旁边,你写代码的时候它就在边上晃悠。

作为一个强度党,看着一个白板仙人掌在我的 Claude Code 里面做一些贱贱的表情,我实在是接受不了。最关键的是,它居然告诉我,没有办法重抽(re-roll)。

我扒了一下源码,宠物一共有 18 种,包括鸭子、蘑菇、猫头鹰、蜗牛、幽灵等等,甚至还有卡皮巴拉。

每一种都有自己独特的动画效果。我们的小伙伴也试了一下,果然,一堆“非酋”。

整个 Buddy 系统用了一个双层架构设计,叫做 Bones + Soul。
- 骨架层(Bones),决定你的宠物长什么样。它使用你的账户
userID 加上一个固定盐值,通过 Mulberry32 伪随机算法生成,来确定物种、眼睛、帽子、稀有度等所有外观属性。因为绑定的是你的 userID,所以不管你在哪台电脑上登录,或者重装多少次 Claude Code,你的宠物永远是同一只。
- 灵魂层(Soul),决定你的宠物是什么性格。这个是可以“roll”的,存储在本地。第一次孵化时,Claude 会根据你宠物的物种和属性,给它生成一个名字和一段性格描述。

每只宠物还有五大属性:调试能力(DEBUGGING)、耐心值(PATIENCE)、混乱值(CHAOS)、智慧值(WISDOM)、毒舌值(SNARK)。

稀有度越高,属性的基础值就越高。每只宠物都有一个突出的峰值属性和一个偏低的短板属性(每个 buddy 会随机选一项当峰值、一项当废物,剩下三项普通)。因为我的白板仙人掌数值太“垃圾”了,所以最高的属性只有 62,最低的只有 4。这些属性会直接影响宠物跟你互动的风格。
作为一个强度党,我当然接受不了我的宠物是个白板废物仙人掌的设定。于是我就去搜了一下,有没有能重抽的方法。没想到,还真被我找到了。

然后我自己尝试了一下……我的白板仙人掌,立马变成了——闪光传说卡皮巴拉!!!!!!!金色传说!!!

爽爆了!我心情一下子都变好了。这才是强度党的胜利!
教程其实挺简单的。我直接把那个教程帖子发给了 Claude Code,告诉它我想重抽我的 buddy 宠物。
帖子链接:https://linux.do/t/topic/1873901

它给了我一段流程,我感觉有点不对,就把教程的截图发给了它。

它告诉我,直接说出你想要什么就行了。我就超级大声地(在输入框里)来了一句:

我要传说闪光卡皮巴拉!!!
然后,Claude Code 就直接开干了。

(中间我 token 还粘错了,瞎给了一个 URL 链接。Claude Code 说,这个 Token 也不是必须的,有更方便的方法能跳过,于是它自己就开始操作了。)

然后它让我重启。重启后,我重新打开 Claude Code,输入 /buddy,我的金色传说闪光卡皮巴拉就直接出现了。
我后来又翻了下那个帖子,其实原理挺简单的:因为 UserID 是决定宠物的种子,所以改 userID = 改宠物。
具体来说,作为 Claude Max 会员,在正常官方登录流程中,Claude Code 会把你的 accountUuid(Anthropic 账户唯一标识)写入 ~/.claude.json。/buddy 命令优先使用 accountUuid 作为种子,这个值绑定你的付费账户,无法伪造。
但那位大神发现了一个非常巧妙的逻辑漏洞:
用 CLAUDE_CODE_OAUTH_TOKEN 这个环境变量登录的时候,Claude Code 不会把 accountUuid 写进 ~/.claude.json。
没有 accountUuid,/buddy 命令就会退而求其次,去读 ~/.claude.json 里的 userID 字段。而 userID 这个字段,你是可以随便改的。
具体操作步骤就是:
- 先用
claude setup-token 获取 OAuth token。
- 把
~/.claude.json 删了,清掉旧的 accountUuid。
- 写入一个最精简的配置文件,只保留
hasCompletedOnboarding 和 theme 两个字段。
- 用
CLAUDE_CODE_OAUTH_TOKEN=<token> 环境变量的方式启动 Claude Code。这一步是关键,它不会往配置文件里写 accountUuid。
- 接下来就是“暴力美学”时间了。大神写的那个
buddy-reroll.js 脚本,做的事情很简单粗暴:随机生成一个 32 字节的十六进制字符串当作假的 userID,然后用跟 Claude Code 完全一样的算法(加盐、hash、过 Mulberry32)计算这个 ID 对应什么宠物。循环个几千万次,总能撞上你想要的那只传说闪光卡皮巴拉。
- 找到以后,把这个
userID 塞进 ~/.claude.json。
- 重新打开 Claude Code,输入
/buddy。
于是,白板仙人掌就变成了传说闪光卡皮巴拉。这波逆向分析操作,我佩服得五体投地。如果你没用官方登录,用的是三方 API 的方式,原理也差不多,同样可以这么玩。
这个卡皮巴拉,会在你写代码的时候,跟你互动。

太好玩了。我现在真的觉得,Anthropic 和很多 AI 公司最不一样的地方,就在于他们的创意和对员工想法的包容性。“做梦”机制、Buddy 系统等等,他们是真的在用做游戏的心态做开发者工具。
我以前玩宝可梦的时候,闪光宝可梦的概率是 1/4096。为了刷一只闪光,有人能在同一片草丛里走上几百个小时。你说这有什么实际意义吗?没有。但跟概率较劲这件事,可能是人类最古老的浪漫之一。
现在,你在命令行里,跟 Claude Code 对话时,旁边蹲着一只闪光传说卡皮巴拉,做着贱贱的表情。你说它有用吗?也一点用都没有。但你就是忍不住看它一眼,然后嘴角上扬。
我觉得,这就够了。这就是强度党的胜利!