Skip to content
@open-pencil

OpenPencil

AI-Native Design Editor

OpenPencil

Open-source design editor built on one premise: a design is a node tree, not a picture.

Design tools treat the canvas as the product and the file as an implementation detail — a proprietary binary only the vendor's software can fully read, behind APIs that fight automation. OpenPencil inverts that. The document is a node tree you can open, query, transform, lint, and diff; the editor is one client of it. A designer moves things on the canvas; a script renames every color token; an AI agent builds a screen — all through the same small set of operations, and each change is data you can review like a code change.

It opens Figma's .fig files natively, runs as a ~7 MB desktop app or a browser tab, and never sends your files anywhere. The editor, the engine, the file codec, the CLI, the MCP server, and the Vue SDK are all MIT.

brew install open-pencil/tap/open-pencil

Or use the web app — no install, no account.

Try it online · Download · Documentation · Roadmap

Start here

Project What it is
open-pencil The editor — desktop and web app, plus the engine, CLI, MCP server, and Vue SDK as workspace packages

The same repository publishes the programmable surface to npm:

Package What it does
@open-pencil/core Editor engine — renderer, layout, document I/O, Figma API, tools, and RPC
@open-pencil/scene-graph Scene graph nodes, primitives, hit testing, copy/snap/undo, variants, and vector-network types
@open-pencil/kiwi Kiwi binary runtime, Figma schema helpers, and low-level .fig container parsing
@open-pencil/fig Focused .fig package entrypoint
@open-pencil/pen Pencil document format helpers
@open-pencil/dom-css HTML/CSS/Tailwind conversion into editable design documents
@open-pencil/vue Headless Vue SDK for embedding OpenPencil or building custom editors
@open-pencil/cli Headless CLI — inspect, query (XPath), lint, analyze, export, and convert .fig/.pen files; control the running editor over RPC
@open-pencil/mcp MCP server (stdio + HTTP) — 100+ design tools for Claude Code, Cursor, Windsurf, and any MCP client

Around the editor

Project What it does
skills Agent skills — teach AI coding agents to inspect, modify, and export design files
homebrew-tap Homebrew tap for the desktop app
twirlwind Tailwind v4-first CSS-to-utility-class serializer, used by JSX/Tailwind export

Engine infrastructure

The rendering and layout stack OpenPencil runs on, maintained here:

Project What it does
canvaskit-webgpu CanvasKit WASM build with Skia Graphite + Dawn (WebGPU) backend
skia Skia fork carrying the Graphite/Dawn CanvasKit patches
yoga Yoga fork with CSS Grid support, powering auto layout

How it fits together

.fig / .pen document (node tree)
├── editor                  — desktop (Tauri) and web app, real-time P2P collaboration
├── @open-pencil/core       — editor engine, renderer, layout, tools, RPC, document I/O
├── @open-pencil/scene-graph — nodes, primitives, hit testing, copy/snap/undo
├── @open-pencil/kiwi       — Kiwi runtime and low-level .fig container parsing
├── @open-pencil/fig        — focused .fig package entrypoint
├── @open-pencil/pen        — Pencil document format helpers
├── @open-pencil/dom-css    — HTML/CSS/Tailwind to editable design documents
├── @open-pencil/cli        — tree / query / lint / analyze / export / eval from the terminal
├── @open-pencil/mcp        — the same operations as MCP tools for AI agents
└── @open-pencil/vue        — headless components for building your own editor

Every surface — canvas, CLI, MCP, SDK — drives the same operations on the same tree. That is the whole design: nothing the editor can do is closed to a script, and nothing a script does bypasses what the editor checks.

OpenPencil is also the design layer of a larger open stack — a web stack built so that software written by AI (and by people) can be checked, not just generated. The argument and the map live in Building Blocks for the Future Web.

License

MIT across the organization. Forks (skia, yoga) keep their upstream licenses.

Popular repositories Loading

  1. open-pencil open-pencil Public

    AI-native design editor. Open-source Figma alternative.

    TypeScript 8.3k 798

  2. skills skills Public

    Agent skills for OpenPencil — the open-source design editor

    16 3

  3. canvaskit-webgpu canvaskit-webgpu Public

    Custom CanvasKit WASM build with Skia Graphite + Dawn (WebGPU) backend

    Shell 13 6

  4. twirlwind twirlwind Public

    Tailwind v4-first CSS-to-utility-class serializer

    TypeScript 6 1

  5. figler figler Public

    Analyze, transform, and render Figma files from Elixir

    Elixir 6

  6. yoga yoga Public

    Forked from react/yoga

    Yoga is an embeddable layout engine targeting web standards.

    C++ 3 1

Repositories

Showing 10 of 12 repositories
  • open-pencil Public

    AI-native design editor. Open-source Figma alternative.

    open-pencil/open-pencil's past year of commit activity
    TypeScript 8,251 MIT 798 36 14 Updated Sep 10, 2026
  • .github Public

    Organization profile

    open-pencil/.github's past year of commit activity
    0 0 0 0 Updated Sep 6, 2026
  • homebrew-tap Public archive

    Homebrew tap for OpenPencil

    open-pencil/homebrew-tap's past year of commit activity
    Ruby 0 1 0 1 Updated Aug 11, 2026
  • git-lfs-s3-proxy Public Forked from twilligon/git-lfs-s3-proxy

    Provider-neutral Git LFS gateway for S3-compatible object storage

    open-pencil/git-lfs-s3-proxy's past year of commit activity
    JavaScript 0 CC0-1.0 149 0 0 Updated Aug 1, 2026
  • figler Public

    Analyze, transform, and render Figma files from Elixir

    open-pencil/figler's past year of commit activity
    Elixir 6 MIT 0 0 0 Updated Jul 22, 2026
  • kiwi_codec Public

    Pure Elixir codec for Kiwi schema binary messages

    open-pencil/kiwi_codec's past year of commit activity
    Elixir 0 MIT 0 0 0 Updated Jul 21, 2026
  • skia Public

    Skia fork with CanvasKit Graphite + Dawn (WebGPU) patches

    open-pencil/skia's past year of commit activity
    C++ 2 BSD-3-Clause 2 0 0 Updated Jun 11, 2026
  • yoga Public Forked from react/yoga

    Yoga is an embeddable layout engine targeting web standards.

    open-pencil/yoga's past year of commit activity
    C++ 3 MIT 1,609 0 0 Updated Jun 11, 2026
  • twirlwind Public

    Tailwind v4-first CSS-to-utility-class serializer

    open-pencil/twirlwind's past year of commit activity
    TypeScript 6 MIT 1 0 0 Updated Jun 11, 2026
  • skills Public

    Agent skills for OpenPencil — the open-source design editor

    open-pencil/skills's past year of commit activity
    16 MIT 3 1 0 Updated Jun 11, 2026