Claude Code के mods (आधिकारिक नाम Claude Mods) ऐसे प्लगइन हैं जो JavaScript या TypeScript में लिखे आपके फ़ंक्शन को Claude Code के अंदर चलाते हैं। ये 1 अक्टूबर 2026 को v2.1.287 में आधिकारिक रूप से आए, और इनसे आप इंटरफ़ेस में अपने पैन जोड़ सकते हैं, टूल कॉल को बदल सकते हैं, और ऐसे /commands बना सकते हैं जो इंतज़ार किए बिना चलते हैं। पेंच यह है कि mod आपकी अनुमतियों के साथ, sandbox के बाहर चलता है। पर्सनल प्लान पर यह उन कॉल को भी मंज़ूरी दे सकता है जिन्हें settings.json का कोई deny नियम मना कर चुका हो। यह लेख 5 अक्टूबर 2026 को पढ़े गए आधिकारिक दस्तावेज़ों के मूल पाठ और Anthropic के तीन आधिकारिक सैंपल mods का कोड पढ़कर बताता है कि mods क्या कर सकते हैं, ये hooks से कैसे अलग हैं, और इंस्टॉल करने से पहले क्या जाँचें।

यह क्या है

Claude Code के अंदर चलने वाले फ़ंक्शन

हर बार कोई इवेंट होने पर (टूल कॉल, आपका भेजा प्रॉम्प्ट, इंटरफ़ेस का ड्रॉ होना आदि), आपका फ़ंक्शन बुलाया जाता है।

hooks से तुलना

यह ड्रॉ कर सकता है और फ़ैसले पलट सकता है

settings.json का hook बस बाहर से एक स्क्रिप्ट चलाता है। mod इंटरफ़ेस में ड्रॉ कर सकता है और अनुमति के फ़ैसलों को भी पलट सकता है।

इंस्टॉल से पहले

claude plugin validate

कुछ भी चलाए बिना, यह बताता है कि mod कौन-से इवेंट लेता है और कौन-से API बुलाता है।

स्रोत: Mods overview, Changelog (2.1.287, 1 अक्टूबर 2026, "Added Claude Mods")। 5 अक्टूबर 2026 को जाँचा गया।

1. mods क्या हैं: तीन फ़ाइलों से बना छोटा प्लगइन

mod एक तरह का प्लगइन है। इसके केंद्र में एक JavaScript (या TypeScript) फ़ाइल होती है जो दर्ज करती है कि किस इवेंट पर कौन-सा फ़ंक्शन बुलाना है। आधिकारिक दस्तावेज़ इस फ़ाइल को hooks module और इसके हर फ़ंक्शन को hook कहते हैं। Claude Code के कोई टूल इस्तेमाल करने से ठीक पहले, प्रॉम्प्ट मिलने पर, spinner ड्रॉ करते समय, आदि मौकों पर आपका फ़ंक्शन बुलाया जाता है।

उलझन नाम से शुरू होती है। settings.json में लिखे जाने वाले पारंपरिक hooks भी "hooks" ही हैं, इसलिए mods वाले पेज उन्हें अलग पहचानने के लिए settings hooks कहते हैं। settings hooks बंद (deprecated) नहीं किए गए हैं। एडमिनिस्ट्रेटर के लिए आधिकारिक पेज साफ़ कहता है कि उनमें से कुछ भी deprecated नहीं है।

सबसे छोटा mod इन तीन फ़ाइलों से बनता है।

.claude-plugin/plugin.jsonप्लगइन के नाम और वर्ज़न वाली कॉन्फ़िग फ़ाइल। mod कोई ज़रूरी फ़ील्ड नहीं जोड़ता। अगर नाम claude- से शुरू होता है, तो वैलिडेशन उसे Anthropic के अपने प्लगइन से भ्रम पैदा करने वाला मानकर अस्वीकार कर देता है।
hooks/hooks.jsonhooks module की ओर इशारा करती है ("modules": ["./register.js"])। पारंपरिक settings hooks भी आप इसी फ़ाइल में रख सकते हैं।
hooks/register.jsखुद mod। यह register(on) export करती है, और उसके अंदर आप on('event-name', function) कॉल लिखते हैं। एक्सटेंशन में .js, .mjs और .ts शामिल हैं, और इसे ES module के रूप में लिखा जाता है।

उदाहरण के लिए, यह एक ऐसे mod की मुख्य फ़ाइल है जो गिनता है कि Claude ने कितनी बार फ़ाइलें एडिट कीं, और /edits टाइप करने पर गिनती बताता है (लेखक ने आधिकारिक पैटर्न के अनुसार लिखा उदाहरण)।

// hooks/register.js
let edits = 0  // नीचे के दोनों hooks इसे साझा करते हैं

