|
### 🎨 Prompt → Kanvas
Deskripsikan UI apa pun dalam bahasa alami. Saksikan hasilnya muncul di kanvas tak terbatas secara real-time dengan animasi streaming. Modifikasi desain yang ada dengan memilih elemen dan berdialog.
|
### 🤖 Tim Agen Konkuren
Orkestrator menguraikan halaman kompleks menjadi sub-tugas spasial. Beberapa agen AI bekerja pada bagian yang berbeda secara bersamaan — hero, fitur, footer — semuanya streaming secara paralel.
|
|
### 🧠 Kecerdasan Multi-Model
Secara otomatis menyesuaikan dengan kemampuan setiap model. Claude mendapat prompt lengkap dengan thinking; GPT-4o/Gemini menonaktifkan thinking; model yang lebih kecil (MiniMax, Qwen, Llama) mendapat prompt yang disederhanakan untuk keluaran yang andal.
|
### 🔌 Server MCP
Instal satu klik ke Claude Code, Codex, OpenCode, Kiro, atau Copilot CLI. Desain dari terminal Anda — baca, buat, dan modifikasi file `.op` melalui agen yang kompatibel dengan MCP.
|
|
### 📦 Design-as-Code
File `.op` adalah JSON — mudah dibaca manusia, ramah Git, mudah dibandingkan. Variabel desain menghasilkan CSS custom properties. Ekspor kode ke React + Tailwind atau HTML + CSS.
|
### 🖥️ Berjalan di Mana Saja
Aplikasi web + desktop native di macOS, Windows, dan Linux — satu inti Rust, satu binary mandiri, tanpa engine browser. Asosiasi file `.op` — klik dua kali untuk membuka.
|
|
### ⌨️ CLI — `op`
Kontrol alat desain dari terminal Anda. `op design`, `op insert` — batch design DSL, manipulasi node. Pipe dari file atau stdin. Bekerja dengan aplikasi desktop atau web server.
|
### 🎯 Ekspor Kode Multi-Platform
Ekspor dari satu file `.op` ke React + Tailwind, HTML + CSS, Vue, Svelte, Flutter, SwiftUI, Jetpack Compose, React Native. Variabel desain menjadi CSS custom properties.
|
## Instalasi
**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
```
**Unduh langsung untuk 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 . # jalankan aplikasi desktop
nix build .#openpencil # web host native + bundle web CanvasKit
nix build .#op-cli # CLI `op`
nix build .#prebuilt # gunakan arsip desktop upstream yang sesuai
nix build .#prebuilt-cli # gunakan arsip CLI upstream yang sesuai
nix build .#web-server # web server native tanpa GL + bundle web
nix build .#runtime-prebuilt # runtime desktop prebuilt + CLI `op`
nix build .#web-sdk-packages # tarball npm untuk web SDK
nix build .#appimage # AppImage desktop portabel
```
Flake menggunakan toolchain Rust yang dipatok di `rust-toolchain.toml` dan saat
ini diterbitkan untuk `x86_64-linux`. Flake belum menghasilkan paket Debian;
gunakan artefak rilis upstream bila memerlukan `.deb`. Output `prebuilt`
menggunakan versi rilis dan hash yang dipatok di
`nix/release-manifest.json`, terpisah dari versi source workspace. Setelah
rilis diterbitkan, workflow rilis membuka PR untuk memperbarui manifest
tersebut. Hingga PR digabungkan, output prebuilt tetap menggunakan rilis
terdahulu; output yang dibangun dari source selalu menggunakan source yang
sedang di-checkout.
**CLI (`op`):**
```bash
brew install zseven-w/openpencil/op
```
Atau gunakan skrip instalasi (macOS / Linux):
```bash
curl -fsSL https://raw.githubusercontent.com/ZSeven-W/openpencil/main/scripts/install-op.sh | bash
```
Untuk mengizinkan pre-release terbaru:
```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
```
Untuk mengizinkan pre-release terbaru:
```powershell
$env:OP_PRERELEASE = "1"; irm https://raw.githubusercontent.com/ZSeven-W/openpencil/main/scripts/install-op.ps1 | iex
```
## Clone (dengan submodule)
```bash
git clone --recurse-submodules https://github.com/ZSeven-W/openpencil.git
# Sudah di-clone? Sinkronkan dahulu agar URL submodule lama mengikuti perubahan .gitmodules:
git submodule sync --recursive && git submodule update --init --recursive
```
Tiga submodule berada di bawah `vendor/`; semuanya publik dan diambil melalui HTTPS (tanpa kunci SSH): `jian` (framework UI GPU-Skia — widget/render/event), `casement` (fork winit), dan `agent` (`agent-rs` — runtime agen Rust lintas produk yang digunakan bersama oleh OP dan Zode). `vendor/anthropic-agent-sdk` dilacak langsung di repository dan bukan submodule.
## Mulai Cepat
```bash
# Web dev server (builds the CanvasKit wasm bundle, then runs the headless web host)
bash scripts/start-web-rust.sh
```
Atau jalankan sebagai aplikasi desktop:
```bash
cargo run -p op-host-desktop
```
> **Prasyarat:** [Rust](https://www.rust-lang.org/) (stable) untuk membangun produk. [Bun](https://bun.sh/) >= 1.0 dan [Node.js](https://nodejs.org/) >= 18 hanya diperlukan untuk web SDK di `packages/`.
### Docker
Rilis Rust bertag menerbitkan satu image web host. Image TypeScript lama yang menyertakan AI CLI tidak lagi diterbitkan.
| Image | Termasuk |
| --- | --- |
| `ghcr.io/zseven-w/openpencil-web:vX.Y.Z` | Rust web host, wasm bundle, dan aset CanvasKit |
Web UI hanya menampilkan built-in agent profiles; alat Claude/Codex/OpenCode/Copilot CLI tidak dibundel ke dalam image Docker.
**Jalankan:**
```bash
VERSION="$(scripts/workspace-version.sh)"
docker run -d -p 3100:3100 "ghcr.io/zseven-w/openpencil-web:v${VERSION}"
```
Lalu buka `http://localhost:3100/`.
**Build secara lokal:**
```bash
docker build -f Dockerfile.web-rust -t openpencil-web-rust .
docker run -p 3100:3100 openpencil-web-rust
```
## Desain Berbasis AI
**Dari Prompt ke UI**
- **Teks ke desain** — deskripsikan halaman, dan hasilkan di kanvas secara real-time dengan animasi streaming
- **Orkestrator** — menguraikan halaman kompleks menjadi sub-tugas spasial untuk pembuatan secara paralel
- **Modifikasi desain** — pilih elemen, lalu deskripsikan perubahan dalam bahasa alami
- **Masukan visual** — lampirkan tangkapan layar atau mockup sebagai referensi desain
**Dukungan Multi-Agen**
| Agen | Pengaturan |
| ------------------------ | --------------------------------------------------------------------------------------------------- |
| **Bawaan (9+ penyedia)** | Pilih dari preset penyedia dengan pemilih wilayah — Anthropic, OpenAI, Google, DeepSeek dan lainnya |
| **Claude Code** | Tanpa konfigurasi — menggunakan Claude Agent SDK dengan OAuth lokal |
| **Codex CLI** | Hubungkan di Pengaturan Agen (`Cmd+,`) |
| **OpenCode** | Hubungkan di Pengaturan Agen (`Cmd+,`) |
| **GitHub Copilot** | `copilot login` lalu hubungkan di Pengaturan Agen (`Cmd+,`) |
**Profil Kemampuan Model** — secara otomatis menyesuaikan prompt, mode thinking, dan timeout per tingkatan model. Model tingkat penuh (Claude) mendapat prompt lengkap; tingkat standar (GPT-4o, Gemini, DeepSeek) menonaktifkan thinking; tingkat dasar (MiniMax, Qwen, Llama, Mistral) mendapat prompt JSON bertingkat yang disederhanakan untuk keandalan maksimum.
**i18n** — Lokalisasi antarmuka lengkap dalam 15 bahasa: English, 简体中文, 繁體中文, 日本語, 한국어, Français, Español, Deutsch, Português, Русский, हिन्दी, Türkçe, ไทย, Tiếng Việt, Bahasa Indonesia.
**Server MCP**
- Server MCP bawaan (crate `op-mcp`) — instal satu klik ke Claude Code / Codex / OpenCode / Kiro / Copilot CLI
- Tidak memerlukan Node.js — transport stdio melalui binary desktop (`--mcp