A collection of sample plugins for Adobe Premiere Pro built with UXP. Use them as a reference, adapt them in your own projects, or explore them to understand the Premiere Pro UXP API surface. The full API reference is available at developer.adobe.com/premiere-pro/uxp.
New to UXP plugins? We recommend starting with the official Building your first UXP plugin tutorial. It walks through scaffolding a plugin with the UXP Developer Tool and loading it into Premiere Pro. The samples in this repository will be easier to follow afterwards.
- Prerequisites
- Samples
- Version compatibility
- Getting started
- TypeScript support
- Linting
- Frequently asked questions
- Additional resources
- Contributing
- License
| Tool | Version | Where to get it |
|---|---|---|
| Premiere Pro (stable or beta) | 25.2 or newer |
adobe.com/products/premiere |
| UXP Developer Tool (UDT) | 2.2 or newer |
Install via Creative Cloud Desktop |
| Node.js | LTS (18.x or newer) |
nodejs.org |
| Code editor | — | Visual Studio Code, Cursor, or any editor of your choice |
Before loading any plugin from UDT, enable Developer Mode in Premiere Pro:
Settings → Plugins → Enable developer mode, then restart Premiere Pro.
| Sample | Description | Stack | Build required |
|---|---|---|---|
premiere-api |
A comprehensive reference panel that exercises a broad set of Premiere UXP APIs: projects, sequences, markers, metadata, effects, transitions, keyframes, source monitor, import/export, encoder, transcripts, and project conversion (AAF, FCPXML, OTIO). The recommended starting point when investigating how a specific API behaves. | TypeScript | Yes |
metadata-handler |
A production-style workflow panel for managing project item metadata. Supports column-to-column copy and exchange, batch updates with prefix/suffix/sequence numbering, metadata export, and clip marker export. Ported from a popular CEP panel used in film turnover workflows. | JavaScript | No |
oauth-workflow-sample |
An end-to-end example of integrating an OAuth 2.0 authorization-code flow into a Premiere Pro UXP plugin, using Dropbox as the example service. Includes a small Node.js server that brokers the token exchange. | JavaScript + Node.js server | Server only |
- To learn the Premiere UXP API →
premiere-api - To study a complete, production-style workflow →
metadata-handler - To authenticate against a third-party service →
oauth-workflow-sample
The values below are sourced directly from each sample's manifest.json and package.json. In the event of a discrepancy, the manifests are authoritative.
| Sample | Min Premiere | @adobe/premierepro |
Manifest |
|---|---|---|---|
premiere-api |
25.1.0 |
^26.3.0-beta.67 |
v5 |
metadata-handler |
25.2.0 |
^26.3.0-beta.67 |
v5 |
oauth-workflow-sample |
25.2.0 |
— | v5 |
git clone https://github.com/AdobeDocs/uxp-premiere-pro-samples.git
cd uxp-premiere-pro-samplesEach sample has its own build (or no-build) requirements.
premiere-api — TypeScript, requires a build
See the premiere-api README for full build and setup instructions.
metadata-handler — JavaScript, no build required
No installation or build step needed. See the metadata-handler README for setup instructions.
oauth-workflow-sample — JavaScript with a local Node.js server
See the oauth-workflow-sample README for server setup and credential configuration before first run.
The loading flow is the same for every sample:
- Launch Premiere Pro (or Premiere Pro Beta).
- Launch the UXP Developer Tool.
- Click Add Plugin and select the
manifest.jsonfor the sample. - Click Load, or Load & Watch to enable automatic reloads while editing source files.
The panel appears in Premiere Pro under Window → UXP Plugins.
The Premiere Pro UXP APIs ship official TypeScript declarations through the @adobe/premierepro package. Install the channel that suits your project:
# Stable APIs
npm install -D @adobe/premierepro
# Beta APIs (preview of upcoming surface)
npm install -D @adobe/premierepro@betaTypeScript projects pick up the declarations automatically. For JavaScript projects that want autocomplete and inline documentation in Visual Studio Code or Cursor, add a jsconfig.json at the root of your plugin:
{
"compilerOptions": {
"types": ["@adobe/premierepro"]
},
"excludes": ["node_modules"]
}Autocomplete and inline documentation are then available in both TypeScript and JavaScript projects.
The premiere-api sample uses the official @adobe/eslint-plugin-premierepro plugin to catch common mistakes when calling the Premiere UXP APIs. We recommend adopting the same plugin in your own projects.
cd sample-panels/premiere-api/html
npm run lintMy plugin does not appear in Premiere Pro.
Verify the following:
- Developer Mode is enabled in Premiere Pro, and Premiere Pro has been restarted since enabling it.
- The
host.minVersiondeclared in yourmanifest.jsonis less than or equal to your installed Premiere Pro version. - UDT can detect Premiere Pro in its left-hand pane. If it cannot, restart both applications.
Where do console.log outputs appear?
In UDT, locate your loaded plugin and click Debug. This opens a Chromium DevTools window attached to your plugin, providing access to the console, network activity, and DOM inspector.
Are Premiere UXP API calls asynchronous?
Yes. Most Premiere UXP APIs return Promises and must be awaited (or chained with .then()). Failing to await them produces incorrect results and can block the panel UI. The premiere-api sample uses async/await consistently throughout its src/ modules and serves as a reference for the recommended pattern.
How do I request file system or network access?
Declare the required capabilities under requiredPermissions in your manifest.json:
- The
oauth-workflow-samplemanifest demonstratesnetworkandlaunchProcesspermissions. - The
premiere-apimanifest demonstrateslocalFileSystemandclipboardpermissions.
UDT is not reloading my changes to manifest.json.
UDT's Watch mode only reloads source files. Changes to manifest.json require an explicit Unload followed by Load in UDT.
Can I combine a UXP panel with a native C++ plugin?
Yes. See the Hybrid Plugins guide in the official documentation.
Is the Premiere Pro transcript JSON format documented?
Yes. The full specification is included in this repository at sample-panels/premiere-api/html/assets/transcript_format_spec.json.
- UXP for Premiere Pro — Introduction
- Building your first UXP plugin
- Plugin concepts: panels, commands, manifest
- Hybrid plugins
- Sharing and distributing plugins
@adobe/premiereproon npm@adobe/eslint-plugin-premiereproon npm
Contributions are welcome. Before submitting a pull request, please:
- Review the contributing guide.
- Adhere to the code of conduct.
- Complete the pull request template.
Bug reports and feature requests can be filed via GitHub Issues.
This project is released under the terms of the LICENSE. See COPYRIGHT for additional notices.