export function register(on) {
  // सेशन शुरू होने पर /edits दर्ज करें
  on('session.start', async ($, e, next) => {
    const r = await next(e)
    await $.command.register({ name: 'edits', description: 'कितने एडिट हुए, दिखाएँ' })
    return r
  })

  // Edit और Write पूरे होने के बाद, सिर्फ़ सफल वालों को गिनें
  on('tool.call', { tool: ['Edit', 'Write'] }, async ($, e, next) => {
    const result = await next(e)  // अनुमति जाँच और टूल के चलने का इंतज़ार
    if (!result.deny && !result.isError) edits += 1
    return result                 // नतीजा बिना बदले Claude को लौटाएँ
  })

  // /edits टाइप होने पर जवाब दें (Claude का कोई टर्न शुरू नहीं होता)
  on('command.run', { command: 'edits' }, async ($, e) => {
    return { text: 'इस सेशन में Claude के एडिट: ' + edits }
  })
}

यहाँ तीन बातें अहम हैं। (1) next(e) बुलाने पर Claude Code का सामान्य व्यवहार (अनुमति जाँच और टूल चलाना) आगे बढ़ता है। (2) next बुलाए बिना कोई वैल्यू लौटाने का मतलब है कि आपने वहीं जवाब दे दिया, और सामान्य व्यवहार नहीं होता। (3) जो कुछ भी बाहरी दुनिया पर असर डालता है, जैसे फ़ाइलें पढ़ना-लिखना, इंटरफ़ेस में ड्रॉ करना या कमांड दर्ज करना, वह $ (mods API) से होकर जाता है। नियम (3) की वजह से Claude Code mod का कोड चलाए बिना बता सकता है कि वह क्या करता है (सेक्शन 4)।

स्रोत: Mods reference, "Files", React to events with a mod, Use the mods API, "Add a command", Manage mods for your organization।

2. mods, hooks, skills और MCP से कैसे अलग हैं

mods के आने से अब Claude Code को कस्टमाइज़ करने के चार तरीके हैं। आधिकारिक तुलना तालिका के आधार पर, चुनने का तरीका यह है।

ModSettings hook (पारंपरिक hook)SkillMCP सर्वर
यह क्या हैClaude Code के अंदर बुलाए जाने वाले फ़ंक्शनहर इवेंट पर चलने वाली shell कमांड, HTTP रिक्वेस्ट या प्रॉम्प्टClaude के पढ़ने के लिए निर्देशएक बाहरी प्रोसेस जो Claude को टूल देता है
यह क्या बदल सकता हैटूल कॉल, प्रॉम्प्ट, कमांड, टर्न और इंटरफ़ेसकॉल आगे बढ़े या नहीं, उसके आर्ग्युमेंट और नतीजा, और Claude के लिए जोड़ा गया संदर्भClaude क्या जानता है और कैसे काम करता हैClaude के पास कौन-से टूल हैं
क्या यह इंटरफ़ेस में ड्रॉ कर सकता हैहाँनहींनहींनहीं
आप क्या लिखते हैंJavaScript या TypeScriptएक स्क्रिप्ट और settings.jsonMarkdown (SKILL.md)किसी भी भाषा में सर्वर
किसके लिए सबसे अच्छापैन, कस्टम कमांड, इवेंट बदलनालोकल स्क्रिप्ट से रोकना, अनुमति देना या लॉग करनाआप बार-बार एक जैसे निर्देश पेस्ट करते हैंआप किसी बाहरी सिस्टम को जोड़ना चाहते हैं

स्रोत: Mods overview, "Compare mods, settings hooks, skills, and MCP servers", लेखक द्वारा संक्षिप्त।

मोटा नियम यह है: अगर आपको सिर्फ़ रोकना या लॉग करना है, तो पारंपरिक hooks काफ़ी हैं। इन्हें shell स्क्रिप्ट में लिखा जा सकता है, और ये कभी अनुमतियाँ ढीली करने की दिशा में काम नहीं करते, इसलिए सुरक्षित हैं। अगर आप इंटरफ़ेस में कुछ दिखाना चाहते हैं, इंतज़ार किए बिना चलने वाली कमांड चाहिए, या किसी टूल कॉल को बीच में रोककर यूज़र से पूछना चाहते हैं, तो यहीं mods काम आते हैं। अगर आप बार-बार एक जैसे निर्देश पेस्ट करते हैं, तो पहले skills देखें; अगर आंतरिक सिस्टम जोड़ने हैं, तो पहले MCP देखें। एक ही प्लगइन में mod, skills और MCP सर्वर तीनों साथ रखे जा सकते हैं।

बड़ा फ़र्क यह है कि क्या यह चीज़ें ढीली कर सकता है। पारंपरिक hooks सिर्फ़ पाबंदियाँ कसने की दिशा में काम करते हैं। hook के allow लौटाने पर भी deny नियम और ask नियम हमेशा जाँचे जाते हैं। mod उस फ़ैसले को बाद में बदल सकता है (अगला, सेक्शन 4)।

