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.
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
Meta-schema: https://json-structure.org/meta/core/v0/#
JSON Structure
{
"$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.
Call it yourself
curl for this page
curl "https://apis.io/api/v1/json-structures/adobe-photoshop-uxp-plugin-manifest-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.