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.
Currently, it is at an alpha stage: the feature set is not frozen, and new features are added regularly.
There are two different versions of CRDT: one for UXP/UXPScript and another for ExtendScript.
The alpha version is meant to be functional and useful, but without a doubt, there will be bugs and dragons…
- Read/Write files beyond the UXP sandbox, including binary files
- Read the environment variables
- Add licensing and activation features to your script
- Provides a unique machine GUID for each end-user computer
- Provides a unique account GUID for each end user
- Protect sensitive source code and make it hard to reverse engineer
- AES-256 encryption/decryption functions
- Base64 encode and decode functions
More to come! You can contact us at [email protected] with feature requests.
Documentation can be found on Github:
.zip files contain a copy of the License Manager application which you can use to obtain a free trial license – instructions on installing further down.
Installing License Manager
If desired, move the
LicenseManager application file to its desired location.
LicenseManager application icon to run the app from its current location at least once.
If desired, move the
LicenseManager folder for your version of Windows (
arm64) to its desired location.
Navigate into the
LicenseManager folder and double-click the
LicenseManager.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 UXP
This version supports both UXP and UXPScript, and currently works with InDesign and Photoshop.
- To try it out and poke around with a debugger, use the Adobe UXP Developer Tools, and enable developer mode, as needed, in Photoshop or InDesign.
- Add the sample plugin by selecting its
manifest.jsonfrom UXP Developer Tools
- Check out the sample code – the file
crdtuxp_test.jshas source code examples of how the functions are used.
- The sample panel is limited; it only shows off a few of the features.
You can see the unique
machineGUIDthat has been assigned to your computer, and you can type in some text and get it encrypted or converted or quoted.
Creative Developer Tools for ExtendScript
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, and also use the Adobe UXP Developer Tool to load the sample plug-in into your host application.
crdtux.js (synchronous) or get delegated to the daemon process (asynchronous).
Launching the daemon will start a local, internal HTTPS server, within your computer, using a URL
localhost.tgrg.net name resolves to
127.0.0.1 (localhost). 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, activated license, otherwise the daemon will refuse to launch. See further for more info.
List of Endpoints
An extract of the available endpoints:
- crdtuxp :
- .base64decode(base64Str) ⇒
- .base64encode(s_or_ByteArr) ⇒
- .binaryUTF8ToStr(in_byteArray) ⇒
- .decrypt(s_or_ByteArr, aesKey) ⇒
- .deQuote(quotedString) ⇒
- .dirDelete(filePath, recurse) ⇒
- .dirExists(dirPath) ⇒
- .dirCreate(filePath) ⇒
- .dirScan(filePath) ⇒
- .dQ(s_or_ByteArr) ⇒
- .encrypt(s_or_ByteArr, aesKey) ⇒
- .evalTQL(tqlScript, tqlScopeName, resultIsRawBinary) ⇒
- .fileClose(fileHandle) ⇒
- .fileDelete(filePath) ⇒
- .fileExists(filePath) ⇒
- .fileOpen(fileName, mode) ⇒
- .fileRead(fileHandle, isBinary) ⇒
- .fileWrite(fileHandle, s_or_ByteArr) ⇒
- .getCapability(issuer, productCode, password) ⇒
- .getDir(dirTag) ⇒
- .intPow(i, intPower) ⇒
- .leftPad(s, padChar, len) ⇒
- .logError(reportingFunctionArguments, message)
- .logNote(reportingFunctionArguments, message)
- .logTrace(reportingFunctionArguments, message)
- .logWarning(arguments, message)
- .machineGUID() ⇒
- .popLogLevel() ⇒
- .pushLogLevel(newLogLevel) ⇒
- .rightPad(s, padChar, len) ⇒
- .setIssuer(issuerGUID, issuerEmail) ⇒
- .sQ(s_or_ByteArr) ⇒
- .strToUTF8(in_s) ⇒
- .sublicense(key, activation) ⇒
- .toHex(i, numDigits) ⇒
- .base64decode(base64Str) ⇒
CRDT for ExtendScript – How it Works
This works by way of an ExtendScript DLL, which is transparently loaded when you
crdt.jsx file. No daemon is needed – you simply call the CRDT functions straight from ExtendScript.
You need a Standard Account to obtain the license and activate the software.
Start the License Manager.
Create a standard account by clicking the New button, bottom right of the Accounts window.
Enter a descriptive name and a valid email address, and choose an unlock code. You need to enter the same unlock code twice.
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!
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 License Manager.
If you don’t save the unlock code, you will need to re-enter the code each time you restart the License Manager.
Getting a valid license
Both Creative Developer Tools for UXP and Creative Developer Tools for ExtendScript are covered by the same licenses. A valid license allows you to use one or the other or both.
Run the License Manager.
Go to the Browse the Store for Software window, and click the Catalog of Rorohiko Licensed Products.
Creative Developer Tools Demo – 20 day try-out (free of charge)
Creative Developer Tools 2024 – free for small outfits; US$29/seat/year for larger companies
This should take you to the Order a License screen.
Make sure your account is unlocked. If you did not save the unlock code, you will first need to re-enter the code in the Accounts window if the account is currently locked.
Enter the number of seats required, and add a descriptive, meaningful reference that will help you identify this order in the future.
Now click Save and save the license request file somewhere.
Then create an email to [email protected], and attach this file to the email.
In your email, let us know a little bit more about you and your license request – e.g. let us know if you qualify for a free license when ordering Creative Developer Tools 2024. We’re pretty easy going on this.
In your email, make sure to mention any additional details that might be relevant or useful (e.g. let us know if you prefer us to initiate the process by sending you a PayPal invoice).
Alternatively, you could also use the Preferences screen in the License Manager to set up and test an SMTP server. If and when you do that, you can also click the Email button instead of the Save button. Use the Reference field to provide us additional info.
If you do need to pay a license fee, payment processing is not yet automated.
To cover one year of use, you need to manually send payment of US$29/seat using PayPal, to
With your PayPal payment, make sure to repeat the order reference that you also used in the License Manager, so we can match your payment to the order info embedded in the License Request.
Always make sure your account is unlocked. If you did not save your unlock code, you will need to re-enter the code in the Accounts window if the account is locked.
Once we have received your payment, we will email you a matching activation file for the order, which will have a
.capb file name extension. Look out for an email and make sure to check your email spam filter!
Start the License Manager and go to the Licenses, Activations and Pending Orders window.
Click Import and import the
The License Manager will match this activation file to the pending order.
Activating Creative Developer Tools and Launching the Daemon
Run the License Manager.
Go to the the Licenses, Activations and Pending Orders screen and make sure Creative Developer Tools (CRDT) has a seat number assigned to it. If not, use the Activate button to activate your computer.
Go into the Preferences, and tick the checkbox Launch daemon for Creative Developer Tools when License Manager starts.
This will automatically start the daemon each time you run the License Manager.
The daemon will continue running after you quit License Manager, 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 License Manager preferences screen.
You can also use double-clickable scripts like
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
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.
Anyone can request a time-limited trial license, free of charge, by using the License Manager to put in an order for a license for Creative Developer Tools Demo.
Furthermore, small and medium-sized developer businesses are entitled to free full licenses.
If you are developing solutions for the Adobe eco-system and two conditions are met:
- your business is two people or less
- the business has a yearly revenue of less than US$2,000,000 or is a not-for-profit
we will gladly provide you with free licenses. These ‘rules’ are not hard and fast; we just pulled them out of hat. The underlying idea is that we want to help small outfits become successful.
These free licenses should not be ‘passed on’ to your customers. The free licenses are only for use within the qualifying business.
If you think your customer also qualifies for free licenses, reach out to [email protected] to discuss.
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.
For example, you might use one account that you keep for your own personal use, and one or more additional accounts that you could use for ordering embeddable JSXGetURL activations to pass on to your customers or colleagues.
You can bundle Creative Developer Tools with your own commercial software, and have Creative Developer Tools auto-activate so the end-user does not have to handle any activations.
To achieve this, you can add your activation info as source code, or as a side-car file.
In addition to your standard account (incoming), you now also need a separate developer account (outgoing).
The incoming (towards you) order will be associated with your standard account, and the outgoing (away from you) sublicense will be tied to your developer account.
First, switch the License Manager to Standard mode via the File – License Manager Mode menu.
Purchase a license for Creative Developer Tools as documented in the previous section.
Once the order is validated and the activation file has been imported, switch the License Manager to Developer/Publisher mode.
If you don’t have a developer account yet, create and register one.
Wait for a confirmation email, and make sure to check your spam filter.
Once you also have a registered developer account, go to the Sublicensing window, and select the order.
Select the option SideCar File, then click the Copy button.
Start your text editor and create a new file, and Paste the activation info (JSON format).
Save this file with a
.actv file name extension (e.g.
On your end-users computer, you need to copy this file into the folder
The software will now auto-activate when your customer runs it and the user won’t have to deal with activations.
When you need to activate on another computer you can transfer and re-use the same licensing info. Activations can be transferred over.
If you activate your copy of JSXGetURL by way of the License Manager: you can export and import all your account and activation data between computers. Use the File – Export License Info… and File – Import License Info… to manage a transfer.
If you activate your copy by way of the sublicensing mechanism, then the actvation will transport automatically.
Note that to avoid abuse, there is a limitation on how frequently you can re-activate: after you activate a seat on a particular computer, you need to wait at least 10 minutes before you can re-activate the same seat on another computer.
Version 0.0.3: 22-Feb-2024
- Improved sample code
- Improved License Manager
Version 0.0.2: 12-Feb-2024
- Improved sample code
- Improved License Manager
Version 0.0.1: 10-Feb-2024
- Initial release for UXP and UXP Script