Adobe Photoshop · JSON Structure

Adobe Photoshop Uxp Plugin Manifest Structure

Schema for the manifest.json file required by UXP plugins for Adobe Photoshop. The manifest defines plugin metadata, entry points, permissions, and host application requirements.

Type: object Properties: 13 Required: 6
Ai MlCreative CloudImage EditingPhotoshopPluginsREST APIScripting

Adobe Photoshop UXP Plugin Manifest is a JSON Structure definition published by Adobe Photoshop, describing 13 properties, of which 6 are required. It conforms to the https://json-structure.org/meta/core/v0/# meta-schema.

Properties

id name version manifestVersion main host entrypoints icons requiredPermissions addon description author keywords

Meta-schema: https://json-structure.org/meta/core/v0/#

JSON Structure

Raw ↑
{
  "$schema": "https://json-structure.org/meta/core/v0/#",
  "$id": "https://developer.adobe.com/photoshop/uxp/plugin-manifest.schema.json",
  "name": "Adobe Photoshop UXP Plugin Manifest",
  "description": "Schema for the manifest.json file required by UXP plugins for Adobe Photoshop. The manifest defines plugin metadata, entry points, permissions, and host application requirements.",
  "type": "object",
  "required": [
    "id",
    "name",
    "version",
    "manifestVersion",
    "host",
    "entrypoints"
  ],
  "properties": {
    "id": {
      "type": "string",
      "description": "Unique plugin identifier. Use reverse domain notation (e.g., com.example.myplugin)."
    },
    "name": {
      "type": "string",
      "description": "Display name of the plugin shown in the Photoshop UI."
    },
    "version": {
      "type": "string",
      "pattern": "^\\d+\\.\\d+\\.\\d+$",
      "description": "Plugin version in semver format (major.minor.patch)."
    },
    "manifestVersion": {
      "type": "int32",
      "enum": [
        4,
        5,
        6
      ],
      "description": "UXP manifest schema version. Version 5 or 6 recommended for current Photoshop."
    },
    "main": {
      "type": "string",
      "description": "Path to the main JavaScript entry point file relative to the plugin root."
    },
    "host": {
      "type": "object",
      "description": "Host application requirements.",
      "required": [
        "app",
        "minVersion"
      ],
      "properties": {
        "app": {
          "type": "string",
          "const": "PS",
          "description": "Host application identifier. PS for Adobe Photoshop."
        },
        "minVersion": {
          "type": "string",
          "description": "Minimum required Photoshop version (e.g., 22.0.0 for UXP support)."
        },
        "maxVersion": {
          "type": "string",
          "description": "Optional maximum supported Photoshop version."
        }
      }
    },
    "entrypoints": {
      "type": "array",
      "description": "Plugin entry points defining panels, commands, and other UI elements.",
      "items": {
        "type": "object",
        "required": [
          "type",
          "id",
          "label"
        ],
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "panel",
              "command"
            ],
            "description": "Entry point type. panel creates a dockable panel, command creates a menu item."
          },
          "id": {
            "type": "string",
            "description": "Unique identifier for this entry point within the plugin."
          },
          "label": {
            "type": "object",
            "description": "Localized display labels for the entry point.",
            "properties": {
              "default": {
                "type": "string",
                "description": "Default display label."
              }
            },
            "additionalProperties": {
              "type": "string"
            }
          },
          "minimumSize": {
            "type": "object",
            "description": "Minimum panel dimensions (panel type only).",
            "properties": {
              "width": {
                "type": "int32"
              },
              "height": {
                "type": "int32"
              }
            }
          },
          "maximumSize": {
            "type": "object",
            "description": "Maximum panel dimensions (panel type only).",
            "properties": {
              "width": {
                "type": "int32"
              },
              "height": {
                "type": "int32"
              }
            }
          },
          "preferredDockedSize": {
            "type": "object",
            "description": "Preferred panel dimensions when docked.",
            "properties": {
              "width": {
                "type": "int32"
              },
              "height": {
                "type": "int32"
              }
            }
          },
          "preferredFloatingSize": {
            "type": "object",
            "description": "Preferred panel dimensions when floating.",
            "properties": {
              "width": {
                "type": "int32"
              },
              "height": {
                "type": "int32"
              }
            }
          },
          "shortcut": {
            "type": "object",
            "description": "Keyboard shortcut for the entry point.",
            "properties": {
              "mac": {
                "type": "string",
                "description": "macOS keyboard shortcut."
              },
              "win": {
                "type": "string",
                "description": "Windows keyboard shortcut."
              }
            }
          }
        }
      }
    },
    "icons": {
      "type": "array",
      "description": "Plugin icons at various sizes for different display contexts.",
      "items": {
        "type": "object",
        "required": [
          "width",
          "height",
          "path"
        ],
        "properties": {
          "width": {
            "type": "int32",
            "description": "Icon width in pixels."
          },
          "height": {
            "type": "int32",
            "description": "Icon height in pixels."
          },
          "path": {
            "type": "string",
            "description": "Path to the icon file relative to the plugin root."
          },
          "scale": {
            "type": "array",
            "items": {
              "type": "double"
            },
            "description": "Display scale factors (e.g., [1, 2] for standard and Retina)."
          },
          "theme": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "lightest",
                "light",
                "medium",
                "dark",
                "darkest",
                "all"
              ]
            },
            "description": "UI themes this icon supports."
          }
        }
      }
    },
    "requiredPermissions": {
      "type": "object",
      "description": "Permissions the plugin requires to function.",
      "properties": {
        "clipboard": {
          "type": "string",
          "enum": [
            "read",
            "readAndWrite"
          ],
          "description": "Clipboard access level."
        },
        "network": {
          "type": "object",
          "description": "Network access permissions.",
          "properties": {
            "domains": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "description": "Allowed network domains. Use 'all' for unrestricted access."
            }
          }
        },
        "webview": {
          "type": "object",
          "description": "WebView permissions for embedded web content.",
          "properties": {
            "allow": {
              "type": "string",
              "enum": [
                "yes",
                "no"
              ]
            },
            "domains": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        },
        "ipc": {
          "type": "object",
          "description": "Inter-plugin communication permissions.",
          "properties": {
            "enablePluginCommunication": {
              "type": "boolean"
            }
          }
        },
        "allowCodeGenerationFromStrings": {
          "type": "boolean",
          "description": "Whether to allow eval() and Function() from strings."
        },
        "localFileSystem": {
          "type": "string",
          "enum": [
            "plugin",
            "request",
            "fullAccess"
          ],
          "description": "File system access level. plugin = plugin sandbox only, request = user-prompted, fullAccess = unrestricted."
        },
        "launchProcess": {
          "type": "object",
          "description": "Permission to launch external processes (hybrid plugins).",
          "properties": {
            "schemes": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "extensions": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          }
        },
        "enableAddon": {
          "type": "boolean",
          "description": "Whether to enable native C++ addon loading (hybrid plugins)."
        }
      }
    },
    "addon": {
      "type": "object",
      "description": "Configuration for hybrid plugin native C++ addon.",
      "properties": {
        "cplugins": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "filter"
                ]
              },
              "path": {
                "type": "string",
                "description": "Relative path to the .uxpaddon file."
              }
            }
          }
        }
      }
    },
    "description": {
      "type": "string",
      "description": "Short description of the plugin's purpose."
    },
    "author": {
      "type": "string",
      "description": "Plugin author or company name."
    },
    "keywords": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Keywords for plugin discovery in the Adobe Marketplace."
    }
  }
}

Work with this as data

Every JSON Structure here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for json structure

4 MCP tools reach this
  • find_json_structuresBrowse and filter every JSON Structure in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This JSON Structure
curl "https://apis.io/api/v1/json-structures/adobe-photoshop-uxp-plugin-manifest-structure"
All json structure
curl "https://apis.io/api/v1/json-structures?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.