Claude Code Buddy Úprava: Ako získať lesklého legendárneho domáceho maznáčika

4/2/2026
6 min read

Claude Code Buddy Úprava: Ako získať lesklého legendárneho domáceho maznáčika

  • apríla 2026, Anthropic potichu spustil funkciu easter egg v verzii Claude Code 2.1.89 — /buddy systém domácich maznáčikov. Po zadaní /buddy do terminálu sa vedľa vášho vstupného poľa "vyliahne" malá ASCII štýlová zvieratko, ktoré vás bude sprevádzať pri písaní kódu a komentovaní chýb.
  • Každý Buddy je generovaný pomocou ID účtu prostredníctvom deterministického algoritmu, čo znamená, že ten istý účet vždy získa toho istého domáceho maznáčika. Ale zmenou userID v konfiguračnom súbore môžeme "prehodnotiť" obľúbeného domáceho maznáčika. Tento článok podrobne popisuje princíp algoritmu a kompletný skript na úpravu.

    I. Prehľad systému Buddy

    18 druhov zvierat

    Systém momentálne obsahuje 18 roztomilých druhov:

    • duck - kačka (klasické Rubber Duck Debugging)

    • goose - husa (nezbedná)

    • blob - želé (mäkké a neforemné)

    • cat - mačka (chladná a hrdá)

    • dragon - drak (mocný strážca)

    • octopus - chobotnica (viacvláknové myslenie)

    • owl - sova (múdry mentor)

    • penguin - tučniak (formálne oblečený)

    • turtle - korytnačka (stabilná a spoľahlivá)

    • snail - slimák (pomaly, ale precízne)

    • ghost - duch (neviditeľný)

    • axolotl - axolotl (roztomilé a liečivé)

    • capybara - kapybara (zen majster)

    • cactus - kaktus (teplé rastliny)

    • robot - robot (racionalita na prvom mieste)

    • rabbit - zajac (skákajúci)

    • mushroom - huba (tichý pozorovateľ)

    • chonk - tučný (guľatý)

    5 úrovní vzácnosti

    • Common (bežný) - 60% pravdepodobnosť, bez ozdôb na klobúku

    • Uncommon (zriedkavý) - 25% pravdepodobnosť, odomknutie klobúka

    • Rare (vzácny) - 10% pravdepodobnosť, viac ozdôb

    • Epic (epický) - 4% pravdepodobnosť, exkluzívne ozdoby

    • Legendary (legendárny) - 1% pravdepodobnosť, najvyššie ozdoby
    Okrem toho existuje samostatná 1% pravdepodobnosť lesklého (Shiny), lesklé domáce maznáčiky majú dúhovú animáciu! Pravdepodobnosť lesklého legendárneho maznáčika je 1% × 1% = 0.01%, približne jedna z desiatich tisíc.

    II. Hlboká analýza princípu algoritmu

    Generovanie Buddy využíva deterministický náhodný algoritmus, základný proces je nasledovný:

    1. Spojenie reťazca semena

    const SALT = "friend-2026-401"; // 1. apríla aprílový žart const key = userId + SALT;

    Hodnota Salt friend-2026-401 obsahuje 401, čo predstavuje 1. apríl — starostlivo navrhnutý aprílový žart.

    2. FNV-1a 32-bitový hash

    Prevod reťazca semena na 32-bitové celé číslo:

    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

    Inicializácia generátora pseudonáhodných čísel pomocou hash hodnoty: 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 je ľahký PRNG (pseudo-náhodný generátor čísel) bežne používaný vo vývoji hier, vhodný na procedurálne generovanie a tabuľky loot dropov.

    4. Vzorkovanie vzácnosti (kľúčové!)

    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" ];const RARITIES = ["common", "uncommon", "rare", "epic", "legendary"];\nconst RARITYWEIGHTS = { common: 60, uncommon: 25, rare: 10, epic: 4, legendary: 1 };\nconst SALT = "friend-2026-401";\n\nfunction pick(rng, arr) {\n return arr[Math.floor(rng() arr.length)];\n}\n\nfunction rollRarity(rng) {\n const total = Object.values(RARITYWEIGHTS).reduce((a, b) => a + b, 0);\n let roll = rng() total;\n for (const rarity of RARITIES) {\n roll -= RARITYWEIGHTS[rarity];\n if (roll < 0) return rarity;\n }\n return "common";\n}\n\nfunction testUserId(userId) {\n const key = userId + SALT;\n const seed = hashString(key);\n const rng = mulberry32(seed);\n const rarity = rollRarity(rng);\n const species = pick(rng, SPECIES);\n const shiny = rng() < 0.01;\n return { rarity, species, shiny };\n}\n\nfunction randomUserId() {\n let id = "";\n for (let i = 0; i < 64; i++) {\n id += Math.floor(Math.random() 16).toString(16);\n }\n return id;\n}\n\n// Hľadanie lesklých legiend\nconsole.log("Hľadanie lesklých legiend Buddy...\n");\nconst targetSpecies = process.argv[2] || null;\n\nwhile (true) {\n const userId = randomUserId();\n const result = testUserId(userId);\n\n if (result.rarity === "legendary" && result.shiny) {\n if (!targetSpecies || result.species === targetSpecies) {\n console.log("Našiel som to!");\n console.log("Druh:", result.species);\n console.log("Rarita: Legenda");\n console.log("Lesklý: Áno!");\n console.log("userID:", userId);\n break;\n }\n }\n}\n\n## Štyri, kroky použitia\n\n- Uložiť skript: Uložte vyššie uvedený kód ako buddy-reroll.js\n\n- Spustiť skript: node buddy-reroll.js (môžete špecifikovať druh: node buddy-reroll.js dragon)\n\n- Kopírovať userID: Skript vygeneruje userID pre lesklého legendárneho Buddyho.- Úprava konfigurácie# Upravte ~/.claude.json cat ~/.claude.json | jq '.userID = "tvojnový_userID" | del(.companion)' > /tmp/claude-new.json && mv /tmp/claude-new.json ~/.claude.json

    • Reštartujte Claude Code,zadajte /buddy a uvidíte nového maznáčika!

    Päť, princíp dizajnu proti podvádzaniu

    Dizajn Claude Code je veľmi premyslený, využíva architektúru oddelenia kostry (Bones) a duše (Soul)

    • Bones(kostra):druh, vzácnosť, vzhľad, atribúty——každý raz sa prepočítava z userID, nikdy sa neuchováva

    • Soul(duša):meno, popis osobnosti——uchováva sa v miestnej konfigurácii
    To znamená, že aj keď priamo upravíte pole rarity v konfiguračnom súbore, systém ho pri čítaní prepisuje výsledkom roll(userID). Komentár je veľmi jasný:editing config.companion can't fake a rarity.

    Ale userID samotný je možné upraviť, čo je princípom metódy v tomto článku.

    Šesť, zhrnutie

    Claude Code Buddy je starostlivo navrhnutá easter egg funkcia, ktorá kombinuje:

    • Deterministická náhoda:klasická kombinácia FNV-1a + Mulberry32

    • Mechanizmus ťahania kariet:5 úrovní vzácnosti + 1% lesklé, esencia Gacha hier

    • Dizajn proti podvádzaniu:oddelenie kostry/duše, zabezpečenie spravodlivosti

    • Aprílový žart:salt hodnota skrýva časovú pečiatku 1. apríla
    Teraz to vyskúšajte!Prajem vám, aby ste získali svoj obľúbený lesklý legendárny Buddy!

    Referenčné materiály:

    • Únik zdrojového kódu Claude Code 2.1.89 (nehoda npm source map)

    • Juejin: „Hlboké preskúmanie režimu Claude Code Buddy: deterministický náhodný algoritmus za kaktusom“- DEV.to: Roztrhol som zdrojový kód Claude
    Published in Technology

    You Might Also Like