[HN Gopher] Show HN: Smol machines - subsecond coldstart, portab...
       ___________________________________________________________________
        
       Show HN: Smol machines - subsecond coldstart, portable virtual
       machines
        
       Author : binsquare
       Score  : 440 points
       Date   : 2026-04-17 17:18 UTC (1 days ago)
        
 (HTM) web link (github.com)
 (TXT) w3m dump (github.com)
        
       | binsquare wrote:
       | Hello, I'm building a replacement for docker containers with a
       | virtual machine with the ergonomics of containers + subsecond
       | start times.
       | 
       | I worked in AWS previously in the container space + with
       | firecracker. I realized the container is an unnecessary layer
       | that slowed things down + firecracker was a technology designed
       | for AWS org structure + usecase.
       | 
       | So I ended up building a hybrid taking the best of containers
       | with the best of firecracker.
       | 
       | Let me know your thoughts, thanks!
        
         | harshdoesdev wrote:
         | +1. i built something similar called shuru.run because i wanted
         | an easy way to set up microVM sandboxes to run some of my AI
         | apps, and firecracker wasn't available for macOS (and, as you
         | said, it is just too heavy for normal user-level workloads).
        
           | fqiao wrote:
           | Yes, having a light-weight solution for local devices as well
           | is one primary goal of the design. Another one is to make it
           | easy for hosting, self or managed
        
           | sahil-shubham wrote:
           | Nice work on Shuru -- I remember looking at it when I was
           | researching this space. You went with a Rust wrapper on
           | Apple's Virtualization framework right?
           | 
           | I have been working on something similar but on top of
           | firecracker, called it bhatti (https://github.com/sahil-
           | shubham/bhatti).
           | 
           | I believe anyone with a spare linux box should be able to
           | carve it into isolated programmable machines, without having
           | to worry about provisioning them or their lifecycle.
           | 
           | The documentation's still early but I have been using it for
           | orchestrating parallel work (with deploy previews),
           | offloading browser automation for my agents etc. An auction
           | bought heztner server is serving me quite well :)
        
             | harshdoesdev wrote:
             | bhatti's cli looks very ergonomic! great job!
             | 
             | also, yes, shuru was (still) a wrapper over the
             | Virtualization.framework, but it now supports Linux too
             | (wrapper over KVM lol)
        
             | davidcollantes wrote:
             | Is there a way to store configuration/data of applications
             | running on a Bhatti VM on the host, ala Docker volumes?
        
               | sahil-shubham wrote:
               | Yes! Checkout the bhatti volume
               | 
               | They are ext4 blocks which exist independent of
               | sandboxes.
        
         | thm wrote:
         | You could add OrbStack to the comp. table
        
           | fqiao wrote:
           | Will do. Thanks for the suggestion!
        
         | sdrinf wrote:
         | hi, great project! Windows support is sorely lacking, though.
         | As someone working a lot with sandboxed LLMs right now, the
         | options-space on windows for sandboxing is _extremely lacking_.
         | Any plans to support it?
        
           | binsquare wrote:
           | Yeah, it's in my mind.
           | 
           | WSL2 runs a linux virtual machine. Need to take some time and
           | care to wire that up, but definitely feasible.
        
           | fqiao wrote:
           | Hey, thanks so much! yah we will definitely add windows
           | support later. We are exploring how to get this work with WSL
           | and will release it asap. Stay tuned and thanks!
        
           | xnx wrote:
           | Not sure what level of sandboxing you need. Is Sandboxie not
           | enough?
        
         | PufPufPuf wrote:
         | Hey this is super cool. I've been researching tech like this
         | for my AI sandboxing solution, ended up with Lima+Incus:
         | https://github.com/JanPokorny/locki
         | 
         | My problem with microVMs was that they usually won't run docker
         | / kubernetes, I work on apps that consist of whole kubernetes
         | clusters and want the sandbox to contain all that.
         | 
         | Does your solution support running k3s for example?
        
           | fqiao wrote:
           | we will evaluate. I created this issue to track this:
           | https://github.com/smol-machines/smolvm/issues/150
           | 
           | Really appreciate the feedback!
        
           | mkagenius wrote:
           | With instavm (https://instavm.io), you can provide an OCI
           | image built from a dockerfile.
        
         | topspin wrote:
         | What is the status of supporting live migration?
         | 
         | That's the one feature of similar systems that always gets left
         | out. I understand why: it's not a priority for "cloud native"
         | workloads. The world, however, has work loads that are not
         | cloud native, because that comes at a high cost, and it always
         | will. So if you'd like a real value-add differentiator for your
         | micro-VM platform (beyond what I believe you already have,)
         | there you go.
         | 
         | Otherwise this looks pretty compelling.
        
           | fqiao wrote:
           | Really appreciate the suggestion! By "live migration", do you
           | mean keeping the existing files and migrate them elsewhere
           | with the vm?
           | 
           | Thanks
        
             | topspin wrote:
             | I mean making any given VM stop on host A and appear on
             | host B; e.g. standard Qemu/KVM:                   virsh
             | migrate --live GuestName DestinationURL
             | 
             | This is feasible when network storage is available and
             | useful when a host needs to be drained for maintenance.
        
               | fqiao wrote:
               | I see. so right now smolvm can be stopped, and then
               | "packed" (think of it as compressed), and restart on a
               | different host. files in the disks are preserved, but
               | memory snapshotting is still hard tbh
        
               | fragmede wrote:
               | Ultimately the original does get stopped, but with
               | additional techniques, we're talking milliseconds of
               | downtime between when the old one stops and the new one
               | resumes. (For live migration technology in general, no
               | clue about smol machines.)
        
               | sureglymop wrote:
               | It's also feasible without network storage, --copy-
               | storage-all will migrate all disks too.
        
               | benswerd wrote:
               | Live migrations and the tech powering it was the hardest
               | thing I ever built. Its something that I think will come
               | naturally to projects like smolVM as more of the
               | hypervisors build it in, but its a deeply challenging
               | task to do in userspace.
               | 
               | My team spent 4 months on our implementation of vm memory
               | that let us do it and its still our biggest time suck. We
               | also were able to make assumptions like RDMA that are not
               | available.
               | 
               | All that to say -- as someone not working on smolVMs -- I
               | am confident smolVMs and most other OSS sandbox
               | implementations will get live migration via hypervisor
               | upgrades in the next 12 months.
               | 
               | Until then there are enterprise-y providers like that
               | have it and great OSS options that already solve this
               | like cloud hypervisor.
        
           | genxy wrote:
           | It helps if you offer a concrete use case, as in how large
           | the heap is, what kinda of blackout period you can handle,
           | and whether the app can handle all of it's open connections
           | being destroyed, etc. The more an app can handle resetting
           | some of it's own state, the easier LM is going to be to
           | implement. If your workload jives with CRIU
           | https://github.com/checkpoint-restore/criu you could do this
           | already.
           | 
           | By what I assume is your definition, there are plenty of "non
           | cloud native" workloads running on clouds that need live
           | migration. Azure and GCP use LM behind the scenes to give the
           | illusion of long uptime hosts. Guest VMs are moved around for
           | host maintenance.
        
             | topspin wrote:
             | "Azure and GCP use LM behind the scenes"
             | 
             | As does OCI, and (relatively recently) AWS. That's a lot of
             | votes.
             | 
             | Use case: some legacy database VM needs to move because the
             | host needs maintenance, the database storage (as opposed to
             | the database software) is on a iSCSI/NFS/NVMe-oF array
             | somewhere, and clients are just smart enough to
             | transparently handle a brief disconnect/reconnect (which is
             | built-in to essentially every such database connection pool
             | stack today.)
             | 
             | Use case: a web app platform
             | (node/spring/django/rails/whatever) with a bunch of cached
             | client state needs to move because the host needs
             | maintenance. The developers haven't done all the legwork to
             | make the state survive restart, and they'll likely never
             | get time needed to do that. That's essentially the same use
             | case as previous. It's also rampant.
             | 
             | Use case: a long running batch process (training, etc.)
             | needs to move because reasons, and ops can't wait for it to
             | stop, and they can't kill it because time==money. It's
             | doesn't matter that it takes an hour to move because big
             | heap, as long as the previous 100 hours isn't lost.
             | 
             | "as in how large the heap is"
             | 
             | That's an undecidable moving target, so let the user worry
             | about it. Trust them to figure out what is feasible given
             | the capabilities of their hardware and talent. They'll do
             | fine if you provide the mechanism. I've been shuffling live
             | VMs between hosts for 10+ years successfully, and Qemu/KVM
             | has been capable of it for nearly 20, never mind VMware.
             | 
             | "CRIU"
             | 
             | Dormant, and still containers. Also, it's re-solving solved
             | problems once you're running in a VM, but with more steps.
        
           | linsomniac wrote:
           | Somewhat related: I have a branch of Ganeti that has first-
           | class ZFS support baked in, including using ZFS snapshot
           | replication to do live migration without shared storage or
           | CEPH: https://github.com/linsomniac/ganeti
           | 
           | Current status is I'm looking for more feedback. In a few
           | weeks when Ubuntu 26.04 comes out I'm going to set up my
           | dev/stg clusters at work with it, at the moment I've only
           | tested it in a test cluster at home.
           | 
           | It works this way: It creates a snapshot of the zvol, and
           | replicates it to the secondary machine. When that's done, it
           | does another snapshot and does a "catch up" replication (the
           | first replication could take hours on large volumes). Pause
           | the VM, do a final snapshot+replication. Replicate the
           | working RAM. Start up the VM on the new host.
        
         | lacoolj wrote:
         | What percentage of this code was written by LLM/AI?
        
           | binsquare wrote:
           | For myself, I'd estimate ~50%
           | 
           | Not useful for things it hadn't been trained on before. But
           | now I have the core functionality in place - it's been of
           | great help.
        
           | RALaBarge wrote:
           | Hey mathematician, how much of this formula did you calculate
           | with an abacus instead of a calculator?
        
             | anthk wrote:
             | Hey 'software engineer', how much of the output of an LLM
             | it's actually reproducible vs the one from a calculator or
             | any programming language with the same input in different
             | sessions?
        
               | weird-eye-issue wrote:
               | Why are you so concerned about the LLM producing the
               | exact same code across different sessions? Seems like a
               | really weird thing to focus on. Why aren't you focused on
               | things like security, maintainability, UI/UX,
               | performance?
        
               | linsomniac wrote:
               | Agreed. It's not like humans can produce the same output
               | given the same input for anything more than trivial
               | inputs.
               | 
               | I'd argue that it's actually a benefit; I like that I can
               | do several generations and compare them and pick the best
               | result. HP, for example, used to do this with software
               | teams, and that's how we got Rocky Mountain BASIC (AIUI
               | the competing team was East Coast BASIC).
        
               | naikrovek wrote:
               | Comp-sci people like repeatability when they want that
               | and true randomness when that is desired. Things in
               | between are rarely desired.
               | 
               | In computing, things are much more useful when they
               | behave in predictable ways. Even AI, many (most?) would
               | argue.
        
               | onion2k wrote:
               | Not really related to this 'discussion' but this is an
               | interesting problem in the AI space. It's essentially a
               | well understood problem in unreliable distributed systems
               | - if you have a series of steps that might not respond
               | with the same answer every time (because one might fail
               | usually) then how do you get to a useful and reliable
               | outcome? I've been experimenting with running a prompt
               | multiple times and having an agent diff the output to
               | find parts that some runs missed, or having it vote on
               | which run resulted in the best response, with a modicum
               | of success. If you're concerned about having another
               | layer of AI in there then getting the agents to return
               | some structured output that you can just run through a
               | deterministic function is an alternative.
               | 
               | Non-determinism is a problem that you can mitigate to
               | some extent with a bit of effort, and is important if
               | your AI is running without a human-in-the-loop step. If
               | you're there prompting it though then it doesn't actually
               | matter. If you don't get a good result just try again.
        
               | prox wrote:
               | Don't know if this is an annoying response... but how
               | about just going through the code and check and grade the
               | quality yourself?
        
               | onion2k wrote:
               | I could do, but the end goal is to scale this to 100x
               | what I can do myself, and there isn't time to review all
               | those changes. By attempting to answer the problem when
               | it's tiny and I can still keep it in my head then I'll
               | end up building something that works at scale.
               | 
               | Maybe. The point is that this is all new, and looking
               | forwards I think it's worth figuring out this stuff
               | early.
        
               | victorbjorklund wrote:
               | A lot vs a human? I bet the LLM with the same prompt will
               | write same code as before more often than I would (given
               | I don't remember what I wrote in the past).
        
         | JuniperMesos wrote:
         | What were the biggest challenges in terms of designing the VM
         | to have subsecond start times? And what are the current
         | bottlenecks for deceasing the start time even further?
        
           | binsquare wrote:
           | No special programming tricks were used.
           | 
           | Linux was built in the 90s. Hardware improved more than a
           | 1000x. Linux virtual machine startup times stayed relatively
           | the same.
           | 
           | Turns out we kept adding junk to the linux kernel + bootup
           | operations.
           | 
           | So all I did was cut and remove unnecessary parts until it
           | still worked.
           | 
           | This ended up also getting boot up times to under 1s. The
           | kernel changes are the 10 commits I made, you can verify
           | here: https://github.com/smol-machines/libkrunfw
           | 
           | There's probably more fat to cut to be honest.
        
         | thepoet wrote:
         | The images or rather portable artifacts rehydration on any
         | platform plus the packaging is neat. I have been working on
         | https://instavm.io for some time around VM based sandboxes and
         | related infra for agents and this is refreshing to see.
        
         | BobbyTables2 wrote:
         | How is this different than Kara Containers?
        
           | binsquare wrote:
           | kata containers is a container runtime that focuses on
           | running containers inside a vm.
           | 
           | smolvm is a vm with some of the properties & ergonomics of
           | containers - it's meant as a replacement for containers.
        
         | todotask2 wrote:
         | Just curious if this allow to sync file changes from host to vm
         | which only Docker has that and no other VM alternative has that
         | ability.
        
           | binsquare wrote:
           | it has directory mounts - so access the same files:
           | https://github.com/smol-
           | machines/smolvm/blob/main/AGENTS.md?...
           | 
           | It also has file copy from host to inside the guest:
           | https://github.com/smol-
           | machines/smolvm/blob/70c97930dda5a92...
        
         | rickydroll wrote:
         | How is this different from lxd/lxc? How tied is this to kvm or
         | could it work with other hypervisors like xcp-ng, VMware, or
         | virtual box?
        
           | binsquare wrote:
           | lxc/lxd are ~container managers, the kernel is still shared
           | like docker containers. It runs on linux & needs to run in a
           | linux virtual machine on macOS.
           | 
           | smolvm is a virtual machine with the ergonomics of containers
           | like packaging and distributing, kernel is not shared. You'd
           | run containers inside of smolvm.
           | 
           | Also, smolvm runs ontop of both kvm for linux and apple's
           | hypervisor for macOS. So it's cross platform.
        
         | linsomniac wrote:
         | Any Windows support coming? My dev team is on Windows, this
         | could be a game-changer.
        
           | binsquare wrote:
           | Wsl2 runs a Linux vm so it definitely feasible and has the
           | api's necessary.
           | 
           | It is on the roadmap, but frankly I haven't used Windows in a
           | decade. I would love for a contributor to take that on as
           | part of the free and open source spirit.
           | 
           | Sounds like it could be you? :)
        
       | fqiao wrote:
       | Give it a try folks. Would really love to hear all the feedbacks!
       | 
       | Cheers!
        
         | leetrout wrote:
         | why did you seemingly create two HN accounts?
         | 
         | Edit: I see this appears to be a contributor to the project as
         | well. It was not obvious to me.
        
           | fqiao wrote:
           | this is me: https://github.com/phooq
           | 
           | @binsquare is this one: https://github.com/BinSquare
        
           | fqiao wrote:
           | No worry at all! Thanks!
        
       | harshdoesdev wrote:
       | its a really innovative idea! very interested in the subsecond
       | coldstart claim, how does it achieve that?
        
         | fqiao wrote:
         | @binsquare basically brute-force trimmed down unnecessary linux
         | kernel modules, tried to get the vm started with just bare
         | minimum. There are more rooms for improvement for sure. We will
         | keep trying!
        
           | harshdoesdev wrote:
           | nice! for most local workloads, it is actually sufficient.
           | so, do you ship a complete disk snapshot of the machines?
        
             | fqiao wrote:
             | Yes. files on the disks are kept across stop and restart.
             | We also have a pack command to compress the machine as a
             | single file so that it can shipped and rehydrated elsewhere
        
           | deivid wrote:
           | With this approach I managed to get to sub-10ms start (to
           | pid1), if you can accept a few constraints there's plenty of
           | room!
           | 
           | Though my version was only tested on Linux hosts
        
             | binsquare wrote:
             | would be interested to see how you do it, how can I connect
             | with you - emotionally?
        
               | threecheese wrote:
               | Start with booze; always works :)
        
               | wgjordan wrote:
               | https://blog.davidv.dev/posts/minimizing-linux-boot-
               | times/
        
       | cr125rider wrote:
       | Great job with the comparison table. Immediately I was like "neat
       | sounds like firecracker" then saw your table to see where it was
       | similar and different. Easy!
       | 
       | Nice job! This looks really cool
        
         | fqiao wrote:
         | Thanks so much
        
       | 0cf8612b2e1e wrote:
       | This looks very cool. Does the VM machinery still work if I run
       | it in a bubblewrap? Can it talk to a GPU?
       | 
       | Can you pipe into one? It would be cute if I could wget in
       | machine 1 and send that result to offline machine 2 for
       | processing.
        
         | binsquare wrote:
         | Haven't tried with bubblewrap - but it should.
         | 
         | Yes! GPU passthrough is being actively worked on and will land
         | in next major release: https://github.com/smol-
         | machines/smolvm/pull/96
         | 
         | Yea just tried piping, it works:
         | 
         | ``` smolvm machine exec --name m1 -- wget -qO-
         | https://example.com/data.csv \ | smolvm machine exec --name m2
         | -i -- python3 process.py ```
        
       | bch wrote:
       | see too[0][1] for projects of a similar* vein, incl historical
       | account.
       | 
       | *yes, FreeBSD is specifically developed against Firecracker which
       | is specifically avoided w "Smol machines", but interesting
       | nonetheless
       | 
       | [0] https://github.com/NetBSDfr/smolBSD
       | 
       | [1] https://www.usenix.org/publications/loginonline/freebsd-
       | fire...
        
         | binsquare wrote:
         | that was one of my inspirations but I don't think they went far
         | enough in innovation.
         | 
         | microvm space is still underserved.
        
           | bch wrote:
           | > that was one of my inspirations
           | 
           | Colins FreeBSD work or Emiles NetBSD work?
        
             | binsquare wrote:
             | netBSD, I love that focus on a minimal and simple,
             | reproducible binaries.
             | 
             | You'll see that philosophy in this project as well (i
             | hope).
             | 
             | freeBSD focuses on features, which is great too.
        
       | gavinray wrote:
       | The feature that lets you create self-contained binaries seems
       | like a potentially simpler way to package JVM apps than GraalVM
       | Native.
       | 
       | Probably a lot of other neat usecases for this, too
       | smolvm pack create --image python:3.12-alpine -o ./python312
       | ./python312 run -- python3 --version       # Python 3.12.x --
       | isolated, no pyenv/venv/conda needed
        
         | binsquare wrote:
         | yeah, it's analogous to Electron.
         | 
         | Electron ships your web app bundled with a browser.
         | 
         | Smol machines ship your software packaged with a linux vm. No
         | need for dependency management or compatibility issues because
         | it is baked in.
         | 
         | I think this is how Codex or Claude Code should be shipped by
         | default, to avoid any isolation issues tbh
        
           | tkocmathla wrote:
           | How "fat" are the packed machines? In other words, how much
           | bloat is inevitable, or is that entirely controlled by the
           | base image + the user's smolvm machine spec? How does
           | smolvm's pack compare to something like dockerc [0] in terms
           | of speed and size? Disclaimer: I just learned about dockerc!
           | 
           | I can't actually create and test a pack right now because of
           | [1], but I love the idea of using this to distribute
           | applications you might otherwise use a Docker image for.
           | 
           | [0] https://github.com/NilsIrl/dockerc
           | 
           | [1] https://github.com/smol-machines/smolvm/issues/159
        
             | binsquare wrote:
             | pretty light weight!
             | 
             | About the same size as the docker image to be honest. Join
             | the discord and I'm happy to give you a white glove
             | experience with onboarding :)
             | 
             | https://discord.gg/E5r8rEWY9J
        
         | fqiao wrote:
         | yah, i guess everybody share the experience of "i messed up
         | with my dev env" right? We want this "machine" to be shippable,
         | meaning that once it is configured correctly, it can be shared
         | to anyone and use right away.
        
       | lambdanodecore wrote:
       | Basically any open source project nowadays run their software
       | stack in containers often requiring docker compose. Unfortunatley
       | Smol machines do not support Docker inside the microvms and they
       | also do not support nested VMs for things that use Vagrant. I
       | think this is a big drawback.
        
         | binsquare wrote:
         | I can support docker - will ship a compatible kernel with the
         | necessary flags in the next release.
        
           | lambdanodecore wrote:
           | I tried something like this already, also including nested
           | kvm. I think this will increase the boot time quiet a bit.
           | 
           | Also libkrun is not secure by default. From their README.md:
           | 
           | > The libkrun security model is primarily defined by the
           | consideration that both the guest and the VMM pertain to the
           | same security context. For many operations, the VMM acts as a
           | proxy for the guest within the host. Host resources that are
           | accessible to the VMM can potentially be accessed by the
           | guest through it.
           | 
           | > While defining the security implementation of your
           | environment, you should think about the guest and the VMM as
           | a single entity. To prevent the guest from accessing host's
           | resources, you need to use the host's OS security features to
           | run the VMM inside an isolated context. On Linux, the primary
           | mechanism to be used for this purpose is namespaces. Single-
           | user systems may have a more relaxed security policy and just
           | ensure the VMM runs with a particular UID/GID.
           | 
           | > While most virtio devices allow the guest to access
           | resources from the host, two of them require special
           | consideration when used: virtio-fs and virtio-vsock+TSI.
           | 
           | > When exposing a directory in a filesystem from the host to
           | the guest through virtio-fs devices configured with
           | krun_set_root and/or krun_add_virtiofs, libkrun does not
           | provide any protection against the guest attempting to access
           | other directories in the same filesystem, or even other
           | filesystems in the host.
        
             | binsquare wrote:
             | Security is a broad topic.
             | 
             | Here's how my perspective:
             | 
             | smolvm operates on the same shared responsibility model as
             | other virtual machines.
             | 
             | VM provides VM-level isolation.
             | 
             | If the user mounts a directory with the capability of
             | symlinks or a host OS with a path for guest software that
             | is designed to escape - that is the responsibility of the
             | user rather than the VM.
             | 
             | Security is not guaranteed by using a specific piece of
             | software, it's a process that requires different pieces for
             | different situations. smolvm can be a part of that process.
        
             | fqiao wrote:
             | Thanks so much for the feedbacks. Yes these are valid
             | concerns around libkrun security, We are planning and
             | developing features around them actually, and hopefully
             | that could alleviate the conerns.
             | 
             | for virtio-fs, yes the risk of exposing the host fs
             | struture exists, and we plan to:
             | 
             | 1. creating staging directory for each vm and bind-mount
             | the host dir onto them
             | 
             | 2. having private mount namespaces for vms
             | 
             | they are both tracked in our github issues:
             | 
             | https://github.com/smol-machines/smolvm/issues/152
             | https://github.com/smol-machines/smolvm/issues/151
             | 
             | 2 may need much more efforts than we imagine, but we will
             | ensure to call this out in our doc.
             | 
             | For the concern around TSI, we are developing virtio-net
             | in-parallel, it is also tracked in our github and will be
             | released soon: https://github.com/smol-
             | machines/smolvm/issues/91
             | 
             | Would like to collect mroe suggestions on how to make this
             | safer. Thanks!
        
         | genxy wrote:
         | So Vagrant is launching the VM locally, is that why it needs
         | nesting?
         | 
         | Would you be ok with a trampoline that launched the VM as a
         | sibling to the Vagrant VM?
        
       | ukuina wrote:
       | Doesn't Docker's sbx do this?
       | 
       | https://docs.docker.com/reference/cli/sbx/
        
         | binsquare wrote:
         | sandboxing is one of the features of virtual machines.
         | 
         | I'm building a different virtual machine.
        
           | ccrone wrote:
           | Neat! I work with the team on sbx. We built our own cross-
           | platform VMM after running into limitations with the existing
           | options. Happy to chat more about what you've built and what
           | we're doing: christopher<dot>crone@docker.com
        
       | messh wrote:
       | https://shellbox.dev is a hosted version of something very
       | similar
        
         | tomComb wrote:
         | This sounds great, except for one thing: you can scale your
         | compute (CPU & RAM) as needed but your storage appears to scale
         | with it.
         | 
         | So, if I use a "16 vCPUs, 32GB RAM, 400GB SSD" machine for a
         | period of intense compute, and then want to scale that down to
         | "2 vCPUs, 4GB RAM", most of my storage disappears?
         | 
         | That rather ruins the potential of the advertised scalability.
        
       | isterin wrote:
       | We're using smolmachines to create environments for our agents to
       | execute code. It's been great so far and the team is super
       | responsive. The dev ergonomics are also great.
        
         | fqiao wrote:
         | Really appreciate it! Would love to work together to make this
         | easier to use.
        
       | cperciva wrote:
       | See also SmolBSD -- similar idea, similar name, using NetBSD.
        
         | fqiao wrote:
         | I came across SmolBSD before too. Cool project!
        
       | nonameiguess wrote:
       | What are you actually doing on top of libkrun? Providing really
       | small machine images that boot quickly? If I run the smolvm run
       | --image alpine example, what is "alpine?" Where is that image
       | coming from? Does this have some built-in default registry of
       | machine images it pulls from? Does it need an Internet connection
       | that allows outbound access to wherever this registry runs? Is it
       | one of a default set of pre-built images that comes with the
       | software itself and is stored on my own filesystem? Where are the
       | builds for these images? Where do these machine images end up?
       | ~/.local/share/smolvm/?
        
         | binsquare wrote:
         | i run a custom fork of libkrun, libkrunfw (linux kernel), etc
         | etc: https://github.com/orgs/smol-machines/repositories
         | 
         | Got a lot of questions on how I spin up linux VM's so quickly
         | 
         | Explanation is pretty straight forward.
         | 
         | Linux was built in the 90s. Hardware improved more than a
         | 1000x. Linux virtual machine startup times stayed relatively
         | the same.
         | 
         | Turns out we kept adding junk to the linux kernel + bootup
         | operations.
         | 
         | So all I did was cut and remove unnecessary parts until it
         | still worked. This ended up also getting boot up times to under
         | 1s.
         | 
         | Big part of it was systemd btw.
        
         | binsquare wrote:
         | those images are pulling from the public docker registry.
        
       | parasitid wrote:
       | hi! congrats for your work that's really nice.
       | 
       | question: why do you report that qemu is 15s<x<30s? for instance
       | with katacontainers, you can run fast microvms, and even faster
       | with unikernels. what was your setup?
       | 
       | thanks a lot
        
       | akoenig wrote:
       | smolvm is awesome. The team is highly responsive and very
       | experienced. They clearly know what they're doing.
       | 
       | I'm currently evaluating smolvm for my project,
       | https://withcave.ai, where I'm using Incus for isolation. The
       | initial integration results look very promising!
        
         | fqiao wrote:
         | Cannot thank you more for this! Lets' work together to see how
         | we can make this easier for cave!
        
         | indigodaddy wrote:
         | This looks super awesome. Very excited for you potentially open
         | sourcing it, as I'd like to customize/extend it a bit for
         | certain use cases. Re: smolvm vs in use, I think even if smolvm
         | works great for it, why not keep incus as an option for people
         | who want to use cave on VMs that don't have access to /dev/kvm
         | (Eg the user can pick either incus or smolvm for their cave
         | deployment)
        
       | mrbluecoat wrote:
       | Can .smolmachine be digitally signed and self authenticate when
       | run? Similar to https://docs.sylabs.io/guides/main/user-
       | guide/signNverify.ht...
        
         | binsquare wrote:
         | probably, don't see why not based on cursory glance.
         | 
         | will look into it
        
       | chrisweekly wrote:
       | This looks awesome. Thanks for sharing!
        
         | fqiao wrote:
         | Thanks so much! Feel free to try it out if you have a chance,
         | and let's us know your thoughts. Thanks!
        
       | irickt wrote:
       | Is there a relation to the similarly-purposed and similarly-named
       | https://github.com/CelestoAI/SmolVM
        
         | binsquare wrote:
         | no relation, they build a sandboxing service using firecracker.
         | 
         | I build a virtual machine that is an alternative to firecracker
         | and containers.
        
       | rkagerer wrote:
       | I see you support Linux and MacOS hosts. Any Windows support
       | planned?
        
         | binsquare wrote:
         | Yeah it's feasible, I don't have windows to test. Can you help?
         | :D
        
       | timsuchanek wrote:
       | This is very exciting. It enables a cross platform, language
       | agnostic plugin system, especially for agents, while being safe
       | in a VM.
        
       | simonreiff wrote:
       | Hey this is pretty neat! I definitely would try using this for
       | benchmarks and other places where I need strong isolation as
       | Docker is just too bloated and slow, but sadly I don't think I
       | can run this natively on my Windows laptop. I hope you extend to
       | WSL! Good luck and congrats on launch.
        
         | fqiao wrote:
         | Hey thanks so much for the feedback. Yah try it and let us
         | know. We have a discord if you want to join, but either github
         | or discord feel free to report any issues you find to us.
         | 
         | Cheers!
        
       | sureglymop wrote:
       | What I really like about containers is quickly being able to spin
       | one up without having to specify resources (e.g. RAM limit). I
       | hope this would let me do that also.
        
         | binsquare wrote:
         | This does that.
         | 
         | I'm trying to do away the model of cpu and memory tbh.
         | 
         | Virtio- balloon dynamically resizes based on memory consumed.
         | 
         | CPU is oversubscribed by default
        
       | chwzr wrote:
       | I see the alpine and python:3.12-alpine images in your cli docs.
       | Where does these come from?is it from a docker like registry or
       | are these built in? Can I create my own images? Or this this
       | purely done with the smolfile? Is there a Ubuntu image available?
       | 
       | Looks really nice btw. Hot resize mem/cpu would be nice. This
       | could become a nice tech for a one-backend-per-customer infra
       | orchestrator then.
        
       | dimitry12 wrote:
       | https://github.com/earendil-works/gondolin is another project
       | addressing a similar use-case.
        
       | brianjlogan wrote:
       | Any integration with existing orchestrators? Plans to support any
       | or building your own?
        
         | binsquare wrote:
         | Will build a free open source self serve orchestration to
         | enable subsecond vm vending
         | 
         | But should be easy for anyone to build their own integration
         | with existing as well like nomad.
        
       | akdev1l wrote:
       | How does it compare to podman with crun-vm ?
        
       | 2001zhaozhao wrote:
       | Wow, this seems very useful for coding agent sandbox environments
       | that have full browser installations and the like.
        
       | Palmik wrote:
       | Could it be made even faster using some of the ideas from
       | https://github.com/zerobootdev/zeroboot ?
        
         | binsquare wrote:
         | Their idea is actually more akin to cloning and a more refined
         | implementation is used in Lambda's snapstart:
         | https://docs.aws.amazon.com/lambda/latest/dg/snapstart.html
         | 
         | So directionally yes. But it relies on kvm. I focus on
         | portability i.e. cross platform for local macOS and linux, so
         | that is not top of mind for me right now.
        
       | rawoke083600 wrote:
       | I like the name ! :)
        
         | Ey7NFZ3P0nzAe wrote:
         | Me too but I _loove_ the icon
        
           | binsquare wrote:
           | thanks, it's my hand traced over and then made pretty.
        
       | estetlinus wrote:
       | Why would I prefer smol machines over docker sandbox? Do you have
       | an elevator pitch?
        
         | binsquare wrote:
         | uhh sort of different things.
         | 
         | smol machines is a virtual machine that has properties and
         | ergonomics of containers. It's not an ai project, it's designed
         | to run any software inside.
         | 
         | docker sandbox sounds like it's running ai stuff inside of a
         | microvm.
         | 
         | So if you need to use a virtual machine - use smol machines.
         | 
         | If you need a to run coding agents, use smol machines still
         | because agents are just software.
        
           | estetlinus wrote:
           | I think I see one new VM / sandbox thingie a week.
           | 
           | > If you need a to run coding agents, use smol machines still
           | because agents are just software.
           | 
           | I get mixed signals from your argument
        
             | binsquare wrote:
             | it was a tongue in cheek response :), completely fair take
        
         | jFriedensreich wrote:
         | Docker sandbox is also not open source
        
       | geniium wrote:
       | Congrats that looks really amazing!
        
       | traceroute66 wrote:
       | Sounds very similar to the various unikernel implementations
       | floating around ? Such as Unikernel[1]
       | 
       | [1] https://unikraft.org
        
         | binsquare wrote:
         | unikraft's internals are not open source so I can't say.
         | 
         | But smol machines are not an implementation of unikernel - it's
         | basically just the linux kernel but slimmed down. So, more
         | compatible with most software.
        
       | todotask2 wrote:
       | How many smolvm can you find?
        
         | binsquare wrote:
         | not enough and too much at the same time
        
       | rcarmo wrote:
       | Would love to have this as a Proxmox guest type
        
         | binsquare wrote:
         | Smolvm is free and open source, help me build the integration
         | with proxmox - I'm not familiar with it
        
       | samhclark wrote:
       | This is a very cool project and I'm happy to see it getting
       | traction here. I stumbled upon it when I was looking to build
       | something similar and surveying the state of the art...then I
       | realized you built _exactly_ what I wanted!
       | 
       | Thank you, great work!
        
       | zekenie wrote:
       | This project is very cool! One readme nit: "Pack a stateful
       | virtual machine into a single file (.smolmachine) to rehydrate on
       | any supported platform." For awhile I thought this meant that you
       | could rehydrate a machine's memory like you can with a
       | firecracker vm, but as far as I can tell you can't? It's stateful
       | == disk?
        
       | gigatexal wrote:
       | im keen to check this out. since I've moved 100% to the Mac [1]
       | I've been keen to move away from Docker to something like Apple
       | Containers [2] which runs each "container" as an isolated vm. So
       | I wanna try this out, too.
       | 
       | [1] shameful self plug: https://gigatexal.blog/pages/i-heart-my-
       | macbook/i-heart-my-m...
       | 
       | [2] https://github.com/apple/container
        
       ___________________________________________________________________
       (page generated 2026-04-18 23:02 UTC)