Guia de Modificação do Claude Code Buddy: Como Obter um Pet Lendário Brilhante
Guia de Modificação do Claude Code Buddy: Como Obter um Pet Lendário Brilhante
Em 1º de abril de 2026, a Anthropic lançou silenciosamente uma função easter egg na versão 2.1.89 do Claude Code — sistema de pets /buddy. Ao digitar /buddy no terminal, um pequeno animal em estilo ASCII "eclodirá" ao lado da sua caixa de entrada, acompanhando você na escrita de código e comentando sobre bugs.
Cada Buddy é gerado a partir do ID da conta por meio de um algoritmo determinístico, o que significa que a mesma conta sempre receberá o mesmo pet. Mas, ao modificar o userID no arquivo de configuração, podemos "re-rollar" o pet desejado. Este artigo irá detalhar os princípios do algoritmo e o script completo de modificação.
I. Visão Geral do Sistema Buddy
18 Espécies
O sistema atualmente contém 18 espécies adoráveis:
- duck - Pato (clássico Rubber Duck Debugging)
- goose - Ganso (travesso)
- blob - Gelatina (fofa e indefinida)
- cat - Gato (frio e orgulhoso)
- dragon - Dragão (protetor imponente)
- octopus - Polvo (pensamento multithread)
- owl - Coruja (mentor sábio)
- penguin - Pinguim (formal)
- turtle - Tartaruga (estável e confiável)
- snail - Caracol (devagar se faz bem feito)
- ghost - Fantasma (aparecendo e desaparecendo)
- axolotl - Axolote (fofo e curativo)
- capybara - Capivara (mestre zen)
- cactus - Cacto (planta acolhedora)
- robot - Robô (racional acima de tudo)
- rabbit - Coelho (cheio de energia)
- mushroom - Cogumelo (observador silencioso)
- chonk - Gordinho (redondinho)
5 Níveis de Raridade
- Comum - 60% de probabilidade, sem decoração de chapéu
- Incomum - 25% de probabilidade, desbloqueia chapéus
- Raro - 10% de probabilidade, mais decorações
- Épico - 4% de probabilidade, decorações exclusivas
- Lendário - 1% de probabilidade, decorações de alto nível
II. Análise Profunda do Princípio do Algoritmo
A geração do Buddy utiliza um algoritmo de aleatoriedade determinística, com o fluxo central como segue:
1. Concatenação da String Semente
const SALT = "friend-2026-401"; // Easter egg do dia da mentira em 1º de abril const key = userId + SALT;
O valor Salt friend-2026-401 contém o 401 que representa o dia 1º de abril — um easter egg cuidadosamente projetado.
2. Hash FNV-1a de 32 bits
Converte a string semente em um inteiro de 32 bits:
function hashString(s) { let h = 2166136261; // base de deslocamento FNV for (let i = 0; i < s.length; i++) { h ^= s.charCodeAt(i); h = Math.imul(h, 16777619); // FNV prime } return h >>> 0; }
3. PRNG Mulberry32
Inicializa o gerador de números pseudo-aleatórios com o valor hash: 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 é um gerador de números aleatórios leve comumente usado no desenvolvimento de jogos, adequado para geração programática e tabelas de queda de loot.
4. Extração de Raridade (Crucial!)
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; }
// Gerador de Números Aleatórios Mulberry32 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]] [[HTMLPLACEHOLDER2]]- Modificar Configuração: # Edite ~/.claude.json cat ~/.claude.json | jq '.userID = "seu novo userID" | del(.companion)' > /tmp/claude-new.json && mv /tmp/claude-new.json ~/.claude.json
- Reinicie o Claude Code, digite
/buddye você verá seu novo pet!
Cinco, Princípios de Design Anti-Trapaça
O design do Claude Code é muito engenhoso, utilizando uma arquitetura de separação entre Esqueleto (Bones) e Alma (Soul):
- Bones (Esqueleto): espécie, raridade, aparência, atributos — cada vez recalculado a partir do userID, nunca persistido
- Soul (Alma): nome, descrição de personalidade — persistido na configuração local
roll(userID) ao ler. O comentário é bem claro: editing config.companion can't fake a rarity.
Mas o userID em si pode ser modificado, e é isso que fundamenta o método deste artigo.
Seis, Conclusão
O Claude Code Buddy é uma funcionalidade de easter egg cuidadosamente projetada, que combina:
- Aleatoriedade Determinística: a clássica combinação de FNV-1a + Mulberry32
- Mecanismo de Cartas: raridade de nível 5 + 1% de brilho, a essência dos jogos Gacha
- Design Anti-Trapaça: separação entre esqueleto/alma, garantindo justiça
- Easter Egg do Dia da Mentira: valor de sal escondido com o timestamp de 1º de abril
Referências:
- Vazamento do código fonte do Claude Code 2.1.89 (acidente do mapa de origem npm)
- Juejin: "Análise Profunda do Modo Claude Code Buddy: O Algoritmo de Aleatoriedade Determinística por trás de um Cacto"- DEV.to: Eu desmontei o código fonte do Claude

