Skip to content

Releases: g761007/figloo

Figloo 0.7.0

Choose a tag to compare

@github-actions github-actions released this 12 Oct 09:05

Snapshots are about twice as fast, values bound to Figma variables are read with the variable's name, and the screenshots of some frames are no longer cropped to one side. Update the extension and the MCP server together for all of it; the bridge protocol is still 0.3.0, so an older half keeps working without the timings and the variable names.

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.7.0.zip 4f41058147b11490b670dbf4e546e735261d80b83f591f625f7fb38fafcdb7c2
figloo-mcp-0.7.0.mjs b91b64afc8ced3d90241ed8842a00394ab455ff0d96d848b9a38f94badbc1856
figloo-mcp-0.7.0.mcpb 0f4c7d257a3843951a2459325e3c0c89e185504fd8a329be7658f85e453337a8

Install

  1. Unzip figloo-extension-0.7.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.7.0.mcpb from this release:
    /plugin marketplace add g761007/figloo
    /plugin install figloo@figloo
    
    Without the plugin, keep figloo-mcp-0.7.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.7.0.mjs
  3. Pair once: run node figloo-mcp-0.7.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 docs/troubleshooting.md the common problems.

Changes

Added

  • Values bound to Figma variables carry the variable's name: inspect_nodes, snapshots, and summarize_snapshot give it as variable, next to the value it stands for, and map_tokens lists the project token named like the variable first, as exact when it holds the same value and near when it holds another.
  • pnpm bench:snapshot shows where a snapshot's time goes: the extension times each phase, such as the screenshot, the walk, and selecting and reading each layer, and the MCP server writes the numbers to its log, never layer names. The timings are an optional field of the bridge protocol, which stays 0.3.0.

Changed

  • Snapshots and screenshots no longer wait about two seconds for Figma's "Zoom to selection" message to go away: Figloo hides Figma's messages while it takes the screenshot and shows them again right after.
  • A snapshot opens each collapsed layer it meets together with everything inside it, with one Alt-click, and closes it the same way at the end, instead of one click per layer each way. The layers panel shows what it showed before; a layer that was expanded inside a collapsed one comes back collapsed.
  • Reading a layer whose properties match the previous layer's, such as a duplicate, no longer waits 400 ms when the inspection panel's header shows another name, and a snapshot of the layer the user has selected reads it at once.

Fixed

  • A color bound to a Figma variable was unreadable, and a number bound to one, such as a gap, read as the variable's name instead of its value.
  • A snapshot of some frames failed with UI_NOT_READY ("the screenshot does not show the whole root"), and capture cropped them to one side: after zooming, Figma's screen reader mirror kept such a frame up to 141 px away from where it was drawn. Figloo now selects the layer anew after zooming, and a snapshot crops by where the screenshot shows the root.
  • The signed-in canary ran the extension's background script from an earlier build, because its browser profile kept the old service worker; it now clears it before each run.

Figloo 0.6.0

Choose a tag to compare

@github-actions github-actions released this 07 Oct 04:34

map_tokens maps a design onto the project's own tokens and components. Only the MCP server changed: the extension's code is the same as in 0.5.0, and the bridge protocol is still 0.3.0.

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.6.0.zip 455e999ec3149825c13b312dfcce54c95f63b9da8ccd2447e367319d1967f972
figloo-mcp-0.6.0.mjs 5906c7d3cc46ab9613c5e83ae8d3482f1f6d187ce01055081cc2784c5fc03b78
figloo-mcp-0.6.0.mcpb a542db96285bcd0618ab606bebdced336a64599524e0e41417d9b8e6350e19d7

Install

  1. Unzip figloo-extension-0.6.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.6.0.mcpb from this release:
    /plugin marketplace add g761007/figloo
    /plugin install figloo@figloo
    
    Without the plugin, keep figloo-mcp-0.6.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.6.0.mjs
  3. Pair once: run node figloo-mcp-0.6.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 docs/troubleshooting.md the common problems.

Changes

Added

  • map_tokens puts a saved snapshot's colors, text styles, spacing, and corner radii next to the tokens the project already defines, without the Figma tab: exact matches, near ones with what differs (such as a color difference, an alpha, a pixel, or a weight), and values with none, and it lists project components whose names share an instance's words. It reads CSS custom properties, SCSS and Less variables, design token JSON, theme objects in JavaScript and TypeScript such as a Tailwind config, iOS asset catalogs and Swift, Android resources and Compose, and Flutter, from the project directory or a folder in it, skipping dependencies, build output, hidden folders, tests, and .env files.
  • The figloo-implement skill maps a design onto the project with map_tokens: it uses exact matches, shows near and unmatched values to the user before choosing, and reports the mapping as a table.
  • Workflow evals for the skill, in an unpublished harness under tests/skill-eval/ that answers Figloo's tools from mocks, since claude plugin eval cannot stand in for a server declared through an MCP bundle.

