업데이트로 돌아가기
New releaseSep 13, 2026

smolvm v1.15.0

로컬에서 에이전트를 안전하게 실행할 수 있는 임베드 가능하고, 이식성이 뛰어나며, 분기 가능한 가상 머신입니다.

공유

smol machines

Discord Release License npm PyPI crates.io

smolvm

AI 에이전트를 위한 브랜치 가능한 microVM. 경량 가상 머신을 소프트웨어에 임베드하고, 이식 가능한 개발 환경과 로컬 샌드박싱을 제공합니다.

설치

curl -sSL https://smolmachines.com/install.sh | bash   # macOS + Linux

Windows: windows-x86_64 릴리스의 압축을 풀고 smolvm.exe를 실행하세요 (Windows Hypervisor Platform 필요). 코딩 에이전트: 설치 후 smolvm --help를 실행하면 모든 명령을 확인할 수 있습니다.

빠른 시작

smolvm machine run --net --image alpine -- uname -a          # 일회성 VM, 종료 시 제거됨
smolvm machine run --net -it --image alpine -- /bin/sh       # 대화형 셸

로컬

자체 커널을 가진 실제 VM으로, 노트북이나 자체 서버에서 무료로 사용할 수 있습니다. 1초 이내에 부팅되며 메모리는 탄력적이어서 호스트는 게스트가 사용하는 만큼만 커밋합니다. 머신은 재시작 후에도 유지되며, 로컬에서 빌드한 이미지를 포함한 모든 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    # 로컬 이미지, 레지스트리 불필요

Smolfile에 머신을 선언하세요: 이미지, 리소스, 포트, 마운트, 네트워크 정책을 하나의 체크인된 파일에 담을 수 있습니다.

임베드 가능

하나의 Machine API로 자체 코드에서 머신을 구동하세요. SDK는 데몬 없이 로컬 또는 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

브랜치 가능

실행 중인 머신을 실행 도중에 저장하고, 되감거나, 같은 지점에서 계속 실행되는 복사본으로 브랜치할 수 있습니다. 체크포인트는 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                   # 라이브 copy-on-write 자식
smolvm machine checkpoint --name agent -o agent.checkpoint        # 프로세스를 포함한 전체 저장
smolvm machine create --name agent2 --from agent.checkpoint       # 나중에 또는 다른 곳에서 재개

--from <checkpoint> --at '~N'으로 이전 세대로 되감을 수 있으며(machine checkpoint-log 참조), 일시정지 및 재개로 실행을 잃지 않고 중지할 수 있습니다. 자세한 내용은 브랜칭과 증분 체크포인트를 참조하세요.

이식 가능

어떻게 설정했든 머신을 단일 .smolmachine 파일로 패키징하세요. 모든 OCI 레지스트리에 푸시하거나, 설치할 필요 없이 200ms 이내에 부팅되는 자체 포함 실행 파일로 실행할 수 있습니다.

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 cloud에서 복원할 수 있습니다.

안전

각 워크로드는 자체 커널을 가진 하드웨어 격리 VM에서 실행됩니다. 네트워킹은 기본적으로 꺼져 있고, 이그레스는 지정된 호스트로 제한할 수 있으며, 코드는 자격 증명을 읽지 않고도 사용할 수 있습니다.

안전은 공동의 책임입니다. smolvm은 경계를 제공합니다: 모든 워크로드에 대해 별도의 VM과 커널을 제공하며, 허용하지 않는 한 호스트에 아무것도 도달하지 않습니다. 그 경계를 넘는 것은 사용자가 결정합니다. 마운트하는 모든 폴더, 여는 포트, 허용하는 호스트, 전달하는 시크릿 또는 SSH 에이전트는 워크로드가 사용할 수 있게 되므로, 신뢰할 수 없는 워크로드에는 필요한 것만 제공하세요.

smolvm machine run --net --image alpine --allow-host registry.npmjs.org -- wget -qO- https://google.com   # 차단됨
smolvm machine run --net --image alpine --allow-host-pattern registry.npmjs.org -- wget -qO- https://registry.npmjs.org   # 정확한 호스트만
NOTION_API_KEY=secret_… smolvm machine run --net --image alpine \
  --credential [email protected] -- sh -c 'echo $NOTION_API_KEY'   # 플레이스홀더

자격 증명 대체와 보안 모델을 참조하세요. --allow-host-pattern '*.example.com'을 사용하면 서브도메인만 허용할 수 있습니다. 이전 --allow-host example.com은 계속해서 apex와 서브도메인 모두를 허용합니다. 중지된 머신의 허용 목록은 smolvm machine update로 변경할 수 있습니다 (--allow-host, --allow-host-pattern, --allow-cidr 및 이들의 --remove- 형식).

작동 방식

각 워크로드는 Hypervisor.framework(macOS), KVM(Linux), 또는 Windows Hypervisor Platform(Windows)에서 자체 게스트 커널을 가진 하드웨어 가상화 VM에서 실행됩니다. libkrun이 VMM이고 libkrunfw가 게스트 커널을 제공합니다. 이미지는 OCI 형식을 사용하므로 Docker Hub, ghcr.io 또는 다른 레지스트리의 모든 것이 Docker 데몬 없이 microVM으로 부팅됩니다.

기본값: 4 vCPU, 8 GiB RAM. 메모리는 virtio balloon을 통해 탄력적이며 유휴 vCPU는 하이퍼바이저에서 절전하므로 과다 프로비저닝 비용이 거의 없습니다. --cpus와 --mem으로 재정의할 수 있습니다.

비교

smolvm컨테이너ColimaQEMUFirecrackerKata
워크로드 경계VM + 게스트 커널네임스페이스 + 공유 커널공유 VM 내부 네임스페이스VM + 게스트 커널VM + 게스트 커널컨테이너당 VM
부팅 시간<200ms~100ms~수 초~15-30s<125ms~500ms
아키텍처라이브러리 (libkrun)데몬데몬 (VM 내)프로세스프로세스런타임 스택
워크로드별 VM예아니오아니오 (공유)예예예
macOS 네이티브예Docker VM 경유예 (krunkit)예아니오아니오
임베드 가능 SDK예아니오아니오아니오아니오아니오
이식 가능 아티팩트.smolmachine이미지 (데몬 필요)아니오아니오아니오아니오

플랫폼 지원

호스트게스트요구 사항
macOS Apple Siliconarm64 LinuxmacOS 11+
macOS Intelx86_64 LinuxmacOS 11+ (미검증)
Linux x86_64x86_64 LinuxKVM (/dev/kvm)
Linux aarch64aarch64 LinuxKVM (/dev/kvm)
Windows x86_64x86_64 LinuxWindows Hypervisor Platform (WHP) 활성화

Windows는 --freeze-source를 사용한 이식 가능 체크포인트, 일시정지/재개, 브랜치를 지원합니다. GPU 가속은 여전히 사용할 수 없습니다. 알려진 제한 사항을 참조하세요.

더 보기

카테고리