smol-machines/smolvmPublic

Portable, lightweight, self-contained virtual machine.

AI summary: A minimalistic, highly embeddable virtual machine designed for resource-constrained environments.

Stars
4.6K
+6 today
Forks
219
Watchers
12
Open issues
28
Open PRs
44
Contributors
~33
Commits
1.2K
Branches
429

RustApache-2.0Created Dec 18, 2025Last push 1d agoLatest release v1.7.4+71 stars this week+71 this month

Star history

since Feb 1, 2026
02K4KFeb 2026Apr 2026Jun 2026Aug 2026
4.6K stars as of Aug 6, 2026, tracked back to Feb 1, 2026. Historical curve reconstructed from public GitHub event archives, calibrated to the current total.

Contribution activity

commits per day, last 52 weeks
AugSepOctNovDecJanFebMarAprMayJunJulAugMonWedFri2025-08-09: 0 commits2025-08-10: 0 commits2025-08-11: 0 commits2025-08-12: 0 commits2025-08-13: 0 commits2025-08-14: 0 commits2025-08-15: 0 commits2025-08-16: 0 commits2025-08-17: 0 commits2025-08-18: 0 commits2025-08-19: 0 commits2025-08-20: 0 commits2025-08-21: 0 commits2025-08-22: 0 commits2025-08-23: 0 commits2025-08-24: 0 commits2025-08-25: 0 commits2025-08-26: 0 commits2025-08-27: 0 commits2025-08-28: 0 commits2025-08-29: 0 commits2025-08-30: 0 commits2025-08-31: 0 commits2025-09-01: 0 commits2025-09-02: 0 commits2025-09-03: 0 commits2025-09-04: 0 commits2025-09-05: 0 commits2025-09-06: 0 commits2025-09-07: 0 commits2025-09-08: 0 commits2025-09-09: 0 commits2025-09-10: 0 commits2025-09-11: 0 commits2025-09-12: 0 commits2025-09-13: 0 commits2025-09-14: 0 commits2025-09-15: 0 commits2025-09-16: 0 commits2025-09-17: 0 commits2025-09-18: 0 commits2025-09-19: 0 commits2025-09-20: 0 commits2025-09-21: 0 commits2025-09-22: 0 commits2025-09-23: 0 commits2025-09-24: 0 commits2025-09-25: 0 commits2025-09-26: 0 commits2025-09-27: 0 commits2025-09-28: 0 commits2025-09-29: 0 commits2025-09-30: 0 commits2025-10-01: 0 commits2025-10-02: 0 commits2025-10-03: 0 commits2025-10-04: 0 commits2025-10-05: 0 commits2025-10-06: 0 commits2025-10-07: 0 commits2025-10-08: 0 commits2025-10-09: 0 commits2025-10-10: 0 commits2025-10-11: 0 commits2025-10-12: 0 commits2025-10-13: 0 commits2025-10-14: 0 commits2025-10-15: 0 commits2025-10-16: 0 commits2025-10-17: 0 commits2025-10-18: 0 commits2025-10-19: 0 commits2025-10-20: 0 commits2025-10-21: 0 commits2025-10-22: 0 commits2025-10-23: 0 commits2025-10-24: 0 commits2025-10-25: 0 commits2025-10-26: 0 commits2025-10-27: 0 commits2025-10-28: 0 commits2025-10-29: 0 commits2025-10-30: 0 commits2025-10-31: 0 commits2025-11-01: 0 commits2025-11-02: 0 commits2025-11-03: 0 commits2025-11-04: 0 commits2025-11-05: 0 commits2025-11-06: 0 commits2025-11-07: 0 commits2025-11-09: 0 commits2025-11-10: 0 commits2025-11-11: 0 commits2025-11-12: 0 commits2025-11-13: 0 commits2025-11-14: 0 commits2025-11-15: 0 commits2025-11-16: 0 commits2025-11-17: 0 commits2025-11-18: 0 commits2025-11-19: 0 commits2025-11-20: 0 commits2025-11-21: 0 commits2025-11-22: 0 commits2025-11-23: 0 commits2025-11-24: 0 commits2025-11-25: 0 commits2025-11-26: 0 commits2025-11-27: 0 commits2025-11-28: 0 commits2025-11-29: 0 commits2025-11-30: 0 commits2025-12-01: 0 commits2025-12-02: 0 commits2025-12-03: 0 commits2025-12-04: 0 commits2025-12-05: 0 commits2025-12-06: 0 commits2025-12-07: 0 commits2025-12-08: 0 commits2025-12-09: 0 commits2025-12-10: 0 commits2025-12-11: 0 commits2025-12-12: 0 commits2025-12-13: 0 commits2025-12-14: 0 commits2025-12-15: 0 commits2025-12-16: 0 commits2025-12-17: 0 commits2025-12-18: 0 commits2025-12-19: 0 commits2025-12-20: 0 commits2025-12-21: 0 commits2025-12-22: 0 commits2025-12-23: 0 commits2025-12-24: 0 commits2025-12-25: 0 commits2025-12-26: 0 commits2025-12-27: 0 commits2025-12-28: 0 commits2025-12-29: 0 commits2025-12-30: 0 commits2025-12-31: 0 commits2026-01-01: 0 commits2026-01-02: 0 commits2026-01-03: 0 commits2026-01-04: 0 commits2026-01-05: 0 commits2026-01-06: 0 commits2026-01-07: 0 commits2026-01-08: 0 commits2026-01-09: 0 commits2026-01-10: 0 commits2026-01-11: 0 commits2026-01-12: 0 commits2026-01-13: 0 commits2026-01-14: 4 commits2026-01-15: 3 commits2026-01-16: 0 commits2026-01-17: 1 commit2026-01-18: 4 commits2026-01-19: 2 commits2026-01-20: 1 commit2026-01-21: 4 commits2026-01-22: 18 commits2026-01-23: 5 commits2026-01-24: 17 commits2026-01-25: 3 commits2026-01-26: 14 commits2026-01-27: 2 commits2026-01-28: 10 commits2026-01-29: 13 commits2026-01-30: 3 commits2026-01-31: 6 commits2026-02-01: 9 commits2026-02-02: 6 commits2026-02-03: 4 commits2026-02-04: 7 commits2026-02-05: 16 commits2026-02-06: 1 commit2026-02-07: 0 commits2026-02-08: 3 commits2026-02-09: 15 commits2026-02-10: 2 commits2026-02-11: 8 commits2026-02-12: 2 commits2026-02-13: 0 commits2026-02-14: 3 commits2026-02-15: 0 commits2026-02-16: 0 commits2026-02-17: 1 commit2026-02-18: 7 commits2026-02-19: 11 commits2026-02-20: 9 commits2026-02-21: 14 commits2026-02-22: 0 commits2026-02-23: 0 commits2026-02-24: 3 commits2026-02-25: 4 commits2026-02-26: 1 commit2026-02-27: 2 commits2026-02-28: 1 commit2026-03-01: 14 commits2026-03-02: 14 commits2026-03-03: 6 commits2026-03-04: 2 commits2026-03-05: 0 commits2026-03-06: 2 commits2026-03-07: 1 commit2026-03-08: 3 commits2026-03-09: 3 commits2026-03-10: 1 commit2026-03-11: 3 commits2026-03-12: 0 commits2026-03-13: 1 commit2026-03-14: 0 commits2026-03-15: 0 commits2026-03-16: 0 commits2026-03-17: 3 commits2026-03-18: 1 commit2026-03-19: 1 commit2026-03-20: 0 commits2026-03-21: 0 commits2026-03-22: 0 commits2026-03-23: 1 commit2026-03-24: 0 commits2026-03-25: 4 commits2026-03-26: 2 commits2026-03-27: 0 commits2026-03-28: 1 commit2026-03-29: 0 commits2026-03-30: 0 commits2026-03-31: 1 commit2026-04-01: 8 commits2026-04-02: 1 commit2026-04-03: 2 commits2026-04-04: 7 commits2026-04-05: 7 commits2026-04-06: 10 commits2026-04-07: 6 commits2026-04-08: 6 commits2026-04-09: 0 commits2026-04-10: 5 commits2026-04-11: 6 commits2026-04-12: 16 commits2026-04-13: 12 commits2026-04-14: 22 commits2026-04-15: 11 commits2026-04-16: 10 commits2026-04-17: 4 commits2026-04-18: 13 commits2026-04-19: 5 commits2026-04-20: 7 commits2026-04-21: 5 commits2026-04-22: 7 commits2026-04-23: 3 commits2026-04-24: 1 commit2026-04-25: 1 commit2026-04-26: 0 commits2026-04-27: 8 commits2026-04-28: 1 commit2026-04-29: 0 commits2026-04-30: 2 commits2026-05-01: 0 commits2026-05-02: 0 commits2026-05-03: 0 commits2026-05-04: 0 commits2026-05-05: 1 commit2026-05-06: 1 commit2026-05-07: 0 commits2026-05-08: 4 commits2026-05-09: 1 commit2026-05-10: 2 commits2026-05-11: 9 commits2026-05-12: 4 commits2026-05-13: 6 commits2026-05-14: 3 commits2026-05-15: 2 commits2026-05-16: 1 commit2026-05-17: 1 commit2026-05-18: 12 commits2026-05-19: 3 commits2026-05-20: 2 commits2026-05-21: 4 commits2026-05-22: 3 commits2026-05-23: 1 commit2026-05-24: 1 commit2026-05-25: 0 commits2026-05-26: 3 commits2026-05-27: 1 commit2026-05-28: 0 commits2026-05-29: 4 commits2026-05-30: 7 commits2026-05-31: 15 commits2026-06-01: 9 commits2026-06-02: 16 commits2026-06-03: 7 commits2026-06-04: 10 commits2026-06-05: 9 commits2026-06-06: 1 commit2026-06-07: 0 commits2026-06-08: 0 commits2026-06-09: 0 commits2026-06-10: 4 commits2026-06-11: 8 commits2026-06-12: 4 commits2026-06-13: 10 commits2026-06-14: 3 commits2026-06-15: 10 commits2026-06-16: 1 commit2026-06-17: 8 commits2026-06-18: 0 commits2026-06-19: 3 commits2026-06-20: 10 commits2026-06-21: 7 commits2026-06-22: 10 commits2026-06-23: 12 commits2026-06-24: 3 commits2026-06-25: 6 commits2026-06-26: 7 commits2026-06-27: 16 commits2026-06-28: 14 commits2026-06-29: 2 commits2026-06-30: 13 commits2026-07-01: 20 commits2026-07-02: 18 commits2026-07-03: 6 commits2026-07-04: 11 commits2026-07-05: 3 commits2026-07-06: 1 commit2026-07-07: 0 commits2026-07-08: 2 commits2026-07-09: 11 commits2026-07-10: 11 commits2026-07-11: 33 commits2026-07-12: 20 commits2026-07-13: 20 commits2026-07-14: 19 commits2026-07-15: 13 commits2026-07-16: 7 commits2026-07-17: 3 commits2026-07-18: 6 commits2026-07-19: 17 commits2026-07-20: 2 commits2026-07-21: 11 commits2026-07-22: 12 commits2026-07-23: 3 commits2026-07-24: 7 commits2026-07-25: 1 commit2026-07-26: 3 commits2026-07-27: 14 commits2026-07-28: 7 commits2026-07-29: 2 commits2026-07-30: 4 commits2026-07-31: 8 commits2026-08-01: 9 commits2026-08-02: 13 commits2026-08-03: 10 commits2026-08-04: 7 commits2026-08-05: 3 commits2026-08-06: 0 commits2026-08-07: 0 commits2026-08-08: 0 commits
1,120 commits in the last yearLessMore

