openpencil/README.pt.md
Kayshen Xu efaa56a9e4
V0.4.2 (#46)
* feat(docker): add Docker support with multi-stage build and CI workflow

- Introduced a `.dockerignore` file to exclude unnecessary files from the Docker context.
- Added a `Dockerfile` for multi-stage builds, optimizing the application for production with a slim runtime.
- Created a GitHub Actions workflow (`docker.yml`) to automate the building and pushing of Docker images on version tag pushes.
- Enhanced the `connect-agent.ts` and `install-agent.ts` files to improve OpenCode binary resolution and installation commands.
- Updated the canvas components to support new polygon shape and related functionalities, including UI adjustments for shape tools and appearance settings.

This update significantly enhances the deployment process and expands the application's capabilities with Docker integration.

* feat(docker): enhance Dockerfile with multi-stage builds and CLI variants

- Updated the Dockerfile to include multiple image variants for different CLI tools, including Claude, Codex, OpenCode, and Copilot, alongside the base web app.
- Improved the build process by separating the build stage and production stage, optimizing the final image size.
- Added environment variables and commands for each variant to ensure proper execution in production.
- Enhanced the README files in multiple languages to document the new Docker deployment options and usage instructions.

This update significantly expands the Docker deployment capabilities, allowing users to choose the appropriate image variant based on their needs.
2026-03-17 21:07:50 +08:00

13 KiB

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

# Instalar dependências
bun install

# Iniciar servidor de desenvolvimento em http://localhost:3000
bun --bun run dev

Ou executar como aplicativo desktop:

bun run electron:dev

Pré-requisitos: Bun >= 1.0 e Node.js >= 18

Implantação com Docker

Várias variantes de imagem estão disponíveis — escolha a que se adequa às suas necessidades:

Imagem Tamanho Inclui
openpencil:latest ~226 MB Apenas aplicação web
openpencil-claude:latest + Claude Code CLI
openpencil-codex:latest + Codex CLI
openpencil-opencode:latest + OpenCode CLI
openpencil-copilot:latest + GitHub Copilot CLI
openpencil-full:latest ~1 GB Todas as ferramentas CLI

Executar (apenas web):

docker run -d -p 3000:3000 ghcr.io/zseven-w/openpencil:latest

Executar com AI CLI (ex. Claude Code):

O chat de IA depende do login OAuth do Claude CLI. Use um volume Docker para persistir a sessão de login:

# Passo 1 — Login (apenas uma vez)
docker volume create openpencil-claude-auth
docker run -it --rm \
  -v openpencil-claude-auth:/root/.claude \
  ghcr.io/zseven-w/openpencil-claude:latest claude login

# Passo 2 — Iniciar
docker run -d -p 3000:3000 \
  -v openpencil-claude-auth:/root/.claude \
  ghcr.io/zseven-w/openpencil-claude:latest

Compilar localmente:

# Base (apenas web)
docker build --target base -t openpencil .

# Com um CLI específico
docker build --target with-claude -t openpencil-claude .

# Completo (todos os CLIs)
docker build --target full -t openpencil-full .

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
  • Detecção automática de Node.js — se não instalado, recurso automático para transporte HTTP e início automático do servidor MCP HTTP
  • Automação de design pelo terminal: leia, crie e modifique arquivos .op via qualquer agente compatível com MCP
  • Fluxo de design em camadasdesign_skeletondesign_contentdesign_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
  • Vue, Svelte, Flutter, SwiftUI, Jetpack Compose, React Native

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 CanvasKit/Skia (WASM, acelerado por GPU)
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

src/
  canvas/          Motor CanvasKit/Skia — 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

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 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: feat(canvas): add rotation snapping
  5. Abra um PR contra main

Roadmap

  • Variáveis de design e tokens com sincronização CSS
  • Sistema de componentes (instâncias e substituições)
  • Geração de design com IA e orquestrador
  • Integração com servidor MCP e fluxo de design em camadas
  • Suporte a múltiplas páginas
  • Importação do Figma .fig
  • Operações booleanas (união, subtração, interseção)
  • 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 — Copyright (c) 2026 ZSeven-W