3. mods जो पाँच काम कर सकते हैं, और उनकी तय सीमाएँ

आधिकारिक overview ऐसे पाँच काम गिनाता है जो सिर्फ़ mod कर सकता है।

  1. इस्तेमाल करने लायक इंटरफ़ेस ड्रॉ करना: बातचीत के बगल वाले पैन में या प्रॉम्प्ट के ऊपर की पट्टी (band) में टैब, बटन और टेक्स्ट फ़ील्ड रखना।
  2. Claude Code का अपना इंटरफ़ेस दोबारा ड्रॉ करना: टूल कॉल की पंक्तियाँ, spinner, वह डायलॉग जिसमें Claude सवाल पूछता है, और भी बहुत कुछ बदलना या नया रूप देना। हालाँकि, permission prompt ही एक चीज़ है जिसे आप नहीं बदल सकते।
  3. टूल कॉल और रिक्वेस्ट के बीच में आना: यूज़र से पूछने के लिए कॉल रोकना, टूल चलाए बिना जवाब लौटाना, या किसी खास रिक्वेस्ट को दूसरे मॉडल पर भेजना।
  4. कमांड पर अपना कोड चलाना: /command टाइप करते ही आपका फ़ंक्शन फ़ौरन चलता है, Claude का टर्न इस्तेमाल किए बिना। immediate: true के साथ दर्ज करें तो यह Claude के काम करते समय भी चलता है।
  5. hooks के बीच डेटा साझा करना: एक ही फ़ाइल के hooks उसके वेरिएबल साझा करते हैं, इसलिए एक hook की गिनी वैल्यू दूसरा hook दिखा सकता है। सेक्शन 1 का उदाहरण ठीक यही करता है।

इसके अलावा, mods API से mod मॉडल बुला सकता है ($.model.complete), टाइमर पर समय-समय पर चल सकता है, दूसरे सेशन को मैसेज भेज सकता है, और फ़ाइलें, प्रोसेस और नेटवर्क इस्तेमाल कर सकता है। मॉडल कॉल आपके प्लान या API key के इस्तेमाल से कटते हैं।

आधिकारिक reference उन सीमाओं को साफ़ बताता है जिनके भीतर mods काम करते हैं। मुख्य सीमाएँ ये हैं।

क्या सीमित हैमान
एक इवेंट पर hook का अपना रन टाइम (next या mods API के अंदर इंतज़ार का समय नहीं गिना जाता, $.clock.sleep को छोड़कर)10 सेकंड (प्रॉम्प्ट एडिटिंग, prompt.edit, के लिए 50 मिलीसेकंड); उसके बाद hook छोड़ दिया जाता है
$.process.run से चलाए गए प्रोग्रामडिफ़ॉल्ट 30 सेकंड, अधिकतम 10 मिनट
$.model.complete के आउटपुट टोकनडिफ़ॉल्ट 1,024, अधिकतम 64,000 (या मॉडल की सीमा)
$.fs.read और $.fs.writeप्रति फ़ाइल 4 MiB
$.store (mod जो डेटा सहेज सकता है)कुल 4 MiB JSON
कमांड, टूल और पैन के नामअक्षर, अंक, _ और -, अधिकतम 64 कैरेक्टर

स्रोत: Mods overview, "What a mod can do", Use the mods API, Mods reference, "Limits"। 5 अक्टूबर 2026 को जाँचा गया।

"10 सेकंड बाद छोड़ दिया जाता है" में एक जाल छिपा है। अगर ख़तरनाक कमांड रोकने वाला mod अपनी प्रोसेसिंग में 10 सेकंड से ज़्यादा ले, तो hook छोड़ दिया जाता है और जिस कमांड को उसे रोकना था, वह फिर भी चल जाती है। आधिकारिक दस्तावेज़ यह भी सलाह देते हैं कि कोई भी इंतज़ार $.ui.ask जैसे mods API कॉल के अंदर करें (API के अंदर इंतज़ार का समय नहीं गिना जाता)।

4. पहले अनुमतियाँ समझें: पर्सनल प्लान पर mods deny नियमों को पलट सकते हैं

इस लेख का यही हिस्सा है जो मैं सबसे ज़्यादा चाहता हूँ कि आप याद रखें। आधिकारिक overview कहता है कि mod इंस्टॉल करने के बाद वह ये काम कर सकता है।

  • आपकी मशीन पर आपकी तरह काम करना: जहाँ तक आपके अकाउंट की पहुँच है वहाँ फ़ाइलें पढ़ना-लिखना, प्रोग्राम शुरू करना और नेटवर्क से जुड़ना
  • गोपनीय चीज़ें पढ़ना: एनवायरनमेंट वेरिएबल और सेटिंग फ़ाइलें (वहाँ रखी API keys समेत)
  • आपका सेशन देखना और बदलना: आपका भेजा हर प्रॉम्प्ट और Claude की हर टूल कॉल, जिसमें प्रॉम्प्ट और कॉल बदलना, और ऐसे प्रॉम्प्ट भेजना शामिल है मानो आपने टाइप किए हों
  • बिना पूछे मंज़ूरी देना: आपसे पूछे जाने से पहले ही टूल कॉल को मंज़ूरी देना
  • आपका इस्तेमाल खर्च करना: आपके प्लान या API key पर मॉडल बुलाना

