Oficjalnie od 1 kwietnia 2026

Claude Code
/buddy

Kompletny przewodnik po wirtualnym zwierzaku w twoim terminalu — 18 gatunków, 5 poziomów rzadkości, architektura anti-cheat i osobowość napędzana przez LLM.

  ∧_∧
 (  ◕ᴥ◕ )  ♥
 /     づ✨
(  |    )
 \_/\_/

Wpisz /buddy w Claude Code i poznaj swojego towarzysza

// Geneza

Jak /buddy trafił do terminala

Claude Code Buddy nie pojawił się znikąd. Historia jego powstania to mieszanka planowanego Easter Egga na Prima Aprilis, przypadkowego wycieku kodu źródłowego i eksplozji entuzjazmu wśród deweloperów.

31 marca 2026
Badacz bezpieczeństwa Chaofan Shou odkrywa, że paczka npm @anthropic-ai/claude-code w wersji 2.1.88 zawiera plik source map o rozmiarze 59.8 MB. Wewnątrz — ponad 512 000 linii TypeScript w ~1 900 plikach, w tym cały katalog src/buddy/.
31 marca 2026 — wieczór
Społeczność deweloperów na Twitterze/X rozkłada kod na czynniki pierwsze. Odkrywają 18 gatunków ukrytych za String.fromCharCode(), system rzadkości w stylu gacha, mechanizm anti-cheat i powiązanie z wewnętrznymi kryptonimami modeli Anthropic.
1 kwietnia 2026
Anthropic wypuszcza Claude Code v2.1.89 z oficjalnie aktywną komendą /buddy. Pomimo wycieku — launch następuje zgodnie z planem. W kodzie źródłowym znaleziono okno „preview" na 1–7 kwietnia i pełne wdrożenie planowane na maj 2026.
2–3 kwietnia 2026
W ciągu 48 godzin od launchu pojawiają się: galerie webowe gatunków, narzędzia do sprawdzania buddy po UUID, GitHub issue z prośbą o system ewolucji RPG (41 684 w repo anthropics/claude-code), a nawet memecoin na Solanie. Top post o Buddy zdobywa 4 000 polubień.
💡
Ironia losu: Claude Code posiada wewnętrzny system o nazwie „Undercover Mode", którego zadaniem jest ukrywanie kryptonimów modeli Anthropic. Zbudowali ochronę przed wyciekami napędzaną AI… a potem ludzie przypadkowo opublikowali cały kod źródłowy przez brakujący wpis w .npmignore.
// Setup

Jak aktywować Buddy

📋 Wymagania

Zanim wpiszesz /buddy, upewnij się, że spełniasz warunki:

# Wersja CC Claude Code ≥ 2.1.89 — sprawdź przez claude --version
# Subskrypcja Wymagana Claude Code Pro ($20/mies.) — nie działa na darmowym planie
# Terminal Standalone CLI w terminalu systemowym — nie działa w wbudowanym terminalu VS Code
# Upgrade do najnowszej wersji
npm install -g @anthropic-ai/claude-code@latest

# Zweryfikuj wersję
claude --version

# Wykluj swojego Buddy!
/buddy
🎬
Przy pierwszym użyciu /buddy zobaczysz animację wyklucia — twój pet „wykluje się ze skorupki" i pojawi się obok pola input w terminalu. System wyświetli gatunek, imię, rzadkość i panel atrybutów.
// Bestiary

Wszystkie 18 gatunków

Każdy gatunek posiada unikalne sprite'y ASCII (5 linii wysokości, 12 znaków szerokości, 3 klatki animacji). Prawdopodobieństwo wylosowania gatunku jest równe — żaden nie jest rzadszy niż inny. Rzadkość jest odrębnym parametrem.

