Edit in GitHubLog an issue

Inter Plugin Communication

UXP allows communication between plugins that are installed in the same application.

This is particularly handy when you know a certain task is already automated by another plugin and you would like to invoke it instead of duplicating the effort. But make sure the user is not caught by surprise. Your plugin should call out such dependencies to ensure flawless functioning of your plugin.

The Plugin Manager module provides APIs that will help establish the connection. But before we take a look at an example, be sure to be well-versed in these topics

Additionally, you will need

  • A basic knowledge of the plugin you are going to communicate with. This includes:
    • the plugin id
    • available entrypoints
    • the structure of arguments to be passed (if applicable)
  • enablePluginCommunication permission for your plugin

System requirements

Please make sure your local environment uses the following application versions before proceeding.

  • InDesign v18.5 or higher
  • UDT v1.9.0 or higher
  • Manifest version v5 or higher

Example

Caller Plugin

Copied to your clipboard
{
"requiredPermissions": {
"ipc": {
"enablePluginCommunication": true
}
}
}

Callee Plugin

Copied to your clipboard
{
"id": "com.adobe.example.coolPlugin",
"name": "The cool plugin",
"main": "index.html",
"entrypoints": [
{
"type": "command",
"id": "simpleCommand",
"label": "Do your thing"
},
{
"type": "command",
"id": "commandWithInput",
"label": "Do you thing with inputs"
},
{
"type": "panel",
"id": "simplePanel",
"label": {"default": "Do your thing with UI"},
// ...
}
],
}

Additional notes

  • You may not see any error if the entrypoint is not found. Therefore, we advise you to use plugin.manifest.commands and plugin.manifest.panels to select from the complete list of entrypoints.
  • Invoking a plugin installed/running on a different application is not possible
  • Passing methods in the argument object is also not possible
  • There is a possibility that the user might have disabled a particular plugin via Adobe Creative Cloud Desktop App. Check the plugin's availability by using plugin.enabled before invoking.

Reference docs

  • Privacy
  • Terms of Use
  • Do not sell or share my personal information
  • AdChoices
Copyright © 2024 Adobe. All rights reserved.