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)
- 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)
-
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)
-
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) - 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) - Deprecate
--yesand introducelimactl (clone|rename|edit|shell) --startinstead (#4108, #4285, thanks to @Horiodino @nlordell) [New in v2.0.0-rc.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:
-
Network:
- Enable mDNS for vzNAT and socket_vmnet (#4272, thanks to @norio-nomura) [New in v2.0.0-rc.0]
-
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)
- Support UDP in Kubernetes (#4233)
- Change default of
guestIPMustBeZerototruewhenguestIPis0.0.0.0(#4221, thanks to @jandubois)
-
nerdctl:
-
Build system:
-
Templates:
alpine,alpine-iso: update to Alpine 3.22 (#4184, #4190, thanks to @jandubois)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)opensuse: update to openSUSE Leap 16 (#4203)oraclelinux: update to Oracle Linux 10 (#4236, thanks to @valdela1)ubuntu,default: update Ubuntu to 25.10 (#4202)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)
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 @nlordell @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/19076221777
The sha256sum of the SHA256SUMS file itself is 6c709722612fac112079f18b145acbb40970d88d734fdcc0318bd936ef59f8df .
Release manager: @AkihiroSuda