Claude Code에서 /buddy를 쳐보면 터미널에 ASCII 아트 캐릭터가 하나 뜬다. 일종의 다마고치 같은 건데, 종(species), 희귀도, 눈, 모자, 스탯까지 전부 갖추고 있다. 문제는 이게 완전 랜덤이라 내가 고를 수 없다는 것이다.
buddy-pick이라는 도구가 나왔다. 바이너리를 직접 패치해서 원하는 buddy를 리롤 없이 확정적으로 뽑을 수 있다. 실제로 써서 Legendary Shiny까지 뽑아봤다.

★★★★★ Legendary + Shiny 고양이. tinyduck 모자에 DEBUGGING 100. buddy-pick이 찾아준 SALT 하나로 이게 나온다.
목차
- buddy는 어떻게 결정되는가
- buddy 확률은 어떻게 되나
- 전체 18종 species
- buddy-pick 동작 원리
- 사용법
- Claude Code 업데이트하면 사라지나?
- 비슷한 도구들
- 요약
buddy는 어떻게 결정되는가
Claude Code의 buddy는 해시 기반 결정론적 파이프라인으로 만들어진다.
userId + SALT → wyhash → mulberry32 PRNG → rarity → species → eyes → hat → shiny → stats
바이너리에 하드코딩된 15바이트 SALT 값이 핵심이다. 이 SALT와 사용자 ID를 합쳐서 해시를 돌리면, 그 결과로 희귀도부터 스탯까지 전부 결정된다.
같은 SALT + 같은 userId = 항상 같은 buddy. 다시 말해, SALT만 바꾸면 buddy가 바뀐다.

buddy 확률은 어떻게 되나
"내 buddy 왜 이렇게 구린데?"라고 생각했다면, 확률 때문이다.
| 등급 | 확률 |
|---|---|
| ★ Common | 60% |
| ★★ Uncommon | 25% |
| ★★★ Rare | 10% |
| ★★★★ Epic | 4% |
| ★★★★★ Legendary | 1% |
여기에 모든 등급에 독립적으로 1% 확률로 Shiny 버전이 존재한다. Legendary Shiny를 자연적으로 받을 확률은 0.01%다. 즉 만 명 중 한 명. 운에 맡기면 사실상 불가능하고, 이걸 확정적으로 뽑으려면 buddy-pick이 필요하다.
전체 18종 species
선택할 수 있는 buddy는 총 18종이다.