Figloo 0.5.0

Choose a tag to compare

@github-actions github-actions released this 07 Oct 04:03

Figloo now says what a tab cannot do and what to do about it: get_status lists each tab's limitations, tool errors say whether a retry can help, and figloo-mcp doctor checks the setup before an agent session is involved. Update the extension and the MCP server together for all of it; the bridge protocol is still 0.3.0, so an older half keeps working without the new reports.

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.5.0.zip 41a520666879fc08f08ab02627656fc8e75ccf6e877fa0db481841f0e047c1d6
figloo-mcp-0.5.0.mjs f6c36ebd1b02ce01228b8eb5e1ad15659c8751946a84eb8c319f1d3e4f7a3fc2
figloo-mcp-0.5.0.mcpb 62c380aa29c6295429a70fd0a8bbb406f5f5529a54325bf291c90901d27f2f74

Install

  1. Unzip figloo-extension-0.5.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.5.0.mcpb from this release:
    /plugin marketplace add g761007/figloo
    /plugin install figloo@figloo
    
    Without the plugin, keep figloo-mcp-0.5.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.5.0.mjs
  3. Pair once: run node figloo-mcp-0.5.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 docs/troubleshooting.md the common problems.

Changes

Fixed

  • A signed-in page without the right sidebar was reported as a guest session, which has none; now Figloo says it cannot find the sidebar and that Figma may have changed its UI.

Added

  • get_status lists each tab's limitations: what Figloo cannot do there, such as in a guest session, with edit access, with a minimized UI, with Figma's screen reader mirror off, or with a non-English UI, the tools that fail or do less, and what the user can do. When the one open file is READY but limited, the hint says so too; before, a missing screen reader mirror went unmentioned.
  • Tool errors carry a category and retry advice: yes when the same call can work as it is, after_user once the user did what the hint asks, and no when the agent should do something else first. docs/mcp-tools.md lists both for every error code.
  • figloo-mcp doctor checks, without starting a server or taking the port from anyone, Node.js, the config file and its pairing token, and who holds the port: nobody, a Figloo session with its version and whether an extension is connected to it, an older Figloo that cannot hand over, or another program. Each problem comes with its fix, and the command exits with 1 while any is left. docs/agent-install.md has agents run it after installing.
  • When the server turns the extension away, get_status names both versions and which side to update, or asks to pair again when the token does not match. The extension's options page keeps the server's explanation instead of a bare close code.
  • The extension checks the parts of Figma's page it depends on from one list, each marked by how stable its selector is, and reports the ones it did not find in get_status and the popup's Diagnostics. A signed-in tab without the right sidebar or the properties panel gets a UI_CHANGED limitation.
  • A signed-in canary, pnpm test:canary, checks on real Figma what a guest cannot reach: the selection, the inspection panel, snapshots, exports, and putting the view back. It runs on the maintainer's machine with a browser profile signed in to a dedicated test account that only views the test file, and tests/canary/login.mjs opens that profile for signing in by hand.

Figloo 0.4.3

Choose a tag to compare

@github-actions github-actions released this 07 Oct 02:48

Update the extension and the MCP server together: the extension finds what it cannot read, and the server reports it. The bridge protocol is still 0.3.0 and the new fields are optional, so an older half keeps working without the new reports.

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.3.zip 4bae3df383a9e50c7a4abbf8394c8389e453300679df98fc4ba86858ebe5c3bf
figloo-mcp-0.4.3.mjs ce933c6420f6ae8440158decfd05e01ad958e818954ad93f55b48393bf0d6c00
figloo-mcp-0.4.3.mcpb 05370dd07f77f4e602fd71847aca583647c78e8cd30dc70a3d669992a1c6266a

Install

  1. Unzip figloo-extension-0.4.3.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.3.mcpb from this release:
    /plugin marketplace add g761007/figloo
    /plugin install figloo@figloo
    
    Without the plugin, keep figloo-mcp-0.4.3.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.3.mjs
  3. Pair once: run node figloo-mcp-0.4.3.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 docs/troubleshooting.md the common problems.

Changes

