lux-cli(1)
π lux-cli(1) β the manual page, but make it group chat
okay so bestie, this is lux-cli from the General Commands Manual, and it's a luxurious package manager for Lua. Yes, luxurious. Like it has a skincare routine and a standing appointment. Let's get into it β¨
πΈ NAME πΈ
lux-cli β a luxurious package manager for Lua π«Ά
π¦ SYNOPSIS π¦
lux-cli [--dev] [--server] [--extra-servers] [--namespace] [--lua-dir]
[--lua-version] [--tree] [--cache-dir] [--data-dir] [--vendor-dir]
[--variables] [--profile] [--verbose] [--no-progress] [--no-prompt]
[--preset] [--nvim] [--no-tfa] [--allow-root] [--timeout] [--max-jobs]
[--no-luarc] [--no-wrap-bin] [--user-agent] [-h|--help] [-V|--version]
<subcommands>
like yes, it's a lot of flags, it's giving main character energy, we respect it π
π DESCRIPTION π
A luxurious package manager for Lua. That's the whole vibe. No cap π
π OPTIONS π
--devβ turns on the sub-repositories in luarocks servers, so you can pull rockspecs for in-development versions. living on the edge, love that for you π₯--server <server>β fetch rocks/rockspecs from this server instead (it takes priority over the config file).--extra-servers <extra-server>β fetch rocks/rockspecs from these servers in addition to the main server (overrides any entries in the config file). more servers = more friends π--namespace <namespace>β specify the luarocks server namespace to use.--lua-dir <prefix>β specify the directory in which to install Lua if it's not found.--lua-version <ver>β which Lua installation to use. Valid versions are:'5.1','5.2','5.3','5.4','5.5','jit'and'jit52'. If it's not set, Lux will attempt to detect the Lua version:- from the current project, if it has an exact Lua version requirement
- from the Lua installation that is available on the
PATH
--tree <tree>β which tree to operate on. In a workspace, you can use this to specify a detached workspace tree.--cache-dir <cache-dir>β specifies the cache directory, e.g. for luarocks manifests.--data-dir <data-dir>β specifies the data directory, in which the default user install tree resides (e.g.~/.local/share/lux).--vendor-dir <vendor-dir>β specifies a directory with locally vendored sources and RockSpecs. When building or installing a package with this flag, Lux will fetch sources from the<vendor-dir>instead of from a remote server. supporting local businesses fr fr π--variables <variable>β override config variables. Example:lx -v "LUA=/path/to/lua" ...--profile <profile>β the build profile to use when compiling packages. Default:release. Possible values:releasedev
--verboseβ display verbose output of commands executed, enabling DEBUG logs. To enable TRACE logs, setRUST_LOG=trace. she's chatty and we love her π--no-progressβ don't print any progress bars or spinners. minimalism <3--no-prompt <NO_PROMPT>β skip prompts, selecting the default option. Prompting is enabled by default in terminal/TTY environments. Possible values:truefalse
--preset <preset>β configure Lux for a specific environment. Valid presets are:'nvim','rojo'. Possible values:nvim: configure Lux for Neovim (https://neovim.io/) pluginsrojo: configure Lux for Rojo (https://rojo.space/)
--nvimβ [DEPRECATED] configure lux for installing Neovim packages. Use--preset nviminstead.
bestie it's deprecated, please use --preset nvim, the glow-up is right there π
--no-tfaβ disable prompts for two-factor authentication (2FA) codes. It is strongly recommended to enable 2FA instead, seehttps://luarocks.org/settings/two-factor-auth.
turning this off is not the slay you think it is, protect your account π
--allow-rootβ allow Lux to run as root (linux) or Administrator (windows).--timeout <seconds>β timeout on network operations, in seconds.0means no timeout (wait forever). Default is30.--max-jobs <MAX_JOBS>β maximum buffer size for parallel jobs, such as downloading rockspecs and installing rocks.0means no limit. Default is0.--no-luarcβ do not generate or update a.luarc.jsonfile when building a project.--no-wrap-binβ do not wrap Luabinscripts.--user-agent <USER_AGENT>β the user agent to set when making web requests. Default is"lux/<version>".-h,--helpβ print help (see a summary with-h).-V,--versionβ print version.
β¨ SUBCOMMANDS β¨
like, there are so many and honestly? iconic. pick your fighter π
lux-cli-add(1)β add a dependency to the current project πlux-cli-build(1)β build/compile a projectlux-cli-check(1)β [EXPERIMENTAL] type check the current project based on EmmyLua/LuaCATS annotations. Respects.emmyrc.jsonand.luarc.jsonfiles in the project directorylux-cli-config(1)β interact with the lux configurationlux-cli-debug(1)β internal commands for debugging Lux itself πlux-cli-dist(1)β distribute a Lux projectlux-cli-doc(1)β show documentation for an installed rocklux-cli-download(1)β download a specific rock file from a luarocks serverlux-cli-fmt(1)β formats the codebase with stylua β¨lux-cli-generate-rockspec(1)β generate a rockspec file from a projectlux-cli-generate-lockfile(1)β generate a lockfile for the current project without installing its dependencieslux-cli-info(1)β show metadata for any rocklux-cli-install(1)β install a rock for use on the systemlux-cli-install-rockspec(1)β install a local rockspec for use on the systemlux-cli-install-lua(1)β manually install and manage Lua headers for various Lua versionslux-cli-lint(1)β lint the current project usingluachecklux-cli-list(1)β list currently installed rockslux-cli-lua(1)β run lua, with theLUA_PATHandLUA_CPATHset to the specified lux treelux-cli-new(1)β create a new Lua project π¦lux-cli-outdated(1)β list outdated rockslux-cli-pack(1)β create a packed rock for distribution, packing sources or binarieslux-cli-path(1)β return the currently configured package pathlux-cli-pin(1)β pin an existing rock, preventing any updates to the packagelux-cli-purge(1)β remove all installed rocks from a treelux-cli-remove(1)β remove a rock from the current project'slux.tomldependencieslux-cli-run(1)β run the current project with the provided argumentslux-cli-exec(1)β execute a command that has been installed with lux. If the command is not found, a package named after the command will be installedlux-cli-search(1)β query the luarocks servers πlux-cli-test(1)β run the test suite in the current project directory. Lux supports the following test backends, specified by the[test]table in thelux.toml:busted:https://lunarmodules.github.io/busted/Example:
[test]
type = "busted"
flags = [ ] # Optional CLI flags to pass to busted
lx test will default to using busted if no test backend is specified and:
- there is a
.bustedfile in the project root - or
bustedis one of thetest_dependencies
busted-nlua: a build backend for running busted tests with Neovim as the Lua interpreter. Used for testing Neovim plugins. Example:
[test]
type = "busted-nlua"
flags = [ ] # Optional CLI flags to pass to busted
lx test will default to using busted-nlua if no test backend is specified and:
- there is a
.bustedfile in the project root - or
bustedandnluaaretest_dependencies
command: name/file name of a shell command that will run the test suite. Example:
[test]
type = "command"
command = "make"
flags = [ "test" ]
script: relative path to a Lua script that will run the test suite. Example:
[test]
type = "script"
script = "tests.lua" # Expects a tests.lua file in the project root
flags = [ ] # Optional arguments passed to the test script
lux-cli-uninstall(1)β uninstall a rock from the systemlux-cli-unpin(1)β unpins an existing rock, allowing updates to alter the packagelux-cli-update(1)β updates all rocks in a projectlux-cli-upload(1)β generate a Lua rockspec for a Lux project and upload it to the public luarocks repository. You can specify a source template for release and dev packages in thelux.toml. Example:
[source]
url = "https://host.com/owner/$(PACKAGE)/refs/tags/$(REF).zip"
dev = "git+https://host.com/owner/$(PACKAGE).git"
You can use the following variables in the source template:
$(PACKAGE): the package name$(VERSION): the package version$(REF): the git tag or revision (if in a git repository)- you may also specify environment variables with
$(<VAR_NAME>)If theversionis not set in thelux.toml, lux will search the current commit for SemVer tags and if found, will use it to generate the package version π₯
lux-cli-util(1)β infrequently used commands such as for generating shell completions and man pageslux-cli-vendor(1)β vendor the dependencies of a project or RockSpec locally. When building or installing a package with the--vendor-diroption or the[vendor_dir]config option, Lux will fetch sources from the<vendor-dir>instead of from a remote server πlux-cli-which(1)β tell which file corresponds to a given module namelux-cli-shell(1)β spawns an interactive shell withPATH,LUA_PATH,LUA_CPATHandLUA_INITset β¨lux-cli-sync(1)β synchronize the project tree with the currentlux.toml, ensuring all packages are installed correctlylux-cli-help(1)β print this message or the help of the given subcommand(s)
π VERSION π
v0.53.2
π AUTHORS π
vhyrro <vhyrro@gmail.com>, mrcjkb <marc@jakobi.dev> β absolute icons, thank you for your service π«Ά
and that's the whole page bestie! lux-cli 0.53.2, page lux-cli(1) β go forth and manage your packages luxuriously πβ¨π
π¦ where this page comes from
- arch rolling: lux-cli 0.53.2-1 Β· LGPL-3.0-only
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms