Repository navigation
Releases: g761007/figloo
Release list
Figloo 0.7.0
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://extensionsorarc://extensions. - Update the Claude Code plugin, or the
.mjsfile 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_statusreportsPROTOCOL_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
- Unzip
figloo-extension-0.7.0.zipinto a folder you keep. Onchrome://extensionsorarc://extensions, turn on Developer mode, click "Load unpacked", and select that folder. - Register the MCP server. In Claude Code, install the plugin, which downloads
figloo-mcp-0.7.0.mcpbfrom this release:Without the plugin, keep/plugin marketplace add g761007/figloo /plugin install figloo@figloofigloo-mcp-0.7.0.mjsanywhere (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
- Pair once: run
node figloo-mcp-0.7.0.mjs pairand 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. - 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, andsummarize_snapshotgive it asvariable, next to the value it stands for, andmap_tokenslists the project token named like the variable first, as exact when it holds the same value and near when it holds another. pnpm bench:snapshotshows 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"), andcapturecropped 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
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://extensionsorarc://extensions. - Update the Claude Code plugin, or the
.mjsfile 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_statusreportsPROTOCOL_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
- Unzip
figloo-extension-0.6.0.zipinto a folder you keep. Onchrome://extensionsorarc://extensions, turn on Developer mode, click "Load unpacked", and select that folder. - Register the MCP server. In Claude Code, install the plugin, which downloads
figloo-mcp-0.6.0.mcpbfrom this release:Without the plugin, keep/plugin marketplace add g761007/figloo /plugin install figloo@figloofigloo-mcp-0.6.0.mjsanywhere (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
- Pair once: run
node figloo-mcp-0.6.0.mjs pairand 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. - 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_tokensputs 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.envfiles.- 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, sinceclaude plugin evalcannot stand in for a server declared through an MCP bundle.
Figloo 0.5.0
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://extensionsorarc://extensions. - Update the Claude Code plugin, or the
.mjsfile 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_statusreportsPROTOCOL_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
- Unzip
figloo-extension-0.5.0.zipinto a folder you keep. Onchrome://extensionsorarc://extensions, turn on Developer mode, click "Load unpacked", and select that folder. - Register the MCP server. In Claude Code, install the plugin, which downloads
figloo-mcp-0.5.0.mcpbfrom this release:Without the plugin, keep/plugin marketplace add g761007/figloo /plugin install figloo@figloofigloo-mcp-0.5.0.mjsanywhere (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
- Pair once: run
node figloo-mcp-0.5.0.mjs pairand 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. - 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_statuslists each tab'slimitations: 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 isREADYbut limited, thehintsays so too; before, a missing screen reader mirror went unmentioned.- Tool errors carry a
categoryandretryadvice:yeswhen the same call can work as it is,after_useronce the user did what the hint asks, andnowhen the agent should do something else first.docs/mcp-tools.mdlists both for every error code. figloo-mcp doctorchecks, 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.mdhas agents run it after installing.- When the server turns the extension away,
get_statusnames 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_statusand the popup's Diagnostics. A signed-in tab without the right sidebar or the properties panel gets aUI_CHANGEDlimitation. - 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, andtests/canary/login.mjsopens that profile for signing in by hand.
Figloo 0.4.3
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://extensionsorarc://extensions. - Update the Claude Code plugin, or the
.mjsfile 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_statusreportsPROTOCOL_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
- Unzip
figloo-extension-0.4.3.zipinto a folder you keep. Onchrome://extensionsorarc://extensions, turn on Developer mode, click "Load unpacked", and select that folder. - Register the MCP server. In Claude Code, install the plugin, which downloads
figloo-mcp-0.4.3.mcpbfrom this release:Without the plugin, keep/plugin marketplace add g761007/figloo /plugin install figloo@figloofigloo-mcp-0.4.3.mjsanywhere (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
- Pair once: run
node figloo-mcp-0.4.3.mjs pairand 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. - 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_statusreportsaccess: "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 isDEGRADED, 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: trueininspect_nodes,snapshot_layer, andquery_snapshot. Snapshot outlines mark such layers[unreadable: …], andsnapshot_layerandsummarize_snapshotcount them inunreadableLayers.
Fixed
- With edit access,
inspect_nodes,snapshot_layer,export_asset, andexport_assetswaited 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 withUI_NOT_READYand 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_assetstops before it changes anything, instead of adding a setting it could not take out again, andsnapshot_layersaves 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
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://extensionsorarc://extensions. - Update the Claude Code plugin, or the
.mjsfile 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_statusreportsPROTOCOL_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
- Unzip
figloo-extension-0.4.2.zipinto a folder you keep. Onchrome://extensionsorarc://extensions, turn on Developer mode, click "Load unpacked", and select that folder. - Register the MCP server. In Claude Code, install the plugin, which downloads
figloo-mcp-0.4.2.mcpbfrom this release:Without the plugin, keep/plugin marketplace add g761007/figloo /plugin install figloo@figloofigloo-mcp-0.4.2.mjsanywhere (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
- Pair once: run
node figloo-mcp-0.4.2.mjs pairand 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. - 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.mddescribes the local bridge, the extension's permissions, the data Figloo keeps and where design content goes, and how to report a vulnerability.ROADMAP.mdlists what comes next.
Changed
- The README starts with what Figloo is for and how it works. Installation and troubleshooting moved to
docs/installation.mdanddocs/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_neighborsreturned no children, siblings, or ancestors for the layers of such a frame, onlyhasMore: trueand a cursor, andsnapshot_layercould 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
Upgrading
- Replace the extension with the new zip and press the reload button on its card in
chrome://extensionsorarc://extensions. - Update the Claude Code plugin, or the
.mjsfile 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_statusreportsPROTOCOL_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
- Unzip
figloo-extension-0.4.1.zipinto a folder you keep. Onchrome://extensionsorarc://extensions, turn on Developer mode, click "Load unpacked", and select that folder. - Register the MCP server. In Claude Code, install the plugin, which downloads
figloo-mcp-0.4.1.mcpbfrom this release:Without the plugin, keep/plugin marketplace add g761007/figloo /plugin install figloo@figloofigloo-mcp-0.4.1.mjsanywhere (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
- Pair once: run
node figloo-mcp-0.4.1.mjs pairand 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. - 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_assetandexport_assetsfailed every time withUI_NOT_READY: Figma did not add an export settingafter 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 withoutformatexported SVG.snapshot_layerreported 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 JPEGJPGas the tools do, and says so when Figma added a setting that Figloo cannot read instead of reporting that Figma added none.export_assetwithformatandscalereturned 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 asaveTofile name then failed withEEXISTbecause 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-1or@3x. When several files still come back, asaveTowith a file extension is refused before anything is written and the message lists the files; a folder ending with/saves them all.export_assetskeeps the requested scale the same way. Keeping one scale needs the extension and the MCP server of this release together; thesaveTocheck needs only the server.
Figloo 0.4.0
Upgrading
- Replace the extension with the new zip and press the reload button on its card in
chrome://extensionsorarc://extensions. - Update the Claude Code plugin, or the
.mjsfile 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_statusreportsPROTOCOL_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
- Unzip
figloo-extension-0.4.0.zipinto a folder you keep. Onchrome://extensionsorarc://extensions, turn on Developer mode, click "Load unpacked", and select that folder. - Register the MCP server. In Claude Code, install the plugin, which downloads
figloo-mcp-0.4.0.mcpbfrom this release:Without the plugin, keep/plugin marketplace add g761007/figloo /plugin install figloo@figloofigloo-mcp-0.4.0.mjsanywhere (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
- Pair once: run
node figloo-mcp-0.4.0.mjs pairand 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. - 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
captureandsnapshot_layerput the user's zoom and place on the canvas back once they are done, as they already did with the selection, and say so inviewRestored. 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_layercompares 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_snapshotwithchanged: truelists 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_assetsexports 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_snapshotlists 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_layerreads layers of up to 2,000 layers, up from 400. A call still reads for at most three minutes; when layers are left, it returnscomplete: falsewith its progress, and calling it again with the same root reads on where it stopped. Until the snapshot is whole,query_snapshot,summarize_snapshot, andexport_assetsanswerSNAPSHOT_INCOMPLETE.- A saved snapshot works after the Figma tab reloads: pass its root to
snapshot_layerwith 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, soinspect_nodes,capture,export_asset, and the other tools find them even though the page has not shown them since it loaded. export_assetandexport_assetsreportLAYER_HIDDENat once for a hidden layer, or one inside a hidden layer, which Figma does not export, instead ofEXPORT_BLOCKEDafter 12 seconds. AnEXPORT_BLOCKEDmessage 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_MISMATCHinget_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
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://extensionsorarc://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
- Unzip
figloo-extension-0.3.2.zipinto a folder you keep. Onchrome://extensionsorarc://extensions, turn on Developer mode, click "Load unpacked", and select that folder. - Register the MCP server. In Claude Code, install the plugin, which downloads
figloo-mcp-0.3.2.mcpbfrom this release:Without the plugin, keep/plugin marketplace add g761007/figloo /plugin install figloo@figloofigloo-mcp-0.3.2.mjsanywhere (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
- Pair once: run
node figloo-mcp-0.3.2.mjs pairand 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. - 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
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://extensionsorarc://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 withclaude 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
- Unzip
figloo-extension-0.3.1.zipinto a folder you keep. Onchrome://extensionsorarc://extensions, turn on Developer mode, click "Load unpacked", and select that folder. - Register the MCP server. In Claude Code, install the plugin, which downloads
figloo-mcp-0.3.1.mcpbfrom this release:Without the plugin, keep/plugin marketplace add g761007/figloo /plugin install figloo@figloofigloo-mcp-0.3.1.mjsanywhere (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
- Pair once: run
node figloo-mcp-0.3.1.mjs pairand 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. - 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
BUSYwith 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 exampleClaude Code · shop (started 09:15). - While
snapshot_layerreads, 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_pageswaits 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 includescomplete, 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
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_MISMATCHinget_status. Reload the extension onchrome://extensionsorarc://extensions, then start a new agent session. - Codex stops a tool call after 60 seconds by default, and
snapshot_layercan take up to three minutes. Settool_timeout_sec = 300for 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
- Unzip
figloo-extension-0.1.0.zipinto a folder you keep. Onchrome://extensionsorarc://extensions, turn on Developer mode, click "Load unpacked", and select that folder. - Keep
figloo-mcp-0.1.0.mjsanywhere; 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
- Pair once: run
node figloo-mcp-0.1.0.mjs pairand paste the token and port into the extension's options page. - 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_layerreads 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 (snapshotTtlHoursin 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 everythinginspect_nodesshows. Instances count as one layer.image.alignmentsays 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_snapshotlooks 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_neighborslists the siblings of a layer by where they are on screen, with the side, gap, and offset in design pixels.get_anchorreturns 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
captureno longer crops around a layer's old place when the zoom barely changes, for example from 100% to 93%.get_visual_neighborsmeasures 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_nodesexactly, 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.