Install
Requirements
Section titled “Requirements”- 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.
With the install script
Section titled “With the install script”In PowerShell:
irm https://github.com/PRMS-magnet/luau-run/releases/latest/download/install.ps1 | iexIt 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))) -YesIn 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.
Without the script
Section titled “Without the script”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-installThis 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.
Where Luau Run keeps things
Section titled “Where Luau Run keeps things”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.
Set up the tools
Section titled “Set up the tools”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.
Update
Section titled “Update”luau-run update updates Luau Run to the latest version. It shows what it will
install and asks first.
Its options:
--checkonly says whether there is a newer release.--rollbackgoes back to the build before.--version <version>moves to that version, older or newer.--accept-recommendedupdates without asking, and--dry-runsays 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.
Uninstall
Section titled “Uninstall”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))) -UninstallIt 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