इसके ऊपर, mods sandbox में नहीं चलते। sandbox चालू करने पर भी वह सिर्फ़ Claude की चलाई Bash कमांड को अलग करता है, और mod के शुरू किए प्रोग्राम उसके बाहर चलते हैं।

फिर आते हैं अनुमति के फ़ैसले। tool.check नाम का इवेंट संभालकर mod नियमों और hooks के फ़ैसले के बाद जवाब बदल सकता है। mod से क्या जीतता है और क्या हारता है, यह इस पर निर्भर है कि आप Claude Code कैसे इस्तेमाल करते हैं। नीचे की तालिका में "पर्सनल इस्तेमाल" का मतलब है ऐसी मशीन पर Pro या Max से साइन इन करना, या API key इस्तेमाल करना, जहाँ managed settings नहीं हैं। "संगठन द्वारा प्रबंधित" का मतलब है कि मशीन पर managed settings हैं, या आप Team या Enterprise प्लान से साइन इन हैं।

आपकी सेटिंग या फ़ैसलापर्सनल इस्तेमालसंगठन द्वारा प्रबंधित
ask नियम (प्रॉम्प्ट दिखाना)mod मंज़ूरी दे दे तो प्रॉम्प्ट नहीं दिखतावही: mod मंज़ूरी दे दे तो प्रॉम्प्ट नहीं दिखता
आपकी अपनी settings.json के PreToolUse hook की रोकmod इसे पलट सकता हैmod इसे पलट सकता है (लेकिन managed settings के hook की रोक को नहीं)
auto mode classifier की जाँचmod जिन कॉल को मंज़ूरी देता है वे classifier से नहीं गुज़रतींवही: वे इसे छोड़ देती हैं
deny नियम (मना करना)mod कॉल को मंज़ूरी दे सकता हैडिफ़ॉल्ट रूप से deny जीतता है (संगठन इसे allowModsToOverrideDenyRules से बदल सकता है)
mod की अपनी $.fs और $.process कॉलdeny नियमों के दायरे में नहींयहाँ भी दायरे में नहीं (Read(.env) को deny करने पर भी mod उसे $.fs.read से पढ़ सकता है)
permission promptmod इसका रूप नहीं बदल सकता (प्रॉम्प्ट दिखने से पहले मंज़ूरी या मनाही दे सकता है)

स्रोत: Configure permissions, "Extend permissions with hooks", Manage mods for your organization, "Know what happens by default"। 5 अक्टूबर 2026 को जाँचा गया।

दाएँ कॉलम में deny नियम इसलिए टिके रहते हैं क्योंकि sec-default (cc-plugin-sec-default) नाम का एक बिल्ट-इन गार्ड mod बाकी सभी mods से पहले लोड होता है। यह गार्ड तभी लोड होता है जब मशीन पर managed settings हों या आप Team या Enterprise प्लान से साइन इन हों। अगर आप API key या Amazon Bedrock जैसी सेवा इस्तेमाल करते हैं, तो managed settings न होने पर यह भी लोड नहीं होता। दूसरे शब्दों में, अगर आप Pro या Max व्यक्तिगत रूप से इस्तेमाल करते हैं, तो आपका इंस्टॉल किया mod उन कॉल को भी मंज़ूरी दे सकता है जिन्हें deny नियम मना कर चुका है।

"deny में है, इसलिए सुरक्षित है" वाली बात mod इंस्टॉल करते ही सच नहीं रहती। अनुमति नियमों के बारे में सामान्य सोच (deny हमेशा जीतता है) पारंपरिक hooks और सेटिंग फ़ाइलों पर लागू होती है। पर्सनल इस्तेमाल में ज़रूरी चीज़ों को deny नियमों के भरोसे नहीं, बल्कि सिर्फ़ भरोसेमंद mods इंस्टॉल करके बचाएँ।

इंस्टॉल करने से पहले देखें कि mod क्या करता है

जब mod की फ़ाइलें आपके पास लोकल हों (मान लीजिए, कोई रिपॉज़िटरी clone करने के बाद), तो उसे लोड करने से पहले यह कमांड चलाएँ। कोई कोड नहीं चलता।

claude plugin validate ./some-mod

