|
### 🎨 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, 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 — un único núcleo en Rust, un solo binario autocontenido, sin motor de navegador. Asociación de archivos `.op` — doble clic para abrir.
|
|
### ⌨️ CLI — `op`
Controla la herramienta de diseño desde la terminal. `op design`, `op insert` — DSL de diseño por lotes, manipulación de nodos. Entrada por pipe desde archivos o stdin. Funciona con la app de escritorio o el servidor web.
|
### 🎯 Exportación de Código Multiplataforma
Exporta desde un solo archivo `.op` a React + Tailwind, HTML + CSS, Vue, Svelte, Flutter, SwiftUI, Jetpack Compose, React Native. Las variables de diseño se convierten en propiedades CSS personalizadas.
|
## Instalación
**macOS (Homebrew):**
```bash
brew tap zseven-w/openpencil
brew install --cask openpencil
```
**Windows (Scoop):**
```powershell
scoop bucket add openpencil https://github.com/zseven-w/scoop-openpencil
scoop install openpencil
```
**Descarga directa para Linux / Windows:** [GitHub Releases](https://github.com/ZSeven-W/openpencil/releases) — `.exe` (Windows), `.AppImage` / `.deb` (Linux)
**Nix (Linux x86_64):**
```bash
nix develop
nix run . # iniciar la aplicación de escritorio
nix build .#openpencil # host web nativo + bundle web de CanvasKit
nix build .#op-cli # la CLI `op`
nix build .#prebuilt # usar el archivo de escritorio upstream correspondiente
nix build .#prebuilt-cli # usar el archivo CLI upstream correspondiente
nix build .#web-server # servidor web nativo sin GL + bundle web
nix build .#runtime-prebuilt # runtime precompilado de escritorio + CLI `op`
nix build .#web-sdk-packages # tarballs npm de los SDK web
nix build .#appimage # AppImage de escritorio portátil
```
El flake usa la toolchain de Rust fijada en `rust-toolchain.toml` y actualmente
se publica para `x86_64-linux`. El flake todavía no produce un paquete Debian;
usa los artefactos del release upstream cuando necesites un `.deb`. Las salidas
`prebuilt` usan la versión del release y los hashes fijados en
`nix/release-manifest.json`, independientemente de la versión del código fuente
del workspace. Después de publicar un release, el workflow de release abre un
PR para actualizar ese manifiesto. Hasta que se fusione, las salidas
precompiladas siguen usando el release publicado anterior; las salidas
compiladas desde el código fuente siempre usan el código checkout actual.
**CLI (`op`):**
```bash
brew install zseven-w/openpencil/op
```
O usa el script de instalación (macOS / Linux):
```bash
curl -fsSL https://raw.githubusercontent.com/ZSeven-W/openpencil/main/scripts/install-op.sh | bash
```
Para permitir el pre-release más reciente:
```bash
curl -fsSL https://raw.githubusercontent.com/ZSeven-W/openpencil/main/scripts/install-op.sh | OP_PRERELEASE=1 bash
```
Windows PowerShell:
```powershell
irm https://raw.githubusercontent.com/ZSeven-W/openpencil/main/scripts/install-op.ps1 | iex
```
Para permitir el pre-release más reciente:
```powershell
$env:OP_PRERELEASE = "1"; irm https://raw.githubusercontent.com/ZSeven-W/openpencil/main/scripts/install-op.ps1 | iex
```
## Clonar (con submódulos)
```bash
git clone --recurse-submodules https://github.com/ZSeven-W/openpencil.git
# Si ya lo clonaste, sincroniza primero para que las URL antiguas adopten los cambios de .gitmodules:
git submodule sync --recursive && git submodule update --init --recursive
```
Hay tres submódulos en `vendor/`; todos son públicos y se descargan mediante HTTPS (no se necesita clave SSH): `jian` (framework de UI GPU-Skia — widgets/renderizado/eventos), `casement` (fork de winit) y `agent` (`agent-rs` — runtime de agentes Rust compartido entre productos, usado por OP y Zode). `vendor/anthropic-agent-sdk` se incluye directamente en el repositorio y no es un submódulo.
## Inicio Rápido
```bash
# Web dev server (builds the CanvasKit wasm bundle, then runs the headless web host)
bash scripts/start-web-rust.sh
```
O ejecutar como aplicación de escritorio:
```bash
cargo run -p op-host-desktop
```
> **Requisitos previos:** [Rust](https://www.rust-lang.org/) (stable) para compilar el producto. [Bun](https://bun.sh/) >= 1.0 y [Node.js](https://nodejs.org/) >= 18 solo se necesitan para el SDK web en `packages/`.
### Docker
Las releases Rust etiquetadas publican una única imagen de web host. Las imágenes TypeScript retiradas con CLIs de IA incluidos ya no se publican.
| Imagen | Incluye |
| --- | --- |
| `ghcr.io/zseven-w/openpencil-web:vX.Y.Z` | Rust web host, wasm bundle y recursos de CanvasKit |
La UI web expone solo perfiles de agente integrados; las herramientas Claude/Codex/OpenCode/Copilot CLI no se incluyen en las imágenes Docker.
**Ejecutar:**
```bash
VERSION="$(scripts/workspace-version.sh)"
docker run -d -p 3100:3100 "ghcr.io/zseven-w/openpencil-web:v${VERSION}"
```
Luego abre `http://localhost:3100/`.
**Compilar localmente:**
```bash
docker build -f Dockerfile.web-rust -t openpencil-web-rust .
docker run -p 3100:3100 openpencil-web-rust
```
## 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 |
| ------------------------------ | ---------------------------------------------------------------------------------------------------------- |
| **Integrado (9+ proveedores)** | Selecciona de preajustes de proveedores con selector de región — Anthropic, OpenAI, Google, DeepSeek y más |
| **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.
**i18n** — Localización completa de la interfaz en 15 idiomas: English, 简体中文, 繁體中文, 日本語, 한국어, Français, Español, Deutsch, Português, Русский, हिन्दी, Türkçe, ไทย, Tiếng Việt, Bahasa Indonesia.
**Servidor MCP**
- Servidor MCP integrado (crate `op-mcp`) — instalación con un clic en Claude Code / Codex / OpenCode / Kiro / Copilot CLIs
- No requiere Node.js — transporte stdio a través del binario de escritorio (`--mcp