Tóm tắt nhanh
- Ngày 31/3/2026, Chaofan Shou phát hiện toàn bộ source code Claude Code bị exposed qua file sourcemap trong npm package
- Source map chứa toàn bộ mã nguồn gốc trong trường
sourcesContent - Lỗi xảy ra do không thêm
*.mapvào.npmignorehoặc không tắt sourcemap trong production build - Code đã được backup lên GitHub để lưu trữ

Sourcemap là gì và tại sao nó chứa toàn bộ source code?
Sourcemap là file JSON đóng vai trò cầu nối giữa code đã minify/bundle và source code gốc. Khi bạn publish package JavaScript/TypeScript lên npm, build toolchain thường tạo ra các file .map này để khi có lỗi xảy ra trong production, stack trace có thể chỉ ra dòng code thực trong file gốc thay vì dòng vô nghĩa trong code đã minify.
Thế nhưng điều ít ai biết: sourcemap chứa toàn bộ source code gốc. Cấu trúc của một file .map trông như sau:
{
"version": 3,
"sources": ["../src/main.tsx", "../src/tools/BashTool.ts", "..."],
"sourcesContent": ["// TOÀN BỘ source code gốc của mỗi file", "..."],
"mappings": "AAAA,SAAS,OAAO..."
}Trường sourcesContent chứa mọi thứ: mọi file, mọi comment, mọi hằng số nội bộ, mọi system prompt — tất cả được nhúng dưới dạng chuỗi trong file JSON mà npm thoải mái phục vụ cho bất kỳ ai chạy npm pack hoặc đơn giản là duyệt nội dung package.

Leak xảy ra như thế nào?
Lỗi này thực ra khá phổ biến trong ngành. Khi publish package lên npm, người ta thường quên thêm *.map vào .npmignore hoặc không cấu hình bundler tắt sourcemap cho production build. Với Bun bundler (Claude Code dùng), sourcemap được generate mặc định trừ khi bạn explicitly tắt nó.
Điều trớ trêu là Anthropic có cả một hệ thống gọi là “Undercover Mode” được thiết kế để ngăn thông tin nội bộ bị leak. Họ xây dựng cả một subsystem để ngăn AI vô tình reveal internal codename trong git commits… rồi lại ship toàn bộ source trong file .map, có thể do chính Claude viết ra.

Claude Code là gì?
Claude Code là CLI tool chính thức của Anthropic cho coding với Claude — và là AI coding agent phổ biến nhất hiện nay.
Nếu bạn chưa biết về các công cụ AI coding, có thể tham khảo bài MCP (Model Context Protocol) để hiểu thêm về cách các AI agents kết nối với hệ thống. Hoặc xem thêm về Agentic AI trong thiết kế website để hiểu xu hướng AI agent hiện nay.
Nhìn từ bên ngoài, đây là một CLI tool khá mượt mà và đơn giản. Nhìn từ bên trong, đây là một hệ thống cực kỳ phức tạp:
- 785KB entry point
main.tsx - Custom React terminal renderer
- 40+ công cụ (tools)
- Hệ thống multi-agent orchestration
- Engine nền tảng memory consolidation có tên “dream”
Trong phần tiếp theo, mình sẽ chia sẻ chi tiết hơn về những phát hiện thú vị từ source code này — bao gồm hệ thống Buddy Tamagotchi, chế độ KAIROS always-on, Dream system, và nhiều tính năng chưa được release [1].
Những gì đã bị lộ?
Qua việc phân tích source code bị leak, cộng đồng đã khám phá được nhiều thông tin thú vị:
Buddy — Tamagotchi trong Terminal
Claude Code có một hệ thống companion pet hoàn chỉnh kiểu Tamagotchi gọi là “Buddy” với:
- Hệ thống gách-a (gacha) xác định (deterministic) với 18 loài (species), shiny variants
- 5 chỉ số (stats) được tạo: DEBUGGING, PATIENCE, CHAOS, WISDOM, SNARK
- ASCII art sprites với nhiều animation frames
- “Soul” description được Claude viết khi Buddy nở ra lần đầu