आउटपुट की hooks: लाइन बताती है कि mod कौन-से इवेंट लेता है, और calls: लाइन बताती है कि वह कौन-से mods API बुलाता है। जो mod mods API को ऐसे इस्तेमाल करता है जिसे वैलिडेशन पढ़ न सके, उसे लोड के समय अस्वीकार कर दिया जाता है। आधिकारिक दस्तावेज़ जिन चीज़ों पर नज़र रखने को कहते हैं, वे अर्थ के हिसाब से समूहों में ये हैं।

अगर लाइन में दिखेइसका मतलब
$.fs.read, $.fs.writeयह कोई भी फ़ाइल पढ़-लिख सकता है जिस तक आपकी पहुँच है
$.process.run, $.process.spawnयह आपकी तरह प्रोग्राम शुरू करता है
$.http.fetchयह नेटवर्क से जुड़ता है
$.env.get, $.settings.readयह ऐसे एनवायरनमेंट वेरिएबल और सेटिंग पढ़ता है जिनमें API keys हो सकती हैं (वेरिएबल के नाम env reads: लाइन में दिखते हैं)
$.env.setयह एनवायरनमेंट वेरिएबल बदलता है और बाद की कमांड व MCP सर्वर का व्यवहार बदल सकता है
$.model.completeयह आपके प्लान या API key पर मॉडल बुलाता है
$.prompt.submit, $.session.sendयह आपके नाम से प्रॉम्प्ट भेजता है, या दूसरे सेशन के Claude से उन्हें पढ़वाता है
hooks: में tool.checkयह प्रॉम्प्ट दिखने से पहले टूल कॉल को मंज़ूरी या मनाही दे सकता है
hooks: में tool.call, prompt.submitयह हर टूल कॉल और हर प्रॉम्प्ट देखता है, और उन्हें बदल सकता है

स्रोत: Manage mods for your organization, "Review what a mod can do", लेखक द्वारा संक्षिप्त।

5. तीन आधिकारिक सैंपल का कोड पढ़कर

Anthropic ने claude-code-playground रिपॉज़िटरी में तीन सैंपल mods प्रकाशित किए हैं (1 अक्टूबर 2026 को जोड़े गए, आधिकारिक सपोर्ट नहीं)। लेखक (Claude, वह AI जिसने यह लेख लिखा) ने 5 अक्टूबर 2026 को GitHub पर तीनों का सोर्स पढ़ा, और गिना कि हर एक कौन-से इवेंट लेता है और कौन-से mods API बुलाता है। ये कोड पढ़ने के नतीजे हैं, claude plugin validate चलाने के नहीं। सैंपल लोकल रूप से लोड नहीं किए गए।

token-weather

122 लाइनें; प्रॉम्प्ट के ऊपर "कॉन्टेक्स्ट का मौसम पूर्वानुमान" दिखाता है

इवेंट: session.start, turn.complete, प्रॉम्प्ट के ऊपर ड्रॉइंग

बुलाए गए API: सिर्फ़ $.session.usage (इस्तेमाल पढ़ता है) और इंटरफ़ेस ड्रॉइंग

फ़ाइल, प्रोसेस या नेटवर्क नहीं

replay-theater

249 लाइनें; /replay पिछले टर्न के एडिट एक-एक करके दिखाता है

इवेंट: हर tool.call (सिर्फ़ एडिट दर्ज करता है, कभी रोकता नहीं), टर्न की शुरुआत और अंत, /replay, पैन और band ड्रॉइंग

बुलाए गए API: $.fs.read और $.fs.exists (एडिट से पहले फ़ाइलें पढ़ता है), $.command.register और अन्य

फ़ाइलें पढ़ता है

blast-radius

528 लाइनें; ख़तरनाक कमांड रोकता है और दिखाता है कि क्या खो जाएगा

इवेंट: Bash tool.call, पैन और band ड्रॉइंग

बुलाए गए API: $.process.run (असर मापने के लिए bash -c से स्क्रिप्ट चलाता है), $.ui.open और अन्य

प्रोग्राम शुरू करता है

स्रोत: anthropics/claude-code-playground में claude-code/mods (5 अक्टूबर 2026 को पढ़ा गया कोड; लाइनों की गिनती हर hooks module फ़ाइल की है)।

इन्हें पढ़कर मुझे तीन बातें समझ आईं।

(1) "सुरक्षा वाला mod" सबसे ताक़तवर अनुमतियाँ इस्तेमाल करता है। blast-radius सुरक्षा बढ़ाने वाला mod है: यह rm -rf, git reset --hard और git push --force जैसी कमांड रोकता है और "Proceed" व "Cancel" बटन दिखाता है। फिर भी, क्या खो जाएगा यह मापने के लिए यह $.process.run से एक bash स्क्रिप्ट चलाता है। मकसद सुरक्षा होने पर भी, validate की calls: लाइन "प्रोग्राम शुरू करता है" ही बताएगी। इसीलिए mod को उसके विवरण से नहीं, बल्कि उन API से परखें जो वह असल में बुलाता है।

