This is the second major release of Lima, featuring the support for pluggable VM drivers, GPU acceleration, and MCP.
This release also commemorates the promotion of the project from CNCF Sandbox to Incubating 🎉.
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 AI agents such as Gemini.
- 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.
Details
-
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)
- 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)
-
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)
-
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)experimental/ubuntu-next: update to Ubuntu 26.04 pre-release (#4311)
-
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 @kachick @muchzill4 @ningmingxiao @nlordell @norio-nomura @olamilekan000 @plandem @stek29 @unsuman @valdela1 @vax-r @vishalanarase @zyfy29
EOL of v1.2
Lima v1.2 will continue to receive security updates and critical bug fixes until 2026-02-06 (3 months from now).
See also https://lima-vm.io/docs/releases/.
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/19130682878
The sha256sum of the SHA256SUMS file itself is 112f1ef1d9850e29b4be425ca71e8b6ac686f593ff741164885b51fbd6919ca6 .
Release manager: @AkihiroSuda