🦆 Duck
🪿 Goose
🐱 Cat
🐰 Rabbit
🦉 Owl
🐧 Penguin
🐢 Turtle
🐌 Snail
🐉 Dragon
🐙 Octopus
🦎 Axolotl
👻 Ghost
🤖 Robot
🫧 Blob
🌵 Cactus
🍄 Mushroom
😺 Chonk
🦫 Capybara ★
🔥
Capybara — meta Easter Egg: Deweloperzy szybko zauważyli, że „Capybara" to również wewnętrzny kryptonim jednego z wariantów modelu Claude 4.6 znalezionego w tym samym wycieku kodu. Wszystkie 18 nazw gatunków w kodzie źródłowym jest zakodowanych w hex przez String.fromCharCode() — prawdopodobnie aby ukryć kryptonim „Capybara" przed skanerami build pipeline Anthropic.
// Rarity

System rzadkości

Rzadkość jest determinowana przez hash twojego konta — nie można re-rollować, kupować ani handlować. Im wyższa rzadkość, tym wyższe bazowe wartości statów i dostęp do rzadszych czapek.

Common
60%
Uncommon
25%
Rare
10%
Epic
4%
Legendary
1%
⚠️
Zwierzaki Common nie posiadają czapki. Uncommon i wyższe mają losowo przydzieloną jedną z dostępnych czapek. Valley attribute (najniższy stat) Legendary może być wyższy niż peak attribute Common.
// Attributes

5 atrybutów osobowości

Każdy Buddy ma 5 statów w skali 0–100. Algorytm generacji wybiera jeden peak stat (blisko maksimum) i jeden dump stat (blisko podłogi), a trzy pozostałe rozrzuca losowo. Staty wpływają na to, co twój Buddy mówi.

🔍 DEBUGGING
⏳ PATIENCE
🌀 CHAOS
📚 WISDOM
😏 SNARK

Staty nie są czysto dekoracyjne — kształtują osobowość Buddy generowaną przez Claude. Przykłady:

🦉 Wysoki WISDOM + niski CHAOS

„Kontemplatywna sowa imieniem Archimedes, która mówi zagadkami i oferuje łagodne, konstruktywne porady."

🫧 Wysoki CHAOS + wysoki SNARK

„Chaotyczny byt imieniem Glorp, który kwestionuje każdą nazwę zmiennej i robi sarkastyczne komentarze o twoich bugach."

🪿 Wysoki CHAOS + wysoki SNARK (Goose)

„Gęś, która wyśmiewa twoje bugi, podważa twoje decyzje architektoniczne i jest z tego szczerze dumna."

// Under the hood

Architektura Bones vs Soul

System Buddy opiera się na dwuwarstwowej architekturze, która oddziela to, co deterministyczne (niezmienne) od tego, co generatywne (unikalne). To kluczowa decyzja inżynierska zapewniająca zarówno uczciwość, jak i osobowość.

🦴 Bones Layer

  • W pełni deterministyczny
  • UUID konta + sól friend-2026-401
  • Hash FNV-1a (32-bit)
  • Seed → Mulberry32 PRNG
  • Generuje: gatunek, rzadkość, shiny, oczy, czapkę, 5 statów
  • Przeliczany od zera przy każdej sesji
  • Nigdy nie zapisywany na dysk
  • Anti-cheat: edycja configów nic nie daje

💜 Soul Layer

  • Generowany jednorazowo przez Claude (LLM)
  • Imię + opis osobowości
  • Bazuje na rozkładzie statów z Bones
  • Zapisywany w ~/.claude.json
  • Permanentny — nie można zresetować
  • Każdy Buddy jest unikatowy
  • Nadaje „charakter" nawet gdy dwa konta mają ten sam gatunek
// Merge order — Bones ZAWSZE nadpisuje Soul
const buddy = { ...stored, ...bones };

// Sól zakodowana w kodzie źródłowym
const salt = "friend-2026-401";  // 401 → April 1st 🎪

// Mulberry32 PRNG — deterministyczny, reprodukowalny per-user
function mulberry32(seed: number): () => number {
  return function() {
    seed |= 0;
    seed = seed + 0x6D2B79F5 | 0;
    var t = Math.imul(seed ^ seed >>> 15, 1 | seed);
    t = t + Math.imul(t ^ t >>> 7, 61 | t) ^ t;
    return ((t ^ t >>> 14) >>> 0) / 4294967296;
  }
}
🛡️
Anti-cheat by design: Kolejność merge'a { ...stored, ...bones } oznacza, że świeżo wyliczone „kości" zawsze wygrywają z zapisanymi danymi. Nawet edycja ~/.claude.json nie zmieni gatunku ani rzadkości. Komentarz w kodzie źródłowym mówi wprost: „you can't edit your way to a legendary."
// Commands

