
Open Pencil Design Editor
Programmatically read and write native .fig design files via CLI, MCP, or Vue SDK when you want a self-hosted Figma alternative in your agent workflow.
Overview
open-pencil-design-editor is an agent skill most often used in Build (also Validate prototype, Build agent-tooling) that documents OpenPencil—CLI, MCP, and SDK access to native .fig design files.
Install
npx skills add https://github.com/aradotso/trending-skills --skill open-pencil-design-editorWhat is this skill?
- MIT-licensed editor that reads and writes native Figma .fig files
- Headless open-pencil CLI plus @open-pencil/mcp for agent-driven design ops
- Runs in browser, Tauri desktop, or local dev at localhost:1420
- Vue SDK for custom editors; brew/desktop and bun global install paths documented
- Triggers cover figma alternative, MCP for figma files, and design automation
- Local web dev documented at localhost:1420
- Install surfaces include brew desktop, bun global CLI, and bun global MCP packages
Adoption & trust: 713 installs on skills.sh; 31 GitHub stars; 3/3 security scanners passed (skills.sh audits).
What problem does it solve?
You need to script or agent-drive Figma-compatible design files without locked SaaS-only APIs or manual export churn.
Who is it for?
Solo builders shipping UI who want self-hosted .fig editing and MCP/CLI automation alongside their coding agent.
Skip if: Teams that require official Figma Cloud-only features with no local .fig workflow, or pure markdown wireframes with no design files.
When should I use this skill?
Triggers such as open pencil design editor, figma alternative open source, mcp server for figma files, or figma file scripting automation.
What do I get? / Deliverables
You can install OpenPencil via web, desktop, CLI, or MCP and automate .fig read/write in your build or prototype workflow.
- Running OpenPencil instance (web, desktop, or headless CLI)
- Agent-accessible .fig read/write via MCP or scripted CLI commands
Recommended Skills
Journey fit
Spans multiple journey phases - primary shelf plus alternate fits below.
Canonical shelf is Build frontend because the skill centers on implementing and automating UI design assets, even though it also supports validation prototypes and agent tooling. OpenPencil is a design editor and file format toolchain for interface work, which maps to frontend rather than backend or docs-only workflows.
Where it fits
Sketch landing and app screens in native .fig before committing to a full frontend stack.
Sync design tokens and frames from OpenPencil while implementing the production UI.
Expose @open-pencil/mcp so your coding agent lists nodes and applies batch edits without manual Figma clicks.
Diff implemented UI against exported .fig snapshots during pre-release design QA.
How it compares
Capability guide for an open .fig stack—not a pixel-polish plugin list for proprietary Figma-only APIs.
Common Questions / FAQ
Who is open-pencil-design-editor for?
Indie developers and agent users who want an MIT design editor with CLI and MCP to work on real .fig assets outside a paid Figma seat model.
When should I use open-pencil-design-editor?
In Validate when you prototype screens in .fig; in Build frontend when you implement from those files; in Build agent-tooling when you connect @open-pencil/mcp so agents read or modify designs headlessly.
Is open-pencil-design-editor safe to install?
Follow official GitHub releases and package names; review the Security Audits panel on this Prism page before installing global CLIs or MCP servers on a machine with production secrets.
SKILL.md
READMESKILL.md - Open Pencil Design Editor
# OpenPencil Design Editor > Skill by [ara.so](https://ara.so) — Daily 2026 Skills collection. OpenPencil is an open-source, AI-native design editor that reads and writes native Figma (`.fig`) files, provides a headless CLI, an MCP server for AI agents, and a Vue SDK for building custom editors. It is MIT-licensed and runs in the browser, as a desktop app (Tauri/macOS/Windows/Linux), or fully headlessly. --- ## Installation ### Web app (no install) Visit [app.openpencil.dev/demo](https://app.openpencil.dev/demo). ### Desktop (macOS) ```sh brew install open-pencil/tap/open-pencil ``` Or download from [releases](https://github.com/open-pencil/open-pencil/releases/latest). ### CLI ```sh bun add -g @open-pencil/cli ``` ### MCP server ```sh bun add -g @open-pencil/mcp ``` ### Local development ```sh git clone https://github.com/open-pencil/open-pencil cd open-pencil bun install bun run dev # Web app at localhost:1420 bun run tauri dev # Desktop (requires Rust) ``` --- ## CLI Reference The `open-pencil` CLI operates on `.fig` files headlessly. When the desktop app is running, omit the file argument to connect to the live canvas via RPC. ### Inspect file structure ```sh # Print the full node tree open-pencil tree design.fig # Find nodes by type open-pencil find design.fig --type TEXT open-pencil find design.fig --type FRAME # Get a specific node by ID open-pencil node design.fig --id 1:23 # File metadata open-pencil info design.fig ``` ### XPath queries ```sh # All frames open-pencil query design.fig "//FRAME" # Frames narrower than 300px open-pencil query design.fig "//FRAME[@width < 300]" # Text nodes whose name contains "Button" open-pencil query design.fig "//TEXT[contains(@name, 'Button')]" # Nodes with rounded corners open-pencil query design.fig "//*[@cornerRadius > 0]" # Text inside sections open-pencil query design.fig "//SECTION//TEXT" ``` ### Export ```sh # PNG (default) open-pencil export design.fig # JPG at 2x scale, quality 90 open-pencil export design.fig -f jpg -s 2 -q 90 # SVG open-pencil export design.fig -f svg # WEBP open-pencil export design.fig -f webp # JSX with Tailwind v4 utility classes open-pencil export design.fig -f jsx --style tailwind ``` Example Tailwind output: ```html <div className="flex flex-col gap-4 p-6 bg-white rounded-xl"> <p className="text-2xl font-bold text-[#1D1B20]">Card Title</p> <p className="text-sm text-[#49454F]">Description text</p> </div> ``` ### Design token analysis ```sh open-pencil analyze colors design.fig open-pencil analyze typography design.fig open-pencil analyze spacing design.fig open-pencil analyze clusters design.fig # Repeated structures / component candidates ``` ### Scripting with Figma Plugin API (`eval`) ```sh # Read: count children on the current page open-pencil eval design.fig -c "figma.currentPage.children.length" # Read: get all text node contents open-pencil eval design.fig -c "figma.currentPage.findAll(n => n.type === 'TEXT').map(n => n.characters)" # Write: set opacity of all selected nodes (-w writes back to file) open-pencil eval design.fig -c "figma.currentPage.selection.forEach(n => n.opacity = 0.5)" -w # Write: rename all frames on the page open-pencil eval design.fig -c "figma.currentPage.findAll(n => n.type === 'FRAME').forEach((f, i) => f.name = 'Frame ' + i)" -w # Connect to the live running desktop app (no file arg) open-pencil eval -c "figma.currentPage.name" open-pencil tree open-pencil export -f png ``` All commands support `--json` for machine-rea