Creative Developer Tools

What it does

Creative Developer Tools (CRDT) is a growing suite of tools aimed at script developers and plug-in developers for the Adobe Creative Cloud eco-system.

CRDT is free to use. All the essential functionality you need to monetize your software is free.

CRDT includes PluginInstaller, which handles the whole developer-to-user chain: packaging, downloading, installing, removing, updating, licensing, activating,…

There are two different versions of CRDT: one for UXP/UXPScript and another for CEP/ExtendScript.

Features include:

  • Easy package/download/install/license of ExtendScript scripts
  • Easy package/download/install/license of CEP panels
  • Add licensing and activation features to your script
  • Provides a unique account GUID for each end user
  • Protect sensitive source code and make it hard to reverse engineer
  • Read/write files beyond the UXP sandbox, including binary files
  • Read the environment variables
  • Base64 encode and decode functions

Pay-for-features:

  • Some advanced encryption functions
  • Provides a unique machine GUID for each end-user computer
  • Provide persistent local storage, which survives uninstall/reinstall
  • Access to metrics: how many times was your script installed? How many times was it used?

The CEPSparker project has been updated to generate a ‘starter’ project which adds all the needed bells and whistles to use CRDT_ES from a CEP extension.

More to come! You can contact us at [email protected] with feature requests.

We provide commercial training and developer support around CRDT: if you need help integrating CRDT into your custom solution, contact us at [email protected] to discuss training and support contracts.

Documentation

Rough documentation can be found on Github:

https://github.com/zwettemaan/CRDT_UXP/blob/main/docs.md

https://github.com/zwettemaan/CRDT_ES/blob/main/scripts/docs.md

https://github.com/zwettemaan/CEPSparker/wiki

You can download a copy of the free PluginInstaller application from https://tgrg.net.

Run PluginInstaller to register a developer account, which you’ll need to enable CRDT.

Installing PluginInstaller

Download the PluginInstaller from

https://tgrg.net

Mac

If desired, move the PluginInstaller application file to its desired location.

Double-click the PluginInstaller application icon to run the app from its current location at least once.

Windows

If desired, move the PluginInstaller folder for your version of Windows (x86_64 or arm64) to its desired location.

Navigate into the PluginInstaller folder and double-click the PluginInstaller.exe icon to run the app from its new location at least once. You’ll need to scroll a bit – there are many icons in this folder.

Creative Developer Tools for ExtendScript/CEP

https://www.rorohiko.com/downloads/CreativeDeveloperTools_ES.0.0.7.zip
https://github.com/zwettemaan/CEPSparker

The CRDT_ES version works with any application which supports ExtendScript. The runtime APIs can also be used from CEP extensions.

Unlike with CRDT_UXP, all functions are synchronous.

  • You need a registered developer account – use PluginInstaller for that.
  • You can use the VSCode-based ExtendScript debugger to try things out.
  • Check out the sample code – the file crdtes_test.js has source code examples of how the functions are used.
  • For CEP, have a look at CEPSparker – it creates ‘starter’ projects that have all the needed infrastructure (CRDT_ES, CRDT_manifest…) ready to go.

Creative Developer Tools for UXP

This version supports both UXP and UXPScript, and currently works with InDesign and Photoshop.

https://www.rorohiko.com/downloads/CreativeDeveloperTools_UXP.0.1.0.zip

  • You need a registered developer account – use PluginInstaller for that.
  • To try it out and poke around with a debugger, use the Adobe UXP Developer Tools. Enable developer mode, as needed, in Photoshop or InDesign.
  • Add the sample plugin by selecting its manifest.json from UXP Developer Tools
  • Check out the sample code – the file crdtuxp_test.js has source code examples of how the functions are used.
  • The sample panel is limited; it only shows off a few of the features.
    Also note that the machineGUID() is one of the optional paid-for features which will only work if you have a paid-for developer account.

Creative Developer Tools for UXP – How it Works

Make sure to activate Creative Developer Tools and launch the daemon beforehand!

Open the sample code with your text editor.

Use the Adobe UXP Developer Tool to load the sample plug-in into your host application.

The Creative Developer Tools endpoints are either implemented as JavaScript code in crdtuxp.js (synchronous) or are delegated to the daemon process (asynchronous).

Launching the daemon will start a local, internal HTTPS server, within your computer. It uses a URL https://localhost.tgrg.net, port 18888.

The localhost.tgrg.net name resolves to 127.0.0.1 (localhost). We use a DNS alias instead of localhost or 127.0.0.1 because we need a DNS name to attach an HTTPS certificate to.

The web service provided by the daemon can only be accessed by local processes running on the local computer. External processes cannot access this service; the connection will be refused.

Remember: before you can start the daemon you need a valid developer account, otherwise the daemon will refuse to launch. See further for more info.

CRDT for ExtendScript – How it Works

Make sure you have a registered developer account beforehand!

You don’t need to start the daemon – that is only necessary for Creative Developer Tools for UXP

crdtes works by way of an ExtendScript DLL, which is transparently loaded when you //@include the crdt.jsx file into your ExtendScript.

