OpenPencil

OpenPencil

A primeira ferramenta de design vetorial open-source nativa com IA do mundo.
Equipes de Agentes Concorrentes • Design-as-Code • Servidor MCP Integrado • Inteligência Multi-modelo

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

Stars License CI Discord


OpenPencil — clique para assistir ao demo

Clique na imagem para assistir ao vídeo de demonstração


## Por que OpenPencil
### 🎨 Prompt → Canvas Descreva qualquer UI em linguagem natural. Veja-a aparecer no canvas infinito em tempo real com animação de streaming. Modifique designs existentes selecionando elementos e conversando. ### 🤖 Equipes de Agentes Concorrentes O orquestrador decompõe páginas complexas em sub-tarefas espaciais. Vários agentes de IA trabalham em diferentes seções simultaneamente — hero, features, footer — tudo em streaming paralelo.
### 🧠 Inteligência Multi-Modelo Adapta-se automaticamente às capacidades de cada modelo. Claude recebe prompts completos com thinking; GPT-4o/Gemini desativam thinking; modelos menores (MiniMax, Qwen, Llama) recebem prompts simplificados para saída confiável. ### 🔌 Servidor MCP Instalação com um clique no Claude Code, Codex, Gemini, OpenCode, Kiro ou Copilot CLIs. Faça design pelo seu terminal — leia, crie e modifique arquivos `.op` através de qualquer agente compatível com MCP.
### 📦 Design-as-Code Arquivos `.op` são JSON — legíveis por humanos, compatíveis com Git, com diff. Variáveis de design geram propriedades CSS personalizadas. Exportação de código para React + Tailwind ou HTML + CSS. ### 🖥️ Roda em Qualquer Lugar App web + desktop nativo no macOS, Windows e Linux via Electron. Atualização automática a partir do GitHub Releases. Associação de arquivos `.op` — clique duplo para abrir.
## Início Rápido ```bash # Instalar dependências bun install # Iniciar servidor de desenvolvimento em http://localhost:3000 bun --bun run dev ``` Ou executar como aplicativo desktop: ```bash bun run electron:dev ``` > **Pré-requisitos:** [Bun](https://bun.sh/) >= 1.0 e [Node.js](https://nodejs.org/) >= 18 ## Design Nativo com IA **Do Prompt à UI** - **Texto para design** — descreva uma página e ela será gerada no canvas em tempo real com animação de streaming - **Orquestrador** — decompõe páginas complexas em sub-tarefas espaciais para geração paralela - **Modificação de design** — selecione elementos e descreva as alterações em linguagem natural - **Entrada de visão** — anexe capturas de tela ou mockups para design baseado em referência **Suporte Multi-Agente** | Agente | Configuração | | --- | --- | | **Claude Code** | Sem configuração — usa o Claude Agent SDK com OAuth local | | **Codex CLI** | Conectar nas Configurações do Agente (`Cmd+,`) | | **OpenCode** | Conectar nas Configurações do Agente (`Cmd+,`) | | **GitHub Copilot** | `copilot login` e depois conectar nas Configurações do Agente (`Cmd+,`) | **Perfis de Capacidade de Modelo** — adapta automaticamente prompts, modo de thinking e timeouts por nível de modelo. Modelos de nível completo (Claude) recebem prompts completos; nível padrão (GPT-4o, Gemini, DeepSeek) desativam thinking; nível básico (MiniMax, Qwen, Llama, Mistral) recebem prompts simplificados de JSON aninhado para máxima confiabilidade. **Servidor MCP** - Servidor MCP integrado — instalação com um clique no Claude Code / Codex / Gemini / OpenCode / Kiro / Copilot CLIs - Automação de design pelo terminal: leia, crie e modifique arquivos `.op` via qualquer agente compatível com MCP - **Fluxo de design em camadas** — `design_skeleton` → `design_content` → `design_refine` para designs multi-seção de maior fidelidade - **Recuperação segmentada de prompts** — carregue apenas o conhecimento de design necessário (schema, layout, roles, icons, planning, etc.) - Suporte a múltiplas páginas — crie, renomeie, reordene e duplique páginas via ferramentas MCP **Geração de Código** - React + Tailwind CSS - HTML + CSS - CSS Variables a partir de tokens de design ## Funcionalidades **Canvas e Desenho** - Canvas infinito com pan, zoom, guias de alinhamento inteligentes e snapping - Retângulo, Elipse, Linha, Polígono, Caneta (Bezier), Frame, Texto - Operações booleanas — união, subtração, interseção com barra de ferramentas contextual - Seletor de ícones (Iconify) e importação de imagens (PNG/JPEG/SVG/WebP/GIF) - Auto-layout — vertical/horizontal com gap, padding, justify, align - Documentos com múltiplas páginas e navegação por abas **Sistema de Design** - Variáveis de design — tokens de cor, número e string com referências `$variable` - Suporte a múltiplos temas — vários eixos, cada um com variantes (Claro/Escuro, Compacto/Confortável) - Sistema de componentes — componentes reutilizáveis com instâncias e substituições - Sincronização CSS — propriedades personalizadas geradas automaticamente, `var(--name)` na saída de código **Importação do Figma** - Importe arquivos `.fig` preservando layout, preenchimentos, traços, efeitos, texto, imagens e vetores **Aplicativo Desktop** - macOS, Windows e Linux nativos via Electron - Associação de arquivos `.op` — clique duplo para abrir, bloqueio de instância única - Atualização automática a partir do GitHub Releases - Menu de aplicativo nativo e diálogos de arquivo ## Stack Tecnológica | | | | --- | --- | | **Frontend** | React 19 · TanStack Start · Tailwind CSS v4 · shadcn/ui | | **Canvas** | Fabric.js v7 | | **Estado** | Zustand v5 | | **Servidor** | Nitro | | **Desktop** | Electron 35 | | **IA** | Anthropic SDK · Claude Agent SDK · OpenCode SDK · Copilot SDK | | **Runtime** | Bun · Vite 7 | | **Formato de arquivo** | `.op` — baseado em JSON, legível por humanos, compatível com Git | ## Estrutura do Projeto ```text src/ canvas/ Motor Fabric.js — desenho, sincronização, layout, guias, ferramenta caneta components/ UI React — editor, painéis, diálogos compartilhados, ícones services/ai/ Chat IA, orquestrador, geração de design, streaming services/figma/ Pipeline de importação binária do Figma .fig services/codegen Geradores de código React+Tailwind e HTML+CSS stores/ Zustand — canvas, documento, páginas, histórico, IA, configurações variables/ Resolução de tokens de design e gerenciamento de referências mcp/ Ferramentas do servidor MCP para integração com CLI externo uikit/ Sistema de kit de componentes reutilizáveis server/ api/ai/ API Nitro — chat em streaming, geração, validação utils/ Wrappers de cliente Claude CLI, OpenCode, Codex, Copilot electron/ main.ts Janela, fork do Nitro, menu nativo, atualizador automático preload.ts Ponte IPC ``` ## Atalhos de Teclado | Tecla | Ação | | Tecla | Ação | | --- | --- | --- | --- | --- | | `V` | Selecionar | | `Cmd+S` | Salvar | | `R` | Retângulo | | `Cmd+Z` | Desfazer | | `O` | Elipse | | `Cmd+Shift+Z` | Refazer | | `L` | Linha | | `Cmd+C/X/V/D` | Copiar/Recortar/Colar/Duplicar | | `T` | Texto | | `Cmd+G` | Agrupar | | `F` | Frame | | `Cmd+Shift+G` | Desagrupar | | `P` | Ferramenta caneta | | `Cmd+Shift+E` | Exportar | | `H` | Mão (pan) | | `Cmd+Shift+C` | Painel de código | | `Del` | Excluir | | `Cmd+Shift+V` | Painel de variáveis | | `[ / ]` | Reordenar | | `Cmd+J` | Chat IA | | Setas | Mover 1px | | `Cmd+,` | Configurações do agente | | `Cmd+Alt+U` | União booleana | | `Cmd+Alt+S` | Subtração booleana | | `Cmd+Alt+I` | Interseção booleana | | | | ## Scripts ```bash bun --bun run dev # Servidor de desenvolvimento (porta 3000) bun --bun run build # Build de produção bun --bun run test # Executar testes (Vitest) npx tsc --noEmit # Verificação de tipos bun run electron:dev # Desenvolvimento com Electron bun run electron:build # Empacotamento do Electron ``` ## Contribuindo Contribuições são bem-vindas! Consulte o [CLAUDE.md](./CLAUDE.md) para detalhes de arquitetura e estilo de código. 1. Faça fork e clone 2. Crie uma branch: `git checkout -b feat/my-feature` 3. Execute as verificações: `npx tsc --noEmit && bun --bun run test` 4. Faça commit com [Conventional Commits](https://www.conventionalcommits.org/): `feat(canvas): add rotation snapping` 5. Abra um PR contra `main` ## Roadmap - [x] Variáveis de design e tokens com sincronização CSS - [x] Sistema de componentes (instâncias e substituições) - [x] Geração de design com IA e orquestrador - [x] Integração com servidor MCP e fluxo de design em camadas - [x] Suporte a múltiplas páginas - [x] Importação do Figma `.fig` - [x] Operações booleanas (união, subtração, interseção) - [x] Perfis de capacidade multi-modelo - [ ] Edição colaborativa - [ ] Sistema de plugins ## Contribuidores Contributors ## Comunidade Discord Entre no nosso Discord — Faça perguntas, compartilhe designs, sugira funcionalidades. ## Star History Star History Chart ## Licença [MIT](./LICENSE) — Copyright (c) 2026 ZSeven-W