KAIROS — “Always-On Claude”
Một chế độ hoàn toàn mới gọi là KAIROS — trợ lý Claude liên tục (persistent), luôn chạy, không chờ bạn gõ. Nó chủ động theo dõi, ghi log và hành động khi phát hiện điều gì đó thú vị. Chế độ này được hidden sau các feature flag PROACTIVE/KAIROS và hoàn toàn vắng mặt trong bản public.

ULTRAPLAN — Remote Planning 30 phút
Claude Code có khả năng offload task planning phức tạp sang remote Cloud Container Runtime (CCR) chạy Opus 4.6, cho phép nó suy nghĩ đến 30 phút trước khi trả về kết quả cho bạn duyệt từ browser.
“Dream” System — Claude Mơ
Một engine memory consolidation chạy như một subagent được fork (tách tiến trình), thực hiện “dream” mỗi 24h sau ít nhất 5 sessions. System này có 4 phases: Orient → Gather Recent Signal → Consolidate → Prune and Index.
Bài học rút ra
Bảo mật rất khó. Nhưng .npmignore còn khó hơn, có vẻ như :P
Đây không phải lần đầu tiên và cũng sẽ không phải lần cuối. Lỗi gần như luôn giống nhau: quên thêm *.map vào .npmignore hoặc không configure bundler tắt sourcemap cho production.
Điều đáng chú ý là chính Anthropic — công ty bảo mật AI hàng đầu — lại mắc lỗi bảo mật cơ bản như vậy. Điều này nhắc nhở chúng ta rằng ngay cả những tổ chức chú trọng security cũng có thể bỏ lọt những thứ tưởng chừng đơn giản.
Trong phần tiếp theo, mình sẽ phân tích chi tiết hơn về các tính năng nội bộ bị lộ, bao gồm cấu trúc multi-agent, Undercover Mode, và các model sắp ra mắt như Capybara, Opus 4.7, Sonnet 4.8. Đừng bỏ lỡ nhé!
Nếu bạn muốn tìm hiểu thêm về các tính năng nội bộ như Multi-Agent Orchestration, Undercover Mode và các model sắp ra mắt, hãy xem Phân Tích Chi Tiết Source Code Claude Code Bị Leak.
Nguồn tham khảo
Các câu hỏi thường gặp
Claude Code là gì?
Claude Code là công cụ CLI chính thức của Anthropic cho phép lập trình viên sử dụng Claude AI trong terminal. Đây là một trong những AI coding agent phổ biến nhất hiện nay.
Sourcemap là gì?
Sourcemap là file JSON đóng vai trò cầu nối giữa code đã minify và source code gốc. Nó giúp debug dễ dàng hơn nhưng có nhược điểm là chứa toàn bộ source code trong trường sourcesContent.
Leak xảy ra như thế nào?
Leak xảy ra do npm package không loại trừ file sourcemap (.map) trong quá trình publish. Người ta quên thêm *.map vào .npmignore hoặc không tắt sourcemap generation trong production build.
Buddy trong Claude Code là gì?
Buddy là hệ thống companion pet kiểu Tamagotchi trong Claude Code, với 18 species, hệ thống gacha, stats, ASCII art sprites và “soul” description được Claude viết khi nở ra.
KAIROS là gì?
KAIROS là chế độ “always-on” của Claude Code – một trợ lý persistent luôn chạy, chủ động theo dõi và hành động khi phát hiện điều thú vị, thay vì chỉ đợi người dùng gõ lệnh.
Làm sao để tránh leak sourcemap?
Để tránh leak sourcemap, hãy thêm *.map vào file .npmignore hoặc cấu hình bundler tắt sourcemap cho production build. Với Bun, bạn có thể dùng các cấu hình để loại trừ sourcemap khỏi production bundle.
