본문으로 건너뛰기

© 2026 Molayo

GitHub요약2026. 05. 20. 18:50

yasasbanukaofficial/claude-code

요약

Anthropic의 AI 코딩 CLI인 Claude Code의 전체 소스 코드가 npm 레지스트리에 소스 맵(sourcemap) 파일을 통해 유출된 사건을 다룹니다. 빌드 과정에서 소스 맵이 포함된 채 배포되어 원본 TypeScript 코드가 노출되었으며, 이 저장소는 해당 유출본의 백업 및 분석 내용을 담고 있습니다.

핵심 포인트

  • npm 배포 시 소스 맵(.map) 파일이 포함될 경우 원본 소스 코드가 노출될 위험이 있음
  • Claude Code는 Ink 기반의 React 터미널 렌더러와 40개 이상의 도구를 포함한 복잡한 구조를 가짐
  • 내부 코드 분석 결과, 사용자 ID를 시드로 사용하는 다마고치 스타일의 컴패니언 시스템이 확인됨
  • Bun의 기본 동작 및 .npmignore 설정 누락이 이번 유출의 기술적 원인으로 지목됨

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의 공식 제품이 아닙니다.

스팸 방지를 위해 이메일은 삭제되었습니다.

AI 자동 생성 콘텐츠

본 콘텐츠는 GitHub AI Coding Assistants의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0