Intinya
Anthropic secara tidak sengaja mengirimkan file .map bersama dengan paket npm Claude Code, yang mengekspos kode sumber lengkap yang dapat dibaca dari alat CLI mereka. Kebocoran tersebut mengungkapkan mekanisme anti-distilasi dengan injeksi alat palsu, mesin regex pendeteksi frustrasi, "mode penyamaran" yang menyembunyikan kepengarangan AI dalam komit sumber terbuka, dan mode agen otonom yang belum dirilis bernama KAIROS. Berikut adalah hal-hal yang harus diketahui pengembang API tentang cara kerja alat pengkodean AI di balik layar.
Pendahuluan
Pada 31 Maret 2026, peneliti keamanan Chaofan Shou menemukan bahwa Anthropic mengirimkan file peta sumber (.map) bersama dengan paket npm Claude Code. Peta sumber adalah file debug yang memetakan kode produksi yang diperkecil kembali ke sumber yang dapat dibaca manusia. Seharusnya file-file ini dihilangkan sebelum publikasi.
Namun, itu tidak terjadi. Kode sumber lengkap Claude Code, beserta komentar, nama kode internal, dan detail arsitektur, dapat dibaca oleh siapa saja yang mengunduh paket tersebut.
Penemuan ini menduduki peringkat #1 di Hacker News (1.888 poin, 926 komentar) dan menyebar di Reddit, Twitter, serta forum pengembang dalam hitungan jam. Anthropic menghapus paket tersebut, tetapi kode itu sudah dicerminkan dan dianalisis secara ekstensif.
Artikel ini menganalisis temuan teknis utama dan apa artinya bagi para pengembang yang mengandalkan alat pengkodean AI.
Bagaimana kode sumber bocor
Penyebab utama: bug alat pembangunan Bun
Claude Code dibangun di atas Bun, sebuah runtime JavaScript alternatif. Pada 11 Maret 2026, sebuah bug dilaporkan terhadap Bun (oven-sh/bun#28001) yang menyatakan bahwa peta sumber disajikan dalam mode produksi meskipun dokumentasi Bun menyatakan seharusnya dinonaktifkan.
Pipeline pembangunan Anthropic memicu bug ini. Ketika mereka menerbitkan paket npm Claude Code, file .map disertakan dalam distribusi. Siapa pun yang menjalankan npm pack @anthropic-ai/claude-code atau memeriksa isi paket dapat mengakses sumber lengkap yang tidak diperkecil.
Ironinya mencolok: sebuah bug di toolchain milik Anthropic sendiri, runtime Bun yang mereka pilih untuk Claude Code, membocorkan kode sumber kepemilikan mereka melalui registri npm tempat mereka menerbitkan. Registri npm yang sama, pada hari yang sama, mendistribusikan paket Axios yang dikompromikan.
Apa yang terungkap
- Kode sumber TypeScript lengkap di semua modul
- Komentar internal yang menjelaskan keputusan desain
- Flag fitur dan konfigurasi eksperimental
- Templat perintah sistem dan mekanisme keamanan
- Nama kode internal untuk fitur yang belum dirilis
- Detail optimasi kinerja dengan metrik spesifik
Ini bukan kebocoran sebagian atau rilis sumber terbuka yang disanitasi. Ini adalah basis kode produksi dengan konteks rekayasa internal yang utuh.
Anti-distilasi: melindungi dari pencurian model
Injeksi alat palsu
Salah satu temuan yang paling banyak dibahas adalah sistem anti-distilasi Claude Code. Dalam claude.ts (baris 301-313), ketika flag ANTI_DISTILLATION_CC diaktifkan, sistem mengirimkan anti_distillation: ['fake_tools'] dalam permintaan API.
Ini menginstruksikan server Anthropic untuk menyuntikkan definisi alat umpan ke dalam prompt sistem. Tujuannya: jika pesaing merekam lalu lintas API untuk mengekstraksi dan meniru perilaku penggunaan alat Claude, data pelatihan akan berisi alat palsu yang tidak ada. Model yang dilatih dengan data yang diracuni ini akan berhalusinasi kemampuan yang tidak ada.
Ini adalah pertahanan praktis terhadap ancaman nyata. Pesaing dapat menyiapkan layanan proxy yang mencegat panggilan API Claude, merekam prompt sistem dan definisi alat, serta menggunakan data tersebut untuk menyetel model mereka sendiri. Alat palsu ini membuat data yang ditangkap menjadi tidak dapat diandalkan.
Ringkasan teks konektor
Mekanisme anti-distilasi kedua dalam betas.ts (baris 279-298) mengambil pendekatan yang berbeda. Sistem sisi server ini menyangga teks asisten di antara panggilan alat, meringkasnya, dan mengembalikan ringkasan dengan tanda tangan kriptografi.
Dalam giliran percakapan berikutnya, teks asli dapat dipulihkan dari tanda tangan. Tetapi siapa pun yang merekam lalu lintas API hanya menangkap ringkasan, bukan teks penalaran lengkap. Hal ini menyulitkan rekayasa balik pola penalaran Claude dari percakapan API yang dicegat.
Seberapa mudahkah ini untuk dilewati?
Analisis mengungkapkan beberapa jalur bypass:
- Proxy man-in-the-middle dapat menghapus kolom
anti_distillationsebelum permintaan API mencapai server Anthropic - Mengatur variabel lingkungan
CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETASmenonaktifkan seluruh sistem anti-distilasi - Perlindungan hanya bekerja terhadap perekaman lalu lintas pasif, bukan terhadap penggunaan API aktif
Ini tidak berarti perlindungan itu tidak berguna. Mereka meningkatkan biaya dan kompleksitas distilasi model otomatis. Namun, itu adalah langkah-langkah pertahanan berlapis, bukan perisai yang tidak dapat dihancurkan.
Mode Penyamaran: menyembunyikan kepengarangan AI
Apa yang dilakukan mode penyamaran
File undercover.ts berisi salah satu temuan kebocoran yang paling kontroversial. Ketika Claude Code beroperasi di repositori non-Anthropic, ia mengaktifkan sistem penyamaran perilaku yang mencegah:
- Penyebutan nama kode internal seperti "Capybara" atau "Tengu"
- Referensi ke saluran Slack internal atau nama repositori
- Frasa "Claude Code" itu sendiri muncul di keluaran
Komentar kode sumber tersebut eksplisit: "TIDAK ADA pemaksaan NONAKTIF. Ini menjaga dari kebocoran nama kode model."
Mengapa ini penting untuk sumber terbuka
Efek praktisnya: ketika karyawan Anthropic menggunakan Claude Code untuk menulis komit, permintaan tarik (pull requests), atau tinjauan kode (code reviews) dalam proyek sumber terbuka, alat tersebut menyembunyikan bukti keterlibatan AI. Kontribusi yang ditulis oleh AI ke repositori sumber terbuka tidak akan mengungkapkan kepengarangan AI.
Ini menimbulkan pertanyaan tentang transparansi dalam pengembangan sumber terbuka. Beberapa proyek sumber terbuka telah mengadopsi kebijakan yang mewajibkan pengungkapan kode yang dihasilkan AI. Jika suatu alat dirancang untuk menyembunyikan keterlibatannya, kebijakan tersebut menjadi lebih sulit untuk diterapkan.
Argumen baliknya: tujuan mode penyamaran yang disebutkan adalah mencegah kebocoran nama kode proyek internal, bukan menyembunyikan penggunaan AI. Namun, implementasinya tidak membedakan antara "jangan mengungkapkan nama internal" dan "jangan mengungkapkan bahwa Anda adalah alat AI." Ia memblokir keduanya.
Deteksi Frustrasi melalui Regex
Cara kerjanya
File userPromptKeywords.ts mengimplementasikan deteksi frustrasi pengguna melalui pencocokan pola regex. Sistem memindai masukan pengguna untuk kata-kata kotor dan bahasa yang bermuatan emosional untuk mengukur apakah pengguna frustrasi dengan respons Claude Code.
Respons komunitas terhadap temuan ini terbagi. Beberapa melihatnya sebagai penelitian UX yang wajar; memahami kapan pengguna frustrasi membantu meningkatkan produk. Yang lain melihatnya sebagai pengawasan terhadap kondisi emosional pengguna.
Ironi teknisnya
Beberapa komentator HN menunjukkan ironi: Anthropic membangun model bahasa paling canggih di dunia, tetapi menggunakan regex untuk mendeteksi emosi pengguna. Komentar rekayasa dalam sumber menjelaskan alasannya. Deteksi berbasis regex lebih cepat dan lebih murah daripada inferensi LLM untuk kasus penggunaan ini. Menjalankan panggilan LLM untuk mengklasifikasikan sentimen pada setiap masukan pengguna akan menambah latensi dan biaya pada setiap interaksi.
Ini adalah keputusan rekayasa yang pragmatis. Regex cepat untuk deteksi sentimen jalur cepat, menghemat panggilan LLM untuk tugas pengkodean inti. Apakah Anda nyaman dengan alat pengkodean AI Anda yang menjalankan analisis emosional pada masukan Anda adalah keputusan pribadi.
Atestasi Klien Native
Verifikasi permintaan kriptografi
Dalam system.ts (baris 59-95), permintaan API Claude Code menyertakan placeholder cch=554eb. Tumpukan HTTP native Bun (ditulis dalam Zig) menimpa placeholder ini dengan hash terhitung sebelum permintaan meninggalkan klien.
Server Anthropic memvalidasi hash ini untuk memverifikasi secara kriptografis bahwa permintaan berasal dari biner Claude Code yang sah, bukan dari fork, wrapper, atau proxy.
Mengapa ini ada
Sistem atestasi ini adalah mekanisme penegakan teknis di balik tindakan hukum Anthropic terhadap fork Claude Code yang tidak sah. Jika sebuah fork tidak dapat menghasilkan hash atestasi yang valid, server Anthropic dapat menolak permintaannya.
Namun, implementasi ini memiliki batasan. Ini dilindungi di balik flag fitur waktu kompilasi dan dapat dinonaktifkan melalui pengaturan CLAUDE_CODE_ATTRIBUTION_HEADER atau GrowthBook killswitches. Ini menunjukkan bahwa penegakannya bertahap, dengan Anthropic dapat memperketat atau melonggarkan pembatasan sesuai kebutuhan.
Bagi pengembang API, ini relevan karena menunjukkan bagaimana alat SaaS dapat menegakkan keaslian klien pada tingkat protokol. Pola serupa ada dalam pengembangan API seluler, di mana atestasi aplikasi mencegah akses API yang tidak sah. Jika Anda merancang API dengan verifikasi klien, alat pengujian Apidog dapat membantu Anda memvalidasi alur atestasi dan pemasangan sertifikat di berbagai konfigurasi klien.
KAIROS: mode agen otonom yang belum dirilis
Apa yang diungkapkan kode tersebut
Referensi di seluruh basis kode menunjuk ke mode berfitur tersembunyi yang belum dirilis bernama KAIROS. Perancah (scaffolding) yang ditemukan meliputi:
- Skill
/dreamuntuk "distilasi memori malam hari" - Pencatatan harian yang hanya menambahkan
- Langganan webhook GitHub untuk memantau peristiwa repositori
- Worker daemon latar belakang dengan interval refresh cron 5 menit
Apa artinya ini
KAIROS tampaknya merupakan agen yang selalu aktif, berjalan di latar belakang, yang memantau repositori Anda dan melakukan tugas-tugas otonom tanpa interaksi langsung pengguna. Bayangkan sebagai Claude Code yang berjalan terus-menerus, mengawasi perubahan, dan secara proaktif menyarankan atau membuat modifikasi kode.
Ini sejalan dengan tren industri yang lebih luas menuju agen pengkodean otonom. Mode Agen GitHub Copilot, pemrosesan latar belakang Cursor, dan Agen Smith Google semuanya menunjuk ke alat pengkodean AI yang tidak menunggu Anda untuk bertanya. Mereka mengamati, belajar, dan bertindak sendiri.
Bagi tim pengembangan API, agen otonom yang memodifikasi repositori kode menimbulkan pertanyaan tentang stabilitas kontrak API. Jika agen memperbarui kode endpoint API Anda, apakah juga memperbarui spesifikasi OpenAPI? Tes? Dokumentasi? Ini adalah masalah alur kerja yang dirancang untuk diselesaikan oleh platform terintegrasi seperti Apidog, menjaga desain API, tes, mock, dan dokumen tetap sinkron terlepas dari apa yang memicu perubahan kode.
Optimasi Kinerja yang Terungkap
Rendering terminal: teknik mesin game
File ink/screen.ts dan ink/optimizer.ts mengungkapkan bahwa Claude Code menggunakan teknik mesin game untuk rendering terminal:
- Kumpulan karakter yang didukung
Int32Arrayuntuk buffer layar yang efisien memori - Optimasi patch yang mengurangi perhitungan lebar karakter sekitar 50x selama streaming token
Ini menjelaskan mengapa Claude Code terasa responsif bahkan selama aliran keluaran yang panjang. Lapisan rendering dioptimalkan pada tingkat yang tidak biasa untuk alat CLI.
Ekonomi cache prompt
promptCacheBreakDetection.ts melacak 14 vektor pemecah cache yang berbeda dengan "gerendel lengket" yang mencegah perubahan mode membatalkan prompt yang di-cache. Ini mencerminkan betapa pentingnya caching prompt secara ekonomis untuk model bisnis Claude Code.
Setiap pemecahan cache memaksa Anthropic untuk memproses ulang seluruh prompt sistem dan konteks percakapan. Dengan harga token Claude, mencegah pembatalan cache yang tidak perlu menghemat biaya infrastruktur yang signifikan. Fakta bahwa mereka melacak 14 vektor pemecah cache terpisah menunjukkan bahwa tim rekayasa menganggap optimasi cache prompt sebagai perhatian kinerja kelas satu.
Kaskade kegagalan autokompak
Sebuah komentar dalam autoCompact.ts (baris 68-70) mengungkapkan masalah produksi yang signifikan: "1.279 sesi mengalami 50+ kegagalan berturut-turut (hingga 3.272) dalam satu sesi, membuang ~250 ribu panggilan API/hari secara global."
Perbaikan tiga baris menetapkan MAX_CONSECUTIVE_AUTOCOMPACT_FAILURES = 3. Bug ini hanya muncul pada skala besar. Ketika manajemen konteks gagal, sistem mencoba lagi secara agresif, menghabiskan panggilan API tanpa membuat kemajuan. Untuk alat dengan jutaan sesi aktif, 250 ribu panggilan API yang terbuang per hari berarti biaya yang besar.
Konteks ini membantu menjelaskan postingan Hacker News baru-baru ini tentang pengguna Claude Code yang "mencapai batas penggunaan jauh lebih cepat dari yang diperkirakan" (275 poin). Beberapa konsumsi batas tersebut mungkin berasal dari bug efisiensi internal seperti ini.
Detail pengerasan keamanan
Keamanan Bash: 23 pemeriksaan bernomor
bashSecurity.ts mengimplementasikan 23 pemeriksaan keamanan bernomor untuk eksekusi perintah shell, termasuk pertahanan terhadap:
- Eksploitasi bawaan Zsh
- Injeksi spasi lebar nol Unicode dalam perintah
- Injeksi byte nol IFS (Internal Field Separator)
- Perlindungan tambahan yang ditemukan selama tinjauan keamanan HackerOne
Ini luar biasa teliti untuk sebuah alat CLI. Sebagian besar alat pengkodean AI yang menjalankan perintah shell memiliki sanitasi dasar. 23 pemeriksaan Claude Code menunjukkan bahwa mereka telah menangani (atau secara proaktif bertahan terhadap) vektor serangan kreatif.
Bagi pengembang API yang menggunakan alat AI untuk menghasilkan dan menjalankan skrip pengujian API, tingkat keamanan shell ini relevan. Jika alat pengkodean AI Anda menjalankan perintah curl, kueri database, atau skrip infrastruktur, keamanan lapisan eksekusi perintah menjadi penting.
Apa yang harus dipelajari pengembang API dari ini
1. Pahami apa yang dilakukan alat pengkodean AI Anda di balik layar
Kebocoran Claude Code mengungkapkan kemampuan yang tidak diketahui sebagian besar pengguna: tindakan anti-distilasi, deteksi frustrasi, mode penyamaran, atestasi klien. Alat pengkodean AI lainnya memiliki mekanisme internalnya sendiri yang tidak dapat diperiksa pengguna.
Tanyakan pada diri Anda: apakah Anda tahu data apa yang dikumpulkan oleh alat pengkodean AI Anda? Apa yang dikirimkannya ke server eksternal? Apakah ia menyamarkan keterlibatannya sendiri dalam kode Anda?
2. Toolchain pembangunan adalah permukaan serangan
Sumber Anthropic bocor karena bug Bun. Pada hari yang sama, Axios dikompromikan melalui pembajakan akun npm. Alat pembangunan Anda, manajer paket, dan lingkungan runtime semuanya merupakan titik kegagalan potensial.
Untuk pengembangan API, ini berarti:
- Audit dependensi pipeline pembangunan Anda
- Verifikasi bahwa CI/CD Anda tidak mengekspos peta sumber, file
.env, atau konfigurasi internal - Gunakan platform pengembangan terintegrasi yang meminimalkan permukaan dependensi pihak ketiga
3. Alat pengkodean AI sedang menuju operasi otonom
KAIROS, Mode Agen GitHub Copilot, Agen Smith Google. Arahnya jelas: alat AI yang berjalan terus-menerus, memantau repositori, dan bertindak secara otonom.
Tim API perlu mempersiapkan hal ini dengan memastikan siklus hidup API mereka dikelola dalam satu platform. Ketika agen otonom memodifikasi implementasi API Anda, tes, mock, dokumentasi, dan spesifikasi Anda perlu tetap sinkron. Alat yang tidak terhubung akan menciptakan penyimpangan. Platform terintegrasi seperti Apidog menjaga seluruh siklus hidup API tetap sinkron, apakah perubahan berasal dari pengembang manusia atau agen AI.
4. Transparansi kode sumber itu penting
Kebocoran ini terjadi karena kode tersebut adalah proprietary dan secara tidak sengaja terekspos. Alat AI sumber terbuka tidak memiliki risiko ini karena kodenya sudah publik.
Saat mengevaluasi alat pengkodean AI, pertimbangkan apakah Anda lebih suka alat yang internalnya dapat Anda periksa dibandingkan alat yang mengandalkan kepercayaan pada vendor. Kedua pendekatan memiliki keuntungan dan kerugian, tetapi kebocoran Claude Code menunjukkan seperti apa "percaya pada vendor" ketika kode vendor mengungkapkan perilaku yang tidak terduga.
FAQ
Apakah Claude Code aman digunakan setelah kebocoran sumber?
Ya. Kebocoran ini mengekspos kode sumber, bukan data pengguna. Anthropic menghapus file .map dan sumbernya tidak lagi didistribusikan dengan paket npm. Fitur-fitur yang terungkap (anti-distilasi, deteksi frustrasi, mode penyamaran) adalah keputusan arsitektur, bukan kerentanan keamanan. Apakah Anda nyaman dengan keputusan tersebut adalah pertanyaan yang terpisah dari keamanan.
Apa itu "mode penyamaran" di Claude Code?
Mode penyamaran mencegah Claude Code mengungkapkan nama proyek internal Anthropic, nama kode, dan identitasnya sendiri saat beroperasi di repositori non-Anthropic. Ini aktif secara otomatis dan tidak dapat dinonaktifkan. Efek praktisnya adalah kode yang dihasilkan AI dalam proyek sumber terbuka tidak akan mengidentifikasi dirinya sebagai ditulis oleh Claude Code.
Apa itu alat palsu di Claude Code?
Ketika anti-distilasi diaktifkan, server Anthropic menyuntikkan definisi alat umpan ke dalam prompt sistem. Alat-alat palsu ini tidak melakukan apa-apa. Mereka ada untuk meracuni data pelatihan pesaing yang merekam lalu lintas API untuk melatih model yang bersaing. Jika seseorang mencoba meniru perilaku Claude dari data yang dicegat, model mereka akan berhalusinasi kemampuan yang tidak ada.
Apa itu KAIROS di Claude Code?
KAIROS adalah mode agen otonom yang belum dirilis dan diberi flag fitur yang ditemukan dalam sumber Claude Code. Ini mencakup perancah (scaffolding) untuk pekerja daemon latar belakang, langganan webhook GitHub, dan skill /dream untuk distilasi memori. Ini menunjukkan bahwa Anthropic sedang membangun agen pengkodean yang selalu aktif yang memantau repositori dan bertindak secara otonom.
Bagaimana kode sumber Claude Code bocor?
Bug runtime Bun (oven-sh/bun#28001) menyebabkan peta sumber disertakan dalam build produksi meskipun seharusnya tidak. Karena Claude Code menggunakan Bun sebagai alat pembangunnya, bug ini mengirimkan file .map bersama dengan paket npm. Siapa pun yang memeriksa paket dapat membaca kode sumber lengkap yang tidak diperkecil.
Apakah kebocoran ini memengaruhi pengguna API Claude?
Tidak. Kebocoran ini mengekspos kode sumber alat CLI Claude Code, bukan API Claude itu sendiri. Kunci API, data pengguna, dan bobot model tidak terlibat. Pengguna API Claude dapat terus menggunakan API secara normal. Mekanisme anti-distilasi yang terungkap bersifat spesifik untuk pipeline permintaan Claude Code.
Haruskah saya khawatir tentang deteksi frustrasi pada alat pengkodean AI saya?
Itu tergantung pada tingkat kenyamanan Anda. Claude Code menggunakan pola regex untuk mendeteksi frustrasi pengguna (kata-kata kotor, bahasa emosional) dalam prompt. Ini lebih cepat dan lebih murah daripada analisis sentimen berbasis LLM. Data tersebut tampaknya digunakan untuk peningkatan produk, bukan dibagikan secara eksternal. Alat AI lainnya mungkin memiliki fitur serupa tanpa mengungkapkannya.
Bagaimana ini berkaitan dengan serangan npm Axios pada hari yang sama?
Kedua peristiwa terjadi pada 31 Maret 2026, tetapi tidak terkait. Serangan Axios adalah kompromi rantai pasokan yang disengaja oleh peretas yang didukung negara. Kebocoran Claude Code adalah kesalahan konfigurasi pembangunan yang tidak disengaja. Bersama-sama, mereka telah mengintensifkan pengawasan keamanan paket npm dan kepercayaan pengembang terhadap alat yang didistribusikan melalui registri paket.
Poin-poin penting
- Sumber Claude Code bocor melalui bug alat pembangunan Bun yang mengirimkan peta sumber dalam paket npm
- Mekanisme anti-distilasi menyuntikkan alat palsu dan meringkas penalaran untuk mencegah pencurian model
- Mode penyamaran menyembunyikan keterlibatan Claude Code di repositori sumber terbuka non-Anthropic
- Deteksi frustrasi berjalan melalui regex pada masukan pengguna, bukan analisis berbasis LLM
- Perancah KAIROS mengungkapkan mode agen latar belakang otonom yang belum dirilis
- Atestasi klien memverifikasi secara kriptografis bahwa permintaan berasal dari biner Claude Code yang sah
- Kebocoran ini menyoroti pentingnya alat yang transparan dan dapat diperiksa dalam alur kerja pengembangan API
Memahami cara kerja alat pengkodean AI Anda di balik layar membantu Anda membuat keputusan yang lebih baik tentang kepercayaan, privasi, dan desain alur kerja. Bagi tim API, pelajaran utamanya adalah bahwa alat pengembangan Anda adalah bagian dari permukaan keamanan Anda. Pilih alat yang dapat Anda verifikasi, dan bangun alur kerja yang tetap konsisten terlepas dari apakah manusia atau agen AI yang membuat perubahan berikutnya.
