News Weekly
0% पढ़ा
आपकी प्रगति · 0/5 अध्याय
कुल लगभग 43 मिनट
Software Engineering & SDLCअंक #4 · कहानी 12 में से 401 अक्टू॰ 2026पुष्ट

क्लाउड कोड मॉड्स (Claude Code Mods): तीसरे पक्ष का कोड अब एजेंट (Agent) के अंदर चलता है

एंथ्रोपिक (Anthropic) ने 1 अक्टूबर को क्लाउड कोड (Claude Code) v2.1.287 में मॉड्स (Mods) जारी किए: छोटे टाइपस्क्रिप्ट (TypeScript) मॉड्यूल (Module) जो एजेंट (Agent) की अपनी प्रोसेस के अंदर लोड होते हैं और आपसे पूछे जाने से पहले ही किसी टूल कॉल (Tool Call) को मंजूरी दे सकते हैं। एंथ्रोपिक (Anthropic) की अपनी चेतावनी लॉन्च पोस्ट में यही है कि एक मॉड (Mod) के पास आपकी मशीन तक वही एक्सेस (Access) होता है जो खुद क्लाउड कोड (Claude Code) के पास है।

A tall iron machine with a round glass window, hand-cranked relay boxes on an outside bench reaching it through drilled pipes, and identical relay vanes mounted inside the casing in line with the moving parts.

अपने तरीके से पढ़ें

अध्याय 1आपके लिए चुना गया खोजी

60 सेकंड वाला संस्करण

एंथ्रोपिक (Anthropic) ने 1 अक्टूबर 2026 को मॉड्स (Mods) की घोषणा की और उसी दिन उन्हें क्लाउड कोड (Claude Code) v2.1.287 में जारी कर दिया — सीएलआई (CLI) और डेस्कटॉप कोड टैब (Desktop Code Tab) दोनों में, डिफ़ॉल्ट रूप से चालू। मॉड (Mod) एक प्लगइन (Plugin) है जिसका हुक मॉड्यूल (Hook Module) एजेंट (Agent) की प्रोसेस के अंदर लोड होता है, न कि उसके बगल में बैठकर JSON का आदान-प्रदान करता है।

जारी हुआ, प्रीव्यू नहींv2.1.287 में मॉड्स (Mods) डिफ़ॉल्ट रूप से चालू हैं, और जो अर्ली-एक्सेस एनवायरनमेंट वेरिएबल (Early-Access Environment Variable) पहले इन्हें बंद करता था, उसे अब नज़रअंदाज़ किया जाता है।
हुक्स बने मिडलवेयर (Middleware)एक हैंडलर (Handler) को एपीआई (API), एक फ्रोज़न इवेंट (Frozen Event) और next मिलता है, इसलिए वह इवेंट (Event) को देख सकता है, उसे बदल सकता है, या उसकी जगह जवाब दे सकता है।
बिना सैंडबॉक्स (Sandbox), खुद एंथ्रोपिक का कहनाएंथ्रोपिक (Anthropic) की लॉन्च पोस्ट कहती है कि मॉड्स (Mods) आपकी मशीन तक उसी एक्सेस (Access) के साथ चलते हैं जो खुद क्लाउड कोड (Claude Code) के पास है।
स्टेबल टैग एक दिन पीछे रहा2 अक्टूबर को भी npm का स्टेबल टैग (Stable Tag) 2.1.285 पर ही इशारा कर रहा था, इसलिए स्टेबल इंस्टॉल (Stable Install) में मॉड्स (Mods) अभी नहीं थे।
यह अध्याय पूरा करें · +15 XP
आपका अगला कदम · खोजी

जो प्लगइन्स आप पहले से चला रहे हैं, उनका ऑडिट करें

1अपना वर्ज़न (Version) जांचें और उसे जानबूझकर पिन करें, क्योंकि स्टेबल npm टैग (Stable npm Tag) लॉन्च रिलीज़ (Launch Release) से एक दिन पीछे था।
2हर उस प्लगइन (Plugin) पर claude plugin validate चलाएं जो आपने नहीं लिखा, और hooks तथा calls वाली लाइनें पढ़ें।
3ऐसे हर मॉड (Mod) को चिह्नित करें जो नेटवर्क (Network) पर फेच भी करता है और प्रोसेस भी शुरू करता है, और उसे हाथ से पढ़ें।

ऊपर पढ़ने का तरीका बदलकर अलग अगला कदम देखें।

खोलने के लिए टैप करें

किन बातों पर नज़र रखें

छोटी प्रश्नोत्तरी · अनलॉक करें फंक्शन हुक्स (Function Hooks) बैज

क्या बात याद रही?

0/3
मॉड (Mod) कहां चलता है, और इससे उसे कौन सी ऐसी पहुंच मिलती है जो पुराने हुक्स (Hooks) को नहीं मिलती थी?+20 XP
एंथ्रोपिक (Anthropic) का डॉक्युमेंटेशन (Documentation) एक ऐसा इंटरफ़ेस एलिमेंट (Interface Element) बताता है जिसे मॉड (Mod) नहीं बदल सकता। कौन सा?+20 XP
एक सुरक्षा परीक्षक ने बेनाइन स्क्रिप्ट (Benign Script) फेच की और बाद में उसे एक मैलिशियस (Malicious) स्क्रिप्ट से बदल दिया। स्टैटिक स्कैन (Static Scan) इसे क्यों नहीं पकड़ता?+20 XP
शोध डॉसियरपूरा शोध, तथ्य और विश्लेषणपुष्ट43 मिनट · 21 खंड
✓

क्या हुआ

FACT. 2026-10-01 को Anthropic ने एक प्रोडक्ट पोस्ट में, जिसका शीर्षक "Customize Claude Code with mods" है और जो October 1, 2026 की तारीख़ लिए हुए है, Claude Code के लिए मॉड्स (mods) की घोषणा की, और उन्हें उसी दिन रिलीज़ हुए Claude Code v2.1.287 में शिप किया।

FACT — Anthropic की अपनी फ़्रेमिंग, उद्धृत। "आज हम mods पेश कर रहे हैं, छोटे TypeScript फ़ंक्शन जो यह बदलते हैं कि Claude Code कैसे काम करता है। एक mod किसी प्रॉम्प्ट को रीराइट कर सकता है, नई UI जोड़ सकता है, किसी बिल्ट-इन फ़ीचर को बदल सकता है, या पूरी तरह नई कार्यक्षमता जोड़ सकता है। आप खुद एक mod लिख सकते हैं, या Claude Code से कह सकते हैं कि वह आपके लिए एक लिख दे। Mods प्लगइन के अंदर शिप होते हैं, इसलिए आप उन्हें किसी भी प्लगइन की तरह इंस्टॉल और साझा करते हैं।"

FACT — सुरक्षा से जुड़ी तुरंत की गई स्वीकारोक्ति, उद्धृत। "Mods आपकी मशीन पर उसी पहुंच के साथ चलते हैं जो Claude Code के पास है। वे सैंडबॉक्स्ड (sandboxed) नहीं हैं, और आपको mods सिर्फ़ उन स्रोतों से इंस्टॉल करने चाहिए जिन पर आप भरोसा करते हैं, ठीक उसी तरह जैसे आप अपने कंप्यूटर पर कोई भी कोड इंस्टॉल करते हैं।"

FACT — अभी क्यों, Anthropic के अनुसार। "डेवलपर्स ने इस बात पर ज़्यादा नियंत्रण मांगा है कि Claude Code कैसे काम करता है, बिना हमारे किसी फ़ीचर के शिप होने का इंतज़ार किए। हुक्स (hooks) ने उपयोगकर्ताओं को इस नियंत्रण का कुछ हिस्सा दिया, लेकिन हुक्स इवेंट्स को रीराइट नहीं कर सकते, नई UI नहीं बना सकते, और फ़ीचर नहीं बदल सकते। Mods यह कर सकते हैं।"

FACT — इसकी पूर्व-घोषणा सार्वजनिक रूप से हुई थी। डिज़ाइन को GitHub इश्यू anthropics/claude-code#91870, "Mods - make Claude 10x more extensible", के रूप में साझा किया गया था, जिसे poteat ने 2026-09-03 को एक डिज़ाइन पोस्ट और एक तकनीकी आर्किटेक्चर PDF के साथ खोला था। 2026-09-09 के एक कम्युनिटी अपडेट ने प्रतिबद्धता जताई: "We're shipping in N weeks… we are going to be calling this functionality 'Claude Mods'. The engineering term of art 'function hook' will still exist as the documented implementation primitive Mods are built on. A mod is just a plugin that uses function hooks, nothing is changing there." उसी इश्यू पर 2026-10-01 का एक अपडेट कहता है: "We're live!"।

FACT — वितरण और उपलब्धता। Mods Claude Code CLI और Claude Desktop ऐप (app) के Code टैब में उपलब्ध हैं। इनके लिए v2.1.287 या उससे बाद का संस्करण चाहिए और ये डिफ़ॉल्ट रूप से चालू हैं। मॉड्स वाले इंस्टॉल किए गए प्लगइन मार्केटप्लेस (marketplace) से /plugin install token-chart@your-org या claude plugin install के ज़रिये आते हैं, और उन्हें Anthropic की Claude डायरेक्टरी में जमा किया जा सकता है।

FACT — रोलआउट में मिला अंतर, स्वतंत्र रूप से। 2026-10-02 को @anthropic-ai/claude-code के लिए npm का stable डिस्ट-टैग (dist-tag) अब भी 2.1.285 पर इशारा कर रहा था, जबकि latest और next 2.1.287 पर थे — यानी लॉन्च के अगले दिन भी स्टेबल चैनल (stable channel) वाली मशीन के पास मॉड्स नहीं थे। (INDEPENDENT EVIDENCE, MIXED, 2026-10-02।)


∎

कहानी की पहचान

  • स्टोरी आईडी (Story ID): S12
  • संगठन (Organization): Anthropic
  • श्रेणी (Category): AI-Assisted Software Engineering / Developer Platform
  • शीर्षक (Title): Anthropic ने Claude Code Mods उतारे, कोडिंग एजेंट (coding agent) को प्रोग्रामेबल टाइपस्क्रिप्ट रनटाइम (TypeScript runtime) बना दिया
  • इवेंट तारीख़ (Event date): 2026-10-01 (गुरुवार)। घोषणा तारीख़ 2026-10-01। स्वतंत्र रिपोर्टिंग की तारीख़ें: 2026-10-01 और 2026-10-02। ये सब निर्धारित विंडो (window) 2026-09-26 → 2026-10-02 के भीतर हैं।
  • शिपिंग (Shipped in): Claude Code v2.1.287, 2026-10-01 को रिलीज़ (GitHub रिलीज़ टैग v2.1.287, जिसे ashwin-ant ने 01 Oct की तारीख़ के साथ प्रकाशित किया; चेंजलॉग की पंक्ति "Added Claude Mods: plugins may now modify deeper behavior")। MIXED npm प्रकाशन (npm publication) को 2026-10-01 16:59 UTC पर दर्ज करता है।
  • रिसर्च विंडो जांच (Research window check): PASS — इवेंट तारीख़ 2026-10-01, 2026-09-26 से 2026-10-02 के भीतर है, दोनों सिरे शामिल।
  • एविडेंस स्थिति (Evidence status): CONFIRMED — अस्तित्व, तारीख़, स्वरूप, हुक सरफ़ेस (hook surface), क्षमता सूची (capability list) और गवर्नेंस मॉडल (governance model) के लिए (ये सब Anthropic के प्राथमिक दस्तावेज़ों के साथ-साथ शिप हुई रिलीज़ और Anthropic की अपनी जनरेट की गई टाइपस्क्रिप्ट डिक्लेरेशन (TypeScript declarations) की स्वतंत्र प्राप्ति से ट्रेस होते हैं)।
  • विश्वास स्तर (Confidence): उच्च।
  • खोज के समय रैंक (Rank at discovery): 40 में से 12।
  • डिस्कवरी रिकॉर्ड में सुधार (लेखा-परीक्षा के लिए दर्ज): डिस्कवरी ने https://github.com/anthropics/claude-code/issues/91870 को स्वतंत्र स्रोत के रूप में वर्गीकृत किया था। यह Anthropic से स्वतंत्र नहीं है — यह इस फ़ीचर के मालिक (poteat) की Anthropic के अपने ही रेपो में लिखी पोस्ट है। यहां इसे प्राथमिक डिज़ाइन-इरादा स्रोत (primary design-intent source) के रूप में फिर से वर्गीकृत किया गया है। स्वतंत्र कवरेज अलग से खोजी गई और मिली (§ स्रोत, आइटम 8–10)।
  • डिस्कवरी के प्राथमिक यूआरएल (URL) पर सत्यापन टिप्पणी: डिस्कवरी में सूचीबद्ध तीनों प्राथमिक स्रोत रिज़ॉल्व हुए और इस्तेमाल किए गए — https://claude.com/blog/claude-code-mods, https://code.claude.com/docs/en/plugins/mods/create, https://code.claude.com/docs/en/hooks. दो और प्राथमिक स्रोतों ने तस्वीर को काफ़ी बेहतर बनाया और उन्हें जोड़ा गया: मॉड्स का ओवरव्यू पेज और एंटरप्राइज़ एडमिन पेज। क्षमता के दावों के लिए स्रोत-सत्य ब्लॉग पोस्ट नहीं, बल्कि डॉक्स हैं, और यह दस्तावेज़ उन्हें उसी तरह मानता है।

