skip to content
variety.is

Reverse Engineering Claude Code's 2026 April Fools

/ 2 min read

Table of Contents

When Claude Code first came out there was a little easter egg discoverable by looking through the source on release day: if you asked about swag, a Google Form would pop up. The Claude Code team actually hand-packed the mailers for the first 1k folks.

Claude Code’s source code was leaked which leads to another easter egg, their April Fools joke this year: a “tamagotchi”-style buddy strangely reminiscent of Figma’s April Fools in 2025, FigPals.

Thanks to the source leak, we can reverse engineer how the buddy system works. Let’s hunt some pokemon buddies:

The Buddy System

Buddies are broken down by rarity, species, eye, hat, shiny, and stats:

Hat none , crown , tophat , propeller , halo , wizard , beanie , tinyduck
Species duck , goose , blob , cat , dragon , octopus , owl , penguin , turtle , snail , ghost , axolotl , capybara , cactus , robot , rabbit , mushroom , chonk
Eyes · , , × , , @ , °
Shiny true , false
Stats debugging , patience , chaos , wisdom , snark
Rarity common , uncommon , rare , epic , legendary

Stats and shiny appear to be dead code, rolled but never consumed. Here’s what they all actually look like:

Your buddy is determined strictly by your userId and a fixed SALT:

export function companionUserId(): string {
const config = getGlobalConfig();
return config.oauthAccount?.accountUuid ?? config.userID ?? "anon";
}
export function roll(userId: string): Roll {
const key = userId + SALT;
if (rollCache?.key === key) return rollCache.value;
const value = rollFrom(mulberry32(hashString(key)));
rollCache = { key, value };
return value;
}

Notice mulberry32 being used: a 32-bit deterministic pseudo-random number generator. It is not cryptographically secure, but the source indicates it is “good enough for picking ducks”. Because it operates in a 32-bit space, there are exactly 2^32 (about 4.29 billion) possible PRNG states, which is trivial for a modern CPU to brute force in seconds. Calling rollFrom in a a simple loop to iterate from 0 to 2^32, you can determine seeds that result in legendaries. There’s 42,989,564 possible legendaries, which means a 1% chance of your userId being legendary.

”God” Rolls

Brute-forcing all 2^32 seeds and filtering for legendary + shiny + at least one stat at 100, here are the top 20 god-roll UUIDs. Can you “fake” your config.oauthAccount?.accountUuid / config.userID in ~/.claude.json to one of these values to achieve these buddies? We’ll find out when the buddy system is actually released tomorrow!

   (   )    
   /\  /\   
  ((@)(@))  
  (  ><  )  
   `----´   
   (   )    
   /\  /\   
  ((@)(@))  
  (  ><  )  
   .----.   
   (   )    
   /\  /\   
  ((@)(-))  
  (  ><  )  
   `----´   
owl + halo ✦ shiny
★★★★★ #1
debugging
86
patience
51
chaos
80
wisdom
71
snark
100
   \^^^/    
   _,--._   
  ( @  @ )  
 /[______]\ 
  ``    ``  
   \^^^/    
   _,--._   
  ( @  @ )  
 /[______]\ 
   ``  ``   
   \^^^/    
   _,--._   
  ( @  @ )  
 /[======]\ 
  ``    ``  
