Giting.
낮의 Giting

홈 · AI 에이전트 · 코드 생성 · Cloudflare Workers · 샌드박스 · Durable Objects

vibesdk 대표 이미지 9da158d (2026-09-07) · shallow clone 기준
분석 리포트실측 정보사이트적용점원문 README

정체·구조

Cloudflare가 직접 낸 오픈소스 바이브코딩 플랫폼이다. 사용자가 만들 것을 말로 적으면 AI 코딩 에이전트가 되묻고, 파일을 편집하고, 프리뷰를 배포하고, 브라우저 콘솔을 읽어 에러를 고치고, 사람과 루프를 돌며 풀스택 앱을 완성한다. 공식 데모는 build.cloudflare.dev 에 떠 있고, 리포에는 "Deploy to Cloudflare Workers" 버튼으로 자기 계정에 통째로 세우는 경로가 있다.

규모는 실측 834 파일에 텍스트 19.8만 줄로, TypeScript(11.0만 줄)와 TSX(3.0만 줄)가 코드 대부분이다. 프론트는 Vite·React, 백엔드는 Cloudflare Worker(worker/)이고, 런타임·패키지 매니저로 Bun 을 쓴다. 첫 커밋은 2025년 9월 8일, 이 분석 시점까지 커밋 1,129회에 저자 19명이 붙었고 최근 90일 커밋이 231회로 활발하다. 릴리스 태그는 6개, 이슈는 표본 25건 중 22건에 응답이 달렸으나 응답 중앙값이 205시간으로 즉답형 커뮤니티는 아니다.

핵심 기능·아키텍처(파이프라인 단계로 분해)

전체 워크플로가 Cloudflare 위에서 돈다. 아키텍처를 에이전트 한 턴이 지나는 단계로 쪼개면 이렇다.

1. 요청 접수·명료화. 요청이 모호하면 에이전트가 구조화된 질문을 던져 사람의 답을 받는다(human-in-the-loop). 이 대화·스트리밍·스킬·루프를 관장하는 것이 Durable Object 로 도는 ThinkAgent 다. wrangler 설정에는 CodeGeneratorAgent 등 이전 세대 클래스도 함께 남아 있어, 코드베이스가 구 샌드박스 구조와 신 ThinkAgent 구조를 겸하는 과도기임이 보인다.

2. 워크스페이스 편집. 프로젝트마다 SpaceDO(Durable Object)가 격리 워크스페이스와 파일을 쥔다. 에이전트의 도구는 이 워크스페이스를 읽고 편집하고, 복원점을 만들고, 프리뷰를 배포하고, 브라우저 로그를 검사하고, 되묻는 것뿐이다. bash 접근은 꺼져 있다.

3. 번들·프리뷰 배포. 커밋된 배포를 @cloudflare/worker-bundler 로 묶어 Worker Loader 바인딩으로 Dynamic Worker 프리뷰로 띄운다. 상시 개발 서버가 없다. 정적 자산은 SpaceDO 가 서빙하고, 백엔드 요청·웹소켓은 생성된 앱의 Durable Object Facet 으로 넘어간다.

4. 앱 데이터. 생성된 앱마다 DO Facet 에 격리 SQLite 저장소가 붙어, 사용자가 들여다보고 초기화할 수 있다.

5. 브라우저 검증·수리. 프리뷰의 브라우저 콘솔 출력을 읽어 런타임 에러를 같은 루프 안에서 고치고 재배포한다. 로컬 콘솔 검사용 브라우저 사이드카(dev:browser)도 옵션으로 있다.

6. 버전 관리. 에이전트가 만든 복원점을 Cloudflare Artifacts 에 저장하고, 기존 히스토리를 다시 쓰지 않고 되돌린다. 모델 라우팅은 AI Gateway 를 거쳐 관측·캐싱을 중앙화한다.

