figma_diff_versions
Compare two Figma file versions to reveal page-structure changes and optional per-component deep diffs, including property and metadata updates.
Instructions
Diff two versions of a Figma file. Always returns a cheap page-structure diff (added/removed/renamed pages, 2 API calls). Pass component_ids to additionally get per-node deep diffs at depth=2 (added/removed children, name/description changes, componentPropertyDefinitions changes for COMPONENT_SETs, boundVariables deltas) — costs 2 API calls per scoped node. Use 'current' for to_version to diff against HEAD. v1.25.0: when the Desktop Bridge plugin is connected, description and Dev Mode annotation changes are ALSO tracked via a session buffer and surfaced under scoped_nodes[].metadata_changes[] and unscoped_metadata_changes[] — Figma REST omits these from version snapshots so they're otherwise invisible. STILL NOT tracked: instances of components on the canvas, raw layout properties (layoutSizingHorizontal/Vertical, unbound paddings/widths), raw visual properties (cornerRadius, unbound fills), variable VALUE changes, style content, and metadata edits made while the plugin was disconnected. See scope_coverage and notes[] for the full coverage map and complementary tools.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | Output verbosity. summary=counts only, standard=names+counts (default), detailed=full property/binding details. | standard |
| fileUrl | No | Figma file URL. Uses current URL if omitted. | |
| to_version | Yes | The later version_id to compare to. Use 'current' for HEAD. | |
| from_version | Yes | The earlier version_id to compare from. Get from figma_get_file_versions. | |
| component_ids | No | Optional. Node IDs (typically COMPONENT_SETs) to diff in detail. If omitted, falls back to the current Figma selection. If neither is available, only the page-structure diff is returned. Use figma_get_design_system_kit or figma_search_components to discover IDs explicitly. |