Plain mode
Plain mode makes the VM instance as close as possible to a physical host by disabling Lima’s convenience features such as filesystem mounts, dynamic port forwarding, and the built-in containerd.
It is useful when you want to provision the guest with plain old ssh and rsync,
without relying on Lima-specific integrations. See the
GitHub Actions example for a typical use case.
Enabling plain mode
plain: true
limactl start --plain
limactl edit <instance> --plain
Plain mode is disabled (false) by default.
What is disabled
When plain mode is enabled, the following features are turned off, and the corresponding YAML properties are ignored:
- Filesystem mounts (
mounts) - Dynamic port forwarding (
portForwardsrules that are notstatic: true) - Built-in containerd (
containerd.systemandcontainerd.user) - The guest agent daemon
- Rosetta (
rosetta) - SSH agent forwarding (
ssh.forwardAgent) - Host clock synchronization
Dependency packages such as sshfs are not installed into the VM either.
What still works
- Static port forwarding:
portForwardsrules withstatic: trueare still established. - Provisioning scripts: user, system, and data provisioning scripts are still executed.
- Base guest setup: the base user and SSH keys are still configured.
Accessing the instance
limactl shell <instance> and ssh both work, as in a non-plain instance.
In plain mode, plain ssh is often preferred to keep the guest free of
Lima-specific conventions. See SSH for details.
See also
Plain mode applies to all guest operating systems. For OS-specific differences, see the Guest OS pages:
For the underlying mechanics (boot scripts, LIMA_CIDATA_PLAIN, guest agent
injection), see the internals reference.