PS: 이 분석 내용은 더 나은 읽기 경험과 UX를 제공하는 이 블로그에서도 확인할 수 있습니다 :)
참고: 이 저장소(repo)가 삭제될 가능성이 있습니다. 나중에 이것을 살펴보거나 직접 보관하고 싶다면, 자유롭게 포크(fork)하거나 외부 블로그 링크를 북마크해 두세요!
저는 이 파일들을 유출하지 않았습니다. 저는 단지 연구 목적으로 이 코드베이스(codebase)에 접근하고 학습할 수 있는 쉽고 문서화된 방법을 제공했을 뿐입니다. 모든 파일과 정보는 Twitter/X에 공유된 공개된 발견 사항에서 유래되었습니다. 발견에 대한 모든 공로는 원본 출처에 있습니다.
오늘 일찍 (2026년 3월 31일) - **Chaofan Shou (@Fried_rice)**는 Anthropic이 세상에 공개되기를 원치 않았을 법한 무언가를 발견했습니다: Anthropic의 공식 AI 코딩 CLI (Command Line Interface)인 Claude Code의 **전체 소스 코드 (source code)**가 배포된 패키지에 포함된 소스 맵 (sourcemap) 파일을 통해 npm 레지스트리 (registry)에 그대로 노출되어 있었습니다.
이 저장소는 유출된 소스의 백업이며, 그 안에 무엇이 들어있는지, 유출이 어떻게 발생했는지, 그리고 공개되지 않기로 되어 있었던 내부 시스템들에 대한 전체적인 분석을 제공합니다.
JavaScript/TypeScript 패키지를 npm에 배포할 때, 빌드 툴체인 (build toolchain)은 종종 소스 맵 (source map) 파일 (.map 파일)을 생성합니다. 이 파일들은 디버깅 (debugging)을 위해 압축된 프로덕션 코드 (production code)와 원본 소스 사이를 연결해 줍니다.
문제는 무엇일까요? 소스 맵 (source maps)은 sourcesContent 키 아래의 JSON 파일 내부에 문자열로 임베디드 (embedded)된 원본 소스 코드를 포함하고 있다는 점입니다.
{
"version": 3,
"sources": ["../src/main.tsx", "../src/tools/BashTool.ts", "..."],
...
.npmignore에 *.map을 추가하는 것을 잊었거나, 프로덕션 빌드 (production builds)에서 소스 맵 (source maps)을 비활성화하지 못함으로써 (Bun의 기본 동작), 전체 원본 소스가 npm 레지스트리 (registry)로 전송되었습니다.
Claude Code는 단순한 CLI가 아닙니다. 이는 커스텀 React 터미널 렌더러 (Ink), 40개 이상의 도구(tools), 그리고 복잡한 멀티 에이전트 오케스트레이션 (multi-agent orchestration)을 특징으로 하는 거대한 785KB 규모의 main.tsx 엔트리 포인트 (entry point)입니다.
src/buddy/ 내부에는 완전한 **다마고치 스타일의 컴패니언 시스템 (companion system)**이 들어 있습니다.
결정론적 가차 (Deterministic Gacha): 사용자의 userId를 시드로 사용하는 Mulberry32 의사 난수 생성기 (PRNG)를 사용합니다.
18종의 종 (Species): 일반 (Common, Pebblecrab)부터 전설 (Legendary, Nebulynx)까지 다양합니다.
능력치 및 영혼 (Stats & Souls): 모든 버디는 DEBUGGING, CHAOS, SNARK와 같은 능력치를 가지며, Claude가 작성한
면책 조항 (Disclaimer): 모든 원본 소스 코드는 Anthropic PBC의 독점 자산입니다. 이 저장소(Repository)는 교육 및 기록 보관 목적으로만 사용됩니다. 본 프로젝트는 Anthropic의 공식 제품이 아닙니다.
스팸 방지를 위해 이메일은 삭제되었습니다.