Skip to content

Command Line Tools

CFML Execution

wheels cfml, wheels run, and wheels repl are three LuCLI-level entry points for executing CFML directly. None of them bootstrap a Wheels application — they give you a raw Lucee engine for quick experiments, script files, and interactive exploration. Because they ship with LuCLI itself, the wheels binary inherits them whether you installed LuCLI standalone or through the Wheels distribution.

You’ll use this for:

  • Evaluating a one-off CFML expression from the shell and piping the result elsewhere.
  • Running a reusable .cfm, .cfs, or .lucli script file with arguments.
  • Dropping into an interactive CFML prompt to explore language behavior without a project.

These three commands all execute CFML without loading your Wheels app — no routes, no models, no ORM, no config/settings.cfm. They exist at the LuCLI layer, below the Wheels module. When you need to poke at models, services, or routes with the framework fully wired in, use the project-scoped wheels console instead.

Execute a CFML expression (or short script fragment) supplied on the command line.

synopsis — illustrative
wheels cfml <expression> [<expression> ...]

All positional arguments are joined with a single space and handed to the Lucee script engine as one expression.

cfml takes one or more tokens on the command line, joins them, and runs the result through the Lucee script engine. The return value of the expression becomes the command’s execution result but is not automatically printed to stdout — if you want visible output, wrap the expression in writeOutput() or writeDump().

wheels cfml takes no command-specific flags. It accepts the global flags inherited from the root wheels command (for example, --verbose, --debug, --timing).

Terminal window
wheels cfml 'now()'

The expression runs through the Lucee engine and the process exits with code 0. To see the value, emit it explicitly:

Terminal window
wheels cfml 'writeOutput(1 + 2)'

Sample output:

sample output
3

Execute a CFML script file (.cfm, .cfs) or a LuCLI batch script (.lucli).

synopsis — illustrative
wheels run <script> [<arg> ...]

run resolves the script path relative to the current working directory, dispatches on the file extension, and executes the file:

  • .cfm — executed as a CFML template via the Lucee engine.
  • .cfs — executed as a CFML script file via the Lucee engine.
  • .lucli — executed as a LuCLI batch script (LuCLI’s own scripting DSL, not CFML).
  • .cfcnot supported. Use a module entry point instead (e.g. wheels modules run <module>).

Any trailing arguments after the script path are passed through to the script. The root wheels command also accepts a bare script path as a shortcut: wheels hello.cfm behaves identically to wheels run hello.cfm.

wheels run takes no command-specific flags beyond the script path and its arguments. Global flags from the root wheels command (--verbose, --debug, --timing) still apply.

illustrative — multi-command example
wheels run hello.cfm
wheels run script.cfs arg1 arg2
wheels run deploy.lucli

The first invocation executes hello.cfm as a CFML template. The second runs script.cfs with two trailing arguments (available to the script). The third dispatches to the LuCLI batch runner for a .lucli file.

Start an interactive CFML read-eval-print loop. No Wheels app, no project context — just a prompt attached to the Lucee engine.

synopsis — illustrative
wheels repl [flags]

repl drops you into a line-edited CFML prompt (cfml> by default — the prefix reflects the active LuCLI profile). Each line you enter is handed to the Lucee script engine; non-null results print to the terminal. History persists to ~/.lucli/repl_history (500 lines) so you can arrow-back through previous expressions across sessions.

FlagDescription
-h, --helpShow command help and exit.
-V, --versionPrint LuCLI version and exit.

repl inherits the global flags from the root wheels command as well (for example, --verbose, --debug).

InputBehavior
help or ?Show REPL help.
exit or quitExit the REPL.
Ctrl+CCancel the current input line.
Ctrl+DExit the REPL.
example REPL session — illustrative
$ wheels repl
🚀 CFML REPL - LuCLI 0.3.5
ℹ Type CFML expressions to evaluate. Type 'exit' or Ctrl+D to quit.
cfml> 1 + 2
3
cfml> dateFormat(now(), 'yyyy-mm-dd')
2026-04-20
cfml> exit
👋 Goodbye!
CommandUse when
cfml '<expr>'One-off expression, pipe-friendly, no interactivity.
run script.cfmReusable script on disk; accepts trailing arguments.
replInteractive exploration, multiple expressions, history.

All three share the same execution surface (the Lucee script engine with no Wheels app bootstrapped). Pick the one that matches how you want to deliver input.