Hybrid Plugins

Extend your UXP plugins with the power of C++ native libraries.

Overview

A UXP plugin can provide extensive functionality using JavaScript, HTML, and CSS. However, situations can arise where the UXP runtime cannot address specific programming needs—for instance, performance-critical computation or integration with existing native codebases. For these scenarios, UXP offers Hybrid Plugins.

A UXP Hybrid plugin is a standard UXP plugin that can load dynamically-linked shared objects written in C++. The concept is similar to C++ addons in Node.js: compiled native libraries are loaded at runtime via the require() function, just like any other JavaScript module.

const addon = require("sample.uxpaddon");

The loaded addon exposes C++ functions and properties directly to your JavaScript code, enabling seamless two-way communication between the two environments.

data-variant=info
data-slots=heading, text

Advanced Topic

Building Hybrid plugins requires proficiency in C++. Make sure you also have experience writing UXP plugins and are comfortable using the UXP Developer Tool before diving in.

Use Cases

Minimum Requirements

Component
Minimum Version
Premiere
26.2
UXP Developer Tool (UDT)
2.2
Creative Cloud Desktop
5.10

The UXP Hybrid Plugin SDK

Download

Download the UXP Hybrid Plugin SDK from the Adobe Developer Console (if you get "Access Denied", see this FAQ). Unpack the contents and read the included README.md for platform-specific build instructions.

Adobe Developer Console

SDK Contents

The SDK provides C++ headers, utilities, and templates for building native addons (called uxpaddons). Its API surface is intentionally similar to Node-API—if you're familiar with Node.js native addons, you'll feel right at home.

Folder
Contents
src/api
UxpAddonTypes.h — fundamental data types (opaque abstractions consumed by the SDK APIs). UxpAddonShared.h — the full addon API surface, closely mirroring Node-API.
src/utilities
Utility classes with common helpers. UxpAddon.h — provides the UXP_ADDON_INIT and UXP_ADDON_TERMINATE macros for registering initialization and termination routines.
template/template-dev
Source code for a minimal addon example—use it as a starting point for your own plugin.
template/template-plugin
A pre-compiled Hybrid plugin ready to load in UDT.

Releases

The SDK is versioned independently from the host application (it is labeled with a UXP version, since Hybrid plugins are designed to be app-independent). Announcements of new SDK releases are made in the Changelog. Updating to a new SDK version requires recompiling and republishing your plugin; however, plugins built with an older SDK remain forward-compatible with newer host application versions.

Next Steps

Ready to build? Head over to Building Hybrid Plugins for the complete development guide—from compiling your first uxpaddon to packaging and distributing the finished plugin.