turtle + crown ✦ shiny
★★★★★ #2
debugging
89
patience
74
chaos
76
wisdom
45
snark
100
   (___)    
     (°>    
     ||     
   _(__)_   
    ^^^^    
   (___)    
    (°>     
     ||     
   _(__)_   
    ^^^^    
   (___)    
     (°>>   
     ||     
   _(__)_   
    ^^^^    
goose + beanie ✦ shiny
★★★★★ #3
debugging
100
patience
67
chaos
41
wisdom
88
snark
84
            
   .----.   
  ( ×  × )  
  (______)  
  /\/\/\/\  
            
   .----.   
  ( ×  × )  
  (______)  
  \/\/\/\/  
     o      
   .----.   
  ( ×  × )  
  (______)  
  /\/\/\/\  
octopus ✦ shiny
★★★★★ #4
debugging
60
patience
45
chaos
100
wisdom
88
snark
79
    /^\     
    __      
  <(◉ )___  
   (  ._>   
    `--´    
    /^\     
    __      
  <(◉ )___  
   (  ._>   
    `--´~   
    /^\     
    __      
  <(◉ )___  
   (  .__>  
    `--´    
duck + wizard ✦ shiny
★★★★★ #5
debugging
88
patience
61
chaos
100
wisdom
68
snark
50
    /^\     
     (✦>    
     ||     
   _(__)_   
    ^^^^    
    /^\     
    (✦>     
     ||     
   _(__)_   
    ^^^^    
    /^\     
     (✦>>   
     ||     
   _(__)_   
    ^^^^    
goose + wizard ✦ shiny
★★★★★ #6
debugging
65
patience
83
chaos
69
wisdom
49
snark
100
            
 .-o-OO-o-. 
(__________)
   |✦  ✦|   
   |____|   
            
 .-O-oo-O-. 
(__________)
   |✦  ✦|   
   |____|   
   . o  .   
 .-o-OO-o-. 
(__________)
   |✦  ✦|   
   |____|   
mushroom ✦ shiny
★★★★★ #7
debugging
100
patience
69
chaos
46
wisdom
67
snark
84
            
   .----.   
  ( ◉  ◉ )  
  (______)  
  /\/\/\/\  
            
   .----.   
  ( ◉  ◉ )  
  (______)  
  \/\/\/\/  
     o      
   .----.   
  ( ◉  ◉ )  
  (______)  
  /\/\/\/\  
octopus ✦ shiny
★★★★★ #8
debugging
59
patience
100
chaos
66
wisdom
53
snark
86
    /^\     
   .----.   
  / ◉  ◉ \  
  |      |  
  ~`~``~`~  
    /^\     
   .----.   
  / ◉  ◉ \  
  |      |  
  `~`~~`~`  
    ~  ~    
   .----.   
  / ◉  ◉ \  
  |      |  
  ~~`~~`~~  
ghost + wizard ✦ shiny
★★★★★ #9
debugging
70
patience
58
chaos
100
wisdom
89
snark
46
    -+-     
   .----.   
  / ◉  ◉ \  
  |      |  
  ~`~``~`~  
    -+-     
   .----.   
  / ◉  ◉ \  
  |      |  
  `~`~~`~`  
    ~  ~    
   .----.   
  / ◉  ◉ \  
  |      |  
  ~~`~~`~~  
ghost + propeller ✦ shiny
★★★★★ #10
debugging
66
patience
61
chaos
86
wisdom
100
snark
45
   (___)    
     (@>    
     ||     
   _(__)_   
    ^^^^    
   (___)    
    (@>     
     ||     
   _(__)_   
    ^^^^    
   (___)    
     (@>>   
     ||     
   _(__)_   
    ^^^^    
goose + beanie ✦ shiny
★★★★★ #11
debugging
59
patience
63
chaos
100
wisdom
89
snark
46
            
 .-o-OO-o-. 
(__________)
   |·  ·|   
   |____|   
            
 .-O-oo-O-. 
(__________)
   |·  ·|   
   |____|   
   . o  .   
 .-o-OO-o-. 
(__________)
   |·  ·|   
   |____|   
mushroom ✦ shiny
★★★★★ #12
debugging
52
patience
79
chaos
78
wisdom
43
snark
100
   \^^^/    
  n______n  
 ( ◉    ◉ ) 
 (   oo   ) 
  `------´  
   \^^^/    
  n______n  
 ( ◉    ◉ ) 
 (   Oo   ) 
  `------´  
    ~  ~    
  u______n  
 ( ◉    ◉ ) 
 (   oo   ) 
  `------´  
capybara + crown ✦ shiny
★★★★★ #13
debugging
59
patience
57
chaos
83
wisdom
52
snark
100
   (   )    
   _,--._   
  ( ×  × )  
 /[______]\ 
  ``    ``  
   (   )    
   _,--._   
  ( ×  × )  
 /[______]\ 
   ``  ``   
   (   )    
   _,--._   
  ( ×  × )  
 /[======]\ 
  ``    ``  
turtle + halo ✦ shiny
★★★★★ #14
debugging
85
patience
100
chaos
53
wisdom
66
snark
43
    ,>      
  .---.     
  (·>·)     
 /(   )\    
  `---´     
    ,>      
  .---.     
  (·>·)     
 |(   )|    
  `---´     
  .---.     
  (·>·)     
 /(   )\    
  `---´     
   ~ ~      
penguin + tinyduck ✦ shiny
★★★★★ #15
debugging
50
patience
100
chaos
78
wisdom
47
snark
71
    /^\     
  n______n  
 ( ×    × ) 
 (   oo   ) 
  `------´  
    /^\     
  n______n  
 ( ×    × ) 
 (   Oo   ) 
  `------´  
    ~  ~    
  u______n  
 ( ×    × ) 
 (   oo   ) 
  `------´  
capybara + wizard ✦ shiny
★★★★★ #16
debugging
55
patience
100
chaos
72
wisdom
44
snark
69
   (   )    
   /\_/\    
  ( ✦   ✦)  
  (  ω  )   
  (")_(")   
   (   )    
   /\_/\    
  ( ✦   ✦)  
  (  ω  )   
  (")_(")~  
   (   )    
   /\-/\    
  ( ✦   ✦)  
  (  ω  )   
  (")_(")   
cat + halo ✦ shiny
★★★★★ #17
debugging
100
patience
78
chaos
61
wisdom
50
snark
51
   [___]    
 ×    .--.  
  \  ( @ )  
   \_`--´   
  ~~~~~~~   
   [___]    
  ×   .--.  
  |  ( @ )  
   \_`--´   
  ~~~~~~~   
   [___]    
 ×    .--.  
  \  ( @  ) 
   \_`--´   
   ~~~~~~   
snail + tophat ✦ shiny
★★★★★ #18
debugging
73
patience
50
chaos
65
wisdom
100
snark
48
    /^\     
   .[||].   
  [ ×  × ]  
  [ ==== ]  
  `------´  
    /^\     
   .[||].   
  [ ×  × ]  
  [ -==- ]  
  `------´  
     *      
   .[||].   
  [ ×  × ]  
  [ ==== ]  
  `------´  
robot + wizard ✦ shiny
★★★★★ #19
debugging
74
patience
53
chaos
100
wisdom
45
snark
62
   [___]    
   _,--._   
  ( ✦  ✦ )  
 /[______]\ 
  ``    ``  
   [___]    
   _,--._   
  ( ✦  ✦ )  
 /[______]\ 
   ``  ``   
   [___]    
   _,--._   
  ( ✦  ✦ )  
 /[======]\ 
  ``    ``  
turtle + tophat ✦ shiny
★★★★★ #20
debugging
53
patience
51
chaos
100
wisdom
52
snark
58