Claude Code /buddy 寵物重 Roll 完整攻略 - 刷到你的夢幻 Legendary Shiny
/buddy 敲下去,跳出一隻 common 的 snail。你盯著那隻蝸牛三秒鐘,心想:我想要的是 legendary shiny dragon,不是這個。
問題是,官方沒有給重新 Roll 的入口。寵物的外觀、物種、稀有度全部由 hash(userID + SALT) 確定性生成——同一個 userID 永遠會得到同一隻寵物。想換?得從底層動手。
這篇把整個寵物系統的原理拆給你看,然後教你怎麼用腳本暴力搜尋到你想要的組合,最後寫進設定檔完成替換。手動派和懶人派的方法都有。
寵物系統長什麼樣
兩層架構:骨架跟靈魂
寵物分成兩層,儲存方式完全不同:
Bones(骨架)——外觀、物種、稀有度、屬性值。不存在任何檔案裡,每次都是由 hash(userID + SALT) 即時計算出來的。換句話說,只要 userID 一樣,骨架就永遠一樣。
Soul(靈魂)——名字和性格。存在 ~/.claude.json 的 companion 欄位裡。這部分可以隨便改。
1 | // src/buddy/companion.ts |
注意優先順序:accountUuid 優先於 userID。如果你是 OAuth 登入的使用者,buddy 預設會拿 accountUuid 當種子,不是 userID。這個細節後面會很重要。
userID 到底是啥
首次啟動 Claude Code 時隨機生成的 32 位元組 hex 字串。用途只有三個:遙測分析、A/B 分桶、buddy 種子。跟你的對話歷史、API key、本地設定完全無關。換掉它,什麼功能都不會受影響。
18 種物種 x 5 稀有度
物種清單
duck、goose、blob、cat、dragon、octopus、owl、penguin、turtle、snail、ghost、axolotl、capybara、cactus、robot、rabbit、mushroom、chonk——總共 18 種。
稀有度與機率
| 稀有度 | 權重 | 機率 |
|---|---|---|
| common | 60 | 60% |
| uncommon | 25 | 25% |
| rare | 10 | 10% |
| epic | 4 | 4% |
| legendary | 1 | 1% |
其他可變屬性
眼睛有 6 種:· ✦ × ◉ @ °
帽子有 8 種:none、crown、tophat、propeller、halo、wizard、beanie、tinyduck
屬性值有 5 項:DEBUGGING / PATIENCE / CHAOS / WISDOM / SNARK,各自 0-100 隨機。
Shiny 閃光版:1% 機率。疊上 legendary 的 1%,想拿到一隻 legendary shiny 特定物種的機率大概是十萬分之五——不靠腳本基本上沒戲。
Hash 演算法的坑:必須用 Bun
Claude Code 的二進位檔是 Bun 打包的,hash 用的是 Bun.hash()。你可能想用 Node.js 跑搜尋腳本省事,但 Node.js 的 FNV-1a fallback 跟 Bun.hash() 的結果完全不同。
1 | function hashString(s) { |
用 Node.js 跑出來的 userID 寫進設定,領養到的寵物會跟你預期的完全不同。踩這個坑會浪費你一整個下午,別問我怎麼知道的。
結論:搜尋腳本必須用 bun 執行。
手動方法:完整操作流程
適合想完全理解原理、不依賴第三方工具的人。
Step 1:建立搜尋腳本
建立 ~/buddy-reroll.js:
1 | #!/usr/bin/env bun |
把 TARGET_SPECIES、TARGET_RARITY、REQUIRE_SHINY 改成你要的組合。不要求 shiny 的話把條件拿掉,速度會快很多。
Step 2:用 Bun 跑搜尋
1 | bun ~/buddy-reroll.js |
Legendary 通常 50 萬次迭代內就能找到,幾秒鐘的事。Legendary + Shiny 則需要幾千萬次,跑個幾分鐘。找到後記下 UID。
Step 3-9:寫入設定檔
1 | # Step 3:備份 |
為什麼 Step 6 要用環境變數而不是正常登入?因為正常 OAuth 登入會把 accountUuid 寫進設定檔,而 companionUserId() 會優先用 accountUuid,你辛苦搜來的 userID 就被忽略了。用環境變數登入不會寫 accountUuid,/buddy 才會改用 userID 當種子。
番外:社群 CLI 工具
不想自己寫腳本?社群已經有幾款開源工具把整個流程包好了。這是給一般使用者最簡單的路線——一行指令就能換到你想要的寵物,連 OAuth Token 都不用碰。
為什麼會有現成工具?
手動方法的核心是「換 userID 種子」,但需要繞開 accountUuid 優先權,所以要操作環境變數和重設設定檔。社群工具走的是另一條路:不換 userID,改去暴力搜尋一個替代的 salt 字串,讓 hash(原 accountUuid + 新 salt) 符合你的目標,然後直接修補 Claude Code 的 binary。使用者不用碰 ~/.claude.json,也不用設環境變數。
三大工具一覽
| 工具 | 風格 | 特色 |
|---|---|---|
| any-buddy | 互動式 TUI | 23 個預設組合、即時 ASCII 預覽、支援多寵物切換 |
| buddy-reroll | CLI 為主 | 輕量直接、Bun 加速、--doctor 系統檢查 |
| cc-buddy | 雙模式 | EN/中文 UI、物種圖鑑、自我測試 |
方法 A:any-buddy(推薦初心者)
互動式 TUI,會引導你一步步完成所有步驟,每步都有即時 ASCII 預覽,適合喜歡視覺化操作的人。
安裝與啟動
1 | npx any-buddy@latest |
第一次執行會自動下載,無需手動安裝。也可以全域安裝:
1 | npm install -g any-buddy |
互動模式
直接執行 any-buddy 進入 TUI,會讓你選擇:
- Build — 自己挑物種、稀有度、眼睛、帽子
- Browse presets — 從 23 個預設組合挑選(如 “Arcane Dragon”)
- Switch buddies — 切換已儲存的寵物
選完後工具會自動執行 salt 搜尋、修補 binary、設定 hook,全程在 TUI 內完成。
一行指令模式
1 | # 傳說級閃光龍,戴巫師帽,自訂名字 Draco |
-y 旗標跳過所有確認,適合寫進 script。
常用指令速查
| 動作 | 指令 |
|---|---|
| 看目前寵物 | any-buddy current |
| 預覽不套用 | any-buddy preview |
| 還原原始寵物 | any-buddy restore |
| 更新後重新套用 | any-buddy apply |
| 切換已存寵物 | any-buddy buddies |
| 重新孵化 | any-buddy rehatch |
CLI 旗標完整列表
1 | -s, --species <name> 物種(duck, cat, dragon, ...,共 18 種) |
方法 B:buddy-reroll(輕量派)
沒有 TUI,純 CLI,適合喜歡一行指令搞定、寫進 dotfile 的人。底層使用 wyhash,跟 /buddy 的 hash 演算法完全一致。
安裝與啟動
1 | # Bun(推薦,原生 hash 較快) |
直接指定屬性
1 | # 全部指定 |
Hook 持久化(重要)
Claude Code 自動更新會重設寵物,啟用 hook 自動恢復:
1 | buddy-reroll --hook # 啟用持久化(執行一次即可) |
啟用後,每次 Claude 啟動都會自動套用你選的寵物。
系統檢查與還原
1 | buddy-reroll --doctor # 檢查安裝路徑、寫入權限、設定狀態 |
方法選擇建議
| 你的情況 | 推薦方法 |
|---|---|
| 只想快速換一隻寵物,喜歡視覺操作 | any-buddy(互動式預覽最直觀) |
| 喜歡 CLI、想寫進 dotfile | buddy-reroll(一行搞定) |
| 想完全掌握原理、不依賴第三方 | 手動腳本(見上方「完整操作流程」) |
| Team / Pro 帳號 | any-buddy 或 buddy-reroll(已內建 accountUuid trap fix) |
注意事項
這篇基於 Claude Code 2.1.89+ 版本分析。如果後續版本更改 SALT 值或 hash 演算法,腳本需要對應調整。
Claude Code 自動更新會覆蓋 binary,社群工具改的東西就沒了。務必啟用 --hook 持久化。手動腳本的使用者因為是改 userID 而不是改 binary,不受自動更新影響。
社群工具都是 MIT 授權、公開原始碼,但會修改 Claude Code 的 binary。介意的人請用手動腳本方法,只改設定檔不碰 binary。
macOS 上修改 binary 後需要 re-sign,社群工具都會自動處理。環境需求:Node.js >= 20,或安裝 Bun runtime。
Shiny 搜尋很慢——1% 機率疊上 legendary 的 1% 再疊上特定物種的 1/18,期望搜尋次數大約是 18 萬次。耐心等幾分鐘就好,Bun 的速度夠快。
一隻 legendary shiny capybara 戴著巫師帽,WISDOM 95 分。值得花五分鐘搞定嗎?值得。









