Back in July with v2.2, we added support for Windows guests. On November 6, we shipped v2.3 of Lima and now it runs without extra dependencies on Windows: VMs start through the same Host Compute System that powers WSL2, without QEMU and without a Unix toolchain. On Linux, VMs are getting the “real IP address” networking that Mac users have had through `socket_vmnet`. And on every host, managing your VMs gets friendlier with a new terminal UI.

What is Lima?

Lima (Linux Machines) is a command-line tool to launch local virtual machines. Originally focused on running containers on a laptop and promoting containerd to Mac users, Lima joined the CNCF as a Sandbox project in September 2022 and was promoted to Incubating in October 2025. Today, Lima supports a wide variety of non-container workloads, non-macOS hosts, non-Linux guests and robust AI sandboxing.

If you are using Homebrew, Lima can be installed using:

brew install lima


If you are on Windows, Lima can be installed through PowerShell using:

winget install Lima.Lima

For other installation methods, see https://lima-vm.io/docs/installation/.

Updates in v2.3

Windows hosts: the HCS driver (experimental) 

Until now, Windows users who wanted Lima had two options: the `wsl2` or QEMU driver. v2.3 adds a third, the new `hcs` driver. It talks directly to the Windows Host Compute System (HCS) API, the Windows virtualization layer that WSL2 is built on. In the v2.2 announcement, we said that our LFX mentorship would “explore and evaluate native virtualization support for Windows hosts”. A few weeks later, that research has become a working driver. 

Before you try it

  1. Enable virtualization on your machine. 
  2. Add yourself to the `Hyper-V Administrators` group from an Administrator PowerShell, then restart your terminal:
net localgroup "Hyper-V Administrators" <user name> /add
  1. Then run Lima from a shell:
limactl start --vm-type hcs --plain --dns 8.8.8.8
lima
Figure 1: Windows PowerShell module

Current limitations 

See the HCS driver docs for details. 

More Windows improvements 

Linux hosts: Real networking for VMs

On macOS, `socket_vmnet` gives VMs an IP address that the host can reach directly. Linux had no equivalent, so the `lima: shared`, `lima: host` and `lima: bridged` networks only worked on macOS.

v2.3 introduces `lima-privileged-net`, a small privileged helper for Linux hosts which:

One-time setup on Linux: the `sudoers` file

Creating bridges and tap devices requires root, so there are two steps before your first start:

  1. Install Lima as root, and install `dnsmasq`. `limactl sudoers` refuses to generate rules for a helper that isn’t root-owned.
  2. Generate and install the rules:
limactl sudoers >etc_sudoers.d_lima
less etc_sudoers.d_lima
sudo install -o root -m 0440 etc_sudoers.d_lima /etc/sudoers.d/lima
rm etc_sudoers.d_lima

Then start an instance on a managed network:

limactl start --network=lima:shared --vm-type=qemu
Figure 2: Managed network

See the Linux networking docs for details.

macOS hosts: Give your VM a real disk

With v2.3, Lima can now attach a block device (USB drive or an external SSD) to VZ guests, without going through a file share. In order for this feature to work, sudo privileges are required to configure it. 

One-time setup on macOS: the `sudoers` file

Opening a host disk requires root, so there are two steps before your first `–block-device` start:

  1. The helper and every directory above it must be root-owned. Typical Homebrew installs are user-writable, so extract the macOS release archive into `/opt/lima` and run `/opt/lima/bin/limactl` directly:As your regular user, generate the rule, review it, and install it:
    sudo install -d -o root -g wheel -m 0755 /opt/lima
    sudo tar --no-same-owner -xzf lima-VERSION-Darwin-ARCH.tar.gz -C /opt/lima

    2. As your regular user, generate the rule, review it, and install it:

      limactl sudoers --block-device=/dev/disk4 >etc_sudoers.d_lima
      less etc_sudoers.d_lima
      visudo -cf etc_sudoers.d_lima
      sudo install -o root -g wheel -m 0444 etc_sudoers.d_lima /etc/sudoers.d/lima
      rm etc_sudoers.d_lima

      The rule only lets your user run the helper on that one device. When you regenerate the file, include every grant you want to keep, because installing it replaces the previous file.

      After these steps, then it’s a single flag:

      limactl start --vm-type=vz --block-device=/dev/disk4 template:default 

      Inside the guest, each device appears under `/dev/disk/by-id/virtio-<name>` (for example `virtio-disk4`). From there you can partition, format and mount it as you like. You can repeat `--block-device` to attach more than one device.

      Figure 3: limactl command

      💡 If you don’t have a spare drive, you can also test with a RAM disk: `hdiutil attach -nomount ram://65536` 

      ⚠️ macOS mounts external drives automatically. Unmount the drive first (e.g. `diskutil unmountDisk /dev/disk4`, don’t eject it), or the VM fails to start with `resource busy`.

      Built with security in mind

      Giving a VM raw access to a disk is powerful, so it needs to be safe. An earlier implementation of this feature was reverted after a security report. The version in v2.3 was redesigned around a few principles:

       ⚠️ Never grant access to your boot or system disk. Never mount the same filesystem on the host and in a guest (or in two guests) at the same time. 

      The full setup guide is in the disk docs.

      More for macOS

      `limactl menu`: a TUI for your VMs (experimental)

      If you prefer arrow keys to typing commands then v2.3 adds `limactl menu’, an interactive terminal UI for managing your Lima instances.

      limactl menu
      Figure 4: Lima Instances

      It lists your instances with color-coded status (running first), along with each instance’s VM type, architecture, CPUs and memory. Select an instance to:

      Destructive actions ask for confirmation first. If you don’t have any instances yet, the menu offers to create one.

      Safer AI sandboxes

      As more people use Lima to run AI coding agents, v2.3 adds a few small but useful features for that use case:

      limactl shell --sync . --sync-exclude .git --sync-exclude node_modules default

      To keep the list with your project instead, add a `.limasyncignore` file to the directory you sync, with one pattern per line. 

      For the complete list of changes, see the v2.3 milestone.

      Thank you, Mie!

      Mie Tokunaga (@mie313) has successfully completed the LFX Mentorship 2026 Term 2 program with Lima. Over the term she brought Windows guests to Lima in v2.2, and in v2.3 she added `provision` support for those guests, automatic `PATH` setup on Windows hosts, and the HCS driver. She did excellent work throughout the program, and it was a pleasure to work with her. Thank you, Mie, and congratulations! 🎉

      Meet us at KubeCon + CloudNativeCon North America 2026

      Come and say “Hi!” in Salt Lake City, Utah!

      Conference Session: Lima as the Universal AI Sandbox

      Project Pavilion Kiosk:

      See also: