TrendShift · 2026-05-23 · 16위

Open Design 딥다이브 — Claude Design의 오픈소스 대안, "내 노트북에 살고 있는 디자이너"

2026년 4월, Anthropic이 Claude Design을 공개했다. LLM이 산문을 그만 쓰고 "디자인 산출물(artifact)"을 만들기 시작한 순간이었다. 입소문은 났지만 클로즈드 소스 · 유료 · 클라우드 전용 · Anthropic 모델 락인. Open Design (OD)은 그 정확한 자물쇠를 푼다. 에이전트를 직접 만들지 않는다 — 당신의 노트북에 이미 있는 24개 코딩 에이전트 CLI(Claude Code · Codex · Gemini · Cursor Agent · Pi · DeepSeek TUI…)를 PATH에서 자동 감지해서, 155+ Skill142+ Design System으로 묶어 로컬 데몬에 꽂는다. 결과는 Anthropic이 막 둔 그 자리, 그대로다. 단지 모두 당신 것이다.

0먼저, "디자인 에이전트 플랫폼"이 뭐길래

대화창 한쪽에 "디자이너"가 살고 있고, 당신은 그냥 브리프만 던진다.

용어
디자인 에이전트 플랫폼 (Design Agent Platform)
LLM이 코드/문장을 쓰는 게 아니라, 완성된 디자인 산출물(HTML 페이지, PPT 슬라이드, 인포그래픽, 모바일 앱 목업, 인보이스 등)을 즉시 만들어 보여주는 시스템. 마치 시니어 디자이너에게 "씨드 라운드용 매거진 스타일 피치덱 만들어줘"라고 던지듯, LLM에게 던지면 30초 만에 iframe 안에서 살아 움직이는 결과물이 뜬다. 다운로드 가능하고, 편집 가능하고, PDF/PPTX/ZIP/HTML로 export된다.
한 줄로

Open Design은 "Claude Design + Cursor의 자유"다.

Claude Design은 "디자이너 모드의 ChatGPT"라고 보면 된다. Anthropic 모델만 쓸 수 있고, Anthropic 클라우드에서만 돌고, 결제 없이는 못 쓴다. OD는 똑같은 사용자 경험(브리프 → 질문 폼 → 방향 선택 → 라이브 todo 스트림 → iframe 미리보기 → 다섯 차원 자기 비평 → export)을 제공하면서, 모든 레이어를 당신 손에 돌려준다: 어떤 에이전트를 쓸지(24개 중 선택), 어디서 돌릴지(로컬 / Vercel / Electron), 어떤 모델을 쓸지(BYOK 4개 프로바이더).

비유

스타벅스 vs. 동네 로스터리. Claude Design은 스타벅스다 — 일관된 품질, 어디서나 똑같은 메뉴, 카드 결제. 빠르고 편하지만 원두를 못 고른다. OD는 동네 로스터리다 — 어떤 원두(Claude/GPT/Gemini), 어떤 추출법(155+ 스킬), 어떤 디자인 정체성(142+ 시스템)으로 뽑을지 직접 고른다. 같은 라떼지만 손맛이 들어간다.

1한 줄 요약

한국어 한 문장으로 끝내본다.

Open Design은 로컬 데몬 + Next.js 16 + SQLite로 구동되는 Apache-2.0 라이선스의 오픈소스 디자인 에이전트 플랫폼으로, 사용자 PATH에 이미 깔린 24개 코딩 에이전트 CLI를 자동 감지해서 그중 하나를 "디자인 엔진"으로 삼아 — 155+ Skill 파일142+ Design System Markdown을 조합해 매거진 피치덱 · SaaS 랜딩페이지 · 모바일 앱 목업 · PM 스펙 문서 · 인보이스 등 다채로운 산출물을 30초 안에 sandboxed iframe으로 뽑아내고, HTML / PDF / PPTX / ZIP / Markdown으로 내려받게 해주는 "내 노트북에 살고 있는 시니어 디자이너 시뮬레이터"다.

2왜 지금 주목받는가

"오픈소스 Claude Design"이라는 단어 자체가 6개월간 비어 있었다.

2026년 4월 17일, Anthropic이 Claude Design (Opus 4.7)을 공개했을 때 디자인 커뮤니티는 진동했다. LLM이 "디자인을 흉내내는" 단계를 넘어, 진짜 시니어 디자이너처럼 브리프 → 방향 결정 → 산출물 → 자기 비평의 풀 사이클을 돌렸기 때문이다. 트위터/X에는 한 달 내내 "Claude Design으로 만든 ___" 스레드가 도배됐다.

