अपडेट पर वापस जाएँ
New releaseOct 17, 2026

smolvm v1.30.1

एक एम्बेड करने योग्य, पोर्टेबल, ब्रांच करने योग्य वर्चुअल मशीन जो Agents को स्थानीय रूप से सुरक्षित रूप से चलाने के लिए है।

साझा करें

smol machines

Discord Release License npm PyPI crates.io

smolvm

AI एजेंट्स के लिए ब्रांच करने योग्य microVM। हल्के वर्चुअल मशीनों को अपने सॉफ़्टवेयर, पोर्टेबल डेव एनवायरनमेंट और स्थानीय सैंडबॉक्सिंग में एम्बेड करें।

इंस्टॉल करें

brew install smol-machines/tap/smolvm                  # macOS (Homebrew)
curl -sSL https://smolmachines.com/install.sh | bash   # macOS + Linux

Windows: windows-x86_64 release को unzip करें और smolvm.exe चलाएँ (Windows Hypervisor Platform की आवश्यकता है)। Coding agents: इंस्टॉल करने के बाद हर कमांड जानने के लिए smolvm --help चलाएँ।

मनुष्यों और agents के लिए दस्तावेज़ docs/ में हैं, प्रत्येक कार्य के लिए एक फ़ोल्डर: तथ्यों के साथ एक README.md और एक SKILL.md जिसका agent अनुसरण कर सकता है, उसके scripts के साथ, प्रत्येक सुविधा के संदर्भ पृष्ठ के बगल में।

Quick Start

smolvm machine run --net --image alpine -- uname -a          # one-off VM, removed on exit
smolvm machine run --net -it --image alpine -- /bin/sh       # interactive shell

लोकल

अपने लैपटॉप या अपने सर्वर पर मुफ़्त, अपने स्वयं के कर्नेल वाले असली VM। ये एक सेकंड से भी कम समय में बूट होते हैं, और मेमोरी लोचदार होती है, इसलिए होस्ट केवल उतनी ही मेमोरी आवंटित करता है जितनी गेस्ट उपयोग करता है। मशीनें रीस्टार्ट के बाद भी बनी रहती हैं, और कोई भी OCI इमेज काम करती है, जिनमें आपके द्वारा लोकल रूप से बनाई गई इमेजें भी शामिल हैं।

smolvm machine create --net --name dev && smolvm machine start --name dev
smolvm machine exec --name dev -- apk add git
docker save myapp | smolvm machine run --image - -- ./app    # local image, no registry

एक Smolfile में मशीन घोषित करें: इमेज, संसाधन, पोर्ट, माउंट और नेटवर्क नीति एक ही चेक-इन की गई फ़ाइल में।

एम्बेड करने योग्य

एक ही Machine API से अपने स्वयं के कोड से मशीनों को चलाएँ। SDKs आपकी प्रक्रिया में बिना किसी डेमॉन के चलते हैं, स्थानीय रूप से या smol cloud पर।

npm install smolmachines     # Node / TypeScript
pip install smolmachines     # Python
cargo add smolmachines       # Rust
import { Machine } from 'smolmachines';

const m = await Machine.create({ image: 'python:3.12-alpine', network: true });
const r = await m.exec(['python3', '-c', 'print(2 ** 10)']);
console.log(r.stdout); // 1024
await m.delete();

स्रोत और दस्तावेज़: smol-machines/smol · smolmachines.com/docs/sdk

Branchable

एक चल रही मशीन को निष्पादन के बीच में सहेजें, उसे रिवाइंड करें, या उसकी प्रतियाँ बनाएँ जो उसी बिंदु से चलती रहें। चेकपॉइंट RAM, CPU स्थिति और डिस्क को कैप्चर करते हैं; ब्रांच एक लाइव मशीन के copy-on-write चाइल्ड होते हैं।

