Build Better Control4 Drivers, Faster
Anvil by Driverforge lets you see exactly what Control4 is sending your driver. Real-time events, logs, and errors all in one place — no more print() debugging.

How Anvil works
Four pieces take your driver from your editor to full production visibility.
CLI
Initialise, build and deploy drivers to your controller right from your local terminal without context switching.
SDK
Automatically instruments all event handlers, forwards logs and reports unhandled errors.
Agent
Connect your driver to the Anvil cloud streaming all your insights in real time.
Cloud
Live feed of everything your driver does, as it happens, all from a single pane of glass.
Everything your driver does, visible
Events, logs, and errors from every controller — in real time.
Events
Every callback as it happens — OnDriverInit, ReceivedFromProxy, and 150+ more. Real-time, no polling, timed.

Logs
Your print() statements, delivered instantly to your browser. Filter, search, and never lose a log again.

Errors
Lua errors with stack traces, grouped by fingerprint. Know exactly what broke and how often.

Events
Every callback as it happens — OnDriverInit, ReceivedFromProxy, and 150+ more. Real-time, no polling, timed.

Logs
Your print() statements, delivered instantly to your browser. Filter, search, and never lose a log again.

Errors
Lua errors with stack traces, grouped by fingerprint. Know exactly what broke and how often.

Real-Time Event Stream
See every handler call your driver receives — OnPropertyChanged, ExecuteCommand, ReceivedFromProxy and 100+ others — with the exact arguments, timing, and result.
Log Forwarding
Forward your driver's logs to Anvil and read them in real time, persisted across driver reloads and Composer refreshes. No more keeping the Lua tab open.
Error Tracking & Grouping
Capture every exception with a full stack trace, automatically grouped by fingerprint so you fix unique issues instead of wading through duplicates.
Source-Mapped Stack Traces
Map squished, bundled Lua back to your original source files, so errors point at the line you actually wrote — not the bundle.
Automatic Instrumentation
Add the Anvil SDK and 100+ handlers are captured automatically — no per-handler wiring, no print() debugging.
Multi-Controller Visibility
Watch activity across every controller in your project from one place, with per-controller filtering to zero in on the one you care about.
Filtering & Search
Slice events, logs, and errors by status, handler, controller, and time — or query them directly with the Anvil Query Language.
The CLI
Build, deploy, and hot-swap drivers straight from your terminal — no manual Composer imports while you iterate.