그런데 문제: 전부 닫혀 있다. 모델, 스킬, 호스팅, 결제 — 어느 레이어도 만질 수 없다. 셀프 호스팅 옵션 없음, Vercel 배포 옵션 없음, API 키 가져오기 옵션 없음. "닫힌 채로 우리가 만든 최고를 써라"는 자세다.

차별점 비교

Claude Design vs. Open Design

관점Claude DesignOpen Design (OD)
라이선스독점 / 유료Apache-2.0
호스팅Anthropic 클라우드 전용로컬 데몬 / Vercel / Electron 데스크탑
모델Claude Opus 4.7만Anthropic · OpenAI · Azure · Gemini + 24개 CLI
API 키Anthropic 결제 강제BYOK 모든 레이어
커스터마이즈불가 (블랙박스)스킬은 폴더, DESIGN.md는 마크다운 — 다 텍스트 편집
마이그레이션잠금Claude Design ZIP export 임포트 가능
로컬 LLM지원 XOllama · LM Studio 등 loopback 허용

여기에 OD가 더 흥미로워지는 결정적 포인트가 있다 — "우리는 에이전트를 만들지 않는다". 이미 당신 노트북에 살고 있는 가장 강력한 에이전트들(Claude Code · Codex CLI · Gemini CLI · Cursor Agent · Pi · DeepSeek 등)을 PATH에서 스캔해 그중 하나를 디자인 엔진으로 채택한다. 모델 피커에서 원클릭 교체. 24개 CLI 어댑터가 stdio로 각 CLI와 통신하며, ACP(Agent Client Protocol) / RPC / claude-stream-json / plain 등 다양한 프로토콜을 표준화한다.

비유

OD는 "OBS 같은 디자인 플랫폼"이다. OBS는 카메라, 마이크, 게임 화면을 직접 만들지 않는다. 이미 당신 컴퓨터에 연결된 장치들을 "씬"으로 묶어 한 화면에 합쳐 보여준다. OD도 똑같다. Claude Code · Codex · Gemini CLI는 이미 사람들이 매일 쓰는 도구다. OD는 그것들을 "디자인 씬"으로 묶어 아 그래, 이번엔 Cursor Agent로 매거진 덱 만들어볼까 하면 한 번 클릭해서 디자인 엔진을 갈아끼울 수 있게 해준다.

3기술 스택 전체 지도

웹 · 데몬 · 에이전트 전송 · 저장 · 미리보기 · 익스포트 — 6개 레이어로 갈라본다.

3-1. 프론트엔드

레이어기술역할
UI 프레임워크Next.js 16 App Router채팅, 파일 워크스페이스, iframe 프리뷰, 설정, 임포트 모두 한 페이지에서 처리
UI 라이브러리React 18 + TypeScript표준 React. shadcn/ui 패턴 같은 정형화된 컴포넌트 사용
배포Vercel 배포 가능웹 레이어만 Vercel에 올리고, 데몬은 로컬에 남길 수 있다 (하이브리드)
아티팩트 파서apps/web/src/artifacts/parser.ts에이전트가 emit한 <artifact> 태그를 파싱해 sandboxed iframe에 srcdoc으로 주입
스트리밍SSE (Server-Sent Events)데몬에서 오는 delta / end / error 청크를 채팅 UI에 라이브로 흘려보냄

3-2. 데몬 (로컬 백엔드)

레이어기술역할
런타임Node 24최신 Node. --experimental-strip-types 등 신기능 활용
웹 서버Express + SSE 스트리밍/api/agents · /api/skills · /api/design-systems · /api/projects · /api/chat (SSE)
DBbetter-sqlite3.od/app.sqlite 파일 하나. projects · conversations · messages · tabs · templates 테이블
BYOK 프록시/api/proxy/{anthropic,openai,azure,google}/streamSSE로 다양한 LLM 프로바이더 통일. SSRF blocking: 내부 IP / link-local / CGNAT 차단
임포트POST /api/import/claude-designClaude Design ZIP을 드롭하면 프로젝트로 변환 — Anthropic이 끊긴 자리에서 이어서 작업
저장 위치.od/projects/<id>/프로젝트마다 격리된 디스크 폴더. 에이전트는 여기 cwd로 spawn됨
크리덴셜.od/media-config.jsonAPI 키 분리. OD_MEDIA_CONFIG_DIR로 데이터 디렉토리 밖에 둘 수도 있음

