
A modern CLI framework for Lua.
Let there be light in your terminal.
Features
Everything you need to build production-ready CLI tools.
Fluent API
Expressive, chainable method syntax. Define commands, arguments, flags, and actions in one readable call.
Project Generator
Scaffold complete CLI projects with tests, Makefile, and sample commands via lumos new.
Rich UI
Colors, progress bars, spinners, tables, and interactive prompts out of the box.
Portable Bundles
Distribute your app as a single executable with lumos bundle.
Shell Integration
Auto-generate bash, zsh, fish completions, man pages, and Markdown docs.
Security Built-in
Input sanitization, path traversal protection, safe file ops, and shell escaping.
Structured Logging
5-level logger with JSON context, child loggers, and file output support.
Cross-Platform
Works on Linux, macOS, and Windows (WSL) with cross-platform TTY detection.
Quick Start
From zero to CLI in under a minute.
local lumos = require('lumos')
local app = lumos.new_app({
name = 'mycli',
version = '0.1.0',
description = 'My CLI app'
})
app:command('hello', 'Say hello')
:action(function(ctx)
print('Hello, world!')
return true
end)
app:run(arg)CLI Tool
Scaffold and bundle with built-in commands.
$ lumos new
Generate a new CLI project with a single command. Includes tests, Makefile, README, and sample commands.
- Tests & Makefile included
- Sample commands scaffold
- README template
$ lumos bundle
Bundle your Lua application into a single portable executable. Perfect for distribution.
- Single binary output
- Cross-platform support
- Zero runtime dependencies