Added

  • get_status reports access: "edit" for a file opened with edit access, which Figloo tells by the Design and Prototype tabs Figma shows in the right sidebar in place of Properties. Such a tab is DEGRADED, and its detail says that properties, snapshots, and exports do not work there while layers and screenshots do.
  • A section of the inspection panel that shows values Figloo cannot read, as after Figma changes its markup, comes with unreadable: true in inspect_nodes, snapshot_layer, and query_snapshot. Snapshot outlines mark such layers [unreadable: …], and snapshot_layer and summarize_snapshot count them in unreadableLayers.

Fixed

  • With edit access, inspect_nodes, snapshot_layer, export_asset, and export_assets waited for an inspection panel Figma does not show there: a snapshot took about 1.5 seconds per layer and saved every layer without properties or export settings. They now fail at once with UI_NOT_READY and say why.
  • When the export section shows settings Figloo cannot read, as after Figma's change between 0.4.0 and 0.4.1, export_asset stops before it changes anything, instead of adding a setting it could not take out again, and snapshot_layer saves the layer's export settings as unreadable instead of as none. A snapshot whose root shows no section Figloo can read fails instead of saving layers without properties.

Figloo 0.4.2

Choose a tag to compare

@github-actions github-actions released this 07 Oct 02:20

The fix is in the extension, so load the new one after updating. The bridge protocol is still 0.3.0, so the extension also works with the 0.4.1 MCP server.

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.2.zip 86db5b96b61a8b02c7569184091eb8ddd218ae047542f3bde7ccc60c0e34dbd1
figloo-mcp-0.4.2.mjs 21de0efeb7b841f5a9530710880c752c7d3dd815be9c9e1f2c999da71ba94bee
figloo-mcp-0.4.2.mcpb 276230cd2f567792a71091fe54f3df6e87045a7c66e9576331196fe18af2b23d

Install

  1. Unzip figloo-extension-0.4.2.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.2.mcpb from this release:
    /plugin marketplace add g761007/figloo
    /plugin install figloo@figloo
    
    Without the plugin, keep figloo-mcp-0.4.2.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.2.mjs
  3. Pair once: run node figloo-mcp-0.4.2.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 docs/troubleshooting.md the common problems.

Changes

Added

  • A GitHub Actions workflow runs the integration tests every day against a public Figma file as a guest, to notice changes in Figma's web UI before users run into them.
  • SECURITY.md describes the local bridge, the extension's permissions, the data Figloo keeps and where design content goes, and how to report a vulnerability. ROADMAP.md lists what comes next.

Changed

  • The README starts with what Figloo is for and how it works. Installation and troubleshooting moved to docs/installation.md and docs/troubleshooting.md, each also in Traditional Chinese.

Fixed

  • For a frame with layers that stay put while it scrolls, Figma's layers panel lists its children under "Fixed" and "Scrolls" header rows. Figloo stopped at the first header: get_neighbors returned no children, siblings, or ancestors for the layers of such a frame, only hasMore: true and a cursor, and snapshot_layer could not read it. Header rows are now passed over, and since they are shorter than layer rows, the rows of the panel are counted and scrolled to from where Figma draws them. The daily canary found this, and the integration tests now fail when a read stops early instead of passing with fewer layers.

Figloo 0.4.1

Choose a tag to compare

@github-actions github-actions released this 06 Oct 09:21

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.1.zip 04aade5bcd7c177f9c9798ed7e689290245336b403f78cf3dbe49704a28853ba
figloo-mcp-0.4.1.mjs fb49e4376d06442a74f127f28cca5f018c20675141ad786b2372129da76c89c4
figloo-mcp-0.4.1.mcpb 1869c16dd4018bb7df5133f3f12a2057cf0c6f5d84c1aa01fd289fa9738994f3

Install

  1. Unzip figloo-extension-0.4.1.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.1.mcpb from this release:
    /plugin marketplace add g761007/figloo
    /plugin install figloo@figloo
    
    Without the plugin, keep figloo-mcp-0.4.1.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.1.mjs
  3. Pair once: run node figloo-mcp-0.4.1.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