Signals and awards

derived from tracked data
  • Very active

    1,120 commits in 52 weeks

  • Permissive license

    Apache-2.0

  • Continuous integration

    Automated checks passing

What smolvm does

smolvm is an ultra-lightweight virtual machine engineered specifically for environments where memory and processing power are severely limited. It provides a tiny, custom instruction set architecture (ISA) that executes extremely fast while maintaining a minuscule memory footprint. The VM is designed to be easily embedded into larger applications, microcontrollers, or web environments (via WebAssembly). By stripping away the bloat of traditional runtimes, smolvm allows developers to safely execute untrusted bytecode, build scripting engines for embedded devices, or implement custom logic layers with absolute minimal overhead.

smolvm is designed for embedded systems engineers, game engine developers, and system architects who need a fast, secure, and incredibly small execution environment for custom logic.

  • Ultra-low footprint: Designed to operate strictly within single-digit kilobytes of RAM, making it ideal for microcontrollers.
  • Custom RISC-like ISA: Utilizes a simplified, highly optimized instruction set that is easy to compile to and extremely fast to interpret.
  • Easy embedding: Exposes a clean, simple C API allowing seamless integration into game engines, IoT devices, or broader software systems.
  • Deterministic execution: Guarantees consistent execution states and timing, essential for simulations and constrained environments.
  • Sandboxed environment: Safely isolates executed bytecode from the host system, allowing for secure execution of user-generated scripts.

