We just open-sourced Lume - a tool we built after hitting walls with existing virtualization options on Apple Silicon. No GUI, no complex stacks - just a single binary that lets you spin up macOS or Linux VMs via CLI or API.<p>Why we built Lume:
- Run native macOS VMs in 1 command, using Apple Virtualization.Framework: `lume run macos-sequoia-vanilla:latest`<p>- Prebuilt images on <a href="https://ghcr.io/trycua" rel="nofollow">https://ghcr.io/trycua</a> (macOS, Ubuntu on ARM)<p>- API server to manage VMs programmatically `POST /lume/vms`<p>- A python SDK on github.com/trycua/pylume<p>Run prebuilt macOS images in just 1 step:
lume run macos-sequoia-vanilla:latest<p>How to Install:<p>brew tap trycua/lume<p>brew install lume<p>You can also download the `lume.pkg.tar.gz` archive from the latest release <a href="https://github.com/trycua/lume/releases">https://github.com/trycua/lume/releases</a>, extract it, and install the package manually.<p>Local API Server:
`lume` exposes a local HTTP API server that listens on `<a href="http://localhost:3000/lume" rel="nofollow">http://localhost:3000/lume</a>`, enabling automated management of VMs.<p>lume serve<p>For detailed API documentation, please refer to API Reference(<a href="https://github.com/trycua/lume/blob/main/docs/API-Reference.md">https://github.com/trycua/lume/blob/main/docs/API-Reference....</a>).<p>HN devs - would love raw feedback on the API design and whether this solves your Apple Silicon VM pain points. What would make you replace UTM/Multipass/Docker Desktop with this?<p>Repo: <a href="https://github.com/trycua/lume">https://github.com/trycua/lume</a>
Python SDK: github.com/trycua/pylume
Discord for direct feedback: <a href="https://discord.gg/8p56E2KJ" rel="nofollow">https://discord.gg/8p56E2KJ</a>
congrats on the open sourcing and launching! beyond the desire to run VMs in "1 command", i don't quite get the reasoning behind this project. could you elucidate? like, besides running macOS VMs, how is it different from lima, colima, and friends? the name lume is quite unfortunate.<p>the hard part about running VMs isn't really how to launch them (well, ahem, i'm looking at you, qemu), but getting data in and out, and controlling them. some feature requests, if i may ;)<p><pre><code> # take screenshot
# this should do the right thing(TM) and take a screenshot of the logged-in user session, which may not necessarily be the console
lume screenshot <vm name> [-o <file.png> | -]
# execute command
lume exec <vm name> [--as-user <user>] <command> [args]
# copy files in and out
lume cp <vm name>:<vm path> <local path>
lume cp <local path> <vm name>:<vm path>
# run clone as new VM
# this should appropriately roll the MAC address, IPs, and reseed any RNGs, of course
lume run --clone <clone name> <vm name>
</code></pre>
Can you clone a VM while it's running?<p>The ability to resume a VM within < 1 second would be useful for on-demand workflows without waiting for a full VM bootup sequence, similar to how you can get a firecracker microVM into the state you want, snapshot it.. then clone as you wish, and resume back into the guest.<p>You may need to preinstall an agent (a la Parallel/VMware Tools) to make sure this is seamless and fast.
Would this allow to run a near-native speed VM with a decent-speed Docker server inside, and thus allow to have an Orb-like speed for docker containers?
How does this compare to Lima[1] and Tart[2], which are similar?<p>Also, would it be possible to run BSDs with this?<p>[1] <a href="https://lima-vm.io" rel="nofollow">https://lima-vm.io</a><p>[2] <a href="https://tart.run" rel="nofollow">https://tart.run</a>
Can you use to launch an Intel VM on Apple Silicone and visa versa? I’m interested in doing this so I can compile C++ applications for different architectures on MacOS. Do you know of any other “easy” methods?
Looks interesting! I’ve been playing with UTM to do aarch64 VMs and I even cooked up a little Sinatra server to do some AppleScript to reboot the VM and do some other things on the host. I’ll look at this as a more robust solution as to be completely honest, UTM has left a lot to be desired at least for virtualization.
> What would make you replace UTM/Multipass/Docker Desktop with this?<p>Just checked my list of VMs in UTM; 5 Linux (Ubuntu, Debian, and Fedora), 9 Mac OS X/OS X/macOS (versions stretching back from Tiger to Sequoia), and 10 Windows (XP through 11). Lume would need to support not only Windows but also emulation in order to consider a move.
not really stoked about the name since there are a couple other projects named lume:<p>- <a href="https://lume.land/" rel="nofollow">https://lume.land/</a><p>The project looks cool though
The title of this post took me about 3 attempts to parse, because "OS" is more strongly bound to Operating System in this context (but presumably it's supposed to read as Open Source)
I wish it was possible to run a Debian VM on iOS.<p>For laptops, there are many nice options. But for tablets, the latest iPads are currently unmatched at under 600 grams for a 13" tablet. So I would love to use one of those.
Is macOS up to scratch to be used as a server these days? Last I checked it would always run into trouble / randomly reboot / become unavailable whenever a new OS update became available. Admittedly this is about 2 years ago.<p>If so, this would be great. Particularly to repurpose older macs.
I know the Mac hardware is pretty trick, but man, I do most of my dev on Linux and have a Framework Laptop (AMD) running Ubuntu; it's just really nice for dev stuff to work the same way it does on our production environment...<p>Also, the frequency and size and time to install MacOS updates - like these computers are blazingly fast from the cpus to the SSDs - after an update has downloaded, what could it possibly be doing that takes 30+ minutes to install? I've never had to wait for an apt-get upgrade that long.
Name clash with the not very well known Lua library, you should strongly consider changing the name <a href="https://github.com/rxi/lume">https://github.com/rxi/lume</a>