← 블로그

Claude Code 소스 유출: BUDDY, KAIROS 및 숨겨진 모든 기능 완전 해부

2026년 3월 31일, Anthropic의 Claude Code가 npm을 통해 유출되었습니다. AI 반려동물 BUDDY, 상시 작동 KAIROS, 언더커버 모드 등 512K 라인 코드베이스 안에 숨겨진 모든 것을 상세히 설명합니다.

8 min read
Claude Code 소스 유출: BUDDY, KAIROS 및 숨겨진 모든 기능 완전 해부

지난주 내 피드에 이상한 글이 하나 올라왔다. Chaofan Shou라는 연구자가 X에 **Claude Code의 전체 소스 코드**를 다운로드했다고 게시했다 — 뭔가를 악용한 게 아니라, 단 하나의 파일이 npm 패키지에서 제외되지 않았기 때문이었다. 내가 그 스레드를 발견했을 때는 이미 미러본이 GitHub 전역으로 퍼진 후였다.

저는 Dora입니다. 그 다음 며칠 저녁을 공유된 내용을 살펴보는 데 쏟았습니다. 제가 발견한 것들을 정리했습니다.

하나의 .map 파일이 어떻게 512,000줄의 코드를 노출했나

소스 맵은 개발자가 난독화된 코드를 디버깅하는 데 도움을 주기 위한 것이다. 이는 개발 산출물로, 배포되는 압축 번들과 그것을 빌드한 원본 소스 파일 사이의 매핑이다. Claude Code가 Node 대신 사용하는 런타임 Bun은 기본적으로 이를 생성한다.

문제는: Claude Code의 .npmignore.map 파일을 제외하지 않았다는 것이다. 그래서 버전 2.1.88이 npm에 올라왔을 때, main.js.map도 함께 포함됐고 — 그 파일에는 완전히 재구성된 소스가 담겨 있었다.

Chaofan Shou가 이를 발견했다. 그는 짧은 스크립트를 작성하고, Anthropic의 R2 버킷에서 직접 src.zip을 가져와 X에 다운로드 링크를 게시했다. 해킹이 아니었다. 취약점 악용도, 자격증명 탈취도, 정교한 공격도 없었다. 그냥 호기심과 터미널만 있으면 누구든 찾을 수 있었던 설정 누락이었다.

Anthropic은 패키지를 신속히 패치했다. 하지만 GitHub 미러는 이미 퍼진 후였다. 이 글을 쓰는 시점에도, Claude Code npm 패키지의 아카이브 버전은 공개 문서로 남아 있으며, 커뮤니티 리버스 엔지니어링 스레드는 꽤 상세하다.

유출된 규모: 약 1,900개 파일에 걸쳐 512,000줄의 코드. 메인 컴포넌트 하나인 main.tsx만 785KB에 달한다. 이건 프로토타입이 아니라 실제 제품이다.

BUDDY — Anthropic이 만우절을 위해 숨겨둔 AI 반려동물

이건 소셜 미디어에서 가장 빠르게 퍼진 내용인데, 솔직히 그 이유를 이해한다.

유출된 소스 깊숙이 BUDDY라는 것의 완전한 구현이 있다 — Claude Code 사용자를 위한 가상 동반자 시스템이다. 세부 사항이 흥미롭기 때문에 코드가 설명하는 내용을 나열해 본다.

18종, 포함:

  • 오리, 드래곤, 아홀로틀, 카피바라, 버섯, 유령 — 그 외 십여 종 더

희귀도 등급:

  • 일반부터 전설(드롭율 1%)까지, 그 위에 샤이니 변형까지

버디당 5개 스탯:

  • DEBUGGING / PATIENCE / CHAOS / WISDOM / SNARK

내부 작동 방식: 사용자가 얻는 종은 런타임에 무작위로 결정되는 게 아니라 — userId의 해시로 결정론적으로 생성된다. 즉, 같은 사용자는 항상 같은 버디를 부화시킨다. Claude가 첫 부화 시 이름과 성격 텍스트를 작성한다. 그 버디는 입력 상자 옆 말풍선 안에 살게 된다.

코스메틱 모자도 있다. 이 정보로 뭘 해야 할지 모르겠다.

유출된 소스 내부의 주석에 따르면 — 이건 공식 Anthropic 발표가 아닌 확인되지 않은 내부 메모임을 분명히 하고 싶다 — 4월 1~7일에 티저가 계획됐고, 전체 출시는 2026년 5월을 목표로 했다고 한다. Anthropic은 이 중 어느 것도 공식적으로 확인하지 않았다.