| 동물 | 판타지/자연 | 사물/기타 |
|---|---|---|
| Duck (오리) | Dragon (드래곤) | Blob (블롭) |
| Goose (거위) | Ghost (유령) | Cactus (선인장) |
| Cat (고양이) | Axolotl (아홀로틀) | Robot (로봇) |
| Owl (부엉이) | Mushroom (버섯) | Chonk (뚱냥이) |
| Penguin (펭귄) | Snail (달팽이) | |
| Turtle (거북) | Capybara (카피바라) | |
| Rabbit (토끼) | Octopus (문어) |
종마다 눈(eyes), 모자(hat) 조합이 다르고, 각 buddy에는 DEBUGGING, PATIENCE, CHAOS, WISDOM, SNARK 다섯 가지 스탯이 붙는다.
buddy-pick 동작 원리
buddy-pick의 동작은 세 단계다.
1단계: Salt 탐색
Claude Code 바이너리 내부에서 현재 SALT 값의 위치를 찾는다. 특정 문자열을 직접 검색하는 게 아니라, 근처의 불변 상수를 구조적 앵커로 활용해서 SALT 위치를 특정한다. Claude Code가 업데이트되어도 앵커 구조가 유지되는 한 동작한다.
2단계: 브루트포스 매칭
후보 SALT를 초당 수천 개씩 생성하면서, 각 SALT가 어떤 buddy를 만드는지 계산한다. Bun 서브프로세스로 wyhash를 빠르게 돌린다. 사용자가 지정한 조건(종, 희귀도, 눈, 모자, 반짝이)에 맞는 SALT를 찾으면 멈춘다.
3단계: 바이너리 패치
찾은 SALT를 Claude Code 바이너리의 해당 위치에 직접 써넣는다. 패치 전에 .buddy-pick.bak 백업 파일을 자동 생성하므로, 문제가 생기면 복원할 수 있다.
사용법
npx buddy-pick
실행하면 메뉴가 뜬다.
? What would you like to do?
❯ Bruteforce search for specific companion
Preview species gallery
Preview custom salt
Rename companion
Restore from Claudex
View Claudex collection
원하는 buddy 뽑는 순서:
Bruteforce search for specific companion선택- 종(species) 선택 — 예: Cat
- 희귀도, 눈 모양, 모자, 반짝이 여부 필터링
- 브루트포스가 돌면서 조건에 맞는 SALT를 찾아준다
- 찾은 buddy를 미리보기한 뒤 패치 적용
패치된 buddy 정보는 ~/.config/buddy-pick/claudex.json에 자동 저장된다. 일종의 도감이라고 보면 된다.
Claude Code 업데이트하면 사라지나?
사라진다. Claude Code를 업데이트하면 바이너리가 새로 깔리면서 패치가 덮어쓰기된다.
하지만 Claudex에 저장해뒀으니 복원은 간단하다.
? What would you like to do?
❯ Restore from Claudex
Restore from Claudex를 선택하면 저장된 SALT를 새 바이너리에 다시 패치해준다. 원클릭 복원이다.
바이너리를 직접 수정하는 방식이므로, Anthropic 공식 기능이 아니다. 향후 바이너리 구조가 크게 바뀌면 buddy-pick도 업데이트가 필요할 수 있다. 요구 사항은 Claude Code >= 2.1.89, Node.js >= 18.
비슷한 도구들
buddy-pick 외에도 비슷한 리롤 도구가 있다.
- cc-buddy — 대화형 리롤러, 중국어 지원 포함
- buddy-reroll — 비슷한 리롤 방식의 도구
필자 기준으로는 buddy-pick이 Claudex 백업 시스템과 세밀한 필터링(종 + 희귀도 + 눈 + 모자 + 반짝이 개별 지정)을 갖추고 있어서 가장 실용적이었다.
요약
- Claude Code buddy는 바이너리 내부 SALT 기반 해시로 결정된다 — 운이 아니라 수학이다
- 일반적으로 받는 buddy의 60%는 Common 등급, Legendary는 1%
- buddy-pick은 원하는 조건의 SALT를 브루트포스로 찾아 바이너리를 직접 패치한다
- 18종 species, 5단계 희귀도, Shiny 여부까지 필터링 가능
- 업데이트로 초기화돼도 Claudex 백업으로 원클릭 복원
- 사용법:
npx buddy-pick→Bruteforce search for specific companion
관련글:
- Claude Code vs Cursor vs Codex CLI 비교 — AI 코딩 도구 전체 비교
- AI 코딩 에이전트의 설계 원칙 — Claude Code 내부 설계 분석
'AI 코딩 에이전트' 카테고리의 다른 글
| Claude Code Statusline 커스터마이징: 터미널 하단을 나만의 대시보드로 (0) | 2026.04.07 |
|---|---|
| Claude Code 소스코드에서 발견된 비밀 방어 시스템 3가지 (0) | 2026.04.07 |
| AI 코딩 에이전트에게 백엔드 리팩터링을 맡기면 어디서 위험해지나 (0) | 2026.04.04 |
| Blue-Green 무중단 배포를 도입해도 사고가 나는 이유: 실패 패턴 5가지 (0) | 2026.04.04 |
| Kafka 동기화 트랜잭션에서 실제로 자주 터지는 장애 5가지 (0) | 2026.04.04 |