Where teams use it

IoT device scripting

Hardware developers can embed smolvm into smart devices, allowing for over-the-air behavioral updates without flashing new firmware.

Game engine modding

Game developers can provide a secure, sandboxed scripting environment for modders to write custom game logic without risking engine stability.

Smart contract execution

Blockchain researchers can utilize the deterministic and lightweight nature of the VM as a foundation for executing smart contracts.

Getting started: make && ./smolvm example.bin

README

main branch

smol machines

Discord Release License

smolvm

Ship and run software with isolation by default.

This is a CLI tool that lets you:

  1. Manage and run custom Linux virtual machines locally with: sub-second cold start, cross-platform (macOS, Linux, Windows), elastic memory usage.
  2. Pack a stateful virtual machine into a single file (.smolmachine) to rehydrate on any supported platform.

Install

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

# for coding agents — install + discover all commands
curl -sSL https://smolmachines.com/install.sh | bash && smolvm --help

Or download from GitHub Releases, and place it into ~/.local/share/.

Windows: download the windows-x86_64 release (bundles krun.dll + libkrunfw.dll), unzip it, and run smolvm.exe. Requires the Windows Hypervisor Platform (WHP) feature enabled.

Quick Start

# run a command in an ephemeral VM (cleaned up after exit)
smolvm machine run --net --image alpine -- sh -c "echo 'Hello world from a microVM' && uname -a"

# interactive shell
smolvm machine run --net -it --image alpine -- /bin/sh
# inside the VM: apk add sl && sl && exit

Use This For

Sandbox untrusted code — run untrusted programs in a hardware-isolated VM. Host filesystem, network, and credentials are separated by a hypervisor boundary.

# network is off by default — untrusted code can't phone home
smolvm machine run --image alpine -- nslookup example.com
# fails — no network access

# lock down egress — only allow specific hosts
smolvm machine run --net --image alpine --allow-host registry.npmjs.org -- wget -q -O /dev/null https://registry.npmjs.org
# works — allowed host

smolvm machine run --net --image alpine --allow-host registry.npmjs.org -- wget -q -O /dev/null https://google.com
# fails — not in allow list

Pack into portable executables — turn any workload into a self-contained binary. All dependencies are pre-baked — no install step, no runtime downloads, boots in <200ms.

smolvm pack create --image python:3.12-alpine -o ./python312
./python312 run -- python3 --version
# Python 3.12.x — isolated, no pyenv/venv/conda needed

Use local container images — for CI, air-gapped hosts, and fast iteration. Feed --image a docker save / podman save archive, pipe one on stdin, or point it at an unpacked rootfs directory. Image work is delegated to your container tooling; smolvm just boots the result.

# build locally, run in the VM with no push/pull
docker build -t myapp .
docker save myapp | smolvm machine run --image - -- ./app

# from an archive file (boots with no network)
smolvm machine run --image ./myapp.tar -- ./app

