आपने Claude Code में --dangerously-skip-permissions फ्लैग सेट किया है, फिर भी Claude चैट में "क्या मैं यह ऑपरेशन चला सकता हूँ?" पूछता है। क्या यह परिचित लगता है?

मन में आता है कि "bypass काम नहीं कर रहा" — लेकिन असलियत यह नहीं है। Claude Code के परमिशन सिस्टम में दो स्वतंत्र लेयर हैं, और bypass मोड सिर्फ एक को कंट्रोल करता है।

यह लेख "bypass असल में क्या है" से लेकर दोनों परमिशन लेयर के बीच का फर्क, वे ऑपरेशन जिनमें Claude खुद पूछता है, और ऑटोमेशन में कन्फर्मेशन प्रॉम्प्ट कम करने के व्यावहारिक तरीके — सब कुछ कवर करता है।

1. "Bypass" आखिर है क्या?

सॉफ्टवेयर में "bypass" का मतलब है सामान्य कन्फर्मेशन या अप्रूवल फ्लो को छोड़कर सीधे आगे बढ़ना। जैसे किसी शॉपिंग साइट का "अभी खरीदें" बटन रिव्यू स्क्रीन को स्किप कर देता है — यही कन्फर्मेशन फ्लो का bypass है।

Claude Code के डिफ़ॉल्ट मोड में, कोई भी फाइल एडिट या शेल कमांड चलाने से पहले एक कन्फर्मेशन डायलॉग आता है।

# Default mode: हर action से पहले कन्फर्मेशन
$ claude
> Please fix index.js
[Claude] May I edit this file? [y/n]

परमिशन bypass मोड इस कन्फर्मेशन फ्लो को स्किप (bypass) कर देता है

# Bypass mode: कोई कन्फर्मेशन डायलॉग नहीं
$ claude --dangerously-skip-permissions
# या
$ claude --permission-mode bypass

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

2. असली कारण: 2-लेयर परमिशन सिस्टम

"bypass लगाने के बाद भी कन्फर्मेशन क्यों आता है" — इसका जवाब यह है कि Claude Code का परमिशन सिस्टम दो स्वतंत्र लेयर पर बना है।

Claude Code परमिशन सिस्टम: 2-लेयर स्ट्रक्चर जिसमें टूल परमिशन UI (लेयर 1) और AI सेफ्टी जज्मेंट (लेयर 2) हैं। Bypass मोड सिर्फ लेयर 1 को disable करता है।

इन दोनों लेयर को आपस में मिला देना ही "bypass काम नहीं कर रहा" वाली गलतफहमी की जड़ है। आइए दोनों को विस्तार से समझते हैं।

3. लेयर 1: टूल परमिशन UI (Bypass से कंट्रोल होती है)

पहली लेयर है टूल एग्जिक्यूशन से पहले दिखने वाला कन्फर्मेशन डायलॉग — वह इंटरैक्टिव UI जो Claude Code किसी फाइल को एडिट करने या शेल कमांड चलाने से ठीक पहले दिखाता है।

टूलकन्फर्मेशन डायलॉग का उदाहरण
फाइल एडिट"क्या मैं index.js बदल सकता हूँ?"
Bash एग्जिक्यूशन"क्या मैं npm install चला सकता हूँ?"
वेब एक्सेस"क्या मैं https://... एक्सेस कर सकता हूँ?"

यही वह लेयर है जिसे bypass मोड disable करता है। --dangerously-skip-permissions के साथ इनमें से कोई भी डायलॉग नहीं आता और Claude टूल्स को स्वतंत्र रूप से चला सकता है। इस अर्थ में bypass मोड सही काम कर रहा है।

नोट: 5 परमिशन मोड होते हैं

Claude Code में पाँच परमिशन मोड हैं: default, acceptEdits, plan, auto, और bypassPermissions। Bypass (bypassPermissions) सबसे कम प्रतिबंधात्मक है। हर मोड की जानकारी के लिए bypass मोड की विस्तृत जानकारी देखें।

4. लेयर 2: AI सेफ्टी जज्मेंट (Bypass से कंट्रोल नहीं होती)

दूसरी लेयर है Claude का खुद का सेफ्टी जज्मेंट। यह टूल कन्फर्मेशन UI से बिल्कुल अलग है।

जब Claude को लगता है कि किसी ऑपरेशन के गंभीर परिणाम हो सकते हैं, तो वह चैट में सादे टेक्स्ट के रूप में कन्फर्मेशन मैसेज भेजता है। यह कोई टूल एग्जिक्यूशन मैकेनिज्म नहीं है — यह Claude का AI के रूप में बातचीत का स्वभाव है।

--dangerously-skip-permissions लेयर 1 के UI डायलॉग को स्किप करता है, लेकिन इस लेयर 2 के AI जज्मेंट पर इसका कोई असर नहीं — क्योंकि लेयर 2 Claude के मॉडल में ही बना हुआ एक व्यवहारिक सिद्धांत है।

आम गलतफहमी