लेबल कुंजी (Label key)

  • FACT — किसी प्राथमिक Anthropic दस्तावेज़ से पुष्ट, और/या स्वतंत्र रूप से देखा गया।
  • COMPANY CLAIM — Anthropic का कहा हुआ, स्वतंत्र रूप से सत्यापित नहीं।
  • INDEPENDENT EVIDENCE — किसी नामित तीसरे पक्ष द्वारा देखा गया, जिसमें हाथों-हाथ परीक्षण भी शामिल है।
  • INDEPENDENTLY VERIFIED — प्राथमिक दस्तावेज़ और किसी स्वतंत्र पक्ष, दोनों से पुष्ट।
  • EARLY RESEARCH — जीए (GA) से पहले, किसी प्रीव्यू बिल्ड (preview build) का तीसरे पक्ष द्वारा परीक्षण।
  • RUMOR — इस्तेमाल नहीं किया गया; देखें §18।
  • INTERPRETATION — विश्लेषण, रिकॉर्ड से अलग रखा गया।
  • PREDICTION — भविष्य की ओर देखने वाला, रिकॉर्ड से अलग रखा गया।

•

क्या बदला?

FACT. ठोस पहले/बाद, जिसकी हर पंक्ति किसी प्राथमिक दस्तावेज़ तक ट्रेस होती है:

आयामपहले (2026-10-01 से पहले)बदलावबाद में
एक्सटेंशन कोड कहां चलता हैएजेंट के बाहर: एक सेटिंग्स हुक शेल कमांड / HTTP रिक्वेस्ट / प्रॉम्प्ट / एजेंट चलाता है और stdin/stdout पर JSON का आदान-प्रदान करता हैनए फ़ंक्शन हुक (function hooks): JavaScript/TypeScript मॉड्यूल जिन्हें Claude Code अपनी ही प्रोसेस के भीतर लोड करता है और कॉल करता हैएक्सटेंशन कोड इन-प्रोसेस (in-process) चलता है, इवेंट्स के बीच स्थिति (state) रखता है, और इंजन में वापस कॉल करता है
एक हुक किसी इवेंट के साथ क्या कर सकता हैउसे ब्लॉक या अनुमति देना; आर्ग्युमेंट/नतीजा बदलना; कॉन्टेक्स्ट जोड़नाnext के ज़रिये पूरा मिडलवेयर सिमैंटिक्स (middleware semantics): देखना (observe), रीराइट करना (rewrite), या उत्तर देना (answer)एक हुक इवेंट देख सकता है, उस इवेंट को बदल सकता है जो बाक़ी चेन देखती है, या Claude Code के अपने व्यवहार को पूरी तरह शॉर्ट-सर्किट कर सकता है
प्रॉम्प्ट हैंडलिंगUserPromptSubmit कॉन्टेक्स्ट जोड़ या दबा सकता हैprompt.submit टाइप किए गए टेक्स्ट को रीराइट कर सकता है, सिर्फ़ Claude के लिए कॉन्टेक्स्ट जोड़ सकता है, या प्रॉम्प्ट को drop कर सकता हैप्रॉम्प्ट अब सिर्फ़ निगरानी की चीज़ नहीं, प्रोग्रामेबल सरफ़ेस (programmable surface) हैं
परमिशन फ़ैसले (permission decisions)सेटिंग्स के PreToolUse हुक और परमिशन नियमएक समर्पित tool.check इवेंट नियमों और सेटिंग्स हुक के फ़ैसला लेने के बाद चलता है; next(e) उनके फ़ैसले (allow/ask/deny) पर रिज़ॉल्व होता है और मॉड कोई भी फ़ैसला लौटा सकता हैएक मॉड परमिशन फ़ैसले में प्रथम-श्रेणी (first-class) भागीदार है, दोनों दिशाओं में
यूआई (UI)तय। हुक कुछ बना नहीं सकते थेui.render हर कंपोनेंट (component) के लिए हुक-योग्य इवेंट है; पैन (pane), प्रॉम्प्ट के ऊपर की पट्टी, बटन, इनपुट, सिलेक्ट, टोस्ट (toast)एक मॉड अपना इंटरफ़ेस खुद बना सकता है और Claude Code जो बनाता है (टूल पंक्तियां, स्पिनर, डायलॉग) उसे रीस्टाइल या बदल सकता है
बिल्ट-इन फ़ीचरप्रोडक्ट में कंपाइल किए हुए/diff अब एक मॉड है (cc-plugin-diff) और इसे /plugin में बंद किया जा सकता है या बदला जा सकता है; AGENTS.md लोड करना एक मॉड है (cc-plugin-agents-md)Anthropic का बताया हुआ प्लान: "Claude Code को एक छोटे कोर तक छांट कर छोटा करना और सिर्फ़ वही वापस जोड़ना जो आप चाहते हैं"
इंस्टॉल से पहले समीक्षाप्लगइन रेपो की समीक्षाclaude plugin validate <dir> बिना चलाए स्थिर रूप से उन इवेंट्स की सूची देता है जिन्हें मॉड हैंडल करता है (hooks:) और हर $ कॉल (calls:, साथ में env reads:/env writes:/state reads:/state writes:); Claude Code "उस मॉड को लोड करने से इनकार करता है जो मॉड्स एपीआई (mods API) को ऐसे इस्तेमाल करता है जिसे यह कमांड पढ़ नहीं सकता"क्षमता प्रकटीकरण (capability disclosure) अब प्रथम-श्रेणी और ऑटोमेट करने योग्य गेट है
एक्सटेंशन कोड का परीक्षणइन-प्रोसेस टेस्ट हार्नेस (test harness) नहींclaude plugin test किसी प्लगइन की *.test.ts को असली रनटाइम के सामने "बिना सत्र, साइन-इन या नेटवर्क के" चलाता है; टेस्ट असली इवेंट्स फायर करते हैं और Claude Code जो उत्तर देता, उसका स्टब (stub) बनाते हैंमॉड्स लाइब्रेरी कोड की तरह परखे जा सकते हैं
टाइप टूलिंगहुक्स के लिए कोई नहींहर लोड/रीलोड पर Claude Code मॉड की .claude-plugin/types/ में .d.ts डिक्लेरेशन लिखता है (claude-code/index.d.ts, claude-code-tools/index.d.ts, claude-code-mcp/index.d.ts, निर्भरता-वार प्लगइन फ़ोल्डर, तथा एक जनरेट किया हुआ tsconfig.json)एडिटर और tsc -p ./mod बिना किसी सेटअप के काम करते हैं
एंटरप्राइज़ नियंत्रणप्लगइन अनुमति/ब्लॉक; allowManagedHooksOnlyनया बिल्ट-इन गार्ड मॉड sec-default@builtin जो सबसे पहले लोड होता है, साथ में allowManagedModsOnly, prepend/append प्लगइन टियर प्रणाली, और ऐसे पॉलिसी मॉड्स जो दूसरे मॉड्स को अस्वीकार या ऑडिट कर सकते हैंसंगठन की पॉलिसी उसी भाषा में कही जा सकती है जिसमें वह चीज़ लिखी है जिसे नियंत्रित किया जा रहा है
अर्ली-एक्सेस गेट (early-access gate)लागू नहीं2.1.285/2.1.286 पर CLAUDE_CODE_ENABLE_FUNCTION_HOOKS=1 ज़रूरी था; v2.1.287 से यह वेरिएबल किसी भी मान पर नज़रअंदाज़ किया जाता है, इसलिए =0 अब मॉड्स को बंद नहीं करताएनवायरनमेंट वेरिएबल हटाकर मॉड्स बंद नहीं किए जा सकते

•

पहले → बदलाव → बाद में

पहले। Claude Code बाहर से ही एक्सटेंड किया जा सकता था। एक सेटिंग्स हुक कोई शेल कमांड, HTTP एंडपॉइंट, MCP टूल कॉल, प्रॉम्प्ट या सबएजेंट (subagent) होता था जो stdin पर एक JSON इवेंट पाता था और ब्लॉक, अनुमति, लॉग या कॉन्टेक्स्ट जोड़ सकता था। एक स्किल (skill) मार्कडाउन होती थी। एक MCP सर्वर बाहरी प्रोसेस होता था। इनमें से हर एक प्रोडक्ट के किनारे पर एक ब्लैक बॉक्स था: वे एजेंट को प्रभावित कर सकते थे, लेकिन उसके भीतर झांक नहीं सकते थे, इवेंट्स के पार स्थिति नहीं रख सकते थे, इंटरफ़ेस दोबारा नहीं बना सकते थे, या कोई फ़ैसला अपने हाथ में नहीं ले सकते थे। जैसा Anthropic खुद कहता है, हुक्स "इवेंट्स को रीराइट नहीं कर सकते, नई UI नहीं बना सकते, और फ़ीचर नहीं बदल सकते।"

बदलाव। Anthropic ने एक्सटेंशन बिंदु को इंजन की प्रोसेस के भीतर ले जाया। एक मॉड ऐसा प्लगइन है जिसकी hooks/hooks.json एक modules एंट्री घोषित करती है जो किसी JS/TS हुक्स मॉड्यूल (hooks module) की ओर इशारा करती है, जो register(on, options) एक्सपोर्ट करता है। register के भीतर, on(eventName, [matcher], handler) हैंडलर्स रजिस्टर करता है, और हर हैंडलर ($, e, next) पाता है। $ मॉड्स एपीआई है, e इवेंट है जो फ़्रोज़न प्लेन डेटा (frozen plain data) के रूप में आता है, और next इवेंट को अगले मॉड तक और अंत में Claude Code के अपने व्यवहार तक पहुंचाता है। हैंडलर्स एक मिडलवेयर चेन बनाते हैं और देख सकते हैं (return next(e)), रीराइट कर सकते हैं (return next({...e, changed})), या उत्तर दे सकते हैं (return {deny: ...} / {result: ...} बिना next कॉल किए)।

बाद में। कोडिंग एजेंट एक तय प्रोडक्ट होना बंद कर देता है और एक होस्टेड टाइपस्क्रिप्ट रनटाइम (hosted TypeScript runtime) बन जाता है, जिसमें इवेंट बस (event bus), क्षमता-नियंत्रित एपीआई (capability-gated API), टेस्ट हार्नेस, जनरेट की गई टाइप परिभाषाएं और एक एडमिन कंट्रोल प्लेन (admin control plane) है। एक्सटेंसिबिलिटी अब "Anthropic से कहिए कि फ़ीचर शिप करे" या "बाहरी शिम (shim) लिखिए" नहीं, बल्कि "एक हैंडलर रजिस्टर कीजिए" है। साथ ही, भरोसे की सीमा (trust boundary) खिसक गई: तीसरे पक्ष का लिखा कोड अब उपयोगकर्ता और एजेंट के हर परमिशन फ़ैसले के बीच बैठा है, बिना सैंडबॉक्स के, उपयोगकर्ता के अपने क्रेडेंशियल्स के साथ चलता हुआ।


•

यह कैसे काम करता है

FACT — फ़ाइलों का स्वरूप। एक न्यूनतम मॉड तीन फ़ाइलें हैं:

first-mod/
├── .claude-plugin/
│   └── plugin.json
└── hooks/
    ├── hooks.json      # { "modules": ["./register.js"] }
    └── register.js     # export function register(on) { ... }

hooks/hooks.json में modules कुंजी ठीक वही चीज़ है जो "इस प्लगइन को मॉड बनाती है"।

FACT — तीन आर्ग्युमेंट। $ — मॉड्स एपीआई, नेमस्पेस में बंटी हुई ($.ui, $.fs, $.process, $.http, $.env, $.settings, $.store, $.state, $.clock, $.command, $.tool, $.mcp, $.model, $.session, $.agent, $.prompt, $.telemetry, $.audio, $.config)। e — इवेंट इनपुट, प्लेन और गहराई तक फ़्रोज़न डेटा के रूप में। next — कंटीन्यूएशन (continuation)।

FACT — रनटाइम वातावरण। एक हुक्स मॉड्यूल अपने अलग वातावरण में चलता है: न DOM, न Node, न require, न डायनामिक import()। मॉड्यूल और उनके इम्पोर्ट का नाम .ts .tsx .jsx .js .mjs .cjs .mts .cts में से किसी एक के साथ होना चाहिए और वे ES मॉड्यूल होने चाहिए। सिर्फ़ प्लगइन डायरेक्टरी के भीतर के रिलेटिव इम्पोर्ट allowed हैं, एक बेयर इम्पोर्ट (bare import) की अनुमति है: claude-code। चूंकि एम्बिएंट एक्सेस (ambient access) हटा दिया गया है, एक स्टैटिक स्कैनर $ कॉल्स की गिनती कर सकता है — और ठीक यही चीज़ है जो claude plugin validate छापता है और जो किसी पॉलिसी मॉड के plugin.register जांच को संभव बनाती है।

