{
  "version": 1,
  "availability": "Requires an installed plugin offering the requested action; choose from its Quick Actions list",
  "docsUrl": "https://docs.hypermatic.com/tinyimage/automation/parameters",
  "inputLimits": {
    "quickActionsPasteMaxCharacters": 149,
    "parserOptionsMaxCharacters": 16384,
    "maxTargetIds": 100,
    "rejectedAmbiguousLength": 150
  },
  "optionDefinitionFormat": "Hypermatic parameter fields v1; not JSON Schema",
  "plugin": "tinyimage",
  "parameters": [
    "command",
    "parameters"
  ],
  "shortcuts": [
    {
      "command": "open",
      "name": "Open TinyImage",
      "action": "open",
      "advanced": false,
      "parameters": [],
      "target": "none"
    },
    {
      "command": "shortcut-compress",
      "name": "Compress Selected Layers",
      "action": "compress",
      "advanced": false,
      "parameters": [
        {
          "name": "Quality (1–100)",
          "key": "quality",
          "allowFreeform": true,
          "optional": true
        },
        {
          "name": "Convert format",
          "key": "convert",
          "allowFreeform": false,
          "optional": true
        }
      ],
      "target": "current selection"
    },
    {
      "command": "shortcut-pdf",
      "name": "Export Selected Layers as PDF",
      "action": "pdf",
      "advanced": false,
      "parameters": [],
      "target": "current selection"
    },
    {
      "command": "shortcut-motion",
      "name": "Export Selected Figma Motion",
      "action": "motion",
      "advanced": false,
      "parameters": [
        {
          "name": "Format",
          "key": "format",
          "allowFreeform": false,
          "optional": true
        },
        {
          "name": "Frames per second",
          "key": "fps",
          "allowFreeform": false,
          "optional": true
        }
      ],
      "target": "current selection"
    },
    {
      "command": "shortcut-print",
      "name": "Create Print Canvas",
      "action": "print",
      "advanced": false,
      "parameters": [
        {
          "name": "Name",
          "key": "name",
          "allowFreeform": true,
          "optional": false
        },
        {
          "name": "Width",
          "key": "width",
          "allowFreeform": true,
          "optional": true
        },
        {
          "name": "Height",
          "key": "height",
          "allowFreeform": true,
          "optional": true
        },
        {
          "name": "Units",
          "key": "unit",
          "allowFreeform": false,
          "optional": true
        }
      ],
      "target": "none"
    },
    {
      "command": "shortcut-tidy",
      "name": "Arrange Selected Layers",
      "action": "tidy",
      "advanced": false,
      "parameters": [
        {
          "name": "Layout",
          "key": "layout",
          "allowFreeform": false,
          "optional": true
        },
        {
          "name": "Horizontal gap (px)",
          "key": "horizontalSpacing",
          "allowFreeform": true,
          "optional": true
        },
        {
          "name": "Vertical gap (px)",
          "key": "verticalSpacing",
          "allowFreeform": true,
          "optional": true
        }
      ],
      "target": "current selection"
    },
    {
      "command": "advanced-compress",
      "name": "Advanced: Compress Selected Layers",
      "action": "compress",
      "advanced": true,
      "parameters": [
        {
          "name": "Target (optional node IDs)",
          "key": "target",
          "allowFreeform": true,
          "optional": true
        },
        {
          "name": "Advanced options (JSON)",
          "key": "options",
          "allowFreeform": true,
          "optional": true
        }
      ],
      "target": "optional node IDs or current selection"
    },
    {
      "command": "advanced-motion",
      "name": "Advanced: Export Selected Figma Motion",
      "action": "motion",
      "advanced": true,
      "parameters": [
        {
          "name": "Target (optional node IDs)",
          "key": "target",
          "allowFreeform": true,
          "optional": true
        },
        {
          "name": "Advanced options (JSON)",
          "key": "options",
          "allowFreeform": true,
          "optional": true
        }
      ],
      "target": "optional node IDs or current selection"
    },
    {
      "command": "advanced-print",
      "name": "Advanced: Create Print Canvas",
      "action": "print",
      "advanced": true,
      "parameters": [
        {
          "name": "Advanced options (JSON)",
          "key": "options",
          "allowFreeform": true,
          "optional": false
        }
      ],
      "target": "none"
    },
    {
      "command": "advanced-logo-canvas",
      "name": "Advanced: logo canvas",
      "action": "logo-canvas",
      "advanced": true,
      "parameters": [
        {
          "name": "Advanced options (JSON)",
          "key": "options",
          "allowFreeform": true,
          "optional": false
        },
        {
          "name": "Target (optional node IDs)",
          "key": "target",
          "allowFreeform": true,
          "optional": true
        }
      ],
      "target": "optional node IDs or current selection"
    },
    {
      "command": "advanced-tidy",
      "name": "Advanced: Arrange Selected Layers",
      "action": "tidy",
      "advanced": true,
      "parameters": [
        {
          "name": "Target (optional node IDs)",
          "key": "target",
          "allowFreeform": true,
          "optional": true
        },
        {
          "name": "Advanced options (JSON)",
          "key": "options",
          "allowFreeform": true,
          "optional": true
        }
      ],
      "target": "optional node IDs or current selection"
    }
  ],
  "actions": {
    "open": {
      "description": "Open the normal interactive plugin",
      "fields": {},
      "target": "none",
      "execution": "builtin"
    },
    "compress": {
      "description": "Compress selected layers using their Figma export settings",
      "fields": {
        "quality": {
          "type": "number",
          "min": 1,
          "max": 100,
          "default": 90,
          "description": "Compression quality"
        },
        "convert": {
          "type": "string",
          "values": [
            "none",
            "webp",
            "webpjpg",
            "webppng",
            "avif",
            "tinysvg"
          ],
          "default": "none",
          "description": "Optional output conversion"
        },
        "lossless": {
          "type": "boolean",
          "default": false,
          "description": "Use existing lossless compression option"
        },
        "sizeTarget": {
          "type": "number",
          "min": 1,
          "max": 100000,
          "description": "Optional target size in KB; output may exceed the target"
        }
      },
      "target": "many",
      "execution": "worker"
    },
    "pdf": {
      "description": "Merge selected frames into a screen PDF",
      "fields": {},
      "target": "many",
      "execution": "worker"
    },
    "motion": {
      "description": "Export native Figma Motion from one source",
      "fields": {
        "format": {
          "type": "string",
          "values": [
            "GIF",
            "MP4",
            "WEBM"
          ],
          "default": "GIF",
          "description": "Animation format"
        },
        "fps": {
          "type": "number",
          "values": [
            10,
            15,
            24,
            25,
            30,
            60
          ],
          "default": 30,
          "description": "Frames per second; native plan restrictions still apply"
        },
        "scale": {
          "type": "number",
          "values": [
            0.5,
            1,
            1.5,
            2,
            2.5,
            3,
            4
          ],
          "default": 1,
          "description": "Output scale"
        },
        "quality": {
          "type": "string",
          "values": [
            "LOW",
            "MEDIUM",
            "HIGH"
          ],
          "default": "HIGH",
          "description": "Native animation quality"
        }
      },
      "target": "one",
      "execution": "worker"
    },
    "print": {
      "description": "Create print canvases with explicit dimensions and production guides without saving UI defaults",
      "fields": {
        "name": {
          "type": "string",
          "description": "Document name",
          "required": true,
          "min": 1,
          "max": 120
        },
        "width": {
          "type": "number",
          "description": "Trim width in chosen unit",
          "min": 0.1,
          "max": 1000,
          "default": 210
        },
        "height": {
          "type": "number",
          "description": "Trim height in chosen unit",
          "min": 0.1,
          "max": 1000,
          "default": 297
        },
        "unit": {
          "type": "string",
          "description": "Measurement unit",
          "values": [
            "mm",
            "in"
          ],
          "default": "mm"
        },
        "pages": {
          "type": "number",
          "description": "Canvas count",
          "values": [
            1,
            2,
            3,
            4,
            5,
            6,
            7,
            8,
            9,
            10,
            11,
            12,
            13,
            14,
            15,
            16,
            17,
            18,
            19,
            20
          ],
          "default": 1
        },
        "orientation": {
          "type": "string",
          "description": "Orientation",
          "values": [
            "portrait",
            "landscape"
          ],
          "default": "portrait"
        },
        "dpi": {
          "type": "number",
          "description": "Canvas DPI",
          "values": [
            72,
            150,
            300
          ],
          "default": 300
        },
        "marginsEnabled": {
          "type": "boolean",
          "description": "Add margin guides",
          "default": false
        },
        "margins": {
          "type": "object",
          "description": "Edge measurements in the chosen unit",
          "fields": {
            "top": {
              "type": "number",
              "description": "top",
              "min": 0,
              "max": 100,
              "default": 0
            },
            "bottom": {
              "type": "number",
              "description": "bottom",
              "min": 0,
              "max": 100,
              "default": 0
            },
            "left": {
              "type": "number",
              "description": "left",
              "min": 0,
              "max": 100,
              "default": 0
            },
            "right": {
              "type": "number",
              "description": "right",
              "min": 0,
              "max": 100,
              "default": 0
            }
          }
        },
        "bleedEnabled": {
          "type": "boolean",
          "description": "Add bleed",
          "default": false
        },
        "bleedMode": {
          "type": "string",
          "description": "Bleed behavior",
          "values": [
            "expand",
            "contain"
          ],
          "default": "expand"
        },
        "bleeds": {
          "type": "object",
          "description": "Edge measurements in the chosen unit",
          "fields": {
            "top": {
              "type": "number",
              "description": "top",
              "min": 0,
              "max": 100,
              "default": 0
            },
            "bottom": {
              "type": "number",
              "description": "bottom",
              "min": 0,
              "max": 100,
              "default": 0
            },
            "left": {
              "type": "number",
              "description": "left",
              "min": 0,
              "max": 100,
              "default": 0
            },
            "right": {
              "type": "number",
              "description": "right",
              "min": 0,
              "max": 100,
              "default": 0
            }
          }
        },
        "cropMarksEnabled": {
          "type": "boolean",
          "description": "Add crop marks",
          "default": false
        },
        "cropWeight": {
          "type": "number",
          "description": "Crop mark weight",
          "min": 0.1,
          "max": 8,
          "default": 0.25
        },
        "cropOffset": {
          "type": "number",
          "description": "Crop mark offset",
          "min": 0,
          "max": 100,
          "default": 3
        },
        "cropLength": {
          "type": "number",
          "description": "Crop mark length",
          "min": 0,
          "max": 100,
          "default": 5
        },
        "foldGuidesEnabled": {
          "type": "boolean",
          "description": "Add fold guides",
          "default": false
        },
        "foldPreset": {
          "type": "string",
          "description": "Fold preset",
          "values": [
            "bi-fold",
            "tri-fold",
            "custom"
          ],
          "default": "bi-fold"
        },
        "foldDirection": {
          "type": "string",
          "description": "Fold direction",
          "values": [
            "vertical",
            "horizontal"
          ],
          "default": "vertical"
        },
        "foldPositions": {
          "type": "string",
          "description": "One to eight unique comma-separated percentages strictly between 0 and 100",
          "max": 500,
          "default": ""
        }
      },
      "target": "none",
      "execution": "worker"
    },
    "logo-canvas": {
      "description": "Generate logo variants on the canvas with Figma export settings (maximum 200 variants)",
      "fields": {
        "name": {
          "type": "string",
          "description": "Package name",
          "required": true,
          "min": 1,
          "max": 120
        },
        "padding": {
          "type": "number",
          "description": "Variant padding in pixels",
          "min": 0,
          "max": 1000,
          "default": 0
        },
        "removeContainerBackgrounds": {
          "type": "boolean",
          "description": "Remove container backgrounds in generated variants",
          "default": true
        },
        "formats": {
          "type": "array",
          "description": "Figma export formats",
          "required": true,
          "min": 1,
          "max": 4,
          "item": {
            "type": "string",
            "description": "Format",
            "values": [
              "PNG",
              "JPG",
              "SVG",
              "PDF"
            ]
          }
        },
        "scales": {
          "type": "array",
          "description": "Raster export scales",
          "required": true,
          "min": 1,
          "max": 6,
          "item": {
            "type": "number",
            "description": "Scale",
            "values": [
              0.5,
              1,
              1.5,
              2,
              3,
              4
            ]
          }
        },
        "schemes": {
          "type": "array",
          "description": "Color variants",
          "required": true,
          "min": 1,
          "max": 5,
          "item": {
            "type": "string",
            "description": "Scheme",
            "values": [
              "full-color",
              "black",
              "white",
              "grayscale",
              "inverted"
            ]
          }
        }
      },
      "target": "many",
      "execution": "worker"
    },
    "tidy": {
      "description": "Arrange, sort, rename or number explicit sibling layers with the existing Tidy operation",
      "fields": {
        "layout": {
          "type": "string",
          "description": "Layout direction",
          "values": [
            "auto",
            "rows",
            "columns"
          ],
          "default": "auto"
        },
        "horizontalSpacing": {
          "type": "number",
          "description": "Horizontal spacing in pixels",
          "min": 0,
          "max": 10000,
          "default": 100
        },
        "verticalSpacing": {
          "type": "number",
          "description": "Vertical spacing in pixels",
          "min": 0,
          "max": 10000,
          "default": 100
        },
        "alignToGrid": {
          "type": "boolean",
          "description": "Reposition layers",
          "default": true
        },
        "wrapInstances": {
          "type": "boolean",
          "description": "Wrap instances",
          "default": false
        },
        "sortLayers": {
          "type": "boolean",
          "description": "Reorder layers",
          "default": false
        },
        "renameLayers": {
          "type": "boolean",
          "description": "Rename layers",
          "default": false
        },
        "renameStrategy": {
          "type": "string",
          "description": "Naming strategy",
          "values": [
            "replace",
            "merge",
            "custom"
          ],
          "default": "replace"
        },
        "namingPattern": {
          "type": "string",
          "description": "Custom naming pattern",
          "min": 1,
          "max": 200,
          "default": "{n}"
        },
        "startNumber": {
          "type": "string",
          "description": "Starting number, preserving leading zeros",
          "pattern": "^[0-9]{1,6}$",
          "default": "000"
        },
        "updatePager": {
          "type": "boolean",
          "description": "Update matching pager text layers",
          "default": false
        },
        "pagerLayerName": {
          "type": "string",
          "description": "Pager layer name",
          "min": 1,
          "max": 200,
          "default": "{current}"
        }
      },
      "target": "many",
      "execution": "worker"
    }
  },
  "examples": {
    "compress": {
      "quality": 90,
      "convert": "webp"
    },
    "pdf": {},
    "motion": {
      "format": "GIF",
      "fps": 30,
      "scale": 1
    },
    "tidy": {
      "alignToGrid": true,
      "horizontalSpacing": 100
    },
    "print": {
      "name": "A4 flyer",
      "width": 210,
      "height": 297,
      "unit": "mm"
    },
    "logo-canvas": {
      "name": "Brand",
      "formats": [
        "PNG",
        "SVG"
      ],
      "scales": [
        1,
        2
      ],
      "schemes": [
        "full-color",
        "black",
        "white"
      ]
    }
  },
  "limitsAndBehavior": "GIF/video assembly, print PDF settings and image-fill downscaling remain interactive. Compression uses existing export settings on the exact target nodes. PDF commands do not downscale image fills in the document. Motion accepts one source per command. Print creates up to 20 canvases and rejects dimensions above 16,384 px including bleed and crop-mark extents. Optional margins and bleeds default to zero on each edge. Contained bleed and crop offsets must leave a positive finished page area. Use the normal TinyImage panel to view print preflight results. Logo-canvas creates up to 200 variants, preserves the source artwork and applies export settings; exporting a packaged logo ZIP remains interactive.",
  "completion": {
    "deadlineMs": 300000,
    "visibleNotifications": true,
    "nativeSaveDialog": true,
    "verifySavedArtifact": true
  },
  "invocation": "Figma Quick Actions or a verified host launcher; no REST/MCP launcher is provided",
  "results": "Normal Figma success/error notifications, document changes, native file downloads and published pages"
}
