Early access—OpenAVC is pre-v1 and under active development. Great for evaluation and testing, not yet recommended for production spaces.Pre-v1, not yet recommended for production.
Report issues →
Changelog
What's new in OpenAVC. Every release, every feature.
v0.10.3
Plugins can register macro actions and script methods. Audio support in the asset library and panel. Pi image, Docker, and Windows updater fixes.
Plugins
Plugins can register macro actions through a MACRO_ACTIONS schema; their actions appear in the macro builder under a Plugin Actions group with a schema-generated form
Plugins can register script methods through a SCRIPT_API schema; user scripts call them as openavc.plugins.<plugin_id>.<method>(...)
Script editor autocompletes registered plugin methods and shows their docs on hover
Plugin select-field options can now point at a state key, so a plugin can offer dropdowns that update as state changes (e.g. an asset list)
Plugin detail page in the IDE renders an optional usage block as Markdown so users see how to actually use the plugin
Enabling or disabling a plugin refreshes the macro builder action list immediately, instead of after a page reload
Audio in the asset library
Asset uploads accept mp3, wav, ogg, and m4a in addition to images
Per-file caps of 50 MB for images and 200 MB for audio, with a per-project total of 5 GB
Asset browser has filter chips for all / images / audio, with a native preview player on audio entries
Program tab now has an Assets section that lists every uploaded asset
Panels play audio directly through the panel runtime, driven by the new Audio Player plugin; every connected panel plays in sync
Bug Fixes
Pi image: First boot now lands on the OpenAVC panel instead of a blank labwc desktop. The Pi OS rename wizard was overriding our autologin user.
Docker: Discovery scans work inside containers. The shipped Compose file uses host networking with NET_RAW, and the image grants cap_net_raw to ping. Install path simplified to "download Compose file, docker compose up -d".
Windows: Updates now finish on reboot. The post-install scheduled task was being created with a start time in the past because schtasks silently truncates seconds; we now register the task via XML.
v0.10.2
Fixes the reboot button on Raspberry Pi.
Bug Fix
Raspberry Pi: The reboot button in System Settings now actually reboots the device. The previous version invoked the wrong reboot path and silently failed.
v0.10.1
Fixes a silent in-app update failure on Windows.
Bug Fix
Windows: In-app updates were silently failing in 0.10.0. The installer was being killed by the service manager before it could replace files. Updates now run via Windows Task Scheduler.
To get this fix on an existing 0.10.0 Windows install, manually run the 0.10.1 installer once. Updates from 0.10.1 forward will work normally.
Linux, Raspberry Pi, and Docker were unaffected.
v0.10.0
Major Driver Builder overhaul, cloud reliability fixes, and a couple of platform bugs squashed.
Driver Builder
Tab layout collapsed from 10 to 6, with related fields grouped together
Per-tab validation badges so you can see at a glance which sections need attention
Validation messages appear inline next to the field they refer to, not in a wall at the top
Every section has a help link to the relevant documentation page
Built-in drivers visually distinguished from drivers you have added
First-class editor for frame parsers (binary protocols)
First-class editor for Telnet authentication blocks
First-class editor for on_connect lifecycle hooks
First-class editor for OSC argument types and value bounds
First-class editor for discovery hints (UPnP types)
Full command parameter schema editor
Catalog metadata and help fields on the General tab
HTTP commands fully supported, including custom headers
Live Test panel rebuilds the driver against the production code path so what you test is what ships
Duplicate an existing driver as a starting point for a new one
Drivers and Plugins
Cleaner navigation between the driver list and editor
Action toolbar moved into the header for easier reach
Refuses to uninstall a driver or plugin that is in use, with a clear message about what depends on it
Uninstall errors that do happen are clearer about why
Browse Drivers splits multi-brand drivers into one card per brand, so a search for "Sony" actually finds Sony devices
Cloud
Fixed a reconnect loop after a handshake error (a typo in the exception handler meant connections never recovered)
A failed session resume no longer drops the entire connection
AI Assistant
Driver search and device match tools now query the community driver index for real instead of returning placeholder data
Bug Fixes
Windows: Rollback section no longer appears on fresh installs (was offering a "Rollback to v?" button)
Pi image: Fixed an autologin override that left newly flashed Pis sitting on a blank kiosk screen
Documentation
Driver Builder walkthrough rewritten for the new editor
v0.9.0
Browse Drivers refresh, declarative Telnet login for YAML drivers, smarter discovery, and Programmer login.
Browse Drivers Refresh
Video, Streaming, and Power are first-class categories
HTTP and OSC drivers are properly tagged in the catalog
Each driver shows tags, overview, compatible models, and a deprecated badge when set
Declarative Telnet Login
YAML drivers can declare a Username/Password handshake without writing Python
Atlona OmniStream and Lutron HomeWorks QS now work out of the box with login auth enabled
Smarter Discovery
Network discovery uses the community device catalog to identify equipment by exact manufacturer and model
When a model is recognized, OpenAVC suggests the right driver directly
Programmer Login
The Programmer IDE now has its own login screen
Set a Programmer username and password in System Settings to require sign-in for editing
Simulator
Auto-generated simulator now handles HTTP-based YAML drivers
Simulator mirrors the new declarative login handshake for end-to-end testing
Stability and Polish
WebSocket broadcasts fan out concurrently for smoother panel updates
Project files preserve unknown fields, making rollback safer after editing on a newer version
Plugins now use a dedicated variable_write capability for setting user variables
Panels can no longer write outside the var.* and plugin.* state namespaces over WebSocket
Programmer and Panel passwords set at runtime are enforced immediately without a restart
New state.delete WebSocket message replaces the previous workaround for clearing state keys
Programmer IDE debounces plugin event refetches to eliminate flicker on plugin-heavy projects
Driver Definitions
Canonical YAML keys for command and response definitions are now send and match
Legacy string and pattern aliases still load with a one-time deprecation warning
v0.8.2
Brand refresh, Add Device improvements, simulator fixes, and Pi image build fix.
Branding and Theming
Programmer IDE and Simulator now use the OpenAVC brand green palette
Both apps show the OpenAVC favicon and logo
Dark/light theme toggle in System Settings
Add Device Dialog
Selecting a driver auto-fills Device ID and Display Name
IDs generated from driver category with automatic numbering
Driver and Device ID fields marked as required
Simulator
Device cards with many controls now scroll instead of clipping
Closing the simulator tab shuts down the process automatically
Fixed initial state mismatch for OSC drivers with value maps
Pi Image Build
Fixed build script path issue that broke the Pi image CI pipeline
v0.8.1
Bug fix release. Fixes for the update system, macro/trigger concurrency, serial device communication, device reconnection, cloud state sync, and project migration.
Update System
Fixed issues that prevented in-app updates from working on Linux and Pi deployments
Update helper script, release archive format, and artifact naming are now aligned end to end
Windows silent updates and rollback hardened
Macro and Trigger Reliability
Macros called from two different triggers simultaneously no longer incorrectly block each other
Cancel groups now work correctly when two macros in the same group start at the same time
Startup triggers no longer silently fail to fire
Disabling a trigger while a macro is queued now correctly prevents it from firing
Serial and UDP Device Communication
Fixed intermittent wrong state values on serial devices under load
Send lock now held through the full send-and-wait cycle on serial and UDP, matching TCP
Device Reconnection
Manual reconnect no longer causes a spurious double-connect two seconds later
Cloud State Sync
Cloud dashboard no longer shows stale values when many devices reconnect at once
State relay keeps latest value per key instead of truncating, and sends in chunks instead of dropping
Project Migration
Upgrading projects from v0.3.0 to v0.4.0 now correctly preserves device group assignments
v0.8.0
OSC transport, Behringer X32 driver, per-panel page navigation, concurrent device startup, ISC security, project save conflict detection, and a broad security and stability pass.
OSC Transport
Open Sound Control (OSC) is now a built-in transport type alongside TCP, Serial, UDP, and HTTP
Build OSC drivers in the Driver Builder UI or YAML with address paths and typed arguments
Device simulator supports OSC with automatic address-based handlers
Per-Panel Page Navigation
Each connected panel now tracks its own current page independently
Navigating on one panel no longer changes the page on every connected panel
Faster Startup
Devices connect concurrently at startup instead of one at a time
Spaces with many devices come online noticeably faster
Device Connection Visibility
Offline devices show the reason (connection refused, timeout, DNS failure) and reconnect attempt count
Sidebar shows live online/offline device counts
OSC and HTTP devices are now verified on connect instead of always reporting as connected
ISC Security
Inter-System Communication now uses HMAC challenge-response authentication instead of plaintext shared keys
Project Save Conflict Detection
Multiple sessions editing the same project no longer silently overwrite each other
Stale saves get a conflict warning instead of quietly winning
New Drivers
Behringer X32 Digital Mixer (OSC): full console with 32 channels, 16 buses, 6 matrices, 8 DCAs, aux inputs, FX returns, scene/snippet/cue recall. Compatible with Midas M32.
Audio-Technica ATDM-1012 Digital SmartMixer with full device simulator
Audio-Technica ATDM-0604 Digital SmartMixer with full device simulator
Driver Fixes
Fixes across Samsung MDC, LG SICP, Extron SIS, Crestron NVX, Novastar H Series, vMix, Sony Bravia, PJLink, Audio-Technica, Sonos, and Dante DDM
Improved state polling reliability, response parsing, reduced log noise, and corrected simulator controls
YAML Driver Enhancements
On-connect commands: send initialization commands automatically when the transport connects
Simulator push notifications: simulators can broadcast unsolicited state changes to clients
Fader range scaling: map protocol values to display ranges on panels
Security Hardening
Authentication tokens no longer exposed in error responses
Project library and AI proxy endpoints now require authentication
Plugin installation validates filenames, URLs, and version requirements
Driver loading detects and rejects duplicate Python driver IDs
URL inputs validated against SSRF attacks
Programmer IDE
Startup errors surfaced as a popup on Windows instead of failing silently
Clear error message when the server port is already in use
Improved Cloud view UX with copy buttons, uptime formatting, and password field
Discovery scan reports progress during finalize phase
Update system shows which step failed and tracks pending updates
ARIA dialog attributes on all modals
Editor Fixes
Fixes across the variable, macro, and binding editors
Status LED text labels, day-of-week format tokens, matrix drag containment, fader keyboard step
Multi-state feedback labels render correctly on buttons with icons
Engine Reliability
Overlapping project reloads are serialized
Triggers stop before variable cleanup during reload
Device removal serialized to prevent state corruption
Backup restore clears orphaned assets and includes persisted state
Project and driver saves use atomic writes
New/Open/Restore properly clears all previous project data from the UI
Linux Update System
Redesigned around a systemd ExecStartPre helper script for more reliable rollback and service integration
Plugin System
The loader enforces min_openavc_version so incompatible plugins fail with a clear message instead of crashing
v0.6.0
Theme Studio, live panel canvas in the UI Builder, dedicated panel support, and a new wait_until macro step.
Theme Studio
Complete rebuild of the theme editor into a full-screen design workspace with a live-scaled panel preview
Quick Adjust controls for brand accent, corner roundness, surface style, and typography
Click any element in the preview to jump straight to its settings
Modified values are highlighted with per-row reset buttons so you always know what you've changed
Contrast checker flags readability issues between text and background colors
Rich preset gallery renders each built-in theme as a visual card with actual colors, fonts, and surface style
Every panel element is now fully driven by CSS variables from the theme
UI Builder: Live Panel Canvas
The design canvas now runs the real panel renderer instead of simplified previews
What you see in the editor is what the panel looks like, down to the pixel
Edit mode, preview mode, and the live panel all render from the same code path
Theme changes and styling tweaks are immediately visible without saving first
UI Builder: Outline Panel and Project Validation
New Outline tab with a searchable layers list, z-order controls, and per-element locking
Validate Project button scans for dangling references to removed devices, deleted macros, or missing pages
Clickable results navigate directly to the broken element
UI Builder Polish
Multi-select copy/paste with Ctrl+C/V
Escape cancels in-progress resize and drag operations
Scoped undo with descriptions for settings, master elements, page groups, macros, and variables
Autosave with Ctrl+S, manual save button, and a four-state save indicator
Inline element ID rename with automatic reference rewriting across bindings, visibility, macros, and triggers
Alignment buttons work on multi-selections
Click palette items to add at the next free grid cell
Visibility conditions support AND/OR logic
Image elements get object-fit control (contain, cover, fill)
New elements inherit their appearance from the active theme instead of showing hardcoded defaults
Dedicated Panel Support
Server-side pairing page and setup guides cover dedicated panel deployment for wall-mounted tablets
Full Android and iOS guides for basic setup, full lockdown, fleet provisioning, and troubleshooting
Android Panel app available as a signed APK with mDNS discovery, QR pairing, dedicated panel lockdown, and boot-to-panel
iOS app is next
New Macro Step: wait_until
Macros can pause execution until a state condition is met
Configurable timeout with optional fallback steps if the condition is never satisfied
Useful for sequences that depend on a device reaching a certain state before continuing
Matrix and Plugin Improvements
Matrix elements have show_lock and show_mute toggles to hide buttons per instance
Plugin panel elements with a config_schema get a typed form in properties instead of raw JSON
Image Tinting and Frameless Buttons
Image elements support color tinting so a single icon asset can match any theme
Buttons can be set to frameless for transparent, icon-only tap targets
v0.5.14
QR pairing and mDNS discovery for the upcoming Panel apps, plus error recovery in the IDE and platform hardening.
QR Code Pairing for Panel Apps
The Panel Access card now shows a QR code alongside the panel URL
Scan from a tablet or phone to land on a page with Open Panel (browser) and Install App options
Groundwork for the native OpenAVC Panel apps for Android and iOS, in development
Network Discovery for Panel Apps
Server advertises itself on the local network via mDNS as _openavc._tcp.local.
Upcoming Panel apps will use this to auto-find your OpenAVC system without typing an IP address
Can be disabled in discovery settings if your IT policy requires it
Per-View Error Recovery
If a view in the Programmer IDE hits an unexpected error, you now see a recovery screen with a clear message and retry button
The rest of the IDE keeps working while you recover from the crash
Minimum Platform Version for Drivers
Community drivers can declare a minimum OpenAVC version they require
Installing a driver that needs a newer platform version gives a clear error at install time instead of a runtime failure
Fixes
Deleted devices no longer leave stale state in the cloud after the agent reconnects
Hardened project file loading, ZIP extraction, and WebSocket broadcast against malformed input
Tightened plugin recursion limits and regex validation to prevent runaway plugin code from hanging the server
Fixed a throttle state issue that could cause polling to stall after long disconnects
Logged previously swallowed exceptions to make troubleshooting easier
v0.5.13
UDP transport for drivers, plus cloud tunnel fixes for custom ports and asset loading.
UDP Transport
UDP is now a first-class transport option for YAML and Python drivers
Supports configurable local/remote ports, broadcast, and hex encoding
Driver Builder UI includes UDP configuration
Simulator supports UDP device simulation
Cloud Tunnel Fixes
Fixed Panel and Programmer UIs failing to load through cloud tunnels when the server runs on a non-default port
Fixed images and assets not loading when accessing the Panel or Programmer through cloud remote access
v0.5.12
Improved cloud connectivity reliability and cloud-managed system alerts with configurable thresholds.
Cloud Connectivity
State relay and alert monitor now re-initialize automatically when the cloud connection drops and reconnects
Initial device state snapshot is sent when the cloud agent connects, so the portal shows current state immediately
Added reporting when tunnel connections fail on the agent side
Alert System
System resource alerts (disk, memory, CPU) are now managed by the cloud platform instead of being hardcoded in the agent
Alert thresholds, severity, and enable/disable are all configurable from the cloud portal
Threshold alerts now support hysteresis to prevent repeated notifications when a value fluctuates near the boundary
v0.5.11
Fixed a discovery scan performance regression introduced in v0.5.10.
Device Discovery
Fixed scan running slowly and missing device identification due to port scanning performance regression in v0.5.10
v0.5.10
Fixed device discovery missing ports on projectors and other embedded devices, plus UI builder drag-and-drop accuracy.
Device Discovery
Fixed network scanner missing open ports on projectors, DSPs, and other embedded AV devices with limited TCP stacks
PJLink projectors are now reliably detected during scans
UI Builder
Fixed drag-and-drop placing elements to the right of the intended drop position
Fixed button icons disappearing when visual feedback updates the button text
Panel
Fixed clock element not updating when switching between Time, Date, and DateTime modes
v0.5.9
Stream Deck plugin now works on Linux without manual installs, plus panel and builder bug fixes.
Stream Deck on Linux
Stream Deck plugin now installs the HIDAPI library automatically on Linux, matching the seamless Windows experience
Pi images ship with HIDAPI and USB access rules pre-installed
Plugin errors now show clear setup instructions in the Programmer UI instead of raw error messages
Panel
Fixed clock element ignoring Date and DateTime display modes
Fixed images not loading when using uploaded assets
UI Builder
Fixed icons not rendering in Simple (On/Off) visual feedback mode
v0.5.8
Builder and panel now share element styles for pixel-identical rendering, plus slider enhancements and deployment fixes.
UI Builder
Builder element previews now use the same CSS as the touch panel, so what you see in the builder is what you get on the deployed panel
Theme colors, border radius, fonts, and spacing all match exactly between builder and panel
Fixed action bindings on sliders, keypads, matrices, and lists always showing "Incomplete" even when fully configured
Slider
Sliders now support vertical orientation with automatic grid dimension swap
Configurable thumb size for different touch targets
Optional current value display below the slider
Track fill bar shows the current position
Panel
The Connected status indicator now fades out after a few seconds instead of staying visible permanently
Disconnected stays visible the entire time the panel is offline
Pi Kiosk
Fixed Chromium not filling the display on kiosk deployments
Added reboot button to kiosk settings
Fixed touch scrolling and boot experience
Deployment
Fixed driver and plugin installation on Linux deployments
Fixed device discovery on Docker and VPN hosts with multiple network interfaces
Docker image now includes network utilities for discovery
v0.5.6
Programmer preview now runs the real panel, fixing toggle buttons and ensuring identical behavior.
UI Builder
The Programmer preview now embeds the real touch panel instead of a separate reimplementation, so every button mode (toggle, hold repeat, tap/hold) works exactly as it does on the deployed panel
Fixed toggle buttons not firing the off action when the device was already on
Panel supports a page query parameter, so the preview opens directly to the page you're editing
Engine
Hardened toggle and hold action handling to accept both single-action and multi-action button bindings
v0.5.5
Cloud-managed software updates and richer alert conditions.
Cloud
Systems can now receive software updates directly from the cloud platform with verified checksums, instead of discovering releases independently
Alert conditions support new operators including contains, not_contains, and regex matching
Updates
Update download engine refactored for reuse across both GitHub and cloud-managed update flows
Checksum verification extracted into a standalone step for direct hash comparison
v0.5.4
Network adapter control, AI chat improvements, and comprehensive AI safety validation.
Network
Added network adapter selection for device control and discovery, so systems with multiple NICs can target the correct subnet
Cloud & AI
AI chat messages now render with proper markdown formatting
Fixed cloud AI signature failures when returning large discovery scan results
Added device command retrieval via cloud protocol for smarter AI tool use
AI write operations are now validated before saving, catching malformed bindings, invalid macro steps, bad variable types, Python syntax errors, and plugin config mismatches before they reach the project file
Panel
Fixed partial update bug where UI element fields could be left in an inconsistent state if binding validation failed
v0.5.3
Plugin dependency fixes, documentation refresh, and cloud protocol improvements.
Windows Installer
Fixed plugin pip dependency installation failing silently, which caused plugins like Stream Deck to error on startup
Programmer IDE
Added documentation links to empty states throughout the IDE so new users always know where to learn more
Refreshed and audited all user-facing documentation for accuracy
Panel
Fixed hold-repeat buttons continuing to fire after a WebSocket disconnect
Cloud & AI
Added project data retrieval via cloud protocol messages
Cloud handshake now reports the deployment type for better diagnostics
CI/CD
Fixed Pi image build not triggering after a release
v0.5.2
Instant startup experience, Windows installer reliability, and dashboard improvements.
Startup Experience
The server now shows a loading page instantly when opening Panel or Programmer, instead of a browser error while the engine initializes
The loading page automatically transitions to the real UI once the system is ready
Windows Installer
Fixed path resolution across all deployment types so the update system, simulator, and driver loader work correctly in PyInstaller-bundled installs
System tray now properly elevates to admin when controlling the service
"Check for Updates" in the tray opens the Programmer IDE Updates view instead of running silently in the background
Dashboard & UI
Dashboard now shows the actual software version instead of the project format version
Panel access URL is displayed on the dashboard for easy sharing with end users
Updates section is always visible in the sidebar and checks automatically on startup
Fixed stale version display after in-place updates on Linux and Pi
Cloud & AI
Updated all AI tool definitions to match current APIs
Fixed tunnel proxying for plugin iframe content
v0.5.1
Fixes device discovery and cloud heartbeat metrics on deployed installs.
Bug Fixes
Fixed device discovery scan failing with "Invalid scan parameters" on all deployed installs (Windows installer, Docker, Linux archive, Pi image)
Fixed cloud heartbeat sending degraded metrics instead of full system data (CPU, memory, disk, temperature)
Scan error messages now show the actual cause instead of a generic "Invalid scan parameters"
v0.5.0
Built-in device simulator for testing without hardware, major Driver Builder expansion, and a comprehensive driver system audit.
Device Simulator
Simulate devices directly from the Programmer IDE without any real hardware connected
Simulator runs as a managed subprocess that intercepts device connections and responds like real equipment
Interactive Simulator UI with device-specific control panels for projectors, displays, switchers, audio DSPs, and cameras
Auto-generates simulator controls from driver state variables when no custom controls are defined
Inject network conditions (latency, jitter, packet drops) and device errors to test edge cases
Auto-syncs simulated devices when the project changes so new devices appear without restarting
Simulator badge in the Browse Drivers view shows which community drivers support simulation