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.

Preview

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 .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

  • driverforge build — Bundle and package your driver
  • Source maps — Generate source maps for readable stack traces (driverforge build -s)

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.