Command Line Tools
Dev Server
Three commands cover the inner dev loop: wheels start brings a development server up, wheels stop takes it down, and wheels reload reinitializes the running application without restarting the JVM. You’ll compose these every day while iterating on a Wheels app.
You’ll use this for:
- Running your Wheels app locally while you work on it.
- Stopping the dev server cleanly when you’re done — or before switching branches.
- Reinitializing framework state (routes, settings, DI bindings) after edits that require a full app reload without killing the JVM.
Overview
Section titled “Overview”wheels start is the preferred way to run a Wheels app during development. It wraps LuCLI’s lower-level wheels server start with Wheels-specific bootstrap — forwarding any extra flags through to the underlying server command so things like --port and --version still work. wheels stop is a thin wrapper around wheels server stop for the project directory. wheels reload is Wheels-specific: it talks to the running app over HTTP rather than restarting anything.
wheels start
Section titled “wheels start”Start a Wheels development server for the current project. Delegates to wheels server start under the hood and forwards extra flags to it.
Synopsis
Section titled “Synopsis”wheels start [flags]Any flags you pass are forwarded verbatim to wheels server start. The common ones are listed below — see wheels server start for the full list.
Flags (forwarded to wheels server start)
Section titled “Flags (forwarded to wheels server start)”| Flag | Description |
|---|---|
-p, --port=<port> | Port number for the server (e.g., 8080). |
-n, --name=<name> | Custom name for the server instance. |
-v, --version=<version> | Lucee version to use (e.g., 6.2.2.91). |
--env, --environment=<env> | Environment to use (e.g., dev, staging, prod). |
-c, --config=<file> | Configuration file to use (defaults to lucee.json). |
-f, --force | Force a restart, replacing any server already running for this project. |
--disable-open-browser | Don’t open a browser after the server starts. |
--dry-run | Show the resolved configuration without starting the server. |
--sandbox | Start a transient background server without writing lucee.json. |
Example
Section titled “Example”wheels startPrints Starting Wheels server... in cyan and hands control off to wheels server start in the current project directory. The server runs in the background and the command returns once the server is up, leaving your terminal free.
wheels stop
Section titled “wheels stop”Stop the running Wheels development server for the current project.
Synopsis
Section titled “Synopsis”wheels stopResolves the server instance from the project directory and asks LuCLI to stop it. Under the hood it runs wheels server stop scoped to the project root.
Example
Section titled “Example”wheels stopPrints Stopping Wheels server... in cyan and delegates to wheels server stop. Run it from the project root to take down the background server that wheels start brought up.
wheels reload
Section titled “wheels reload”Reinitialize the running Wheels application without restarting the JVM. Useful after edits to config/settings.cfm, config/routes.cfm, config/services.cfm, or any file that is only read during framework bootstrap.
Synopsis
Section titled “Synopsis”wheels reloadwheels reload detects the running server’s port automatically (from lucee.json, then .env) and hits http://localhost:<port>/?reload=true&password=<password> with the reload password it finds in your project config. If no server is running, it prints No running Wheels server detected. Start one with: wheels start and exits.
Example
Section titled “Example”wheels reloadOn success: Application reloaded successfully. in green. On failure — most often a password mismatch — it prints Failed to reload: <message> and hints at setting WHEELS_RELOAD_PASSWORD in .env or config/settings.cfm.
Dev loop example
Section titled “Dev loop example”The three commands compose into a typical inner loop:
# Bring the server up — it runs in the background and returns controlwheels start
# Iterate on your app# For most CFML edits: just save the file and hit refresh.# For config/routes/services changes, force a reload:wheels reload
# When you're done for the daywheels stop