---
url: "/tinyimage/automation/parameters.md"
description: "Run TinyImage Quick Actions with simple named inputs and documented advanced options."
---

# TinyImage Keyboard Shortcuts

> Run TinyImage Quick Actions with simple named inputs and documented advanced options.

Run common TinyImage tasks from Figma Quick Actions without opening the plugin panel. Choose a named shortcut below. The advanced reference covers additional settings and structured bulk inputs.

## Run a keyboard shortcut

1. Select the layers you want to work with, if the shortcut uses a selection.
2. Open Figma Quick Actions with **Command + /** on Mac or **Ctrl + /** on Windows.
3. Search for the plugin and choose the named shortcut below.
4. Enter the fields shown. Optional fields may be skipped; use Tab to edit them. Run the shortcut and check the result or complete its save dialog.

Creation shortcuts ask for names or dimensions directly. Selected-layer shortcuts use the current selection automatically. These everyday shortcuts do not ask for Target or JSON. Choose **Open TinyImage** for the normal plugin panel.

| Shortcut | Inputs |
| --- | --- |
| **Compress Selected Layers** | Quality (1–100) (optional), Convert format (optional) |
| **Export Selected Layers as PDF** | None; runs immediately |
| **Export Selected Figma Motion** | Format (optional), Frames per second (optional) |
| **Create Print Canvas** | Name, Width (optional), Height (optional), Units (optional) |
| **Arrange Selected Layers** | Layout (optional), Horizontal gap (px) (optional), Vertical gap (px) (optional) |

## Advanced shortcuts

Use the clearly labelled **Advanced Shortcuts** menu for bulk structured inputs or additional export settings. Each entry is tied to one operation; it never asks you to choose an action again. JSON appears only in these advanced entries. Prefer the normal panel for longer content or when you need to browse components or templates.

Advanced entries that use layers accept optional exact node IDs; skipping Target uses the current selection. Creation and whole-site entries have no Target field. Enter only the options documented for that operation below. Keep each pasted field below 150 characters: Figma desktop can truncate pasted input at that boundary. Longer input belongs in the normal plugin panel. The internal parser limit is not a Quick Actions paste allowance.

If an older plugin shows Action, Target and Options instead, update it to use these named shortcuts. A Target value is a layer ID or selection, never the name of a new item.

## TinyImage actions

| Action | What it does | Target |
| --- | --- | --- |
| [`compress`](#compress) | Compress selected layers using their Figma export settings | One or more eligible layers |
| [`pdf`](#pdf) | Merge selected frames into a screen PDF | One or more eligible layers |
| [`motion`](#motion) | Export native Figma Motion from one source | Exactly one eligible layer |
| [`print`](#print) | Create print canvases with explicit dimensions and production guides without saving UI defaults | No layer target |
| [`logo-canvas`](#logo-canvas) | Generate logo variants on the canvas with Figma export settings (maximum 200 variants) | One or more eligible layers |
| [`tidy`](#tidy) | Arrange, sort, rename or number explicit sibling layers with the existing Tidy operation | One or more eligible layers |

### compress

Compress selected layers using their Figma export settings. Select one or more eligible layers.

| Option | Type | Required / default | Meaning and accepted values |
| --- | --- | --- | --- |
| `quality` | number | Default: `90` | Compression quality. Minimum 1; Maximum 100 |
| `convert` | string | Default: `"none"` | Optional output conversion. `none`, `webp`, `webpjpg`, `webppng`, `avif`, `tinysvg` |
| `lossless` | boolean | Default: `false` | Use existing lossless compression option |
| `sizeTarget` | number | Optional | Optional target size in KB; output may exceed the target. Minimum 1; Maximum 100000 |

Nested required fields apply when their parent object or array item is supplied. Omitted optional values use the existing operation’s behavior unless a default is listed.

Choose **Compress Selected Layers**. Enter these plain fields; no JSON is required:

- **Quality (1–100)**: `90`
- **Convert format**: `webp`

Agent host input

```json
{"command":"shortcut-compress","parameters":{"quality":"90","convert":"webp"}}
```

For the full option set, choose **Advanced: Compress Selected Layers**, set Target to `selection` and enter this Advanced options (JSON) value:

```json
{"quality":90,"convert":"webp"}
```

Agent host input

```json
{
  "command": "advanced-compress",
  "parameters": {
    "target": "selection",
    "options": "{\"quality\":90,\"convert\":\"webp\"}"
  }
}
```

### pdf

Merge selected frames into a screen PDF. Select one or more eligible layers.

This shortcut has no input fields.

Choose **Export Selected Layers as PDF**. It runs immediately using the current selection.

Agent host input

```json
{"command":"shortcut-pdf","parameters":{}}
```

### motion

Export native Figma Motion from one source. Select exactly one eligible layer.

| Option | Type | Required / default | Meaning and accepted values |
| --- | --- | --- | --- |
| `format` | string | Default: `"GIF"` | Animation format. `GIF`, `MP4`, `WEBM` |
| `fps` | number | Default: `30` | Frames per second; native plan restrictions still apply. `10`, `15`, `24`, `25`, `30`, `60` |
| `scale` | number | Default: `1` | Output scale. `0.5`, `1`, `1.5`, `2`, `2.5`, `3`, `4` |
| `quality` | string | Default: `"HIGH"` | Native animation quality. `LOW`, `MEDIUM`, `HIGH` |

Nested required fields apply when their parent object or array item is supplied. Omitted optional values use the existing operation’s behavior unless a default is listed.

Choose **Export Selected Figma Motion**. Enter these plain fields; no JSON is required:

- **Format**: `GIF`
- **Frames per second**: `30`

Agent host input

```json
{"command":"shortcut-motion","parameters":{"format":"GIF","fps":"30"}}
```

For the full option set, choose **Advanced: Export Selected Figma Motion**, set Target to `selection` and enter this Advanced options (JSON) value:

```json
{"format":"GIF","fps":30,"scale":1}
```

Agent host input

```json
{
  "command": "advanced-motion",
  "parameters": {
    "target": "selection",
    "options": "{\"format\":\"GIF\",\"fps\":30,\"scale\":1}"
  }
}
```

### print

Create print canvases with explicit dimensions and production guides without saving UI defaults. This action does not take targets.

| Option | Type | Required / default | Meaning and accepted values |
| --- | --- | --- | --- |
| `name` | string | Required | Document name. Minimum 1 character; Maximum 120 characters |
| `width` | number | Default: `210` | Trim width in chosen unit. Minimum 0.1; Maximum 1000 |
| `height` | number | Default: `297` | Trim height in chosen unit. Minimum 0.1; Maximum 1000 |
| `unit` | string | Default: `"mm"` | Measurement unit. `mm`, `in` |
| `pages` | number | Default: `1` | Canvas count. `1`, `2`, `3`, `4`, `5`, `6`, `7`, `8`, `9`, `10`, `11`, `12`, `13`, `14`, `15`, `16`, `17`, `18`, `19`, `20` |
| `orientation` | string | Default: `"portrait"` | Orientation. `portrait`, `landscape` |
| `dpi` | number | Default: `300` | Canvas DPI. `72`, `150`, `300` |
| `marginsEnabled` | boolean | Default: `false` | Add margin guides |
| `margins` | object | Optional | Edge measurements in the chosen unit |
| `margins.top` | number | Default: `0` | top. Minimum 0; Maximum 100 |
| `margins.bottom` | number | Default: `0` | bottom. Minimum 0; Maximum 100 |
| `margins.left` | number | Default: `0` | left. Minimum 0; Maximum 100 |
| `margins.right` | number | Default: `0` | right. Minimum 0; Maximum 100 |
| `bleedEnabled` | boolean | Default: `false` | Add bleed |
| `bleedMode` | string | Default: `"expand"` | Bleed behavior. `expand`, `contain` |
| `bleeds` | object | Optional | Edge measurements in the chosen unit |
| `bleeds.top` | number | Default: `0` | top. Minimum 0; Maximum 100 |
| `bleeds.bottom` | number | Default: `0` | bottom. Minimum 0; Maximum 100 |
| `bleeds.left` | number | Default: `0` | left. Minimum 0; Maximum 100 |
| `bleeds.right` | number | Default: `0` | right. Minimum 0; Maximum 100 |
| `cropMarksEnabled` | boolean | Default: `false` | Add crop marks |
| `cropWeight` | number | Default: `0.25` | Crop mark weight. Minimum 0.1; Maximum 8 |
| `cropOffset` | number | Default: `3` | Crop mark offset. Minimum 0; Maximum 100 |
| `cropLength` | number | Default: `5` | Crop mark length. Minimum 0; Maximum 100 |
| `foldGuidesEnabled` | boolean | Default: `false` | Add fold guides |
| `foldPreset` | string | Default: `"bi-fold"` | Fold preset. `bi-fold`, `tri-fold`, `custom` |
| `foldDirection` | string | Default: `"vertical"` | Fold direction. `vertical`, `horizontal` |
| `foldPositions` | string | Default: `""` | One to eight unique comma-separated percentages strictly between 0 and 100. Maximum 500 characters |

Nested required fields apply when their parent object or array item is supplied. Omitted optional values use the existing operation’s behavior unless a default is listed.

Choose **Create Print Canvas**. Enter these plain fields; no JSON is required:

- **Name**: `A4 flyer`
- **Width**: `210`
- **Height**: `297`
- **Units**: `mm`

Agent host input

```json
{"command":"shortcut-print","parameters":{"name":"A4 flyer","width":"210","height":"297","unit":"mm"}}
```

For the full option set, choose **Advanced: Create Print Canvas** and enter this Advanced options (JSON) value:

```json
{"name":"A4 flyer","width":210,"height":297,"unit":"mm"}
```

Agent host input

```json
{
  "command": "advanced-print",
  "parameters": {
    "options": "{\"name\":\"A4 flyer\",\"width\":210,\"height\":297,\"unit\":\"mm\"}"
  }
}
```

### logo-canvas

Generate logo variants on the canvas with Figma export settings (maximum 200 variants). Select one or more eligible layers.

| Option | Type | Required / default | Meaning and accepted values |
| --- | --- | --- | --- |
| `name` | string | Required | Package name. Minimum 1 character; Maximum 120 characters |
| `padding` | number | Default: `0` | Variant padding in pixels. Minimum 0; Maximum 1000 |
| `removeContainerBackgrounds` | boolean | Default: `true` | Remove container backgrounds in generated variants |
| `formats` | array | Required | Figma export formats. Minimum 1 item; Maximum 4 items |
| `formats[]` | string | Optional | Format. `PNG`, `JPG`, `SVG`, `PDF` |
| `scales` | array | Required | Raster export scales. Minimum 1 item; Maximum 6 items |
| `scales[]` | number | Optional | Scale. `0.5`, `1`, `1.5`, `2`, `3`, `4` |
| `schemes` | array | Required | Color variants. Minimum 1 item; Maximum 5 items |
| `schemes[]` | string | Optional | Scheme. `full-color`, `black`, `white`, `grayscale`, `inverted` |

Nested required fields apply when their parent object or array item is supplied. Omitted optional values use the existing operation’s behavior unless a default is listed.

For the full option set, choose **Advanced: logo canvas**, set Target to `selection` and enter this Advanced options (JSON) value:

```json
{"name":"Brand","formats":["PNG","SVG"],"scales":[1,2],"schemes":["full-color","black","white"]}
```

Agent host input

```json
{
  "command": "advanced-logo-canvas",
  "parameters": {
    "target": "selection",
    "options": "{\"name\":\"Brand\",\"formats\":[\"PNG\",\"SVG\"],\"scales\":[1,2],\"schemes\":[\"full-color\",\"black\",\"white\"]}"
  }
}
```

### tidy

Arrange, sort, rename or number explicit sibling layers with the existing Tidy operation. Select one or more eligible layers.

| Option | Type | Required / default | Meaning and accepted values |
| --- | --- | --- | --- |
| `layout` | string | Default: `"auto"` | Layout direction. `auto`, `rows`, `columns` |
| `horizontalSpacing` | number | Default: `100` | Horizontal spacing in pixels. Minimum 0; Maximum 10000 |
| `verticalSpacing` | number | Default: `100` | Vertical spacing in pixels. Minimum 0; Maximum 10000 |
| `alignToGrid` | boolean | Default: `true` | Reposition layers |
| `wrapInstances` | boolean | Default: `false` | Wrap instances |
| `sortLayers` | boolean | Default: `false` | Reorder layers |
| `renameLayers` | boolean | Default: `false` | Rename layers |
| `renameStrategy` | string | Default: `"replace"` | Naming strategy. `replace`, `merge`, `custom` |
| `namingPattern` | string | Default: `"{n}"` | Custom naming pattern. Minimum 1 character; Maximum 200 characters |
| `startNumber` | string | Default: `"000"` | Starting number, preserving leading zeros. Pattern `^[0-9]{1,6}$` |
| `updatePager` | boolean | Default: `false` | Update matching pager text layers |
| `pagerLayerName` | string | Default: `"{current}"` | Pager layer name. Minimum 1 character; Maximum 200 characters |

Nested required fields apply when their parent object or array item is supplied. Omitted optional values use the existing operation’s behavior unless a default is listed.

Choose **Arrange Selected Layers**. Enter these plain fields; no JSON is required:

- **Layout**: `auto`
- **Horizontal gap (px)**: `100`
- **Vertical gap (px)**: `100`

Agent host input

```json
{"command":"shortcut-tidy","parameters":{"layout":"auto","horizontalSpacing":"100","verticalSpacing":"100"}}
```

For the full option set, choose **Advanced: Arrange Selected Layers**, set Target to `selection` and enter this Advanced options (JSON) value:

```json
{"alignToGrid":true,"horizontalSpacing":100}
```

Agent host input

```json
{
  "command": "advanced-tidy",
  "parameters": {
    "target": "selection",
    "options": "{\"alignToGrid\":true,\"horizontalSpacing\":100}"
  }
}
```

## Using shortcuts with an agent

Read the machine-readable registry linked below and choose an action offered by the installed plugin’s Quick Actions list. The registry uses Hypermatic option definitions rather than standard JSON Schema: `min` and `max` constrain string length, array length or numeric value according to the field type; nested definitions use `fields` and `item`. Unknown fields are rejected.

The agent needs a host that can invoke Figma Quick Actions and observe the normal plugin result. Parameters do not add a REST or MCP launcher. The expandable examples are input data for a compatible host, not executable API calls; everyday shortcuts use plain strings in `parameters`; only advanced entries use a JSON-encoded `parameters.options` string. Never claim that a shortcut ran from its prepared input alone.

Verify the visible outcome: the changed Figma layers, saved export, or published page. Read the normal success/error notification and any partial-export warning. Complete native save dialogs as needed; a download starting does not prove that the file was saved. Users do not need to open developer tools or read a console.

## Troubleshooting

| Symptom | Next step |
| --- | --- |
| Action is unavailable | Update the plugin and check its Quick Actions list; use the normal panel if the action is unavailable. |
| Options are invalid or may have been truncated | Use compact JSON below 150 characters, with only fields accepted by that action. |
| Target is missing or ineligible | Open the correct page, check the action’s layer requirements, and select the intended layers again. |
| A license or trial error appears | Complete the plugin’s normal activation flow before rerunning. |
| Download was requested but no saved file is visible | Check the native save dialog and download location. Inspect the actual file. |
| A command fails, times out or is cancelled | Check the document and remote destination before retrying; earlier changes or uploads may already exist. |

Commands have a five-minute deadline. Errors do not imply a full rollback. Automatically retrying a create, replacement or upload can duplicate or overwrite work. The internal JSON parser has a 16,384-character ceiling, but that is not a Quick Actions paste allowance.

[Machine-readable command registry](/automation/parameters/tinyimage.json) contains the same action IDs and option definitions.

## Current limits

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.

## Related documentation

- [Install and run TinyImage](/tinyimage/overview/install)
- [Figma plugin parameters](https://developers.figma.com/docs/plugins/plugin-parameters/)
- [Figma hidden UI options](https://developers.figma.com/docs/plugins/api/properties/figma-showui/)
