Scaffolding to create Adobe CEP panels with Vue and Quasar CLI

Usage no npm install needed!

<script type="module">
  import generatorCepQuasarCli from '';



Want something even better? Use the new version bombino instead.

Generate an Adobe CEP extension in a few simple steps:


Special thanks to Adam and Eric for their invaluable (and shockingly free) help

tom adam eric
Tom Scharstein Adam Plouff Eric Robinson
Creator General Wizardry Inspector General


First, install Yeoman and generator-quasar-vue-cli using npm (we assume you have pre-installed node.js).

npm install -g yo
npm install -g generator-cep-quasar-cli

Then generate your new project:

# Recommended inside ../AppData/Roaming/CEP/extensions
yo cep-quasar-cli

# Prompt for name
# Prompt for template
# Prompt for Adobe apps to be included in manifest and typescript
# Prompt for base localhost port


See more information about usage:

  • Plus (Quasar, Router, Lottie, Vuex, external Modal Dialogs)


Each template comes with 5 commands baked in (see details here):

  • npm run help - A full list of the commands available and descriptions.
  • npm run switch - Reports whether in developer or production context and can switch automatically.
  • npm run update - Reports current version of panel in manifest and prompts to update Major, Minor, or Micro.
  • npm run register - Reports the current user data (if any) and prompts to save new info to be used in certificates.
  • npm run sign - Automatically stages and signs the extension, placing it in a ./archive directory within the current panel.

Extras and Add-ons

  • starlette (Shipped in all templates) - Color and theming engine that handles all host app colors and exposes them as reactive CSS variables to save you the need to do any theme or color logic yourself.
  • leylo - Library to integrate a Firebase backend into any panel with a single command and line of code, providing over 40 CRUD actions for Firestore database.
  • FS Example - Demonstration of how to include require() for both Dev and Production contexts (needed due to being mixed content within an iframe while in Developer context) No longer needed! Panels now automatically work with require() with no additional steps regardless of context.


MIT © Tom Scharstein


  • Drop Yeoman. Why is this a generator? It doesn't use any Yeoman commands but carries all the security vulnerabilities.
  • Consolidate both generators into a new NPM package, which asks what build system (Vue/Quasar) to use then continues