frontpage.
newsnewestaskshowjobs

Open Source @Github

fp.

Open in hackernews

Show HN: machine0 – Persistent NixOS VMs You Control from the CLI

https://machine0.io
48•bwm•3h ago
Hi HN! Excited to launch machine0, a CLI that makes it easy to create, provision and snapshot persistent NixOS (& Ubuntu) VMs.

You can think of machine0 as a modern VPS provider. VMs stay on unless switched-off (with 99.99% uptime), they have static IPs and HTTPS endpoints, 1-60 vCPU, up to 240GB RAM and optionally GPUs. The CLI provides commands to manage lifecycle, snapshots and also provision the VMs using Nix flakes or Ansible playbooks. VMs are priced by the minute of usage.

What makes machine0 unique is that it has first class support for NixOS! In a nutshell, NixOS lets you define your entire OS as code (think Terraform but for your Linux). A flake declares your system state (packages, services, firewall rules, users...) and pins all dependencies via a lockfile. Given the same flake.nix and flake.lock, `nixos-rebuild switch` always produces the exact same system.

The NixOS ecosystem is mature, and flakes are expressive: at the system level you can define packages, what's in /etc, firewall rules, users & groups etc. At the user level, you can define your shell, aliases, tmux and vim config. Having your entire environment defined as code makes it easy to audit what's installed and how things are set up. You can rollback by reverting the last commit. And agents can write the code for you and test it against disposable machine0 VMs.

If you'd like to dive right in, these commands will get you started:

  npm install -g @machine0/cli
  machine0 new my-vm --image nixos-25-11        # create a new nixos VM
  machine0 provision my-vm ./flake#my-profile   # provision it using a nix flake
  machine0 ssh my-vm                            # ssh in
  machine0 stop my-vm                           # stop the VM
  machine0 images new my-vm my-snapshot         # create a snapshot
  machine0 new my-clone --image my-snapshot     # create a new VM from the snapshot
- Demo of installation + NixOS provisioning via Claude Code: https://www.youtube.com/watch?v=RT8N0_e3Vfg

- Documentation: https://docs.machine0.io/introduction/overview

- machine0 NixOS flakes: https://github.com/fdmtl/machine0-nixos

If you're in the habit of using VMs, or want to know what the NixOS fuss is about, would love for you to give machine0 a try!

Comments

setheron•2h ago
Big fan of exe.dev so the added Nix seems like a solid value add.

exe.dev is great but lurking in my mind is: "how will I replicate this if I ever need to move to AWS etc.." for all the service composition.

Site looks great too

bwm•2h ago
Thanks! Yup, one of the benefits of defining your VMs as code using Nix, is that you can take that code to any supplier, and you're guaranteed exactly the same build.
setheron•54m ago
Come join us at https://tacosprint.org/ We have more availability! (Also sponsor maybe )
bwm•17m ago
Would love to join the next one!
JeanEdern•2h ago
How does machine0 handle NixOS state drift and recovery in practice—for example, if a VM is manually modified outside the flake, can I detect or reset that drift, and how do snapshots interact with flake-based provisioning?
bwm•1h ago
It's not possible to modify the VM outside of the flake :)
nc•1h ago
I’ve been using machine0 for hosting openclaw and a couple of web apps i’ve been working on. Great product super easy to use with claude code.
bwm•1h ago
Been great having you :)
EnigmaCurry•1h ago
I'm happy to see this, and I have lots of thoughts about this. Building declarative services on Nix is a far superior way of distributing Linux to VMs than most any other way I've tried. I am working [1] on very similar things, but I've been leaning more on the self-hosted path, my VM template targets libvirt and Proxmox VE with a single CLI api. I even have an experimental branch that targets DigitalOcean. For VMs especially, I want my OS to be immutable. My VMs should contain no state other than my application state. Upgrades should be a full image replacement and reboot.

So in my template, I have created the VMs with two disks: first one is for NixOS and is built from an image, and it is read-only. The second is mounted to /var and is used for all system configuration as well as application state. If I have multiple VMs, they can all share the same base image (thin provisioned). That's the mode that I want for my deployments of services, immutable and as stateless as possible. For agent use, its different, you actually want a mutable NixOS root so that the agent can do what it wants.

I built three modes: immutable, semi-mutable, and mutable. mutable removes the read-only lock on the root, and just lets you manage the VM as a pet. semi-mutable adds an ephemeral overlayfs that gets wiped the next time you upgrade the base image. So that gives you kind of the best of both worlds: an immutable read-only base image and the ability to "nix profile add" whatever you (or your agent) wants, but with the contract that these imperatively installed things will disappear the next time you upgrade. Are you planning on adding a LICENSE to your machine0-nixos repo?

[1] https://github.com/EnigmaCurry/nixos-vm-template

bwm•1h ago
Always happy to meet others that are working with NixOS :) I've just added the License - it's MIT.
n3mo-dev•1h ago
Great product, with great explanation
bwm•1h ago
Thank you!
Pet_Ant•34m ago
I wonder how easy this would be to port to Guix?
bwm•22m ago
You could point your agent at the machine0 CLI and ask it to :)
cdevr•23m ago
I made this (minus NixOS support, I should add that) for proxmox VE using their API a few weeks ago. I mean it's not this extensive, but it works:

