An open-source design editor that opens your Figma files, runs on your machine, and lets you or your AI agent drive every layer.




OpenPencil reads .fig files directly: pages, components, instances, variables, and auto layout arrive as editable layers, and you can save back to .fig. Paste SVG or open HTML and CSS, and they become layers too, laid out as a browser lays them out.
This is the app’s own tour, a real .fig file. Open a chapter in the layers and click around.




Auto layout, constraints, fills, strokes, effects, and typography, with the controls where you expect them. Components take slots, so an instance keeps the design and brings its own content. Everything is undoable, and nothing waits on a server.
Hover the selected cover and drag a corner to round it. The other players bring their own covers through the Artwork slot.




Give a component a behaviour, such as a switch, checkbox, slider, tabs, or text field, and preview runs it as a real Reka UI control. Variants become its states, and the same components export to Storybook with controls you can click.
This canvas is in preview: press play, drag the progress bar, toggle shuffle. Leave preview to edit.




Colours, spacing, and type live in collections with modes and are edited as tokens. Exported code writes bound values as CSS custom properties, so the code uses the same names as the design.
Each player reads the Theme collection in its own mode. Change a token’s value and both follow.




A shader is a fill like any other: pick one in the fill picker, stack effects, tune their sliders, or paste a preset from shaders.com. Files keep a still of it, so they open anywhere, and preview plays it.
This canvas is in preview, so the shaders move. Leave preview, select a square, and open its fill.




OpenPencil checks the design as you work: contrast, text too small to read, default names, hidden and empty layers, stray groups. Problems are marked on the canvas, many come with a fix you apply in one click, and the same rules run in the CLI and for agents.
Click a marker on the canvas, or apply a fix from the list.




Ask in plain language and the agent edits the document with the same tools you use, previewing its work on the canvas as it streams. Connect any provider with your own key, or bring the coding agent you already use.
A recorded turn plays through the real agent loop. Watch the canvas build as it streams.


Share a link and everyone edits the same document, peer to peer, with live cursors, follow mode, comments pinned to layers, and voice calls. AI agents join the same way: everyone in the room watches them build as they stream.
Both screens are yours to use. Drag a layer on one and watch it move on the other, then ask the agent.




Every selection is a Vue or React component, with variants as props and Reka UI or Radix behind the interactive ones, or HTML, Tailwind, and design JSX with variables written as tokens. Components export as Storybook stories, and design JSX stays linked to the canvas: edit it and the canvas follows.
Switch to React, HTML, or design JSX, or select another layer.




The openpencil CLI works on a file with no app running, or drives the app you have open. Inspect a document, query it with XPath, lint it, export it, or run Figma plugin code against it with eval. The MCP server gives agents the same reach over stdio or HTTP.
Run a command and watch the canvas.
Create, style, lay out, inspect, and export, each one also available to the built-in agent.




OpenPencil is a toolkit as much as an app: a framework-neutral engine, a headless Vue SDK, and separate packages for the scene graph and file formats. Embed a canvas in your product, render and check designs in CI, or build a different editor on the same engine. Every canvas on this page is that SDK running inside a documentation site.
The code beside the canvas is all it takes to mount one.
Your team's design workspace, hosted for you. Everyone edits the same files live, shares them with a link, and designs with AI, with nothing to install or run. Your files stay open: export them as .fig whenever you like.
Stories that render Reka UI for Vue and Radix UI for React.
Faster variant editing and canvas selection inside components.
The whole workspace inside your own network: sync, sharing, comments, and team libraries without sending a file to anyone else.
The hosted workspace for teams: live sync, sharing, libraries, and AI, with nothing to run.
Automatic snapshots, named checkpoints, and restore.
Propose, review, publish, and migrate.
Put the editor on this page into your own product.