openpencil/README.es.md
Kayshen Xu 917a16751f V0.2.0 (#21)
* feat(ai): add agent identity system with visual indicators for concurrent generation

- Agent identity: assign unique colors and names to each sub-agent
- Canvas indicators: breathing glow border + name pill above streaming nodes
- Preview effect: outline appears 500ms before element materializes
- Screen grouping: subtasks with same `screen` field share one root frame,
  fixing multi-page apps being split into too many frames
- Screen-level parallelism: subtasks within same screen run sequentially
  (preserving section order), different screens run in parallel

* fix(canvas): make agent indicator visual effect much more dramatic

- Outer glow: 8px soft border for visible halo effect
- Inner border: 2.5px sharp crisp border at high alpha
- Preview fill: 10-15% alpha (was ~1% before, essentially invisible)
- Breathing: faster cycle (400ms), higher range [0.35, 0.95]
- Name pill: larger font (11px), bold 700, drop shadow
- Pill dedup: only draw one name pill per agent (not per node)
- Rounded rect helper for polished pill rendering

* fix(canvas): use globalThis for agent indicator state to prevent module isolation

Vite module splitting can create separate module instances for the same
file when imported from different chunks. This causes the indicator Map
written by the orchestrator (services/ai/) to be a different instance
than the one read by the canvas hook (canvas/). Using globalThis
guarantees a single shared instance across all chunks.

* feat(i18n): enhance internationalization support by integrating i18next for translation in various components. Added new dependencies: i18next, i18next-browser-languagedetector, and react-i18next. Updated UI elements in the editor, toolbar, and status bar to utilize translation keys for improved localization. Enhanced README with language options for better accessibility.

* feat(auto-update): implement auto-update functionality with settings management

- Added auto-update feature to check for updates at app startup and periodically while running.
- Introduced settings for enabling/disabling auto-update, stored in a JSON file.
- Integrated IPC handlers to manage auto-update settings from the renderer process.
- Created new API endpoints for managing MCP server status, including start/stop functionality.
- Enhanced the UI to support theme presets, allowing users to save and load variable presets.
- Updated internationalization support for new UI elements related to auto-update and presets.

* feat(ai): add element boundaries to orchestrator subtask planning

Orchestrator now outputs an "elements" field per subtask listing the
specific UI elements it owns. Sub-agent prompts display these boundaries
so each agent knows exactly what to generate and what belongs to other
sections, preventing content duplication across subtasks.

Also includes: sequential cascade reveal animation, agent indicator
recursive tagging, delayed indicator removal, single-agent identity
for sequential mode, model name truncation fix.

---------

Co-authored-by: Fini <fini.yang@gmail.com>
2026-03-05 21:14:50 +08:00

8.7 KiB

OpenPencil

OpenPencil

Herramienta de diseño de código abierto nativa de IA. Diseño como Código.
De prompt a interfaz en el lienzo. Orquestación multiagente. Servidor MCP integrado. Generación de código.

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

Stars License CI Discord

Inicio Rápido · IA · Características · Discord · Contribuir


OpenPencil — click to watch demo

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


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

Diseño Nativo de IA

OpenPencil está construido desde cero con IA en su núcleo — no como un plugin, sino como un flujo de trabajo central.

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+,)

Servidor MCP

  • Servidor MCP integrado — instalación con un clic en Claude Code / Codex / Gemini / OpenCode / Kiro CLIs
  • Automatización de diseño desde la terminal: leer, crear y modificar archivos .op a través de cualquier agente compatible con MCP

Generación de Código

  • React + Tailwind CSS
  • HTML + CSS
  • CSS Variables a partir de tokens de diseño

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
  • 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
  • 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 Fabric.js v7
Estado Zustand v5
Servidor Nitro
Escritorio Electron 35
IA Anthropic SDK · Claude Agent SDK · OpenCode SDK
Runtime Bun · Vite 7
Formato de archivo .op — basado en JSON, legible por humanos, compatible con Git

Estructura del Proyecto

src/
  canvas/          Motor Fabric.js — 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
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

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
  • Soporte multipágina
  • Importación de Figma .fig
  • Operaciones booleanas (unión, sustracción, intersección)
  • Edición colaborativa
  • Sistema de plugins

Colaboradores

Contributors

Comunidad

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

Licencia

MIT — Copyright (c) 2026 ZSeven-W