바인딩 실측(wrangler.jsonc): Workers AI·Durable Objects·DO Facets·D1·R2·KV·Dispatch Namespaces(Workers for Platforms)·Containers(cloudflare/sandbox 이미지)·Browser·Worker Loader·Cloudflare Artifacts. 의존성은 89개다.

실제로 되는 것·안 되는 것

되는 것. 리포는 실동하는 완성 플랫폼이다. 공식 호스팅 데모가 살아 있고, bun install → bun run setup → bun run dev 로 로컬 개발이 서고, bun run deploy 가 빌드·D1 마이그레이션·배포를 한 번에 처리한다. 테스트 매칭 파일 66개, CI 워크플로 9개로 검증 장치도 갖췄다. 에이전트 루프·격리·복원점은 문서와 코드가 일치한다.

안 되는(또는 아무 데서나 안 되는) 것. 프로덕션 앱 프리뷰는 Workers Paid 플랜과 Workers for Platforms 접근을 요구하고, 프로덕션 도메인은 와일드카드 DNS 와 (서브도메인 구성에 따라) Advanced Certificate Manager 를 요구한다. Cloudflare API 토큰과 최소 하나의 모델 공급자 크리덴셜도 필수다. 즉 무료·로컬만으로 프로덕션 프리뷰까지 굴러가지 않는다. 이슈 응답 중앙값 205시간이라 막히면 커뮤니티 즉답을 기대하긴 어렵다.

우리 적용점

우리 제품군은 -ing 스튜디오 AI 도구들(Drafting 기획·Sliding 슬라이드·coxpit-oss 에이전트 플릿·Triforge)이고 대부분 의존성 0·로컬 우선·계정 없음을 지향한다. VibeSDK 는 코드가 아니라 설계 패턴으로 참고한다.

첫째, model-and-tool 루프. 고정 단계 파이프라인 대신 계획·편집·프리뷰·콘솔검사·수리를 한 루프에서 반복하는 형태는 coxpit-oss 에이전트 플릿과 Triforge 실행 루프가 파이프라인을 굳히기 전에 검토할 값어치가 있다. 둘째, 권한 최소화. 신뢰불가 입력을 다루면서 bash 를 끄고 워크스페이스 도구만 명시적으로 노출한 방식은, 이미 우리가 러너 프롬프트에 넣는 인젝션 방어 규율의 코드 레벨 대응물이다. 셋째, 복원점 append 모델. 히스토리를 다시 쓰지 않고 복원점을 이어붙이는 발상은 Keeping 의 버전 축(새 항목이 아니라 이어붙임)과 정확히 겹친다.

가져오지 말 것

플랫폼 종속 전체가 우리 원칙과 정면으로 어긋난다. 프리뷰 실행이 Dynamic Workers·Worker Loader·DO Facet·Containers(cloudflare/sandbox)·Dispatch Namespaces(Workers for Platforms)에 하드바인딩돼 있어, 이 실행 모델을 이식하려는 순간 유료 Cloudflare 계정·API 토큰·와일드카드 DNS·인증서 관리가 전제로 딸려 온다. 의존성 0·로컬 우선·계정 없음과 양립하지 않는다.

앱별 데이터 격리를 DO Facet SQLite 로 푸는 방식도 그대로 못 가져온다. 우리 스택엔 Durable Objects·Facets 가 없고, 우리는 로컬 SQLite(node:sqlite)나 파일로 같은 격리를 훨씬 얇게 얻는다. 모델 라우팅을 AI Gateway 로 중앙화하는 것도 계정 종속을 부르므로, 우리 게이트웨이·BYO CLI 방식을 유지한다. 요약하면 아키텍처의 발상(루프·격리·복원점·권한 최소화)만 취하고, 실행 인프라·바인딩·배포 모델은 경계선 밖에 둔다.

실측 정보

