LILYLILYDOCS

Install the CLI

One curl-pipe-bash and lly is on your PATH.

The LILY CLI ships as a single static binary called lly. It carries the compiler frontends, the Wasmtime-based runtime, and the plugin resolver in one file. Installation is one command. No package manager. No daemon. No background services.

Supported platforms

Two targets are first-class. Other Unix-likes work through the manual install path but are not exercised in CI.

  • x86_64-linux — glibc 2.31+ (Debian 11, Ubuntu 22.04, RHEL 9, Arch).
  • aarch64-darwin — macOS 13 Ventura or later, Apple Silicon only.

Windows is not supported directly. Use WSL2 with the Linux build. Intel Macs are not supported; the x86_64-darwin target was retired with the 0.7 series.

The one-liner

The install script is published at rc.lilylabs.io/install.sh alongside the binaries themselves. It detects your platform, downloads the matching lly, verifies the SHA-256, and writes it to /usr/local/bin/lly. If/usr/local/bin is writable by the current user, no sudo is required; otherwise the script re-invokes itself with sudo and prints the prompt.

install
$ curl -sSL rc.lilylabs.io/install.sh | bash → detected x86_64-linux → fetching lly 0.9.4 from rc.lilylabs.io/dist/lly/0.9.4/x86_64-linux/lly 18.4 MB · 4.2 MB/s · 4.4s → sha256 ok (a7c1…f3e9) → installing to /usr/local/bin/lly ✓ lly 0.9.4 installed run lly login to authenticate, or lly doctor to check the install.

Re-running the script is safe. It overwrites the binary in place and preserves~/.lly/, where credentials, config, plugins, and caches live.

Verify the install

Two commands confirm everything is wired up. lly version prints the binary version and the git revision it was built from. lly doctor walks the environment: PATH, runtime presence, plugin directory, and reachability ofrc.lilylabs.io and auth.lilylabs.io.

verify
$ lly version lly 0.9.4 (rev 3b8c12a, built 2026-05-28) runtime wasmtime 24.0.0 · 6 frontends · 4 util plugins $ lly doctor ✓ lly on PATH at /usr/local/bin/lly ✓ plugin dir ~/.lly/plugins (4 installed) ✓ runtime ok (wasmtime 24.0.0) ✓ rc.lilylabs.io reachable (38 ms) ✓ auth.lilylabs.io reachable (41 ms) ✓ all checks passed

Plugin auto-resolution

The binary is small on purpose. Frontends and tools that you do not need are not shipped with it. When you run lly nextjs build for the first time, the CLI looks up the nextjs plugin manifest on rc.lilylabs.io, downloads the platform-matched binary, verifies the signature, and installs it under~/.lly/plugins/nextjs/. Subsequent invocations are local and instant.

You can pre-install plugins with lly plugin install, list what is present with lly plugin list, or pin a specific version withlly plugin install nextjs@0.5.1. See the plugin reference for the full set of subcommands.

Manual install

Hardened environments — air-gapped builders, locked-down CI runners, security review gates — often forbid piping curl into a shell. Fetch the binary directly and place it wherever your PATH expects:

manual
$ curl -fsSLO rc.lilylabs.io/dist/lly/0.9.4/x86_64-linux/lly $ curl -fsSLO rc.lilylabs.io/dist/lly/0.9.4/x86_64-linux/lly.sha256 $ sha256sum -c lly.sha256 lly: OK $ install -m 0755 lly /usr/local/bin/lly $ lly version lly 0.9.4 (rev 3b8c12a, built 2026-05-28)

Replace x86_64-linux with aarch64-darwin on Apple Silicon. Each release directory contains a SHA256SUMS file signed with the LILY release key; the fingerprint is published at /security.

Uninstall

Remove the binary and, optionally, the per-user state:

uninstall
$ rm /usr/local/bin/lly $ rm -rf ~/.lly removes credentials, plugins, caches, and config

Next

With lly on your PATH, the next step is signing in so you can deploy. If you prefer to build something locally first, jump to hello world.