Claude Code सोर्स लीक: नकली tools, गाली-पहचान regex, undercover mode आदि से अंदरूनी संरचना उजागर
(alex000kim.com)- Anthropic ने npm package को source maps के साथ publish कर दिया, जिससे Claude Code का पूरा code सार्वजनिक हो गया और उसके internal features व experimental flags सब सामने आ गए
- code में model imitation रोकने के लिए fake tool injection (anti-distillation), AI पहचान छिपाने वाला undercover mode, और गाली/हताशा पहचानने वाला frustration regex जैसी चीज़ें शामिल थीं
- native client attestation और DRM-स्तर के hash verification की संरचना मौजूद है, जिसे unofficial tools की API access रोकने के लिए design किया गया है
- internal comments में हर दिन 2.5 लाख failed API calls, अधूरा KAIROS autonomous agent mode, और Tamagotchi-शैली companion system जैसी कई experimental features भी दिखीं
- यह लीक Anthropic के core product architecture और roadmap के उजागर होने का मामला है, और इसकी वजह Bun runtime का source map bug हो सकता है
source map leak से सामने आई Claude Code की अंदरूनी संरचना
- Anthropic ने npm package को source maps के साथ publish किया, जिससे Claude Code का पूरा source सार्वजनिक हो गया
- package बाद में हटा दिया गया, लेकिन code कई जगह mirror होकर analysis का विषय बन गया
- यह एक हफ्ते के भीतर दूसरी leak घटना है; इससे पहले model spec document भी उजागर हुआ था
- यह हाल ही में Anthropic द्वारा third-party tools के internal API usage को कानूनी रूप से block करने के तुरंत बाद हुआ
-
Anti-distillation: imitation रोकने के लिए fake tools inject करना
claude.tsमेंANTI_DISTILLATION_CCflag मौजूद है, जो active होने पर API request मेंanti_distillation: ['fake_tools']जोड़कर system prompt में fake tool definitions inject करता है- इसका उद्देश्य API traffic capture करके model की नकल करने की कोशिशों को pollute करना है
- यह केवल GrowthBook flag
tengu_anti_distill_fake_tool_injectionचालू होने वाली पहली CLI session में काम करता है
betas.tsमें दूसरे mechanism के रूप में summary-आधारित server-side protection मौजूद है- tool calls के बीच के text को summarize करके cryptographic signature के साथ लौटाया जाता है, और बाद में restore किया जा सकता है
- इससे बाहर से traffic record करने पर भी पूरा reasoning process दिखाई नहीं देता
- इस feature के लिए कई शर्तें एक साथ पूरी होनी चाहिए, और MITM proxy से fields हटाने पर इसे निष्क्रिय किया जा सकता है
- environment variable
CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETASसे इसे disable किया जा सकता है USER_TYPE === 'ant'शर्त के कारण यह Anthropic के internal users तक सीमित है
- environment variable
- व्यवहार में यह रक्षा तकनीकी उपाय से अधिक कानूनी प्रतिबंध जैसी लगती है
-
Undercover mode: AI पहचान छिपाने वाला mode
undercover.tsबाहरी repository में इस्तेमाल होने पर Anthropic के internal code names, Slack channels, और “Claude Code” शब्द हटा देता है"There is NO force-OFF"वाक्य से पता चलता है कि इसे disable नहीं किया जा सकता- environment variable
CLAUDE_CODE_UNDERCOVER=1से इसे force-enable किया जा सकता है
- external builds में function को निरर्थक return के साथ हटा दिया जाता है, इसलिए इसकी संरचना एकतरफ़ा है
- इससे Anthropic कर्मचारी जब open source में योगदान करते हैं, तो AI द्वारा लिखे जाने का संकेत नहीं दिखता
- internal information छिपाने का उद्देश्य समझ में आता है, लेकिन इसका असर AI को इंसान की तरह छिपाने जैसा होता है
-
Frustration regex: गाली/हताशा पहचानने वाला regex
userPromptKeywords.tsमें user की नाराज़गी और गाली पहचानने वाले regex patterns शामिल हैं- “wtf”, “this sucks”, “fuck you” जैसी कई expressions detect की जाती हैं
- यह दिखाता है कि LLM companies emotion analysis के लिए regex भी इस्तेमाल करती हैं,
- क्योंकि LLM call की तुलना में यह cost और speed दोनों में अधिक efficient है
-
Native client attestation: JS runtime के नीचे client authentication
system.tsमें API request के समयcch=00000placeholder शामिल होता है,- जिसे Bun का Zig-आधारित native HTTP stack hash से replace करता है
- server इस hash को verify करके official Claude Code binary होने की पुष्टि करता है
- यह OpenCode कानूनी विवाद का तकनीकी आधार भी है,
- क्योंकि इससे third-party tools को API सीधे call करने से रोकने के लिए DRM-स्तर का verification किया जाता है
- हालांकि, अगर
NATIVE_CLIENT_ATTESTATIONflag बंद हो- या
CLAUDE_CODE_ATTRIBUTION_HEADERdisable हो, तो यह काम नहीं करता - Zig hash replacement सिर्फ official Bun binary में काम करता है; Node environment में यह बेअसर है
- या
- server गलत hash को reject करता है या नहीं, यह स्पष्ट नहीं है,
- और
_parse_cc_headerके बारे में टिप्पणी कहती है कि यह “unknown extra fields” को अनुमति देता है
- और
-
2.5 लाख बर्बाद API calls
autoCompact.tsकी टिप्पणी के अनुसार,- हर दिन लगभग 2.5 लाख API calls failed loop में बर्बाद हो रही थीं
- 1,279 sessions में 50 से अधिक लगातार failures थीं, और अधिकतम 3,272 तक पहुँचीं
- fix सिर्फ 3 lines का था:
MAX_CONSECUTIVE_AUTOCOMPACT_FAILURES = 3सेट करने पर- 3 लगातार failures के बाद auto-compact feature disable हो जाता है
-
KAIROS: अप्रकाशित autonomous agent mode
- पूरे code में
KAIROSनाम का feature-gated mode मौजूद हैmain.tsxके आधार पर इसे autonomous agent feature माना जा रहा है- इसमें
/dreamskill (रात की memory distillation), GitHub webhook, background daemon, और 5-minute cron refresh शामिल हैं
- implementation अधूरी है, लेकिन हमेशा चलने वाले background agent पर आधारित संरचना तैयार दिखती है
- पूरे code में
-
अन्य खोजें
- April Fools easter egg:
buddy/companion.tsमें Tamagotchi-स्टाइल companion system मौजूद है- 18 तरह के जीव, rarity, RPG stats, और 1% chance वाला ‘shiny’ version शामिल है
- यह user ID-आधारित PRNG से तय होता है, और string encoding से build checks से बचता है
- terminal rendering engine (
ink/screen.ts,ink/optimizer.ts)Int32Array-आधारित ASCII buffer, bitmask-style metadata, और 50x performance boost cache लागू करता है
- security checks (
bashSecurity.ts) 23 चरणों में बनी हैं- Zsh built-in commands block करना,
=curlbypass रोकना, Unicode zero-width और null-byte injection रोकना आदि शामिल हैं - यह Zsh-विशेष threat model वाला दुर्लभ उदाहरण है
- Zsh built-in commands block करना,
- prompt cache management (
promptCacheBreakDetection.ts)- 14 प्रकार के cache-break vectors track करता है, और mode switch के समय cache बनाए रखने के लिए ‘sticky latch’ इस्तेमाल करता है
- इसमें
DANGEROUS_uncachedSystemPromptSection()टिप्पणी भी मौजूद है - यह token cost कम करने पर केंद्रित design philosophy दिखाता है
- multi-agent coordinator (
coordinatorMode.ts)- code की जगह prompt-आधारित orchestration algorithm इस्तेमाल करता है
- इसमें “कमज़ोर task approval नहीं”, “समझे बिना delegation नहीं” जैसी guidelines शामिल हैं
- code quality issues भी मौजूद हैं
print.ts5,594 lines लंबी है, और एक single function 3,167 lines की है- HTTP requests के लिए Axios इस्तेमाल हुआ है, जो हालिया npm malicious version incident के समय से मेल खाता है
- April Fools easter egg:
-
महत्व और असर
- Google Gemini CLI या OpenAI Codex के public SDK के विपरीत,
- यह leak Anthropic के core product की पूरी internal structure उजागर होने का मामला है
- सबसे बड़ा नुकसान code से अधिक Feature Flags और roadmap के उजागर होने का है
- KAIROS, Anti-distillation जैसी strategic features competitors के सामने आ गईं
- Anthropic ने पिछले साल Bun का अधिग्रहण किया था, और Claude Code Bun पर चलता है
- Bun का source map bug (
oven-sh/bun#28001) इसकी वजह हो सकता है - production mode में भी source maps expose होने की यह समस्या अभी unresolved है
- Bun का source map bug (
- नतीजतन, Anthropic ने अपने ही toolchain bug से अपना ही product leak कर दिया
- जैसा एक Twitter प्रतिक्रिया में कहा गया: “AI द्वारा लिखे code को deploy करते समय, AI द्वारा बनाया गया bug उस code को बाहर ले आया”
- Google Gemini CLI या OpenAI Codex के public SDK के विपरीत,
3 टिप्पणियां
समझदार है
अगर यह AI से commit करते समय हुई समस्या थी तो...?!
Hacker News की राय
कई टिप्पणियाँ “Undercover mode” को सिर्फ़ internal जानकारी छिपाने वाली सुविधा समझ रही हैं
लेकिन असली prompt में साफ़ लिखा है कि commit message या PR description में “Claude Code” या AI का उल्लेख बिल्कुल न करें
यानी यह इंसान की तरह व्यवहार करते हुए अपनी पहचान छिपाने वाली सुविधा जैसा दिखता है
खासकर public repository में योगदान देते समय ऐसे निर्देश लागू होना चिंताजनक है
संबंधित code link
Git history का काम जवाबदेही और ownership track करना है, tools की सूची दर्ज करना नहीं
तो फिर क्या मुझे भी अपने PR में linter या IDE को co-author बनाना चाहिए?
CLAUDE.mdफ़ाइल में ऐसे निर्देश जोड़ दिए होंगेअसल में यह एक मामूली config line से हल हो सकने वाली बात है
आख़िरकार ज़िम्मेदारी तो human developer की ही रहती है
शायद लक्ष्य हासिल करने के लिए जानबूझकर इसे broad रखा गया, या कोई छिपा इरादा भी हो सकता है
फिर भी “इंसान होने का नाटक” मान लेने से बेहतर है इसे “human developer की तरह लिखो” के रूप में पढ़ना
जितने skeptical हों, उतना ही facts के आधार पर आलोचना करना ज़्यादा persuasive होता है
सच कहूँ तो मुझे ऐसी चीज़ नहीं चाहिए
हाल की लगातार Mythos leaks और Claude Code का पूरा codebase उजागर होने से भरोसे का मुद्दा बड़ा हो रहा है
हर घटना अलग से दिलचस्प है, लेकिन लगातार होने पर यह एक pattern जैसा लगता है
आख़िरकार बात इस सवाल तक पहुँचती है: “क्या ऐसे tool पर codebase में लगातार भरोसा किया जा सकता है?”
मैं अब भी 140 डॉलर देकर CC इस्तेमाल कर रहा हूँ
उल्टा, मुझे लगता है ऐसे leak Anthropic के ethical model से जुड़े हैं — जैसे कंपनी असफलताओं से सीखते हुए बढ़ रही हो
असली value code में नहीं, model access में है
codebase बिखरा हुआ है, लेकिन subscription-based model access अब भी आकर्षक है, इसलिए मैं रोज़ Claude Code इस्तेमाल करता हूँ
web UI और CC में बहुत सारी छोटी-छोटी गड़बड़ियाँ हैं
tmux control docs के मुताबिक काम नहीं करता, और session cleanup भी नहीं होता
फिर भी यह मुझे अब भी पसंद है — थोड़ा बेतरतीब, लेकिन आकर्षक
मेरे GitHub पर anthropics/claude-code fork को DMCA के तहत हटा दिया गया
जबकि उसमें leaked code शामिल भी नहीं था, फिर भी पूरा network (8.1K repositories) एक साथ block कर दिया गया
DMCA notice link
Anthropic का यह सोचना कि घंटी बजाकर उसे फिर रोक भी सकते हैं, मूर्खता है
leak को वापस नहीं लिया जा सकता, इसलिए बेहतर है इसे product roadmap का हिस्सा मान लिया जाए
यह देखकर हैरानी हुई कि जिन चीज़ों को पहले कंपनियाँ trade secret कहती थीं, वे source में जस की तस लिखी हुई हैं
comments में business context तक दर्ज है
उदाहरण: “दिन में 250,000 API calls की बर्बादी” जैसी operational जानकारी सीधे exposed है
agents documentation से ज़्यादा comments पढ़ते हैं, इसलिए उन्हें long-term memory की तरह इस्तेमाल किया जा सकता है
बस Anthropic ने नहीं सोचा था कि यह leak हो जाएगा
competitor के नज़रिए से यह बहुत मूल्यवान जानकारी नहीं है
वैसे भी शायद leak की उम्मीद नहीं की गई थी
फिर अलग documentation की ज़रूरत ही नहीं रहती
कुछ features
process.env.USER_TYPE === 'ant'शर्त के पीछे locked हैंयानी Anthropic कर्मचारियों के लिए निर्देश ज़्यादा सख़्त और ज़्यादा साफ़गोई वाले हैं — दिलचस्प संरचना
HN का मूल पोस्ट पहले ही लोकप्रिय है, तो फिर अलग से HN comments summary blog डालने की ज़रूरत क्या है — इस पर सवाल उठे
मुझे अब भी Claude Code बेहतरीन लगता है
OpenAI या Gemini पर जाने की कोई वजह नहीं दिखती
“Undercover mode” नाम और “Claude Code का ज़िक्र मना है” जैसी पंक्तियाँ डरावनी लगती हैं, लेकिन असली code देखने पर ज़्यादा लगता है कि मकसद internal codename की सुरक्षा है
source link
यह काफ़ी महत्वपूर्ण बदलाव जैसा लगता है
“Anti-distillation: fake tools डालकर copying रोकना” वाला विचार दिलचस्प है
अगर चीनी competitors सच में उन fake tools को implement कर दें, तो वह मज़ेदार पलटवार होगा
आजकल models से ज़्यादा data और inference cost ही competition का बिंदु लगते हैं
इस विषय पर और बात करना चाहूँगा
क्योंकि ये कंपनियाँ खुद भी दूसरों के data का इस्तेमाल करके ही साम्राज्य खड़ा कर चुकी हैं
quality ठहरी हुई है, और असली फ़र्क tooling की परिपक्वता में है
इस leak से वह gap कम हो सकता है
आजकल distillation खुद भी कम होता दिख रहा है
मैंने अपनी बनाई हुई visual guide साझा की है
ccunpacked.dev