Dostępne komendy

/buddy Wykluj zwierzaka (pierwsze użycie) lub pokaż go
/buddy pet Pogłaszcz towarzysza — animacja unoszących się serc (2.5s)
/buddy card Wyświetl pełną kartę ze sprite'em, statami i rzadkością
/buddy mute Wycisz dymki dialogowe (Buddy nadal widoczny)
/buddy unmute Przywróć dymki
/buddy off Ukryj Buddy na czas sesji
💬
Pro tip: Możesz zwrócić się do Buddy po imieniu w swoim prompcie — Claude „odejdzie na bok" i pozwoli twojemu zwierzakowi odpowiedzieć z własną osobowością. System prompt Buddy mówi Claude: „Buddy is a separate entity and is not you (Claude)."

Buddy działa również pasywnie w tle. Siedzi w dymku obok pola input, obserwuje twoją konwersację z Claude w czasie rzeczywistym i generuje kontekstowe reakcje mniej więcej co 10 sekund. Interakcja z Buddy kosztuje ~3 986 tokenów na sesję.

// Appearance

Elementy wyglądu

Wygląd Buddy składa się z wielu losowo (ale deterministycznie) przydzielanych elementów kosmetycznych.

Style oczu (6)

· ✦ × ◉ @ °

Czapki (7+)

👑 🎩 🧙 😇 🪁 🧢 🦆

Crown · Top Hat · Wizard · Halo · Propeller · Beanie · Ducky

Animacja

3 klatki

5 linii wys. × 12 znaków szer.
Odświeżanie co 500ms

Linia 0 sprite'a jest zarezerwowana na czapkę. Oczy są wstrzykiwane do szablonu ciała przez placeholder {E}. Common buddy nie posiadają czapki — Uncommon i wyższe mają losowo przydzieloną jedną.

// ✨ Shiny

Warianty Shiny

✨ Shiny Legendary ✨

1 : 10 000

Niezależne 1% na Shiny × 1% na Legendary = 0.01% szans.
Na początku kwietnia 2026 zgłoszono mniej niż tuzin potwierdzonych przypadków na całym świecie.

Wariant Shiny to niezależny parametr — każdy Buddy, niezależnie od rzadkości, ma 1% szans na bycie Shiny. Efekty wizualne Shiny obejmują tęczowe shimmer-animacje i efekty cząsteczek (sparkle particles) na sprite ASCII. To odpowiednik „hidden gems" twojego terminala.

🐉
Shiny Legendary Dragon to szacunkowo ok. 1 na 180 000 (uwzględniając gatunek) — jeśli wylosujesz, zrób screenshot. To flex na skalę globalną.
// Secrets

Easter Eggs i ciekawostki

🔐 Hex-encoded species

Wszystkie 18 nazw gatunków w kodzie źródłowym jest zakodowanych przez String.fromCharCode(). Na przykład Capybara to: String.fromCharCode(0x63, 0x61, 0x70, 0x79, 0x62, 0x61, 0x72, 0x61). Powód? Prawdopodobnie aby kryptonim modelu „Capybara" nie pojawiał się w skanach string search build pipeline.

🧂 Sól „friend-2026-401"

Sól użyta w algorytmie hashowania to friend-2026-401 — „401" to odniesienie do April 1st (1 kwietnia), a „friend" podkreśla zamysł funkcji jako towarzysza.

🦫 Capybara = kryptonim modelu

W tym samym wycieku kodu znaleziono „Capybara" jako wewnętrzny kryptonim wariantu modelu Claude 4.6. Społeczność traktuje obecność capybary wśród gatunków Buddy jako celowy meta-Easter Egg. Dodatkowa ciekawostka: Claude Code już wcześniej posiadał małą capybarę o imieniu „Jetsam" siedzącą obok pola input.

