Skip to content

Luau Run · Guides

Install

  • Windows 10 version 1809 or later, on an x64 processor with SSE4.2 and POPCNT.
  • The Microsoft Visual C++ Redistributable (x64) for tests on Lute. Windows does not include it.
  • Roblox Studio and Rojo, for specs in Studio.

In PowerShell:

irm https://github.com/PRMS-magnet/luau-run/releases/latest/download/install.ps1 | iex

It places luau-run.exe in ~\.luau-run\bin, adds that folder to the end of your user Path, and runs luau-run setup. Terminals that were already open need to be opened again to access luau-run. If another luau-run.exe comes earlier on Path, that one runs instead, and the script names it.

Install a specific version with this link: https://github.com/PRMS-magnet/luau-run/releases/download/v<version>/install.ps1.

irm ... | iex cannot pass options, so each option is also an environment variable, set to 1:

Option Variable Effect
-Yes LUAU_RUN_INSTALL_YES Answers setup’s question with its recommendation. Use it in CI.
-NoPath LUAU_RUN_INSTALL_NO_PATH Leaves your Path as it is.
-NoSetup LUAU_RUN_INSTALL_NO_SETUP Installs luau-run.exe only.
-Uninstall LUAU_RUN_INSTALL_UNINSTALL See Uninstall.

To pass an option directly, run the script as a script block:

& ([scriptblock]::Create((irm https://github.com/PRMS-magnet/luau-run/releases/latest/download/install.ps1))) -Yes

In GitHub Actions, the install also adds the folder to GITHUB_PATH, so later steps find luau-run. Where Constrained Language Mode blocks the script, install without it.

Download luau-run-<version>-windows-x86_64.zip from a release. Luau Run is not code-signed, so Windows may warn about it. Each release lists its files’ SHA-256 in SHA256SUMS. Compare the zip’s line with what Get-FileHash luau-run-<version>-windows-x86_64.zip prints. Then extract luau-run.exe and run it from that folder:

.\luau-run.exe self-install

This does what the script does after its download. --no-modify-path leaves your Path alone, --no-setup skips setup, and other options go to setup.

luau-run.exe also runs from any folder of your own, but update and uninstall work only on the copy in Luau Run’s bin folder.

Everything is in Luau Run’s home, ~\.luau-run:

Folder or file What it holds
bin luau-run.exe, where the install placed it.
store The tools setup installs, and the Luau Run builds kept by the install and update.
cache Files Luau Run builds again when they are missing.
config.toml Your own settings, if you create it.
roots, installation.json, update-check.json What each build needs, what the install changed, and the newest release seen.

LUAU_RUN_HOME moves the home to another full path, such as D:\luau-run. The folder must exist, and nothing is moved into it.

luau-run setup installs what tests need. It lists each piece, where it comes from and its size, then asks. --accept-recommended installs without asking, and --dry-run only lists.

  • The supervisor, the Windows program that starts every test process and makes sure each one ends. It comes from inside luau-run.exe, as do Jest’s files.
  • Lute, copied from Rokit’s or mise’s storage when they hold the same bytes, and downloaded from its GitHub release otherwise.
  • The Jest runner for Lute, built from Lute and Jest’s files.

Running setup again repairs a tool whose files were changed or deleted. For a project that pins another Lute, run it in the project’s folder.

Option Effect
--without jest-lute Leaves out the Jest runner for Lute, which only Jest specs on Lute need.
--from <folder> Installs from a folder of release files, with no network. A pinned Lute’s zip goes in a folder named after its tag, such as v1.0.0\lute-windows-x86_64.zip.
--offline Forbids downloads.
--interactive Asks even when no terminal was detected.
--json Prints one JSON document.
--prune Lists what no Luau Run build on this computer still needs. With --accept-recommended, removes it.

Ctrl+C or Ctrl+Break stops setup once the piece it is installing is done, and it exits 2. Run it again to finish. A second press ends it at once, which can leave temporary files behind.

luau-run update updates Luau Run to the latest version. It shows what it will install and asks first.

Its options:

  • --check only says whether there is a newer release.
  • --rollback goes back to the build before.
  • --version <version> moves to that version, older or newer.
  • --accept-recommended updates without asking, and --dry-run says what would happen.

Without a terminal, such as in CI, plain update refuses. Use --check or --accept-recommended there.

Update a copy outside Luau Run’s bin folder, such as one from Rokit, the way you installed it. Update notices says when Luau Run mentions a newer release by itself.

If the install script installed Luau Run, run it with -Uninstall:

& ([scriptblock]::Create((irm https://github.com/PRMS-magnet/luau-run/releases/latest/download/install.ps1))) -Uninstall

It removes the Path entry the install added and luau-run.exe, then asks whether to delete the rest of ~\.luau-run: the tools, downloads, settings, records, and the earlier builds kept for update --rollback, about 100 MB each. The default keeps them, and -Yes deletes them, also after an uninstall that kept them. It deletes only Luau Run’s own files, so a folder that LUAU_RUN_HOME names keeps anything else in it.

luau-run uninstall removes only the Path entry and luau-run.exe, and names what else to delete.

If you installed luau-run.exe manually, delete it and the ~\.luau-run folder.

© 2026 PRMS Developer