HEAD 커밋
9da158d (2026-09-07) · shallow clone 기준
무엇
Cloudflare가 직접 낸 오픈소스 바이브코딩 플랫폼. 말로 요청하면 에이전트가 계획·편집·프리뷰 배포·브라우저 콘솔 에러 수리를 반복해 풀스택 앱을 만든다. 'Deploy to Cloudflare Workers'로 자기 계정에 통째로 세운다
규모 / 실측
834파일 · 197,893줄 · TS 110,313 + TSX 29,758 · 프론트 Vite·React, 백엔드 Cloudflare Worker, 런타임 Bun · 테스트 66 · CI 9
활발 / 유지
첫 커밋 2025-09-08 · 최근 90일 231커밋(활발) · 저자 19 · 릴리스 6태그 · 이슈 응답 표본 25건 중 22건이나 중앙값 205시간(즉답형 아님)
설계 교본
에이전트가 계획·편집·프리뷰·에러수리를 한 루프에서 도는 model-and-tool 구조 · 프로젝트별 완전 격리(에이전트 DO·워크스페이스 DO·앱 Facet·아티팩트 저장소) · bash를 끈 명시적 도구 집합
라이선스
MIT (단, 프리뷰 실행은 Workers for Platforms 등 Cloudflare 유료 인프라에 하드바인딩)

사이트 실측

주소
build.cloudflare.dev
응답 · 첫 화면
200 · 1.8초 (데스크톱)
요청 · 전송량
19개 · 660KB
깨진 요청 · 콘솔 오류
1개 · 1개
폰(390px)
가로 넘침 없음
디자인
밝은 화면 · Inter

홈페이지를 실제 크롬으로 띄워 첫 화면까지만 쟀습니다(2026-10-16 · 데스크톱 1440px · 폰 390px). 로그인 · 입력 같은 동작은 하지 않았고, 사이트 상태는 리포 품질과 따로 봅니다. 색 칸은 바탕 · 면 · 글자 · 흐린 글자 · 강조 · 선, 점선은 「못 잼」.

적용점

  • 이럴 때 유용에이전트가 앱을 만드는 루프를 설계하려는 사람. 계획·편집·프리뷰·에러수리를 한 루프에서 도는 구조, 프로젝트별 완전 격리, bash를 끄고 명시적 도구만 여는 안전 설계가 배울 값이 크다. Cloudflare 위에 자기 바이브코딩 플랫폼을 세우려는 팀에도 실물 청사진.
  • 이럴 땐 부적합프리뷰 실행이 Workers for Platforms(유료)·Dynamic Workers·Containers·DO Facet에 하드바인딩돼 있어, 의존성 0·로컬 우선·계정 없음을 원하면 정반대다. 코드·배포 모델을 그대로 가져오면 Cloudflare에 묶인다.
  • 먼저 볼 것아키텍처를 참고하되 코드·배포는 가져오지 않는다. 에이전트 루프의 도구 경계(bash off, 명시적 도구)와 프로젝트별 격리(DO 단위)가 우리 에이전트 도구(coxpit-oss·Triforge)에 이식할 설계 조각이다.
◈ 참고용

에이전트가 계획·편집·프리뷰·에러수리를 한 루프에서 도는 model-and-tool 아키텍처, 프로젝트별 완전 격리(에이전트 DO·워크스페이스 DO·앱 Facet·아티팩트 저장소), bash를 끈 명시적 도구 집합은 우리 에이전트 도구(coxpit-oss·Triforge)에 이식할 가치가 큰 설계 교본이다. 다만 프리뷰 실행이 Workers for Platforms(유료)·Dynamic Workers·Containers·DO Facet에 하드바인딩돼 있어, 의존성 0·로컬 우선·계정 없음 원칙과는 정반대다. 아키텍처는 참고하되 코드·배포 모델은 가져오지 않는다.

원문 README

아래는 cloudflare/vibesdk 저장소의 README 원문입니다(GitHub 렌더, 수집 시점 기준). 저작권은 원 프로젝트에 있으며 원 저장소의 라이선스를 따릅니다. GitHub에서 보기