# from an already-unpacked rootfs directory
smolvm machine run --image ./rootfs/ -- ./app

Persistent machines for development — create, stop, start. Installed packages survive restarts.

smolvm machine create --net --name myvm
smolvm machine start --name myvm
smolvm machine exec --name myvm -- apk add sl
smolvm machine exec --name myvm -it -- /bin/sh
# inside: sl, ls, uname -a — type 'exit' to leave
smolvm machine stop --name myvm

Use git and SSH without copying private keys into the guest. Forward your host SSH agent into the VM. The guest can ask the agent to sign with any forwarded key while the socket is available, so forward it only to workloads you trust. Requires an SSH agent running on your host (ssh-add -l to check).

smolvm machine run --ssh-agent --net --image alpine -- sh -c "apk add -q openssh-client && ssh-add -l"
# lists your host keys; private key material remains in the host agent

smolvm machine exec --name myvm -- git clone git@github.com:org/private-repo.git

Declare environments with a Smolfile — reproducible VM config in a simple TOML file.

image = "python:3.12-alpine"
net = true

[network]
allow_hosts = ["api.stripe.com", "db.example.com"]

[dev]
init = ["pip install -r requirements.txt"]
volumes = ["./src:/app"]

[auth]
ssh_agent = true
smolvm machine create --name myvm -s Smolfile
smolvm machine start --name myvm

More examples: python · node · doom

How It Works

Each workload runs in a hardware-virtualized VM with its own guest kernel on Hypervisor.framework (macOS), KVM (Linux), or the Windows Hypervisor Platform (Windows). libkrun is the VMM and libkrunfw supplies the guest kernel. Pack it into a .smolmachine and it runs anywhere the host architecture matches, with zero dependencies.

Images use the OCI format — the same open standard Docker uses. Any image on Docker Hub, ghcr.io, or other OCI registries can be pulled and booted as a microVM. No Docker daemon required.

Defaults: 4 vCPUs, 8 GiB RAM. Memory is elastic via virtio balloon — the host only commits what the guest actually uses and reclaims the rest automatically. vCPU threads sleep in the hypervisor when idle, so over-provisioning has near-zero cost. Override with --cpus and --mem.

Security Model

smolvm strengthens the guest/host boundary by giving each workload a separate VM and guest kernel. It is not, by itself, a hardened multi-user control plane:

  • The smolvm CLI and VMM processes run with the permissions of the invoking host user. That user account, the host OS, the hypervisor backend, libkrun, and smolvm are in the trusted computing base.
  • Host directories passed with --volume are intentionally exposed to the guest with the requested access. Do not mount secrets or sensitive paths into an untrusted workload.
  • --ssh-agent does not copy private key material into the guest, but it grants the guest access to the forwarded agent socket and therefore the ability to request signatures while the VM is running.
  • Networking is disabled by default. Enabling --net, port forwarding, or host services expands the workload's reachable surface.
  • In standalone local use, smolvm's state and control endpoints are scoped to the invoking user's environment. For hostile local co-tenants, add host-level account separation and OS confinement around the VMM process. This section does not describe the separate smolmachines cloud control plane or its tenant-isolation guarantees.
  • Release archives publish SHA-256 checksums and the installer rejects a mismatch when the checksum file is available. Releases are not currently signed or accompanied by provenance attestations, and the installer permits installation when the checksum file cannot be downloaded.

Treat root in the guest as untrusted. The VM boundary limits its direct access to the host, while every explicitly forwarded capability, including mounts, network access, ports, and SSH agent access, becomes part of the workload's authority.

Comparison

smolvm Containers Colima QEMU Firecracker Kata
Workload boundary VM + guest kernel Namespace + shared kernel Namespace inside shared VM VM + guest kernel VM + guest kernel VM per container
Boot time <200ms ~100ms ~seconds ~15-30s <125ms ~500ms
Architecture Library (libkrun) Daemon Daemon (in VM) Process Process Runtime stack
Per-workload VMs Yes No No (shared) Yes Yes Yes
macOS native Yes Via Docker VM Yes (krunkit) Yes No No
Embeddable SDK Yes No No No No No
Portable artifacts .smolmachine Images (need daemon) No No No No

Platform Support

Host Guest Requirements
macOS Apple Silicon arm64 Linux macOS 11+
macOS Intel x86_64 Linux macOS 11+ (untested)
Linux x86_64 x86_64 Linux KVM (/dev/kvm)
Linux aarch64 aarch64 Linux KVM (/dev/kvm)
Windows x86_64 x86_64 Linux Windows Hypervisor Platform (WHP) enabled

Known Limitations

  • Network is opt-in (--net on machine create). TCP/UDP only, no ICMP.
  • Volume mounts: directories only (no single files). Mounting at /workspace (-v /host/dir:/workspace) takes priority over the default storage-disk workspace — your host directory is used instead.
  • macOS: binary must be signed with Hypervisor.framework entitlements.
  • --ssh-agent requires an SSH agent running on the host (SSH_AUTH_SOCK must be set).
  • GPU acceleration requires libkrun built with GPU=1 and virglrenderer + a Vulkan driver on the host (see GPU Acceleration below).
  • Windows: --net works the same as on other platforms (virtio-net with inbound port-forwarding; TSI for outbound-only VMs), as do machine exec / interactive sessions and machine stats. Not yet available on Windows: GPU acceleration and machine fork / snapshot. Pack create needs storage-template.ext4 / overlay-template.ext4 next to smolvm.exe (Windows has no host mkfs.ext4).

