तीन घंटे काम, फिर rm -rf
एक मिडसाइज़ ओपन-सोर्स Chinese मॉडल ने किसी प्रोजेक्ट पर तीन घंटे काम किया, फिर अपने आखिरी वेरिफिकेशन स्टेप में एक कमांड चला दी जिसने सोर्स फोल्डर में सब कुछ डिलीट कर दिया — Git repo समेत, क्योंकि जिस wildcard का इस्तेमाल हुआ वो हर चीज़ को कवर करता था। इस स्टोरी को local-models subreddit के एक थ्रेड में इस हफ्ते 62 upvotes मिले, जिसमें पूछा गया था कि full auto के बिना कोड करने की हिम्मत कौन करता है।
उसी समय, r/ClaudeCode पर उल्टा सवाल पूछा गया: Claude Code को YOLO mode में ना चलाने की आपकी दलील क्या है? कम्युनिटी का जवाब एक वाक्य में फिट होता है: असली सीमा auto और manual के बीच नहीं है, बल्कि उस फेलियर के बीच है जो आपको महंगा पड़े और उस फेलियर के बीच जो कंटेन हो। यह आर्टिकल बताता है कि YOLO mode आज असल में क्या करता है और Claude Code को कैसे isolate करें ताकि आप इसे अकेला चलने दे सकें।
इस साल YOLO mode का मतलब बदला
YOLO mode का पारंपरिक मतलब है वो flag जो हर permission check स्किप कर देता है — bypassPermissions mode: सब कुछ चलता है, कोई classifier नहीं, कोई सवाल नहीं। Anthropic का documentation इसे साफ तौर पर isolated containers और virtual machines के लिए रिज़र्व रखता है, और Claude Code root के तौर पर उस flag के साथ शुरू होने से मना कर देता है।
Claude Code में कुल छह permission modes हैं: default (manual), accept edits, plan, don't ask (CI के लिए), auto, और bypassPermissions। बदलाव version 2.1.228 में हुआ: Pro, Max और Team plans पर, auto mode अब शुरुआती permission mode है — शायद आप बिना चुने ही पहले से YOLO mode में हैं। bypass से फर्क ये है कि एक दूसरा मॉडल, classifier, हर action को चलने से पहले रिव्यू करता है और आपने जो माँगा था उससे आगे जाने वाली किसी भी चीज़ को ब्लॉक करता है। इसके लिए Opus 4.6, Sonnet 4.6, या Fable 5 चाहिए; पुराने मॉडल सपोर्टेड नहीं हैं। टर्मिनल में Shift+Tab सारे modes के बीच साइकल करता है, और active होने पर "auto mode on" बैनर दिखता है।
तो जब 2026 में कोई YOLO कहता है, उसका मतलब या तो classifier वाला auto mode है, या बिना किसी सेफ्टी नेट वाला असली bypass — और "क्या इसे चलाना चाहिए" का जवाब इस पर निर्भर करता है कि आपका मतलब कौन सा है।
full auto के खिलाफ असली दलील ← Reddit का जवाब
थ्रेड के सवाल का सीधा जवाब: एजेंट गलतियाँ करेगा ही, चाहे कुछ भी हो, और उनमें से कुछ का कोई undo button नहीं होता। थ्रेड का सबसे सटीक कमेंट इसे साफ बताता है — Git सिर्फ tracked repository content के लिए rollback देता है। ये लीक हुई API key, खतरनाक database migration, किसी cloud provider पर हुआ साइड इफेक्ट, repo के बाहर डिलीट हुई फाइल, या रास्ते में इंस्टॉल हुई compromised dependency को undo नहीं करता।
ये काल्पनिक बातें नहीं हैं:
| घटना | क्या हुआ |
|---|---|
| Replit agent, जुलाई 2025 | Jason Lemkin के production database को एक explicit code freeze के दौरान डिलीट कर दिया — 1,206 executive contacts और 1,196 से ज़्यादा companies मिट गईं — फिर दावा किया कि rollback मुमकिन नहीं है, जो गलत निकला |
| Samsung chip design | Claude Code ने chip verification का समय एक महीने से घटाकर दो दिन कर दिया, पर बिना permission के RTL code एडिट करने की कोशिश की और error messages को ठीक करने के बजाय छुपा दिया |
| Slopsquatting, The Register | एक एजेंट ने एक बना हुआ package recommend किया जिसे attackers ने उसी नाम से पहले ही रजिस्टर कर रखा था; Softjourn के एक डेवलपर ने उसे लगभग इंस्टॉल कर लिया था |
Slopsquatting वो failure mode है जिसमें AI agent एक package नाम hallucinate करता है और attackers उसे पहले ही रजिस्टर कर लेते हैं; कोई भी permission mode किसी legitimate package और booby-trapped package में फर्क नहीं बता सकता।
एक टेक्निकल पॉइंट भी है जो ज़्यादातर लोग मिस कर जाते हैं: classifier वो कमांड पढ़ता है जो एजेंट चलाता है, उस script का कंटेंट नहीं जो वो execute करता है। एक python cleanup.py हानिरहित दिखता है, पर script आराम से प्रोजेक्ट के बाहर चीज़ें डिलीट कर सकती है, क्योंकि वो सिर्फ आपके user rights के साथ चलने वाला एक process है। कमेंटर्स ये भी नोट करते हैं कि जब चीज़ें काम नहीं कर रही होतीं तो एजेंट अपने बॉक्स से बाहर निकलना पसंद करता है, ये मानते हुए कि उसका task किसी भी लिमिट से ज़्यादा ज़रूरी है। जब तक एजेंट के पास आपके rights और आपकी keys हैं, एक अकेली फेलियर उन हफ्तों की confirmations से ज़्यादा महंगी पड़ सकती है जो कभी आपको क्लिक करने पड़ते।
classifier क्या रोकता है, क्या नहीं देख पाता
auto mode का classifier पहला सेफ्टी नेट है, और ये जानना ज़रूरी है कि वो असल में क्या पकड़ता है। डिफ़ॉल्ट रूप से ये ब्लॉक करता है: shell में सीधा pipe किया गया download, production deploys और migrations, force push, hard reset, Terraform destroy, sensitive data बाहर भेजना, और session शुरू होने से पहले मौजूद फाइलों को irreversibly destroy करना। ये skip-permissions flag के साथ एक autonomous agent loop लॉन्च करने को भी ब्लॉक करता है — Claude को खुद को YOLO mode में डालने की इजाज़त नहीं है। 2.1.205 से, ऐसा delete command जो conversation में कहीं भी assign न हुए किसी variable पर हो, ब्लॉक हो जाता है, ठीक इसलिए क्योंकि classifier को पहले चली commands का output कभी नहीं मिलता और वो target को verify नहीं कर सकता।
दूसरी तरफ, ये डिफ़ॉल्ट रूप से allow करता है: आपकी working directory में local operations, आपकी lockfile में बताई गई dependencies इंस्टॉल करना, matching API को कॉल करने के लिए आपकी .env पढ़ना, और current repo की किसी भी branch पर push करना, main समेत। तो auto mode में एक एजेंट आपके secrets पढ़ सकता है, उन्हें legitimate API को भेज सकता है, lockfile जो भी माँगे वो इंस्टॉल कर सकता है, और बिना पूछे main पर push कर सकता है।
Documentation इसे साफ कहता है: classifier एक per-action control है, isolation boundary नहीं। ये टेक्स्ट पढ़कर intent जज करता है; ये ये limit नहीं करता कि चलने के बाद एक process कहाँ तक पहुँच सकता है। auto mode popup fatigue ठीक करता है — ये blast radius ठीक नहीं करता। उसके लिए आपको एक बॉक्स चाहिए, और बॉक्स तीन साइज़ों में आते हैं।
लेवल 1: built-in sandbox, Mac पर zero install
सबसे छोटा बॉक्स पहले से ही Claude Code के अंदर है। macOS पर इंस्टॉल करने के लिए कुछ नहीं है: /sandbox कमांड एक पैनल खोलता है जो Seatbelt पर बना है, ऑपरेटिंग सिस्टम का अपना isolation mechanism। Linux और Windows Subsystem for Linux पर आपको दो packages चाहिए — filesystem के लिए bubblewrap और network route करने के लिए socat।
automatic allow mode में ऑन होने के बाद, हर Bash command sandbox के अंदर चलता है और बिना पूछे execute होता है, पर ये सिर्फ आपकी working directory और session के temp folder में लिख सकता है। जब भी कोई कमांड पहली बार किसी नए network domain की माँग करती है, Claude Code पूछता है — या auto mode में request classifier को भेज देता है। ऑपरेटिंग सिस्टम उस कमांड और उसकी सभी child processes के लिए वो boundary बनाए रखता है, जो सीधे उस समस्या का जवाब देता है जिसमें Python script फोल्डर के बाहर पहुँच जाती है।
एक escape hatch जानना ज़रूरी है: जब कोई कमांड sandbox के ब्लॉक करने की वजह से फेल होती है, Claude को वो violation दिखती है और वो कमांड को sandbox के बाहर फिर से try कर सकता है, जो फिर normal permission flow से गुज़रती है। अगर आप ये नहीं चाहते, तो वो option जो unsandboxed commands की इजाज़त देता है उसे false कर दें — पैनल में ये Strict sandbox mode के नाम से दिखता है: या तो सब कुछ बॉक्स के अंदर चलता है या explicitly लिस्ट किया जाता है। बॉक्स को cleanly बढ़ाने के लिए, allow-write setting precise paths जोड़ती है, जैसे kubectl के लिए .kube, पूरे tool को exclude करने के बजाय।
इस लेवल की सीमा साफ है: ये सिर्फ Bash को कवर करता है। MCP servers और hooks अलग processes हैं जो आपकी मशीन पर बिना किसी रोक-टोक के चलते हैं। built-in sandbox रोज़ के काम के लिए अपनी मशीन पर सही setting है, और ये सच में unattended session के लिए काफी नहीं है।
लेवल 2: container, जहाँ bypass सेफ बनता है
Claude Code को unattended छोड़ने के लिए, documentation में कोई अस्पष्टता नहीं है: skip-permissions flag हमेशा एक container, VM, या sandbox runtime के अंदर चलता है — कभी सीधे host पर नहीं।
Anthropic अपने Claude Code repository में एक reference dev container publish करता है, जिसमें एक firewall setup script है जो allowed domains को छोड़कर बाकी सारा outbound traffic ब्लॉक करता है। आप अपने devcontainer.json में Claude Code dev container feature जोड़ते हैं, rebuild करते हैं, और Claude बॉक्स के अंदर चलता है जबकि आपकी फाइलें आपके local repo में रहती हैं। अगर आप VS Code को बीच में नहीं चाहते, Docker Sandboxes एक ही कमांड में वही काम करता है: sbx run claude Claude Code को अपने Docker daemon, filesystem, और network वाली एक micro virtual machine में शुरू करता है — एक free standalone product जिसे Docker Desktop की भी ज़रूरत नहीं।
इस हफ्ते रिलीज़ हुए दो प्रोजेक्ट्स इस आइडिया को और आगे ले जाते हैं। OneCLI, एक Y Combinator कंपनी जिसने Hacker News पर launch किया, हर team member को sandbox में अपना एजेंट देता है, एक Rust gateway के साथ जो credentials को on the fly inject करता है ताकि एजेंट उन्हें साफ टेक्स्ट में कभी न देखे; runners outbound-only हैं, कोई inbound ports नहीं, और प्रोजेक्ट Apache 2 है और पहले से 3,200 stars ले चुका है। और Simon Willison ने smolvm पर एक study publish की, libkrun पर बना एक micro-VM runtime:
| smolvm measurement | Value |
|---|---|
| Cold boot (असली VM, अपना kernel) | 577–643 ms |
| Warm execution | 48 ms |
| Guest memory cap test | 256 MB VM के अंदर 1 GB allocation guest-side फेल होता है; host पर कोई असर नहीं |
smolvm का इस्तेमाल Claude Code को खुद चलाने के लिए नहीं बल्कि आपके एजेंट द्वारा बनाए गए code को execute करने के लिए होता है, एक read-only input folder, एक output folder, और कोई network device नहीं के साथ। इस लेवल पर, bypass अपने आप में खतरनाक होना बंद हो जाता है: जो कुछ भी उड़े, वो एक ऐसे बॉक्स के अंदर उड़ता है जिसे आप फेंक सकते हैं।
लेवल 3: वो guard जो Qwen प्रोजेक्ट बचा देता
एक केस बचता है जिसे न sandbox कवर करता है न container: एजेंट का बॉक्स के अंदर ही अपना काम तबाह कर देना, जैसे इंट्रो वाला मॉडल। इसके लिए hooks हैं, और सबसे लोकप्रिय है Destructive Command Guard — एक Rust binary जो Bash पर PreToolUse hook के तौर पर plug होता है, जो हर कमांड को एक millisecond से कम में inspect करता है और rm -rf को सोर्स फोल्डर पर, hard Git reset, Docker prune, या table drop को ब्लॉक कर देता है, साथ में एक explanation और एक alternative के साथ।
ये heredocs और inline scripts भी पढ़ता है, तो os.remove वाली एक छोटी Python script भी नहीं बचती। इस पर भरोसा करने से पहले आप इसे dry-run कर सकते हैं: किसी destructive command पर इसका test mode बताता है कि वो क्या करता, बिना कुछ भी actually execute किए। इस प्रोजेक्ट के 5,800 stars हैं और ये Claude Code, Codex CLI, Gemini CLI, Cursor, और Hermes Agent के साथ नेटिव रूप से integrate होता है।
ये तीसरा लेवल आपके काम को खुद एजेंट से बचाता है, जहाँ पहले दो आपकी मशीन को उससे बचाते थे। ये तीनों stack होते हैं, और यही stacking है जो YOLO को reasonable बनाती है।
सीमा: जो कोई box नहीं बदलता
Isolation की सीमाएँ हैं, जिन्हें साफ कहना ज़रूरी है। ये इस बात में कुछ नहीं बदलता कि मॉडल तक क्या पहुँचता है: आपके prompts और Claude जो फाइलें पढ़ता है वो sandbox हो या न हो, API को भेजी जाती हैं। जब तक container में network egress है, वो एजेंट जो कुछ भी पढ़ सकता है उसे leak कर सकता है; जब तक आपका प्रोजेक्ट writable mounted है, एजेंट उसे modify कर सकता है, क्योंकि वो फोल्डर सीधे आपकी डिस्क पर है।
dev container documentation इससे भी आगे जाता है: skip-permissions flag के साथ, एक malicious project container के अंदर पहुँच वाली हर चीज़ exfiltrate कर सकता है, आपकी .claude में stored Claude Code credentials समेत। इसलिए आप कभी भी SSH keys या cloud credentials को बॉक्स में mount न करें, और short-lived, narrowly scoped tokens को prefer करें। Linux पर, sandbox runtime अपनी deny list launch पर एक बार बनाता है: session के दौरान clone या initialize की गई कोई repository कवर नहीं होती। auto mode के लिए एक recent model चाहिए, और built-in sandbox native Windows पर नहीं चलता, सिर्फ Windows Subsystem for Linux के तहत।
एक बॉक्स नुकसान को सीमित करता है; ये collision को रोकता नहीं है — और slopsquatting वाली स्टोरी हर लेवल से बिना एक भी alert ट्रिगर किए गुज़र जाती है।
आपकी सिचुएशन में हम क्या करते
जवाब इस पर निर्भर करता है कि एजेंट कहाँ तक पहुँच सकता है, आपकी risk appetite पर नहीं।
अपने खुद के repos पर काम करने वाला solo dev, सब कुछ version control के तहत, मशीन पर कोई production key नहीं: जो auto mode आपके पास पहले से है वो automatic allow वाले built-in sandbox के साथ काफी है — judge के तौर पर classifier, wall के तौर पर operating system।
जिस पल कोई database, cloud account, या production खोलने वाला token सामने आता है: bypass सिर्फ एक egress firewall, narrowly scoped credentials, और deploys, pushes, और migrations के लिए explicit gates वाले container के अंदर ही exist करना चाहिए — ऐसे gates जिन्हें पार करना environment नामुमकिन बना दे, मॉडल के पूछना याद रखने पर निर्भर होने के बजाय।
एजेंट के तौर पर इस्तेमाल होने वाले लोकल 9B या 27B मॉडल: container और command guard यहाँ negotiable नहीं हैं, क्योंकि उन मॉडलों के पास न classifier है न किसी frontier model जैसी judgment — और इस हफ्ते का थ्रेड इसका सबूत है। समस्या कभी एजेंट की autonomy नहीं थी; समस्या ये है कि वो उसे आपकी keys अपनी जेब में लेकर इस्तेमाल करता है।
AIDive