open-pencil  by open-pencil

Open-source AI design editor

Created 2 months ago
4,512 stars

Top 10.8% on SourcePulse

GitHubView on GitHub
1 Expert Loves This Project
Project Summary

OpenPencil is an open-source, AI-native design editor positioned as a local-first, Figma-compatible alternative. It targets designers and developers seeking programmatic control, data ownership, and an extensible, vendor-neutral workflow. The project offers a free, offline, and highly scriptable platform, addressing limitations of closed-source design tools.

How It Works

The editor is built with Vue 3, Skia/CanvasKit for rendering, and Yoga for layout, packaged as a compact Tauri desktop application. Its core innovation lies in its AI-native architecture, featuring integrated chat with tool use and support for Bring-Your-Own-API-key models. It achieves deep Figma compatibility by natively reading and writing .fig files and enabling copy-pasting of design nodes between applications. A robust headless CLI and MCP server further enable automation and integration with AI coding agents.

Quick Start & Requirements

  • Install/Run: bun install followed by bun run dev for the dev server, or bun run tauri dev for the desktop app.
  • Prerequisites: Rust, Tauri CLI, and platform-specific build tools (e.g., Xcode Command Line Tools for macOS, MSVC Build Tools for Windows, build-essential for Linux).
  • Links: Online demo: app.openpencil.dev. Documentation: VitePress site (link not explicitly provided in README, but implied by "Documentation").

Highlighted Details

  • Figma Compatibility: Natively imports and exports .fig files, supports copy-pasting design nodes between Figma and OpenPencil.
  • AI-Native Integration: Features built-in AI chat with tool use, supporting external API keys and planned integration with local models.
  • Programmability: Offers a headless CLI for file operations (inspect, export, search) and an MCP server for AI coding tools to read/write .fig files.
  • Real-time Collaboration: Peer-to-peer editing via WebRTC (Trystero + Yjs), requiring no central server.

Maintenance & Community

The project acknowledges "@sld0Ant (Anton Soldatov) for creating and maintaining the documentation site." No other specific community channels or maintenance signals are detailed in the provided text.

Licensing & Compatibility

Licensed under the MIT License, permitting broad commercial use and integration with closed-source projects.

Limitations & Caveats

The project is explicitly marked as being in "Active development" and "Not ready for production use."

Health Check
Last Commit

6 hours ago

Responsiveness

Inactive

Pull Requests (30d)
23
Issues (30d)
44
Star History
984 stars in the last 30 days

Explore Similar Projects

Feedback? Help us improve.