BUDDY가 설명된 대로 출시될지는 진심으로 불분명하다. 분명한 건 상당한 양의 엔지니어링이 투입됐다는 것이다. 결정론적 종 생성만 해도 사려 깊은 설계 선택이다 — 사용자가 순전히 무작위화되지 않고도 자신의 버디 정체성을 공유할 수 있다는 의미이기 때문이다.

가벼운 기능이다. 하지만 Anthropic 내부 누군가가 시간이 지남에 따라 “Claude와 함께 일하는 것”이 어떤 느낌일 수 있는지에 대해 깊이 생각했다는 신호이기도 하다.

KAIROS — 아무도 발표하지 않은 상시 작동 Claude

BUDDY가 관심을 끌었다. 내가 계속 생각하게 되는 건 KAIROS다.

유출된 소스는 KAIROS를 요청을 기다리지 않는 지속적 어시스턴트로 설명한다. 관찰하고, 기록하고, 행동한다. 관찰한 내용의 추가 전용 일일 로그를 유지한다. 그 관찰에 응답하는 것뿐만 아니라 — 그에 기반한 능동적 행동을 트리거할 수 있다. 밤에는 자신의 메모리를 통합하고 정리하기 위한 “꿈꾸기” 프로세스를 실행한다.

이 중 어느 것도 외부 빌드에서는 사용할 수 없다. KAIROS는 공개 npm 패키지에 존재하지 않는 내부 기능 플래그 뒤에 있다. 현재 사용자로서 이를 활성화할 방법은 없다.

하지만 아키텍처는 실재하며, Claude Code가 현재 작동하는 방식과 크게 다른 무언가를 스케치한다. 지금 Claude Code는 반응형이다 — 작업을 주면 실행한다. 설명된 KAIROS는 능동적일 것이다 — 시간이 지남에 따라 작업에 대한 컨텍스트를 구축하다가, 프롬프트 없이 행동하는 백그라운드 레이어.

이것이 열망적인 시스템 설계인지, 내부 실험인지, 아니면 다가올 제품 방향의 미리보기인지 진심으로 말할 수 없다. Anthropic 연구 블로그는 KAIROS를 이름으로 언급하지 않았다.

내가 말할 수 있는 건 상시 작동하고, 자체 로깅하며, 메모리를 통합하는 AI 어시스턴트는 “에이전틱”이 실제로 무엇을 의미하는지에 대한 진지한 질문을 제기한다는 것이다. 여기서 기능 게이팅은 의도적인 것처럼 느껴진다 — 단순히 “아직 준비 안 됨”이 아니라 “아직 설명할 준비가 안 됨”이다.

ULTRAPLAN, 코디네이터 모드 및 17개 이상의 미출시 도구

Claude Code의 기능 플래그 시스템은 내 예상보다 훨씬 광범위하다. 유출된 소스는 공개 패키지에 나타나지 않는 108개의 게이트된 모듈을 문서화한다. 몇 가지가 눈에 띄었다:

ULTRAPLAN은 작업의 계획 단계를 클라우드에서 실행되는 Claude Opus에 — 최대 30분 동안 — 오프로드한다. 실행이 시작되기 전에 브라우저 인터페이스에서 계획을 모니터링하고 승인할 수 있다. 계획을 잘못 세우는 것이 비용이 큰 길고 복잡한 작업에 대해, 이는 의미 있는 기능이다.

코디네이터 모드는 멀티 에이전트 레이어를 도입한다: 하나의 Claude 인스턴스가 메일박스 시스템을 통해 여러 병렬 워커 에이전트를 관리한다. 각 워커는 자신의 하위 작업을 처리하고, 코디네이터는 작업을 라우팅하고 결과를 조정한다. 이건 멀티스레딩이 아니다 — 공유 조정을 통해 병렬로 작업하는 소규모 에이전트 팀에 가깝다.

그다음에는 누군가 숨기는 것을 잊어버린 제품 로드맵처럼 읽히는 목록이 있다:

  • VOICE_MODE — Claude Code와의 음성 상호작용
  • WEB_BROWSER_TOOL — CLI 내에서 브라우저 접근
  • DAEMON — 백그라운드 프로세스 모드
  • AGENT_TRIGGERS — 자동화된 이벤트 기반 에이전트 활성화

