Background Principles
Claude Code's /buddy pet system principles:
- Bones: Appearance, species, rarity, and attributes are all deterministically generated by
hash(userID + SALT), computed in real time on each startup - Soul: Name and personality, generated by the model, stored in
~/.claude.json'scompanionfield - SALT:
'friend-2026-401'(Claude Code 2.1.89+) - reroll principle: Brute-force search for a new 15-character salt so that
hash(userID + newSalt)rolls the target pet, then patch the Claude Code binary
userID source
config.oauthAccount?.accountUuid // OAuth 登入用戶
?? config.userID // API Key 用戶(存在 ~/.claude.json)
?? 'anon'
The Python script automatically detects the userID, applicable to both OAuth and API Key users.
Procedure
Step 1: Confirm Python is installed
py --version # Windows
python3 --version # Mac / Linux
Bun requires no separate installation: If Claude Code is already installed, Bun is usually already on the system. If
bun --versioncannot be executed, then install it according to the instructions below.Windows(PowerShell):
powershell -c "irm bun.sh/install.ps1 | iex"Mac / Linux:curl -fsSL https://bun.sh/install | bashAfter installationreopen the terminalbefore continuing.
Step 2: Run the reroll script
cd <skill-path>/scripts/claude-pet-rebirth
# Windows
py reroll.py --species owl --rarity legendary
# Mac / Linux
python3 reroll.py --species owl --rarity legendary
Common options:
# 指定眼睛 + 帽子 + 閃光
py reroll.py --species dragon --rarity legendary --eye ✦ --hat wizard --shiny
# 指定最強屬性
py reroll.py --species cat --rarity epic --peak PATIENCE
# 指定名字(省略則腳本結束前詢問)
py reroll.py --species owl --rarity legendary --name Nipple
Step 3: Restart and claim
- Close the Claude Code main program (Terminal / Desktop App); the VSCode extension does not need to be closed
- Reopen normally
- Enter
/buddyto claim the new pet
Available species
| Species | Chinese name | Emoji |
|---|---|---|
| duck | Duckling | 🦆 |
| goose | Goose | 🪿 |
| blob | Slime | 🫧 |
| cat | Kitty | 🐱 |
| dragon | Dragon | 🐉 |
| octopus | Octopus | 🐙 |
| owl | Owl | 🦉 |
| penguin | Penguin | 🐧 |
| turtle | Turtle | 🐢 |
| snail | Snail | 🐌 |
| ghost | Ghost | 👻 |
| axolotl | Axolotl | 🦎 |
| capybara | Capybara | 🦫 |
| cactus | Cactus | 🌵 |
| robot | Robot | 🤖 |
| rabbit | Bunny | 🐰 |
| mushroom | Mushroom | 🍄 |
| chonk | Fat Cat | 🐈 |
Rarity (from low to high): common(60%) → uncommon(25%) → rare(10%) → epic(4%) → legendary(1%)
Option descriptions
| Option | Description | Default |
|---|---|---|
--species |
Species | Any |
--rarity |
Rarity | legendary |
--eye |
Eyes (· ✦ × ◉ @ °) |
Any |
--hat |
Hat (none/crown/tophat/propeller/halo/wizard/beanie/tinyduck) | Any |
--shiny |
Shiny version (about 1% chance, greatly increases search time) | false |
--peak |
Strongest attribute (DEBUGGING/PATIENCE/CHAOS/WISDOM/SNARK) | Any |
--dump |
Weakest attribute | Any |
--name |
Pet name | Asked before the script ends |
⚠️ The more conditions, the slower the search: If legendary + shiny + specified eyes + hat + peak are all specified at the same time, the expected number of attempts can reach tens of millions. It is recommended to prioritize specifying species and rarity, and leave other conditions optional.
Claude Code assisted execution
Step 1: Confirm Python
py --version 2>&1 || python3 --version 2>&1 || python --version 2>&1
Step 2: Ask the user for preferences (if not specified in the conversation)
List all options at once for the user to choose:
Species(Required):
🦆 duck 🪿 goose 🫧 blob 🐱 cat
🐉 dragon 🐙 octopus 🦉 owl 🐧 penguin
🐢 turtle 🐌 snail 👻 ghost 🦎 axolotl
🦫 capybara 🌵 cactus 🤖 robot 🐰 rabbit
🍄 mushroom 🐈 chonk
(不指定則任意)
Rarity(Required):
⚪ common 🟢 uncommon 🔵 rare 🟣 epic 🟡 legendary(預設)
Eyes(Optional):
· ✦ × ◉ @ °
(不指定則任意)
Hat(Optional):
none(無) crown(皇冠) tophat(大禮帽) propeller(螺旋帽)
halo(光環) wizard(巫師帽) beanie(毛帽) tinyduck(小鴨帽)
(不指定則任意)
Shiny(Optional):
yes / no(預設 no,開啟後搜尋時間大幅增加)
Strongest stat(Optional):
DEBUGGING PATIENCE CHAOS WISDOM SNARK
(不指定則任意)
Name(Required)
Step 3: Remind to close Claude Code
⚠️ The Claude Code main program must be closed before execution(Terminal / Desktop App),the VSCode extension does not need to be closed.,Otherwise, the binary being occupied will cause the patch to fail.
Step 4: Combine the command and execute
Combine the preferences into reroll.py parameters, pass in --name to avoid interactive input:
cd <skill-path>/scripts/claude-pet-rebirth
py reroll.py --species <物種> --rarity legendary --name <名字>
Step 5: Prompt to restart and execute /buddy
Common issues
Q: After applying, does restarting still show the old pet?
A: Confirm that the binary has been successfully patched (shows verified=True), and that the companion field has been updated.
Q: The search runs for a long time and can't find anything? A: The more conditions, the slower it is. With legendary + shiny + specified eyes and hat and peak all specified, the probability is about 1 in 40 million, requiring several minutes. It is recommended to reduce the constraints.
Q: What if SALT changes?
A: Update scripts/claude-pet-rebirth/patcher.py in ORIGINAL_SALT constant.
Q: On Windows, python not found?
A: Use py command instead (Windows Python Launcher).