Fixed

  • export_asset and export_assets failed every time with UI_NOT_READY: Figma did not add an export setting after Figma replaced the file type control of export settings with a new select. Each failed call left a PNG setting behind in the tab, and a layer's own settings were ignored, so a call without format exported SVG. snapshot_layer reported no export settings for any layer, so retake snapshots made since then. Figloo now reads both the new select and the old control, names Figma's JPEG JPG as the tools do, and says so when Figma added a setting that Figloo cannot read instead of reporting that Figma added none.
  • export_asset with format and scale returned two files when the layer's own settings use that format at another scale, such as the designer's PNG 1x next to a requested PNG 3x, and a saveTo file name then failed with EEXIST because it was taken for a folder. For PNG and JPG only the file at the requested scale comes back now, told apart by its size since Figma names the extra file inconsistently, such as -1 or @3x. When several files still come back, a saveTo with a file extension is refused before anything is written and the message lists the files; a folder ending with / saves them all. export_assets keeps the requested scale the same way. Keeping one scale needs the extension and the MCP server of this release together; the saveTo check needs only the server.

Figloo 0.4.0

Choose a tag to compare

@github-actions github-actions released this 03 Oct 00:50

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.

Figloo 0.3.2

Choose a tag to compare

@g761007 g761007 released this 02 Oct 08:40

Figloo 0.3.2 puts the user's selection back after a read runs out of time, gives the extension a new icon, and is the first release under the MIT License.

Upgrading from 0.3.1

  • Replace the extension and reload it on chrome://extensions or arc://extensions. Replacing the MCP server is optional: it only changed its version number, and the bridge protocol is still 0.2.0.

Files

File SHA-256
figloo-extension-0.3.2.zip fa208929b78aa95a943417958fe00f009acf697e635334fdb95424d776a63167
figloo-mcp-0.3.2.mjs 7b558b4298fbe87f3fe92d22b7419772cd37430601ed747a9beb2890bfb44edb
figloo-mcp-0.3.2.mcpb 664ae21ef017bf3d6b834e165539ce8d82e6cdbb8f9e4407a20c95d7c0af0657

Install

  1. Unzip figloo-extension-0.3.2.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.3.2.mcpb from this release:
    /plugin marketplace add g761007/figloo
    /plugin install figloo@figloo
    
    Without the plugin, keep figloo-mcp-0.3.2.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.3.2.mjs
  3. Pair once: run node figloo-mcp-0.3.2.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.

What's new since 0.3.1

  • Figloo is released under the MIT License.
  • A Quickstart in the README: one sentence to paste into Claude Code or Codex, which installs Figloo by following docs/agent-install.md.
  • A new icon: an igloo built from rows like a layers panel, white on an indigo tile, in place of the gradient igloo. Tabs Figloo cannot use still show it in gray.

Fixes

  • A read that ran out of time or UI operations could leave the last layer it read selected and the layers panel scrolled away, when the layer the user had selected was out of view in the panel. Figloo now selects the user's layers again and scrolls the panel back.

Figloo 0.3.1

Choose a tag to compare

@g761007 g761007 released this 02 Oct 07:14

Figloo 0.3.1 fixes list_pages, which could return only some of a file's pages on its first call. It is also the first published release since 0.1.0, so it brings the changes of 0.2.0 and 0.3.0: several agent sessions can share the extension, snapshot_layer shows its progress with a Stop button, and Claude Code can install Figloo as a plugin together with the figloo-implement skill.

Upgrading from 0.1.0

  • Replace both the extension and the MCP server. The bridge protocol is still 0.2.0, but servers from 0.1.0 cannot hand the extension over to another session, so restart every agent session that still runs one. Reload the extension on chrome://extensions or arc://extensions.
  • For Claude Code, you can switch to the plugin, which installs the server and the skill: /plugin marketplace add g761007/figloo, then /plugin install figloo@figloo. Remove a server you registered by hand with claude mcp remove figloo -s user, or both would run in every session.

Files

File SHA-256
figloo-extension-0.3.1.zip e359b35f04f6a496360372ed8e288983bb8c91fd77081aa6e44173899e460758
figloo-mcp-0.3.1.mjs 308bd0aaa92cb9c1961bf48440a69b20e21b6192627c1fc09dd1e8b79fa13c20
figloo-mcp-0.3.1.mcpb f788a8f9cb8c19b72a0e2af1c7752d92980b1d6bd354b529e6a695043c6f107c

Install

  1. Unzip figloo-extension-0.3.1.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.3.1.mcpb from this release:
    /plugin marketplace add g761007/figloo
    /plugin install figloo@figloo
    
    Without the plugin, keep figloo-mcp-0.3.1.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.3.1.mjs
  3. Pair once: run node figloo-mcp-0.3.1.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.

The README has the details and troubleshooting.