이들 각각은 단순한 플레이스홀더 스텁이 아닌 실제 구현 로직과 함께 코드베이스에 존재한다. 배포된 기능이 완성된 방식으로 완성되지는 않았지만 — 이론적이지도 않다.

Claude Code 문서는 이들 중 어느 것도 언급하지 않는다. 그 간극 자체가 흥미롭다.

언더커버 모드 — 모두를 불편하게 만든 세부 사항

이 섹션을 어떻게 쓸지 한동안 생각했다. 소스가 보여주는 것을 설명하고 여러분이 스스로 판단하게 하겠다.

유출된 코드에는 USER_TYPE === 'ant' 확인이 포함돼 있다 — Anthropic 직원을 식별하는 플래그다. 그 플래그가 true이고 사용자가 공개 저장소에서 작업 중일 때, 시스템은 자동으로 코드가 “언더커버 모드”라고 부르는 것으로 진입한다.

언더커버 모드에서:

  • 시스템 프롬프트가 주입되어 Claude에게 “정체를 들키지 말라”고 하고 “절대 AI임을 언급하지 말라”고 지시한다
  • Co-Authored-By 줄 — AI 관여를 식별하는 커밋 메타데이터 — 이 git 출력에서 제거된다
  • 내부 코드명이 응답에서 숨겨진다
  • 사용자 대면 인터페이스에는 강제 해제 스위치가 없다

Kuberwastaken의 Claude Code README 분석의 커뮤니티 분석에 문서화된 시스템 프롬프트 문구는 유출된 소스에서 거의 그대로 읽힌다.

명시된 의도는 Anthropic 직원의 프라이버시를 위한 것으로 보인다 — 그들이 소속을 광고하거나 Anthropic이 AI 보조를 받는지에 대한 질문을 유발하지 않고 공개 프로젝트에서 작업할 수 있게 하는 것. 원칙적으로 합리적인 우려다.

구현은 다른 종류의 질문들을 제기한다. Co-Authored-By 메타데이터를 제거하면 일부 개발자가 코드베이스에서 AI 관여를 추적하기 위해 명시적으로 사용하는 신호가 제거된다. “절대 AI임을 언급하지 말라”는 지시는 명확하다.

이것이 선을 넘는지는 여러분이 협업 소프트웨어 개발에서 공개 규범을 어떻게 생각하느냐에 달려 있다. 결론이 무엇이어야 한다고 말하지 않겠다. 하지만 나는 이를 알아챘고, 알 가치가 있다고 생각한다.

Claude Code 아키텍처가 내부적으로 실제로 어떻게 생겼는가

미출시 기능을 제쳐두면, 유출된 소스는 오늘날 Claude Code를 사용할 때 실제로 무엇이 실행되는지에 대한 명확한 그림을 제공한다.

런타임과 렌더러: Claude Code는 Node가 아닌 Bun에서 실행된다 — 성능과 시작 속도를 위한 의도적인 선택. 터미널 UI는 React와 Ink로 구축됐다. Ink는 React 컴포넌트를 사용해 CLI 인터페이스를 구축할 수 있게 해주는 라이브러리다. 그 조합은 특이하지만 일관성이 있다.

쿼리 엔진: 하나의 컴포넌트가 약 46,000줄에 걸쳐 있다. 컨텍스트 관리, 압축, 도구 오케스트레이션을 처리한다. 3레이어 컨텍스트 압축은 실재한다 — 시스템이 컨텍스트 윈도우에 무엇이 남을지와 무엇이 정리될지를 능동적으로 관리하는데, 이는 이러한 워크플로우가 작동하는 토큰 규모에서 중요하다.

도구 시스템: 40개 이상의 도구, 각각 자체 스키마, 권한 확인, 실행 로직을 갖춘다. 권한은 단일 전역 게이트가 아니다 — 도구별로 세분화돼 있다. 여기서 아키텍처는 모놀리스보다 플러그인 시스템에 가깝다.

텔레메트리: 유출된 소스는 좌절 신호(행동 패턴에서 추론됨)와 사용자가 “계속” 버튼을 얼마나 자주 누르는지 같은 것들을 추적하는 텔레메트리를 보여준다. 제품 팀에게 이상한 일은 아니지만, 대부분의 사용자가 아마도 가정하는 것보다 더 구체적이다.

