|
### 🎨 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, 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 — um único núcleo Rust, um binário único autocontido, sem motor de navegador. Associação de arquivos `.op` — clique duplo para abrir.
|
|
### ⌨️ CLI — `op`
Controle a ferramenta de design pelo terminal. `op design`, `op insert` — DSL de design em lote, manipulação de nós. Entrada por pipe de arquivos ou stdin. Funciona com o app desktop ou servidor web.
|
### 🎯 Exportação de Código Multiplataforma
Exporte de um único arquivo `.op` para React + Tailwind, HTML + CSS, Vue, Svelte, Flutter, SwiftUI, Jetpack Compose, React Native. Variáveis de design se tornam propriedades CSS customizadas.
|
## Instalação
**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
```
**Download direto 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 o aplicativo desktop
nix build .#openpencil # host web nativo + bundle web CanvasKit
nix build .#op-cli # a CLI `op`
nix build .#prebuilt # usar o arquivo desktop upstream correspondente
nix build .#prebuilt-cli # usar o arquivo CLI upstream correspondente
nix build .#web-server # servidor web nativo sem GL + bundle web
nix build .#runtime-prebuilt # runtime pré-compilado desktop + CLI `op`
nix build .#web-sdk-packages # tarballs npm dos SDKs web
nix build .#appimage # AppImage desktop portátil
```
O flake usa a toolchain Rust fixada em `rust-toolchain.toml` e atualmente é
publicado para `x86_64-linux`. O flake ainda não produz um pacote Debian; use os
artefatos da release upstream quando precisar de um `.deb`. As saídas
`prebuilt` usam a versão da release e os hashes fixados em
`nix/release-manifest.json`, independentemente da versão do código-fonte do
workspace. Depois que uma release é publicada, o workflow de release abre um
PR para atualizar esse manifesto. Até o merge, as saídas pré-compiladas
continuam usando a release publicada anterior; as saídas compiladas a partir do
código-fonte sempre usam o código do checkout atual.
**CLI (`op`):**
```bash
brew install zseven-w/openpencil/op
```
Ou use o script de instalação (macOS / Linux):
```bash
curl -fsSL https://raw.githubusercontent.com/ZSeven-W/openpencil/main/scripts/install-op.sh | bash
```
Para permitir a pré-release mais recente:
```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 a pré-release mais recente:
```powershell
$env:OP_PRERELEASE = "1"; irm https://raw.githubusercontent.com/ZSeven-W/openpencil/main/scripts/install-op.ps1 | iex
```
## Clonar (com submódulos)
```bash
git clone --recurse-submodules https://github.com/ZSeven-W/openpencil.git
# Já clonou? Sincronize primeiro para que URLs antigas recebam as alterações de .gitmodules:
git submodule sync --recursive && git submodule update --init --recursive
```
Há três submódulos em `vendor/`; todos são públicos e baixados via HTTPS (não é necessária uma chave SSH): `jian` (framework de UI GPU-Skia — widgets/renderização/eventos), `casement` (fork do winit) e `agent` (`agent-rs` — runtime de agentes Rust compartilhado entre produtos, usado por OP e Zode). `vendor/anthropic-agent-sdk` é versionado diretamente no repositório e não é um submódulo.
## Início Rápido
```bash
# Web dev server (builds the CanvasKit wasm bundle, then runs the headless web host)
bash scripts/start-web-rust.sh
```
Ou executar como aplicativo desktop:
```bash
cargo run -p op-host-desktop
```
> **Pré-requisitos:** [Rust](https://www.rust-lang.org/) (stable) para compilar o produto. [Bun](https://bun.sh/) >= 1.0 e [Node.js](https://nodejs.org/) >= 18 são necessários apenas para o SDK web em `packages/`.
### Docker
Releases Rust com tag publicam uma única imagem de web host. As imagens TypeScript aposentadas com CLIs de IA incluídos não são mais publicadas.
| Imagem | Inclui |
| --- | --- |
| `ghcr.io/zseven-w/openpencil-web:vX.Y.Z` | Rust web host, wasm bundle e assets do CanvasKit |
A UI web expõe apenas perfis de agente integrados; as ferramentas Claude/Codex/OpenCode/Copilot CLI não são incluídas nas imagens Docker.
**Executar:**
```bash
VERSION="$(scripts/workspace-version.sh)"
docker run -d -p 3100:3100 "ghcr.io/zseven-w/openpencil-web:v${VERSION}"
```
Depois abra `http://localhost:3100/`.
**Compilar localmente:**
```bash
docker build -f Dockerfile.web-rust -t openpencil-web-rust .
docker run -p 3100:3100 openpencil-web-rust
```
## 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 |
| ----------------------------- | -------------------------------------------------------------------------------------------------------- |
| **Integrado (9+ provedores)** | Selecione entre presets de provedores com seletor de região — Anthropic, OpenAI, Google, DeepSeek e mais |
| **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.
**i18n** — Localização completa da interface em 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`) — instalação com um clique no Claude Code / Codex / OpenCode / Kiro / Copilot CLIs
- Não requer Node.js — transporte stdio via o binário desktop (`--mcp