openpencil/README.es.md
Kayshen Xu 71c09b3342 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

La primera herramienta de diseño vectorial de código abierto nativa de IA del mundo.
Equipos de Agentes Concurrentes • Diseño como Código • Servidor MCP Integrado • Inteligencia Multimodelo

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

Stars License CI Discord


OpenPencil — haz clic para ver la demostración

Haz clic en la imagen para ver el video de demostración


Por Qué OpenPencil

🎨 Prompt → Lienzo

Describe cualquier interfaz en lenguaje natural. Obsérvala aparecer en el lienzo infinito en tiempo real con animación de transmisión. Modifica diseños existentes seleccionando elementos y chateando.

🤖 Equipos de Agentes Concurrentes

El orquestador descompone páginas complejas en subtareas espaciales. Múltiples agentes de IA trabajan en diferentes secciones simultáneamente — hero, características, footer — todos transmitiendo en paralelo.

🧠 Inteligencia Multimodelo

Se adapta automáticamente a las capacidades de cada modelo. Claude recibe prompts completos con pensamiento; GPT-4o/Gemini desactivan el pensamiento; modelos más pequeños (MiniMax, Qwen, Llama) reciben prompts simplificados para una salida confiable.

🔌 Servidor MCP

Instalación con un clic en Claude Code, Codex, Gemini, OpenCode, Kiro o Copilot CLIs. Diseña desde tu terminal — lee, crea y modifica archivos .op a través de cualquier agente compatible con MCP.

📦 Diseño como Código

Los archivos .op son JSON — legibles por humanos, compatibles con Git, comparables. Las variables de diseño generan propiedades personalizadas CSS. Exportación de código a React + Tailwind o HTML + CSS.

🖥️ Funciona en Todas Partes

Aplicación web + escritorio nativo en macOS, Windows y Linux mediante Electron. Actualizaciones automáticas desde GitHub Releases. Asociación de archivos .op — doble clic para abrir.

Inicio Rápido

# Instalar dependencias
bun install

# Iniciar el servidor de desarrollo en http://localhost:3000
bun --bun run dev

O ejecutar como aplicación de escritorio:

bun run electron:dev

Requisitos previos: Bun >= 1.0 y Node.js >= 18

Despliegue con Docker

Hay varias variantes de imagen disponibles — elige la que se ajuste a tus necesidades:

Imagen Tamaño Incluye
openpencil:latest ~226 MB Solo aplicación 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 las herramientas CLI

Ejecutar (solo web):

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

Ejecutar con AI CLI (ej. Claude Code):

El chat de IA depende del inicio de sesión OAuth de Claude CLI. Usa un volumen Docker para persistir la sesión de inicio de sesión:

# Paso 1 — Iniciar sesión (una sola 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

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

Compilar localmente:

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

# Con un CLI específico
docker build --target with-claude -t openpencil-claude .

# Completa (todos los CLIs)
docker build --target full -t openpencil-full .

Diseño Nativo de IA

De Prompt a Interfaz

  • Texto a diseño — describe una página y se genera en el lienzo en tiempo real con animación de transmisión
  • Orquestador — descompone páginas complejas en subtareas espaciales para generación en paralelo
  • Modificación de diseño — selecciona elementos y describe los cambios en lenguaje natural
  • Entrada visual — adjunta capturas de pantalla o bocetos como referencia para el diseño

Soporte Multiagente

Agente Configuración
Claude Code Sin configuración — usa Claude Agent SDK con OAuth local
Codex CLI Conectar en Configuración de Agente (Cmd+,)
OpenCode Conectar en Configuración de Agente (Cmd+,)
GitHub Copilot copilot login y luego conectar en Configuración de Agente (Cmd+,)

Perfiles de Capacidad de Modelos — adapta automáticamente los prompts, el modo de pensamiento y los tiempos de espera según el nivel del modelo. Los modelos de nivel completo (Claude) reciben prompts completos; los de nivel estándar (GPT-4o, Gemini, DeepSeek) desactivan el pensamiento; los de nivel básico (MiniMax, Qwen, Llama, Mistral) reciben prompts simplificados de JSON anidado para máxima fiabilidad.

Servidor MCP

  • Servidor MCP integrado — instalación con un clic en Claude Code / Codex / Gemini / OpenCode / Kiro / Copilot CLIs
  • Detección automática de Node.js — si no está instalado, recurre automáticamente al transporte HTTP e inicia el servidor MCP HTTP
  • Automatización de diseño desde la terminal: leer, crear y modificar archivos .op a través de cualquier agente compatible con MCP
  • Flujo de diseño por capasdesign_skeletondesign_contentdesign_refine para diseños multisección de mayor fidelidad
  • Recuperación segmentada de prompts — carga solo el conocimiento de diseño que necesitas (schema, layout, roles, icons, planning, etc.)
  • Soporte multipágina — crear, renombrar, reordenar y duplicar páginas mediante herramientas MCP

Generación de Código

  • React + Tailwind CSS, HTML + CSS, CSS Variables
  • Vue, Svelte, Flutter, SwiftUI, Jetpack Compose, React Native

Características

