
सैंडबॉक्स और MCP प्रॉक्सी जो AI कोडिंग एजेंट्स को SSH कुंजियाँ, AWS क्रेडेंशियल्स, और .env फ़ाइलें पढ़ने से रोकता है, डिफ़ॉल्ट-रूप-से-अस्वीकार नीति और छेड़छाड़-स्पष्ट ऑडिट लॉग्स के साथ।
Claude Code का सैंडबॉक्स डिफ़ॉल्ट रूप से एक एजेंट को आपकी SSH कुंजियाँ और AWS क्रेडेंशियल्स पढ़ने देता है। Aegis नहीं देता।
दो परतें, दोनों वास्तविक हार्डवेयर पर सत्यापित।
कर्नेल सैंडबॉक्स — एजेंट का अपना शेल किसी अस्वीकृत पथ तक नहीं पहुँच सकता:
$ ! cat ~/.ssh/id_rsa
cat: /Users/you/.ssh/id_rsa: Operation not permitted
$ ! cat ~/.aws/credentials
cat: /Users/you/.aws/credentials: Operation not permitted
$ tail ~/Library/Application\ Support/Aegis/denials.log
kernel denied file-read-data /Users/you/.ssh/id_rsa to cat(pid 41560)
kernel denied file-read-data /Users/you/.aws/credentials to cat(pid 42180)
MCP प्रॉक्सी — वही टूल, वही फ़ाइल, Aegis के साथ और उसके बिना:
direct to the server: allowed: TOKEN=proof-env-secret
through aegis proxy: AEGIS DENIED: read_text_file
Reason: path matches deny rule '.env'
Rule: deny_paths
प्रत्येक पंक्ति एक परीक्षण द्वारा समर्थित है जो इस रिलीज़ के विरुद्ध चलाया गया था; जहाँ कुछ अभी तक परीक्षण नहीं किया गया है, वहाँ ऐसा कहा गया है।
aegis workspace add / remove / list — policy.json को संपादित किए बिना उन फ़ोल्डरों को बदलें जिनमें एजेंट काम कर सकता है। जोड़ने के लिए हमेशा --confirm-grant की आवश्यकता होती है; हटाने के लिए कभी नहीं। add आपकी होम डायरेक्टरी, Aegis की अपनी फ़ाइलों वाली किसी भी चीज़, .. वाले पथ, ऐसे फ़ोल्डर जो मौजूद नहीं हैं, किसी वर्कस्पेस के अंदर स्थित सिमलिंक, और किसी अन्य वर्कस्पेस के अंदर या उसके आसपास स्थित वर्कस्पेस को अस्वीकार करता है। प्रत्येक परिवर्तन ऑडिट लॉग में दर्ज होता है और सैंडबॉक्स प्रोफ़ाइल को पुनः उत्पन्न करता है। पहले से चल रहा सत्र उन्हीं वर्कस्पेस के साथ बना रहता है जिनके साथ वह शुरू हुआ था — जिसमें वह भी शामिल है जिसे आपने अभी हटाया है — जिसे एक लाइव सैंडबॉक्स्ड सत्र के विरुद्ध मापा गया है।aegis policy set-folder के साथ एक नए वर्कस्पेस में बदला जा सकता था, जो लिंक जहाँ भी इंगित करता वहाँ अनुदान दे देता था; और किसी अन्य के अंदर बनाए गए वर्कस्पेस को बाद में सिमलिंक से बदला जा सकता था और अगले लॉन्च पर उसका अनुसरण किया जा सकता था। दोनों को 0.8.1 पर पुनः उत्पन्न किया गया और अब ये स्थायी रिग्रेशन टेस्ट हैं जो वहाँ विफल सिद्ध होते हैं।policy.json में सापेक्ष पथ अस्वीकृत हैं। एक सापेक्ष पथ उस फ़ोल्डर के सापेक्ष हल होता था जहाँ से Aegis शुरू किया गया था, इसलिए aegis run और लॉन्च रैपर एक ही पॉलिसी से भिन्न सैंडबॉक्स लागू कर सकते थे (मापा गया: भिन्न प्रोफ़ाइल डाइजेस्ट)। पथ निरपेक्ष होने चाहिए या ~/ से शुरू होने चाहिए।aegis doctor अब किसी संपादन और अगले लॉन्च के बीच बेमेल की रिपोर्ट नहीं करता।aegis run और aegis doctor वास्तविक Claude Code पथ प्रिंट करते हैं — जो Aegis द्वारा लिखे गए रैपर से पढ़ा जाता है — और /login, जिसे सैंडबॉक्स के बाहर चलाना है। ठीक नहीं हुआ: एक रद्द या समाप्त टोकन अभी भी लॉग इन के रूप में पढ़ा जाता है जब तक कि पहला संदेश विफल न हो जाए (Claude Code की स्थिति कोई समाप्ति की रिपोर्ट नहीं करती), और लॉगिन अभी भी सैंडबॉक्स के अंदर नहीं हो सकता; इसके लिए एक क्रेडेंशियल ब्रोकर की आवश्यकता है जो अभी मौजूद नहीं है।aegis init एक नए उपयोगकर्ता की रक्षा करता है जिसने अभी तक लॉग इन नहीं किया है। एक स्वच्छ वातावरण में वॉकथ्रू का पालन करके पाया गया: 0.8.1 में, एक Claude Code जिसने कभी लॉग इन नहीं किया था, डिफ़ॉल्ट रूप से अनरैप्ड छोड़ दिया गया था, एक ऐसे प्रश्न के पीछे जिसका दस्तावेज़ों में कभी उल्लेख नहीं किया गया था, इसलिए claude सैंडबॉक्स के बाहर ही रहा। अब, एक बार जब आप सैंडबॉक्सिंग के लिए हाँ कहते हैं, तो इसे रैप कर दिया जाता है, सैंडबॉक्स के बाहर एक बार लॉग इन करने की ज़ोरदार चेतावनी के साथ (वास्तविक Claude Code पथ, फिर /login); aegis init के समापन चरण इसे सबसे पहले रखते हैं, और जब तक आप ऐसा नहीं करते तब तक aegis doctor विफल रहता है। उसी रन ने init के प्रारंभिक और समापन पाठ को भी ठीक किया, aegis init, aegis run और aegis doctor को एक लॉगिन निर्देश दिया, और एक नो-ऑप परिवर्तन को nothing to change (nothing to change) प्रिंट करने से रोक दिया।0.9.0 में अभी तक परीक्षण नहीं किया गया: Linux; Claude Code के अलावा अन्य क्लाइंट; /login प्रवाह एंड टू एंड; एक पुनर्निर्मित डेस्कटॉप ऐप।
आपके AI कोडिंग एजेंट और आपकी मशीन के बीच बैठता है:
cat .env इसे बायपास नहीं कर सकताaegis doctor द्वारा अखंडता जाँचा गया, और सैंडबॉक्स के बाहर से एक ऐसी कुंजी के अंतर्गत चेकपॉइंट किया गया जिसे सैंडबॉक्स न पढ़ सकता है न लिख सकता हैयहाँ नए हैं? docs/getting-started.md चरण-दर-चरण मार्ग है, जिसमें वे दो प्रश्न भी शामिल हैं जिनका डिफ़ॉल्ट No है।
पहले दिए गए निर्देशों का पालन किया जिनमें aegis-mcp कहा गया था? वह पैकेज Aegis नहीं है — यह एक असंबंधित
प्रोजेक्ट है जो उसी इम्पोर्ट नाम, aegis, के अंतर्गत इंस्टॉल होता है। पहले इसे हटाएँ:
python3 -m pip uninstall aegis-mcp
यदि aegis-sandbox पहले से इंस्टॉल है, तो वह अनइंस्टॉल इसकी दो फ़ाइलें भी हटा देगा, इसलिए बाद में इसे फिर से इंस्टॉल करें: python3 -m pip install --force-reinstall aegis-sandbox.
python3 -m pip install aegis-sandbox
aegis init # detects Claude Code / Cursor, asks a few questions
aegis doctor # proves the boundary is actually in place
अपग्रेड कर रहे हैं? aegis init फिर से चलाएँ। आपका policy.json आपका है और इसे कभी भी आपकी पीठ पीछे फिर से नहीं लिखा जाता, इसलिए एक नया सैंडबॉक्स डोमेन अपने आप नहीं जुड़ता — और OAuth टोकन एंडपॉइंट के बिना एक सैंडबॉक्स्ड क्लाइंट तब काम करना बंद कर देता है जब उसका टोकन समाप्त हो जाता है। aegis init नए होस्ट्स प्रस्तावित करता है; स्वीकार करना एक कीस्ट्रोक है।
aegis init से पहले Claude Code में लॉग इन करें; यदि कोई रैप किया गया क्लाइंट लॉग इन नहीं है तो aegis doctor विफल हो जाता हैपूर्ण थ्रेट मॉडल: THREAT-MODEL.md
MIT