Automation
Automate Report creation, remotely set settings, and control licenses with the FoolCat API. You can also trigger custom scripts on specific events, start run custom processes or other apps, and integrate FoolCat into existing workflows.
Requirements
FoolCat Pro license
API: FoolCat 20.1 or newer
Scripting: FoolCat 25.3 or newer
API
You can tell FoolCat to do something by calling the app URL: foolcat://. You can call this from any app or script that can open a URL.
Copy/paste the URL below in a web browser, press Enter, and EditReady will open.
editready://openYou can also use a shell, copy/paste the command below, press Enter, and EditReady will open.
open 'foolcat://open'start 'foolcat://open'Activate
foolcat://activate?key=<your-license-key>Deactivate
foolcat://deactivateCreate Report
foolcat://create?source=<source-path>&destination=<destination-path>&name=<report-name>&description=<report-description>Scripting
You can attach scripts (AppleScript or Python) to the following events:
FoolCat Started
Report Created

Scripting is a powerful tool. Easy to learn, but even easier to screw up. Always test your script with disposable data, and then test again. And again. Hedge does not offer support or assume responsibility for problems with or due to examples or any other script. If you’re new to scripting, find someone to help you out, or use the example scripts available here. Remember: you are solely responsible.
FoolCat Started
Fires once when launching FoolCat. Has no payload.
Report Created
Fires when a Report has been created, and has the following payload:
03/10/2025, 10:55:21 - Report Created: {
"ReportCreated_status" = "Success";
"ReportCreated_error" = "none";
"ReportCreated_pdfPath" = "/Volumes/Hedge/A001/Reports.pdf";
"ReportCreated_htmlPath" = "/Volumes/Hedge/A001/Reports.html";
}Python
When a Python script is executed, the event payload is passed as a JSON string in the first command-line argument (sys.argv[1]). You can parse it into a dictionary as follows:
import sys
import json
# Load the event payload from the first argument
payload = json.loads(sys.argv[1])
# Example: access fields from the payload
print(payload.get("FileConversionCompleted_status"))AppleScript
When an AppleScript script is executed, the event payload is injected into the script by finding key names, e.g. "{FileConversionCompleted_status}" , and replacing them with values. You can test this as follows:
display alert "{ReportCreated_status}"Event Log
All events and script execution results are recorded in the Event Log. You can find the log file at:
/Users/[your-username]/Library/Application Support/FoolCat/Event Log/FoolCatEvents.logLast updated