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ê enquanto escreve código e reclama de 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 obterá 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 de Pets
O sistema atualmente inclui 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 (vestido formal)
- turtle - Tartaruga (sólido e confiável)
- snail - Caracol (trabalho lento e cuidadoso)
- 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, o fluxo central é o seguinte:
1. Concatenação da String Semente
const SALT = "friend-2026-401"; // Easter egg do dia da mentira, 1 de abril const key = userId + SALT;
O valor Salt friend-2026-401 contém o 401 que representa 1 de abril — um easter egg cuidadosamente projetado para o dia da mentira.
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 pseudoaleató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 PRNG leve comumente usado no desenvolvimento de jogos, adequado para geração procedural e tabelas 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; }
// PRNG 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]]- 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
/buddypara ver seu novo pet!
Cinco, Princípios de Design Anti-Trapaça
O design do Claude Code é muito engenhoso, adotando 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 essa é a base do 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
- Mecânica 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 de Dia da Mentira: valor de salt escondido com o timestamp de 1º de abril
Referências:
- Vazamento do código fonte do Claude Code 2.1.89 (acidente do npm source map)
- Juejin: "Investigando o 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

