Zum Inhalt springen
Gist

Claude Buddy — A Patch for Perfection

4. April 2026·2 Min. Lesezeit
AIClaudeClaude CodeHacking

Claude Code hat seit einiger Zeit ein nettes Feature: Jeder User bekommt einen kleinen Companion (intern "Buddy" genannt) — ein Fantasiewesen, das neben der Eingabezeile sitzt und gelegentlich kommentiert. Species, Rarity und Stats werden deterministisch aus der User-ID berechnet.

Aber was, wenn man sich seinen Buddy selbst aussuchen will?

Wie es funktioniert

Claude Code berechnet den Companion über hash(userId + salt). Der Salt ist im Binary fest eingebaut. Das heißt: Wer den Salt ändert, ändert seinen Buddy.

Dieses Gist enthält zwei Scripts:

  1. find-perfect-salt-bun.mjs — Brute-forcet Salts, bis der gewünschte Companion gefunden ist
  2. patch-claude-buddy.sh — Patcht das Claude-Binary mit dem gefundenen Salt

Schritt 1: Den perfekten Salt finden

Das Bun-Script liest die Account-ID aus ~/.claude.json und probiert Salts durch, bis die gewünschte Kombination aus Species und Rarity gefunden ist:

# Einen legendären Drachen finden
bun find-perfect-salt-bun.mjs --species dragon --rarity legendary
 
# Einen seltenen Phoenix
bun find-perfect-salt-bun.mjs --species phoenix --rarity rare

Es gibt 18 Species (Dragon, Phoenix, Griffin, Unicorn, Kraken, ...) und 5 Rarity-Stufen (Common, Uncommon, Rare, Epic, Legendary). Die Wahrscheinlichkeiten sind gewichtet — Legendary ist entsprechend selten und braucht mehr Versuche.

Das Script gibt am Ende den besten gefundenen Salt aus, inklusive der 5 Companion-Stats:

  • Debugging — Wie gut hilft der Buddy beim Debugging?
  • Patience — Wie geduldig ist er bei langen Tasks?
  • Chaos — Wie unvorhersehbar sind seine Kommentare?
  • Wisdom — Wie weise sind seine Ratschläge?
  • Snark — Wie sarkastisch ist er?

Schritt 2: Den Patch anwenden

bash patch-claude-buddy.sh "DEIN_GEFUNDENER_SALT"

Das Script:

  • Kopiert das Original-Binary als Backup
  • Ersetzt den Salt per sed (gleiche Bytelänge, wichtig!)
  • Signiert das Binary neu mit codesign --force --sign -
  • Entfernt den gespeicherten Companion aus ~/.claude.json, damit er beim nächsten Start neu berechnet wird

Rückgängig machen

bash patch-claude-buddy.sh --revert

Stellt das Original-Binary wieder her.

Voraussetzungen

  • macOS (wegen codesign)
  • Bun (für das Salt-Finding-Script)
  • Claude Code muss lokal installiert sein

Warum das interessant ist

Das Gist zeigt schön, wie Claude Code intern arbeitet: Deterministisches Hashing für Personalisierung, ein kompiliertes Binary mit eingebetteten Konstanten, und die Tatsache, dass der Companion-State in ~/.claude.json unter dem Key companion gespeichert wird. Löscht man diesen Key, wird der Buddy beim nächsten Start neu generiert — was man sich auch ohne Binary-Patch zunutze machen kann.