node package manager
Painless code sharing. npm Orgs help your team discover, share, and reuse code. Create a free org »



npm version Join the chat at travis

Extendscriptr is NPM CLI module that allows you to benefit of many modern javascript features of es5 and es6 in a es3 extendscript environment.


Building scripts for Adobe products (mostly used for After Effects, InDesign, Photoshop or Illustrator) can be pain for the finger nails if you are used to proper javascript environments.

Extendscriptr relays on extendscript.prototypes and focuses on mostly used prototypes as a priority that are tested in the different Adobe applications. This dependency will be improved over time to covers always more es5 and es6 features. Contributions are welcome!

Extendscriptr doesn't use an existing full-stack polyfills like babel-polyfill, es5-shim or shim.js as they are intended for the browser and don't work well in adobe applications.


This tool currently needs npm version 3.x or higher due to the flattened folder structure.


We recommend using it as a local dependency*

  • npm install extendscriptr --save-dev
  • ./node_modules/.bin/extendscriptr --script src/scripts/helloWorld.js --output dist/helloWord.js
  • open the outputted file with ExtendScript Toolkit OR place your script in the relevant application script folder
  • run it

* a global install is currently not working due to the fact that ExtendScript is missing to many functions. See this issue



We would be happy to have contributions from other members as well. Don't hesitate to make pull requests or contact us if you wish to get contributor rights.

Publish with semantic release and conventional commits

Publishing new versions of extendscriptr is handled by semantic-release. This means that new versions will be built on travis and published on every push based on the latest commit message. Therefor, commit messages need to satisfy some conventions. The project uses conventional changelog to facilitate the messages formatting. Make sure to commit by running npm run commit instead of git commit [-m"change" ...] to be prompted to the conventional changelog form.

Report issues

Feel free to report any issue you would encounter using the module.


WTFPL - Do whatever the fuck you want