アップデート一覧に戻る
New releaseOct 17, 2026

smolvm v1.30.1

ローカルでAgentを安全に実行するための、埋め込み可能でポータブル、分岐可能な仮想マシン。

共有

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 のリリースを解凍し、smolvm.exe を実行します(Windows Hypervisor Platform が必要です)。コーディングエージェントの場合: インストール後に smolvm --help を実行すると、すべてのコマンドを確認できます。

人間とエージェント向けのドキュメントは docs/ にあり、タスクごとに1つのフォルダがあります。各フォルダには事実をまとめた README.md と、エージェントが従える SKILL.md がそのスクリプトとともに含まれ、各機能のリファレンスページの隣に置かれています。

クイックスタート

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で、ノートPCや自分のサーバー上で無料で利用できます。起動は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    # local image, no registry

Smolfile でマシンを宣言します。イメージ、リソース、ポート、マウント、ネットワークポリシーを 1 つのチェックイン済みファイルに記述します。

組み込み可能

1 つの 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

Branchable

実行中のマシンを途中で保存し、巻き戻したり、同じ地点から実行を継続するコピーへ分岐させたりできます。チェックポイントはRAM、CPU状態、ディスクをキャプチャします。ブランチは、稼働中のマシンからコピーオンライト方式で派生した子マシンです。

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 cloud上で復元できます。

安全

各ワークロードには、独自のカーネルを持つハードウェア分離された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

認証情報の置換とセキュリティモデルを参照してください。 サブドメインのみを許可するには --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)します。これは許可リスト付きで起動された 実行中のマシンにも適用されます。許可は次の接続またはルックアップに適用され、削除されたホストの学習済みアドレスもそれに伴って削除されます。

仕組み

各ワークロードは、Hypervisor.framework(macOS)、KVM(Linux)、または Windows Hypervisor Platform(Windows)上で独自のゲストカーネルを持つハードウェア仮想化 VM 内で実行されます。libkrun が VMM であり、libkrunfw がゲストカーネルを提供します。イメージは OCI 形式を使用するため、Docker Hub、ghcr.io、その他のレジストリ上のあらゆるものが Docker デーモンなしでマイクロ VM として起動します。

デフォルト: 4 vCPU、8 GiB RAM。メモリは virtio balloon により伸縮自在で、アイドル状態の vCPU はハイパーバイザー内でスリープするため、過剰なプロビジョニングによるコストはほとんどありません。--cpus と --mem で上書きできます。

比較

smolvmコンテナColimaQEMUFirecrackerKata
ワークロード境界VM + ゲストカーネル名前空間 + 共有カーネル共有 VM 内の名前空間VM + ゲストカーネルVM + ゲストカーネルコンテナごとの VM
起動時間エージェント準備完了まで <200ms約100ms約数秒約15〜30秒<125ms約500ms
アーキテクチャライブラリ (libkrun)デーモンデーモン (VM 内)プロセスプロセスランタイムスタック
ワークロードごとの VMありなしなし (共有)ありありあり
macOS ネイティブありDocker VM 経由あり (krunkit)ありなしなし
組み込み可能 SDKありなしなしなしなしなし
ポータブルな成果物.smolmachineイメージ (デーモンが必要)なしなしなしなし

プラットフォームサポート

ホストゲスト要件
macOS Apple Siliconarm64 LinuxmacOS 11+
macOS Intelx86_64 Linuxリリースビルドは公開されていません。未テスト
Linux x86_64x86_64 LinuxKVM (/dev/kvm)
Linux aarch64aarch64 LinuxKVM (/dev/kvm)
Windows x86_64x86_64 LinuxWindows Hypervisor Platform (WHP) が有効

カテゴリ