Yolobox – होम डायरेक्टरी को सुरक्षित रखते हुए AI coding agent को full permissions के साथ चलाना
(github.com/finbarr)- AI coding agents को full system permissions के साथ चलाने के लिए, लेकिन उपयोगकर्ता की home directory को नुकसान के जोखिम से बचाने वाला टूल
- Claude Code, Codex, Gemini CLI, OpenCode जैसे प्रमुख AI CLI पहले से कॉन्फ़िगर किए गए हैं और ‘YOLO mode’ में चल सकते हैं
- Docker या Podman container के अंदर केवल project directory को mount करता है, और home directory को डिफ़ॉल्ट रूप से बाहर रखता है
- container के अंदर sudo permissions और persistent volumes देता है ताकि tools और settings session के बीच बने रहें
- डेवलपर्स को AI automation features को सुरक्षित तरीके से आज़माने के लिए isolated sandbox environment देता है
अवलोकन
- Yolobox एक ऐसा टूल है जो AI coding agent को container के अंदर चलाता है, ताकि system सुरक्षित रहे और फिर भी उसे full execution permissions मिलें
- अगर AI command चलाते समय गलती से
rm -rf ~जैसी destructive command भी चला दे, तब भी home directory प्रभावित नहीं होती - project directory को
/workspaceपर mount किया जाता है, जबकि home directory डिफ़ॉल्ट रूप से mount नहीं होती - persistent volume के ज़रिए tools और settings session के बीच बने रहते हैं
- अगर AI command चलाते समय गलती से
मुख्य संरचना और फीचर्स
- container के अंदर AI agent के पास sudo permissions होती हैं और वह स्वतंत्र रूप से commands चला सकता है
- default image में निम्न शामिल हैं
- AI CLI: Claude Code, Gemini CLI, OpenAI Codex, OpenCode (सभी auto-run mode में सेट)
- development environment: Node.js 22, Python 3, make, cmake, gcc, Git, GitHub CLI
- utilities: ripgrep, fd, fzf, jq, vim
- ज़रूरत पड़ने पर उपयोगकर्ता खुद sudo से अतिरिक्त packages install कर सकता है
चलाना और commands
yoloboxcommand से sandbox shell में प्रवेशyolobox runसे single command चलाई जा सकती हैyolobox upgrade,yolobox config,yolobox reset --force,yolobox versionजैसी management commands उपलब्ध हैं- मुख्य flags
--runtime: docker या podman चुनें--no-network: network disable--readonly-project: project को read-only mount करें--claude-config: host की Claude settings को container में कॉपी करें
सुरक्षा मॉडल
- container isolation को security boundary के रूप में उपयोग करता है
- container Linux namespaces के ज़रिए filesystem, process और network को अलग करता है
- AI के पास container के अंदर root permissions होती हैं, लेकिन बाहरी system तक पहुँच नहीं होती
- संरक्षित चीज़ें
- home directory, SSH keys, credentials, dotfiles, दूसरे projects, host system files
- जो संरक्षित नहीं हैं
- project directory (डिफ़ॉल्ट रूप से read/write संभव)
- network access (option से block किया जा सकता है)
- kernel vulnerabilities या container escape attacks
सुरक्षा को मज़बूत करने के चरण
- default mode: standard container isolation
- चरण 2:
--no-network --readonly-projectoptions से attack surface कम करें - चरण 3: Rootless Podman का उपयोग कर host root permissions हटाएँ
- container का root host के सामान्य user से map होता है, इसलिए escape होने पर भी नुकसान कम होता है
- चरण 4: VM के अंदर चलाना ताकि kernel sharing समाप्त हो
- macOS पर UTM, Parallels, Lima; Linux पर Podman machine या dedicated VM का उपयोग
network isolation
- Rootless Podman डिफ़ॉल्ट रूप से slirp4netns network का उपयोग करता है, जो host network से अलग होता है
allow_host_loopback=falsesetting से local network access को block किया जा सकता है
लाइसेंस और अन्य
- MIT license के तहत जारी
- repository language composition: Go 75.9%, Dockerfile 13.6%, Shell 8.7%, Makefile 1.8%
- ‘Yolobox’ नाम “YOLO(You Only Live Once)” भावना से लिया गया है, जिसका अर्थ है AI को खुलकर चलाना लेकिन सुरक्षित रूप से isolated environment में
1 टिप्पणियां
Hacker News की रायें
मैंने हाल ही में Litterbox नाम का एक मिलता-जुलता प्रोजेक्ट बनाया है (डेमो साइट)
यह सिर्फ Linux के लिए है, क्योंकि यह Podman पर निर्भर करता है। लेकिन मेरे उपयोग के हिसाब से इसके कुछ फायदे हैं
मैं भी कुछ ऐसा ही experiment कर रहा था।
अच्छा होगा अगर README में यह साफ़ समझाया जाए कि यह कैसे काम करता है और trust boundary क्या है (Docker container आधारित)। Kernel vulnerabilities exploit हो सकती हैं, इसलिए container escape का जोखिम अब भी मौजूद है
मैं Rootless Podman और
slirp4netnsका इस्तेमाल करके network access को न्यूनतम रख रहा हूँ।अगले चरण में kernel को पूरी तरह अलग करने के लिए Podman machine इस्तेमाल करना चाहता हूँ, लेकिन volume mount ठीक से काम नहीं कर रहा
किसी ने सुझाव दिया कि
agents.mdयाclaude.mdमें Asimov के Three Laws डालने चाहिएclaude.mdमें डालने से मॉडल के मन में यह विचार बैठाने जैसा असर होता है। पुराने मॉडल्स में अगर कहते थे “हाथी शब्द मत इस्तेमाल करो”, तो वे उसी शब्द से बचने की कोशिश में अजीब नतीजे देने लगते थेShai को देखने की सलाह दी गई। यह लोकल में चलता है और directory access permissions व network traffic को नियंत्रित कर सकता है
shai -rw .से current directory में read/write की अनुमति मिलती है, औरshai -u rootसे दूसरे user के रूप में चलाया जा सकता हैShai default deny, explicit allow (opt-in) दर्शन का पालन करता है। मैं सुझाव देता हूँ कि
.shai/config.yamlको repo में साझा करें ताकि पूरी टीम एक ही configuration इस्तेमाल करे--no-networkसे इसे बंद किया जा सकता हैमैं yolo-cage विकसित कर रहा हूँ। जहाँ Yolobox का फोकस लोकल मशीन की सुरक्षा पर है, वहीं yolo-cage का फोकस secret leakage रोकने और multi-agent collaboration पर है
यह Kubernetes पर चलता है और सारे egress traffic को scan करता है ताकि API keys या tokens का लीक होना रोका जा सके।
यह Git branch isolation को enforce करता है ताकि agent अपना PR खुद merge न कर सके — “agent सुझाव देता है, इंसान approve करता है”
इसमें escape test framework भी built-in है, जो Claude को खुद escape करने की कोशिश करने के लिए उकसाता है। वह prompt repo के भीतर मौजूद है, ताकि verify किया जा सके कि agent सच में वैसा व्यवहार करता है या नहीं
मुझे यह जानना था कि commits पर “claude” का टैग लगाना ज़रूरी क्यों है। जैसे OS या vim version नहीं लिखा जाता। आखिर LLM तो बस English को code में compile करने वाला tool है
मैंने भी ऐसा ही प्रयास किया था। मैंने कुछ अतिरिक्त convenience features के साथ Toadbox बनाया
AI sandboxing की बहुत चर्चा है, लेकिन असल में Claude Code, Codex, Gemini CLI में पहले से built-in sandbox मौजूद है
मैं Apple Container Framework का इस्तेमाल करके कुछ ऐसा ही बना रहा हूँ। जानना चाहता हूँ कि क्या आपने इसे देखा है
लेकिन Docker API compatibility और composability की कमी है। संबंधित चर्चा मैंने यहाँ में समेटी है
मूल रूप से मैं Shai को Apple Container के ऊपर चलाना चाहता था, लेकिन packaging issues के कारण यह छोड़ना पड़ा
मैं भी कुछ ऐसा ही बना रहा हूँ → sandbox-codex
अभी काम जारी है, और tmux logs की readability अच्छी नहीं है। Docker पूरा sandbox नहीं है, इसलिए मैं इसे VirtualBox में चला रहा हूँ