https://github.com/cdevr/dtt

I mean, I'm not going to claim it's remotely near the same quality. And proxmox has some holes in their support for cloud init. And of course you need a mini pc on a good internet connection or the like.

But extremely fast provisioning of a any of VMs ... very handy.

Proxmox has too many compromises though. Maybe I should do the reverse, and extend this until it can fully replace proxmox entirely.

bwm•18m ago
I'm also a big fan of proxmox! Would be happy to help you extend machine0 though :) Happy to chat about your requirements over email: barnaby@machine0.io

Show HN: Fata – Spaced repetition to fight skill rot from AI coding

https://fata.dev
35•djoume•4d ago•15 comments

Show HN: machine0 – Persistent NixOS VMs You Control from the CLI

https://machine0.io
48•bwm•3h ago•16 comments

Show HN: Exploiting Slack's video embeds to achieve E2EE communication

https://v1c.rocks/log/exploiting-slack-video/
20•victorio•3h ago•2 comments

Show HN: Kage – Shadow any website to a single binary for offline viewing

https://github.com/tamnd/kage
674•tamnd•1d ago•130 comments

Show HN: A pure-Ruby X11 terminal

https://github.com/vidarh/rubyterm
3•vidarh•1h ago•0 comments

Show HN: I wrote a C++ ray tracer from scratch without AI

https://github.com/themartiano/luz
136•martiano•10h ago•58 comments

Show HN: Nxui – Copy-paste animated UI components for Vue

https://nxui.geoql.in/docs/
9•vinayakkulkarni•6h ago•2 comments

Show HN: Trace – Offline Mac meeting transcripts you can flag mid-call

https://traceapp.info
196•AG342•1d ago•80 comments

Show HN: Micro Coach – an AI workout planner built by a former personal trainer

https://microcoachapp.com/
3•coreysutton7•2h ago•0 comments

Show HN: Discover Wikipedia articles popular on Hacker News

https://www.orangecrumbs.com/
132•octopus143•1d ago•29 comments

Show HN: Track trending GitHub repos on HN

https://hn-github-reader.vercel.app/
4•vipulag•4h ago•0 comments

Show HN: Mood

https://mood.lasagna.pizza/
3•kinduff•4h ago•0 comments

Show HN: CriteriaBot – A Universal Customizable Classifier

https://criteriabot.io/
3•RoyalTnetennba•4h ago•0 comments

Show HN: Steal-a-GIF – A browser tool to export GIFs from locked down platforms

https://vorpus.github.io/steal-a-gif/
6•lizhang•5h ago•0 comments

Show HN: 3D print Z reinforcement via injected loops

https://mgunlogson.github.io/magma/
65•mgunlogson•6d ago•40 comments

Show HN: PIM – app blocker that inconveniences you instead of locking you out

https://pleaseinconvenienceme.com
3•SMV279438•6h ago•1 comments

Show HN: I am building a map of people who lived in the Roman Empire

https://new.roman-names.com/
205•metiscus•5d ago•47 comments

Show HN: Paca – Lightweight Jira alternative for human-AI collaboration

https://github.com/Paca-AI/paca
168•pikann22•2d ago•60 comments

Show HN: Memorypad – A note editor for your daily notes, in Markdown

https://memorypad.io/
6•Malfunction92•8h ago•0 comments

Show HN: AwsmAudio – a WebAudio editor with native MCP

https://audio.awsm.fun
7•dakom•13h ago•0 comments

Show HN: Homebrew 6.0.0

https://brew.sh/2026/06/11/homebrew-6.0.0/
1465•mikemcquaid•4d ago•360 comments

Show HN: X – A programming language with switchable memory modes

https://github.com/xdotxxx/x
4•x-xxx•11h ago•1 comments

Show HN: Putt.day a daily mini golf game

https://putt.day/
315•ellg•2d ago•110 comments

Show HN: Philosophy for Kids

https://philosophy.ocaho.com/
14•rahimnathwani•1d ago•10 comments

Show HN: Dual YOLOv8n UAV Detection on RK3588S at 42 FPS Using NPU

https://github.com/alebal123bal/khadas_yolov8n_multithread
71•alebal123bal•1d ago•9 comments

Show HN: Lightweight Task queue on Erlang/OTP, SQLite-backed, no overengineering

https://github.com/entGriff/ezra
74•ent1c3d•5d ago•17 comments

Show HN: I used Claude Mythos to build my startup in 1 day

https://www.brandlm.ai/
9•trungnx2605•13h ago•5 comments

Show HN: Bastion – isolated Linux VMs for background coding agents

https://bastion.computer/
30•almostlit•1d ago•2 comments

Show HN: FablePool – pool money behind a prompt, and Fable builds it in public

https://fablepool.com
524•matthewbarras•3d ago•275 comments

Show HN: Prela – A Compositional and Controllable Query Language

https://prela-lang.org
4•remywang•15h ago•0 comments