Guidance for everything that sits around an Illustrator script: the panel a user clicks, the native plug-in that adds a tool, the command line or AI agent that starts Illustrator work from outside, and the documentation that ships with it. For the Illustrator DOM itself (documents, layers, paths, colors, exports), use the adobe-illustrator-scripting skill.
.aip) with the Illustrator SDK.jsx scripts from batch, PowerShell, bash, Python, or AppleScript, including passing parameters and reading resultsAdobe's own terms:
.jsx), AppleScript, or VBScript run against Illustrator's scripting object model. It has no persistent UI beyond ScriptUI dialogs.CSInterface.evalScript..aip). In apps that already run UXP (Photoshop, InDesign, Premiere Pro), "plugin" also means a UXP plugin; Illustrator UXP plugins are not public yet.| Option | What it is | UI | Installs to | Ships as | Pick it when |
|---|---|---|---|---|---|
| Manual instructions | Steps a person follows | Illustrator's own | Nothing | A document | The task is rare, or needs judgment at every step |
| ExtendScript script | .jsx run in Illustrator | Optional ScriptUI dialog | Presets/<locale>/Scripts or anywhere (File > Scripts > Other Script) | .jsx file | One action, batch work, or a step another tool calls |
| CEP extension | HTML panel plus ExtendScript host | Dockable panel | CEP extensions folder | Signed .zxp | Users need a persistent panel with controls and previews |
| C++ plug-in | Native .aip from the Illustrator SDK | Tools, menus, notifiers, native dialogs | Plug-ins folder or the Additional Plug-ins Folder | .aip per OS and major version | You need a custom tool, live effects, speed, or events scripts cannot reach |
| UXP plugin | Modern JavaScript plugin model | Panels and dialogs | Through Creative Cloud | .ccx | Plan for it; Illustrator's public beta is due by Spring 2027 |
| MCP server | A process an AI tool calls, which runs scripts in Illustrator | The AI tool's chat | The AI tool's MCP config | A package or repo | An agent should create or inspect artwork through tools |
| OS automation | Batch, PowerShell, bash, or AppleScript that starts scripts | None | Anywhere | Script files | Illustrator work is one step of a larger pipeline |
Start with the lowest tier that meets the need. A script that works is the core of every higher tier: a CEP panel, an MCP tool, and an OS script all end up calling ExtendScript.
From Adobe's announcement "Investing in the future of Creative Cloud extensibility" (blog.developer.adobe.com, September 2026):
So a CEP extension built today has a working life of a few years. Keep its logic in plain ExtendScript files the panel calls, which carry over to a UXP plugin or an MCP server unchanged.
CSInterface, debug mode, signing, install).aip for plug-ins, a versioned folder or package for scripts and servers.| Platform | Route | Notes |
|---|---|---|
| Windows | COM Illustrator.Application | DoJavaScriptFile(JavaScriptFile, [Arguments], [ExecutionMode]) and DoJavaScript(JavaScriptCode, [Arguments], [ExecutionMode]); ExecutionMode 1 never shows the debugger |
| macOS | AppleScript do javascript | do javascript "$.evalFile(new File(arguments[0]))" with arguments {scriptPath}, with the path passed to osascript as an argument so it never enters script source; check the exact app name for your version |
| Both | VS Code ExtendScript Debugger | Adobe's extension for running and debugging .jsx against a running app |
| Windows (legacy) | ExtendScript Toolkit -run | 32-bit, does not run on macOS 10.15 or later; keep only for old pipelines |
Pass parameters through a sidecar key=value file (no JSON parser or eval needed in ES3) and have the script write its result to a file, because arguments handling differs between launchers. The patterns are in references/automation-and-mcp.md.
When the deliverable is a set of steps rather than code (for a complex graphic, or for an asset someone downloads):
Object > Path > Offset Path).Stroke panel: Weight 2 pt, Align Stroke to Inside).PlayerDebugMode) belongs on development machines only. Ship signed ZXPs to users.CSInterface.js, ZXPSignCMD): Adobe-CEP/CEP-Resources