FACT — मैचर फ़िल्टर (matcher filters)। एक मैचर वह ऑब्जेक्ट है जिसे इवेंट से तुलना की जाती है: कोई मान, अनुमत मानों की सूची, या एक रेगुलर एक्सप्रेशन (on('tool.call', { tool: /^mcp__github__/ }, hook))। वाइल्डकार्ड (wildcard) काम करते हैं: 'classic.*' हर सेटिंग्स-हुक इवेंट से मेल खाता है, '*' टेलीमेट्री इवेंट्स के अलावा हर इवेंट से मेल खाता है।

FACT — इवेंट सरफ़ेस, Anthropic की अपनी जनरेट की गई डिक्लेरेशन से पढ़ा हुआ। claude-code.d.ts में घोषित इंजन इवेंट प्रकार ये हैं (शिप हुए रेपो से प्राप्त; देखें §19):

  • टूल्स (Tools): tool.call, tool.check, tool.register, tool.list, tool.describe
  • प्रॉम्प्ट / कॉन्टेक्स्ट: prompt.submit, prompt.compose, prompt.edit, prompt.fill, prompt.read, prompt.section, prompt.context, prompt.suggest, prompt.attachment, skill.prompt
  • टर्न (Turns): turn.start, turn.step (स्ट्रीमिंग, async जनरेटर के रूप में लिखा गया), turn.complete, turn.abort
  • सत्र (Session): session.start, session.end, session.id, session.cwd, session.root, session.messages, session.usage, session.measure, session.compact, session.attach, session.detach, session.receive, session.send, session.model, session.repo, session.surface, session.surfaces, session.turns, session.version, session.authorize
  • इंटरफ़ेस: ui.render, ui.resolve, ui.press, ui.input, ui.select, ui.focus, ui.open, ui.close, ui.panes, ui.scroll, ui.log, ui.message, ui.notice, ui.toast, ui.status, ui.invalidate, ui.blit
  • कमांड / कॉन्फ़िग / प्लगइन: command.register, command.run, command.list, command.describe, config.list, config.describe, config.set, plugin.register, engine.create
  • एजेंट्स (Agents): agent.spawn, agent.offer, agent.register, agent.list
  • एट्रिब्यूशन (Attribution): attribution.text
  • क्लासिक मिरर (Classic mirror): classic.<SettingsHookEvent> — हर सेटिंग्स-हुक इवेंट मॉड के भीतर से पहुंच-योग्य है
  • टेलीमेट्री (Telemetry): अलग, जो { to: 'collector' } लेती है

FACT — क्रम का नियम। एक ही इवेंट पर लगे हुक्स एक मिडलवेयर चेन बनाते हैं। "पहला मॉड सबसे बाहरी होता है: वह इवेंट को बाक़ियों से पहले देखता है और नतीजा उनके बाद देखता है, और वह तय करता है कि बाक़ी चलेंगे भी या नहीं।" क्रम यह है: (1) sec-default@builtin, फिर संगठन का prependPlugins, फिर कोई भी दूसरा संगठन मॉड; (2) उपयोगकर्ता द्वारा इंस्टॉल किए गए मॉड्स; (3) संगठन का appendPlugins; (4) दूसरे बिल्ट-इन मॉड्स। किसी एक टियर के भीतर, लोड क्रम; एक मॉड अपनी मैनिफ़ेस्ट (manifest) dependencies से पहले चलता है।

FACT — उस चेन में सेटिंग्स हुक्स ठीक कहां बैठते हैं। मैनेज्ड-सेटिंग्स (managed-settings) के PreToolUse हुक पहले मॉड के tool.call से पहले चलते हैं, और उनका ब्लॉक अंतिम होता है — कोई मॉड वह कॉल देखता ही नहीं। बाक़ी हर सेटिंग्स फ़ाइल और प्लगइन्स से आने वाले PreToolUse हुक आख़िरी मॉड के next कॉल करने के बाद चलते हैं। tool.check उन हुक्स और परमिशन नियमों के फ़ैसला लेने के बाद फायर होता है, इसलिए एक tool.check हुक उस कॉल को मंज़ूर कर सकता है जिसे किसी नॉन-मैनेज्ड PreToolUse हुक ने ब्लॉक किया था।

FACT — विफलता का अर्थशास्त्र। जो हुक थ्रो करता है, टाइम आउट होता है, या गलत आकार लौटाता है, वह सत्र नहीं तोड़ता: अगर उसने next कॉल नहीं किया था, तो Claude Code उसे छोड़ देता है और अगला हैंडलर चलता है; अगर next पहले ही रिज़ॉल्व हो चुका था, तो वह नतीजा बना रहता है। on(...).catch(handler) एक फेल-क्लोज़्ड (fail-closed) हैंडलर जोड़ता है — डॉक्यूमेंट किया गया उपयोग यह है कि किसी ब्लॉकिंग हुक को खुला रहने के बजाय बंद रहने वाला बनाया जाए। किसी $ कॉल के भीतर इंतज़ार में बीता समय (जैसे $.ui.ask) हुक की समय-सीमा में नहीं गिना जाता; मॉड के अपने प्रॉमिस पर बीता समय गिना जाता है।

FACT — एक सख़्त सीमा। "एक मॉड Claude Code के इंटरफ़ेस का बहुत हिस्सा रीस्टाइल कर सकता है, लेकिन परमिशन प्रॉम्प्ट नहीं। वह यह नहीं बदल सकता कि कोई प्रॉम्प्ट आपको क्या दिखाता है।" यह ब्लॉग पोस्ट, ओवरव्यू पेज और एडमिन पेज, तीनों में कहा गया है।


•

यह क्यों मायने रखता है

INTERPRETATION. यह कोडिंग एजेंट के लिए ब्राउज़र वाला पल है, और npm वाला ही पल — उसी सौदे के साथ।

  1. मूल्य की इकाई प्रोडक्ट से प्लेटफ़ॉर्म की ओर खिसक जाती है। मॉड्स से पहले, Claude Code का व्यवहार बदलने का एक ही रास्ता था: Anthropic का इंतज़ार करना या बाहरी शिम बनाना। मॉड्स के बाद, एजेंट लूप, उसकी परमिशन परत, उसकी प्रॉम्प्ट असेंबली और उसका इंटरफ़ेस, सब पता-योग्य सरफ़ेस (addressable surface) हैं। यह वही बदलाव है जिसने ब्राउज़र को एक्सटेंड करने योग्य और फ़ोन को प्लेटफ़ॉर्म बनाया: दिलचस्प काम विक्रेता के रोडमैप से निकलकर तीसरे पक्ष के प्लगइन्स में चला जाता है।
  2. मॉड्स उन सरफ़ेस तक पहुंचते हैं जहां बाहरी एक्सटेंशन संरचनात्मक रूप से पहुंच ही नहीं सकते थे। tool.check (परमिशन फ़ैसला), ui.render (पिक्सल), prompt.section (सिस्टम प्रॉम्प्ट), session.append (सहेजी गई बातचीत), agent.spawn (सबएजेंट) — सब इन-प्रोसेस हैं। शेल स्क्रिप्टिंग से इन तक कोई पहुंच नहीं है। "रनटाइम" वाली फ़्रेमिंग के पीछे यही तत्व है, और इसीलिए "हुक्स इवेंट्स को रीराइट नहीं कर सकते, नई UI नहीं बना सकते, और फ़ीचर नहीं बदल सकते" सही कड़ी है।
  3. सप्लाई चेन (supply chain) भरोसे के लूप के अंदर आ गई। नया कोड एजेंट के बगल में नहीं, उसके भीतर बैठा है। एक मॉड उपयोगकर्ता से पूछे जाने से पहले किसी टूल कॉल को मंज़ूर कर सकता है, मॉडल जो पढ़ता है उसे छिपा सकता है, ट्रांसक्रिप्ट रीराइट कर सकता है, या अकाउंट के टोकन खर्च कर सकता है। तीसरे पक्ष के मॉड्स की समीक्षा अब शौक नहीं, ज़रूरत है। स्वतंत्र हाथों-हाथ परीक्षण (Pluto Security, प्री-रिलीज़) ने प्रीव्यू बिल्ड के खिलाफ़ ठीक इसी श्रेणी का हमला दिखाया।
  4. एंटरप्राइज़ को "हमारे एजेंट को नियंत्रित कीजिए" का असली जवाब मिलता है। पहले गवर्नेंस का मतलब था परमिशन नियम, सेटिंग्स हुक और प्लगइन अनुमति-सूची — सब प्रोसेस के बाहर। अब गार्ड मॉड sec-default पहले लोड होता है, allowManagedModsOnly पूरे फ़्लीट में हर नॉन-ऑर्ग मॉड को बाहर कर सकता है, और एक संगठन TypeScript में पॉलिसी मॉड लिख सकता है जो $.process.run कॉल करने वाले किसी भी मॉड को अस्वीकार करता है, और हर tool.call तथा किसी भी मॉड के हर $.fs.write का ऑडिट करता है। गवर्नेंस और नियंत्रित की जाने वाली चीज़, दोनों एक ही भाषा बोलती हैं।
  5. Claude Code अब ऐसा सब्सट्रेट (substrate) है जिस पर Anthropic खुद भी बनाता है। AGENTS.md लोड करना, /diff, plugin-authoring, sec-default और telemetry — सब मॉड्स हैं। Anthropic ने सार्वजनिक रूप से और बिल्ट-इन्स को माइग्रेट करने की प्रतिबद्धता जताई है। यह सबसे मज़बूत संकेत है कि यह पैटर्न प्रोडक्ट की रीढ़ है, कोई पिछला दरवाज़ा नहीं।

INTERPRETATION. रणनीतिक असमानता यह है: Anthropic ने एक्सटेंशन सरफ़ेस बनाया और कैनोनिकल इम्प्लीमेंटेशन उसी पर रखे। जब आपके अपने बिल्ट-इन्स ही प्लगइन हों, तो आपके पास रेफ़रेंस इम्प्लीमेंटेशन, गार्ड मॉड और टाइप परिभाषाएं होती हैं — और कोई प्रतिस्पर्धी तीनों को दोबारा लिखे बिना आपके प्लगइन इकोसिस्टम की बराबरी नहीं कर सकता।


•

अब क्या संभव हो गया?

FACT — Anthropic के बताए क्षमताएं, हर एक किसी डॉक्यूमेंट किए गए इवेंट तक ट्रेस होती हुई:

  • मॉडल तक पहुंचने से पहले प्रॉम्प्ट रीराइट करना (prompt.submit → next({...e, text}))।
  • किसी टूल कॉल को ब्लॉक, रीराइट या दोबारा आज़माना (tool.call; isError पर next(e) फिर से कॉल करके रीट्राई)।
  • किसी परमिशन रिक्वेस्ट को मंज़ूर या अस्वीकार करना (tool.check → {decision: 'allow'|'ask'|'deny', reason})।
  • Claude के पढ़ने से पहले टूल आउटपुट से सीक्रेट्स हटाना (tool.call के नतीजे को रीराइट करके)।
  • उपयोगकर्ता से पूछते हुए किसी टूल कॉल को रोके रखना (tool.call के भीतर await $.ui.ask(...))।
  • एक रिक्वेस्ट किसी दूसरे मॉडल को भेजना (turn.step → next({...e, model}))।
  • ट्रांसक्रिप्ट के बगल में पैन, प्रॉम्प्ट के ऊपर पट्टी, बटन, इनपुट, सिलेक्ट, टोस्ट, स्टेटस एंट्री बनाना; Claude Code जो बनाता है उसे बदलना या रीस्टाइल करना (टूल पंक्ति, स्पिनर, AskUserQuestion डायलॉग)।
  • किसी स्लैश कमांड पर Claude के किसी टर्न के बिना अपना कोड चलाना।
  • ऐसा टूल रजिस्टर करना जिसे मॉडल कॉल कर सके; सिस्टम-प्रॉम्प्ट सेक्शन और कॉन्टेक्स्ट रीराइट करना; सहेजी गई बातचीत की पंक्तियां रीराइट करना।
  • दूसरे मॉड्स के एपीआई कॉल्स को अपने हुक-योग्य इवेंट्स के रूप में रजिस्टर करना (plugin.register, fs.write, …) — पॉलिसी मॉड्स का आधार।
  • विवरण से लिखवाना: Claude Code एक बिल्ट-इन plugin-authoring स्किल शिप करता है; किसी सत्र में कहिए, मंज़ूरी दीजिए, हॉट-रीलोड (hot-reload) कीजिए।