3-3. 에이전트 전송 (24개 CLI 어댑터)

프로토콜지원 에이전트
claude-stream-jsonClaude Code (Anthropic 공식 CLI)
qoder-stream-jsonQoder CLI
copilot-stream-jsonGitHub Copilot CLI
json-event-streamCodex, Gemini CLI, OpenCode, Cursor Agent, Kimi (CLI별 파서)
acp-json-rpcDevin · Hermes · Kiro · Kilo · Mistral Vibe (Agent Client Protocol)
pi-rpcPi (badlogic/pi-mono, stdio JSON-RPC)
plainQwen Code, DeepSeek TUI (구조화 안 된 출력)
용어
ACP (Agent Client Protocol)
에이전트와 호스트 앱 간 통신 표준 프로토콜. JSON-RPC over stdio 기반. Anthropic의 MCP가 "에이전트가 도구를 부르는 방향"이라면, ACP는 "호스트가 에이전트를 부리는 방향"이다. Hermes · Kiro · Kilo · Mistral Vibe · Devin이 ACP를 채택. OD의 데몬은 이 6개 에이전트에 똑같은 인터페이스로 말할 수 있다.

3-4. 미리보기 · 익스포트 · 라이프사이클

4아키텍처 심화 — 사용자 → 데몬 → CLI까지

"내가 채팅창에 한 줄 던졌을 때 노트북에서 무슨 일이 벌어지나"의 전체 흐름.