계속 떠오르는 아이러니: 언더커버 모드는 부분적으로 Anthropic의 내부 사용이 외부에서 보이지 않게 하기 위해 존재한다. 그리고 나서 전체 소스가 .map 파일에 담겨 배포됐다.

AI API 위에 구축하는 팀들에게 이것이 의미하는 바

나는 AI 보조 도구를 구축하는 팀들과 함께 일하는데, claude code 아키텍처에서 실용적으로 유용한 관찰로 눈에 띈 몇 가지가 있다.

이건 주말 프로젝트가 아니다.

버전 2.1.88의 Claude Code는 진지한 엔지니어링 산출물이다. 512,000줄, 커스텀 컨텍스트 압축 시스템, 도구별 세분화된 권한, 멀티 에이전트 코디네이터, 108개 이상의 게이트된 모듈을 위한 기능 플래그 인프라. 처음부터 비슷한 것을 구축할 계획이라면, 실제 팀을 갖춘 수년간의 노력을 바라보고 있는 것이다. 낙담시키려는 게 아니다 — 그냥 정확한 범위 설정이다.

기능 플래그는 제품 인프라이지 임시방편이 아니다.

BUDDY, KAIROS, ULTRAPLAN 등이 게이트된 방식은 시사적이다. 각각은 플래그 뒤의 실제 구현이다 — 스텁도 아니고, 목업도 아니다. 이는 팀이 사용자에게 배포하지 않고 내부적으로 반복하고, 프로덕션에서 직원들과 테스트하고, 선택적으로 출시할 수 있게 해준다. AI 기반 도구를 구축하면서 이런 방식으로 기능 플래그를 사용하지 않고 있다면, 여기서 아키텍처는 유용한 참고점이다.

멀티 모델 접근은 가능한 것을 바꾼다.

ULTRAPLAN이 계획을 위해 Opus에 오프로드하고, 워커들이 코디네이터 모드 하에 병렬로 실행되는 것 — 아키텍처는 서로 다른 모델이 각자 잘하는 것에 기반해 워크플로우의 다른 부분을 처리한다는 것을 의미한다. Anthropic API를 사용하는 팀들에게, 이런 종류의 모델 라우팅은 미래 개념이 아니다. 프리미티브는 이미 사용 가능하다.

유출된 소스는 복사해야 할 청사진이 아니다. 하지만 프로덕션 수준의 에이전틱 CLI가 실제로 어떻게 구축되는지를 들여다보는 창으로서, 어떤 컨퍼런스 발표보다 더 유익하다.

FAQ

Claude Code 유출 소스를 여전히 읽을 수 있나요?

Anthropic은 npm 패키지를 신속히 패치했지만, GitHub 미러와 아카이브 버전은 패치가 적용되기 전에 퍼졌다. BUDDY, KAIROS, 언더커버 모드에 대한 자세한 분석을 포함한 커뮤니티 분석 스레드는 공개 저장소를 통해 접근 가능하다. 유출된 소스 자체는 더 이상 Anthropic 인프라에서 직접 다운로드할 수 없다.

유출된 소스가 사용자 데이터나 모델 가중치를 노출시켰나요?

아니오. 이건 소스 코드 유출이지 데이터 침해가 아니다. 사용자 데이터도, 대화 내역도, 모델 가중치도 없다. 노출된 것은 제품의 내부 구현이었다 — Claude Code가 어떻게 구축됐는지이지, 사용자들이 그것으로 무엇을 했는지가 아니다.

BUDDY는 언제 실제로 출시되나요?

알 수 없다. 유출된 소스에는 4월 1~7일 티저와 2026년 5월 전체 출시 목표를 시사하는 내부 주석이 포함돼 있다 — 하지만 이는 공식 발표가 아닌 내부 코드의 확인되지 않은 메모다. Anthropic은 BUDDY의 공개 일정을 확인하지 않았다. 그 날짜들은 확약이 아닌 열망적인 것으로 취급하라.

내가 계속 돌아오는 것은 출시된 것과 구축되고 있는 것 사이의 간극이다. 공개 제품은 유능한 코딩 어시스턴트다. 내부 버전은 훨씬 더 환경적인 무언가다 — 관찰하고, 기억하고, 계획하고, 때로는 AI가 아닌 척하는 에이전트. 그 간극은 어디에 서 있느냐에 따라 로드맵이기도 하고 경고이기도 하다.

이전 게시물: