|
### 🎨 提示词 → 画布
用自然语言描述任意 UI,实时以流式动画在无限画布上生成。选中已有元素,通过对话即可修改设计。
|
### 🤖 并发 Agent 团队
编排器将复杂页面分解为空间子任务。多个 AI 智能体同时处理不同区块 — Hero、功能区、页脚 — 全部并行流式生成。
|
|
### 🧠 多模型智能
自动适配每个模型的能力。Claude 获得完整提示词和思考模式;GPT-4o/Gemini 关闭思考模式;小模型(MiniMax、Qwen、Llama)使用简化提示词以确保输出可靠性。
|
### 🔌 MCP 服务器
一键安装到 Claude Code、Codex、OpenCode、Kiro 或 Copilot CLI。从终端进行设计 — 通过任意 MCP 兼容的智能体读取、创建和修改 `.op` 文件。
|
|
### 📦 设计即代码
`.op` 文件是 JSON — 人类可读、对 Git 友好、可进行 diff 对比。设计变量生成 CSS 自定义属性。代码导出为 React + Tailwind 或 HTML + CSS。
|
### 🖥️ 全平台运行
Web 应用 + macOS、Windows 和 Linux 原生桌面端 — 单一 Rust 核心,单个自包含二进制文件,无需浏览器引擎。`.op` 文件关联 — 双击即可打开。
|
|
### ⌨️ CLI — `op`
从终端控制设计工具。`op design`、`op insert` — 批量设计 DSL、节点操作。支持从文件或 stdin 管道输入。可搭配桌面应用或 Web 服务器使用。
|
### 🎯 多平台代码导出
从单个 `.op` 文件导出到 React + Tailwind、HTML + CSS、Vue、Svelte、Flutter、SwiftUI、Jetpack Compose、React Native。设计变量自动转换为 CSS 自定义属性。
|
## 安装
**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
```
**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 . # 启动桌面应用
nix build .#openpencil # 原生 Web host + CanvasKit Web bundle
nix build .#op-cli # `op` CLI
nix build .#prebuilt # 使用匹配的 upstream 桌面归档
nix build .#prebuilt-cli # 使用匹配的 upstream CLI 归档
nix build .#web-server # 无需 GL 的原生 Web server + Web bundle
nix build .#runtime-prebuilt # 预构建桌面端 + `op` CLI runtime
nix build .#web-sdk-packages # Web SDK 的 npm tarball
nix build .#appimage # 便携式桌面 AppImage
```
flake 使用 `rust-toolchain.toml` 中固定的 Rust toolchain,目前发布于
`x86_64-linux`。flake 尚未生成 Debian 软件包;需要 `.deb` 时请使用
upstream release artifact。`prebuilt` output 使用
`nix/release-manifest.json` 中固定的 release 版本和 hash,与 workspace
源码版本相互独立。release 发布后,release workflow 会创建 PR 来更新此
manifest。在 PR 合并前,预构建 output 会继续使用上一个已发布的 release;
源码构建 output 则始终使用当前 checkout 的源码。
**CLI(`op`):**
```bash
brew install zseven-w/openpencil/op
```
或使用安装脚本(macOS / Linux):
```bash
curl -fsSL https://raw.githubusercontent.com/ZSeven-W/openpencil/main/scripts/install-op.sh | bash
```
如需允许最新预发布版本:
```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
```
如需允许最新预发布版本:
```powershell
$env:OP_PRERELEASE = "1"; irm https://raw.githubusercontent.com/ZSeven-W/openpencil/main/scripts/install-op.ps1 | iex
```
## 克隆(包含子模块)
```bash
git clone --recurse-submodules https://github.com/ZSeven-W/openpencil.git
# 如果已经克隆,请先同步,让旧的子模块 URL 获取 .gitmodules 中的更改:
git submodule sync --recursive && git submodule update --init --recursive
```
`vendor/` 下有三个子模块,均为公开仓库并通过 HTTPS 获取(无需 SSH 密钥):`jian`(GPU-Skia UI framework — widget/render/event)、`casement`(winit fork)和 `agent`(`agent-rs` — OP 与 Zode 共用的跨产品 Rust agent runtime)。`vendor/anthropic-agent-sdk` 直接纳入版本控制,并非子模块。
## 快速开始
```bash
# Web dev server (builds the CanvasKit wasm bundle, then runs the headless web host)
bash scripts/start-web-rust.sh
```
或以桌面应用形式运行:
```bash
cargo run -p op-host-desktop
```
> **前置条件:** 构建产品需要 [Rust](https://www.rust-lang.org/)(stable)。[Bun](https://bun.sh/) >= 1.0 和 [Node.js](https://nodejs.org/) >= 18 仅用于 `packages/` 下的 web SDK。
### Docker
带标签的 Rust release 会发布单一 web-host 镜像。带内置 AI CLI 的旧 TypeScript 镜像不再发布。
| 镜像 | 包含 |
| --- | --- |
| `ghcr.io/zseven-w/openpencil-web:vX.Y.Z` | Rust web host、wasm bundle 和 CanvasKit 资源 |
Web UI 只暴露内置 agent profiles;Docker 镜像不再内置 Claude/Codex/OpenCode/Copilot CLI 工具。
**运行:**
```bash
VERSION="$(scripts/workspace-version.sh)"
docker run -d -p 3100:3100 "ghcr.io/zseven-w/openpencil-web:v${VERSION}"
```
然后打开 `http://localhost:3100/`。
**本地构建:**
```bash
docker build -f Dockerfile.web-rust -t openpencil-web-rust .
docker run -p 3100:3100 openpencil-web-rust
```
## AI 原生设计
**提示词生成 UI**
- **文字转设计** — 描述一个页面,实时以流式动画在画布上生成
- **编排器** — 将复杂页面分解为空间子任务,支持并行生成
- **设计修改** — 选中元素后,用自然语言描述更改
- **视觉输入** — 附加截图或线框图作为参考进行设计
**多智能体支持**
| 智能体 | 配置方式 |
| --------------------- | --------------------------------------------------------------------- |
| **内置(9+ 提供商)** | 从提供商预设中选择并切换区域 — Anthropic、OpenAI、Google、DeepSeek 等 |
| **Claude Code** | 无需配置 — 使用 Claude Agent SDK 本地 OAuth |
| **Codex CLI** | 在 Agent 设置中连接(`Cmd+,`) |
| **OpenCode** | 在 Agent 设置中连接(`Cmd+,`) |
| **GitHub Copilot** | 运行 `copilot login` 后在 Agent 设置中连接(`Cmd+,`) |
**模型能力配置** — 自动根据模型层级适配提示词、思考模式和超时时间。完整层级模型(Claude)获得完整提示词;标准层级模型(GPT-4o、Gemini、DeepSeek)关闭思考模式;基础层级模型(MiniMax、Qwen、Llama、Mistral)使用简化的嵌套 JSON 提示词以确保最大可靠性。
**国际化** — 完整界面本地化,支持 15 种语言:English、简体中文、繁體中文、日本語、한국어、Français、Español、Deutsch、Português、Русский、हिन्दी、Türkçe、ไทย、Tiếng Việt、Bahasa Indonesia。
**MCP 服务器**
- 内置 MCP 服务器(`op-mcp` crate)— 一键安装到 Claude Code / Codex / OpenCode / Kiro / Copilot CLI
- 无需 Node.js — 通过桌面应用二进制文件(`--mcp