diff --git a/README.md b/README.md index 6b53da9d2..9ff460f9e 100644 --- a/README.md +++ b/README.md @@ -28,7 +28,7 @@ Coding tools went through the same shift. VS Code opened the editor. LLMs opened OpenPencil is: - **Open source** — MIT license, read and modify everything -- **Figma-compatible** — opens .fig files natively, copy/paste between apps +- **Figma-compatible** — opens .fig files natively, copy & paste nodes between apps - **AI-native** — built-in chat with tool use, bring your own API key, no vendor lock-in - **Free forever** — no account, no subscription, no internet required, ~7 MB install - **Programmable** — headless CLI, every operation is scriptable @@ -37,7 +37,8 @@ Your design files are yours. Your tools should be too. ## Features -- **Figma .fig file import and export** — read and write native Figma files, copy/paste between apps +- **Figma .fig file import and export** — read and write native Figma files +- **Copy & paste with Figma** — select nodes in Figma, paste into OpenPencil (and vice versa). Uses Figma's own fig-kiwi clipboard format - **Real-time collaboration** — P2P via WebRTC, no server required. Cursors, presence, follow mode - **Drawing tools** — shapes, pen tool with vector networks, rich text with system fonts, auto-layout, components with live sync, variables with modes and collections - **AI chat** — describe what you want, the AI builds it. 29 tools wired to chat, CLI, and MCP diff --git a/packages/docs/guide/features.md b/packages/docs/guide/features.md index 5092b636d..481f23f58 100644 --- a/packages/docs/guide/features.md +++ b/packages/docs/guide/features.md @@ -8,9 +8,11 @@ Design tools are a supply chain problem. When your tool is closed-source, the ve Open and save native Figma files directly. Import decodes the full 194-definition Kiwi schema including NodeChange messages with ~390 fields. Export encodes the scene graph back to Kiwi binary with Zstd compression and thumbnail generation. Save (⌘S) and Save As (⇧⌘S) use native OS dialogs on the desktop app. The import/export pipeline supports round-trip fidelity. -## Figma Clipboard +## Copy & Paste with Figma -Copy/paste between OpenPencil and Figma. When you copy in Figma, OpenPencil decodes the fig-kiwi binary from the clipboard. When you copy in OpenPencil, it encodes fig-kiwi binary that Figma can read. Also works between OpenPencil instances. +Select nodes in Figma, ⌘C, switch to OpenPencil, ⌘V — they appear with fills, strokes, auto-layout, text, corner radii, effects, and vector networks preserved. Works the other way too: copy from OpenPencil, paste into Figma. + +Under the hood, both directions use Figma's own fig-kiwi clipboard format — the same base64-encoded Kiwi binary that Figma puts on the clipboard. OpenPencil decodes the full schema on paste (194 definitions, ~390 fields per NodeChange) and encodes it on copy. Vector data round-trips through the `vectorNetworkBlob` binary format. Also works between OpenPencil instances via a separate native clipboard format. ## Vector Networks