nowfound

Life & fun · April 1, 2026

IC

I/Claude reverse-engineered Figma's binary WebSocket protocol

Disclaimer: this is vibe-coded — ( what i see in the exported html 3. It helps me help our designer to produce an actual "resizable" figma, so that they finally understand the pain of "ok it works when you click play on the iphone 17 frame you put, but what about an iphone12 ?" (I was always able to say that, but before I wasn't able to point out what was wrong, now I can) How it works: When you open a Figma file in the browser, the editor loads the entire scenegraph via WebSocket as Kiwi-encoded binary frames. This tool captures those frames via Chrome DevTools Protocol, decodes the binary…

What it does

In the maker’s words, at launch

Disclaimer: this is vibe-coded — (<- I lost you there) the README, most of the code, and the binary format reverse-engineering were done with Claude. But the tool works and I use it everyday for some days now. As Baudelaire said "qu'importe le flacon, pourvu qu'on ait l'ivresse." ~I~ Claude built a tool that decodes Figma's internal binary protocol (Kiwi format over WebSocket) to extract the full scenegraph — every node, vector path, and style — without hitting the REST API. Why: Figma's REST API has aggressive rate limits. The official MCP server requires a paid Dev Mode plan. I needed to explore designs from my AI coding tools without constantly getting 429'd. It helps me to: 1. extract the svg in a clean way (even the SVG export from figma likes to write the path as 12.0000001, even though the protocol does have 12 in it) and images 2. Get mapping from what I see in figma <-> what i see in the exported html 3. It helps me help our designer to produce an actual "resizable" figma, so that they finally understand the pain of "ok it works when you click play on the iphone 17 frame you put, but what about an iphone12 ?" (I was always able to say that, but before I wasn't able to point out what was wrong, now I can) How it works: When you open a Figma file in the browser, the editor loads the entire scenegraph via WebSocket as Kiwi-encoded binary frames. This tool captures those frames via Chrome DevTools Protocol, decodes the binary data (including two undocumented vector formats), and gives you structured JSON. What Claude reverse-engineered: - The fig-wire frame format (schema delivery over WebSocket) - commandsBlob: Figma's pre-computed SVG path commands (MoveTo, LineTo, CubicBezier, ClosePath) - vectorNetworkBlob: the editable path data (vertices, segments with Bezier tangent handles, regions with loops) - All three are documented as Kaitai Struct specs (.ksy) so you can generate parsers in any language Ships as: JS lib (zero deps), CLI, MCP server (Cursor&#x2F;Windsurf&#x2F;VS Code), and Claude Code plugin. Binary format specs, sample fixtures, and everything else: https:&#x2F;&#x2F;github.com&#x2F;allan-simon&#x2F;figma-kiwi-protocol I'm not a lawyer but my understanding is this is an interoperability tool under EU Directive 2009&#x2F;24&#x2F;EC Article 6. No Figma code is included: it only decodes the wire format of data transmitted to your own browser.

Does the same job

all alternatives →
  • Bilt.me - FigmaJun 2026 · bilt.me · ▲101

    Get a real mobile app from your Figma design

  • Sizze Figma plugin2021 · ▲355

    Export Figma designs to React Native code

  • Figma Platform2018 · ▲325

    Unlock your design files with our new web API

  • CC-BEEPERApr 2026 · ▲223

    A floating macOS pager for Claude Code

  • Octopus 2.82022 · ▲195

    Figma integration, multiply wireframes, rich editor and more

  • Height + Figma2023 · ▲189

    Keep everyone in the loop without even leaving the canvas

More life & fun this month

the category →
  • TL

    Life & fun · 10d ago · louisabraham.github.io

  • Photosynthesis fires two of your iPhone

    Life & fun · 28d ago · photosynthesis.camera

  • SoloUno310

    Take control of hair pulling, nail biting & skin picking

    Life & fun · 28d ago · solouno.io

  • Scroll through all 43,252,003,274,489,856,000 reachable Rubik's Cube permutations.

    Life & fun · 26d ago · everycube.alen.is

  • The Interactive 3D Encyclopedia

    Life & fun · 21d ago · expeditione.fun

  • Hi HN, I built Eigendrum, a web tool that solves the 2D wave equation for arbitrary shapes so you can hear what they sound like as drums. How it works: * Solves -∇²u = λu using finite element analysis (Kφ = λMφ) on a triangle mesh. * Validated to <0.1% error against closed-form solutions for circles (Bessel zeros) and rectangles. * Sound model factors in strike location, Rayleigh damping, and mallet width. * Includes Kac drums I & II to demonstrate identical sound spectra from different geometries. * No frameworks, build steps, or dependencies. Repo and tests:…

    Life & fun · 27d ago · baselashraf81.github.io

Launched alongside, April 2026

the whole month →
  • Brila1,367

    One-page websites from real Google Maps reviews

    AI · Apr 2026 · brila.ai

  • AG

    Thought the resources for GPU arch were lacking, so here we are

    Life & fun · Apr 2026 · jaso1024.com

  • IB

    Built a ~9M param LLM from scratch to understand how they actually work. Vanilla transformer, 60K synthetic conversations, ~130 lines of PyTorch. Trains in 5 min on a free Colab T4. The fish thinks the meaning of life is food. Fork it and swap the personality for your own character.

    AI · Apr 2026 · github.com

  • AI meeting notes: now bot-free, in ChatGPT & Claude + more

    AI · Apr 2026 · fathom.ai

  • BC

    Life & fun · Apr 2026 · sam-burns.com

  • IB

    With social media and now AI, its important to keep the indie web alive. There are many people who write frequently. Blogosphere tries to highlight them by fetching the recent posts from personal blogs across many categories. There are two versions: Minimal (HN-inspired, fast, static): https:&#x2F;&#x2F;text.blogosphere.app&#x2F; Non-minimal: https:&#x2F;&#x2F;blogosphere.app&#x2F; If you don't find your blog (or your favorite ones), please add them. I will review and approve it.

    AI · Apr 2026 · text.blogosphere.app