README 전문 펼치기

Cloudflare VibeSDK

An open source, agentic platform for building and deploying full-stack applications on Cloudflare.

What is VibeSDK?

VibeSDK lets people build full-stack applications by working with an AI coding agent. Describe what you want, answer clarifying questions, and follow the agent as it plans, edits files, deploys previews, inspects errors, and iterates with you in the loop.

The platform runs the complete workflow on Cloudflare. Think drives the agentic model-and-tool loop, a Durable Object provides an isolated workspace for each project, Dynamic Workers serve generated application previews, Durable Object Facets provide per-app SQLite storage, and Cloudflare Artifacts stores durable git history and restore points.

Capabilities

  • Agentic code generation: Build iteratively through a model-and-tool loop instead of a fixed sequence of generation phases.
  • Human-in-the-loop clarification: Let the agent ask structured questions when a request is underspecified.
  • Live workspace: Follow generated files and edits in an integrated code editor.
  • Dynamic previews: Bundle generated code and load each preview as a Dynamic Worker without a long-running development server.
  • Browser verification: Inspect browser console output, repair runtime errors, and redeploy in the same loop.
  • Application data: Give each generated app isolated SQLite-backed storage through a Durable Object Facet, with database inspection and reset controls.
  • Version history: Save agent-created restore points in Cloudflare Artifacts and roll back without rewriting existing history.
  • Model flexibility: Route configured model providers through AI Gateway with centralized observability and caching.
  • Realtime progress: Stream agent output, tool activity, file changes, and deployment status to the UI.
  • Project export: Export generated projects when you want to continue development outside VibeSDK.

Architecture

Component Role
ThinkAgent Agent powered by Cloudflare Think and backed by a Durable Object that runs the model-and-tool loop
SpaceDO Durable Object that provides each project's isolated workspace and files
Cloudflare Artifacts Binding that stores commits, branches, history, and restore points
Worker Loader Binding that loads bundled code as a Dynamic Worker preview
Generated App Durable Object Facet with isolated SQLite storage
AI Gateway Routes configured model providers with observability and caching
flowchart LR
    U[User] <--> T[ThinkAgent]
    T <--> M[Models via AI Gateway]
    T <--> S[SpaceDO workspace]
    S <--> A[Cloudflare Artifacts]
    S --> L[Worker Loader]
    L --> W[Dynamic Worker preview]
    W <--> F[App Facet + SQLite]
Loading

Agent and tools

Think manages conversation history, streaming, skills, and the iterative model-and-tool loop. Its explicit tools read and edit the SpaceDO workspace, create restore points, deploy previews, inspect browser logs, and ask clarifying questions. Bash access is disabled.

Previews and application data

VibeSDK bundles each committed deployment with @cloudflare/worker-bundler and loads it through the Worker Loader binding. Static assets are served by SpaceDO, while backend requests and WebSockets are forwarded to the generated App Durable Object Facet. Each Facet has isolated SQLite storage that users can inspect and reset.

Files and version history

SpaceDO is the workspace and file layer. Cloudflare Artifacts is the git and version-history layer. Rollback restores a selected commit into the current branch, creates a new commit, and redeploys without rewriting history.

Agent workflow

  1. Understand: Read the request and ask structured questions when important details are missing.
  2. Build: Create and edit files in the SpaceDO workspace.
  3. Save: Record coherent restore points in Cloudflare Artifacts.
  4. Deploy: Commit and bundle the current branch into a Dynamic Worker preview.
  5. Verify: Inspect the live preview and browser console output.
  6. Repair: Fix build or runtime errors and repeat the deploy-and-verify loop.
  7. Stream: Continuously surface output, tool calls, files, and preview status in the UI.

Deploy your own VibeSDK

The fastest way to deploy is the Deploy to Cloudflare flow:

Deploy to Cloudflare Workers