"मैंने bypass मोड लगाया लेकिन Claude रुक गया → bypass काम नहीं कर रहा"
→ सही बात यह है: "लेयर 1 UI disable है, लेकिन लेयर 2 का AI जज्मेंट कन्फर्मेशन माँग रहा है।" Bypass सही काम कर रहा है।

5. वे ऑपरेशन जिनमें Claude खुद पूछता है

ऑपरेशन प्रकार के अनुसार तुलना तालिका: दिखाती है कि लेयर 1 (टूल परमिशन UI) या लेयर 2 (AI सेफ्टी जज्मेंट) में से कौन कन्फर्मेशन संभालता है

Claude के अंदर "यह कन्फर्म करना चाहिए" के मानदंड मुख्यतः तीन श्रेणियों में आते हैं।

① अपरिवर्तनीयता (Irreversibility)

जो ऑपरेशन वापस नहीं किए जा सकते, उनमें Claude सतर्क रहता है। फाइल का स्थायी डिलीशन, git push --force, और DROP TABLE इसके प्रमुख उदाहरण हैं। गलती सुधारना मुश्किल होता है, इसलिए Claude रुककर पूछता है।

② ब्लास्ट रेडियस (Blast Radius)

जो काम प्रोडक्शन एनवायरनमेंट, बड़ी संख्या में फाइलों, या दूसरे यूज़र्स को प्रभावित करते हैं, उनमें ज़्यादा बार चेक होता है। एक लोकल फाइल बदलने पर शायद ही कभी सवाल आता है; प्रोडक्शन DB स्कीमा बदलने पर लगभग हमेशा आता है।

③ सिक्योरिटी रिस्क (Security Risk)

जो ऑपरेशन .env फाइलें, auth टोकन या API keys बाहर भेजते हैं, उन्हें Claude उच्च सुरक्षा जोखिम मानता है और आगे बढ़ने से पहले पूछता है।

ये जज्मेंट Claude के AI मॉडल में बनी हुई हैं और कॉन्फिग से पूरी तरह बंद नहीं की जा सकतीं। AI एजेंट्स को सुरक्षित तरीके से डिज़ाइन करने के बारे में अधिक जानकारी के लिए देखें AI एजेंट क्या है?

6. दो लेयर क्यों? डिज़ाइन फिलॉसफी

2-लेयर सिस्टम की डिज़ाइन फिलॉसफी: ठेकेदार का उदाहरण — स्पेयर चाबी देना (टूल परमिशन) ठेकेदार को अपना जज्मेंट इस्तेमाल करने से नहीं रोकता

एक उदाहरण जो दो-लेयर डिज़ाइन को सहज बना देता है।

मान लीजिए आपने एक कमरे की रिनोवेशन के लिए एक ठेकेदार रखा और उसे एक स्पेयर चाबी देते हुए कहा "जो ज़रूरी हो वो करो।" यह टूल परमिशन देने के बराबर है।

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

चाबी देने से ठेकेदार की सोच बंद नहीं होती। उसका प्रोफेशनल जज्मेंट और सेफ्टी अवेयरनेस चाबी से स्वतंत्र रूप से काम करते हैं।

Claude भी ठीक ऐसे ही काम करता है। Bypass मोड Claude को "टूल्स इस्तेमाल करने की चाबी" देता है, लेकिन यह Claude के AI जज्मेंट को नहीं रोकता। बल्कि, उच्च-जोखिम ऑपरेशन से पहले Claude का रुकना एक जानबूझकर बनाई गई सेफ्टी फीचर है, कोई गड़बड़ी नहीं।

7. कन्फर्मेशन प्रॉम्प्ट कम करने के व्यावहारिक तरीके

CI/CD पाइपलाइन और दूसरे ऑटोमेशन में आप चाह सकते हैं कि Claude बिना रुके काम पूरा करे। यहाँ सबसे प्रभावी तरीके हैं।

तरीका 1: CLAUDE.md से संदर्भ दें

अपने प्रोजेक्ट रूट में CLAUDE.md फाइल बनाएँ और एनवायरनमेंट व कंस्ट्रेंट समझाएँ। जब Claude समझ जाता है कि "यह एक सुरक्षित, आइसोलेटेड एनवायरनमेंट है", तो कन्फर्मेशन की फ्रीक्वेंसी काफी कम हो जाती है।

# About This Environment

This repository runs inside a CI/CD pipeline test environment.
- Runtime: fully isolated Docker container
- Production impact: none
- All changes are rollback-safe

Please proceed without asking for extra confirmation.

तरीका 2: छोटे, सटीक निर्देश दें

अस्पष्ट निर्देश Claude की अनिश्चितता बढ़ाते हैं और ज़्यादा कन्फर्मेशन ट्रिगर करते हैं।

निर्देश का प्रकारउदाहरणकन्फर्मेशन दर
अस्पष्ट"इस प्रोजेक्ट को साफ करो"ज़्यादा
सटीक"/tmp/ के अंदर सभी .log फाइलें डिलीट करो"कम
अस्पष्ट"इसे deploy करो"ज़्यादा
सटीक"staging एनवायरनमेंट पर npm run deploy:staging चलाओ"कम

