RUNE CLI - Getting Started
RUNE CLI is the command-line tool for executing R.U.N.E. – Routing & Utility Node Editor flows without the graphical interface.
Installation
- Download RUNE CLI from itch.io
- Extract the archive
- Add the executable to your PATH (optional, but recommended)
Basic Usage
Execute a flow by providing a direct path to the flow file:
runecli path/to/flow/flow.json
Or execute a flow by ID from the flows directory:
runecli --run-flow myflow
Command Line Options
runecli [options] <flow-path>
runecli [options] --run-flow <flow-id>
Options
--cache-dir <path>: Specify the cache directory (overrides config)--flows-dir <path>: Specify the flows directory (overrides config)--output <format>: Set output format (json,text,none). Default:text--log-level <level>: Set log level (debug,info,warn,error)--flow-log-mode <mode>: Set flow log mode (perflow,global,none)--run-flow <flow-id>: Run flow by ID from flows directory--helpor-h: Show help message
Output Formats
json: Output execution results as JSON (useful for automation)text: Output human-readable text summary (default)none: No output (silent mode)
Environment Variables
RUNE CLI supports environment variables through .env files and the system environment. Variables can be accessed in flows using the getEnv() function.
Environment File Loading
RUNE CLI automatically loads environment variables from .env files in the following order:
-
Executable directory: First checks for environment-specific file, then default
{rune_env}.env(ifRUNE_ENVis set).env
-
Flow directory: Then checks flow-specific directory (overrides executable directory)
{rune_env}.env(ifRUNE_ENVis set).env
Flow directory variables override executable directory variables when the same key exists.
RUNE_ENV Variable
The RUNE_ENV system environment variable controls which environment-specific .env file is loaded. Valid values:
prodorproduction: Loadsprod.envdev,develop, ordevelopment: Loadsdev.envstageorstaging: Loadsstage.env
If RUNE_ENV is not set or invalid, only .env files are loaded.
Variable Substitution
Environment files support variable substitution using ${VAR} or $VAR syntax:
# .env file
API_URL=https://api.example.com
API_KEY=secret123
FULL_URL=${API_URL}/v1?key=${API_KEY}
Variables are resolved first from previously loaded variables, then from system environment variables.
Accessing Variables in Flows
Use the getEnv() function in Luau scripts:
local apiKey = getEnv("API_KEY")
local apiUrl = getEnv("API_URL", "https://default.example.com") -- with default value
Example Environment Setup
# Set environment
export RUNE_ENV=production
# .env file in executable directory
DATABASE_URL=postgres://prod-db.example.com
API_KEY=prod-key-123
# prod.env file in flow directory (overrides executable directory)
API_KEY=flow-specific-prod-key-456
Exit Codes
0: Flow executed successfully1: Flow execution failed2: Invalid arguments or configuration error
Examples
Execute a Flow by Path
runecli /path/to/myflow/flow.json
Execute a Flow by ID
runecli --run-flow myflow
Execute with Custom Directories
runecli --cache-dir /tmp/rune-cache --flows-dir /home/user/flows --run-flow myflow
Get JSON Output
runecli --output json --run-flow myflow
Silent Execution (No Output)
runecli --output none --run-flow myflow
Set Log Level
runecli --log-level debug --run-flow myflow
Integration Examples
Shell Script
#!/bin/bash
if runecli /path/to/flow/flow.json; then
echo "Flow executed successfully"
else
echo "Flow execution failed"
exit 1
fi
CI/CD Pipeline
- name: Execute RUNE Flow
run: runecli --output json --run-flow deploy
- name: Execute with Environment
env:
RUNE_ENV: production
run: runecli --output json --run-flow deploy
Next Steps
- Learn about flow structure (coming soon)
- Explore Luau API for scripting
- Check node reference for available nodes