Installation
Install larvae with lpm, lpx, cargo, or a prebuilt binary
updated Aug 30, 20264 min read
larvae ships as one small toolset with no runtime dependencies: the larvae CLI, the larvae-lsp editor server, and the analyzer library the server opens. Pick one of the routes below, they all end with a larvae you can run.
Add it to a project with lpm
lpm is the Luau package manager. Adding larvae as a project tool pins it for everyone who clones the repo.
lpm tool add larvaeThis is the route to prefer for real projects, since the tool version travels with the project rather than with each machine.
Run it once with lpx
lpx fetches and runs larvae without installing anything.
lpx larvaeGood for trying larvae on a project before committing to it, or for a one off run in CI. Nothing is left on the machine afterwards.
Build from source
cargo install larvaeThat pulls the published crate from crates.io, so it needs no checkout. The editor server is a crate of its own:
cargo install larvae-lspIt compiles the vendored Luau C++ once, so it needs a C++ toolchain and takes
a few minutes. The binary carries its analyzer library inside and writes it out
on first run, so it works from wherever cargo install put it.
To build from a clone instead, ex: to try an unreleased change, point cargo at the path:
cargo install --path .Prebuilt binaries
Release builds are attached to the GitHub releases page. Each asset is a zip named larvae-{os}-{arch}.zip, holding the CLI, the larvae-lsp server, and the analyzer library together, because the server opens the library at runtime and the two have to travel as one. Every platform carries the analyzer since 0.7.1.
| asset | platform |
|---|---|
larvae-linux-x86_64.zip |
Linux, Intel or AMD |
larvae-linux-aarch64.zip |
Linux, ARM |
larvae-macos-x86_64.zip |
macOS, Intel |
larvae-macos-aarch64.zip |
macOS, Apple silicon |
larvae-windows-x86_64.zip |
Windows, Intel or AMD |
larvae-windows-aarch64.zip |
Windows, ARM |
Unpack the zip, mark the binaries executable if your OS needs that, and run larvae self install from there so all three land on PATH together. The server opens the analyzer library at startup, so the two have to stay side by side; the library carries its own C runtime, so no redistributable is needed on any platform.
Putting larvae on PATH
larvae self install copies the running binary to ~/.larvae/bin/larvae, and the larvae-lsp server with its analyzer library when they sit beside it, so run it from the unpacked release directory.
larvae self installOn Windows it puts the directory on your PATH for real, writing the user Path in the registry and broadcasting the change so newly opened terminals pick it up. Nothing further to do.
On unix it prints the line for your shell profile instead:
export PATH="$HOME/.larvae/bin:$PATH"That asymmetry is deliberate. Editing someone's shell profile without asking is rude, so unix leaves the last step to you.
Running self install twice is safe. It also warns when another tool already manages the larvae binary, because a second copy can shadow the first on PATH and leave you running a version you did not expect.
The four self subcommands
self install, self update, self uninstall and self code are separate alternatives, not steps to run in order. You pick the one that matches what you want to do right now.
self update
Checks GitHub releases, downloads the newer build, and swaps it in.
larvae self updateIt honors GITHUB_TOKEN for the releases API, which matters if you hit rate limits on a shared runner. When there is nothing newer it says larvae is already up to date and exits.
It only updates the copy self install made. If rokit, aftman, foreman, lpm or cargo owns your binary, it refuses and points you at that manifest instead, since overwriting a pinned tool leaves the manifest and the bytes on disk disagreeing. Bump the version where the pin lives, or pass --force if you really want the swap.
larvae self update --forceself uninstall
Removes ~/.larvae.
larvae self uninstallIt prompts with Remove <dir>? first, and the default answer is no, so pressing enter cancels.
self code
Sets up your editor for larvae.toml: completion, hover docs, and the valid values for every key.
larvae self codeIt is a one time step per machine, not part of installing the binary, which is why it is its own subcommand. What it writes and why is covered in editor setup.
Verify the install
larvaeWith no arguments larvae prints its logo beside the help text. See the CLI reference for every command and flag.
Next steps
Head to the quick start to go from a Rojo project to native string requires. Config lives in larvae.toml, documented in the configuration reference, though a plain Rojo project with .luaurc aliases needs no config at all.