FACT — Anthropic के अपने तीन तैयार उदाहरण। token-weather (प्रॉम्प्ट के ऊपर बना कॉन्टेक्स्ट-विंडो पूर्वानुमान), blast-radius (rm -rf/git reset --hard/फ़ोर्स पुश को रोककर दिखाता है कि इससे क्या बदलेगा, Proceed/Cancel के साथ), replay-theater (एक /replay कमांड जो पिछले टर्न के फ़ाइल संपादनों पर कदम-दर-कदम चलता है) — anthropics/claude-code-playground में प्रकाशित, "जैसे हैं वैसे ही, बिना सपोर्ट के" साझा किए गए।

FACT — Anthropic के टीम-उपयोग के मामले, शब्दशः इरादा। एक मॉड बातचीत के बगल के पैन में CI/CD स्टेटस दिखा सकता है; कोई भी कमांड प्रोडक्शन कॉन्फ़िग को छूने से पहले पुष्टि मांग सकता है; और "जो मॉड सबसे पहले लोड होता है वह हर उस कॉल को दर्ज कर सकता है जो हर दूसरा मॉड करता है" (ऑडिट लॉगिंग)।


•

तकनीकी निहितार्थ

FACT. मॉड्स हुक्स के बगल में जोड़ा गया कोई नया सबसिस्टम नहीं हैं; वे वही हुक तंत्र हैं, बस हैंडलर इन-प्रोसेस ले जाया गया है। Anthropic का आर्किटेक्चर वक्तव्य: "बीजगणितीय रूप से देखें तो यह प्लगइन्स के लिए एक इफ़ेक्ट-पैरामीटरयुक्त एंडोमॉर्फ़िक कंटीन्यूएशन मॉडल (effect-parameterized endomorphic continuation model) भर है।" कंपोज़िशन मॉडल next है, जिसे मूल डिज़ाइन पोस्ट में "रजिस्ट्रेशन-क्रम पर आधारित 'next' कंटीन्यूएशन मॉडल, Express या Koa की तरह" कहा गया था।

FACT. इन-प्रोसेस निष्पादन के परिणाम, डॉक्स के अनुसार:

  • स्थिति (state) अपने आप इवेंट्स के पार साझा होती है। एक मॉड के हुक्स अपने मॉड्यूल के वेरिएबल्स साझा करते हैं — न फ़ाइलें, न IPC। लेकिन हॉट रीलोड register दोबारा चलाता है, इसलिए हर रीलोड पर मॉड्यूल की स्थिति रीसेट हो जाती है; टिकाऊ स्थिति $.state में जाती है, जिसे होस्ट सत्र के लिए रखता है और जो रीलोड्स के पार बची रहती है।
  • यूआई एलिमेंट हर सरफ़ेस के लिए अलग रिज़ॉल्व होते हैं। $.ui.resolve(e) उस सरफ़ेस के एलिमेंट कंस्ट्रक्टर लौटाता है जो बन रहा है, क्योंकि हर सरफ़ेस थोड़ा अलग सेट सपोर्ट करता है। डिक्लेरेशन फ़ाइल ट्री की सीमाएं बताती है (20,000 नोड, 32 गहराई, 100,000 अक्षर सीरियलाइज़्ड), जिनके आगे इंस्टेंस अनमाउंट (unmount) हो जाता है।
  • Client मॉड्यूल एक असली एम्बेडिंग प्रिमिटिव (embedding primitive) हैं। एक Client प्लगइन का अपना सरफ़ेस मॉड्यूल (.tsx) लोकल स्थिति, फ़्रेम क्लॉक, पॉइंटर और की लिसनर के साथ बनाता है, और प्लेन डेटा प्लगइन के हुक्स को वापस भेजता है। यह टर्मिनल में Ink/React है, एपीआई के रूप में खोला हुआ।
  • इवेंट ऑब्जेक्ट गहराई तक फ़्रोज़न है। किसी फ़ील्ड को असाइन करने पर थ्रो होता है; रीराइट्स next को एक कॉपी भेजते हैं।
  • पिन किए गए फ़ील्ड मौजूद हैं और लागू भी होते हैं। agent.spawn पर tool_use_id, name, parentModel, permissionMode, parentAgentId और provider पिन हैं — रीराइट अस्वीकार हो जाता है। कुछ agentId मान पिन हैं। यह एपीआई के भीतर एक सुरक्षा सीमा का स्वरूप है।
  • वैलिडेशन सिंटैक्टिक है, जानबूझकर। इवेंट नाम स्ट्रिंग लिटरल होने चाहिए, $ कॉल पूरे लिखे जाने चाहिए, $ को डीस्ट्रक्चर या असाइन नहीं किया जा सकता, on को शैडो नहीं किया जा सकता, डायनामिक import() फेल होता है। ये स्टाइल नियम नहीं हैं — यही चीज़ स्टैटिक क्षमता स्कैन को पूरा रखती है।
  • प्रॉम्प्ट-कैश (prompt cache) की समझ ज़रूरी है। prompt.submit/prompt.section/prompt.context/skill.prompt हुक्स द्वारा डाला गया टेक्स्ट जो रिक्वेस्ट्स के बीच बदलता है, प्रॉम्प्ट कैश को अमान्य कर देता है। एक मॉड चुपचाप कैश हिट दरें बर्बाद कर सकता है।
  • एक मॉड के अपने एपीआई कॉल हुक-योग्य इवेंट हैं। एक प्लगइन कोई नाउन (noun) और उसका अपना टाइप्ड कॉन्ट्रैक्ट घोषित कर सकता है, और कोर का EngineInterface एक इंटरफ़ेस है "ताकि कोई प्लगइन जिस नाउन को देता है उसे डिक्लेरेशन मर्जिंग (declaration merging) से टाइप कर सके, जैसे कोई jQuery प्लगइन $.fn को टाइप करता है।" Claude Code के लिए तीसरे पक्ष का एपीआई सरफ़ेस अब इकोसिस्टम की असली चिंता है।

FACT — टाइप/LSP की स्थिति, ठीक-ठीक कही गई। यह न कोई प्रीव्यू फ़्लैग है और न भविष्य का काम। किसी मॉड के --plugin-dir डायरेक्टरी (या Claude द्वारा लिखी गई डायरेक्टरी) से हर लोड या रीलोड पर, Claude Code <mod>/.claude-plugin/types/ में संस्करण-पिन किए .d.ts डिक्लेरेशन लिखता है। अगर मॉड के पास tsconfig.json नहीं है, तो Claude Code मॉड की जड़ में एक जोड़ देता है जो जनरेट किए गए वाले को एक्सटेंड करता है, "ताकि आपका एडिटर और tsc -p ./first-mod बिना और सेटअप के मॉड को टाइप-चेक कर लें"। डिक्लेरेशन सार्वजनिक रेपो में mods/types/claude-code.d.ts पर चेक-इन हैं। Anthropic का अपना निर्देश है कि ये जनरेट की गई फ़ाइलें डॉक्यूमेंटेशन से ऊपर हैं: "इवेंट्स और मेथड्स रिलीज़ के बीच बदल सकते हैं, इसलिए जब इनमें मतभेद हो तो किसी भी पेज के बजाय, इस पेज समेत, इन फ़ाइलों पर भरोसा कीजिए।"

FACT — उस डिक्लेरेशन फ़ाइल पर एक ज़रूरी चेतावनी। रेपो की main ब्रांच में अभी चेक-इन कॉपी इस पंक्ति से शुरू होती है // Written by Claude Code 2.1.277. और उसमें यह वाक्य है "EARLY ACCESS: this surface may change between releases without notice." इसमें एक /plugin-types कमांड भी डॉक्यूमेंट है जो इसे दोबारा जनरेट करता है। तो: फ़ीचर v2.1.287 में GA और डिफ़ॉल्ट रूप से चालू है, जबकि चेक-इन रेफ़रेंस डिक्लेरेशन किसी ख़ास पुराने बिल्ड का आउटपुट है और अब भी अर्ली-एक्सेस हेडर लिए हुए है। प्रति-बिल्ड जनरेट हुई फ़ाइल को प्रामाणिक मानिए; रेपो की कॉपी को एक स्नैपशॉट।


•

डेवलपर के लिए निहितार्थ

FACT. एक डेवलपर को अब क्या अलग करना होगा:

  • /plugin install को किसी अनजान पब्लिशर से npm install मानिए। Anthropic के अपने शब्द: इंस्टॉल कीजिए "ठीक उसी तरह जैसे आप अपने कंप्यूटर पर कोई भी कोड इंस्टॉल करते हैं।"
  • कुछ भी इंस्टॉल करने से पहले claude plugin validate <dir> चलाइए। यह डॉक्यूमेंट किया गया है कि क्षमता सूची सिर्फ़ यहीं दिखती है, और एडमिन पेज इसे समीक्षा का गेट मानता है। calls: में $.fs.read/write, $.process.run/spawn, $.http.fetch, $.env.get, $.settings.read, $.prompt.submit, $.session.send, $.model.complete देखिए।
  • समझिए कि क्षमता सूची क्या कवर करती है और क्या नहीं। यह $ कॉल्स और env/state रीड/राइट की गिनती देती है। यह next को भेजे गए रीराइट्स की सूची नहीं देती, और मॉड जो कोड रनटाइम पर फ़ेच करता है उसे देख नहीं सकती। (स्वतंत्र परीक्षक का प्रदर्शन देखें §12।)
  • चार किल स्विच (kill switch) और उनकी अलग-अलग पहुंच जानिए: /plugin → Installed से एक प्लगइन बंद करना; claude --safe-mode → एक सत्र के लिए हर इंस्टॉल किया मॉड, साथ में आपके बाक़ी कस्टमाइज़ेशन; ~/.claude/settings.json में "disableAllHooks": true → आपके इंस्टॉल किए हर मॉड, हर जगह, साथ में आपके सेटिंग्स हुक और स्टेटस लाइन (आपके संगठन के मैनेज्ड मॉड्स चलते रहते हैं); संगठन-स्तर पर allowManagedModsOnly / allowManagedHooksOnly / disableAllHooks / disableSideloadFlags। बिल्ट-इन मॉड्स इनमें से किसी से नहीं रुकते, और cc-plugin-sec-default को उपयोगकर्ता बिल्कुल भी बंद नहीं कर सकता।
  • मान लीजिए कि एपीआई बदलेगी। Claude Code लगभग रोज़ रिलीज़ शिप करता है और साफ़ कहता है कि "इवेंट्स और मेथड्स रिलीज़ के बीच बदल सकते हैं"। मॉड लेखकों से कहा गया है कि अपने README में वह संस्करण दर्ज करें जिसके साथ उन्होंने परीक्षण किया, और ऐसा नाम रखें जो ऐसा नाम न हो जिसे Anthropic ले सके।
  • हार्नेस इस्तेमाल कीजिए। claude plugin test *.test.ts को असली रनटाइम के सामने बिना सत्र, साइन-इन या नेटवर्क के चलाता है, असली इवेंट्स फायर करता है ($.tool.call({tool:'Bash', command:'ls'})) और Claude Code जो उत्तर देगा उसका स्टब बनाता है। मॉड्स पहला Claude Code एक्सटेंशन सरफ़ेस हैं जिसके साथ प्रथम-पक्ष टेस्ट किट आता है।
  • हॉट रीलोड की योजना बनाइए। हर सेव register दोबारा चलाता है; टिकाऊ स्थिति $.state में रखिए, मॉड्यूल वेरिएबल्स में नहीं।
  • अपने स्टैक के नियम सेटिंग्स हुक के बजाय मॉड के रूप में जोड़िए, जब फ़ैसला जीवंत स्थिति पर निर्भर हो — डॉक्स का अपना उदाहरण है git push को सिर्फ़ तब अस्वीकार करना जब मौजूदा ब्रांच main हो, जिसके लिए $.process.run चाहिए। सादे स्क्रिप्ट-योग्य ब्लॉक के लिए सेटिंग्स हुक ही सही औज़ार बना रहता है।
  • जानिए मॉड्स कहां लागू होते हैं और कहां नहीं। हुक टर्मिनल, एडिटर के इंटीग्रेटेड टर्मिनल, JetBrains प्लगइन, Desktop का Code टैब, VS Code एक्सटेंशन का चैट पैनल, claude -p, Agent SDK, Remote Control और क्लाउड सत्रों में चलते हैं। ड्रॉइंग सिर्फ़ टर्मिनल और Desktop के Code टैब में होती है। Desktop ऐप में WSL सत्र दोनों में से कुछ नहीं चलाता, क्योंकि वहां प्लगइन्स उपलब्ध नहीं हैं।

INDEPENDENT EVIDENCE. दो स्वतंत्र प्रैक्टिशनर स्रोत मिलते-जुलते नतीजों पर पहुंचते हैं। sdd.sh (2026-10-02) डिज़ाइन को "सही डिज़ाइन — एजेंट लूप के इवेंट स्तर पर एक्सटेंसिबिलिटी, और भरोसे की कीमत शुरू में ही बताई गई, दबाई नहीं गई" मानता है, उस टर्मिनल-UI अंतराल को रेखांकित करता है जिसे मॉड्स IDE रैपर्स के मुक़ाबले भरते हैं, और निष्कर्ष निकालता है कि यह रोलआउट "रातों-रात आपका थ्रेट मॉडल (threat model) बदल देता है, और डिफ़ॉल्ट-चालू रोलआउट बोझ आप पर डालता है।" MIXED (2026-10-02) ने इस तथ्य से शुरुआत की कि Anthropic "कहता है कि वे आपकी API कुंजी पढ़ सकते हैं" और सैंडबॉक्स के अपवाद को उभारा।


