Highlights:
- Experimental plug-in subsystem for VM driver infrastructure.
 This will help implementing third-party plugins without modifying the code base of Lima.
 Thanks to GSoC 2025 contributor @unsuman .
- Experimental krunkit VM driver for supporting GPU acceleration (#4137, thanks to @unsuman) [New in v2.0.0-beta.0]
- Experimental integration for Model Context Protocol (MCP) (#3744). i.e., Lima can be now used as a sandbox for Gemini, etc.
- Add limactl (start|restart) --progressflag to show the progress of provisioning (#3846, #3915, thanks to @olamilekan000 @norio-nomura)
- Add limactl shell --preserve-envflag to propagate env vars from the host to VM (#3830, thanks to @olamilekan000)
Other notable changes:
- /tmp/limais no longer mounted by default (#3951)
- SSH port is no longer hard-coded to 60022 for the "default" instance (#3780)
- Forward UDP ports by default (#4054)
- Support CLI plugins (#3834, #4009, thanks to @olamilekan000)
- Support custom URL scheme plugins (#3937, thanks to @jandubois).
 template://defaultis now recommended to be written astemplate:default. The old form is still supported.
Changes
- 
VM driver infrastructure: 
- 
krunkit: - Experimental krunkit VM driver for supporting GPU acceleration (#4137, thanks to @unsuman) [New in v2.0.0-beta.0]
 
- 
VZ: - Support Rosetta AOT Caching with CDI (#3858, thanks to @norio-nomura)
- Support accelerating SSH using AF_VSOCK(#3979, thanks to @norio-nomura)
 
- 
QEMU: - Fallback to TCG when KVM is not available on Linux hosts (#4204) [New in v2.0.0-beta.0]
 
- 
MCP: - Experimental integration for Model Context Protocol (MCP) (#3744). Lima now provides MCP tools for reading, writing, and executing local files using a VM sandbox. Known to work with Google Gemini CLI.
 
- 
limactlCLI:- Add limactl (start|restart) --progressflag to show the progress of provisioning (#3846, #3915, thanks to @olamilekan000 @norio-nomura)
- Add limactl (create|start|edit) --port-forwardflag for static port forwarding (#3699, thanks to @Horiodino).
 Usually not needed, but useful for instances created with--plain.
- Add limactl (create|start|edit) --ssh-portflag (#3791)
- Add limactl (create|start|edit) --mount-onlyflag (#3947).
 Similar to--mount, but overrides the existing mounts. Useful for mounting$(pwd).
- Support specifying --setmultiple times inlimactl (create|start|edit)(#4197, thanks to @AndiDog) [New in v2.0.0-beta.0]
- Add limactl shell --preserve-envflag to propagate env vars from the host to VM (#3830, thanks to @olamilekan000).
 See alsoLIMA_SHELLENV_ALLOWandLIMA_SHELLENV_BLOCK.
- Support CLI plugins (#3834, #4009, thanks to @olamilekan000)
- Support custom URL scheme plugins (#3937, thanks to @jandubois).
 template://defaultis now recommended to be written astemplate:default. The old form is still supported.
- Add limactl copy --backend=rsyncflag as an alternative toscpbackend (#3143, thanks to @olamilekan000)
- Add limactl list--yqandlimactl info --yqflags (#3998, thanks to @jandubois)
- Add limactl rename OLD NEW(#4207) [New in v2.0.0-beta.0]
 
- Add 
- 
YAML: - Migrate cpuTypetovmOpts.qemu(#3500, thanks to @unsuman)
- Add yqprovision mode (#3892, thanks to @norio-nomura)
- Prohibit relative paths in YAML (#3950).
 Relative paths were never intended to be supported,
 but they were accidentally allowed due to a regression in v1.1.0.
 The CLI commandlimactl (create|start|edit) --mount DIRstill supports relative paths.
 
- Migrate 
- 
Default template: 
- 
Port forwarding: - Support port forwarding in plain mode (#3699, thanks to @Horiodino)
- Support host sockets in gRPC port forwarder (#4008, thanks to @norio-nomura)
- Forward UDP ports by default (#4054)
- Eliminated 3-second delay for detecting ports (#4066)
- Removed iptables watcher for sudo nerdctl run -p ...(#4107).
 sudo nerdctl run -p ...now requires nerdctl v2.1.6 or later.
- Improved performance of gRPC forwarder (#4247, thanks to @balajiv113) [New in v2.0.0-beta.0]
- Support UDP in Kubernetes (#4233) [New in v2.0.0-beta.0]
- Change default of guestIPMustBeZerototruewhenguestIPis0.0.0.0(#4221, thanks to @jandubois)[New in v2.0.0-beta.0]
 
- 
nerdctl: 
- 
Build system: 
- 
Templates: - alpine,- alpine-iso: update to Alpine 3.22 (#4184, #4190, thanks to @jandubois) [New in v2.0.0-beta.0]
- debian: update to Debian 13 (#4029, thanks to @unsuman)
- docker,- docker-rootful: Enable containerd image store (#3941, thanks to @norio-nomura)
- fedora: update to Fedora 43 (#4255) [New in v2.0.0-beta.0]
- opensuse: update to openSUSE Leap 16 (#4203) [New in v2.0.0-beta.0]
- oraclelinux: update to Oracle Linux 10 (#4236, thanks to @valdela1) [New in v2.0.0-beta.0]
- ubuntu,- default: update Ubuntu to 25.10 (#4202) [New in v2.0.0-beta.0]
- k0s: New template (#3728, thanks to @plandem)
 
- 
Project: - Invite Ansuman Sahoo (@unsuman) as a Reviewer (#4003, thanks to @jandubois)
- Promote from CNCF Sandbox to Incubating (#4201) [New in v2.0.0-beta.0]
 
Full changes: https://github.com/lima-vm/lima/milestone/59?closed=1
Thanks to @AndiDog @Horiodino @afbjorklund @alexandear @ashwat287 @balajiv113 @bonifaido @dharsanb @gnawhleinad @iamleot @jandubois @muchzill4 @ningmingxiao @norio-nomura @olamilekan000 @plandem @stek29 @unsuman @valdela1 @vax-r @vishalanarase @zyfy29
Usage
$ limactl create
$ limactl start
...
INFO[0029] READY. Run `lima` to open the shell.
$ lima uname
LinuxThe binaries were built automatically on GitHub Actions.
The build log is available for 90 days: https://github.com/lima-vm/lima/actions/runs/18926746087
The sha256sum of the SHA256SUMS file itself is 75cee3e4649e41406080f5b3df8e459ec73d696e45b75b6cdc61b0cc240f355b .
Release manager: @AkihiroSuda