GPU Acceleration

smolvm exposes the host GPU to guests via virtio-gpu / Venus (Vulkan-over-virtio). Guest workloads see a real Vulkan device; on Linux + Intel this renders as:

ANGLE (Intel, Vulkan 1.4 (Virtio-GPU Venus (Intel(R) UHD Graphics ...)), venus)

Host requirements

macOS — virglrenderer and MoltenVK are bundled in the smolvm distribution. No extra installs needed.

Linux — virglrenderer and a host Vulkan driver must be installed from the system package manager:

Distro Packages
Alpine apk add virglrenderer mesa-vulkan-intel (or mesa-vulkan-ati for AMD)
Debian/Ubuntu apt install virglrenderer0 mesa-vulkan-drivers

virglrenderer depends on libEGL and libdrm from the host GPU driver stack — these are hardware-specific and cannot be bundled. Any GPU-capable Linux host will already have them installed via its GPU driver.

Usage

# CLI
smolvm machine run --gpu --image alpine -- vulkaninfo --summary

# Smolfile
# gpu = true
# gpu_vram = 2048   # MiB, default 4096

The guest Vulkan loader must be pointed at the virtio ICD:

export VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/virtio_icd.x86_64.json

Headless browser example

See examples/headless-browser/ for a working Chromium setup using ANGLE + Venus for hardware-accelerated WebGL inside a headless VM.

CUDA API Remoting

--gpu and --cuda provide different interfaces. --gpu exposes Vulkan through virtio-gpu / Venus; it does not provide CUDA. --cuda enables CUDA API remoting: driverless guest shims forward CUDA calls over vsock to a host process, which executes them through the host's NVIDIA driver.

CUDA remoting requires an NVIDIA GPU and a working NVIDIA driver on the host. It is not GPU passthrough: the guest receives neither the physical device nor an NVIDIA driver.

The VM boundary still isolates the workload's CPU, memory, and filesystem. GPU access is mediated by host processes and the shared host GPU, so GPU isolation remains process-level rather than a hardware or VM boundary. Do not treat CUDA remoting as a hardened multi-tenant GPU isolation boundary.

See GPU access by API remoting: how a driverless microVM runs CUDA for the design, trade-offs, and comparison with passthrough.

Development

See docs/DEVELOPMENT.md.

Apache-2.0 · made by @binsquare · twitter · github

View on GitHub

Recent activity

commits and pull requests

Releases and announcements

