सारांश
- दस में से तीन mods रखें: collision-guard, model-router और auto-handoff। हर एक ने headless read टास्क पर लगभग शून्य ओवरहेड दिखाया, और हर एक ऐसी समस्या सुलझाता है जिसका आप नाम ले सकें।
- next-steps हटा दें। यह हर योग्य जवाब के बाद सेशन को fork करता है और हमारे रन में प्रति टर्न +250 आउटपुट टोकन और +2850 ms का खर्च आया, उन सतहों पर भी जो इसके सुझाव कभी दिखाती ही नहीं।
- cache-keeper (+1589 ms, पैसे वाले मॉडल पिंग), recording-mode (यह डिस्प्ले को मास्क करता है, सेव हुई हिस्ट्री को नहीं) और session-bookmarks (ऐसा बुकमार्क जो मॉडल बुला सकता है, प्रोसेस चला सकता है और फ़ाइलें लिख सकता है) हटा दें।
- goal-meter, repo-heatmap और flight-recorder हटा दें, जब तक आपको विज़ुअल न चाहिए हों। इनका खर्च लगभग शून्य है और कोई मापा हुआ फ़ायदा नहीं दिखा।
- हर guard mod डिफ़ॉल्ट रूप से fail open होता है।
.catchhandler के बिना, exception फेंकने वाला guard छोड़ दिया जाता है और कमांड चल जाती है। - Mods sandbox में नहीं चलते। कोई भी इंस्टॉल करने से पहले
claude plugin validateका आउटपुट पढ़ें।
मापन क्या कहते हैं
हाइप और पैमाना। 2026-10-03 को जब हमने स्नैपशॉट लिया, रिलीज़ ट्वीट पर 4,138,918 व्यूज़, 20,021 लाइक और 13,440 बुकमार्क थे s11। कम्युनिटी कैटलॉग में 873 कैंडिडेट रेपो में 1018 mods सूचीबद्ध हैं, जिन्हें 2026-10-03 को Claude Code 2.1.288 के विरुद्ध स्कैन किया गया s9।
Mod एक फ़ंक्शन है जो किसी event से जुड़ता है। यह event से पहले, बाद में, उसकी जगह या उसे लपेटकर चल सकता है s1। Mods के लिए Claude Code v2.1.287 या नया चाहिए और ये डिफ़ॉल्ट रूप से चालू हैं s2।
पहले सुरक्षा। Anthropic के अपने शब्द: "Mods run with the same access to your machine as Claude Code itself. They aren't sandboxed" s1। Mod जो प्रोसेस शुरू करता है वह sandbox के बाहर चलता है, भले ही आपने sandboxing चालू की हो s2। Read(.env) deny होने पर भी mod उस फ़ाइल को $.fs.read से पढ़ सकता है या ऐसा प्रोग्राम चला सकता है जो पढ़े s6। कैटलॉग स्कैन में 409 mods होस्ट प्रोसेस चलाते हैं, 167 फ़ाइलें लिखते हैं, 150 नेटवर्क तक पहुँचते हैं, और 28 इस वर्ज़न पर validate नहीं होते s9।
पहुँच बनाम दावा। हमारे स्टैटिक ऑडिट में session-bookmarks $.model.complete, $.process.run और $.fs.write बुलाता है, यानी बुकमार्क फ़ीचर के लिए सेट में सबसे भारी पहुँच। next-steps का फ़ुटप्रिंट सबसे छोटा था: न fs, न process, न env। claude plugin validate वे calls: और env reads: लाइनें छापता है जो इस ऑडिट में इस्तेमाल हुईं s6।
फ़्लैगशिप mod का हर टर्न पर खर्च है। next-steps turn.complete पर $.model.fork से सेशन fork करता है, और README कहता है कि fork "costs about one short reply" s10। सुझाव केवल टर्मिनल में दिखते हैं; बाकी सतहों पर कुछ नहीं दिखता s10। Fork को बंद करने का कोई विकल्प नहीं है। हमारे headless रन में इसने +250 आउटपुट टोकन और +2850 ms जोड़े, और fork सेशन usage में गिना गया जबकि कुछ दिखाया नहीं गया s10।
दस्तावेज़ित सीमाएँ। Hook का निष्पादन समय प्रति event 10 सेकंड, $.fs की रीड और राइट प्रति फ़ाइल 4 MiB, और $.store कुल 4 MiB JSON तक सीमित है s3।
Guards fail open होते हैं। डॉक्स के अनुसार, बिना .catch handler वाला hook जो exception फेंके, टाइमआउट हो या गलत शेप लौटाए, छोड़ दिया जाता है और उसकी जगह अगला handler चलता है s7। हमने इसे दोहराया: बिना .catch वाले Bash guard ने exception फेंकी और touch ./marker-failopen.txt ने फ़ाइल बना दी। वही guard .catch के साथ, जो {deny} लौटाता है, कोई फ़ाइल नहीं बनी। एक फ़ील्ड रिपोर्ट में ऐसा guard मिला जो enabled था और चल रहा था पर कुछ कर नहीं रहा था, जबकि plugin list में "enabled" दिखता रहा s8।
2.1.288 में एक खुला बग: await next(e) के बाद लौटाया गया deny टूल को नहीं रोकता, और फ़ाइल 3 में से 3 बार लिखी गई जबकि मॉडल को बताया गया कि लिखना फ़ेल हो गया s5।
Mods बनाम settings hooks। Settings hook हर कॉल पर एक प्रोसेस spawn करता है। हमने spawn नापा: true बाइनरी के लिए 2.2 ms, bash -c 'exit 0' के लिए 8.3 ms, python3 -c 'pass' के लिए 26.1 ms और node -e '' के लिए 43.1 ms। हफ़्ते के 5,993 टूल कॉल पर node hook का खर्च 258 s बैठता है। इन-प्रोसेस mod को यह कुछ नहीं चुकाना पड़ता। डॉक्स तब settings hook सुझाते हैं जब आपके पास पहले से ऐसी स्क्रिप्ट हो जो किसी event को ब्लॉक, अनुमति या लॉग करती हो s2। एक माइग्रेशन रिपोर्ट 27 शेल hooks से 5 mods पर गई s8।
मास्किंग सिर्फ़ डिस्प्ले की है। recording-mode वह बदलता है जो ui.render ड्रा करता है। ~/.claude/history.jsonl प्रॉम्प्ट को वैसा ही रखता है जैसा टाइप हुआ, और एक टेस्टर को अपनी canary स्ट्रिंग ट्रांसक्रिप्ट की queue-operation एंट्रियों में 7 बार मिली s5।
जहाँ mods नहीं चलते। Headless claude -p और Agent SDK hooks चलाते हैं पर कुछ ड्रा नहीं करते; Desktop WSL सेशन दोनों में से कुछ नहीं चलाता s2।
कैटलॉग पर भरोसा। एक टेस्टर ने ऐसा mod प्रकाशित किया जिसका बटन $.process.run से प्रोग्राम चलाता था और उसकी होम डायरेक्टरी में फ़ाइल लिखता था। यह किसी भी दूसरे mod की तरह बिना चेतावनी इंस्टॉल हो गया s5। यह खुद प्रकाशित proof of concept था, असल दुनिया में देखा गया हमला नहीं।
मापन तालिका
कॉर्पस: एक असली सेटअप के पिछले 7 दिन, 85 सेशन, 4 प्रोजेक्ट, 882 यूज़र प्रॉम्प्ट, 11,010 असिस्टेंट टर्न, 5,993 टूल कॉल। बेंचमार्क Claude Code 2.1.288 (macOS) पर चला।
| config | dur ms | Δdur | out tok | Δout | task ok |
|---|---|---|---|---|---|
| baseline | 3980 | 0 | 247 | 0 | 3/3 |
| next-steps | 6830 | +2850 | 497 | +250 | 3/3 |
| cache-keeper | 5569 | +1589 | 367 | +120 | 3/3 |
| recording-mode | 8240 | +4260* | 598 | +351* | 3/3 |
| goal-meter | 3722 | -258 | 244 | -3 | 3/3 |
| collision-guard | 4565 | +585 | 376 | +129* | 3/3 |
| repo-heatmap | 4119 | +139 | 257 | +10 | 3/3 |
| flight-recorder | 3949 | -31 | 261 | +14 | 3/3 |
| model-router | 3698 | -282 | 238 | -9 | 3/3 |
| session-bookmarks | 4152 | +172 | 235 | -12 | 3/3 |
| auto-handoff | 4051 | +71 | 248 | +1 | 3/3 |
- से चिह्नित पंक्तियाँ संभवतः जवाबों के अंतर का नतीजा हैं। recording-mode रन के दौरान बंद था और बंद होने पर कुछ inject नहीं करता।
दोबारा चलाने का प्रोटोकॉल:
- एक बार में एक mod इंस्टॉल करें और पक्का करें कि वह
claude plugin validateपास करे। - वही read-only टास्क
claude -pसे haiku पर headless चलाएँ, हर config के लिए 3 बार, और अवधि व आउटपुट टोकन की मध्यिका लें। - केवल अवधि और आउटपुट टोकन के अंतर बताएँ। USD में लागत configs के बीच cache क्रम से बदलती है, इसलिए उसे अनदेखा करें।
- spawn लागत के लिए हर hook बॉडी के 30 spawn का समय नापें, मध्यिका लें, और अपने साप्ताहिक टूल कॉल की गिनती से गुणा करें।
सोमवार को यह करें
- इंस्टॉल किए हर mod पर
claude plugin validateचलाएँ औरcalls:वenv reads:लाइनें पढ़ें। - जिस mod की पहुँच (प्रोसेस, fs राइट, मॉडल कॉल) उसके काम से बड़ी है, उसे बंद करें।
- अगर आप ज़्यादातर headless रन, VS Code पैनल या SDK में काम करते हैं, जहाँ next-steps के सुझाव कभी नहीं दिखते, तो उसे बंद करें।
- जिस भी guard mod पर आप निर्भर हैं, उसमें
{ deny: ... }लौटाने वाला.catchhandler जोड़ें। - साबित करें कि हर guard fail closed होता है: उसे exception फेंकने दें, ऐसी कमांड चलाएँ जो मार्कर फ़ाइल बनाए, और जाँचें कि फ़ाइल नहीं बनी।
- सीक्रेट्स को
~/.claude/history.jsonlया ट्रांसक्रिप्ट से बाहर रखने के लिए मास्किंग mod पर भरोसा न करें। दोनों को डिस्क पर जाँचें। - node या python चलाने वाले प्रति-कॉल शेल hooks को इन-प्रोसेस mod या कंपाइल्ड बाइनरी से बदलें, अगर आपके साप्ताहिक टूल कॉल पर spawn लागत जुड़ती है।
- बंद करने के स्विच सीखें:
/pluginमें एक mod बंद करें, एक सेशन के लिए--safe-mode, हर जगह के लिए~/.claude/settings.jsonमें"disableAllHooks": true।
आगे पढ़ें
- अपना बनाएँ: लगभग 80 लाइन के mod का हाथों-हाथ walkthrough, ज़रूरी pitfalls के साथ (मॉड्यूल-स्तर की state hot reload पर रीसेट होती है, इसलिए डेटा
$.stateमें रखें) s4। - अपनी हिस्ट्री से तय करें कि mod, hook, skill या settings: एक प्रैक्टिशनर पहले बार-बार आने वाली समस्याओं के लिए अपने सेशन लॉग खँगालने का सुझाव देता है s12।
- Guard लिखने से पहले पूरी event सूची और सीमाएँ पढ़ें s3।
- पूरे संगठन का प्रबंधन यहाँ दायरे से बाहर है। सोलो डेवलपर के लिए एक बात:
sec-defaultतब लोड होता है जब मशीन पर managed settings हों या आप Team या Enterprise प्लान से साइन इन हों, और यह कोई और पाबंदी नहीं जोड़ता s6। - डिज़ाइन की शुरुआत, 2.1.288 में ठीक हुए worktree-isolation बग और runtime internals समेत, खुले थ्रेड में है s5।
- Anthropic के सैंपल mods (token-weather, blast-radius, replay-theater) बिना सपोर्ट के साझा किए गए बताए गए हैं s2।
स्रोत
- Customize Claude Code with mods, Anthropic ब्लॉग। क्यों पढ़ें: आधिकारिक परिभाषा और Anthropic के अपने शब्दों में unsandboxed चेतावनी।
- Mods overview, डॉक्स। क्यों पढ़ें: mods बनाम hooks की तुलना, सतहों का मैट्रिक्स और बंद करने के स्विच।
- Mods reference, डॉक्स। क्यों पढ़ें: पूरी event सूची और दस्तावेज़ित सीमाएँ।
- Getting started with Claude Code mods, claude.dev (Addy Osmani)। क्यों पढ़ें: सबसे अच्छा हाथों-हाथ निर्माण, ऐसे pitfalls के साथ जो कोई और स्रोत नहीं बताता।
- Mods issue #91870, GitHub। क्यों पढ़ें: isolation, fail-closed व्यवहार और हिस्ट्री लीक पर फ़ील्ड रिपोर्ट।
- Manage mods for your organization, डॉक्स। क्यों पढ़ें: validate ऑडिट और हर सुरक्षा नियंत्रण की सीमाएँ।
- React to events with a mod, डॉक्स। क्यों पढ़ें: middleware चेन का क्रम और fail-open डिफ़ॉल्ट।
- The Guard I Installed Was Enabled, Running, and Doing Nothing, ब्लॉग। क्यों पढ़ें: इकलौती माइग्रेशन फ़ील्ड रिपोर्ट, 27 शेल hooks से 5 mods तक।
- awesome-claude-code-mods, GitHub। क्यों पढ़ें: इकोसिस्टम का आकार और तैयार ऑडिट तरीका।
- next-steps plugin source, GitHub। क्यों पढ़ें: फ़्लैगशिप mod की असली कार्यप्रणाली, प्रति टर्न fork समेत।
- ClaudeDevs release tweet, X। क्यों पढ़ें: लॉन्च की घोषणा और उसकी पहुँच।
- Avid's session-log mining workflow, X। क्यों पढ़ें: कुछ भी इंस्टॉल करने से पहले तय करने का तरीका कि क्या बनाना या इंस्टॉल करना है।
FAQ
क्या mods sandbox में चलते हैं?
नहीं। Anthropic कहता है कि mods आपकी मशीन तक वही पहुँच रखते हैं जो Claude Code खुद रखता है s1। Mod जो प्रोग्राम शुरू करता है वे भी sandbox के बाहर चलते हैं s2।
अगर मेरा guard mod क्रैश हो जाए तो क्या होगा?
.catch handler के बिना उसे छोड़ दिया जाता है और कमांड चल जाती है s7। { deny: ... } लौटाने वाला .catch जोड़ें ताकि वह fail closed हो।
क्या mod टोकन खर्च करता है?
सिर्फ़ तब जब वह मॉडल को बुलाए। जिन दस को हमने चलाया, उनमें next-steps और cache-keeper में मापने लायक खर्च दिखा; बाकियों में हमारे रन में कोई ठोस ओवरहेड नहीं दिखा।
mods को जल्दी से कैसे बंद करूँ?
/plugin में एक बंद करें, --safe-mode के साथ सेशन शुरू करें, या ~/.claude/settings.json में "disableAllHooks": true सेट करें s2। इनमें से कोई भी built-in mods को नहीं रोकता।
क्या इंस्टॉल करने से पहले देख सकता हूँ कि mod क्या करता है?
हाँ। claude plugin validate hooks, API कॉल और वे environment variables सूचीबद्ध करता है जो वह पढ़ता है s6।
AIDive