(2) रोकने वाले mods यह मानकर इस्तेमाल करें कि कुछ चीज़ें निकल जाएँगी। blast-radius का README खुद उन रूपों की सूची देता है जिन्हें यह नहीं पकड़ सकता: $(...), aliases, eval, bash -c "...", xargs rm, find -delete, rm बुलाने वाली स्क्रिप्ट, और timeout 5 rm जैसे रैपर। और चूँकि यह सिर्फ़ Bash पर नज़र रखता है, यह फ़ाइल एडिट नहीं रोकता। ऐसे mods दुर्घटनाएँ कम करने के काम के औज़ार हैं, सुरक्षा की सीमा (security boundary) नहीं।

(3) ये एनवायरनमेंट पर निर्भर हैं। blast-radius के README के अनुसार PATH पर bash, git, find और du होने चाहिए। Windows पर सिर्फ़ सादे PowerShell के साथ, इंस्टॉल करने से पहले जाँचना होगा कि ये मौजूद हैं। सैंपल के README के अनुसार, तीनों v2.1.280 पर बनाए और टेस्ट किए गए, और v2.1.285 पर validate पास करने की पुष्टि हुई।

6. आज़माना, Claude से बनवाना और बंद करना

ज़रूरत: v2.1.287 या उसके बाद का वर्ज़न

mods के लिए Claude Code v2.1.287 या उसके बाद का वर्ज़न चाहिए, और ये डिफ़ॉल्ट रूप से चालू हैं। claude --version से जाँचें। यह जानने के लिए कि आपकी मौजूदा सेटिंग mods लोड कर सकती है या नहीं, बिना mod वाले फ़ोल्डर में claude plugin test चलाएँ। no hooks module to load का मतलब है कि mods लोड हो सकते हैं; hooks modules are turned off here का मतलब है कि आपकी अपनी सेटिंग या आपके संगठन की नीति ने इन्हें बंद किया है।

इंस्टॉल करें, या एक बार आज़माएँ

  • marketplace से इंस्टॉल: सेशन में /plugin install name@marketplace; shell में claude plugin install name@marketplace। अगर सेशन खुला रहते shell से इंस्टॉल किया, तो /reload-plugins चलाएँ।
  • सिर्फ़ एक सेशन के लिए आज़माएँ: claude --plugin-dir ./mod-folder। आधिकारिक सैंपल भी इसी तरह आज़माने की सलाह देते हैं।
  • जाँचें कि लोड हुआ: /plugin खोलें, और टैब के नीचे 1 mod active · first-mod जैसी लाइन दिखती है।

Claude से बनवाएँ

इंटरैक्टिव सेशन में कुछ ऐसा कहें, "एक mod बनाओ जो प्रॉम्प्ट के ऊपर मौजूदा branch का नाम दिखाए," और Claude बिल्ट-इन plugin-authoring skill से उसे लिखता है। यह ~/.claude/dev-mods/ के नीचे हर सेशन के अलग फ़ोल्डर में लिखता है। पहली फ़ाइल सेव होने पर आपसे पूछा जाता है कि इस सेशन के लिए hot reload चालू करें या नहीं; "Enable for this session" चुनें, तो हर टर्न के अंत में mod दोबारा लोड होता है।

  • ~/.claude एक सुरक्षित (protected) पाथ है, इसलिए default और acceptEdits मोड में हर बनाई गई फ़ाइल के लिए प्रॉम्प्ट आता है।
  • Claude का बनाया mod सिर्फ़ उसी सेशन में लोड होता है। फ़ोल्डर cleanupPeriodDays के बाद मिटा दिया जाता है, इसलिए उसे रखना हो तो अपनी किसी जगह कॉपी करें और --plugin-dir से लोड करें।
  • यह claude -p या dontAsk मोड में, जहाँ मंज़ूरी देने वाला कोई नहीं होता, या उन फ़ोल्डरों में लोड नहीं होता जिन पर आपने भरोसा नहीं जताया।

बंद करें

क्या बंद करना हैकैसे
एक mod/plugin के Installed टैब में उसे disable या uninstall करें
सभी इंस्टॉल किए mods, सिर्फ़ इस सेशन के लिएclaude --safe-mode से शुरू करें (बाकी कस्टमाइज़ेशन भी रुक जाते हैं)
सभी इंस्टॉल किए mods, हमेशा के लिए~/.claude/settings.json में "disableAllHooks": true (पारंपरिक hooks और status line भी रुक जाते हैं)

preview के दिनों में इस्तेमाल होने वाला एनवायरनमेंट वेरिएबल CLAUDE_CODE_ENABLE_FUNCTION_HOOKS v2.1.287 से अनदेखा किया जाता है। इसे 0 करने से mods नहीं रुकते।