107 total
  1. smolvm v1.7.4v1.7.4Aug 3, 2026207 downloads

    ## What's Changed * Ship the disk templates zstd-compressed and expand them to sparse files on first use by @BinSquare in https://github.com/smol-machines/smolvm/pull/771 * Copy the storage template by seeking between its data extents instead of scanning its whole logical size by @BinSquare in https://github.com/smol-machines/smolvm/pull/770 * Harden fused rollout lifecycle by @BinSquare in https://github.com/smol-machines/smolvm/pull/801 * Avoid copying CUDA module state for clone channels by @BinSquare in https://github.com/smol-machines/smolvm/pull/804 * Load device-resident LoRA policies through managed executors by @BinSquare in https://github.com/smol-machines/smolvm/pull/806 * Reject a registry-image machine that has no network at create instead of failing every start with a raw DNS error by @BinSquare in https://github.com/smol-machines/smolvm/pull/807 * Perform machine file reads and writes inside the running workload container so uploads are visible to exec by @BinSquare in https://github.com/smol-machines/smolvm/pull/810 * Reuse CUDA module handoffs across clone workers by @BinSquare in https://github.com/smol-machines/smolvm/pull/808 * Cache pulled OCI images on the hos

  2. smolvm v1.7.3v1.7.3Aug 3, 202627 downloads

    ## What's Changed * Ship the disk templates zstd-compressed and expand them to sparse files on first use by @BinSquare in https://github.com/smol-machines/smolvm/pull/771 * Copy the storage template by seeking between its data extents instead of scanning its whole logical size by @BinSquare in https://github.com/smol-machines/smolvm/pull/770 * Harden fused rollout lifecycle by @BinSquare in https://github.com/smol-machines/smolvm/pull/801 * Avoid copying CUDA module state for clone channels by @BinSquare in https://github.com/smol-machines/smolvm/pull/804 * Load device-resident LoRA policies through managed executors by @BinSquare in https://github.com/smol-machines/smolvm/pull/806 * Reject a registry-image machine that has no network at create instead of failing every start with a raw DNS error by @BinSquare in https://github.com/smol-machines/smolvm/pull/807 * Perform machine file reads and writes inside the running workload container so uploads are visible to exec by @BinSquare in https://github.com/smol-machines/smolvm/pull/810 * Reuse CUDA module handoffs across clone workers by @BinSquare in https://github.com/smol-machines/smolvm/pull/808 * Cache pulled OCI images on the hos

  3. smolvm v1.7.2v1.7.2Aug 1, 2026130 downloads

    ## What's Changed * Fix CUDA fork compatibility for vLLM workloads by @BinSquare in https://github.com/smol-machines/smolvm/pull/764 * Read older .smolmachine pack formats and point to a rebuild when a legacy pack cannot run by @BinSquare in https://github.com/smol-machines/smolvm/pull/768 * Remove agent helpers whose only remaining callers are their own unit tests by @NickyHeC in https://github.com/smol-machines/smolvm/pull/760 * Reclaim case-sensitive pack volumes on macOS that were left mounted by runs killed before releasing their lease by @BinSquare in https://github.com/smol-machines/smolvm/pull/769 * ci: widen Linux clippy/tests and guard the CUDA guest build by @NickyHeC in https://github.com/smol-machines/smolvm/pull/761 * fix: stream progress during detached local-archive start by @NickyHeC in https://github.com/smol-machines/smolvm/pull/699 * cudart: stub Runtime exports required by conda libtorch_cuda by @NickyHeC in https://github.com/smol-machines/smolvm/pull/638 * Construct the archive worker panic error with Error::other so the widened Linux clippy run passes by @BinSquare in https://github.com/smol-machines/smolvm/pull/772 * Improve CUDA fork-pool capacity and work

  4. smolvm v1.7.1v1.7.1Jul 28, 2026403 downloads

    ## What's Changed * chore(nix): bump flake to 1.7.0 by @BinSquare in https://github.com/smol-machines/smolvm/pull/753 * Don't fail the nix bump release job when Actions can't open the PR by @BinSquare in https://github.com/smol-machines/smolvm/pull/754 * Pin the CLI program name to smolvm in help output by @archsyscall in https://github.com/smol-machines/smolvm/pull/755 * Stop warning about missing packed assets when running the installer's own smolvm-bin by @BinSquare in https://github.com/smol-machines/smolvm/pull/759 * Add a node endpoint that pre-loads a .smolmachine artifact into the local blob cache by @BinSquare in https://github.com/smol-machines/smolvm/pull/763 * Bump libkrun and rebuild the bundled macOS, Linux, and Windows libraries by @BinSquare in https://github.com/smol-machines/smolvm/pull/767 * Bump the workspace to 1.7.1 for the next engine release by @BinSquare in https://github.com/smol-machines/smolvm/pull/765 ## New Contributors * @archsyscall made their first contribution in https://github.com/smol-machines/smolvm/pull/755 **Full Changelog**: https://github.com/smol-machines/smolvm/compare/v1.7.0...v1.7.1

  5. smolvm v1.7.0v1.7.0Jul 27, 2026174 downloads

    ## What's Changed * Bump the Nix flake to smolvm 1.6.0 by @BinSquare in https://github.com/smol-machines/smolvm/pull/625 * Fix the pacman repo build so it packages both architectures by @BinSquare in https://github.com/smol-machines/smolvm/pull/626 * Make VM boot failures diagnosable instead of opaque by @BinSquare in https://github.com/smol-machines/smolvm/pull/627 * docs: recommend the unix-socket docker endpoint; document the TCP alternative and its caveats by @BinSquare in https://github.com/smol-machines/smolvm/pull/621 * Add cuda to VmResources for CLI/SDK CUDA-over-vsock by @BinSquare in https://github.com/smol-machines/smolvm/pull/628 * CUDA fork independent serving: copy-on-fork isolation, graph mode, network transport by @BinSquare in https://github.com/smol-machines/smolvm/pull/629 * Detect a stale CUDA guest shim at boot instead of an opaque cuInit failure by @BinSquare in https://github.com/smol-machines/smolvm/pull/630 * feat: expose the docker-socket bridge in the machines HTTP API by @BinSquare in https://github.com/smol-machines/smolvm/pull/631 * Resolve a named config.User to a numeric uid for crun exec (#632) by @BinSquare in https://github.com/smol-machines/smol

Code frequency

additions and deletions
+22.3K-22.3KWeek of 2026-01-11: +17,705 linesWeek of 2026-01-11: -5,815 linesWeek of 2026-01-18: +12,350 linesWeek of 2026-01-18: -3,162 linesWeek of 2026-01-25: +13,202 linesWeek of 2026-01-25: -1,514 linesWeek of 2026-02-01: +8,508 linesWeek of 2026-02-01: -3,663 linesWeek of 2026-02-08: +5,951 linesWeek of 2026-02-08: -5,347 linesWeek of 2026-02-15: +4,586 linesWeek of 2026-02-15: -2,241 linesWeek of 2026-02-22: +1,476 linesWeek of 2026-02-22: -414 linesWeek of 2026-03-01: +5,229 linesWeek of 2026-03-01: -3,650 linesWeek of 2026-03-08: +3,119 linesWeek of 2026-03-08: -126 linesWeek of 2026-03-15: +570 linesWeek of 2026-03-15: -78 linesWeek of 2026-03-22: +2,104 linesWeek of 2026-03-22: -2,161 linesWeek of 2026-03-29: +13,234 linesWeek of 2026-03-29: -7,700 linesWeek of 2026-04-05: +6,316 linesWeek of 2026-04-05: -5,194 linesWeek of 2026-04-12: +16,110 linesWeek of 2026-04-12: -4,586 linesWeek of 2026-04-19: +3,810 linesWeek of 2026-04-19: -1,051 linesWeek of 2026-04-26: +1,173 linesWeek of 2026-04-26: -572 linesWeek of 2026-05-03: +2,328 linesWeek of 2026-05-03: -320 linesWeek of 2026-05-10: +2,364 linesWeek of 2026-05-10: -395 linesWeek of 2026-05-17: +8,855 linesWeek of 2026-05-17: -4,908 linesWeek of 2026-05-24: +2,855 linesWeek of 2026-05-24: -379 linesWeek of 2026-05-31: +13,723 linesWeek of 2026-05-31: -3,559 linesWeek of 2026-06-07: +5,104 linesWeek of 2026-06-07: -933 linesWeek of 2026-06-14: +3,280 linesWeek of 2026-06-14: -739 linesWeek of 2026-06-21: +9,657 linesWeek of 2026-06-21: -2,562 linesWeek of 2026-06-28: +9,248 linesWeek of 2026-06-28: -1,169 linesWeek of 2026-07-05: +22,322 linesWeek of 2026-07-05: -1,328 linesWeek of 2026-07-12: +18,727 linesWeek of 2026-07-12: -2,245 linesWeek of 2026-07-19: +11,354 linesWeek of 2026-07-19: -883 linesWeek of 2026-07-26: +19,996 linesWeek of 2026-07-26: -1,884 linesWeek of 2026-08-02: +10,150 linesWeek of 2026-08-02: -1,617 linesJan 11, 2026Aug 2, 2026
+255.4K lines added, -70.2K removed over the last year.