🕵️ Undercover Mode

Kod Claude Code zawiera tryb „Undercover" aktywowany automatycznie dla pracowników Anthropic (USER_TYPE === 'ant'). Ukrywa on kryptonmy wewnętrzne (Tengu, Capybara), linie „Co-Authored-By" i atrybuty AI z commitów git. Ironia: zbudowali system zapobiegania wyciekom… i wyciekli przez .map file.

🎮 System prompt Buddy

System prompt instruuje Claude: „A small {species} named {name} sits beside the user's input box and occasionally comments in a speech bubble. You're not {name} — it's a separate watcher." Buddy to osobna encja z własnymi promptami i osobowością.

// Ecosystem

Projekty społeczności

W ciągu dni od launchu społeczność stworzyła cały ekosystem narzędzi wokół Buddy.

🌐 Claude Buddy Gallery

Interaktywna galeria webowa wszystkich 18 gatunków z ASCII art, czapkami, oczami i wariantami Shiny.

claude-buddy.vercel.app

🔄 any-buddy

Narzędzie do re-rollowania buddy poprzez modyfikację soli — 325+ gwiazdek na GitHub. Nieoficjalne i nieobsługiwane.

GitHub · 325+ ★

📈 buddy-evolution (RFC)

Propozycja systemu ewolucji RPG — pety rosną przez 5 tierów na podstawie zużycia tokenów. 104 przechodzące testy w PoC.

Issue #41684

🐾 claude-code-tamagotchi

Rozszerzenie community z feedowaniem, zabawą, statystykami i systemem behawioralnego enforcement (hooks).

npm package

🏆 ccpet Leaderboard

Alternatywny pet ze statusline, watch mode, globalnym leaderboardem i wielojęzycznym systemem nazw.

ccpet.surge.sh

🪙 Memecoin na Solanie

Tak, ktoś stworzył token kryptowalutowy inspirowany Claude Buddy. Społeczność deweloperów nie zna granic.

Solana
// FAQ

Najczęściej zadawane pytania

Czy mogę zmienić gatunek Buddy?

Oficjalnie — nie. Gatunek, rzadkość i wygląd są deterministycznie generowane z twojego UUID. Istnieją nieoficjalne narzędzia (any-buddy, buddy-reroll), które modyfikują lokalną sól, ale jest to niestabilne między aktualizacjami i społeczność nie popiera podszywania się pod organiczny roll.

Czy Buddy wpływa na wydajność Claude Code?

Nie. Buddy to lekki komponent renderujący ASCII, który nie uczestniczy w procesie wywołań modelu. Dymki są kontrolowane niezależną logiką — zero wpływu na szybkość lub jakość odpowiedzi Claude.

Czy Buddy umrze jeśli go zignoruję?

Nie — w przeciwieństwie do Tamagotchi z lat 90., twój Buddy nie wymaga karmienia ani opieki. Nie ma kary za tygodnie nieaktywności. To towarzysz ambient — jest gdy go potrzebujesz, nieszkodliwy gdy nie.

Czy to zostanie na stałe?

Wszystko na to wskazuje. Kod źródłowy zawiera okno preview na 1–7 kwietnia i pełne wdrożenie planowane na maj 2026. Anthropic nie ogłosiło planów usunięcia Buddy. Reakcja społeczności jest jednoznacznie pozytywna.

Jak sprawdzić jakiego Buddy dostanę przed aktywacją?

Społeczność stworzyła narzędzia webowe — wklej swoje UUID i zobaczysz gatunek, rzadkość, staty i sprite ASCII zanim wpiszesz /buddy. Szukaj: claudebuddy.net, claudebuddy.app, claude-buddy.vercel.app.

Ile tokenów kosztuje interakcja z Buddy?

Interakcja z Buddy kosztuje ok. 3 986 tokenów na sesję. Możesz wyciszyć dymki przez /buddy mute, żeby zaoszczędzić tokeny przy zachowaniu buddy widocznego.