Cloudflare VibeSDK는 사용자가 자연어로 원하는 앱을 설명하면 AI 에이전트가 계획·구현·미리보기·배포까지 수행하게 하는 agentic 플랫폼의 레퍼런스 구현이다. 단순한 앱 생성기가 아니라, 이런 플랫폼 자체를 Cloudflare 스택 위에 구축·커스터마이즈하려는 팀을 위한 오픈소스 저장소다. 2026-08-14 재캡처 기준으로 README가 전면 개편되어(agentic 포지셔닝, Cloudflare Think·Artifacts·Durable Object Facet 아키텍처) 이 노트도 함께 갱신했다.
한눈에 보기
- 공식 성격: Cloudflare가 공개한 MIT 라이선스의 오픈소스 agentic full-stack 앱 빌드·배포 플랫폼(2026-08-14 README 개편으로 “full-stack AI webapp generator”에서 포지셔닝 변경).
- 사용 흐름: 사용자 프롬프트 → 에이전트가 이해 질문 → 파일 생성 → Artifacts 복원점 저장 → Dynamic Worker 미리보기 → 브라우저 콘솔 검증·수리 → 배포.
- 운영 표면: 자연어 채팅, 실시간 WebSocket 상태 스트리밍, 파일 탐색·편집, 미리보기, GitHub export, 생성 앱 배포를 하나의 웹 UI와 SDK로 제공한다.
- 핵심 관점: “AI가 앱을 만들어준다”보다, 기업·SaaS 사업자가 자기 도메인·컴포넌트·모델·데이터 경계를 통제하는 자체 AI 개발 플랫폼을 만들 수 있다는 점이 핵심이다.
공식 확인 — 저장소가 제공하는 구조
Cloudflare 스택으로 구성된 플랫폼
2026-08-14 커밋(b20cf32a) 기준 README·wrangler.jsonc·구현 파일을 종합하면 기본 구성은 다음과 같다.
| 계층 | 구성 |
|---|---|
| 프론트엔드 | React + Vite + TypeScript 계열 UI |
| 에이전트 루프 | ThinkAgent — Cloudflare Think 기반 model-and-tool 루프 (Durable Object) |
| 작업공간 | SpaceDO — 프로젝트별 격리된 파일·작업공간 (Durable Object) |
| 버전 히스토리 | Cloudflare Artifacts — 커밋·브랜치·복원점(restore point) |
| 생성 앱 미리보기 | @cloudflare/worker-bundler 번들 → Worker Loader 바인딩 → Dynamic Worker |
| 생성 앱 데이터 | Durable Object Facet + SQLite (앱별 격리, 조회·리셋 가능) |
| 모델 라우팅 | AI Gateway — provider 라우팅·observability·캐싱 |
| 플랫폼 데이터 | D1(SQLite) + Drizzle ORM (플랫폼 자체 데이터) |
| 템플릿·에셋 | R2, KV |
| 샌드박스 | UserAppSandboxService(Sandbox DO) — 원격 샌드박스 클라이언트 유지 |
| 앱 배포 | Workers for Platforms dispatch namespace |
wrangler.jsonc의 Durable Object binding(CodeGeneratorAgent, UserAppSandboxService, DORateLimitStore, UserSecretsStore, ThinkAgent, SpaceDO)은 이전 캡처와 동일하게 유지되며, 새로 artifacts 바인딩(ARTIFACTS, vibesdk-production 네임스페이스)이 추가됐다. 특히 git 저장소는 이전의 D1 테이블(refs, git_internal)에서 앱별 Cloudflare Artifacts 저장소로 전환됐다 — durable-object.ts의 ArtifactsBackend가 실제 git 객체를 보관하고, D1 deployments 테이블은 메타데이터용으로 남는다.
에이전트 워크플로우
README는 생성 흐름을 이전의 phase-wise 파이프라인이 아닌 7단계 에이전트 루프로 제시한다.
- Understand: 요청을 읽고 중요한 정보가 빠졌으면 구조화된 질문을 한다.
- Build: SpaceDO 작업공간에서 파일을 만들고 수정한다.
- Save: Cloudflare Artifacts에 복원점을 기록한다.
- Deploy: 현재 브랜치를 커밋·번들해 Dynamic Worker 미리보기로 로드한다.
- Verify: live preview와 브라우저 콘솔 출력을 검사한다.
- Repair: 빌드·런타임 오류를 고치고 배포-검증 루프를 반복한다.
- Stream: 출력·도구 호출·파일·미리보기 상태를 UI에 지속 스트리밍한다.
Think가 대화 히스토리·스트리밍·스킬·반복 루프를 관리하고, 명시적 도구로 SpaceDO 읽기/쓰기, 복원점 생성, 미리보기 배포, 브라우저 로그 검사, 후속 질문을 제공한다. 작업공간 bash 접근은 비활성화되어 있다(이전 캡처에서 “명령 실행” 도구가 있던 것과 달라짐). AgenticProjectBuilder.ts의 tool surface는 이 설명과 방향이 일치하며, 실제 모델 호출이 전 단계를 성공시키는지는 검증하지 않았다.
Phasic과 Agentic SDK
공식 @cf-vibesdk/sdk는 같은 API 표면 위에 세 가지 클라이언트를 둔다. AgenticClient가 기본(Think 기반 model-and-tool 루프)으로 승격됐고, PhasicClient는 “legacy phase-based generation”으로 명시된다.
VibeClient:behaviorType을 호출 시 지정한다.PhasicClient:behaviorType: 'phasic'— 레거시 phase 기반 생성.AgenticClient:behaviorType: 'agentic'— Think 기반 자율 루프(권장).
SDK는 client.build(prompt, options?)와 client.connect(agentId)를 제공하며, 인증은 apiKey(짧은 수명 JWT로 자동 교환, 권장)와 token(기보유 JWT) 두 방식이다. 지원 런타임은 Cloudflare Workers·브라우저·Bun·Node.js 22+(기존 “Node.js 18+” 표기보다 엄격해짐 — 2026-08-09 커밋에서 engines로 강제).
Space와 생성 앱 배포
SpaceDO는 프로젝트별 격리된 파일시스템과 Git 작업공간을 제공하고, 커밋·배포는 앱별 Cloudflare Artifacts 저장소에 미러링되어 영속 히스토리의 원천이 된다. 배포 시 deploy-engine.ts는 브랜치 최신 커밋의 파일을 읽어 @cloudflare/worker-bundler의 createApp/createWorker로 번들하고, 정적 에셋은 SpaceDO가 서빙하며 백엔드 요청·WebSocket은 생성된 App Durable Object Facet으로 포워딩된다. child config의 durable_objects.bindings는 거부된다(플랫폼이 앱을 단일 Durable Object로 실행).
롤백은 Artifacts에서 선택한 커밋 트리를 복원 → 현재 브랜치에 새 커밋 생성 → 재배포하는 방식이라 기존 히스토리를 덮어쓰지 않는다. 미리보기 URL은 서명된 branch-scoped 접근을 사용하고, 미리보기 응답에서는 보안 헤더가 벗겨지며(preview-headers.ts) asset manifest는 요청마다 재빌드하는 낭비(CWE-770 증폭)를 막기 위해 캐시된다.
이 구조는 2026-08-06-hada-32185-cloudflare-os에서 정리한 Cloudflare의 Dynamic Worker + Durable Object Facet + 사용자별 실행 앱 방향과 닮았고, 특히 Artifacts·Facet 전환으로 그 방향에 더 가까워졌다. 다만 VibeSDK는 “자체 바이브 코딩 플랫폼”에 초점을 둔 별도 저장소다.
구현에서 확인된 보안·운영 경계
README의 “enterprise-grade security” 표현을 독립 감사 결과로 취급하면 안 된다. 고정 커밋의 소스에서 확인한 구체적 방어선은 다음과 같다(보안 방어선 코드는 이번 캡처에서 대부분 hash 동일).
- AI Gateway proxy는 요청 본문 5 MiB, 메시지 200개, inline image 4 MiB, 출력 토큰 16,384개로 제한한다.
- OpenAI-compatible endpoint path만 allowlist하고, app-proxy JWT의 issuer·audience·token type·
appId·userId를 검증한다. - 토큰의 사용자와 앱 소유자가 일치하는지 D1에서 재확인하고, 사용자별 LLM rate limit과 upstream 120초 timeout을 적용한다.
- upstream 응답 헤더는 content/cache/OpenAI 식별자 등 제한된 집합만 전달해 내부 인증·메타데이터 누출을 줄인다.
- OAuth 토큰 암호화 유틸리티는 per-record salt, AES-GCM-256, PBKDF2-SHA-256 100,000회 파생을 사용하고, 복호화 후
userId와 만료 시각을 확인한다. - remote sandbox client는 bearer token과 session ID를 보내고, Zod schema로 응답을 검증한다.
- 2026-08-14 커밋들: anonymous rate limit을 IP 키 기준으로 전환(기존 identity bypass 수정),
_blank타깃에noopener,noreferrer(reverse tabnabbing), sandbox proxy에서 브라우저 credential 제거·git 로그 redact. - README가 명시하는 격리: 앱별 ThinkAgent DO·SpaceDO·Artifacts 저장소·App Facet 독립, 생성 앱 데이터는 Facet의 SQLite로 격리, 워크스페이스 bash 비활성화.
이 항목들은 “소스에 방어 로직이 존재한다”는 수준의 확인이다. 샌드박스 탈출, 권한 상승, 데이터 유출, rate-limit 우회에 대한 침투 테스트나 독립 보안 검토를 수행한 것은 아니다. 하네스·실행 경계 관점에서는 moc-ai-agents-harness와 함께 보는 편이 적절하다.
배포·설정 요구사항
Cloudflare 배포
- Workers Paid Plan과 Workers for Platforms 접근 권한(프로덕션 미리보기용).
- Cloudflare API token(리소스 생성 권한), 모델 provider 자격증명(AI Gateway에 저장된 키 사용 가능).
- 프로덕션 커스텀 도메인 — 와일드카드 DNS(proxied)와 subdomain 레이아웃에 따라 Advanced Certificate Manager.
- Feature toggles는
wrangler.jsonc에 커밋하지 않고 대시보드에서 관리한다(keep_vars: true로 배포 시 유지):ENABLE_ARTIFACTS,ENABLE_READ_REPLICAS,ENABLE_CLOUDFLARE_LIMITS,ENABLE_USER_ACCOUNT_DEPLOY,ALLOWED_EMAIL,USE_CLOUDFLARE_IMAGES,USE_TUNNEL_FOR_PREVIEW(미설정 시 off),ENABLE_EMAIL_AUTH(기본 on). - Node.js 22+ 요구사항이
engines로 강제됐지만 README의 로컬 개발 섹션은 여전히 “Node.js 18 or later”로 표기 — 문서 불일치.
로컬 개발
bun install → bun run setup → bun run dev(localhost:5173). setup 스크립트가 로컬·프로덕션 환경, Cloudflare 리소스, AI Gateway·모델 provider, 인증, DB migration을 구성한다. 선택 사항으로 로컬 브라우저 sidecar(bun run dev:browser)가 콘솔 로그 검사에 쓰인다.
커스터마이즈 지점
자체 플랫폼으로 사용할 때 중요한 교체 지점은 다음과 같다.
- 모델 provider·fallback·프롬프트:
worker/agents/inferutils/ - 생성 행동:
worker/agents/core/behaviors/,worker/agents/operations/ - 템플릿: R2와
vibesdk-templates저장소 - UI·프로젝트 타입:
src/,src/features/ - secret·OAuth·rate limit:
worker/services/,worker/utils/ - preview·Git·앱 배포·Artifacts 동기화:
space/
변화하는 실측 스냅샷
GitHub REST API를 2026-08-14 KST에 재조회한 값이다. 저장소는 빠르게 변하므로 현재 값으로 일반화하지 않는다.
- 5,318 stars · 1,248 forks (2026-08-08 캡처: 5,262 / 1,235)
- TypeScript · MIT License · archived 아님
- 기본 브랜치:
main, 캡처 커밋:b20cf32ab351f34c9ef2a6768223d82041f635d9(2026-08-14) - 이전 캡처 커밋:
f8077b368ce2326a983f3a9fcb285bbfd4f256f5(2026-08-05, AI Gateway proxy unbounded request hardening) - 사이 33개 커밋: README 전면 개편, Artifacts 통합·viewer, rate-limit·tabnabbing·credential 보안 수정, Node 22+ engines, deploy-button 구성 간소화
- README byte SHA-256(신규):
9a33c40385730e152744cd81619caf694ec6f6ed8d56137836cb157574adcac5
아직 검증하지 않은 것
이번 위키 인제스트에서는 GitHub API·커밋 고정 README·공식 setup/SDK/architecture 문서·선택 구현 파일을 읽었다. 다음은 실행하지 않았다.
bun install,bun run build,bun run typecheck, 전체 test- SDK integration test 및 실제 API key를 이용한 생성
- Cloudflare Artifacts 실제 저장·롤백, Dynamic Worker 미리보기 실동작
- AI Gateway provider login과 OAuth 연결
wrangler를 이용한 Cloudflare resource 생성·배포- Workers for Platforms 배포와 GitHub export 실동작
- 보안 침투 테스트·벤치마크 재현
따라서 이 노트의 “지원한다”는 표현은 README/문서/소스에 기능이 기술되어 있다는 뜻이며, 캡처 커밋에서 로컬 실행으로 성공을 재현했다는 뜻이 아니다.
관련 노트
- raw source:
github-cloudflare-vibesdk— 고정 커밋과 README byte hash를 보존한 원문 provenance pointer - moc-ai-coding — AI 코딩 도구·스킬·운영면 MOC
- moc-cloudflare-open-source — Cloudflare 최근 오픈소스 지도
- moc-ai-agents — AI 에이전트 전체 지도
- moc-ai-agents-harness — 에이전트 실행 경계·하네스·보안 설계
- 2026-08-06-hada-32185-cloudflare-os — Cloudflare OS의 capability·Gadget·Facet 방향
- 2026-04-15-neon-cloudflare-vibe-coding-stack — Cloudflare를 포함한 바이브 코딩 스택 메모
출처 및 검증
- 공식 저장소: cloudflare/vibesdk
- 현재 캡처 커밋: b20cf32a
- README pinned raw: README.md, byte SHA-256
9a33c40385730e152744cd81619caf694ec6f6ed8d56137836cb157574adcac5 - REST metadata: GitHub API
- 구현·문서 포인터와 다운로드 해시는 raw source:
github-cloudflare-vibesdk에 기록했다. - 저장 raw body SHA-256:
6a3da5a37536998c5c99e68f0c1c89609f1de9352a3a93ac8635bc657e6cef86(read-back 검증).