No daemon is needed – you simply call the crdtes functions straight from ExtendScript.

Activating

Developer Account

You need a Developer/Publisher Account to get access to the features of CRDT.

Start the PluginInstaller.

Create a developer account if you have not done so already. You need to switch to the Developer/Publisher mode in the File menu.

After the account has been created, click Register to register the account.

Check your email program and look out for a confirmation email with a confirmation link. Click the link to finalize the account registration.

If the email does not arrive, make sure to check your email spam filter!

Once you confirm your registration, we’ll email you with some questions. Once we finalize the developer registration, the icon for your account will change to a ‘smiley face’.

Save Unlock Code

On the Accounts window, there is a checkbox Save Unlock Code.

If you’re on a secure personal computer, you should click-select the account, then tick the checkbox to save the unlock code.

That way you don’t have to re-enter the code each time you launch the PluginInstaller.

If you don’t save the unlock code, you will need to re-enter the code each time you restart the PluginInstaller.

Activating Creative Developer Tools and Launching the Daemon

Once you have a valid developer account, you can start using CRDT.

To use CRDT with UXP you need to run a daemon program. That can be launched by way of the PluginInstaller.

Go into the Preferences, and tick the checkbox Launch daemon for Creative Developer Tools when PluginInstaller starts.

This will automatically start the daemon each time you run the PluginInstaller.

The daemon will continue running after you quit PluginInstaller, until the next restart of your computer.

Once the daemon is running, you can use the various endpoints in the module crdtuxp.js from your UXP Plugin or UXPScript.

Starting and Stopping the Daemon

Once you have an active license, the daemon can be enabled from the PluginInstaller preferences screen.

You can also use double-clickable scripts like startDaemon or killDaemon.

The Mac OS X or Windows built-in security systems will most probably balk and bring up scary warnings.

On Mac, you can right-click and Open macDequarantineHelpers.command, or you can right-click one of the .command scripts in the Finder, then select Open.

On Windows, you will have to bear with it, click through to the ‘More Info’ on the blue screen and allow it to run the .bat files.

Once a double-clickable script has been allowed to run, there should be no further complaints for that particular script.

You can configure these scripts as startup items for your computer and make the daemon auto-start after a computer restart.

Free Licenses

Using CRDT is free, including all the features you need to handle licensing and activation of your own solution.

Some optional features are only available to paying developer accounts.

These additional features are non-critical, and include things like

  • Callable functions for AES-256 encryption/decryption of strings
  • Stable, unique MachineGUID
  • Access to a persistent data store that persists across software reinstalls
  • Access to usage and install metrics

Multiple Accounts

You can create as many accounts as needed.

It is allowed to re-use the same email address and same unlock code for multiple accounts.

If you do re-use the same email address for more than one account, they become hard to distinguish. Make sure to use good descriptive names, so you can tell the accounts apart.

Release Notes

CRDT_ES Version 0.0.7, CRDT_UXP Version 0.1.0: 25-Apr-2024

  • Support for CEP – CRDT_ES is now embedded into CEPSparker, and PluginInstaller can now package, codesign, and install CEP panels
  • Upgraded internal dependencies: curl 8.7.1, OpenSSL 3.3.0, zlib 1.3.1
  • Works with latest CEPSparker

CRDT_ES Version 0.0.6, CRDT_UXP Version 0.0.9: 30-Mar-2024

  • Unbundle the PluginInstaller from the CRDT_ES and CRDT_UXP downloads.
  • Updating outdated docs

CRDT_ES Version 0.0.5, CRDT_UXP Version 0.0.8: 28-Mar-2024

  • Activation of CRDT now ties to having a developer account. ‘Standard’ developer accounts miss out on a few optional features.

CRDT_ES Version 0.0.4, CRDT_UXP Version 0.0.7: 26-Mar-2024

  • Improvements to PluginInstaller

CRDT_ES Version 0.0.3, CRDT_UXP Version 0.0.6: 20-Mar-2024

  • License Manager renamed to PluginInstaller

CRDT_ES Version 0.0.2, CRDT_UXP Version 0.0.5: 26-Feb-2024

  • License Manager now handles dark mode
  • License Manager has a features to allow packaging of ExtendScript scripts. Features include:
    – protect source code by encrypting it. Replace JSXBIN with AES-256 encryption
    – greatly simplify code signing – automatically handles certificates
    – packaging/manifest
    – handle downloading/installing/uninstalling of scripts from within license manager

CRDT_ES Version 0.0.1, CRDT_UXP Version 0.0.4: 26-Feb-2024

  • Added persistent local storage, shared between CRDT_ES and CRDT_UXP
  • Further Improved License Manager

CRDT_UXP Version 0.0.3: 22-Feb-2024

  • Improved sample code
  • Improved License Manager

CRDT_UXP Version 0.0.2: 12-Feb-2024

  • Improved sample code
  • Improved License Manager

CRDT_UXP Version 0.0.1: 10-Feb-2024

  • Initial release for UXP and UXP Script