Claude Code सैंडबॉक्स: बिल्ट-इन आइसोलेशन, Docker और क्लाउड

Claude Code सैंडबॉक्स यह सीमित करता है कि काम करते समय एजेंट किन चीज़ों को एक्सेस कर सकता है। आप /sandbox से बिल्ट-इन शेल सैंडबॉक्स चालू कर सकते हैं, Claude Code को Docker कंटेनर के अंदर चला सकते हैं या उसे एक अलग क्लाउड मशीन दे सकते हैं। सही विकल्प इस पर निर्भर करता है कि सेशन को किन फ़ाइलों, प्रोसेस और क्रेडेंशियल की ज़रूरत है।
लोकल काम के लिए बिल्ट-इन सैंडबॉक्स से शुरू करें। दोहराए जा सकने वाले डेवलपमेंट सेटअप के लिए डेव कंटेनर इस्तेमाल करें। रिमोट जॉब्स या एक साथ काम करने वाले कई एजेंट्स के लिए क्लाउड सैंडबॉक्स हर टास्क को उसका अपना वर्कस्पेस देता है।
बिल्ट-इन Claude Code सैंडबॉक्स किन चीज़ों को सुरक्षित रखता है?
Claude Code अपने शेल टूल और उस टूल से शुरू होने वाले प्रोसेस को सीमित करने के लिए ऑपरेटिंग सिस्टम के कंट्रोल इस्तेमाल करता है। macOS पर यह Seatbelt और Linux पर bubblewrap का उपयोग करता है। सैंडबॉक्स फ़ाइलों में लिखने को सीमित कर सकता है और अनुमति वाले डोमेन की प्रॉक्सी के ज़रिए नेटवर्क एक्सेस पर रोक लगा सकता है।
टूल्स जोड़ते समय यह दायरा मायने रखता है। Claude Code के बिल्ट-इन फ़ाइल टूल्स, हुक्स और लोकल MCP सर्वर शेल सैंडबॉक्स के दायरे से बाहर रहते हैं। पूरे एजेंट प्रोसेस और उसके लोकल टूल्स को अलग रखने के लिए उन्हें कंटेनर, वर्चुअल मशीन या अलग से कॉन्फ़िगर किए गए सैंडबॉक्स रनटाइम के अंदर चलाएँ। रिमोट MCP सर्विस के पास वही परमिशन रहती हैं जो आपने उस सर्विस को दी हैं। Claude Code सैंडबॉक्सिंग डॉक्यूमेंटेशन देखें।
| सेटअप | इसमें क्या बंद रहता है | आपको अब भी क्या कंट्रोल करना है |
|---|---|---|
| बिल्ट-इन Claude Code सैंडबॉक्स | शेल कमांड और उनके चाइल्ड प्रोसेस | फ़ाइल टूल्स, हुक्स, MCP सर्विसेज़, पढ़े जा सकने वाले पाथ और अनुमति वाले डोमेन |
| Docker डेव कंटेनर | कंटेनर के अंदर के प्रोसेस और फ़ाइलें | होस्ट माउंट, Docker सॉकेट एक्सेस, प्रिविलेज और नेटवर्क पॉलिसी |
| क्लाउड वर्कस्पेस | अलग मशीन या रनटाइम पर चलने वाले एजेंट प्रोसेस | अपलोड किया गया डेटा, क्रेडेंशियल, नेटवर्क एक्सेस और वर्कस्पेस की असली आइसोलेशन सीमा |
Claude Code सैंडबॉक्स मोड चालू करें
macOS पर Claude Code सिस्टम के मौजूदा सैंडबॉक्स सपोर्ट का उपयोग करता है। Linux या WSL2 पर पहले ज़रूरी पैकेज इंस्टॉल करें। Debian या Ubuntu सिस्टम के लिए:
sudo apt-get install bubblewrap socatअपने प्रोजेक्ट में Claude Code शुरू करें और यह लिखें:
/sandboxवह मोड चुनें जो आपकी रिव्यू प्रक्रिया के हिसाब से सही हो। ऑटो-अलाउ मोड में सैंडबॉक्स के अंदर चलने वाली शेल कमांड अप्रूवल प्रॉम्प्ट के बिना चलती हैं। सामान्य परमिशन मोड में अप्रूवल का सामान्य फ़्लो बना रहता है और शेल सैंडबॉक्स भी चालू रहता है। नेटिव Windows पर इस सैंडबॉक्स के लिए WSL2 चाहिए। सेटअप गाइड में प्लेटफ़ॉर्म की ज़रूरतें और पाबंदियां दी गई हैं।
अगर सेशन में शेल कमांड हर हाल में सैंडबॉक्स के अंदर ही चलनी चाहिए, तो Claude Code को इस तरह शुरू करें:
claude --settings '{"sandbox":{"enabled":true,"allowUnsandboxedCommands":false,"failIfUnavailable":true}}'allowUnsandboxedCommands: false उन कमांड के लिए बचने का रास्ता बंद कर देता है जो वरना सैंडबॉक्स के बाहर चलतीं। failIfUnavailable: true सैंडबॉक्स सपोर्ट न होने पर स्टार्टअप को फ़ेल कर देता है। अपनी सेटिंग्स में बाहर रखी गई कमांड की भी समीक्षा करें। डिफ़ॉल्ट रूप से फ़ाइलें पढ़ने की अनुमति काफ़ी खुली रहती है; अगर सेशन को आपकी मशीन की दूसरी जगहों की फ़ाइलें नहीं दिखनी चाहिए, तो पढ़ने पर भी पाबंदी जोड़ें।
लंबे रन से पहले सीमा जांचें
Claude से कहें कि ये कमांड अपने शेल टूल से चलाए:
touch ~/sandbox-probe
curl --noproxy '*' https://example.comटेस्ट अपनी होम डायरेक्टरी के अंदर किसी प्रोजेक्ट फ़ोल्डर से चलाएँ। सही पाबंदियों के साथ पहली कमांड फ़ेल होनी चाहिए, क्योंकि वह प्रोजेक्ट के बाहर लिखती है। दूसरी कमांड जांचती है कि कोई कमांड नेटवर्क प्रॉक्सी को बायपास कर सकती है या नहीं। डायरेक्ट नेटवर्क एक्सेस ब्लॉक होने पर यह फ़ेल होनी चाहिए। प्रॉक्सी से होकर जाने वाली अनुमति प्राप्त रिक्वेस्ट फिर भी सफल हो सकती है।
ये जांचें Claude से ही चलवाएँ। अलग टर्मिनल में खुद कमांड टाइप करने से एजेंट के शेल सैंडबॉक्स की जांच नहीं होती।
सैंडबॉक्स मोड, ऑटो मोड और परमिशन स्किप करना
परमिशन मोड तय करते हैं कि Claude कब अप्रूवल मांगेगा। सैंडबॉक्सिंग यह तय करती है कि ऑपरेटिंग सिस्टम किसी कमांड को क्या करने देगा।
Claude Code का ऑटो मोड एक क्लासिफ़ायर से तय करता है कि कौन-से एक्शन आगे बढ़ सकते हैं। यह शेल सैंडबॉक्स के ऑटो-अलाउ मोड से अलग है। इनमें से कोई भी सेटिंग बदलने से पहले परमिशन मोड देख लें।
--dangerously-skip-permissions रोज़मर्रा के परमिशन प्रॉम्प्ट को बायपास करता है। यह न कोई कंटेनर बनाता है, न फ़ाइल एक्सेस सीमित करता है और न ही नेटवर्क पॉलिसी सेट करता है। साफ़ तौर पर लिखे गए deny नियम और कुछ जांचें फिर भी लागू हो सकती हैं। अगर आप इसे बिना निगरानी वाले काम के लिए इस्तेमाल करते हैं, तो पहले आसपास का आइसोलेशन कॉन्फ़िगर और टेस्ट करें। हमारी dangerously-skip-permissions गाइड में यह वर्कफ़्लो बताया गया है।
Docker में Claude Code चलाएँ
डेव कंटेनर पूरी टीम को एक जैसा शुरुआती एनवायरनमेंट देता है और एजेंट के प्रोसेस को कंटेनर के अंदर रखता है। Docker इंस्टॉल करें और Dev Containers सपोर्ट वाला एडिटर इस्तेमाल करें। अपने प्रोजेक्ट में .devcontainer/devcontainer.json पर यह फ़ाइल जोड़ें:
{
"image": "mcr.microsoft.com/devcontainers/base:ubuntu",
"remoteUser": "vscode",
"features": {
"ghcr.io/devcontainers/features/node:1": {
"version": "22"
},
"ghcr.io/anthropics/devcontainer-features/claude-code:1.0": {}
}
}प्रोजेक्ट को कंटेनर में खोलें, उसे बिल्ड होने दें, फिर उसके टर्मिनल में claude चलाएँ और साइन इन करें। यह कॉन्फ़िगरेशन Claude Code और Node.js 22 इंस्टॉल करता है। आपके प्रोजेक्ट को जिन दूसरे रनटाइम और डिपेंडेंसी की ज़रूरत है, उन्हें जोड़ें। फ़ीचर का वर्ज़न यह तय नहीं करता कि Claude Code की कौन-सी रिलीज़ इंस्टॉल होगी।
हमने ठीक इसी कॉन्फ़िगरेशन का क्लीन बिल्ड टेस्ट किया। इसके बाद Claude ने जानबूझकर फ़ेल किया गया एक Node.js टेस्ट ठीक किया, और अलग से चलाया गया node --test पास हुआ। Node.js फ़ीचर को साफ़ तौर पर शामिल करना ज़रूरी है: सिर्फ़ Claude Code फ़ीचर के साथ हमारा पहला क्लीन बिल्ड Node.js और npm इंस्टॉल करते समय फ़ेल हो गया था।
एजेंट को काम सौंपने से पहले माउंट जांचें। लिखने की अनुमति वाला प्रोजेक्ट माउंट उसे आपके होस्ट की फ़ाइलें बदलने देता है। अपनी होम डायरेक्टरी, प्रोडक्शन क्रेडेंशियल या होस्ट का Docker सॉकेट माउंट न करें। यह न्यूनतम कॉन्फ़िगरेशन नेटवर्क अलाउलिस्ट नहीं जोड़ता। आपके सेटअप को किन कंट्रोल्स की ज़रूरत है, यह जानने के लिए Anthropic की डेव कंटेनर गाइड और Docker का सिक्योरिटी डॉक्यूमेंटेशन देखें।
Docker कंटेनर और Docker Sandboxes अलग हैं
Docker का Docker Sandboxes नाम का एक अलग प्रोडक्ट भी है। उसके डॉक्यूमेंटेशन के मुताबिक उसकी आर्किटेक्चर microVM और एक आइसोलेटेड Docker डेमन का उपयोग करती है। साधारण डेव कंटेनर को सिर्फ़ Docker इस्तेमाल करने से ये गुण नहीं मिल जाते। वर्कस्पेस सिंक्रोनाइज़ेशन भी इस पर निर्भर करता है कि आपने Docker Sandboxes का कौन-सा मोड चुना है। दोनों सेटअप को बराबर मानने से पहले उसकी आर्किटेक्चर और सिक्योरिटी मॉडल पढ़ें।
क्लाउड सैंडबॉक्स कब काम आता है
रिमोट वर्कस्पेस तब काम आता है जब लैपटॉप डिस्कनेक्ट होने के बाद भी टास्क चलता रहना चाहिए, जब एजेंट्स को अलग-अलग वर्किंग ट्री चाहिए, या जब आपका ऐप्लिकेशन हर यूज़र के लिए एक वर्कस्पेस बनाता है। आप उसमें रिपॉज़िटरी कॉपी कर सकते हैं, एजेंट चला सकते हैं, उसके बदलाव देख सकते हैं और जो फ़ाइलें रखनी हैं, उन्हें वापस डाउनलोड कर सकते हैं।
Lizard Sandboxes हर सैंडबॉक्स को उसके अपने कर्नेल वाले Firecracker microVM के रूप में चलाता है।
अलग मशीन जॉब को उन फ़ाइलों से दूर रखती है जो आपने अपने लैपटॉप से शेयर नहीं की हैं। लेकिन जो क्रेडेंशियल और फ़ाइलें आप उस मशीन में रखते हैं, वे वहां चलने वाले कोड को उपलब्ध रहती हैं। उनका दायरा टास्क के हिसाब से तय करें।
Lizard Sandboxes में Claude Code चलाएँ
Lizard CLI इंस्टॉल करें, साइन इन करें और प्रोजेक्ट चुनें। मॉडल कॉल के लिए आपको Anthropic API की या सपोर्टेड Claude सब्सक्रिप्शन टोकन चाहिए।
Anthropic API की रजिस्टर करने के लिए यह चलाएँ:
lizard agents add anthropicClaude सब्सक्रिप्शन के लिए टोकन बनाएँ और उसे Lizard CLI में रजिस्टर करें:
claude setup-token
lizard agents add claudeप्रॉम्प्ट आने पर क्रेडेंशियल पेस्ट करें। उसे अपनी रिपॉज़िटरी और कमांड हिस्ट्री से बाहर रखें। नीचे की कमांड मानकर चलती हैं कि रजिस्ट्रेशन सफल रहा; हमारे लाइव टेस्ट में पहले से मौजूद Claude सब्सक्रिप्शन टोकन इस्तेमाल हुआ।
वर्कस्पेस बनाएँ
YOUR_PROJECT_ID की जगह अपनी प्रोजेक्ट ID लिखें:
lizard sandbox create \
--project YOUR_PROJECT_ID \
--template claude \
--size small \
--timeout 3600000 \
--jsonउस रिस्पॉन्स में मिली सैंडबॉक्स ID को SB में सेट करें:
SB=YOUR_SANDBOX_IDयहां टाइमआउट वर्कस्पेस को एक घंटे की लाइफ़टाइम देता है। डिफ़ॉल्ट पांच मिनट है, और कमांड चलाने से यह बढ़ती नहीं। जॉब के लिए काफ़ी समय सेट करें और समय खत्म होने से पहले अपना काम सेव कर लें। लाइफ़साइकल कमांड के लिए CLI रेफ़रेंस देखें।
GitHub टोकन के बिना कमिट की हुई रिपॉज़िटरी कॉपी करें
लोकल रिपॉज़िटरी से Git बंडल बनाएँ और उसे अपलोड करें:
BUNDLE_DIR=$(mktemp -d)
git bundle create "$BUNDLE_DIR/app.bundle" HEAD
lizard sandbox files put \
"$SB" "$BUNDLE_DIR/app.bundle" /workspace/app.bundle
lizard sandbox exec "$SB" -- \
git clone /workspace/app.bundle /workspace/appबंडल में HEAD से पहुंची जा सकने वाली कमिट हिस्ट्री होती है। इसमें अनकमिटेड और अनट्रैक्ड फ़ाइलें शामिल नहीं होतीं, लेकिन उस हिस्ट्री में कमिट हुए सीक्रेट इसके साथ चले जाते हैं। भेजने से पहले रिपॉज़िटरी की समीक्षा करें। इस बंडल को क्लोन करने पर चेकआउट डिटैच्ड HEAD पर रह सकता है; फिर भी आप एजेंट के बदलाव देख सकते हैं और बदली हुई फ़ाइलें एक्सपोर्ट कर सकते हैं।
Claude को एक छोटा टास्क दें
lizard sandbox prompt "$SB" \
--agent claude \
--cwd /workspace/app \
"Run the tests. Fix one failing test with the smallest reasonable change. Report what changed and which tests passed."--agent claude ज़रूर रखें: एजेंट का विकल्प छोड़ देने पर डिफ़ॉल्ट एजेंट चुना जा सकता है। Lizard रनर रिमोट वर्कस्पेस के अंदर परमिशन बायपास इस्तेमाल करता है, ताकि टास्क इंटरैक्टिव प्रॉम्प्ट के बिना चल सके। इसलिए वर्कस्पेस की सीमा और आपके दिए गए क्रेडेंशियल टास्क के हिसाब से होने चाहिए। इसके अंदर चलने वाला कोड प्रोसेस को मिले मॉडल क्रेडेंशियल पढ़ सकता है।
हमारे टेस्ट में एक Python फ़ंक्शन दो संख्याओं को घटा रहा था, जबकि उसका टेस्ट उनका जोड़ अपेक्षित करता था। Claude ने वह फ़ंक्शन बदला, और उसके बाद अलग से चलाया गया टेस्ट पास हुआ।
नतीजे की समीक्षा करें और उसे डाउनलोड करें
lizard sandbox exec "$SB" -- \
git -C /workspace/app status --short
lizard sandbox exec "$SB" -- \
git -C /workspace/app diff
lizard sandbox files get \
"$SB" /workspace/app/path/to/changed-file ./changed-file.reviewpath/to/changed-file की जगह वह फ़ाइल लिखें जिसे आप डाउनलोड करना चाहते हैं। बदलाव मर्ज करने से पहले प्रोजेक्ट के टेस्ट खुद चलाएँ। हमने रिमोट डिफ़ जांचा, टेस्ट दोबारा चलाया और ठीक की गई फ़ाइल डाउनलोड की; उसका कंटेंट रिमोट नतीजे से मेल खाता था।
नतीजा सेव करने के बाद वर्कस्पेस को पॉज़ करें:
lizard sandbox pause "$SB"स्टेटस paused होने तक इंतज़ार करें। सफल पॉज़ से कंप्यूट बिलिंग रुक जाती है। सैंडबॉक्स हटाने से पहले काम एक्सपोर्ट करें, और अगर सैंडबॉक्स डिलीट होने के बाद भी डेटा बचा रहना चाहिए, तो Persistent Volumes इस्तेमाल करें। स्टोर किए गए डेटा पर फिर भी शुल्क लग सकता है।
क्लाउड वर्कस्पेस की लागत कितनी है?
18 अक्टूबर 2026 को Lizard की प्रकाशित कंप्यूट दरें ये थीं:
| साइज़ | CPU और मेमोरी | प्रति घंटा कंप्यूट |
|---|---|---|
| Small | 2 vCPU, 4 GB | $0.0162 |
| Medium | 4 vCPU, 8 GB | $0.0324 |
| Large | 8 vCPU, 16 GB | $0.0648 |
Small दर पर 100 सैंडबॉक्स-घंटे $1.62 का कंप्यूट उपयोग करते हैं। मॉडल कॉल, स्टोरेज और बिल होने वाले बाकी रिसोर्स का शुल्क अलग है।
Lizard Pro की कीमत टैक्स सहित $19 प्रति माह है, और इसमें $19 का उपयोग शामिल है। इससे ज़्यादा उपयोग pay as you go है। नए अकाउंट को $5 के उपयोग के साथ सात दिन का ट्रायल मिलता है; कार्ड ज़रूरी है। Claude सब्सक्रिप्शन या Anthropic API के शुल्क Lizard के शुल्क से अलग हैं। जॉब का साइज़ तय करने से पहले मौजूदा प्राइसिंग देख लें।
चालू सैंडबॉक्स खाली बैठे रहने पर भी कंप्यूट इस्तेमाल करता है। काम पूरा होने पर उसे सफलतापूर्वक पॉज़ करें; कंप्यूट पॉज़ होने पर भी Persistent Volumes स्टोरेज का बिल बन सकता है।
सेटअप की आम समस्याएँ
| समस्या | क्या जांचें |
|---|---|
| Linux पर नेटिव सैंडबॉक्स शुरू नहीं होता | bubblewrap और socat इंस्टॉल करें, फिर Claude Code रीस्टार्ट करें। होस्ट की नेमस्पेस पाबंदियां जांचें। |
| ज़रूरी डोमेन ब्लॉक है | सिर्फ़ ज़रूरी होस्ट को अलाउलिस्ट में जोड़ें और प्रॉक्सी से दोबारा कोशिश करें। |
| कंटेनर के अंदर bubblewrap फ़ेल होता है | नेस्टेड सैंडबॉक्सिंग होस्ट और कंटेनर के कॉन्फ़िगरेशन पर निर्भर करती है। चुपचाप आइसोलेशन बंद करने के बजाय सपोर्टेड सेटअप अपनाएँ। |
| Docker रन के दौरान होस्ट की फ़ाइलें बदल जाती हैं | लिखने की अनुमति वाले माउंट जांचें। माउंट की गई रिपॉज़िटरी वे बदलाव होस्ट के साथ शेयर करती है। |
| Lizard में गलत एजेंट शुरू होता है | --agent claude साफ़ तौर पर पास करें। |
| क्लाउड जॉब पूरा होने से पहले ही बंद हो जाता है | सही लाइफ़टाइम सेट करें और समय खत्म होने से पहले नतीजे सेव करें। कमांड चलाने से लाइफ़टाइम रीसेट नहीं होती। |
हमने क्या टेस्ट किया
18 अक्टूबर 2026 को हमने Claude Code 2.1.286 को macOS पर और Lizard CLI 4.0.58 के ज़रिए एक नए Small Firecracker सैंडबॉक्स में चलाया। macOS की जांच में वर्कस्पेस में लिखने की अनुमति मिली, जबकि प्रोजेक्ट के बाहर लिखना और प्रॉक्सी को बायपास करने वाली डायरेक्ट नेटवर्क रिक्वेस्ट, दोनों ब्लॉक हुए।
क्लाउड टेस्ट में Git बंडल अपलोड, क्लोनिंग, Claude का फ़ेल हो रहा Python टेस्ट ठीक करना, अलग से टेस्ट दोबारा चलाना, डिफ़ की समीक्षा, फ़ाइल डाउनलोड और पॉज़ शामिल थे। हमने पुष्टि की कि सैंडबॉक्स paused स्टेटस तक पहुंचा।
Docker टेस्ट में ARM64 पर Docker Engine 28.1.1, Dev Containers CLI 0.89.0, Node.js 22.23.3 और Claude Code 2.1.302 इस्तेमाल किए गए। सुधरा हुआ कॉन्फ़िगरेशन क्लीन कंटेनर से बिल्ड हुआ, और Claude ने फ़ेल हो रहा एक Node.js टेस्ट ठीक किया, जो अलग से दोबारा चलाने पर पास हुआ। हमने Linux पैकेज इंस्टॉल करने वाली कमांड भी वेरिफ़ाई की।
ऑथेंटिकेशन के लिए पहले से मौजूद Claude सब्सक्रिप्शन टोकन इस्तेमाल हुआ। हमने शुरुआती OAuth एनरोलमेंट दोबारा नहीं किया और नेटिव Windows/WSL आइसोलेशन टेस्ट नहीं किया। ये जांचें यहां बताई गई कमांड और नतीजों को कवर करती हैं; ये सिक्योरिटी ऑडिट नहीं हैं।
आपको कौन-सा सेटअप चुनना चाहिए?
लोकल शेल टास्क के लिए, जहां आप ज़रूरी पाथ और डोमेन तय कर सकते हैं, बिल्ट-इन Claude Code सैंडबॉक्स से शुरू करें। जब टीम को साझा डेवलपमेंट सेटअप चाहिए, तो डेव कंटेनर इस्तेमाल करें। जब टास्क को रिमोट कंप्यूट या एक साथ चलने वाले एजेंट्स के लिए अलग-अलग एनवायरनमेंट चाहिए, तो क्लाउड वर्कस्पेस चुनें।
Lizard पर पहली बार चलाने के लिए एक छोटी रिपॉज़िटरी कॉपी करें, Claude से एक फ़ेल हो रहा टेस्ट ठीक करवाएँ, डिफ़ की समीक्षा करें और वर्कस्पेस को पॉज़ करें। मौजूदा सेटअप स्टेप्स Claude Code गाइड में हैं।
AI के साथ बिल्ड करें। Lizard के साथ शिप करें।
लाइव जाने के लिए आपको प्लेटफ़ॉर्म टीम की ज़रूरत नहीं है। आपका पूरा क्लाउड, बस एक CLI कमांड की दूरी पर।
- सर्विसेज़
- —
- ऐडऑन
- —
- डिप्लॉयमेंट्स
- —
- सैंडबॉक्स स्टार्ट्स
- —