Skip to main content

Set parameters and variables

Parameters customize one pack installation. Project variables provide reusable values to any pack with a matching parameter name.

Pass installation parameters

Use repeatable --parameter or -p options:

luna install [email protected] \
--parameter companyName="Lunaris Digital Solutions"

Repeated names collect values only when the declaration is an enum with multiple: true. Selection order is preserved. Duplicate selections, values outside the declared enum, and repeated scalar names fail before mutation.

Required values that are not supplied by command input, a composite pack, or a matching project variable prompt in an interactive terminal. Parameter values can control templates and managed-file conditions.

Unattended commands must resolve every required parameter without a prompt. Supply explicit --parameter values, commit compatible project variables, or use composite bindings before running Luna with noninteractive standard input. Luna has no separate --non-interactive option.

Reuse project variables

Store a value in lunapack.yml through the CLI:

luna variables set companyName "Lunaris Digital Solutions"
luna variables list

Multi-select variables use unique string arrays in lunapack.yml:

variables:
features: [api, docker]

An optional multi-select parameter with no input, matching variable, composite binding, or default resolves to [].

Explicit --parameter values take precedence over project variables. Disable all variable matching with --no-variables, or exclude selected names with a repeatable --skip-variable option:

luna install [email protected] --no-variables
luna install [email protected] --skip-variable companyName

Remove a value when the project no longer needs it:

luna variables rm companyName

Variables are project configuration, while explicit installation inputs are not persisted as variables. Pack authors define string, bool, and enum parameters. See Use Scriban templates for declarations, template rendering, conditions, and the managed-file files.path and files.relative_path functions. Composite graphs use one namespace for parameter names; see Composition and lifecycle for declaration and binding precedence.