┌────────────────────── 브라우저 (Next.js 16) ──────────────────────┐
│  채팅 · 파일 워크스페이스 · iframe 미리보기 · 설정 · 임포트         │
└──────────────┬───────────────────────────────────┬────────────────┘
               │ /api/* (개발 시 rewrite)            │
               ▼                                    ▼
   ┌──────────────────────────────────┐   /api/proxy/{provider}/stream (SSE)
   │  로컬 데몬 (Express + SQLite)     │   ─→ 모든 OpenAI 호환 엔드포인트
   │                                  │       (BYOK + SSRF blocking)
   │  /api/agents       /api/skills   │
   │  /api/design-systems  /api/projects/…
   │  /api/chat (SSE)   /api/proxy/{provider}/stream (SSE)
   │  /api/templates    /api/import/claude-design
   │  /api/artifacts/save  /api/artifacts/lint
   │  /api/upload       /api/projects/:id/files…
   │  /artifacts (static)  /frames (static)
   │
   │  옵션: sidecar IPC at /tmp/open-design/ipc/<ns>/<app>.sock
   │  (STATUS · EVAL · SCREENSHOT · CONSOLE · CLICK · SHUTDOWN)
   └─────────┬────────────────────────┘
             │ spawn(cli, [...], { cwd: .od/projects/<id> })
             ▼
   ┌──────────────────────────────────────────────────────────────────┐
   │  claude · codex · devin (ACP) · gemini · opencode · cursor-agent │
   │  qwen · qoder · copilot · hermes (ACP) · kimi (json-event-stream) · pi (RPC)   │
   │  · kiro (ACP) · kilo (ACP) · vibe (ACP) · deepseek               │
   │  SKILL.md + DESIGN.md를 Read → 아티팩트를 디스크에 Write          │
   └──────────────────────────────────────────────────────────────────┘

핵심은 "데몬이 에이전트의 cwd를 프로젝트 폴더로 고정한다"는 점이다. 에이전트는 spawn될 때 cwd: .od/projects/<id>/를 받는다. 그 결과:

즉, 에이전트는 "디스크가 있다고 가정한 시니어 디자이너"로 작동한다. 가짜 환경에서 흉내내는 게 아니라, 진짜 파일시스템을 다룬다. 결과물은 자연스럽게 폴더에 쌓이고, 워크스페이스 UI에 "다운로드 칩"으로 뜬다. 내일 다시 열어도 todo 카드와 열려있던 파일들이 그대로다 (SQLite가 다 기억하고 있다).

핵심 설계 패턴 — "Prompt Stack as Product"

OD의 6번째 핵심 아이디어: "프롬프트 스택 자체가 제품"이다. 채팅창에 한 줄 입력해도, 데몬이 LLM에 보내는 진짜 프롬프트는 이렇게 조립된다:

DISCOVERY directives  (turn-1 폼, turn-2 브랜드 브랜치, TodoWrite, 5차원 비평)
  + identity charter   (OFFICIAL_DESIGNER_PROMPT, anti-AI-slop, junior-pass)
  + active DESIGN.md   (142+ 시스템 중 선택 — Linear / Stripe / Vercel / Notion …)
  + active SKILL.md    (155+ 스킬 중 선택 — saas-landing / dashboard / mobile-app …)
  + project metadata   (kind, fidelity, speakerNotes, animations, inspiration ids)
  + skill side files   (auto-injected pre-flight: read assets/template.html + references/*.md)
  + (deck 모드) DECK_FRAMEWORK_DIRECTIVE   (nav / counter / scroll / print)

이 스택의 모든 레이어가 파일이다. apps/daemon/src/prompts/system.ts, apps/daemon/src/prompts/discovery.ts, apps/daemon/src/prompts/directions.ts를 열어서 직접 수정할 수 있다. 즉 "디자인 결과물의 품질"이 모델이 아니라 프롬프트 스택의 디자인에서 나온다는 게 OD의 베팅이다.

왜 좋은가
"5단계 사전 비행"이 AI-슬롭을 차단한다

사용자가 한 줄 던지면 OD는 즉시 코드를 안 쓴다. 대신 <question-form id="discovery">를 띄워 surface · audience · tone · brand context · scale · constraints 6개 라디오를 묻는다. 30초의 라디오가 30분의 잘못된 결과물보다 싸다. RULE 1: 매 fresh 디자인 브리프는 question-form으로 시작한다가 시스템 프롬프트에 강제되어 있다. 이게 huashu-design의 "Junior-Designer 모드"를 옮긴 것이다.

5디렉토리 구조 해부

monorepo 구조 — pnpm workspace 기반.

open-design/
├── apps/                    # 메인 애플리케이션
│   ├── daemon/              # 로컬 백엔드 (Express + SQLite + Skill 파서)
│   │   └── src/prompts/     # 시스템 프롬프트 — system.ts / discovery.ts / directions.ts
│   ├── web/                 # Next.js 16 프론트엔드
│   │   └── src/artifacts/   # <artifact> 파서, sandboxed iframe 렌더링
│   └── desktop/             # Electron 데스크탑 (선택)
│
├── packages/                # 공유 패키지 (pnpm workspace)
│
├── skills/                  # 155+ SKILL.md 폴더 (Claude Code 규약 + od:확장)
│   ├── web-prototype/       # 단일 페이지 HTML 랜딩
│   ├── saas-landing/        # 마케팅 레이아웃
│   ├── dashboard/           # 어드민/분석 + 사이드바
│   ├── mobile-app/          # iPhone 15 Pro 프레임 앱 화면
│   ├── deck-guizang-editorial/  # ★ op7418/guizang-ppt-skill verbatim 번들
│   ├── critique/            # 5차원 자기 비평 (Philosophy/Hierarchy/Detail/Function/Innovation)
│   ├── invoice/             # 단일 페이지 인보이스
│   ├── eng-runbook/         # 인시던트 런북
│   └── ... (총 155개+)
│
├── design-systems/          # 142+ 디자인 시스템 (하위 디렉토리 구조)
│   ├── linear/ (DESIGN.md · USAGE.md · design-tokens.json …)
│   └── (VoltAgent/awesome-design-md 70개 + bergside/awesome-design-skills 57개)
│
├── design-templates/        # 디자인 템플릿
│
├── prompt-templates/        # 105개 ready-to-replicate 미디어 프롬프트
│   ├── image/               # 47개 — 이미지 생성 프롬프트
│   └── video/               # 58개 — 동영상 프롬프트
│
├── assets/
│   └── frames/              # 디바이스 프레임 — iPhone 15 Pro, Pixel, iPad Pro, MacBook
│
├── specs/                   # 스펙 문서
├── story/                   # Storybook 컴포넌트 카탈로그
├── e2e/                     # End-to-End 테스트
├── craft/                   # 빌드/패키징 헬퍼
├── deploy/                  # 배포 설정
├── nix/                     # Nix flake (재현 가능 빌드)
├── scripts/                 # 빌드 스크립트
├── tools/                   # 개발 툴 (pnpm tools-dev)
├── docs/                    # 문서 (skills-protocol.md, screenshots/)
│
├── AGENTS.md                # 에이전트용 컨텍스트 (Claude Code 규약)
├── CLAUDE.md                # Claude Code 추가 컨텍스트
├── QUICKSTART.{lang}.md     # 13개 언어 빠른 시작 (한국어 포함)
├── README.{lang}.md         # 14개 언어 README (한국어 포함)
├── flake.nix / flake.lock   # Nix 빌드
├── pnpm-workspace.yaml      # monorepo 정의
└── vercel.json              # Vercel 배포
용어
SKILL.md 규약 + od: 확장 frontmatter
각 스킬은 폴더 하나에 SKILL.md(YAML frontmatter + Markdown 본문) + assets/(템플릿) + references/(참고 자료)로 구성. Claude Code 표준 외에 OD는 od: 확장 frontmatter를 추가: mode(prototype/deck), platform(desktop/mobile), scenario(design/marketing/operation/engineering/product/finance/hr/sale/personal), preview.type, design_system.requires, default_for, featured, fidelity, speaker_notes, animations, example_prompt. 데몬의 apps/daemon/src/skills.ts가 이 frontmatter를 파싱해서 UI 피커를 채운다.

6학습 포인트 — 기술별 무엇을 배울 수 있나

"OD 코드를 읽으며 배울 수 있는 핵심 패턴" 5가지를 추린다.

6-1. Next.js 16 + Express 데몬 하이브리드

OD는 "풀스택은 Next.js로 다 해결한다"는 통념을 깬다. 프론트엔드는 Next.js 16, 백엔드는 별도 Express 데몬. 왜? 로컬 파일시스템 접근 + child_process.spawn + 장시간 SSE 스트림이 필요한데, Vercel 서버리스에서 이걸 다 하기 힘들기 때문이다. 그래서 OD는 "Vercel에 배포할 수 있는 웹 레이어"와 "노트북에서만 도는 데몬"을 분리했다. 학습 포인트: 어떤 코드는 서버리스에 안 맞는다 — 그땐 분리해라. Tauri / Electron / 로컬 Express 데몬 중 선택할 수 있다.

실습: 자신의 사이드 프로젝트에서 "서버리스에 안 맞는 부분"을 찾아 별도 데몬으로 떼어내보자. 예: 채팅 SSE, 파일 변환, 외부 CLI 호출.

6-2. 24개 CLI를 1개 인터페이스로 — Adapter 패턴

OD의 진짜 영리한 부분이다. 24개 CLI는 각자 출력 포맷이 다르다: Claude Code는 claude-stream-json, ACP 그룹(Devin/Hermes/Kiro/Kilo)은 acp-json-rpc, Pi는 pi-rpc, Qwen은 plain. OD는 각 CLI당 어댑터 하나씩을 만들고, 모두 같은 delta/end/error 이벤트로 정규화한다. 결과: UI 코드는 "어떤 에이전트인지 몰라도 똑같이 렌더링"한다. 학습 포인트: 다양한 외부 도구를 다룰 때는 항상 어댑터 + 공통 이벤트 스키마 패턴을 떠올려라.

6-3. SSE + SSRF 방어가 들어간 BYOK 프록시

BYOK(Bring Your Own Key)를 구현할 때 가장 흔한 보안 실수가 SSRF(Server-Side Request Forgery)다. 사용자가 baseUrlhttp://169.254.169.254(AWS metadata) 같은 걸 입력하면? OD는 loopback은 허용(Ollama, LM Studio용)하되, link-local · CGNAT · multicast · reserved · redirect targets를 데몬 엣지에서 거부한다. 또 /api/proxy/{anthropic,openai,azure,google}/stream으로 프로바이더별 SSE를 정규화. 학습 포인트: 사용자가 URL을 입력할 수 있는 곳은 모두 SSRF allow-list가 필요하다.

6-4. Sandboxed iframe + srcdoc — 안전한 LLM 출력 렌더링

LLM이 만든 HTML을 그냥 페이지에 innerHTML로 박으면? XSS의 천국이다. OD는 <iframe sandbox srcdoc="...">로 렌더한다 — 같은 origin도 차단, 부모 페이지의 쿠키/localStorage도 보이지 않게. iframe 안에서 자바스크립트가 뭘 하든 격리된다. 학습 포인트: AI가 만든 HTML/JS는 신뢰되지 않는 코드로 다뤄라. sandbox 속성 조합(allow-scripts 만, allow-same-origin 빼고)을 외워둬라.

6-5. SQLite 영속성 + cwd 스위칭으로 "내일 다시 열어도 그대로"

OD의 사용자 경험에서 가장 잔잔하게 좋은 부분이다. .od/app.sqlite 하나에 projects · conversations · messages · tabs · templates를 다 저장. 내일 노트북을 다시 열어도 채팅 히스토리, 열린 탭, todo 상태가 정확히 어제 그대로다. better-sqlite3는 동기 API라서 코드가 깔끔하고, 단일 파일이라 백업도 쉽다. 학습 포인트: 작은 데스크탑/CLI 도구에는 PostgreSQL 같은 큰 DB가 필요 없다. better-sqlite3 + Drizzle ORM 조합이면 충분하다.

7핵심 설계 패턴 — "5단계 디자인 사이클"

OD 한 번의 디자인 산출물을 만들 때 내부에서 돌아가는 5단계 파이프라인.

사용자 입력
   ↓
[1] DISCOVERY: question-form 폼이 뜬다
    surface · audience · tone · brand · scale · constraints
   ↓
[2] DIRECTION: 브랜드 없으면 5 visual school 라디오
    Editorial Monocle | Modern Minimal | Warm Soft | Tech Utility | Brutalist
   ↓
[3] PLAN: TodoWrite로 라이브 todo 카드 스트림
    pending → in_progress → completed (사용자가 중간에 redirect 가능)
   ↓
[4] EXECUTE: 에이전트가 cwd=프로젝트폴더에서
    Read SKILL.md + DESIGN.md → Write artifact.html
   ↓
[5] CRITIQUE: 5차원 자기 비평 (critique 스킬)
    Philosophy · Hierarchy · Detail · Function · Innovation
   ↓
sandboxed iframe에 srcdoc으로 렌더 → 다운로드 칩
함정
에이전트가 "freestyle"하지 않게 막는 게 핵심

LLM에게 "예쁜 랜딩 페이지 만들어줘"라고 던지면 90%는 generic한 AI-슬롭이 나온다. OD는 5단계 사이클 자체로 freestyle을 막는다. 질문 폼 안 띄우면 에이전트가 즉시 코드 쓸 수 없음 (system prompt에 강제). DESIGN.md 안 고르면 색상/타이포 못 결정 (deterministic palette). SKILL.md의 assets/template.html이 자동 주입돼서 시작점이 고정. critique 스킬이 5차원 점수를 강제. 결과물의 품질은 모델보다 이 파이프라인이 결정한다.

8하드웨어 / 시스템 요구사항

"내 노트북에서 굴릴 수 있나?" 체크리스트.

요구사항상세
OSmacOS (Apple Silicon) · Windows (x64) · Linux. Windows는 ENAMETOOLONG fallback(stdin/prompt-file)이 모든 어댑터에 들어있음
Node.jsNode 24 이상 (.node-version 파일 참조)
패키지 매니저pnpm (workspace 모노레포)
코딩 에이전트 CLI24개 중 하나 이상이 PATH에 있어야 함. 없으면 BYOK API 모드로 폴백 가능
API 키BYOK: Anthropic / OpenAI / Azure OpenAI / Google Gemini 중 하나 (선택)
로컬 LLMOllama, LM Studio 등 loopback 프로바이더 허용
저장공간.od/projects/는 프로젝트당 ~10-100MB. SQLite는 작음
RAM에이전트 + Node 24 + Next.js dev = 최소 8GB 권장, 16GB 쾌적
대안빌드 안 하고 싶다면 Docker 또는 open-design.ai 데스크탑 앱 다운로드

설치 방법 3가지

# 방법 1: 데스크탑 앱 다운로드 (Node, pnpm, 클론 모두 불필요)
# https://open-design.ai/ → 다운로드
# 또는 GitHub Releases에서 .dmg / .exe / .AppImage

# 방법 2: Docker (Node 없이)
docker run -p 7456:7456 -v $(pwd)/.od:/app/.od vanjayak/open-design:latest

# 방법 3: 소스에서 빌드 (개발/커스텀용)
git clone https://github.com/nexu-io/open-design
cd open-design
pnpm install
pnpm tools-dev start    # → 데몬 + 웹 + (선택)데스크탑 모두 부팅
# http://localhost:3000 열기

9직접 해볼 수 있는 실습 과제

난이도 ★~★★★. 각 과제는 OD의 한 가지 핵심을 깊이 파고드는 형태.

난이도 ★

1. 첫 산출물 — SaaS 랜딩 페이지 30초 만들기

OD를 설치하고 (Docker도 OK), saas-landing 스킬 + linear.md 디자인 시스템을 골라 다음 브리프를 던져본다: "운동 트래커 SaaS 'PulseFit'의 메인 랜딩페이지. 타겟은 25-35 직장인. 톤은 미니멀하고 데이터 중심." question-form이 뜨면 라디오 선택하고, 5분 안에 sandboxed iframe에서 결과물을 확인한다. HTML로 다운로드해서 브라우저에 띄워본다.

학습 목표: OD의 5단계 사이클을 한 번 직접 체험. question-form이 어떻게 결과물 퀄리티를 끌어올리는지 체감.
난이도 ★★

2. 나만의 SKILL.md 만들기 — "한국 스타트업 IR 덱"

skills/ 폴더에 kr-ir-deck 폴더를 만들고 SKILL.md + assets/template.html을 작성한다. frontmatter에 od: { mode: deck, scenario: finance, fidelity: high }를 넣고, 한국 스타트업 IR에서 흔히 보는 포맷(문제 → 솔루션 → 시장 → 비즈니스 모델 → 트랙션 → 팀 → ASK)을 template.html에 ASCII로 표시한다. 데몬 재시작하면 피커에 뜬다.

학습 목표: Skill = 파일 = 즉시 확장 가능. Claude Code의 SKILL.md 규약을 익히고 OD의 od: 확장도 같이 익힌다.
난이도 ★★

3. 나만의 DESIGN.md 만들기 — "토스 스타일"

design-systems/toss.md를 9-섹션 schema (color · typography · spacing · layout · components · motion · voice · brand · anti-patterns)로 작성한다. 토스의 컬러 시스템(#3182F6 등)과 spoqa 한 산스 등 폰트 스택을 정리. 디자인 시스템 드롭다운에서 선택 가능하게 만들고, 같은 브리프로 Linear / Toss로 번갈아 산출물을 뽑아 차이를 비교한다.

학습 목표: Design Token이 마크다운 한 파일에 들어간다는 OD의 베팅을 직접 검증. JSON 테마보다 휴먼-리더블한 마크다운이 LLM에게 더 잘 먹힌다는 가설을 확인.
난이도 ★★★

4. 25번째 CLI 어댑터 추가하기

OD는 24개 CLI를 지원한다. 새로운 한국발 CLI나 사내 CLI를 통합하고 싶다면? apps/daemon/src/adapters/에 새 파일을 만들고, 그 CLI의 출력 포맷을 delta/end/error SSE 이벤트로 변환하는 변환기를 작성한다. spawn(cli, [...], { cwd }) 호출과 stdout 파싱 로직, Windows에서 ENAMETOOLONG 발생 시 stdin/prompt-file fallback도 포함.

학습 목표: Node.js의 child_process 깊이 이해. stdio 스트림 파싱, 줄단위 처리, ACP/JSON-RPC 프로토콜 구현 경험.
난이도 ★★★

5. Claude Design ZIP 임포트 검증 + 확장

OD의 POST /api/import/claude-design 엔드포인트를 분석한다. ZIP 파일 구조 파싱, 프로젝트 메타데이터 추출, 산출물 파일을 .od/projects/<id>/로 옮기는 흐름을 따라간다. 비슷한 방식으로 Figma export, Webflow export, v0.dev export를 임포트하는 새 엔드포인트 /api/import/figma를 직접 구현해본다.

학습 목표: SaaS 락인을 OSS로 푸는 "임포트 어댑터" 패턴 습득. 마이그레이션 도구의 가치는 한 번 만들면 끝나지 않는다 — 유저는 여러 도구를 오간다.

10관련 기술 심화 학습 로드맵

"OD를 완전히 이해하고 비슷한 거 만들 수 있는 수준까지" 8주 코스.

1주차 — Next.js 16 App Router + SSE 스트리밍

2주차 — Express + better-sqlite3 데몬

3주차 — child_process.spawn으로 CLI 통합

4주차 — Sandboxed iframe + srcdoc 렌더링

5주차 — SSRF 방어 + BYOK 프록시

6주차 — 시스템 프롬프트 엔지니어링

7주차 — Skill 패턴 (Claude Code 규약 + 확장)

8주차 — Electron + sidecar IPC + E2E 자동화

11핵심 키워드 사전

OD를 읽다가 막힐 만한 용어들.

BYOK (Bring Your Own Key)
사용자가 자기 API 키를 가져와서 쓰는 방식. SaaS가 결제를 강제하지 않고, 사용자가 직접 Anthropic/OpenAI/Azure/Google과 계약한 키로 LLM을 호출. 비용은 사용자가 직접 부담하지만, 락인이 풀린다. OD는 모든 레이어가 BYOK.
SSE (Server-Sent Events)
서버가 클라이언트로 단방향 스트리밍하는 HTTP 기반 프로토콜. WebSocket보다 가볍고, HTTP 헤더만 추가하면 됨. Content-Type: text/event-stream. LLM의 token-by-token 스트리밍 응답에 표준처럼 쓰임.
SSRF (Server-Side Request Forgery)
서버가 사용자가 시키는 대로 외부 URL을 호출할 때, 공격자가 내부 네트워크의 IP(예: AWS 메타데이터 서버 169.254.169.254)를 입력해 정보 유출을 일으키는 공격. 방어 방법: 사용자 입력 URL의 호스트를 allow-list로 검증.
ACP (Agent Client Protocol)
JSON-RPC over stdio 기반의 에이전트-호스트 통신 표준. 호스트(예: OD 데몬)가 에이전트(예: Hermes, Kimi, Kiro, Kilo, Mistral Vibe, Devin)를 부리는 방향. MCP가 "에이전트가 도구를 부르는 방향"인 것과 대칭.
srcdoc (iframe attribute)
<iframe srcdoc="<html>...</html>">처럼 HTML 문자열을 직접 iframe 안에 넣을 수 있는 속성. URL 없이 인라인으로 렌더. sandbox 속성과 조합하면 격리된 환경에서 안전하게 LLM 출력을 보여줄 수 있다.
cwd (current working directory)
프로세스가 파일 시스템 작업의 기준으로 삼는 디렉토리. spawn(cli, [...], { cwd: ".od/projects/123/" })처럼 자식 프로세스의 cwd를 명시하면, 그 CLI 안에서 모든 Read/Write는 그 폴더 기준이 됨. OD가 에이전트를 프로젝트 폴더에 "가두는" 핵심 메커니즘.
DESIGN.md (9-section schema)
VoltAgent/awesome-design-md가 정한 디자인 시스템 마크다운 표준. color · typography · spacing · layout · components · motion · voice · brand · anti-patterns 9개 섹션. JSON 토큰 파일보다 휴먼-리더블하고 LLM이 이해하기 쉬움. OD의 142+ 디자인 시스템이 모두 이 스키마.
5-Dimensional Critique
huashu-design에서 가져온 자기 비평 프레임워크. 산출물을 Philosophy(철학) · Hierarchy(위계) · Detail(디테일) · Function(기능) · Innovation(혁신) 5차원으로 점수 매기는 critique 스킬. 에이전트가 자기 결과물을 비평하게 만들어 품질을 끌어올림.
huashu-design (画术-design)
alchaincyf가 만든 중국발 오픈소스 디자인 철학 가이드. OD의 영혼이 여기서 옴 — Junior-Designer workflow, 5-step brand-asset protocol, anti-AI-slop checklist, 5-dimensional critique 모두 huashu-design에서 distill됨.
guizang-ppt-skill
op7418이 만든 매거진 스타일 PPT 스킬. OD는 이 스킬을 skills/deck-guizang-editorial/verbatim(원본 그대로) 번들. 원본 LICENSE 보존, 원작자 어트리뷰션 보존. OSS가 OSS를 빌리는 모범 사례.

12참고 링크

더 깊이 파고들고 싶다면.

바로 시작하기

오늘 안에 OD로 자기 SaaS 랜딩 페이지 1개 만들기

  1. 설치: open-design.ai에서 데스크탑 앱 다운로드, 또는 docker run -p 7456:7456 vanjayak/open-design:latest
  2. 모델 연결: 이미 Claude Code/Cursor가 깔려있다면 자동 감지됨. 없으면 BYOK 탭에서 Anthropic/OpenAI 키 입력
  3. 스킬 선택: saas-landing 선택, linear.md 또는 vercel.md 디자인 시스템 매칭
  4. 브리프: "내 사이드 프로젝트 ___의 랜딩 페이지. 타겟 ___, 톤 ___" 한 줄 던지기
  5. question-form 응답: 30초간 라디오 6개 선택. 30분의 잘못된 결과보다 싸다
  6. 다운로드: iframe에 결과물 뜨면 HTML로 export. 자기 자신 도메인에 호스팅
TrendShift 2026-05-23 일자 16위 · nexu-io/open-design · Apache-2.0 라이선스 · Next.js 16 + Node 24 + SQLite · 24개 CLI 어댑터 · 155+ Skills · 142+ Design Systems · 105개 미디어 프롬프트 · Vercel 배포 가능 · Electron 데스크탑 옵션