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
- Select the layers you want to work with, if the shortcut uses a selection.
- Open Figma Quick Actions with Command + / on Mac or Ctrl + / on Windows.
- Search for the plugin and choose the named shortcut below.
- 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 selected layers using their Figma export settings | One or more eligible layers |
pdf | Merge selected frames into a screen PDF | One or more eligible layers |
motion | Export native Figma Motion from one source | Exactly one eligible layer |
print | Create print canvases with explicit dimensions and production guides without saving UI defaults | No layer target |
logo-canvas | Generate logo variants on the canvas with Figma export settings (maximum 200 variants) | One or more eligible layers |
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
{"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:
{"quality":90,"convert":"webp"}Agent host input
{
"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
{"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
{"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:
{"format":"GIF","fps":30,"scale":1}Agent host input
{
"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
{"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:
{"name":"A4 flyer","width":210,"height":297,"unit":"mm"}Agent host input
{
"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:
{"name":"Brand","formats":["PNG","SVG"],"scales":[1,2],"schemes":["full-color","black","white"]}Agent host input
{
"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
{"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:
{"alignToGrid":true,"horizontalSpacing":100}Agent host input
{
"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 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.