Commits per week

last 52 weeks
880Week of 2025-08-09: 0 commitsWeek of 2025-08-16: 0 commitsWeek of 2025-08-23: 0 commitsWeek of 2025-08-30: 0 commitsWeek of 2025-09-06: 0 commitsWeek of 2025-09-13: 0 commitsWeek of 2025-09-20: 0 commitsWeek of 2025-09-27: 0 commitsWeek of 2025-10-04: 0 commitsWeek of 2025-10-11: 0 commitsWeek of 2025-10-18: 0 commitsWeek of 2025-10-25: 0 commitsWeek of 2025-11-01: 0 commitsWeek of 2025-11-09: 0 commitsWeek of 2025-11-16: 0 commitsWeek of 2025-11-23: 0 commitsWeek of 2025-11-30: 0 commitsWeek of 2025-12-07: 0 commitsWeek of 2025-12-14: 0 commitsWeek of 2025-12-21: 0 commitsWeek of 2025-12-28: 0 commitsWeek of 2026-01-04: 0 commitsWeek of 2026-01-11: 8 commitsWeek of 2026-01-18: 51 commitsWeek of 2026-01-25: 51 commitsWeek of 2026-02-01: 43 commitsWeek of 2026-02-08: 33 commitsWeek of 2026-02-15: 42 commitsWeek of 2026-02-22: 11 commitsWeek of 2026-03-01: 39 commitsWeek of 2026-03-08: 11 commitsWeek of 2026-03-15: 5 commitsWeek of 2026-03-22: 8 commitsWeek of 2026-03-29: 19 commitsWeek of 2026-04-05: 40 commitsWeek of 2026-04-12: 88 commitsWeek of 2026-04-19: 29 commitsWeek of 2026-04-26: 11 commitsWeek of 2026-05-03: 7 commitsWeek of 2026-05-10: 27 commitsWeek of 2026-05-17: 26 commitsWeek of 2026-05-24: 16 commitsWeek of 2026-05-31: 67 commitsWeek of 2026-06-07: 26 commitsWeek of 2026-06-14: 35 commitsWeek of 2026-06-21: 61 commitsWeek of 2026-06-28: 84 commitsWeek of 2026-07-05: 61 commitsWeek of 2026-07-12: 88 commitsWeek of 2026-07-19: 53 commitsWeek of 2026-07-26: 47 commitsWeek of 2026-08-02: 33 commitsAug 9, 2025Aug 2, 2026
1.1K commits in the last 52 weeks.

When work happens

