Skip to content

Latest commit

 

History

History
160 lines (113 loc) · 3.44 KB

File metadata and controls

160 lines (113 loc) · 3.44 KB

Luumen The unified CLI for Luau development


Luumen

Luumen is a unified CLI for Luau development.

It provides one command surface for common project workflows while using the existing Luau tooling ecosystem under the hood.

Supports both Roblox workflows and standalone Luau runtimes.

Why Luumen

Luau projects built outside Studio often rely on several separate tools for setup, dependency management, serving, builds, formatting, and linting.

Luumen exists to make those workflows easier to run and easier to standardize across repos.

Instead of learning a different set of setup steps and commands for every project, a repo can expose one consistent interface through luu.

What Luumen uses

Luumen works with the existing ecosystem:

  • Rokit for tool installation and management
  • Wally for package dependencies
  • Rojo, Selene, StyLua, Lune, Lute, and other tools for project workflows

It does not replace those tools.

Installation

Install Luumen with the hosted installer scripts.

macOS and Linux:

curl -fsSL https://luumen.dev/install.sh | bash

Windows PowerShell:

irm https://luumen.dev/install.ps1 | iex

or manually download the latest release from the Releases page and add it to your PATH.

Verify installation:

luu --version

Commands

luu create
luu init
luu install
luu add
luu dev
luu build
luu lint
luu format
luu test
luu run <task>
luu doctor

Examples

Create a project:

luu create my-game
cd my-game
luu dev

Create from a specific template:

luu create --template rojo-wally my-game
luu create --template rojo-only my-game
luu create --template lune-http my-script
luu create --template lute-guessing my-script

Set up an existing repo:

cd existing-repo
luu init
luu install
luu dev

Add a tool or package:

luu add rojo
luu add stylua
luu add sleitnick/knit
luu add tool:rojo-rbx/rojo
luu add pkg:sleitnick/knit

Configuration

Luumen uses a shared Luau config file:

project.config.luau

Instead of spreading configuration across multiple formats, project.config.luau provides a single place to describe how your project runs.

return {
    project = {
        name = "my-game",
    },

    install = {
        tools = true,
        packages = true,
    },

    tasks = {
        dev = {
            "rojo sourcemap default.project.json --output sourcemap.json",
            "rojo serve default.project.json",
        },
        build = "rojo build default.project.json --output build.rbxl",
        lint = "selene src",
        format = "stylua src",
        test = "lune run test",
        check = {
            "luu lint",
            "luu format",
            "luu test",
        },
    },
}

project.config.luau is designed as a shared standard for the Luau ecosystem.

Luumen reads from it, but other tools can adopt the same file and extend it with their own sections, allowing project configuration to live in one place instead of being split across multiple configs.

Tool-specific files such as rokit.toml, wally.toml, and Rojo project files are still used by their respective tools.

Status

Luumen is currently in version 0.1.0.

License

MIT License. See LICENSE.