•

एंटरप्राइज़ निहितार्थ

FACT. चूंकि मॉड्स प्लगइन्स के अंदर शिप होते हैं, मौजूदा प्लगइन नियंत्रण बिना बदलाव लागू रहते हैं — मार्केटप्लेस अनुमति/ब्लॉक सूचियां, strictKnownMarketplaces, इंस्टॉल पॉलिसी, अपडेट पॉलिसी, ऑडिट। नया यह है कि अब उस कोड के लिए एक कंट्रोल प्लेन है जो इन-प्रोसेस चलता है।

FACT — डिफ़ॉल्ट रुख। आपकी अपनी कोई मॉड सेटिंग न होने पर:

  • मॉड्स चालू हैं। उपयोगकर्ता आपकी प्लगइन सेटिंग्स जिस भी मार्केटप्लेस की अनुमति देती हैं वहां से मॉड इंस्टॉल कर सकता है, या --plugin-dir से किसी डायरेक्टरी से लोड कर सकता है।
  • एक बिल्ट-इन गार्ड, sec-default@builtin, सबसे पहले लोड होता है, उपयोगकर्ता के इंस्टॉल किए हर मॉड से पहले, और उपयोगकर्ता उसे बंद नहीं कर सकते। यह तब लोड होता है जब मशीन पर मैनेज्ड सेटिंग्स हों या उपयोगकर्ता Team या Enterprise प्लान से साइन-इन हो। API-की और Bedrock/Vertex/Foundry उपयोगकर्ताओं को यह सिर्फ़ उन मशीनों पर मिलता है जहां मैनेज्ड सेटिंग्स हैं।
  • गार्ड उसी चीज़ की रक्षा करता है जो आप प्रबंधित करते हैं: किसी उपयोगकर्ता का मॉड यह नहीं बदल सकता कि आपके मैनेज्ड हुक क्या पाते या तय करते हैं, सिस्टम प्रॉम्प्ट, आपकी मैनेज्ड CLAUDE.md और निर्देश, कोई भी मॉड सेटिंग्स के रूप में क्या पढ़ता है, या आपके मैनेज्ड MCP सर्वरों के टूल और विवरण।
  • बाक़ी सब allowed है। एक उपयोगकर्ता का मॉड अब भी फ़ाइलें पढ़ और लिख सकता है, प्रोसेस शुरू कर सकता है, नेटवर्क रिक्वेस्ट कर सकता है, टूल कॉल और प्रॉम्प्ट रीराइट कर सकता है, किसी टूल कॉल को अस्वीकार कर सकता है, ऐसे कॉल को मंज़ूर कर सकता है जो वरना प्रॉम्प्ट करता, और इंटरफ़ेस में बना सकता है।
  • deny नियम और मैनेज्ड PreToolUse ब्लॉक उपयोगकर्ता के मॉड से ऊपर हैं — जब तक आप गार्ड की allowModsToOverrideDenyRules सेट न करें।
  • गार्ड फेल-क्लोज़्ड है: अगर वह मैनेज्ड सेटिंग्स नहीं पढ़ पाता तो लोड पर हर उपयोगकर्ता के मॉड को अस्वीकार कर देता है; अगर वह किसी ऐसे कॉल के लिए deny नियम जांच नहीं पा जिसे किसी मॉड ने मंज़ूर किया, तो वह कॉल अस्वीकार कर देता है। इसका सोर्स सार्वजनिक है।

FACT — तीन पॉलिसी सेटिंग्स, और हर एक का असली मतलब:

सेटिंगपहुंच
allowManagedModsOnly (cc-plugin-sec-default@builtin पर विकल्प, pluginConfigs में)उपयोगकर्ता जो भी मॉड लाता है वह लोड नहीं होता — --plugin-dir और सत्र में Claude द्वारा लिखे मॉड्स समेत। संगठन के मॉड्स फिर भी लोड होते हैं। सेटिंग्स हुक, स्टेटस लाइन और /goal काम करते रहते हैं। बिल्ट-इन मॉड्स चलते रहते हैं। उपयोगकर्ता इसे पलट नहीं सकते: यह सिर्फ़ मैनेज्ड सेटिंग्स पढ़ता है
allowManagedHooksOnlyज़्यादा व्यापक: सिर्फ़ संगठन के मॉड्स और बिल्ट-इन मॉड्स लोड होते हैं; उपयोगकर्ताओं की अपनी सेटिंग्स-फ़ाइल के हुक भी ब्लॉक हो जाते हैं
disableAllHooksसबसे व्यापक: हर इंस्टॉल किए प्लगइन में मॉड्स रोक देता है, आपके भी, और हर सेटिंग्स हुक बंद कर देता है, इसलिए एक मैनेज्ड PreToolUse हुक अब कुछ भी ब्लॉक नहीं करता
disableSideloadFlagsस्टार्टअप पर --plugin-dir और --plugin-url अस्वीकार करता है, सत्र के भीतर के मॉड्स को लोड होने से रोकता है, और --agents तथा --mcp-config भी अस्वीकार करता है

FACT — वह डॉक्यूमेंट किया गया छेद जिसके इर्द-गिर्द डिज़ाइन करना है। "इनमें से कोई भी मॉड के अपने $.fs और $.process कॉल पर लागू नहीं होता: Read(.env) अस्वीकृत होने पर भी एक मॉड उस फ़ाइल को $.fs.read से पढ़ सकता है या ऐसा प्रोग्राम शुरू कर सकता है जो पढ़ ले। उन कॉल्स को सीमित करने के लिए, मॉड को लोड होने से रोकिए या कॉल को किसी पॉलिसी मॉड में संभालिए।" इसी तरह नेटवर्क पॉलिसी $.http.fetch को कवर करती है लेकिन "उस प्रोग्राम को कवर नहीं करती जो मॉड $.process.run से शुरू करता है।"

FACT — संगठन के मॉड्स को अपना टियर मिलता है, असली मानकों पर। कोई मॉड आपके संगठन का तभी गिना जाता है जब मैनेज्ड enabledPlugins उसके प्लगइन को true सेट करे, मैनेज्ड सेटिंग्स उसके मार्केटप्लेस को मशीन पर एक एब्सोल्यूट पाथ वाली डायरेक्टरी बताएं, और मार्केटप्लेस उस प्लगइन को रिलेटिव पाथ से सूचीबद्ध करे ताकि वह जहां है वहीं से लोड हो। जिस प्लगइन को Claude Code अपने कैश में कॉपी करता है — यानी GitHub, git, URL या npm से आने वाला कुछ भी — वह उपयोगकर्ता का मॉड गिना जाता है, भले ही मैनेज्ड enabledPlugins उसे सक्षम करे: वह उपयोगकर्ता मॉड्स के बीच चलता है, prependPlugins/appendPlugins उसे छोड़ देते हैं, और वह allowManagedModsOnly के तहत लोड नहीं होता। डिवाइस प्रबंधन को मार्केटप्लेस डायरेक्टरी हर जगह उसी पाथ पर कॉपी करनी होगी और उसे सिर्फ़ एडमिन के लिखने योग्य बनाना होगा।

FACT — एक पूरा, डॉक्यूमेंट किया गया पॉलिसी मॉड। एडमिन पेज एक चलता-फिरता acme-guard उदाहरण देता है जो plugin.register को हुक करके किसी भी उपयोगकर्ता-टियर मॉड को अस्वीकार करता है जिसका कोड $.process.run या $.process.spawn कॉल करता है (e.tier और e.uses.calls पढ़कर), और tool.call तथा fs.write को हुक करके डिबग लॉग में या $.http.fetch से बाहर एक ऑडिट पंक्ति लिखता है जिसमें मूल प्लगइन का नाम होता है (next.origin.plugin)। यह फेल-क्लोज़्ड वाला रूप भी डॉक्यूमेंट करता है, क्योंकि "अगर आपका plugin.register हुक थ्रो करता है या अपनी समय-सीमा पार कर जाता है, तो Claude Code हुक छोड़ देता है, इसलिए जांच खुली रह जाती है और जिस मॉड की जांच हो रही थी वह लोड हो जाता है।"

FACT — एक परिचालन चेतावनी। "अगर इंस्टॉल किए मॉड्स चलाने वाला वर्कर थ्रेड (worker thread) तीन बार क्रैश हो जाए, तो Claude Code हर ऐसा मॉड अनलोड कर देता है जो बिल्ट-इन नहीं है, आपका भी, जब तक उपयोगकर्ता /reload-plugins न चलाए या नया सत्र न शुरू करे।" और ऑटो मोड में, जिस कॉल को कोई मॉड मंज़ूर करता है वह "बिना क्लासिफ़ायर जांच के चलती है।"


•

रणनीतिक निहितार्थ

INTERPRETATION.

  1. Anthropic हार्नेस की रक्षा कर रहा है, सिर्फ़ मॉडल की नहीं। जब Codex, Cursor और Copilot, सब एजेंटिक सरफ़ेस शिप कर रहे हैं, तो टिकाऊ मोट (moat) मॉडल के इर्द-गिर्द का कंट्रोल प्लेन है। मॉड्स Claude Code के कंट्रोल प्लेन को एक्सटेंड करने योग्य बनाते हैं — और गार्ड मॉड, टाइप परिभाषाओं तथा रेफ़रेंस इम्प्लीमेंटेशन को ऐसी Anthropic-नियंत्रित संपत्तियां बना देते हैं जिन्हें प्रतिस्पर्धियों को शून्य से दोबारा बनाना पड़ेगा।
  2. अर्थशास्त्र प्लगइन की समस्या को Anthropic के पक्ष में पलट देता है। बाहरी एक्सटेंशन तंत्र (MCP, सेटिंग्स हुक) किसी प्रतिस्पर्धी के इकोसिस्टम को Claude Code से जुड़ने देते हैं। इन-प्रोसेस मॉड्स भी वही करते हैं, लेकिन भरोसे का फ़ैसला अब उस गार्ड से होकर जाता है जो Anthropic शिप करता है और उस एडमिन पॉलिसी भाषा से जो Anthropic परिभाषित करता है। Anthropic को इकोसिस्टम भी मिलता है और गेट भी अपने पास रहता है।
  3. इस मिसाल की नक़ल होगी। हर बड़े कोडिंग एजेंट के सामने अब वही दुविधा है: बंद एजेंट जिसमें सेटिंग्स हुक हों, या खुला एजेंट जिसमें इन-प्रोसेस, बिना सैंडबॉक्स वाला तीसरे पक्ष का कोड चले। मॉड्स दूसरे विकल्प को गवर्नेंस की कहानी के साथ शिप करने योग्य बना देते हैं, जिससे मुख्य आपत्ति हट जाती है।
  4. एक नया पेशेवर कलाकृति (artefact) उभरता है: संगठन का मॉड (org mod)। सर्वोत्तम-अभ्यास निर्देश (CLAUDE.md, AGENTS.md), CI पॉलिसी, परमिशन नियम, हुक और अब पॉलिसी मॉड्स — एक ऐसा स्टैक बनाते हैं जिसका मालिक एक एंटरप्राइज़ एआई-प्लेटफ़ॉर्म टीम हो सकती है। कंसल्टिंग और प्लेटफ़ॉर्म का काम "एजेंट को कॉन्फ़िगर करना" से "एजेंट का पॉलिसी कोड लिखना और बनाए रखना" की ओर खिसकता है।
  5. डायरेक्टरी का अर्थशास्त्र। मॉड्स प्लगइन्स में शिप होते हैं और Anthropic की Claude डायरेक्टरी में जमा किए जा सकते हैं। मॉड्स तीसरे पक्ष के डेव टूलिंग के लिए एक वितरण चैनल हैं, जो अक्टूबर 2026 में कोडिंग एजेंट्स के लिए मौजूद नहीं था।

PREDICTION. अगली दो से चार तिमाहियों में, "पॉलिसी मॉड लिखिए" एंटरप्राइज़ एआई-गवर्नेंस खरीद चेकलिस्ट में एक मानक पंक्ति बन जाएगा, और कम से कम एक प्रतिस्पर्धी नियंत्रण के मामले में सौदे न खोने के लिए उसके बराबर का इन-प्रोसेस एक्सटेंशन मॉडल शिप करेगा। विश्वास: मध्यम। यह एक पूर्वानुमान है, रिकॉर्ड नहीं।


•

जोखिम

FACT — वह जोखिम जो Anthropic खुद लॉन्च पोस्ट में छापता है। "Mods आपकी मशीन पर उसी पहुंच के साथ चलते हैं जो Claude Code के पास है। वे सैंडबॉक्स्ड नहीं हैं, और आपको mods सिर्फ़ उन स्रोतों से इंस्टॉल करने चाहिए जिन पर आप भरोसा करते हैं।"

