Claude Code Buddy ändringsguide: Hur man får glänsande legendariska husdjur
Claude Code Buddy ändringsguide: Hur man får glänsande legendariska husdjur
Den 1 april 2026 lanserade Anthropic i tysthet en påskäggsfunktion i version 2.1.89 av Claude Code – /buddy husdjurssystemet. När du skriver in /buddy i terminalen kommer ett ASCII-stiligt litet djur att "kläckas" bredvid din inmatningsruta, och hålla dig sällskap när du skriver kod och klagar på buggar.
Varje Buddy genereras av konto-ID genom en deterministisk algoritm, vilket innebär att samma konto alltid får samma husdjur. Men genom att ändra userID i konfigurationsfilen kan vi "rerolla" det husdjur vi önskar. Denna artikel kommer att gå igenom algoritmens principer och den kompletta ändringsskriptet.
I. Översikt över Buddy-systemet
18 arter
Systemet innehåller för närvarande 18 söta arter:
- duck - Anka (klassisk Rubber Duck Debugging)
- goose - Gås (busig)
- blob - Gelé (mjukt och odefinierat)
- cat - Katt (kylig och stolt)
- dragon - Draken (mäktig beskyddare)
- octopus - Bläckfisk (multitasking)
- owl - Uggla (vis mentor)
- penguin - Pingvin (formellt klädd)
- turtle - Sköldpadda (stabil och pålitlig)
- snail - Snigel (långsam men noggrann)
- ghost - Spöke (svårfångad)
- axolotl - Axolotl (söt och helande)
- capybara - Kapybara (zenmästare)
- cactus - Kaktus (värmande växt)
- robot - Robot (rationell överlägsenhet)
- rabbit - Kanin (livlig)
- mushroom - Svamp (tyst observatör)
- chonk - Tjockis (rund och söt)
5 nivåer av sällsynthet
- Common (Vanlig) - 60% chans, utan hattdekorationer
- Uncommon (Ovanlig) - 25% chans, låser upp hattar
- Rare (Sällsynt) - 10% chans, fler dekorationer
- Epic (Episk) - 4% chans, exklusiva dekorationer
- Legendary (Legendarisk) - 1% chans, toppdekorationer
II. Djupgående analys av algoritmens principer
Genereringen av Buddy använder en deterministisk slumpmässig algoritm, kärnprocessen är som följer:
1. Sammanfogning av frösträngar
const SALT = "friend-2026-401"; // 1 april aprilskämt const key = userId + SALT;
Saltvärdet friend-2026-401 representerar 401, vilket står för den 1 april – ett noggrant utformat aprilskämt.
2. FNV-1a 32-bit hash
Konvertera frösträngen till ett 32-bit heltal:
function hashString(s) { let h = 2166136261; // FNV offset basis for (let i = 0; i < s.length; i++) { h ^= s.charCodeAt(i); h = Math.imul(h, 16777619); // FNV prime } return h >>> 0; }
3. Mulberry32 PRNG
Initiera den pseudorandomiserade talgeneratorn med hashvärdet: function mulberry32(seed) { let a = seed >>> 0; return function() { a |= 0; a = (a + 0x6d2b79f5) | 0; let t = Math.imul(a ^ (a >>> 15), 1 | a); t = (t + Math.imul(t ^ (t >>> 7), 61 | t)) ^ t; return ((t ^ (t >>> 14)) >>> 0) / 4294967296; }; }
Mulberry32 är en lättviktig PRNG som ofta används inom spelutveckling, lämplig för procedurgenerering och loot-drop-tabeller.
4. Sällsynthetsdragning (Viktigt!)
const RARITIES = ["common", "uncommon", "rare", "epic", "legendary"]; const RARITYWEIGHTS = { common: 60, uncommon: 25, rare: 10, epic: 4, legendary: 1 };
function rollRarity(rng) { const total = 60 + 25 + 10 + 4 + 1; // = 100 let roll = rng() total; for (const rarity of RARITIES) { roll -= RARITYWEIGHTS[rarity]; if (roll < 0) return rarity; } return "common"; }
重要:RARITIES 数组的顺序必须是从低到高,这是加权随机选择的标准实现。
三、完整 Reroll 脚本
以下脚本可以搜索并生成闪光传说级 Buddy 的 userID:
// Claude Code Buddy Reroll 脚本 // 基于 Claude Code 源码逆向分析
// FNV-1a 32-bit hash function hashString(s) { let h = 2166136261; for (let i = 0; i < s.length; i++) { h ^= s.charCodeAt(i); h = Math.imul(h, 16777619); } return h >>> 0; }
// Mulberry32 PRNG function mulberry32(seed) { let a = seed >>> 0; return function() { a |= 0; a = (a + 0x6d2b79f5) | 0; let t = Math.imul(a ^ (a >>> 15), 1 | a); t = (t + Math.imul(t ^ (t >>> 7), 61 | t)) ^ t; return ((t ^ (t >>> 14)) >>> 0) / 4294967296; }; }
const SPECIES = [ "duck", "goose", "blob", "cat", "dragon", "octopus", "owl", "penguin", "turtle", "snail", "ghost", "axolotl", "capybara", "cactus", "robot", "rabbit", "mushroom", "chonk" ];[[HTMLPLACEHOLDER0]] [[HTMLPLACEHOLDER1]]
const RARITIES = ["common", "uncommon", "rare", "epic", "legendary"]; const RARITYWEIGHTS = { common: 60, uncommon: 25, rare: 10, epic: 4, legendary: 1 }; const SALT = "friend-2026-401";
function pick(rng, arr) { return arr[Math.floor(rng() arr.length)]; }
function rollRarity(rng) { const total = Object.values(RARITYWEIGHTS).reduce((a, b) => a + b, 0); let roll = rng() total; for (const rarity of RARITIES) { roll -= RARITY_WEIGHTS[rarity]; if (roll < 0) return rarity; } return "common"; }
function testUserId(userId) { const key = userId + SALT; const seed = hashString(key); const rng = mulberry32(seed); const rarity = rollRarity(rng); const species = pick(rng, SPECIES); const shiny = rng() < 0.01; return { rarity, species, shiny }; }
function randomUserId() { let id = ""; for (let i = 0; i < 64; i++) { id += Math.floor(Math.random() 16).toString(16); } return id; }
// Sök efter shiny legendary console.log("Söker efter shiny legendary Buddy...\n"); const targetSpecies = process.argv[2] || null;
while (true) { const userId = randomUserId(); const result = testUserId(userId);
if (result.rarity === "legendary" && result.shiny) { if (!targetSpecies || result.species === targetSpecies) { console.log("Hittad!"); console.log("Art:", result.species); console.log("Sällsynthet: Legendary"); console.log("Shiny: Ja!"); console.log("userID:", userId); break; } } }- Ändra konfiguration: # Redigera ~/.claude.json cat ~/.claude.json | jq '.userID = "din nya userID" | del(.companion)' > /tmp/claude-new.json && mv /tmp/claude-new.json ~/.claude.json
- Starta om Claude Code,skriv
/buddyför att se ditt nya husdjur!
Fem, principer för fuskdesign
Claude Code är designat på ett mycket smart sätt, med en arkitektur som använder skelett (Bones) och själ (Soul) separerat:
- Bones(skelett):art, sällsynthet, utseende, attribut——beräknas om varje gång från userID, aldrig persistent
- Soul(själ):namn, karaktärsbeskrivning——persistent i lokal konfiguration
roll(userID) vid läsning. Kommentaren är mycket tydlig: editing config.companion can't fake a rarity.
Men userID kan ändras, och det är principen bakom metoden i denna artikel.
Sex, sammanfattning
Claude Code Buddy är en välutformad påskäggsfunktion som kombinerar:
- Deterministisk slumpmässighet:FNV-1a + Mulberry32s klassiska kombination
- Kortdragning mekanism:5 nivåer av sällsynthet + 1% glittrande, essensen av Gacha-spel
- Fuskdesign:skelett/själ separerat, säkerställer rättvisa
- Aprilskämt påskägg:saltvärdet döljer en tidsstämpel från den 1 april
Referensmaterial:
- Claude Code 2.1.89 källkodsläckage (npm source map-incident)
- Juejin: "Djupdykning i Claude Code Buddy-läget: en kaktus bakom den deterministiska slumpmässiga algoritmen"- DEV.to: Jag rev isär källkoden för Claude

