
yoloai v0.11.0
आपका एजेंट एक सुरक्षा जोखिम है, इसलिए इसे वैसे ही व्यवहार करें। yoloAI AI एजेंट सैंडबॉक्सिंग को सही तरीके से करता है।
yoloAI
AI कोडिंग एजेंटों के लिए सैंडबॉक्स्ड रनर। कोई अनुमति थकान नहीं, बॉक्स में कोई क्रेडेंशियल नहीं, और जब तक आप उन्हें स्वीकृत नहीं करते, आपके प्रोजेक्ट में कोई बदलाव नहीं।
AI कोडिंग एजेंट सबसे अच्छा तब काम करते हैं जब सुरक्षा उपाय बंद हों, और यह उन्हें आपकी असली मशीन पर चलाने का एक भयानक तरीका है। yoloAI एजेंट को एक डिस्पोजेबल सैंडबॉक्स देता है जहाँ वह कुछ भी संपादित कर सकता है और कुछ भी चला सकता है, बिना निगरानी के। आपका प्रोजेक्ट, आपके क्रेडेंशियल, और आपका नेटवर्क आपके नियंत्रण में रहते हैं। जब एजेंट काम पूरा कर लेता है, तो diff की समीक्षा करें और जो आप रखना चाहते हैं उसे लागू करें।
You Sandbox Your project
│ │ │
├─ yoloai new fix-bug . ├─ sandbox copy of project │
│ │ │
├─ << your prompt(s) >> ├─ agent works freely │
│ │ (no permission prompts) │
│ │ │
├─ yoloai diff fix-bug ├─ shows what changed │
│ │ │
├─ yoloai apply fix-bug │ ├─ patches applied
│ (you choose which ones) │ │
│ │ │
├─ yoloai destroy fix-bug ├─ destroys sandbox │
क्यों?
अनुमति संकेत इसलिए मौजूद हैं क्योंकि एजेंट गलतियाँ करते हैं। सौवें स्वीकृत/अस्वीकृत के बाद आप उन्हें पढ़ना बंद कर देते हैं, और --dangerously-skip-permissions एक भ्रमित एजेंट से एक बहुत बुरे दिन की दूरी पर है। yoloAI विस्फोट त्रिज्या को तब तक छोटा करता है जब तक कि संकेत अनावश्यक न हों:
- आपकी फ़ाइलें सुरक्षित हैं। एजेंट आपके प्रोजेक्ट की एक अलग प्रति पर काम करता है।
diffदिखाता है कि वास्तव में क्या बदला,applyआपके वास्तविक प्रोजेक्ट को पैच करता है जबकि व्यक्तिगत कमिट संरक्षित रहते हैं, और आपके मूल फ़ाइलें तब तक नहीं बदलतीं जब तक आप लागू नहीं करते। - आपके रहस्य सुरक्षित हैं। सैंडबॉक्स एक न्यूनतम, स्थानीय रूप से निर्मित वातावरण से शुरू होता है; होस्ट पर्यावरण चर होस्ट पर ही रहते हैं। क्रेडेंशियल केवल-पढ़ने के लिए फ़ाइल माउंट के रूप में आते हैं, कभी भी पर्यावरण चर के रूप में नहीं। जहाँ क्रेडेंशियल ब्रोकरिंग लागू होती है (Claude, Gemini, और Codex आज, डिफ़ॉल्ट रूप से चालू), API कुंजी पूरी तरह से होस्ट-साइड रहती है: एक स्थानीय प्रॉक्सी इसे प्रदाता के रास्ते में इंजेक्ट करता है, इसलिए एक पूरी तरह से समझौता किया गया एजेंट भी निकालने के लिए कुछ नहीं रखता।
- आपका नेटवर्क आपका है।
--network-isolatedएजेंट के API एंडपॉइंट्स के साथ-साथ आपके द्वारा अनुमत डोमेन तक बाहरी यातायात को प्रतिबंधित करता है।--network-noneनेटवर्क को पूरी तरह से हटा देता है। - आपकी मशीन अलग है। अपना आराम स्तर चुनें, Linux नेमस्पेस से लेकर gVisor से लेकर हार्डवेयर VM तक।
पूर्ण मॉडल के लिए सुरक्षा देखें, जिसमें ईमानदार सीमाएँ शामिल हैं।
स्थापना
पूर्व-निर्मित बाइनरी (अनुशंसित)
नवीनतम रिलीज़ से अपने प्लेटफ़ॉर्म के लिए संग्रह डाउनलोड करें, yoloai बाइनरी निकालें, और इसे अपने PATH पर रखें:
# Linux x86-64 (आवश्यकता अनुसार linux_arm64 / darwin_amd64 / darwin_arm64 बदलें)।
# VERSION को ऊपर लिंक किए गए नवीनतम-रिलीज़ पृष्ठ पर दिखाए गए टैग पर सेट करें, बिना
# अग्रणी "v" के — उदा. टैग v1.2.3 के लिए VERSION=1.2.3।
VERSION=X.Y.Z
curl -fsSL "https://github.com/kstenerud/yoloai/releases/download/v${VERSION}/yoloai_${VERSION}_linux_amd64.tar.gz" \
| tar -xz yoloai
sudo install yoloai /usr/local/bin/
प्रत्येक संग्रह में शेल पूर्णताएँ, LICENSE, और परिवर्तन लॉग भी शामिल हैं। रिलीज़ cosign (checksums.txt) के साथ हस्ताक्षरित हैं और GitHub बिल्ड प्रोवेनेंस (gh attestation verify yoloai_… --repo kstenerud/yoloai) रखते हैं। Debian/RPM पैकेज भी प्रत्येक रिलीज़ से जुड़े होते हैं।
Homebrew (macOS / Linux)
brew install --cask kstenerud/tap/yoloai
go install का उपयोग करना
# नवीनतम रिलीज़
go install github.com/kstenerud/yoloai/cmd/yoloai@latest
# नवीनतम विकास संस्करण (अस्थिर)
go install github.com/kstenerud/yoloai/cmd/yoloai@main
Go 1.26+ की आवश्यकता है। बाइनरी $GOPATH/bin में रखी जाती है (आमतौर पर ~/go/bin)।
स्रोत से
git clone https://github.com/kstenerud/yoloai.git
cd yoloai
git checkout "$(git describe --tags --abbrev=0)" # नवीनतम रिलीज़ टैग; या विकास संस्करण के लिए main पर रहें
make build
sudo install yoloai /usr/local/bin/
यह एक एकल Go बाइनरी है जिसमें आपके चुने हुए बैकएंड के अलावा कोई रनटाइम निर्भरता नहीं है। पहली बार चलाने पर, yoloAI अपनी आधार छवि बनाता है और ~/.yoloai/ (या जिस भी निर्देशिका को आप --data-dir की ओर इंगित करते हैं) बनाता है।
त्वरित प्रारंभ
गैर-संवादात्मक
# प्रमाणीकरण (yoloAI मौजूदा क्रेडेंशियल स्वचालित रूप से उठाता है)
export ANTHROPIC_API_KEY=sk-ant-... # Claude Code
export GEMINI_API_KEY=... # Gemini CLI
# या बस इसे अपने पहले से प्रमाणित सत्र को उठाने दें
# 1. एक सैंडबॉक्स स्पिन करें। जब आप एक प्रॉम्प्ट देते हैं तो एजेंट तुरंत काम शुरू कर देता है
yoloai new fix-bug ./my-project --prompt "fix the failing tests"
# 2. देखें कि एजेंट ने क्या बदला
yoloai diff fix-bug
# 3. अच्छे हिस्सों को अपने वास्तविक प्रोजेक्ट पर लागू करें
yoloai apply fix-bug
# 4. सैंडबॉक्स को फेंक दें
yoloai destroy fix-bug
संवादात्मक
yoloai new exploration ./my-project -a
# आप एजेंट के अंदर हैं, सैंडबॉक्स में tmux में चल रहे हैं।
# अलग करने के लिए Ctrl-B, D।
# पुनः कनेक्ट करने के लिए yoloai attach exploration।
पुनरावृत्ति
लंबे सत्रों के लिए, एक लूप में काम करें: एजेंट को बताएं कि वह जाते समय कमिट करे, और जब भी आप पूर्ण कमिट को अपने वास्तविक प्रोजेक्ट में खींचना चाहें तो दूसरे टर्मिनल से yoloai apply चलाएँ। प्रत्येक apply केवल पिछले एक के बाद से नए कमिट लाता है। जब आप परिणाम से खुश हों, तो हमेशा की तरह push करें और सैंडबॉक्स को नष्ट कर दें। पूर्ण वर्कफ़्लो के लिए उपयोग गाइड देखें।
डेमो
एक सैंडबॉक्स बनाना, एजेंट को प्रॉम्प्ट करना, और परिणाम लागू करना:
https://github.com/user-attachments/assets/9d6740b4-a34e-4253-82ec-cb0e4c7a8bd9
विशेषताएँ
सैंडबॉक्सिंग
- छह बैकएंड: Docker, Podman, containerd (Kata), Apple Container, Tart, और Seatbelt। Linux, macOS, और Windows (WSL2) पर चलता है।
- प्रति सैंडबॉक्स चयन योग्य अलगाव शक्ति, runc से gVisor से लेकर Kata VM (QEMU या Firecracker) तक।
- प्रति सैंडबॉक्स नेटवर्क नीति: खुला, अनुमत सूची, या कोई नहीं।
- सैंडबॉक्स के अंदर न्यूनतम वातावरण। होस्ट से कुछ भी एक स्पष्ट ऑप्ट-इन है (
--env,--dir)। - संसाधन सीमाएँ (
--cpus,--memory) और पोर्ट फ़ॉरवर्डिंग (--port)। - सस्ती workdir प्रतियाँ: macOS पर पूरे-पेड़ क्लोन (APFS
clonefile), Linux फ़ाइल सिस्टम पर प्रति-फ़ाइल reflinks जो उनका समर्थन करते हैं (btrfs, XFS)। reflink के बिना फ़ाइल सिस्टम (ext4) को एक नियमित प्रति मिलती है। .gitignoreसम्मानित: जो कुछ भी अनदेखा किया गया है उसे सैंडबॉक्स में नहीं कॉपी किया जाता है (डिस्क पर विकास क्रेडेंशियल के लिए सुरक्षा अभ्यास)।
क्रेडेंशियल
- आपके मौजूदा एजेंट लॉगिन स्वचालित रूप से उठाता है: API कुंजियाँ, सदस्यता क्रेडेंशियल, macOS Keychain।
- क्रेडेंशियल ब्रोकरिंग API कुंजी को होस्ट-साइड रखता है (Claude, Gemini, और Codex आज); Aider और OpenCode क्रेडेंशियल केवल-पढ़ने के लिए फ़ाइल माउंट के रूप में वितरित किए जाते हैं।
वर्कफ़्लो
- git सैंडबॉक्स-साइड चलने के साथ कॉपी/diff/apply, ताकि फ़िल्टर और हुक वाले रिपॉजिटरी सही ढंग से व्यवहार करें।
- अपने तरीके से लागू करें: कमिट को फिर से चलाएँ (डिफ़ॉल्ट), एक एकल पैच में स्क्वैश करें,
.patchफ़ाइलें निर्यात करें, ref द्वारा कमिट चुनें, या पहले--dry-run। - पूर्ण जीवनचक्र: बनाएँ, संलग्न करें, रोकें, पुनः आरंभ करें, प्रतीक्षा करें, क्लोन करें, रीसेट करें, नष्ट करें। एजेंट स्थिति रुकने और पुनः आरंभ होने से बचती है।
- स्क्रिप्ट और CI के लिए हेडलेस एक-शॉट:
yoloai run --prompt ... --rm, हर कमांड पर--jsonआउटपुट के साथ। - जब एजेंट बाहर निकलता है, तो उसका tmux पैन एक शेल में गिर जाता है ताकि आप सैंडबॉक्स का निरीक्षण कर सकें।
एकीकरण
- Claude Code, Codex, Gemini CLI, Aider, और OpenCode अंतर्निहित हैं, साथ ही बाकी सब के लिए एक
shellमोड। - VS Code: कंटेनर से संलग्न करें, या सैंडबॉक्स के अंदर से एक Remote Tunnel खोलें (
--vscode-tunnel)। - दोनों दिशाओं में MCP:
yoloai mcp serveएक बाहरी एजेंट को सैंडबॉक्स को उपकरण के रूप में चलाने देता है;yoloai mcp proxyएक सैंडबॉक्स के अंदर MCP सर्वर चलाता है। - प्रोफ़ाइल: प्रति-प्रोजेक्ट छवियाँ और डिफ़ॉल्ट (Dockerfile + कॉन्फ़िगरेशन, विरासत के साथ)।
- एक्सटेंशन: YAML-लिपटे शेल स्क्रिप्ट के रूप में अपने स्वयं के उपकमांड जोड़ें (
yoloai x)। - एम्बेड करने योग्य: CLI एक सार्वजनिक Go API के ऊपर एक पतली परत है।
- एकल स्थिर बाइनरी। स्थिति
~/.yoloai/में रहती है (--data-dirके साथ स्थानांतरित करने योग्य)।
समर्थित अवसंरचना
सैंडबॉक्स बैकएंड
| बैकएंड | समर्थित होस्ट | निर्भरताएँ |
|---|---|---|
| docker | Linux, macOS, Windows (WSL2) | Docker Engine, Docker Desktop, या OrbStack |
| podman | Linux, macOS | Podman (macOS पर brew install podman) |
| containerd | Linux | Kata Containers |
| apple | macOS (Apple Silicon) | Apple Container |
| tart | macOS (Apple Silicon) | Tart (brew install cirruslabs/cli/tart) |
| seatbelt | macOS (कोई भी) | कोई नहीं (अंतर्निहित sandbox-exec का उपयोग करता है) |
नोट: Tart एक पूर्ण macOS VM प्रदान करता है, जिससे आप सैंडबॉक्स के भीतर सिमुलेटर चला सकते हैं।
अलगाव मोड
वैकल्पिक रूप से मजबूत अलगाव के लिए OCI रनटाइम को अपग्रेड करें। gVisor मोड docker और podman पर उपलब्ध हैं; VM मोड containerd बैकएंड के साथ आते हैं।
| मोड | विवरण |
|---|---|
container | डिफ़ॉल्ट runc: मानक Linux नेमस्पेस और cgroups |
container-enhanced | उपयोगकर्ता-स्थान कर्नेल (gVisor/runsc): syscall अवरोधन, KVM की आवश्यकता नहीं |
container-privileged | सभी क्षमताएँ, seccomp/AppArmor अनियंत्रित। Docker-in-Docker और Compose के लिए उपयोग करें |
vm | Kata Containers (QEMU): हार्डवेयर VM अलगाव |
vm-enhanced | Kata + Firecracker microVM: हल्का VM अलगाव |
# सभी नए सैंडबॉक्स के लिए gVisor का उपयोग करें
yoloai config set isolation container-enhanced
# या प्रति सैंडबॉक्स
yoloai new task . --isolation container-enhanced
एजेंट
| मोड | विवरण |
|---|---|
claude | API कुंजी या सदस्यता क्रेडेंशियल के माध्यम से Claude Code चलाता है (डिफ़ॉल्ट) |
codex | API कुंजी या सदस्यता क्रेडेंशियल के माध्यम से Codex चलाता है |
gemini | API कुंजी या सदस्यता क्रेडेंशियल के माध्यम से Gemini CLI चलाता है |
aider | Aider चलाता है (आपका कॉन्फ़िगरेशन कॉपी किया जाता है) |
opencode | OpenCode चलाता है (आपका कॉन्फ़िगरेशन कॉपी किया जाता है) |
shell | सभी एजेंट क्रेडेंशियल के साथ एक tmux शेल चलाता है |
idle | MCP प्रॉक्सीिंग की अनुमति देने के लिए एक निष्क्रिय प्रक्रिया चलाता है |
उपलब्ध एजेंटों को सूचीबद्ध करने के लिए yoloai system agents का उपयोग करें।
और जानें
- उपयोग गाइड: कमांड, फ़्लैग, workdir मोड, कॉन्फ़िगरेशन, सुरक्षा
- रोडमैप: आगामी विशेषताएँ
- आर्किटेक्चर: योगदानकर्ताओं के लिए कोड नेविगेशन
स्थिति
सार्वजनिक बीटा। मुख्य वर्कफ़्लो स्थिर है और दैनिक रूप से उपयोग किया जाता है; इंटरफ़ेस 0.x रिलीज़ के बीच बदल सकते हैं, और हर ब्रेकिंग परिवर्तन BREAKING-CHANGES में प्रलेखित है। प्रतिक्रिया का स्वागत है।