This is the multi-page printable view of this section. Click here to print.

Return to the regular view of this page.

Usage

Starting a Linux instance

Run limactl start <INSTANCE> to create and start the first instance. The <INSTANCE> name defaults to “default”.

$ limactl start
? Creating an instance "default"  [Use arrows to move, type to filter]
> Proceed with the current configuration
  Open an editor to review or modify the current configuration
  Choose another template (docker, podman, archlinux, fedora, ...)
  Exit
...
INFO[0029] READY. Run `lima` to open the shell.

Choose Proceed with the current configuration, and wait until “READY” to be printed on the host terminal.

For automation, --tty=false flag can be used for disabling the interactive user interface.

Customization

To create an instance “default” from a template “docker”:

limactl create --name=default template:docker
limactl start default

See also the command reference:

Executing Linux commands

Run limactl shell <INSTANCE> <COMMAND> to launch <COMMAND> on the VM:

limactl shell default uname -a

See also the command reference:

For the “default” instance, this command can be shortened as lima <COMMAND>.

lima uname -a

The lima command also accepts the instance name as the environment variable $LIMA_INSTANCE.

Home directory

The host home directory is mounted as read-only on the following path by default:

  • /Users/${USER} (on macOS hosts)
  • /home/${USER} (on other hosts)

To make the host mount writable, run limactl start with --mount-writable. To disable the mount, limactl start with --mount-none or --plain.

The guest home directory exists independently on the following path:

  • /Users/${USER}.guest (on macOS guests)
  • /home/${USER}.guest (on other guests, since Lima v2.1)
  • /home/${USER}.linux (prior to Lima v2.1)

Shell completion

  • To enable bash completion, add source <(limactl completion bash) to ~/.bash_profile.
  • To enable zsh completion, see limactl completion zsh --help

1 - SSH

Instead of the limactl shell command, SSH can be used too:

$ limactl ls --format='{{.SSHConfigFile}}' default
/Users/example/.lima/default/ssh.config

$ ssh -F /Users/example/.lima/default/ssh.config lima-default

This is useful for interoperability with other software that expects the SSH connectivity.

Using SSH without additional options

Add the following line to your ~/.ssh/config:

Include ~/.lima/*/ssh.config

Then you can connect directly without specifying -F:

ssh lima-default

This configuration is notably useful for the Remote Development mode of Visual Studio Code.

Using SSH without a config file

If your SSH client does not support a config file, try specifying an equivalent of the following command:

ssh -p <PORT> -i ~/.lima/_config/user -o NoHostAuthenticationForLocalhost=yes 127.0.0.1

The port number can be inspected as follows:

limactl list --format '{{ .SSHLocalPort }}' default

See also .lima/default/ssh.config.

2 - Guest OS

2.1 - Linux

Linux is the default guest operating system.

See also

2.2 - macOS

⚡ RequirementLima >= 2.1, macOS, ARM

Running macOS guests is experimentally supported since Lima v2.1.

limactl start template:macos

A password prompt is shown during creating an instance, so as to run the chown root:wheel ~/.lima/_mnt/0/... command on the host. This password is not used for setting up the user account in the VM.

The user password is randomly generated and stored in the ~/password file in the VM. Consider changing it after the first login.

limactl shell macos cat /Users/${USER}.guest/password

Difference from Linux guests

  • Password login is enabled
  • Password-less sudo is disabled
  • Several features are not implemented yet. See Caveats below.

Caveats

  • No support for graceful limactl stop. Shutdown the VM from the GUI, or use limactl stop -f with caution.
  • No support for turning off the video display.
  • No support for mounting host directories. Use limactl cp or limactl shell --sync to share files with the host.
  • No support for automatic port forwarding. Use ssh -L to manually set up port forwarding, or, use the vzNAT network to access the guest by its IP.
  • No support for installing custom caCerts