Rules are loaded from <rules-dir>/<RuleName>/ for each -a on the command line. The rules directory defaults to .codegen/rules. The input is a single header or a directory (recursively scanned for .h / .hpp).
Auto-load includes and defines from a build-system config (codexx.workspace.yaml or CMake file-api). Default workspace root is the CWD. Requires Professional or Team licence — emits E102 and exits otherwise.
--workspace-dir <path>
Override workspace root for --use-workspace.
When --use-workspace is active, includes and defines from the build-system config are merged with any explicit -I / -D. Manual -D flags take precedence over workspace defines (warning W002); inputs not found in the build-system config emit warning W001.
Don’t write outputs. Emits a unified diff (zero context, --- a/... / +++ b/... / @@) of every would-be file change to stdout. Available on every licence tier; intended for CI and LLM-driven workflows.
--show-tui
off
With --dry-run, opens the interactive FTXUI diff viewer instead of printing plain output. Requires a Professional+ licence; on Community tier emits E102 and falls back to a filename list.
-v, --verbose
off
Per-entity progress log.
-c, --config <path>
(unused)
Generic profile-config slot inherited from the support CLI; codegen does not currently consume this value.
-p, --profile <name>
(unused)
Generic named-profile slot inherited from the support CLI; not currently consumed.
-h, --help
—
Print usage and exit 0.
Debugger flags (only present when built with LUAU_ENV_ENABLE_DEBUGGER)
Enable the LuaU DAP server; the engine blocks until an IDE attaches.
--debug-port <port>
50001
TCP port the DAP server listens on.
--debug-source-root <path>
absolute path to --rules-dir
Source root reported to the IDE for file navigation.
The Professional-tier vscode_dap_debugger capability is not currently enforced at runtime — when the binary is built with the debugger enabled, --debug works on any tier. The licence gate ships in a future release.
codegen license fingerprint Print this machine's fingerprint
The license subcommand short-circuits the regular pipeline (no rules are loaded). Activation and deactivation moved to the CodeXX DTDK manager (codexx_dtdk_manager); codegen license activate / deactivate now print a pointer to the manager and exit non-zero. Output formats:
$ codegen license check
License valid.
Tier: Professional
Email: user@example.com
Offline: yes (cached token)
Expiry: 2026-12-31T23:59:59Z # only if the licence carries an expiry