Overview
The Driverforge CLI (driverforge) is a single, dependency-free binary for Control4 driver
development. It builds and packages drivers locally, and — once you're signed in
— deploys them straight to a controller through the Anvil Agent, no manual
Composer import required.
The driverforge CLI is in preview. Commands and flags documented here may change
before the stable release. Follow along or share feedback on our
roadmap.
What it does
- Build drivers — Bundle Lua source with squish and produce a
.c4zpackage, with optional script encryption and source maps - Deploy — Build your driver and push it to a controller through the Anvil Agent, watching it reload, without switching to Composer
- Sync — Build and hot-swap a driver's Lua into the running instance for fast iteration, skipping the full reload
- Manage context — Sign in once, then choose the organization and the target controller the deploy commands act on
- Upgrade the agent — Update the Anvil Agent running on a controller to the latest release
Quick Start
First, install the CLI if you haven't already.
Building is entirely local and needs no account. Deploying does — it acts on a real controller, so you sign in and pick a target first.
# 1. Build a .c4z from the current project
driverforge build
# 2. Sign in (opens your browser) and choose an organization
driverforge login
# 3. Set up the project for Anvil (SDK, project link, versioning scheme)
driverforge init
# 4. Pick the controller to deploy to
driverforge device select
# 5. Build and deploy in one step
driverforge deploy
Commands
Set up
driverforge init— Add Anvil to an existing driver project
Build & package
driverforge build— Bundle and package your driver- Source maps — Generate source maps for readable stack traces (
driverforge build -s)
Deploy
driverforge deploy— Build and deploy your driver to a controller (full reload)driverforge sync— Build and hot-swap your driver's Lua without a full reload
Account & context
driverforge login— Sign in to Driverforgedriverforge logout— Sign out and remove stored credentialsdriverforge whoami— Show the signed-in userdriverforge org— Choose the active organizationdriverforge device— Choose the target controller
Maintenance
driverforge agent— Upgrade the Anvil Agent on a controllerdriverforge upgrade— Show and apply available upgrades (CLI, agent)driverforge version— Print the CLI version (and the selected controller's versions)driverforge completion— Generate a shell autocompletion script
Coming soon
driverforge debug— Live debugging with IDE support
Run driverforge <command> --help (or driverforge help <command>) for the full flags and
usage of any command.
Global Flags
These apply to every command:
| Flag | Description |
|---|---|
--verbose, -v | Verbose output |
--project-dir | Driver project directory (default: current directory) |
--no-tui | Disable the interactive TUI and print plain output (also applied automatically when piped or under CI) |
--no-update-check | Don't check for a newer driverforge release after the command runs |
--help, -h | Show help for the command |
driverforge --version (on the bare command) prints the CLI version and exits — see
driverforge version for the richer report that includes the
selected controller.