Lienzo y Dibujo

  • Lienzo infinito con panorámica, zoom, guías de alineación inteligentes y ajuste
  • Rectángulo, Elipse, Línea, Polígono, Pluma (Bezier), Frame, Texto
  • Operaciones booleanas — unión, resta, intersección con barra de herramientas contextual
  • Selector de iconos (Iconify) e importación de imágenes (PNG/JPEG/SVG/WebP/GIF)
  • Diseño automático — vertical/horizontal con gap, padding, justify, align
  • Documentos multipágina con navegación por pestañas

Sistema de Diseño

  • Variables de diseño — tokens de color, número y texto con referencias $variable
  • Soporte multitema — múltiples ejes, cada uno con variantes (Claro/Oscuro, Compacto/Cómodo)
  • Sistema de componentes — componentes reutilizables con instancias y sobreescrituras
  • Sincronización CSS — propiedades personalizadas autogeneradas, var(--name) en la salida de código

Importación de Figma

  • Importa archivos .fig conservando diseño, rellenos, trazos, efectos, texto, imágenes y vectores

Aplicación de Escritorio

  • Compatible de forma nativa con macOS, Windows y Linux mediante Electron
  • Asociación de archivos .op — doble clic para abrir, bloqueo de instancia única
  • Actualización automática desde GitHub Releases
  • Menú de aplicación nativo y diálogos de archivo

Stack Tecnológico

Frontend React 19 · TanStack Start · Tailwind CSS v4 · shadcn/ui
Lienzo CanvasKit/Skia (WASM, acelerado por GPU)
Estado Zustand v5
Servidor Nitro
Escritorio Electron 35
IA Anthropic SDK · Claude Agent SDK · OpenCode SDK · Copilot SDK
Runtime Bun · Vite 7
Formato de archivo .op — basado en JSON, legible por humanos, compatible con Git

Estructura del Proyecto

src/
  canvas/          Motor CanvasKit/Skia — dibujo, sincronización, diseño, guías, herramienta pluma
  components/      Interfaz React — editor, paneles, diálogos compartidos, iconos
  services/ai/     Chat de IA, orquestador, generación de diseño, transmisión
  services/figma/  Pipeline de importación binaria de Figma .fig
  services/codegen Generadores de código React+Tailwind y HTML+CSS
  stores/          Zustand — lienzo, documento, páginas, historial, IA, configuración
  variables/       Resolución de tokens de diseño y gestión de referencias
  mcp/             Herramientas del servidor MCP para integración con CLI externas
  uikit/           Sistema de kit de componentes reutilizables
server/
  api/ai/          API Nitro — chat en streaming, generación, validación
  utils/           Wrappers de cliente Claude CLI, OpenCode, Codex, Copilot
electron/
  main.ts          Ventana, fork Nitro, menú nativo, actualizador automático
  preload.ts       Puente IPC

Atajos de Teclado

Tecla Acción Tecla Acción
V Seleccionar Cmd+S Guardar
R Rectángulo Cmd+Z Deshacer
O Elipse Cmd+Shift+Z Rehacer
L Línea Cmd+C/X/V/D Copiar/Cortar/Pegar/Duplicar
T Texto Cmd+G Agrupar
F Frame Cmd+Shift+G Desagrupar
P Herramienta pluma Cmd+Shift+E Exportar
H Mano (panorámica) Cmd+Shift+C Panel de código
Del Eliminar Cmd+Shift+V Panel de variables
[ / ] Reordenar Cmd+J Chat de IA
Flechas Mover 1px Cmd+, Configuración de agente
Cmd+Alt+U Unión booleana Cmd+Alt+S Resta booleana
Cmd+Alt+I Intersección booleana

Scripts

bun --bun run dev          # Servidor de desarrollo (puerto 3000)
bun --bun run build        # Compilación de producción
bun --bun run test         # Ejecutar pruebas (Vitest)
npx tsc --noEmit           # Verificación de tipos
bun run electron:dev       # Desarrollo con Electron
bun run electron:build     # Empaquetado de Electron

Contribuir

¡Las contribuciones son bienvenidas! Consulta CLAUDE.md para detalles sobre la arquitectura y el estilo de código.

  1. Haz fork y clona el repositorio
  2. Crea una rama: git checkout -b feat/my-feature
  3. Ejecuta las verificaciones: npx tsc --noEmit && bun --bun run test
  4. Haz commit con Conventional Commits: feat(canvas): add rotation snapping
  5. Abre un PR contra main

Hoja de Ruta

  • Variables de diseño y tokens con sincronización CSS
  • Sistema de componentes (instancias y sobreescrituras)
  • Generación de diseño con IA y orquestador
  • Integración con servidor MCP con flujo de diseño por capas
  • Soporte multipágina
  • Importación de Figma .fig
  • Operaciones booleanas (unión, sustracción, intersección)
  • Perfiles de capacidad multimodelo
  • Edición colaborativa
  • Sistema de plugins

Colaboradores

Contributors

Star History

Star History Chart

Comunidad

Discord Únete a nuestro Discord — Haz preguntas, comparte diseños y sugiere funciones.