Skip to main content

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.

What it does

  • Build drivers: Bundle Lua source with squish and produce a .c4z package, 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

Build & package

Deploy

Account & context

Maintenance

Coming soon

Run driverforge <command> --help (or driverforge help <command>) for the full flags and usage of any command.

Global Flags

These apply to every command:

FlagDescription
--verbose, -vVerbose output
--project-dirDriver project directory (default: current directory)
--no-tuiDisable the interactive TUI and print plain output (also applied automatically when piped or under CI)
--no-update-checkDon't check for a newer driverforge release after the command runs
--help, -hShow 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.