OpenPencil

OpenPencil

Первый в мире AI-нативный инструмент векторного дизайна с открытым исходным кодом.
Параллельные команды агентов • Дизайн как код • Встроенный MCP-сервер • Мультимодельный интеллект

English · 简体中文 · 繁體中文 · 日本語 · 한국어 · Français · Español · Deutsch · Português · Русский · हिन्दी · Türkçe · ไทย · Tiếng Việt · Bahasa Indonesia

Stars License CI Discord


OpenPencil — click to watch demo

Нажмите на изображение, чтобы посмотреть демо-видео


## Почему OpenPencil
### 🎨 Запрос → Холст Опишите любой интерфейс на естественном языке. Наблюдайте, как он появляется на бесконечном холсте в реальном времени со стриминговой анимацией. Изменяйте существующие дизайны, выбирая элементы и общаясь в чате. ### 🤖 Параллельные команды агентов Оркестратор декомпозирует сложные страницы на пространственные подзадачи. Несколько AI-агентов работают над разными секциями одновременно — hero, features, footer — всё стримится параллельно.
### 🧠 Мультимодельный интеллект Автоматически адаптируется к возможностям каждой модели. Claude получает полные промпты с thinking; GPT-4o/Gemini — без thinking; маленькие модели (MiniMax, Qwen, Llama) получают упрощённые промпты для надёжного вывода. ### 🔌 MCP-сервер Установка в один клик в Claude Code, Codex, Gemini, OpenCode, Kiro или Copilot CLI. Дизайн из терминала — чтение, создание и изменение файлов `.op` через любой MCP-совместимый агент.
### 📦 Дизайн как код Файлы `.op` — это JSON: удобочитаемые, дружественные к Git, поддерживают diff. Переменные дизайна генерируют CSS custom properties. Экспорт кода в React + Tailwind или HTML + CSS. ### 🖥️ Работает везде Веб-приложение + нативный десктоп на macOS, Windows и Linux через Electron. Автообновление из GitHub Releases. Ассоциация файлов `.op` — двойной клик для открытия.
## Быстрый старт ```bash # Установить зависимости bun install # Запустить сервер разработки на http://localhost:3000 bun --bun run dev ``` Или запустить как десктопное приложение: ```bash bun run electron:dev ``` > **Требования:** [Bun](https://bun.sh/) >= 1.0 и [Node.js](https://nodejs.org/) >= 18 ## AI-нативный дизайн **От запроса к UI** - **Текст в дизайн** — опишите страницу и получите её на холсте в реальном времени со стриминговой анимацией - **Оркестратор** — разбивает сложные страницы на пространственные подзадачи для параллельной генерации - **Изменение дизайна** — выберите элементы и опишите изменения на естественном языке - **Визуальный ввод** — прикрепляйте скриншоты или макеты в качестве референса для дизайна **Поддержка нескольких агентов** | Агент | Настройка | | --- | --- | | **Claude Code** | Без настройки — использует Claude Agent SDK с локальным OAuth | | **Codex CLI** | Подключить в настройках агента (`Cmd+,`) | | **OpenCode** | Подключить в настройках агента (`Cmd+,`) | | **GitHub Copilot** | `copilot login`, затем подключить в настройках агента (`Cmd+,`) | **Профили возможностей моделей** — автоматически адаптирует промпты, режим thinking и таймауты для каждого уровня моделей. Модели полного уровня (Claude) получают полные промпты; стандартного уровня (GPT-4o, Gemini, DeepSeek) — с отключённым thinking; базового уровня (MiniMax, Qwen, Llama, Mistral) — упрощённые промпты с вложенным JSON для максимальной надёжности. **MCP-сервер** - Встроенный MCP-сервер — установка в один клик в Claude Code / Codex / Gemini / OpenCode / Kiro / Copilot CLI - Автоматизация дизайна из терминала: чтение, создание и изменение файлов `.op` через любой MCP-совместимый агент - **Послойный рабочий процесс** — `design_skeleton` → `design_content` → `design_refine` для дизайнов высокого качества с несколькими секциями - **Сегментированное получение промптов** — загружайте только нужные знания о дизайне (schema, layout, roles, icons, planning и т.д.) - Поддержка нескольких страниц — создание, переименование, переупорядочивание и дублирование страниц через инструменты MCP **Генерация кода** - React + Tailwind CSS - HTML + CSS - CSS Variables из дизайн-токенов ## Возможности **Холст и рисование** - Бесконечный холст с панорамированием, масштабированием, умными направляющими и привязкой - Прямоугольник, Эллипс, Линия, Многоугольник, Перо (Безье), Frame, Текст - Булевы операции — объединение, вычитание, пересечение с контекстной панелью инструментов - Выбор иконок (Iconify) и импорт изображений (PNG/JPEG/SVG/WebP/GIF) - Авто-раскладка — вертикальная/горизонтальная с gap, padding, justify, align - Многостраничные документы с навигацией по вкладкам **Система дизайна** - Переменные дизайна — цветовые, числовые и строковые токены со ссылками `$variable` - Поддержка нескольких тем — несколько осей, каждая с вариантами (Светлая/Тёмная, Компактная/Комфортная) - Система компонентов — переиспользуемые компоненты с экземплярами и переопределениями - CSS-синхронизация — автоматически генерируемые пользовательские свойства, `var(--name)` в выводе кода **Импорт из Figma** - Импорт файлов `.fig` с сохранением раскладки, заливок, обводок, эффектов, текста, изображений и векторов **Десктопное приложение** - Нативная поддержка macOS, Windows и Linux через Electron - Ассоциация файлов `.op` — двойной клик для открытия, блокировка единственного экземпляра - Автообновление из GitHub Releases - Нативное меню приложения и диалоги файлов ## Технологический стек | | | | --- | --- | | **Фронтенд** | React 19 · TanStack Start · Tailwind CSS v4 · shadcn/ui | | **Холст** | Fabric.js v7 | | **Состояние** | Zustand v5 | | **Сервер** | Nitro | | **Десктоп** | Electron 35 | | **AI** | Anthropic SDK · Claude Agent SDK · OpenCode SDK · Copilot SDK | | **Среда выполнения** | Bun · Vite 7 | | **Формат файла** | `.op` — на основе JSON, удобочитаемый, дружественный к Git | ## Структура проекта ```text src/ canvas/ Движок Fabric.js — рисование, синхронизация, раскладка, направляющие, инструмент пера components/ React UI — редактор, панели, общие диалоги, иконки services/ai/ AI-чат, оркестратор, генерация дизайна, стриминг services/figma/ Пайплайн бинарного импорта Figma .fig services/codegen Генераторы кода React+Tailwind и HTML+CSS stores/ Zustand — холст, документ, страницы, история, AI, настройки variables/ Разрешение дизайн-токенов и управление ссылками mcp/ Инструменты MCP-сервера для интеграции с внешними CLI uikit/ Система переиспользуемых наборов компонентов server/ api/ai/ Nitro API — стриминговый чат, генерация, валидация utils/ Обёртки клиентов Claude CLI, OpenCode, Codex, Copilot electron/ main.ts Окно, форк Nitro, нативное меню, автообновление preload.ts IPC-мост ``` ## Горячие клавиши | Клавиша | Действие | | Клавиша | Действие | | --- | --- | --- | --- | --- | | `V` | Выбор | | `Cmd+S` | Сохранить | | `R` | Прямоугольник | | `Cmd+Z` | Отменить | | `O` | Эллипс | | `Cmd+Shift+Z` | Повторить | | `L` | Линия | | `Cmd+C/X/V/D` | Копировать/Вырезать/Вставить/Дублировать | | `T` | Текст | | `Cmd+G` | Сгруппировать | | `F` | Frame | | `Cmd+Shift+G` | Разгруппировать | | `P` | Инструмент пера | | `Cmd+Shift+E` | Экспорт | | `H` | Рука (панорама) | | `Cmd+Shift+C` | Панель кода | | `Del` | Удалить | | `Cmd+Shift+V` | Панель переменных | | `[ / ]` | Изменить порядок | | `Cmd+J` | AI-чат | | Стрелки | Сдвиг на 1px | | `Cmd+,` | Настройки агента | | `Cmd+Alt+U` | Булево объединение | | `Cmd+Alt+S` | Булево вычитание | | `Cmd+Alt+I` | Булево пересечение | | | | ## Скрипты ```bash bun --bun run dev # Сервер разработки (порт 3000) bun --bun run build # Сборка для продакшена bun --bun run test # Запустить тесты (Vitest) npx tsc --noEmit # Проверка типов bun run electron:dev # Разработка Electron bun run electron:build # Упаковка Electron ``` ## Участие в разработке Мы приветствуем вклад в проект! Подробности об архитектуре и стиле кода смотрите в [CLAUDE.md](./CLAUDE.md). 1. Сделайте форк и клонируйте репозиторий 2. Создайте ветку: `git checkout -b feat/my-feature` 3. Запустите проверки: `npx tsc --noEmit && bun --bun run test` 4. Сделайте коммит в формате [Conventional Commits](https://www.conventionalcommits.org/): `feat(canvas): add rotation snapping` 5. Откройте PR в ветку `main` ## Дорожная карта - [x] Переменные и токены дизайна с CSS-синхронизацией - [x] Система компонентов (экземпляры и переопределения) - [x] Генерация дизайна с помощью AI и оркестратора - [x] Интеграция с MCP-сервером и послойный рабочий процесс - [x] Поддержка нескольких страниц - [x] Импорт Figma `.fig` - [x] Булевы операции (объединение, вычитание, пересечение) - [x] Мультимодельные профили возможностей - [ ] Совместное редактирование - [ ] Система плагинов ## Участники Contributors ## Сообщество Discord Присоединяйтесь к нашему Discord — Задавайте вопросы, делитесь дизайнами, предлагайте функции. ## Star History Star History Chart ## Лицензия [MIT](./LICENSE) — Copyright (c) 2026 ZSeven-W