तरीका 3: पहले Auto मोड आज़माएँ

पूरे bypass मोड पर जाने से पहले auto मोड आज़माएँ। यह बैकग्राउंड में सेफ्टी क्लासिफायर चलाते हुए ज़्यादातर ऑपरेशन ऑटो-अप्रूव करता है। अगर bypass इस्तेमाल करने का एकमात्र कारण "कन्फर्मेशन प्रॉम्प्ट से थक गया हूँ" है, तो auto मोड काफी हो सकता है।

ज़रूरी बात

कोई भी कॉन्फिगरेशन Claude के सेफ्टी जज्मेंट को बिल्कुल शून्य नहीं कर सकती। यह जानबूझकर है — कोई bug या सीमा नहीं। उच्च-जोखिम ऑपरेशन के लिए Claude का कन्फर्मेशन माँगना सही व्यवहार है। इसे डिज़ाइन का हिस्सा मानकर स्वीकार करें।

8. सारांश

विषयविवरण
Bypass क्या हैटूल से पहले के कन्फर्मेशन डायलॉग को स्किप करना (लेयर 1)
Bypass क्या disable करता हैटूल परमिशन UI ("क्या मैं यह कमांड चला सकता हूँ?")
Bypass क्या disable नहीं करताClaude का AI सेफ्टी जज्मेंट (चैट टेक्स्ट के रूप में कन्फर्मेशन)
Claude के कन्फर्मेशन के मानदंडअपरिवर्तनीयता, ब्लास्ट रेडियस, सिक्योरिटी रिस्क
कन्फर्मेशन कम करने के तरीकेCLAUDE.md संदर्भ / सटीक निर्देश / auto मोड
दो लेयर क्योंटूल परमिशन और AI जज्मेंट मूलतः अलग-अलग अवधारणाएँ हैं

जब Claude bypass मोड में भी कन्फर्मेशन माँगे, तो इसका मतलब यह नहीं कि bypass रुक गया — दो स्वतंत्र सिस्टम बस अपना काम कर रहे हैं। इस अंतर को समझने से Claude Code के व्यवहार का सटीक अनुमान लगाना और इसे अधिक कुशलता से उपयोग करना आसान हो जाता है।

Claude के विभिन्न प्रोडक्ट्स के बीच अंतर समझने के लिए देखें Claude.ai बनाम Claude Code: क्या फर्क है?

अक्सर पूछे जाने वाले सवाल

क्या bypass मोड से शून्य कन्फर्मेशन मिल सकती है?

टूल एग्जिक्यूशन UI डायलॉग (लेयर 1) को disable किया जा सकता है, लेकिन लेयर 2 के AI सेफ्टी जज्मेंट कन्फर्मेशन को पूरी तरह खत्म नहीं किया जा सकता। यह एक जानबूझकर बनाई गई सेफ्टी फीचर है। हालाँकि, CLAUDE.md में अपना एनवायरनमेंट अच्छी तरह डॉक्यूमेंट करके और सटीक निर्देश देकर Claude के पूछने की फ्रीक्वेंसी काफी कम की जा सकती है।

क्या Claude का कन्फर्मेशन माँगना कोई bug है?

नहीं। Bypass मोड टूल परमिशन UI को स्किप करता है, Claude के AI जज्मेंट को नहीं। अपरिवर्तनीय ऑपरेशन, प्रोडक्शन एनवायरनमेंट, या संवेदनशील डेटा से पहले Claude का रुकना जानबूझकर का सेफ्टी व्यवहार है — कोई खराबी नहीं। यह "bypass काम न करना" नहीं है, यह "दो सिस्टम स्वतंत्र रूप से चलना" है।

CI/CD पाइपलाइन में Claude को रुकने से कैसे रोकें?

तीन चीज़ें कारगर हैं: ① CLAUDE.md या system prompt में स्पष्ट रूप से लिखें कि "यह एक पूरी तरह आइसोलेटेड CI/CD एनवायरनमेंट है और सभी ऑपरेशन सुरक्षित हैं", ② छोटे, सटीक टास्क निर्देश दें (अस्पष्ट निर्देश ज़्यादा कन्फर्मेशन ट्रिगर करते हैं), ③ bypass मोड को Docker कंटेनर आइसोलेशन के साथ जोड़ें। ध्यान दें कि तीनों के साथ भी कुछ रुकना हो सकता है।

क्या टूल डायलॉग और Claude की कन्फर्मेशन को विज़ुअली अलग पहचाना जा सकता है?

हाँ। लेयर 1 के टूल परमिशन डायलॉग Claude Code टर्मिनल में इंटरैक्टिव UI के रूप में दिखते हैं जैसे "Allow bash command? [y/n]"। लेयर 2 के AI जज्मेंट कन्फर्मेशन Claude के सामान्य बातचीत के टेक्स्ट के रूप में आते हैं (जैसे "यह प्रोडक्शन DB बदलेगा — क्या यह ठीक है?")। डिस्प्ले फॉर्मेट बिल्कुल अलग है, इसलिए एक बार परिचित होने पर आसानी से पहचाने जा सकते हैं।