weekday and hour
SunMonTueWedThuFriSat036912151821Sun 0:00 — 6 commitsSun 1:00 — 12 commitsSun 2:00 — 4 commitsSun 3:00 — 5 commitsSun 4:00 — 1 commitsSun 5:00 — 1 commitsSun 6:00 — 0 commitsSun 7:00 — 1 commitsSun 8:00 — 5 commitsSun 9:00 — 5 commitsSun 10:00 — 6 commitsSun 11:00 — 4 commitsSun 12:00 — 7 commitsSun 13:00 — 8 commitsSun 14:00 — 9 commitsSun 15:00 — 12 commitsSun 16:00 — 8 commitsSun 17:00 — 13 commitsSun 18:00 — 9 commitsSun 19:00 — 9 commitsSun 20:00 — 4 commitsSun 21:00 — 3 commitsSun 22:00 — 18 commitsSun 23:00 — 13 commitsMon 0:00 — 8 commitsMon 1:00 — 9 commitsMon 2:00 — 11 commitsMon 3:00 — 6 commitsMon 4:00 — 4 commitsMon 5:00 — 0 commitsMon 6:00 — 6 commitsMon 7:00 — 7 commitsMon 8:00 — 6 commitsMon 9:00 — 7 commitsMon 10:00 — 7 commitsMon 11:00 — 9 commitsMon 12:00 — 18 commitsMon 13:00 — 8 commitsMon 14:00 — 14 commitsMon 15:00 — 12 commitsMon 16:00 — 8 commitsMon 17:00 — 12 commitsMon 18:00 — 6 commitsMon 19:00 — 10 commitsMon 20:00 — 9 commitsMon 21:00 — 2 commitsMon 22:00 — 8 commitsMon 23:00 — 4 commitsTue 0:00 — 7 commitsTue 1:00 — 9 commitsTue 2:00 — 6 commitsTue 3:00 — 0 commitsTue 4:00 — 3 commitsTue 5:00 — 0 commitsTue 6:00 — 1 commitsTue 7:00 — 7 commitsTue 8:00 — 2 commitsTue 9:00 — 6 commitsTue 10:00 — 6 commitsTue 11:00 — 11 commitsTue 12:00 — 11 commitsTue 13:00 — 6 commitsTue 14:00 — 6 commitsTue 15:00 — 15 commitsTue 16:00 — 12 commitsTue 17:00 — 10 commitsTue 18:00 — 2 commitsTue 19:00 — 7 commitsTue 20:00 — 6 commitsTue 21:00 — 2 commitsTue 22:00 — 11 commitsTue 23:00 — 9 commitsWed 0:00 — 11 commitsWed 1:00 — 7 commitsWed 2:00 — 4 commitsWed 3:00 — 4 commitsWed 4:00 — 2 commitsWed 5:00 — 3 commitsWed 6:00 — 2 commitsWed 7:00 — 4 commitsWed 8:00 — 5 commitsWed 9:00 — 6 commitsWed 10:00 — 8 commitsWed 11:00 — 10 commitsWed 12:00 — 9 commitsWed 13:00 — 6 commitsWed 14:00 — 11 commitsWed 15:00 — 8 commitsWed 16:00 — 13 commitsWed 17:00 — 15 commitsWed 18:00 — 8 commitsWed 19:00 — 8 commitsWed 20:00 — 5 commitsWed 21:00 — 9 commitsWed 22:00 — 7 commitsWed 23:00 — 5 commitsThu 0:00 — 7 commitsThu 1:00 — 2 commitsThu 2:00 — 6 commitsThu 3:00 — 0 commitsThu 4:00 — 4 commitsThu 5:00 — 5 commitsThu 6:00 — 1 commitsThu 7:00 — 5 commitsThu 8:00 — 5 commitsThu 9:00 — 8 commitsThu 10:00 — 6 commitsThu 11:00 — 11 commitsThu 12:00 — 9 commitsThu 13:00 — 4 commitsThu 14:00 — 10 commitsThu 15:00 — 18 commitsThu 16:00 — 7 commitsThu 17:00 — 8 commitsThu 18:00 — 11 commitsThu 19:00 — 8 commitsThu 20:00 — 5 commitsThu 21:00 — 10 commitsThu 22:00 — 6 commitsThu 23:00 — 1 commitsFri 0:00 — 4 commitsFri 1:00 — 3 commitsFri 2:00 — 7 commitsFri 3:00 — 7 commitsFri 4:00 — 0 commitsFri 5:00 — 0 commitsFri 6:00 — 0 commitsFri 7:00 — 0 commitsFri 8:00 — 4 commitsFri 9:00 — 4 commitsFri 10:00 — 12 commitsFri 11:00 — 1 commitsFri 12:00 — 2 commitsFri 13:00 — 3 commitsFri 14:00 — 10 commitsFri 15:00 — 2 commitsFri 16:00 — 9 commitsFri 17:00 — 8 commitsFri 18:00 — 4 commitsFri 19:00 — 2 commitsFri 20:00 — 2 commitsFri 21:00 — 6 commitsFri 22:00 — 9 commitsFri 23:00 — 7 commitsSat 0:00 — 3 commitsSat 1:00 — 7 commitsSat 2:00 — 11 commitsSat 3:00 — 5 commitsSat 4:00 — 7 commitsSat 5:00 — 2 commitsSat 6:00 — 7 commitsSat 7:00 — 3 commitsSat 8:00 — 1 commitsSat 9:00 — 13 commitsSat 10:00 — 7 commitsSat 11:00 — 13 commitsSat 12:00 — 12 commitsSat 13:00 — 13 commitsSat 14:00 — 1 commitsSat 15:00 — 5 commitsSat 16:00 — 6 commitsSat 17:00 — 10 commitsSat 18:00 — 9 commitsSat 19:00 — 6 commitsSat 20:00 — 14 commitsSat 21:00 — 1 commitsSat 22:00 — 7 commitsSat 23:00 — 15 commits
Commit volume by weekday and hour (UTC). Larger dots mean more commits.
DateListRankStars gained
Apr 18, 2026daily#13+236
  • ultraworkers/claw-code

    An agent-managed museum exhibit, built in Rust with Gajae-Code / LazyCodex — developed and maintained with no human intervention.

    195K stars · Rust

  • ultraworkers/claw-code

    An agent-managed museum exhibit, built in Rust with Gajae-Code / LazyCodex — developed and maintained with no human intervention.

    194.9K stars · Rust

  • ultraworkers/claw-code

    An agent-managed museum exhibit, built in Rust with Gajae-Code / LazyCodex — developed and maintained with no human intervention.

    194.9K stars · Rust

  • farion1231/cc-switch

    A cross-platform desktop All-in-One assistant for Claude Code, Codex, OpenCode, OpenClaw, Grok Build & Hermes Agent. Only official website: ccswitch.io

    125.4K stars · Rust

  • kubernetes/kubernetes

    Production-Grade Container Scheduling and Management

    124.3K stars · Go

  • denoland/deno

    A modern runtime for JavaScript and TypeScript.

    108.2K stars · Rust