Building Adobe Extensions
Interested in making extensions (aka CEP Panels) for Premiere Pro, After Effects, Illustrator, Photoshop, or other Adobe apps? This article will help you on your journey.
Adobe allows their apps to be extended by users in three different ways: scripts, extensions, and plugins. For a detailed breakdown, check out our post on the differences between scripts, extensions, and plugins. Extensions are the most powerful and flexible way to build tools for a variety of workflow and automation uses. If you're familiar with building scripts, extensions can do all the same things, and more!
The ExtendScript Layer
Since extensions have two different layers, they require two separate debugging methods.
While writing and debugging ExtendScript Scripts has traditionally been accomplished through the Adobe ExtendScript Toolkit (aka ESTK), that application has since been replaced with the up-to-date Visual Studio Code Extension: ExtendScript Debugger.
Files and Delivery
Extensions exist as a specific folder structure in a global and local folder on machines. Since all Adobe apps share the same extensions folder, CEP extensions must adhere to a specific folder structure so that Adobe apps can find the extension and identify which apps and version it should run in.
For easy distribution, extensions can be compressed into a single package file with the ZXP extension, which can be treated like a ZIP archive. This is accomplished using Adobe's ZXPSignCMD tool, and ZXP files can be installed easily with a wide variety of ZXP installers, our favorite is made by aescripts + aeplugins.
A Note on UXP
At the time of this writing, Photoshop and XD are the only apps that run UXP panels, with the rest lined up next for integration. Adobe has made it clear that there will be a few years of overlap where both UXP and CEP are supported, in order to give developers enough time to transition their tools. Unless you're solely developing for new versions of Photoshop or XD, you'll want to keep using CEP panels for the time being.
Now that you have a basic understanding of what extensions are and how they work, here is what you'll need in order to get started:
These are the only tools you'll need to start scripting in After Effects, Premiere Pro, Illustrator or any other extension-compatible Adobe application.
Once you have a panel up and running, you'll need to dive into the unique ExtendScript APIs for each host application depending on if it's After Effects, Premiere Pro, Illustrator, or others.
Adobe Extensibility API Docs - The community-driven API Docs contain the most up-to-date documentation on what functions and methods are available in ExtendScript in general, and in each additional host application. We are regular contributors to these along with a large community of 3rd party tool developers and the Adobe team.
If you're looking for a course to guide you through the whole process of building CEP panels start to finish, here are few helpful resources:
After Effects (only for ExtendScript portion):
- David Torno's After Effects ExtendScript Training
- FxPHD Scripting in After Effects by Mathias Möhl
- FxPHD Introduction to After Effects Scripting by Lloyd Alvarez
Like any development project, you'll often run into issues that you can't seem to find an answer for in the docs. In this case, the community forums are a great place to look. These forums are very active, and there's a high likelihood that someone has tried to do what you are attempting and can point you in the right direction.
And if you're looking to level-up your Extension development, check out our open-source boilerplate for building modern Adobe CEP Extensions, Bolt CEP:
Have questions on getting started? Reach out to the Hyper Brew team and we'd be happy to help!