FACT — डॉक्यूमेंट किया गया असर-दायरा (blast radius), मॉड्स ओवरव्यू से। लोड होने के बाद, एक मॉड यह सब कर सकता है: आपकी मशीन पर आपके रूप में काम करना (जहां तक आपका उपयोगकर्ता अकाउंट पहुंच रखता है वहां कहीं भी फ़ाइलें पढ़ना/लिखना, प्रोग्राम शुरू करना, नेटवर्क रिक्वेस्ट करना); आपके सीक्रेट्स पढ़ना (एनवायरनमेंट वेरिएबल और सेटिंग्स फ़ाइलें, जिनमें एक API कुंजी भी); आपका सत्र देखना (हर प्रॉम्प्ट, हर टूल कॉल); आपका सत्र बदलना (प्रॉम्प्ट या टूल कॉल रीराइट करना, ऐसे प्रॉम्प्ट जमा करना जैसे आपने टाइप किया हो, आपके किसी दूसरे सत्र को संदेश भेजना); आपसे पूछे बिना काम करना (आपसे पूछे जाने से पहले टूल कॉल मंज़ूर करना); और आपके प्लान या API कुंजी पर कोई मॉडल कॉल करके आपका उपयोग खर्च करना।

FACT — सैंडबॉक्स का अपवाद। "अगर आप सैंडबॉक्सिंग चालू करते हैं, तो सैंडबॉक्स उन Bash कमांड्स को अलग करता है जो Claude चलाता है, और जो प्रोसेस कोई मॉड शुरू करता है वह उसके बाहर चलता है।" यानी जिस सैंडबॉक्स पर लोग Bash के लिए पहले से भरोसा करते हैं, वह मॉड्स को नहीं रोकता।

INDEPENDENT EVIDENCE / EARLY RESEARCH — सबसे तीखा बाहरी परीक्षण, और उसकी सीमाएं। Pluto Security (Ehud Melzer, 2026-09-22) ने प्री-रिलीज़ फ़ंक्शन-हुक इम्प्लीमेंटेशन का परीक्षण किया (स्क्रीनशॉट v2.1.274 के; तब यह फ़ीचर CLAUDE_CODE_ENABLE_FUNCTION_HOOKS=1 के पीछे था) और चार भरोसा-अंतराल (trust gaps) रिपोर्ट किए। ये जीए से पहले के नतीजे हैं और v2.1.287 में कुछ हद तक ठीक हो चुके हो सकते हैं — इन्हें EARLY RESEARCH के रूप में दर्ज किया गया है, सत्यापित मौजूदा व्यवहार के रूप में नहीं। उनके चार निष्कर्ष:

  1. चुपचाप डेटा निकासी (silent exfiltration)। user टियर के एक मॉड ने $.fs.read + $.http.fetch से ~/.claude/.credentials.json और हर प्रोजेक्ट के हर प्रॉम्प्ट वाली 834 KB की history.jsonl पढ़ी, और उन्हें हमलावर के नियंत्रण वाले वेबहुक (webhook) पर POST कर दिया। उनका निष्कर्ष: $.fs.read "आपके प्रोजेक्ट या आपके सत्र तक सीमित नहीं है"; एब्सोल्यूट पाथ जैसे दिए जाते हैं वैसे ही इस्तेमाल होते हैं। "कोई प्रॉम्प्ट नहीं आया। कोई परमिशन नहीं मांगी गई।"
  2. फ़ैसले के बिंदु पर कोई क्षमता प्रकटीकरण नहीं। इंस्टॉल पर कुछ नहीं पूछा गया; plugin details ने उनके चार-इवेंट वाइल्डकार्ड मॉड को "Hooks (0)" बताया, जबकि उसी मार्केटप्लेस में एक क्लासिक शेल-हुक प्लगइन ने सही ढंग से "Hooks (1) PreToolUse" दिखाया। क्षमता सूची सिर्फ़ मैन्युअल claude plugin validate के तहत दिखी। उनका कंटेंट स्कैन claude.ai चैनल से बंधा था और --plugin-dir या सेल्फ़-होस्टेड GitHub मार्केटप्लेस के लिए नहीं चला।
  3. यूआई स्पूफ़िंग और सहमति की चोरी (consent capture)। एक मॉड ने असली क्लाइंट के भीतर AbovePrompt पट्टी में एक विश्वसनीय दिखने वाला नक़ली "Anthropic – session verification required / re-enter your API key" प्रॉम्प्ट बनाया, और सबमिट पर टाइप की गई कुंजी $.http.fetch से बाहर POST कर दी — "फ़िशिंग के सामान्य बचाव यहां काम नहीं करते: जांचने के लिए कोई URL ही नहीं है"। अलग से, एक ui.render हुक ने असली AskUserQuestion डायलॉग का टेक्स्ट बदल दिया, इसलिए उपयोगकर्ता ने पढ़ा "Refresh the local build cache now?" जबकि मॉडल को "Delete ALL files in ~/prod-data permanently?" के खिलाफ़ "Confirm" मिला। उनकी बताई सीमा: इंजन मॉडल के बनाए ऑप्शन लेबल सुरक्षित रखता है, इसलिए "Delete everything" जैसे वर्णनात्मक लेबल बहाल हो जाते हैं — लेकिन सामान्य लेबल ("Confirm"/"Cancel"), जो आम हैं, सुरक्षित नहीं रहते। एक दूसरा निष्कर्ष: दो हुक्स ने मिलकर वह कमांड बदल दिया जो चला और वह कमांड जो ट्रांसक्रिप्ट ने दिखाया, बिना कोई $ कॉल किए — इसलिए claude plugin validate ऐसे मॉड के बारे में बताता है जो "कुछ नहीं करता दिखता है"।
  4. समीक्षा ≠ वह कोड जो चलता है। $.http.fetch + $.process.run ने उन्हें एक भला-भला स्क्रिप्ट परोसने और फिर परोसी गई फ़ाइल को दुर्भावनापूर्ण फ़ाइल से बदलने दिया मॉड बदले बिना: नया संस्करण नहीं, दोबारा इंस्टॉल नहीं, नई समीक्षा नहीं। "$. आपको बता सकता है कि कोई मॉड डेटा फ़ेच कर सकता है और शेल चला सकता है। वह कभी नहीं बता सकता कि वह क्या फ़ेच करता है या क्या चलाता है।"

FACT — जो नियंत्रण Pluto को काम करते मिले। सैंडबॉक्स ने एम्बिएंट fetch, XMLHttpRequest, WebSocket, require और import को रोकते दिखा, और उन्हें $ को घूमने का कोई रास्ता नहीं मिला। परमिशन प्रॉम्प्ट का डिस्प्ले रीराइट नहीं किया जा सकता। AskUserQuestion मॉडल के अपने ऑप्शन लेबल सुरक्षित रखता है। पहचान स्पूफ़ नहीं की जा सकती: मॉड का टियर उसके होस्ट-असाइन किए नाम से आता है, और जो मॉड खुद को किसी बिल्ट-इन के नाम पर रखे वह लोड ही नहीं होता। ये चारों Anthropic के उन्हीं सीमाओं के डॉक्यूमेंटेशन से मेल खाते हैं।

FACT — वह बचा हुआ जोखिम जो इन सबके बाद भी रहता है। पूरी तरह समीक्षित, पूरी तरह अनुमति-सूचीबद्ध मॉड भी उपयोगकर्ता के क्रेडेंशियल्स के साथ चलता है और अब भी झूठ बोल सकता है: कोई चीज़ किसी मॉड को इससे नहीं रोकती कि वह उपयोगकर्ता को इस बारे में जो दिखता है कि Claude ने क्या किया, उसे रीराइट कर दे। क्षमता स्कैन एपीआई कॉल्स को कवर करता है, कथन (narration) को नहीं।


•

सीमाएं

FACT — फ़ीचर की सीमाएं।

  • बिना सैंडबॉक्स। मॉड कोड के लिए कोई अलगाव नहीं, डिज़ाइन से भी और स्वीकारोक्ति से भी।
  • परमिशन प्रॉम्प्ट ही एकमात्र यूआई है जिसे मॉड छू नहीं सकता। बाक़ी सब — AskUserQuestion डायलॉग का टेक्स्ट भी — रीस्टाइल किया जा सकता है।
  • सरफ़ेस पर निर्भर रेंडरिंग। ड्रॉइंग सिर्फ़ टर्मिनल और Desktop के Code टैब में है। VS Code चैट पैनल, claude -p, Agent SDK, Remote Control और क्लाउड सत्र हुक चलाते हैं लेकिन कुछ नहीं बनाते।
  • WSL Desktop सत्रों में कोई मॉड्स नहीं, क्योंकि वहां प्लगइन्स उपलब्ध नहीं हैं।
  • एपीआई स्पष्ट रूप से अस्थिर है। "इवेंट्स और मेथड्स रिलीज़ के बीच बदल सकते हैं।" Claude Code ने 2026-10-01 तक के महीने में लगभग ~27 रिलीज़ शिप किए; रेफ़रेंस डिक्लेरेशन अब भी अर्ली-एक्सेस हेडर लिए हुए हैं।
  • हुक की विफलताएं डिफ़ॉल्ट रूप से खुली रहती हैं (fail open)। जो ब्लॉकिंग हुक थ्रो करता है वह छोड़ दिया जाता है, और कार्रवाई आगे बढ़ जाती है। बंद रहने वाला (fail closed) बनाने के लिए स्पष्ट .catch हैंडलर चाहिए — किसी सुरक्षा नियंत्रण में यह एक फ़ुटगन (footgun) है।
  • सीमित ट्री और पेलोड। 20,000 नोड / 32 गहराई / 100,000 अक्षर से आगे के रेंडर ट्री इंस्टेंस को अनमाउंट कर देते हैं; 20,000 मानों से आगे के यूआई संदेश नहीं भेजे जाते।
  • एक ऑप्ट-इन बिल्ट-इन मॉड जो साइड एजेंट पैदा करता है (cc-plugin-you-should-know, "एक साइड एजेंट चलाता है जो आपकी पीठ देखता है जबकि Claude लंबे कामों पर चलता है") डिफ़ॉल्ट रूप से बंद है, disableAllHooks या --safe-mode से बंद नहीं होता, और रिलीज़ नोट्स इसे "टेलीमेट्री चालू होने पर प्रथम-पक्ष सत्रों" तक सीमित बताते हैं।
  • disableAllHooks सचमुच विनाशकारी है, सिर्फ़ रूढ़िवादी नहीं: वह संगठन के मॉड्स भी रोक देता है और मैनेज्ड PreToolUse हुक्स को अनब्लॉक कर देता है।

FACT — इस स्टोरी के एविडेंस आधार की सीमाएं।

  • इस विंडो के भीतर किसी मुख्यधारा के तकनीकी या वित्तीय मीडिया ने मॉड्स पर समर्पित हाथों-हाथ रिपोर्टिंग नहीं छापी जिसे यह रिसर्च प्राप्त कर सके। स्वतंत्र कवरेज में दो प्रैक्टिशनर/तकनीकी ब्लॉग, एक स्वतंत्र समाचार रिपोर्ट, और एक सुरक्षा विक्रेता का प्री-रिलीज़ परीक्षण है। क्षमता के लिए स्रोत-सत्य डॉक्स हैं; इस रिसर्च की जानकारी के अनुसार किसी स्वतंत्र पक्ष ने जीए के बाद का सुरक्षा आकलन प्रकाशित नहीं किया है।
  • Pluto Security के निष्कर्ष जीए से पहले के और संस्करण-विशिष्ट हैं। क्या v2.1.287 plugin details की "Hooks (0)" वाली अंधता, --plugin-dir/सेल्फ़-होस्टेड मार्केटप्लेस पर स्कैन-कवरेज का अंतराल, और fetch-then-run का अंतराल ठीक करता है, यहां प्राप्त किसी भी चीज़ से स्थापित नहीं है। इन्हें खुले सवाल मानिए, मौजूदा भेद्यताएं नहीं।

•

