Skip to content

Figloo 0.4.0

Choose a tag to compare

@github-actions github-actions released this 03 Oct 00:50
· 25 commits to main since this release

Upgrading

  • Replace the extension with the new zip and press the reload button on its card in chrome://extensions or arc://extensions.
  • Update the Claude Code plugin, or the .mjs file you registered, then start new agent sessions so they run the new server.
  • The extension and the MCP server speak bridge protocol 0.3.0. A pair that speaks different versions does not connect, and get_status reports PROTOCOL_MISMATCH.

Files

File SHA-256
figloo-extension-0.4.0.zip e74cd078f5d7f0f21fae05346379f9a01950e0c25e5921dac4a3ea92aed91fd4
figloo-mcp-0.4.0.mjs caaa348d9e7f5d2322371710870d870de40550608dd2a6c32614407183462526
figloo-mcp-0.4.0.mcpb d58ffc8d353eec63c0e73fc2e03c72787f7d1bd31579a1e6139824a3fb5f3fcc

Install

  1. Unzip figloo-extension-0.4.0.zip into a folder you keep. On chrome://extensions or arc://extensions, turn on Developer mode, click "Load unpacked", and select that folder.
  2. Register the MCP server. In Claude Code, install the plugin, which downloads figloo-mcp-0.4.0.mcpb from this release:
    /plugin marketplace add g761007/figloo
    /plugin install figloo@figloo
    
    Without the plugin, keep figloo-mcp-0.4.0.mjs anywhere (it needs only Node.js 24), register it, then start a new session:
    claude mcp add -s user figloo -- node /absolute/path/to/figloo-mcp-0.4.0.mjs
  3. Pair once: run node figloo-mcp-0.4.0.mjs pair and paste the token and port into the extension's options page. The plugin's server reads the same ~/.figloo/config.json, so this works for the plugin too.
  4. In Figma, sign in (view access is enough), use the English UI, keep the UI expanded, and turn on "Adapt content for screen readers" under Main menu, Preferences, Accessibility settings. Keep the Figma tab on screen while the agent works.

Or let your agent do it: the README's Quickstart has one sentence to paste into Claude Code or Codex, which installs Figloo by following docs/agent-install.md and walks you through the steps only you can do.

The README has the details and troubleshooting.

Changes

Added

  • capture and snapshot_layer put the user's zoom and place on the canvas back once they are done, as they already did with the selection, and say so in viewRestored. This needs "Adapt content for screen readers" in Figma, whose screen reader mirror tells exactly where the view is. The view stays where it is when the user uses Figma meanwhile.
  • snapshot_layer compares a new snapshot with the previous one of the same root: it counts the layers new, changed, and removed, names the removed ones, and marks the others in the outline with what changed, such as [changed: layout, content]. query_snapshot with changed: true lists them. An expired snapshot is kept 30 days for this comparison.
  • "Diagnostics" in the popup shows a short report for bug reports and copies it: the extension, protocol, and server versions, the browser, the connection, the tab's readiness and the parts of Figma's UI Figloo found, and the codes of the latest errors. It holds no file, page, or layer names and no links. A bug report form on GitHub asks for it.
  • export_assets exports several layers one after another into one folder of the project: the given refs, or every layer a snapshot marks with export settings. Files keep Figma's names, with the layer's ref added when a name repeats; a call does up to 50 layers in about 150 seconds and hands back the rest.
  • summarize_snapshot lists the design values of a saved snapshot, or of one section of it, without the Figma tab: every color with what it colors, text style, gap, padding side, corner radius, border width, and shadow, each with how many layers use it, and the instances by name with each combination of their component properties. The figloo-implement skill calls it before mapping a design onto the project's tokens and components.

Changed

  • snapshot_layer reads layers of up to 2,000 layers, up from 400. A call still reads for at most three minutes; when layers are left, it returns complete: false with its progress, and calling it again with the same root reads on where it stopped. Until the snapshot is whole, query_snapshot, summarize_snapshot, and export_assets answer SNAPSHOT_INCOMPLETE.
  • A saved snapshot works after the Figma tab reloads: pass its root to snapshot_layer with a new context, and every ref of the snapshot works in that context again. Figloo now tells the tab the way down to these layers, so inspect_nodes, capture, export_asset, and the other tools find them even though the page has not shown them since it loaded.
  • export_asset and export_assets report LAYER_HIDDEN at once for a hidden layer, or one inside a hidden layer, which Figma does not export, instead of EXPORT_BLOCKED after 12 seconds. An EXPORT_BLOCKED message now says what Figma did in the page, such as making no file.
  • The extension and the MCP server speak bridge protocol 0.3.0, so both must be replaced together; a mismatched pair reports PROTOCOL_MISMATCH in get_status.
  • GitHub Actions builds and publishes each release from its version tag, and computes the checksum table in the release notes from the files it uploads. Every push and pull request runs the build, type checks, and unit tests.

Fixed

  • Snapshots marked instances inside hidden layers, and hidden instances, as visible: Figma dims such rows in purple instead of greying them. They count as hidden now, and so does every layer inside a hidden layer.