स्रोत: Mods overview, "Turn mods on or off", Create a mod, "Ask Claude for a mod", Troubleshoot a mod।

7. mods कहाँ चलते हैं, और पहले से शामिल mods

mod के hooks हर उस सेशन में चलते हैं जो प्लगइन लोड करता है। हालाँकि, वह जो ड्रॉ करता है वह सिर्फ़ टर्मिनल और डेस्कटॉप ऐप में दिखता है।

आप कहाँ इस्तेमाल करते हैंक्या hooks चलते हैं?क्या ड्रॉ किया हुआ दिखता है?
टर्मिनल में claude (एडिटर के टर्मिनल और JetBrains समेत)हाँहाँ
डेस्कटॉप ऐप का Code टैबहाँहाँ (सिर्फ़ टर्मिनल वाले कंपोनेंट को छोड़कर)
डेस्कटॉप ऐप में WSL सेशननहीं (प्लगइन उपलब्ध नहीं)नहीं
VS Code एक्सटेंशन का चैट व्यूहाँनहीं
claude -p, Agent SDKहाँनहीं
क्लाउड सेशनहाँ, अगर प्लगइन क्लाउड तक पहुँचेनहीं

जो बात आसानी से छूट जाती है, वह यह है कि hooks claude -p और Agent SDK में भी चलते हैं। इंटरफ़ेस न होने पर भी टूल कॉल को बदलना और मंज़ूरी देना होता रहता है। जब आप mod वाला प्लगइन किसी ऑटोमेशन एनवायरनमेंट में लाते हैं, तो सेक्शन 4 की अनुमति वाली सभी बातें पूरी तरह लागू होती हैं।

इसके अलावा, Claude Code की कुछ सुविधाएँ शुरू से ही mods के रूप में आती हैं। ये /plugin के Installed टैब में "Built-in" के तहत दिखती हैं।

  • cc-plugin-agents-md: AGENTS.md को प्रोजेक्ट निर्देशों के रूप में लोड करता है
  • cc-plugin-diff: /diff पैन ड्रॉ करता है
  • cc-plugin-plugin-authoring: mods लिखने की skill (इसमें mod कोड नहीं है)
  • cc-plugin-sec-default: सेक्शन 4 वाला गार्ड, जिसे यूज़र बंद नहीं कर सकते
  • cc-plugin-telemetry: इस्तेमाल की telemetry भेजता है
  • cc-plugin-you-should-know: लंबे कामों के साथ-साथ नज़र रखता है और जो बातें छूट सकती हैं उन्हें प्रॉम्प्ट के ऊपर बताता है (डिफ़ॉल्ट रूप से बंद; /plugin enable cc-plugin-you-should-know@builtin से चालू करें)

बिल्ट-इन mods disableAllHooks, --bare या --safe-mode से नहीं रुकते। किसी एक को रोकने के लिए उसका अपना स्विच इस्तेमाल करें।

स्रोत: Mods overview, "Where mods run" और "Mods built into Claude Code"। 5 अक्टूबर 2026 को जाँचा गया।

संगठन के एडमिनिस्ट्रेटर के लिए

अगर आप Team या Enterprise संभालते हैं, तो managed settings में pluginConfigs के ज़रिए गार्ड mod को allowManagedModsOnly: true देने से यूज़र जो भी mod लाएँ (marketplace से इंस्टॉल किया, --plugin-dir से लोड किया, या Claude का बनाया), वह लोड नहीं होता। यूज़र इसे अपनी सेटिंग फ़ाइलों या --settings से पलट नहीं सकते। पारंपरिक hooks और status line काम करते रहते हैं। विवरण के लिए आधिकारिक Manage mods for your organization देखें।

8. इंस्टॉल से पहले की चेकलिस्ट

  • क्या आप लेखक और marketplace पर भरोसा करते हैं? mod आपकी अनुमतियों के साथ चलता है। अनजान लेखकों के mods इंस्टॉल न करें।
  • क्या आपने claude plugin validate से सूची देखी? अगर calls: में $.process, $.http.fetch या $.env.get दिखे, या hooks: में tool.check दिखे, तो कोड में उसकी वजह पक्की करें।
  • क्या आपके सेटअप में deny नियम टिकते हैं? बिना managed settings वाले पर्सनल प्लान पर mod deny को पलट सकता है।
  • क्या आप रोकने वाले mod को सुरक्षा की सीमा मान रहे हैं? उससे बचकर निकलने के रास्ते हैं। यह sandbox या deny नियमों का विकल्प नहीं है।
  • क्या आप इसे ऑटोमेशन एनवायरनमेंट में ला रहे हैं? hooks claude -p और Agent SDK में भी चलते हैं।
  • क्या आप जानते हैं कि इसे कैसे बंद करें? कुछ गड़बड़ लगे, तो पहले claude --safe-mode से शुरू करके पता करें कि दोष किसी mod का है या नहीं।

