ZSeven-W/openpencil
Rust0 / 0
Rust와 MCP로 프롬프트·에이전트·벡터 캔버스를 연결하는 오픈소스 Design-as-Code 도구입니다.
TL;DR
OpenPencil은 Rust 기반의 독립형 AI 네이티브 벡터 디자인 도구로, 데스크톱·웹 편집기와 `op` CLI·내장 MCP 서버·읽기 전용 Web SDK를 한 저장소에서 제공합니다. 자연어 프롬프트를 `.op` JSON 캔버스로 변환하고 Orchestrator가 페이지 영역을 나눠 여러 Agent를 동시에 실행하며, Claude Code·Codex·OpenCode·Copilot 같은 외부 에이전트에서도 디자인을 조작할 수 있습니다. React·Vue·Svelte·Flutter·SwiftUI 등으로 코드 출력이 가능하고 Figma `.fig` 가져오기, Git 병합, 실시간 협업까지 포함합니다. 다만 Rust 제품이 활발히 개발 중이고 Plugin system은 아직 구현되지 않았으므로, 안정적인 상용 디자인 편집기보다 AI·코드·에이전트 중심의 오픈소스 작업 흐름에 적합합니다.
핵심 포인트
- OpenPencil은 Rust로 만든 독립형 AI 네이티브 벡터 디자인 도구이며 macOS·Windows·Linux 데스크톱과 브라우저에서 같은 편집 코어를 사용합니다. `.op` JSON 파일을 캔버스 상태로 저장하고 GPU Skia와 CanvasKit으로 렌더링합니다. Figma 대체재, AI 기반 UI 제작 도구, Git 친화적 Design-as-Code 환경을 찾는 개발자에게 맞습니다.
- 자연어 프롬프트를 SSE 스트리밍으로 캔버스에 반영하고, Orchestrator가 페이지를 공간별 하위 작업으로 나눠 여러 Agent가 동시에 생성합니다. Claude, GPT-4o, Gemini, DeepSeek, MiniMax, Qwen, Llama 등 모델 등급에 따라 프롬프트와 thinking 모드를 조정합니다. 기존 요소를 선택한 뒤 대화로 수정하거나 스크린샷을 참고 입력으로 사용할 수 있습니다.
- 내장 `op-mcp` 서버와 `op` CLI를 통해 Claude Code, Codex, OpenCode, Kiro, Copilot 같은 MCP 호환 도구에서 `.op` 파일을 읽고 만들고 수정할 수 있습니다. `design_skeleton` → `design_content` → `design_refine` 단계와 `codegen_plan` → `codegen_submit_chunk` → `codegen_assemble` 파이프라인으로 생성과 코드 출력을 나눕니다. React + Tailwind, HTML + CSS, Vue, Svelte, Flutter, SwiftUI, Jetpack Compose, React Native로 내보낼 수 있습니다.
- Rust 전환 뒤 데스크톱 바이너리는 55.5 MB이고 웹 빌드는 8.2 MB raw, 2.18 MB gzip으로 기록되어 있습니다. 10,000개 노드 문서의 전체 레이아웃 snapshot은 약 0.68초에 반환됐고, wheel-zoom CPU 사용량은 약 69%에서 약 0%로 줄었다고 README에 적혀 있습니다. 다만 Rust 제품은 현재 활발히 개발 중이며 Plugin system은 아직 로드맵의 미완료 항목입니다.
벤치마크
| 벤치마크 | 지표 | 값 | 비교 |
|---|---|---|---|
| 데스크톱 바이너리 크기 | 파일 크기 | 55.5 MB | README의 Rust 전환 후 자체 측정값이며 이전 TypeScript + Electron 버전과 비교한 수치입니다. |
| 웹 빌드 크기 | gzip 전송 크기 | 2.18 MB gzip | README의 Rust 전환 후 자체 측정값이며 아이콘 카탈로그 분할 뒤 전송량이 48% 감소했다고 기록되어 있습니다. |
| 대규모 캔버스 레이아웃 | 10,000개 노드 전체 layout snapshot 반환 시간 | 약 0.68초 | 중첩 Auto-layout이 4단계인 10,000개 노드 캔버스에서 측정한 README 자체 수치입니다. |
| 캔버스 확대·축소 | wheel-zoom CPU 사용량 | 약 69% → 약 0% | 프레임마다 문서를 재직렬화하지 않도록 hot path를 수정한 뒤의 README 자체 비교 수치입니다. |
5.6k
STARS
492
FORKS
+204
TRENDING
0
조회수
관련 토론
아직 관련 토론이 없습니다.
댓글
댓글을 작성하려면 로그인이 필요합니다.