Skip to main content

Organizations & devices

The deploy commands act on a specific controller inside a specific organization. The CLI remembers both so you don't have to pass them every time: pick an organization with driverforge org, then a target device (controller) with driverforge device. Both require you to be signed in.

How the target is chosen

When you run a controller-scoped command (deploy, sync, upgrade), the CLI resolves the controller in this order:

  1. An explicit --device <name|id> flag
  2. The remembered controller for the active organization
  3. An interactive picker (when nothing is remembered)

Pass --select to any deploy command to force the picker and re-choose. The CLI never silently picks a default: deploying to the wrong controller is risky, so the choice is always explicit.

Why the IP, not the hostname

A Control4 controller's hostname (e.g. core1-000FFF…) is an identifier, not a resolvable DNS name, so the CLI connects by IP address. Selecting a controller also pins its TLS certificate fingerprint, so the CLI can verify it's talking to the right one on later deploys.

Commands

In your prompt

Using the Spaceship prompt? A small zsh section can show the active org and controller right in your shell prompt, so you always know what a deploy will target.