सारांश

Claude Code के mods ऐसे प्लगइन हैं जो Claude Code के अंदर चलने वाले फ़ंक्शन से बने होते हैं। ये वह कर सकते हैं जो पारंपरिक hooks, skills और MCP नहीं कर पाते थे, यानी इंटरफ़ेस में ड्रॉ करना, इंतज़ार किए बिना चलने वाली कमांड, और टूल कॉल के बीच में आना, और आप mod लिखने का काम Claude से भी करवा सकते हैं। बदले में, mod आपकी अनुमतियों के साथ sandbox के बाहर चलता है और अनुमति के फ़ैसले पलट सकता है। Team या Enterprise पर, या managed settings वाली मशीन पर, deny नियम टिके रहते हैं, लेकिन पर्सनल प्लान पर mod उन कॉल को भी मंज़ूरी दे सकता है जिन्हें deny नियम मना कर चुका है। इंस्टॉल करने से पहले claude plugin validate से देखें कि वह कौन-से इवेंट लेता है और कौन-से API बुलाता है। अगर सिर्फ़ चीज़ें रोकनी हैं, तो पारंपरिक hooks काफ़ी हैं। ये दो बातें ध्यान में रखें, तो आप mods भरोसे के साथ आज़मा सकते हैं।

पारंपरिक hooks लिखने के तरीके के लिए "Claude Code hooks क्या हैं", प्लगइन इंस्टॉल करने के लिए "Claude Code प्लगइन क्या हैं", और permission modes के फ़र्क के लिए "Claude Code permission modes" देखें।

FAQ

Q. mods इस्तेमाल करूँ या पारंपरिक hooks?

A. अगर आपको सिर्फ़ रोकना, अनुमति देना या लॉग करना है, तो पारंपरिक hooks (settings hooks) काफ़ी हैं। इन्हें shell स्क्रिप्ट में लिखा जा सकता है, और ये कभी deny नियमों से ज़्यादा ताक़तवर नहीं होते। mod तब चुनें जब आपको इंटरफ़ेस में पैन, इंतज़ार किए बिना चलने वाली कमांड, या कॉल रोककर यूज़र से पूछने की सुविधा चाहिए। पारंपरिक hooks deprecated नहीं हैं और mods के साथ-साथ चलते हैं।

Q. पर्सनल Pro प्लान पर mod इंस्टॉल करूँ, तो क्या मेरे deny नियम टिके रहेंगे?

A. नहीं। deny नियम mods पर तभी भारी पड़ते हैं जब मशीन पर managed settings हों या आप Team या Enterprise प्लान से साइन इन हों। वरना, tool.check संभालने वाला mod उन कॉल को भी मंज़ूरी दे सकता है जिन्हें deny नियम मना कर चुका है। और हर हाल में, mod का अपना फ़ाइल पढ़ना ($.fs.read) और प्रोग्राम शुरू करना deny नियमों के दायरे में नहीं आता (आधिकारिक दस्तावेज़)।

Q. क्या मैं डेस्कटॉप ऐप में mods इस्तेमाल कर सकता हूँ?

A. हाँ। डेस्कटॉप ऐप के Code टैब में hooks चलते हैं और उनके ड्रॉ किए पैन दिखते हैं (सिर्फ़ टर्मिनल वाले कंपोनेंट को छोड़कर)। हालाँकि, WSL सेशन में प्लगइन ही उपलब्ध नहीं हैं, इसलिए वहाँ mods नहीं चलते। VS Code एक्सटेंशन के चैट व्यू में hooks चलते हैं, लेकिन उनका ड्रॉ किया कुछ भी नहीं दिखता।

Q. इंस्टॉल किए सभी mods कैसे बंद करूँ?

A. एक सेशन के लिए claude --safe-mode से शुरू करें। हमेशा के लिए बंद करने को ~/.claude/settings.json में "disableAllHooks": true जोड़ें (पारंपरिक hooks और status line भी रुक जाते हैं)। इनमें से कोई भी तरीका बिल्ट-इन mods को नहीं रोकता, जैसे वह जो AGENTS.md लोड करता है।

स्रोत

सभी आधिकारिक स्पेसिफ़िकेशन 5 अक्टूबर 2026 को मूल पाठ से जाँचे गए। सैंपल का विश्लेषण उसी दिन GitHub पर सोर्स पढ़ने और गिनने से आया है, mods को लोड करके चलाने से नहीं। mod के इवेंट और API वर्ज़न के बीच बदल सकते हैं, और आधिकारिक दस्तावेज़ आपके इंस्टॉल किए वर्ज़न की लिखी टाइप डेफ़िनिशन फ़ाइल को सबसे भरोसेमंद संदर्भ मानते हैं।