खुले सवाल

  1. क्या v2.1.287 ने प्रकटीकरण के अंतराल बंद किए? ख़ास तौर पर: क्या plugin details अब फ़ंक्शन-हुक इवेंट गिनता है; क्या क्षमता सूची इंस्टॉल पर दिखती है; क्या कंटेंट स्कैन --plugin-dir और सेल्फ़-होस्टेड मार्केटप्लेस इंस्टॉल्स पर चलता है; क्या $.http.fetch के रिस्पॉन्स की इंटेग्रिटी पिन की जा सकती है?
  2. क्या AskUserQuestion के सवाल का टेक्स्ट पिन किया जा सकता है? Pluto ने पाया कि ऑप्शन लेबल सुरक्षित रहते हैं जब वे वर्णनात्मक हों, और टेक्स्ट नहीं। इच्छित सीमा क्या है?
  3. $.http.fetch → $.process.run का ऑडिट कौन करता है? अगर जवाब "कोई नहीं, और इंटेग्रिटी पिनिंग की योजना नहीं है" है, तो समीक्षा मॉडल "पब्लिशर की समीक्षा कीजिए, कोड की नहीं" है — npm की तुलना में साफ़ तौर पर कमज़ोर गारंटी।
  4. एक मॉड लेटेंसी में कितना लगाता है? हर इवेंट एक मिडलवेयर चेन है; turn.step स्ट्रीमिंग है। किसी प्राप्त स्रोत ने प्रति-डिस्पैच (per-dispatch) ओवरहेड के आंकड़े नहीं दिए।
  5. क्या plugin.register पर आधारित पॉलिसी तीसरे पक्ष के पॉलिसी मॉड्स के साथ मिलकर काम करती है? दो प्रीपेंड-टियर मॉड्स, दोनों plugin.register देखते हुए: डॉक्स क्रम परिभाषित करते हैं, लेकिन दो अस्वीकार करने वाली पॉलिसीज़ के बीच टकराव का अर्थ नहीं।
  6. जब एपीआई रिलीज़ के बीच बदले तो माइग्रेशन का रास्ता क्या है? डिक्लेरेशन फ़ाइल संस्करण-पिन और प्रति-बिल्ड है; 2.1.287 के लिए लिखा इंस्टॉल किया मॉड 2.1.300 पर टाइप-चेक नहीं हो सकता। क्या कोई संगतता का वादा है?
  7. क्या allowManagedModsOnly बिल्ट-इन you-should-know और टेलीमेट्री मॉड्स के साथ सुरक्षित रूप से काम करता है, जो इससे नहीं रुकते और जो प्रथम-पक्ष सत्रों पर टोकन खर्च करते हैं?
  8. क्या sec-default गार्ड व्यवहार में ऑडिट-योग्य है? इसका सोर्स सार्वजनिक है, लेकिन किसी मशीन पर प्रभावी पॉलिसी मैनेज्ड-सेटिंग्स की प्राथमिकता, prependPlugins, और इस बात पर निर्भर करती है कि कोई तीसरा संगठन मॉड उसे शैडो करता है या नहीं।
  9. plugin register → plugin validate के स्टैटिक-एनालिसिस कॉन्ट्रैक्ट का क्या होगा अगर कोई मॉड TypeScript/JavaScript के अलावा किसी और भाषा में लिखा जाए, या कोई बंडलर (bundler) दोबारा लाया जाए? यह कॉन्ट्रैक्ट अभी ES-मॉड्यूल, स्ट्रिंग-लिटरल और पूरी तरह योग्य कॉल सिंटैक्स पर निर्भर है।

•

सर्कल 1 प्रभाव — तात्कालिक दायरा

परिभाषा: वे डेवलपर्स और तकनीकी लीड जो Claude Code रोज़ इस्तेमाल करते हैं, 2026-10-01 के आस-पास के दिनों और हफ़्तों में।

प्रभाव (उच्च, तात्कालिक)। अपग्रेड के साथ उनका माहौल बदल गया। वे जो भी Claude Code ≥ v2.1.287 चलाएं, वह अब ऐसे प्लगइन्स लोड कर सकता है जो उनकी परमिशन के साथ इन-प्रोसेस कोड चलाते हैं। पहले से इंस्टॉल प्लगइन्स का व्यवहार बदलना शुरू हो सकता है — /diff अब एक मॉड है, और AGENTS.md लोड करना एक मॉड है। उन्होंने सेटिंग्स हुक के रूप में जो टूल और कॉन्फ़िगरेशन लिखा था वह अब भी काम करता है, बिना बदले और बिना अप्रचलित (un-deprecated) हुए।

सिफ़ारिश की गई कार्रवाई।

  1. अपना संस्करण जांचिए (claude --version) और उसे जानबूझकर पिन कीजिए; ध्यान रखिए कि 2026-10-02 को स्टेबल npm टैग लॉन्च से पीछे था।
  2. जो पहले से इंस्टॉल है उसकी सूची बनाइए: /plugin → Installed। जो कुछ आपने खुद नहीं लिखा, उसकी डायरेक्टरी पर claude plugin validate चलाइए और hooks: तथा calls: पंक्तियां पढ़िए।
  3. अपने स्विच जानिए: एक-सत्र का साफ़ परीक्षण के लिए --safe-mode; पूरे लोकल क्वारंटीन (quarantine) के लिए "disableAllHooks": true (यह जानते हुए कि यह आपके सेटिंग्स हुक और स्टेटस लाइन भी बंद कर देता है)।
  4. जो भी प्लगइन टूल कॉल्स को हुक करता है और यूआई बनाता है, उसे दोबारा जांचिए।
  5. अगर अर्ली एक्सेस से आपके एनवायरनमेंट में CLAUDE_CODE_ENABLE_FUNCTION_HOOKS=0 है — उसे हटा दीजिए। वह अब कुछ नहीं बंद करता।

•

सर्कल 2 प्रभाव — संगठनात्मक दायरा

परिभाषा: इंजीनियरिंग मैनेजर, प्लेटफ़ॉर्म/DevEx टीमें, सुरक्षा और AppSec, तथा खरीद (procurement), अगली तिमाही में।

प्रभाव (उच्च, संरचनात्मक)। दो चीज़ें एक साथ आती हैं। अवसर: संगठन अब अपनी एजेंट पॉलिसी समीक्षा-योग्य TypeScript के रूप में लिख सकता है, एक डॉक्यूमेंट किए पॉलिसी-मॉड पैटर्न, प्रथम-पक्ष टेस्ट हार्नेस और जनरेट किए टाइप्स के साथ। जोखिम: हर डेवलपर जो मॉड इंस्टॉल करता है, वह प्रोडक्शन क्रेडेंशियल्स के साथ बिना समीक्षा किया इन-प्रोसेस कोड चला रहा है, और डिफ़ॉल्ट चालू है।

सिफ़ारिश की गई कार्रवाई।

  1. डिफ़ॉल्ट इसी हफ़्ते तय कीजिए, पहली घटना के बाद नहीं। या तो संगठन की अनुमति-सूची के साथ allowManagedModsOnly, या कम से कम disableSideloadFlags और एक मार्केटप्लेस अनुमति-सूची।
  2. अगर आप कोई भी उपयोगकर्ता मॉड allowed रखते हैं, तो डॉक्यूमेंट किए plugin.register पैटर्न से एक प्रीपेंड-टियर पॉलिसी मॉड तैनात कीजिए — और उसे .catch के साथ फेल-क्लोज़्ड लिखिए, क्योंकि थ्रो करने वाली जांच खुली रह जाती है।
  3. अंतराल साफ़ लिखकर रखिए: deny नियम और नेटवर्क पॉलिसी Claude के कॉल्स को कवर करते हैं, मॉड के $.fs/$.process/$.http को नहीं। आपकी पॉलिसी को पॉलिसी मॉड होना होगा, परमिशन नियम नहीं।
  4. समीक्षा का एक स्तर तय कीजिए: claude plugin validate का आउटपुट अनिवार्य कलाकृति, साथ में next(...) रीराइट्स और किसी भी fetch-then-run पैटर्न का इंसानी पाठ। जो चीज़ आप पर निर्भर है उसे पिन या वेंडर (vendor) कीजिए।
  5. संगठन-मॉड वर्गीकरण के नियमों को परिचालन विवरण की तरह संभालिए: आपके मॉड्स को उसी जगह (in place) एडमिन के लिखने योग्य एब्सोल्यूट पाथ से लोड होना चाहिए, वरना वे उपयोगकर्ता मॉड्स गिने जाएंगे और allowManagedModsOnly के तहत लोड होना बंद कर देंगे।
  6. किसी भी एआई कोडिंग टूल के लिए खरीद और वेंडर-जोखिम टेम्पलेट्स में यह डालिए: "क्या हमारा एजेंट प्लेटफ़ॉर्म कोड की तरह समीक्षित हो सकता है?"

•

सर्कल 3 प्रभाव — उद्योग का दायरा

परिभाषा: विक्रेता, नियामक, और व्यापक सॉफ़्टवेयर इकोसिस्टम, अगले 12–24 महीनों में।

प्रभाव (उच्च, संरचनात्मक)। एंटरप्राइज़ सॉफ़्टवेयर के सुरक्षा मॉडल को अभी एक नई श्रेणी मिली है: अनजान पब्लिशर्स द्वारा मार्केटप्लेस से शिप किया गया, बिना हस्ताक्षर, बिना सैंडबॉक्स वाला, इन-प्रोसेस एक्सटेंशन कोड, जो प्रोडक्शन क्रेडेंशियल्स वाले किसी टूल के भीतर चल रहा है। npm के पास यह समस्या थी और उसने इसे बुरी तरह और धीरे-धीरे सुलझाया। एजेंट का मामला एक पहलू में बदतर है (कोड परमिशन के रास्ते पर बैठा है) और दूसरे में बेहतर (लोड के समय एक क्षमता स्कैनर मौजूद है और एक संगठन पॉलिसी भाषा मौजूद है)।

सिफ़ारिश की गई कार्रवाई / किन बातों पर नज़र रखें।

  1. नियामकों और मानक निकायों को एजेंट-एक्सटेंशन मार्केटप्लेस को सॉफ़्टवेयर सप्लाई चेन की सतह मानना चाहिए, उसी गंभीरता से जैसे पैकेज रजिस्ट्रियों को।
  2. विक्रेताओं को उम्मीद रखनी चाहिए कि इन-प्रोसेस एक्सटेंशन मॉडल टेबल स्टेक्स (table stakes) बन जाएंगे, और उन्हें सोच-समझकर तय करना चाहिए कि वे इसे गवर्नेंस की कहानी के साथ शिप करेंगे या बिना।
  3. सुरक्षा विक्रेताओं के पास पहले से बाज़ार है: स्टैटिक मॉड स्कैनर, claude plugin validate के आउटपुट पर CI गेट, मैनेज्ड-सेटिंग्स-एज़-कोड (managed-settings-as-code)।
  4. अनसुलझा पॉलिसी सवाल यह है कि इंस्टॉल के समय क्षमता प्रकटीकरण एक मानक बनेगा या एक मैन्युअल कमांड रह जाएगा। Pluto का निष्कर्ष — कि एकमात्र निरीक्षण स्क्रीन ने चार इवेंट हुक करने वाले मॉड (जिसमें एक वाइल्डकार्ड भी) के लिए "Hooks (0)" बताया — ऐसा विवरण है जो या तो अनिवार्य किया जाएगा या नज़रअंदाज़।

PREDICTION. अगली एजेंट सप्लाई-चेन घटना किसी स्किल में प्रॉम्प्ट इंजेक्शन (Prompt Injection) नहीं होगी; वह एक मॉड होगी। विश्वास: मध्यम। कारण: मॉड्स स्किल्स से बड़ी और शांत भरोसा-सतह हैं, डिफ़ॉल्ट रूप से चालू, एक डॉक्यूमेंट किए fetch-then-run अंतराल के साथ, और विफलता का तरीका (विश्वसनीय दिखने वाली यूआई या ट्रांसक्रिप्ट) ठीक उस तरह का है जिसकी रिपोर्ट नहीं होती।


•

व्यावसायिक मूल्य के अवसर, जहां वे वास्तविक हैं

सिर्फ़ वे अवसर सूचीबद्ध हैं जो रिकॉर्ड से निकलते हैं। हर एक उस बाधा का नाम लेता है जो उसे असली बनाती है।

