Claude Code Buddy Wijzigingsgids: Hoe je een Glanzend Legendarisch Huisdier Krijgt
Claude Code Buddy Wijzigingsgids: Hoe je een Glanzend Legendarisch Huisdier Krijgt
Op 1 april 2026 heeft Anthropic stilletjes een paasei-functie gelanceerd in versie Claude Code 2.1.89 - /buddy huisdier systeem. Door /buddy in de terminal in te voeren, zal er een ASCII-stijl klein dier "uitkomen" naast je invoerveld, dat je helpt met coderen en het uiten van frustraties over bugs.
Elk Buddy wordt gegenereerd door het account-ID via een deterministisch algoritme, wat betekent dat hetzelfde account altijd hetzelfde huisdier krijgt. Maar door de userID in het configuratiebestand te wijzigen, kunnen we ons gewenste huisdier "herrollen". Dit artikel zal de algoritmeprincipes en het volledige wijzigingsscript in detail uitleggen.
I. Overzicht van het Buddy Systeem
18 Soorten Huisdieren
Het systeem bevat momenteel 18 schattige soorten:
- duck - Eend (de klassieke Rubber Duck Debugging)
- goose - Gans (ondeugend)
- blob - Jelly (zacht en amorf)
- cat - Kat (koel en trots)
- dragon - Draak (indrukwekkende beschermer)
- octopus - Octopus (multithreading denken)
- owl - Uil (wijze mentor)
- penguin - Pinguïn (in formele kleding)
- turtle - Schildpad (betrouwbaar en stabiel)
- snail - Slak (langzame maar zorgvuldige arbeid)
- ghost - Spook (onzichtbaar)
- axolotl - Axolotl (schattig en genezend)
- capybara - Capibara (zen meester)
- cactus - Cactus (warmhartige plant)
- robot - Robot (rationeel boven alles)
- rabbit - Konijn (levendig)
- mushroom - Paddenstoel (stil observerend)
- chonk - Dikke (ronde en schattige)
5 Niveaus van Zeldzaamheid
- Common (Gewoon) - 60% kans, zonder hoeddecoratie
- Uncommon (Ongewoon) - 25% kans, ontgrendelt hoed
- Rare (Zeldzaam) - 10% kans, meer decoraties
- Epic (Episch) - 4% kans, exclusieve decoraties
- Legendary (Legendarisch) - 1% kans, topdecoraties
II. Diepgaande Analyse van het Algoritme
De generatie van Buddy maakt gebruik van een deterministische willekeurige algoritme, het kernproces is als volgt:
1. Samenvoegen van Zaadstring
const SALT = "friend-2026-401"; // 1 april, aprilgrap paasei const key = userId + SALT;
De zoutwaarde friend-2026-401 vertegenwoordigt 401 op 1 april - een zorgvuldig ontworpen aprilgrap paasei.
2. FNV-1a 32-bit Hash
Zet de zaadstring om in een 32-bits geheel getal:
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
Initialiseer de pseudo-willekeurige getallengenerator met de hashwaarde: 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 is een veelgebruikte lichte PRNG in game-ontwikkeling, geschikt voor procedurele generatie en loot drop tabellen.
4. Rariteit Extractie (Belangrijk!)
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" ];- Sla het script op: Sla de bovenstaande code op als buddy-reroll.js
- Voer het script uit:
node buddy-reroll.js(je kunt een soort opgeven:node buddy-reroll.js dragon)
- Kopieer userID: Het script zal een userID van een shiny legendary Buddy uitgeven.- Configuratie Wijzigen:
# Bewerk ~/.claude.json cat ~/.claude.json | jq '.userID = "je nieuwe userID" | del(.companion)' > /tmp/claude-new.json && mv /tmp/claude-new.json ~/.claude.json
- Herstart Claude Code,typ
/buddyom je nieuwe huisdier te zien!
V. Ontwerpprincipes tegen Valsspelen
Het ontwerp van Claude Code is zeer ingenieus en maakt gebruik van een scheiding tussen Skelet (Bones) en Ziel (Soul):
- Bones (Skelet):Soort, zeldzaamheid, uiterlijk, eigenschappen——wordt elke keer opnieuw berekend op basis van userID, nooit gepersistent
- Soul (Ziel):Naam, karakterbeschrijving——wordt gepersistent opgeslagen in de lokale configuratie
roll(userID) zal overschrijven. De opmerking is heel duidelijk: editing config.companion can't fake a rarity.
Maar de userID zelf kan worden gewijzigd, en dat is de basis van de methode in dit artikel.
VI. Samenvatting
Claude Code Buddy is een zorgvuldig ontworpen easter egg-functie, die het volgende combineert:
- Deterministische Randomness:De klassieke combinatie van FNV-1a + Mulberry32
- Kaart Trek Mechanisme:5-niveau zeldzaamheid + 1% glanzend, de essentie van Gacha-spellen
- Anti-Valsspelen Ontwerp:scheiding tussen skelet/ziel, zorgt voor eerlijkheid
- April Fools' Easter Egg:de salt-waarde bevat een timestamp van 1 april
Referenties:
- Claude Code 2.1.89 broncode lek (npm source map-incident)
- Juejin: "Diepgaande Analyse van Claude Code Buddy Mode: De deterministische random algoritme achter een cactus"- DEV.to: Ik heb de Claude codebroncode uit elkaar gehaald

