v2.0.0-beta.0
Pre-releaseHighlights:
- 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