You will need:

  • A Cloudflare account with the required Workers features enabled.
  • A Workers Paid plan and Workers for Platforms access for production app previews.
  • A Cloudflare API token with access to the resources created by setup.
  • Credentials for at least one supported model provider, unless you use provider keys stored in AI Gateway.
  • A custom domain for production, including wildcard DNS and Advanced Certificate Manager when required by your subdomain layout.

Authentication providers, model providers, and export integrations are optional and configuration-dependent. See the complete setup guide for current permissions, DNS, AI Gateway, provider, OAuth, and production configuration.

Local development

Prerequisites

  • Node.js 18 or later
  • Bun
  • A Cloudflare account and API token

Quick start

git clone https://github.com/cloudflare/vibesdk.git
cd vibesdk
bun install
bun run setup
bun run dev

Open http://localhost:5173. The setup script configures local and production environments, Cloudflare resources, AI Gateway and model providers, authentication, and database migrations.

For all setup options and troubleshooting, read docs/setup.md.

Feature toggles

Feature settings are dashboard-managed rather than committed in wrangler.jsonc, so production values survive deploys through keep_vars: true. Set them in the Cloudflare dashboard for each deployed environment, or in .dev.vars for local development. Unset values default to off unless noted otherwise: ENABLE_ARTIFACTS, ENABLE_READ_REPLICAS, ENABLE_CLOUDFLARE_LIMITS, ENABLE_USER_ACCOUNT_DEPLOY, ALLOWED_EMAIL, USE_CLOUDFLARE_IMAGES, and USE_TUNNEL_FOR_PREVIEW; ENABLE_EMAIL_AUTH defaults to on. ALLOCATION_STRATEGY uses its normal default when unset. See the feature-toggle setup reference for dependencies and behavior.

Development commands

Command Purpose
bun run dev Start the frontend development server
bun run dev:browser Start the optional local browser sidecar used for console-log inspection
bun run build Build SpaceDO and the Vite application
bun run typecheck Run TypeScript type checking
bun run lint Run ESLint
bun run test Run the test suite
bun run test:watch Run tests in watch mode
bun run deploy Build, migrate, and deploy using .prod.vars

Security and isolation

  • Project isolation: Each app maps to its own ThinkAgent Durable Object, SpaceDO workspace, Artifacts repository, and generated application Facet.
  • Tool boundaries: Think uses explicit workspace and product tools; workspace bash access is disabled.
  • Application data isolation: Each generated application stores its data in its own SQLite-backed Durable Object Facet.
  • Preview authorization: Preview URLs use signed, branch-scoped access.
  • Secret handling: Provider and platform credentials flow through configured Cloudflare services and bindings.
  • Reversible changes: Artifacts-backed restore points make deployed changes recoverable without deleting history.

Troubleshooting

  • Preview does not resolve: Confirm the wildcard DNS record is proxied, allow time for DNS propagation, and verify any required Advanced Certificate Manager configuration.
  • AI Gateway authentication fails: Confirm the gateway and token are configured, the token has Run permission, and the selected provider has valid credentials or stored keys.
  • Database migrations fail: Check D1 access and API-token permissions, then retry after newly provisioned resources become available.
  • Required variables are missing: Verify JWT_SECRET, Cloudflare account credentials, AI Gateway settings, and credentials for every enabled provider or integration.

More diagnostics are available in the setup guide. For help, use GitHub issues, GitHub discussions, or the Cloudflare Developers Discord.

Contributing

  1. Fork and clone the repository.
  2. Run bun install and bun run setup.
  3. Make focused changes that follow AGENTS.md.
  4. Run bun run typecheck, bun run lint, and bun run test.
  5. Open a pull request describing the change and how you validated it.

Resources

License

VibeSDK is available under the MIT License.

의견

판정에 대한 반론, 도입 경험, 정정 제보를 환영합니다. GitHub 계정으로 참여합니다.

이것도 재봤습니다

전체 리포트 →