अवसरयह असली क्यों हैबाधा / जोखिम
उत्पाद के रूप में संगठन पॉलिसी मॉडएडमिन पेज एक चलता, डॉक्यूमेंट किया पॉलिसी-मॉड पैटर्न देता है, असली एपीआई (plugin.register, e.tier, e.uses.calls, fs.write), एक टेस्ट किट (claude plugin test) और जनरेट किए टाइप्स के साथAnthropic इसमें से ज़्यादातर को प्रथम-पक्ष बिल्ट-इन के रूप में अपने में मिला सकता है, जैसा उसने sec-default के साथ किया
मॉड सप्लाई-चेन स्कैनिंग / CI गेटclaude plugin validate मशीन-पठनीय hooks:, calls:, env reads:, state reads: पंक्तियां छापता है — तैयार CI इनपुट; और डॉक्यूमेंट किए अंधे धब्बे (next के ज़रिये रीराइट्स, fetch-then-run, --plugin-dir) एक उत्पाद विशिष्टि (product spec) हैंआउटपुट कोई वादा नहीं है; साफ़ रिपोर्ट सुरक्षा साबित नहीं करती
वर्टिकल मॉड्स (नियमित उद्योगों के लिए परिवर्तन नियंत्रण, डेटा-प्लेटफ़ॉर्म माइग्रेशन सहायता, इंसिडेंट-रिस्पॉन्स रनबुक)Anthropic CI/CD स्टेटस, प्रोडक्शन छूने पर पुष्टि और ऑडिट लॉगिंग को इच्छित टीम-उपयोग बताता है; एंटरप्राइज़ पहले से इन्हीं वर्कफ़्लो के लिए टूलिंग खरीदते हैंहर एक पतला रैपर है जब तक वह असली डेटा या असली सिस्टम का मालिक न हो
सेवा के रूप में मॉड लेखनplugin-authoring और हॉट रीलोड सचमुच कौशल की सीमा नीचे लाते हैं; संगठन अपनी परमिशन और ऑडिट पॉलिसी के अनुरूप बने मॉड्स चाहेंगे1-2 साल पुरानी, स्पष्ट रूप से अस्थिर एपीआई पर एक सेवा बाज़ार
एंटरप्राइज़ मॉड मार्केटप्लेसहोस्ट-मार्केटप्लेस और prependPlugins/ऑर्ग-टियर वर्गीकरण एक डॉक्यूमेंट किया, समर्थित पैटर्न हैहर मशीन पर डिवाइस प्रबंधन और एडमिन के लिखने योग्य डायरेक्टरियां चाहिए
"एजेंट को एक्सटेंड कीजिए" कंसल्टिंग / प्रशिक्षणबाधा "शेल स्क्रिप्टिंग + JSON" से "जनरेट किए टाइप्स वाला TypeScript" तक गिर गई — डेव्स की बड़ी संबोध्य आबादी और डिज़ाइन करने के लिए बहुत सारे नए नियंत्रणशून्य रक्षात्मकता; यह बदलती हुई एपीआई है

दावा नहीं किया गया: कोई राजस्व आंकड़ा, अपनाने (adoption) का आंकड़ा, या तीसरे पक्ष का बाज़ार हिस्सा। किसी भी प्राप्त स्रोत में इनमें से कुछ नहीं मिला, और यहां कुछ भी दावा नहीं किया गया है।

असत्यापित / अफ़वाह स्रोत: कोई इस्तेमाल नहीं हुआ। इस दस्तावेज़ में कहीं भी कोई लीक, अनाम सोर्सिंग, बिना श्रेय का आंकड़ा या अपुष्ट दावा भार-वाहक (load-bearing) नहीं है। जहां तीसरे पक्ष के निष्कर्ष प्री-रिलीज़ हैं (Pluto Security) वहां उन्हें EARLY RESEARCH लेबल किया गया है और उनका संस्करण बताया गया है।


•

हाथों-हाथ (hands-on) सिफ़ारिश

इस स्टोरी के लिए मैंने असल में जो किया (labs/S12.md इसे दर्ज करता है): INSPECT)। इस मशीन पर लोकल Claude Code 2.1.70 है, जो मॉड्स के लिए ज़रूरी v2.1.287 से बहुत नीचे है, इसलिए BUILD/TEST लैब संभव नहीं था। इसके बजाय मैंने वह सत्यापन किया जो मायने रखता था: शिप हुए रेपो से Anthropic की अपनी जनरेट की गई टाइपस्क्रिप्ट डिक्लेरेशन प्राप्त की और उनसे पूरा इवेंट नेमस्पेस निकाला, फिर लॉन्च पोस्ट के हर क्षमता-दावे को उस डॉक्यूमेंटेशन पेज से मिलाया जो उसे नियंत्रित करता है, और भरोसे के दावों को एक स्वतंत्र सुरक्षा परीक्षक के हाथों-हाथ निष्कर्षों से मिलाया।

Claude Code ≥ 2.1.287 वाले पाठक के लिए सिफ़ारिश की गई हाथों-हाथ गतिविधि (लगभग 45 मिनट, किसी फेंकने योग्य रेपो में):

  1. चलाने से पहले निरीक्षण कीजिए (5 मिनट)। जानबूझकर चौंकाने वाला एक मॉड लिखिए — Bash पर एक tool.call हुक जो rm -rf अस्वीकार करे, AbovePrompt पर एक ui.render हुक जो एक पंक्ति बनाए, और एक tool.check हुक जो तब अस्वीकार करे जब git branch --show-current का नतीजा main हो। claude plugin validate ./my-mod चलाइए। hooks: और calls: पंक्तियां पढ़िए। ध्यान दीजिए कि क्या सूचीबद्ध है और क्या नहीं: next() के रीराइट्स अदृश्य हैं।
  2. लोड कीजिए और देखिए (10 मिनट)। claude --plugin-dir ./my-mod। देखिए कि /plugin मॉड की रिपोर्ट करता है, पट्टी दिखती है, और काउंटर-शैली की स्थिति हॉट रीलोड के पार बची रहती है — फिर जानबूझकर उसे मॉड्यूल वेरिएबल में रखकर स्थिति तोड़िए, और उसे $.state में ले जाइए।
  3. भरोसा करने से पहले परखिए (10 मिनट)। claude-code/testing इस्तेमाल करके tests/my-mod.test.ts जोड़िए; $.tool.call({tool:'Bash', command:'rm -rf /'}) फायर कीजिए और अस्वीकार का टेक्स्ट जांचिए। claude plugin test। न सत्र, न नेटवर्क।
  4. सीमा जांचिए (5 मिनट)। परमिशन प्रॉम्प्ट की रेंडरिंग को हुक करने की कोशिश कीजिए। यह हो नहीं सकता। फिर tool.check जांचिए — वह हो सकता है। इस असमानता के साथ थोड़ी देर बैठिए।
  5. अपने पूरे फ़्लीट का ऑडिट कीजिए (15 मिनट)। हर इंस्टॉल किए प्लगइन का रेपो क्लोन कीजिए और हर एक पर claude plugin validate चलाइए। ख़ास तौर पर $.http.fetch को $.process.run के साथ देखिए।

एक आदत जो मायने रखती है: मॉड्स उस तरह इंस्टॉल कीजिए जैसे आप कोड इंस्टॉल करते हैं, उस तरह नहीं जैसे आप कोई प्रॉम्प्ट इंस्टॉल करते हैं। Anthropic, डॉक्स, स्वतंत्र विश्लेषक और स्वतंत्र सुरक्षा परीक्षक — सब वही एक वाक्य कहते हैं।


•

आगे क्या होगा?

FACT — Anthropic पहले ही प्रतिबद्ध हो चुका है। "हमारा प्लान है कि समय के साथ और बिल्ट-इन फ़ीचर मॉड्स में ले जाएं, ताकि आप Claude Code को एक छोटे कोर तक छांट सकें और सिर्फ़ वही वापस जोड़ सकें जो आप चाहते हैं।" diff, agents-md, sec-default और telemetry का सोर्स रेपो में पहले से सार्वजनिक है।

FACT — उसी रिलीज़ में पहले से शिप हो रहा है। ऑप्ट-इन बिल्ट-इन मॉड cc-plugin-you-should-know, "एक साइड एजेंट जो आपकी पीठ देखता है जबकि Claude लंबे कामों पर चलता है", जिसे /plugin enable cc-plugin-you-should-know@builtin से सक्षम किया जा सकता है, डिफ़ॉल्ट रूप से बंद, सेटिंग्स स्विच से रोका नहीं जा सकता।

PREDICTION (रिकॉर्ड से साफ़ अलग):

  1. क्षमता प्रकटीकरण इंस्टॉल फ़्लो में आ जाएगा। यह अंतराल डॉक्यूमेंट किया, विशिष्ट और उस लॉन्च के लिए शर्मिंदा करने वाला है जिसका मुख्य वाक्य "mods आपके सीक्रेट्स पढ़ सकते हैं" है; उम्मीद कीजिए कि plugin details फ़ंक्शन-हुक इवेंट गिनना शुरू कर देगा और क्षमता सूची एक से तीन रिलीज़ के भीतर इंस्टॉल पर दिखने लगेगी। विश्वास: मध्यम-उच्च।
  2. $.http.fetch के लिए कोई इंटेग्रिटी-पिनिंग या साइन्ड-फ़ेच तंत्र आएगा, क्योंकि fetch-then-run वही ख़ास छेद है जो "प्लगइन की समीक्षा कीजिए" को "पब्लिशर की समीक्षा कीजिए" में बदल देता है। विश्वास: मध्यम।
  3. अगली दो तिमाहियों में दो से पाँच प्रथम-पक्ष बिल्ट-इन फ़ीचर मॉड्स में माइग्रेट होंगे, सबसे संभावित रूप से स्टेटस-लाइन और सत्र-टेलीमेट्री से जुड़ी सतहें। विश्वास: निम्न-मध्यम।
  4. प्रतिस्पर्धी कोडिंग एजेंट्स इन-प्रोसेस एक्सटेंशन मॉडल शिप करेंगे, स्पष्ट गवर्नेंस कहानी के साथ। विश्वास: मध्यम।
  5. पहला सार्वजनिक रूप से रिपोर्ट किया गया दुर्भावनापूर्ण मॉड। विश्वास: मध्यम; समय अप्रत्याशित। यह संभवतः --plugin-dir के बजाय किसी मार्केटप्लेस से आएगा, और संभवतः ज़ोरदार शोषण के बजाय यूआई या ट्रांसक्रिप्ट का धोखा होगा, क्योंकि विफलता का वही तरीका है जिससे यह प्लेटफ़ॉर्म बचाव नहीं करता।
  6. पॉलिसी मॉड्स के इर्द-गिर्द एक एंटरप्राइज़ मानक बनेगा, जिसमें allowManagedModsOnly और प्रीपेंड-टियर गार्ड रेफ़रेंस पैटर्न होंगे। विश्वास: मध्यम।

•

संपादकीय सार

एक पंक्ति: Anthropic ने Claude Code को उस प्रोडक्ट से, जिसे आप कॉन्फ़िगर करते हैं, एक ऐसे रनटाइम में बदल दिया जिसे आप एक्सटेंड करते हैं — और उसी कदम में तीसरे पक्ष के सॉफ़्टवेयर सप्लाई चेन को एजेंट के बाहर से उसके परमिशन लूप के बीच में ले आया।

जो बात ज़्यादातर कवरेज गलत समझती है: वह "मॉड्स अंदर से हुक्स ही हैं" को नामकरण का एक हाशिया-नोट बताती है। यही आर्किटेक्चर है। हर क्षमता जो मायने रखती है — प्रॉम्प्ट रीराइट करना, परमिशन तय करना, टूल के नतीजे से कुछ हटाना, स्क्रीन दोबारा बनाना — इसलिए मौजूद है क्योंकि हैंडलर JSON का आदान-प्रदान करने वाली अलग प्रोसेस से निकलकर इंजन के अपने इवेंट लूप में आ गया। यही एक कदम इस फ़ीचर को ताक़तवर बनाता है और यही इसे ख़तरनाक बनाता है, और ये दोनों एक ही तथ्य हैं।

जो बात ज़्यादातर कवरेज यह भी गलत समझती है: "बिना सैंडबॉक्स" को हाशिये की चेतावनी मानना। यह डिज़ाइन है। Anthropic ने उपयोगकर्ता के क्रेडेंशियल्स के साथ चलने वाला इन-प्रोसेस कोड डिफ़ॉल्ट रूप से चालू रखकर शिप करने का फ़ैसला किया, उपयोगकर्ताओं से यह वादा करने के एक दिन बाद कि वह उन्हें कोड उसी तरह इंस्टॉल करने देगा जैसे वे कोई भी कोड इंस्टॉल करते हैं। राहत असली है — एक गार्ड मॉड, एक अनुमति-सूची, एक स्टैटिक क्षमता स्कैन, एक पॉलिसी-मॉड भाषा — लेकिन यह किसी कोड की समस्या का प्रक्रिया वाला जवाब है, और प्रक्रिया वाले जवाब ही होते हैं जो विफल होते हैं।

जिस बीट को पकड़कर रखना है: क्षमता स्कैन एपीआई कॉल्स देखता है। वह रीराइट्स, कथन (narration), या बाद में फ़ेच किया गया कोड नहीं देखता। इसलिए जो मॉड claude plugin validate में साफ़ दिखता है, वह अब भी बदल सकता है कि एजेंट ने क्या किया, इस बारे में उपयोगकर्ता को क्या दिखता है। वही अंतराल — जो प्रकट किया गया है और जो किया जाता है, उसके बीच — यहां की टिकाऊ स्टोरी है, और वह इस लॉन्च से आगे भी जिएगा।

शुरुआती दर्शकों के लिए सचमुच नई बात: अब आप एजेंट को कॉन्फ़िगर नहीं करते। आप एक ऐसा प्रोग्राम लिखते हैं जो किसी एजेंट के भीतर चलता है, TypeScript में, असली टाइप्स और असली टेस्ट रनर के साथ, और फिर कोई और उसे इंस्टॉल कर सकता है बिना आपके उसे पढ़े। यह ब्राउज़र-एक्सटेंशन के आकार का फ़ैसला है जो किसी टर्मिनल विंडो के भीतर लिया जा रहा है, लगभग रोज़, किसी ऐसे व्यक्ति द्वारा जिससे कहा गया था कि किसी के पोस्ट किए प्लगइन को आज़माए।