What's new since 0.1.0

  • Several agent sessions can use Figloo, one at a time. One session's server serves the extension and the others stand by. A standby session takes the extension over when one of its tools needs Figma and the serving session has been idle for 10 seconds; while that session is working, the tool returns BUSY with its name. When the serving session exits, a standby one takes over within a few seconds. get_status, the toolbar icon, the popup, and the options page name the session Figloo serves, for example Claude Code · shop (started 09:15).
  • While snapshot_layer reads, Figma shows an overlay with the progress and a Stop button. Stop or Esc ends the read and puts the layers panel and the selection back. If the Figma tab goes to the background, the read pauses and continues once the tab is back, instead of failing.
  • The figloo-implement skill guides an agent through implementing a Figma page or component: take a snapshot, map the design onto the project's tokens and components, read the details section by section, build, and compare the result with the screenshot. It also covers looking at a design and exporting assets.
  • A Claude Code plugin and marketplace install the MCP server and the skill together. The server also ships as an MCP bundle, figloo-mcp-<version>.mcpb.

Fixes

  • list_pages waits until Figma's pages list stops changing, up to two seconds, before it answers. Once, its first call returned 8 of a file's 20 pages. The result now includes complete, which is false when the list kept changing or showed signs of pages it had not drawn. Each call takes about 200 ms longer.

Figloo 0.1.0

Choose a tag to compare

@g761007 g761007 released this 02 Oct 02:16

Figloo 0.1.0 adds page snapshots: for a page to implement, the agent reads a screenshot and every layer's place and properties in one call, then looks layers up without touching Figma again. It can also find layers by where they are on screen, and start from several selected layers.

Upgrading from 0.0.1

  • Replace both files. The extension and the MCP server now speak bridge protocol 0.2.0, and a mismatched pair reports PROTOCOL_MISMATCH in get_status. Reload the extension on chrome://extensions or arc://extensions, then start a new agent session.
  • Codex stops a tool call after 60 seconds by default, and snapshot_layer can take up to three minutes. Set tool_timeout_sec = 300 for figloo in ~/.codex/config.toml; the README shows the full entry.

Files

File SHA-256
figloo-extension-0.1.0.zip 41fa9dc0bf493275029315ac04978e0cd7196281612be1553c4004ed48bd58c1
figloo-mcp-0.1.0.mjs d4afd3be6027e133d0f2927909971f380f4c38569518c9a0d35043a613dc522b

Install

  1. Unzip figloo-extension-0.1.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. Keep figloo-mcp-0.1.0.mjs anywhere; it needs only Node.js 24. Register it with Claude Code, then start a new session:
    claude mcp add -s user figloo -- node /absolute/path/to/figloo-mcp-0.1.0.mjs
  3. Pair once: run node figloo-mcp-0.1.0.mjs pair and paste the token and port into the extension's options page.
  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.

The README has the details and troubleshooting.

What's new

  • snapshot_layer reads a layer and everything inside it, up to 400 layers: about 40 seconds for 300 layers, at most three minutes. It returns a screenshot and an outline with one line per layer, and saves the snapshot under ~/.figloo/snapshots/ for 24 hours (snapshotTtlHours in the config file). For each layer it records its place and size relative to the root, whether it is hidden, the designer's export settings, and everything inspect_nodes shows. Instances count as one layer. image.alignment says whether the root's place in the screenshot was checked against the screenshot itself. Meanwhile the user cannot use Figma; a click in Figma stops it.
  • query_snapshot looks layers up in a saved snapshot without the Figma tab, even after the page reloads: by ref in full, or by text, type, and the layer they are inside.
  • get_visual_neighbors lists the siblings of a layer by where they are on screen, with the side, gap, and offset in design pixels.
  • get_anchor returns up to 20 selected layers.
  • When the selected layer is a screen frame, the popup's prompt asks the agent to implement that page and to take a snapshot of it first.
  • The README is also available in Traditional Chinese (Taiwan).

Fixes

  • capture no longer crops around a layer's old place when the zoom barely changes, for example from 100% to 93%.
  • get_visual_neighbors measures lines, which have no height on screen.

The full contract is in docs/mcp-tools.md.

Verification

  • Arc 1.166.0 (Chromium 154) on macOS 27.0, signed in with view access: snapshots of a 278-layer and a 198-layer screen in 29 to 39 seconds. The properties of 16 sampled layers match inspect_nodes exactly, and 117 of 120 unrotated layers sit within 0.1 px of what the inspection panel shows. A click in Figma during a snapshot stops it and closes what it opened.
  • Chrome for Testing through Playwright: end-to-end tests against real Figma as a guest, run against these release files.
  • Supported setups and known limitations, including the occasional stale screen place behind image.alignment: docs/compatibility.