smolvm machine create --net --name agent --image alpine
smolvm machine start --name agent --branchable
smolvm machine branch --from agent --name try-1                   # live copy-on-write child
smolvm machine checkpoint --name agent -o agent.checkpoint        # save it, processes and all
smolvm machine create --name agent2 --from agent.checkpoint       # resume later or elsewhere

--from <checkpoint> --at '~N' के साथ किसी पुराने जनरेशन पर रिवाइंड करें (देखें machine checkpoint-log), और pause and resume के साथ निष्पादन खोए बिना रोकें। arm64 Mac पर लिया गया चेकपॉइंट arm64 Linux पर फिर से शुरू होता है, देखें Moving a running machine from a Mac to Linux। अधिक जानकारी Branching और incremental checkpoints में।

पोर्टेबल

किसी मशीन को, चाहे आप इसे कैसे भी सेट करें, एक ही .smolmachine फ़ाइल में पैक करें। इसे किसी भी OCI रजिस्ट्री पर पुश करें, या इसे एक स्व-निहित निष्पादन योग्य के रूप में चलाएँ जो बिना कुछ इंस्टॉल किए 200 ms से कम में बूट हो जाता है।

smolvm machine stop --name dev && smolvm pack create --from-vm dev -o dev
smolvm pack push --file dev.smolmachine ghcr.io/you/dev:v1
smolvm pack create --image python:3.12-alpine -o ./python312
./python312 run -- python3 --version

चेकपॉइंट्स भी पोर्टेबल हैं: किसी एक को दूसरे होस्ट पर या smol क्लाउड पर रिस्टोर करें।

सुरक्षित

प्रत्येक वर्कलोड को अपने कर्नेल वाला हार्डवेयर-आइसोलेटेड VM मिलता है। नेटवर्किंग डिफ़ॉल्ट रूप से बंद रहती है, ईग्रेस को नामित होस्ट्स तक सीमित किया जा सकता है, और कोड किसी क्रेडेंशियल का उपयोग किए बिना उसे पढ़े ही नहीं सकता।

सुरक्षा एक साझा ज़िम्मेदारी है। smolvm सीमा प्रदान करता है: प्रत्येक वर्कलोड के लिए एक अलग VM और कर्नेल, जिसमें कुछ भी होस्ट तक नहीं पहुँचता जब तक आप अनुमति न दें। वह सीमा क्या पार करेगा, यह आप तय करते हैं। आपके द्वारा माउंट किया गया प्रत्येक फ़ोल्डर, खोला गया पोर्ट, अनुमत किया गया होस्ट, और फ़ॉरवर्ड किया गया सीक्रेट या SSH एजेंट वह चीज़ बन जाता है जिसका उपयोग वर्कलोड कर सकता है, इसलिए किसी अविश्वसनीय वर्कलोड को केवल वही दें जिसकी उसे आवश्यकता है।

smolvm machine run --net --image alpine --allow-host registry.npmjs.org -- wget -qO- https://google.com   # blocked
smolvm machine run --net --image alpine --allow-host-pattern registry.npmjs.org -- wget -qO- https://registry.npmjs.org   # exact host only
NOTION_API_KEY=secret_… smolvm machine run --net --image alpine \
  --credential [email protected] -- sh -c 'echo $NOTION_API_KEY'   # a placeholder

credential substitution और security model देखें। केवल सबडोमेन की अनुमति देने के लिए --allow-host-pattern '*.example.com' का उपयोग करें; --allow-host example.com एपेक्स और उसके सबडोमेन की अनुमति देता है। smolvm machine update प्रविष्टियाँ जोड़ता है (--allow-host, --allow-host-pattern, --allow-cidr) और हटाता है (--remove-allow-host, कोई होस्ट या पैटर्न जैसे उसे जोड़ा गया था; --remove-allow-cidr), एक चल रही मशीन पर भी जिसे अनुमति सूची के साथ शुरू किया गया था: एक अनुदान अगले कनेक्शन या लुकअप पर लागू होता है, और हटाए गए होस्ट के सीखे गए पते उसके साथ चले जाते हैं।

यह कैसे काम करता है

श्रेणियाँ