MCPcopy
hub / github.com/cloudflare/vibesdk

github.com/cloudflare/vibesdk @v1.5.0 sqlite

repository ↗ · DeepWiki ↗ · release v1.5.0 ↗
3,648 symbols 10,121 edges 529 files 823 documented · 23%
README

🧡 Cloudflare Vibe SDK

An open source full-stack AI webapp generator – Deploy your own instance of Cloudflare VibeSDK, an AI vibe coding platform that you can run and customize yourself.

🚀 Live Demo

build.cloudflare.dev

Explore VibeSDK Build before deploying your own stack.

Deploy to Cloudflare Workers

👆 Click to deploy your own instance!

Follow the setup guide below to configure required services

Star History

Star History Chart


✨ What is Cloudflare VibeSDK?

Cloudflare VibeSDK is an open source AI vibe coding platform built on Cloudflare's developer platform. If you're building an AI-powered platform for building applications, this is a great example that you can deploy and customize to build the whole platform yourself. Once the platform is deployed, users can say what they want to build in natural language, and the AI agent will create and deploy the application.

🌐 Experience it live at build.cloudflare.dev – Try it out before deploying your own instance!

🎯 Perfect For

Companies building AI-powered platforms

Run your own solution that allows users to build applications in natural language. Customize the AI behavior, control the generated code patterns, integrate your own component libraries, and keep all customer data within your infrastructure. Perfect for startups wanting to enter the AI development space or established companies adding AI capabilities to their existing developer tools.

Internal development

Enable non-technical teams to create the tools they need without waiting for engineering resources. Marketing can build landing pages, sales can create custom dashboards, and operations can automate workflows, all by describing what they want.

SaaS platforms

Let your customers extend your product's functionality without learning your API or writing code. They can describe custom integrations, build specialized workflows, or create tailored interfaces specific to their business needs.


🎯 Key Features

🤖 AI Code Generation – Phase-wise development with intelligent error correction
Live Previews – App previews running in sandboxed containers
💬 Interactive Chat – Guide development through natural conversation
📱 Modern Stack – Generates React + TypeScript + Tailwind apps
🚀 One-Click Deploy – Deploy generated apps to Workers for Platforms
📦 GitHub Integration – Export code directly to your repositories

🏗️ Built on Cloudflare's Platform

Cloudflare VibeSDK Build utilizes the full Cloudflare developer ecosystem:

  • Frontend: React + Vite with modern UI components
  • Backend: Workers with Durable Objects for AI agents
  • Database: D1 (SQLite) with Drizzle ORM
  • AI: Multiple LLM providers via AI Gateway
  • Containers: Sandboxed app previews and execution
  • Storage: R2 buckets for templates, KV for sessions
  • Deployment: Workers for Platforms with dispatch namespaces

SDK for Programmatic Access

Build apps programmatically using the official TypeScript SDK:

npm install @cf-vibesdk/sdk
import { PhasicClient } from '@cf-vibesdk/sdk';

const client = new PhasicClient({
  baseUrl: 'https://build.cloudflare.dev',
  apiKey: process.env.VIBESDK_API_KEY!,
});

const session = await client.build('Build a simple hello world page.', {
  projectType: 'app',
  autoGenerate: true,
});

await session.wait.deployable();
console.log('Preview URL:', session.state.previewUrl);
session.close();

SDK Documentation - Full API reference and examples

📋 Quick Deploy Checklist

Before clicking "Deploy to Cloudflare", have these ready:

✅ Prerequisites

  • Cloudflare Workers Paid Plan
  • Workers for Platforms subscription
  • Advanced Certificate Manager (needed when you map a first-level subdomain such as abc.xyz.com so Cloudflare can issue the required wildcard certificate for preview apps on *.abc.xyz.com)

🔑 Required API Key

Once you click "Deploy to Cloudflare", you'll be taken to your Cloudflare dashboard where you can configure your VibeSDK deployment with these variables.

Deploy to Cloudflare Workers

🔑 What you'll configure

  • GOOGLE_AI_STUDIO_API_KEY - Your Google Gemini API key for Gemini models
  • JWT_SECRET - Secure random string for session management
  • WEBHOOK_SECRET - Webhook authentication secret
  • SECRETS_ENCRYPTION_KEY - Encryption key for secrets
  • SANDBOX_INSTANCE_TYPE - Container performance tier (optional, see section below)
  • ALLOWED_EMAIL - Email address of the user allowed to use the app. This is used to verify the user's identity and prevent unauthorized access.
  • CUSTOM_DOMAIN - Custom domain for your app that you have configured in Cloudflare (Required). If you use a first-level subdomain such as abc.xyz.com, make sure the Advanced Certificate Manager add-on is active on that zone.

Custom domain DNS setup

To serve preview apps correctly, add the following DNS record in the zone that hosts CUSTOM_DOMAIN:

  • Type: CNAME
  • Name: *.abc
  • Target: abc.xyz.com (replace with your base custom domain or another appropriate origin)
  • Proxy status: Proxied (orange cloud)

Adjust the placeholder abc/xyz parts to match your domain. DNS propagation can take time—expect it to take up to an hour before previews resolve. This step may be automated in a future release, but it is required today.

🏗️ Sandbox Instance Configuration (Optional)

VibeSDK uses Cloudflare Containers to run generated applications in isolated environments. You can configure the container performance tier based on your needs and Cloudflare plan.

Available Instance Types

📢 Updated Oct 2025: Cloudflare now offers larger container instance types with more resources!

Instance Type Memory CPU Disk Use Case Availability
lite (alias: dev) 256 MiB 1/16 vCPU 2 GB Development/testing All plans
standard-1 (alias: standard) 4 GiB 1/2 vCPU 8 GB Light production apps All plans
standard-2 8 GiB 1 vCPU 12 GB Medium workloads All plans
standard-3 12 GiB 2 vCPU 16 GB Production apps All plans (Default)
standard-4 12 GiB 4 vCPU 20 GB High-performance apps All plans

Configuration Options

Option A: Via Deploy Button (Recommended) During the "Deploy to Cloudflare" flow, you can set the instance type as a build variable: - Variable name: SANDBOX_INSTANCE_TYPE - Recommended values: - Standard/Paid users: standard-3 (default, best balance) - High-performance needs: standard-4

Option B: Via Environment Variable For local deployment or CI/CD, set the environment variable:

export SANDBOX_INSTANCE_TYPE=standard-3  # or standard-4, standard-2, standard-1, lite
bun run deploy

Instance Type Selection Guide

For All Users: - standard-3 (Recommended) - Best balance for production apps with 2 vCPU and 12 GiB memory - standard-4 - Maximum performance with 4 vCPU for compute-intensive applications

What This Affects

The SANDBOX_INSTANCE_TYPE controls: - App Preview Performance - How fast generated applications run during development - Build Process Speed - Container compile and build times - Concurrent App Capacity - How many apps can run simultaneously - Resource Availability - Memory and disk space for complex applications

💡 Pro Tip: Start with standard-3 (the new default) for the best balance of performance and resources. Upgrade to standard-4 if you need maximum CPU performance for compute-intensive applications.

🔗 Post-Deployment: OAuth Setup (Optional)

OAuth configuration is not shown on the initial deploy page. If you want user login features, you'll need to set this up after deployment:

How to Add OAuth After Deployment: 1. Find your repository in your GitHub/GitLab account (created by "Deploy to Cloudflare" flow) 2. Clone locally and run bun install 3. Create .dev.vars and .prod.vars files (see below for OAuth configuration) 4. Run bun run deploy to update your deployment

Google OAuth Setup: 1. Google Cloud Console → Create Project 2. Enable Google+ API 3. Create OAuth 2.0 Client ID 4. Add authorized origins: https://your-custom-domain. 5. Add redirect URI: https://your-worker-name.workers.dev/api/auth/callback/google 6. Add to both .dev.vars (for local development) and .prod.vars (for deployment): bash GOOGLE_CLIENT_ID="your-google-client-id" GOOGLE_CLIENT_SECRET="your-google-client-secret"

GitHub OAuth Setup: 1. GitHub → SettingsDeveloper settingsOAuth Apps 2. Click New OAuth App 3. Application name: Cloudflare VibeSDK 4. Homepage URL: https://your-worker-name.workers.dev 5. Authorization callback URL: https://your-worker-name.workers.dev/api/auth/callback/github 6. Add to both .dev.vars (for local development) and .prod.vars (for deployment): bash GITHUB_CLIENT_ID="your-github-client-id" GITHUB_CLIENT_SECRET="your-github-client-secret"

GitHub Export OAuth Setup: 1. Create a separate GitHub OAuth app (e.g., VibeSDK Export)—do not reuse the login app above. 2. Authorization callback URL: https://your-worker-name.workers.dev/api/github-exporter/callback (or your custom domain equivalent). 3. Add to both .dev.vars and .prod.vars: bash GITHUB_EXPORTER_CLIENT_ID="your-export-client-id" GITHUB_EXPORTER_CLIENT_SECRET="your-export-client-secret" 4. Redeploy or restart local development so the new variables take effect.


🎨 How It Works

graph TD
    A[User Describes App] --> B[AI Agent Analyzes Request]
    B --> C[Generate Blueprint & Plan]
    C --> D[Phase-wise Code Generation]
    D --> E[Live Preview in Container]
    E --> F[User Feedback & Iteration]
    F --> D
    D --> G[Deploy to Workers for Platforms]

How It Works

  1. 🧠 AI Analysis: Language models process your description
  2. 📋 Blueprint Creation: System architecture and file structure planned
  3. ⚡ Phase Generation: Code generated incrementally with dependency management
  4. 🔍 Quality Assurance: Automated linting, type checking, and error correction
  5. 📱 Live Preview: App execution in isolated Cloudflare Containers
  6. 🔄 Real-time Iteration: Chat interface enables continuous refinements
  7. 🚀 One-Click Deploy: Generated apps deploy to Workers for Platforms

💡 Try These Example Prompts

Want to see these prompts in action? Visit the live demo at build.cloudflare.dev first, then try them on your own instance once deployed:

🎮 Fun Apps

"Create a todo list with drag and drop and dark mode"

"Build a simple drawing app with different brush sizes and colors"

"Make a memory card game with emojis"

📊 Productivity Apps

"Create an expense tracker with charts and categories"

"Build a pomodoro timer with task management"

"Make a habit tracker with streak counters"

🎨 Creative Tools

"Build a color palette generator from images"

"Create a markdown editor with live preview"

"Make a meme generator with text overlays"

🛠️ Utility Apps

"Create a QR code generator and scanner"

"Build a password generator with custom options"

"Make a URL shortener with click analytics"


🌍 Architecture Deep Dive

Durable Objects for Stateful AI Agents

class CodeGeneratorAgent extends DurableObject {
  async generateCode(prompt: string) {
    // Persistent state across WebSocket connections
    // Phase-wise generation with error recovery
    // Real-time progress streaming to frontend
  }
}

Workers for Platforms Deployment

// Generated apps deployed to dispatch namespace
export default {
  async fetch(request, env) {
    const appId = extractAppId(request);
    const userApp = env.DISPATCHER.get(appId);
    return await userApp.fetch(request);
  }
};

Iteration-based Code Generation

Cloudflare VibeSDK generates apps in intelligent phases:

  1. Planning Phase: Analyzes requirements, creates file structure
  2. Foundation Phase: Generates package.json, basic setup files
  3. Core Phase: Creates main components and logic
  4. Styling Phase: Adds CSS and visual design
  5. Integration Phase: Connects APIs and external services
  6. Optimization Phase: Performance improvements and error fixes

After Deployment

  • The "Deploy to Cloudflare" button provisions the worker and also creates a GitHub repository in your account. Clone that repository to work locally.
  • Pushes to the main branch trigger automatic deployments; CI/CD is already wired up for you.
  • For a manual deployment, copy .dev.vars.example to .prod.vars, fill in production-only secrets, and run bun run deploy. The deploy script reads from .prod.vars.

DNS updates made during setup, including the wildcard CNAME record described above, can take a while to propagate. Wait until the record resolves before testing preview apps.


🏠 Local Development

Quick Setup

You can run VibeSDK locally by foll

Extension points exported contracts — how you extend this code

TicketAuthenticatable (Interface)
(no doc) [2 implementers]
worker/middleware/auth/ticketAuth.ts
SessionConfig (Interface)
* Session configuration
worker/database/services/SessionService.ts
SetupVaultBody (Interface)
Interface for the JSON body received from frontend (base64 strings)
worker/api/controllers/user-secrets/controller.ts
BaseAgentInitArgs (Interface)
Base initialization arguments shared by all agents
worker/agents/core/types.ts
ApiClientConfig (Interface)
* Base API client configuration
src/lib/api-client.ts
UserSecretsStoreStub (Interface)
(no doc) [1 implementers]
worker/services/secrets/SecretsClient.ts
GlobalProps (Interface)
(no doc)
worker-configuration.d.ts
ProcessLog (Interface)
(no doc)
container/storage.ts

Core symbols most depended-on inside this repo

info
called by 583
worker/logger/core.ts
log
called by 563
worker/logger/core.ts
push
called by 467
container/process-monitor.ts
get
called by 426
container/bun-sqlite.d.ts
error
called by 327
worker/logger/core.ts
cn
called by 250
src/lib/utils.ts
error
called by 205
src/utils/logger.ts
append
called by 203
sdk/src/blueprint.ts

Shape

Function 1,453
Method 1,361
Interface 502
Class 319
Enum 13

Languages

TypeScript97%
Python3%

Modules by API surface

src/lib/api-client.ts83 symbols
worker/agents/core/behaviors/base.ts79 symbols
debug-tools/ai_request_analyzer_v2.py64 symbols
container/process-monitor.ts55 symbols
container/cli-tools.ts51 symbols
worker/services/sandbox/sandboxSdkClient.ts50 symbols
worker/services/secrets/UserSecretsStore.ts48 symbols
scripts/setup.ts48 symbols
scripts/deploy.ts48 symbols
worker/agents/core/codingAgent.ts46 symbols
container/storage.ts46 symbols
worker/logger/core.ts33 symbols

Dependencies from manifests, versioned

@ashishkumar472/cf-git1.0.5 · 1×
@babel/generator7.28.5 · 1×
@babel/parser7.28.5 · 1×
@babel/traverse7.28.5 · 1×
@babel/types7.28.5 · 1×
@cf-vibesdk/sdkfile:../../.. · 1×
@cloudflare/containers0.0.28 · 1×
@cloudflare/vite-plugin1.17.1 · 1×
@cloudflare/vitest-pool-workers0.8.71 · 1×
@cloudflare/workers-types4.20251213.0 · 1×
@commitlint/config-conventional20.2.0 · 1×

For agents

$ claude mcp add vibesdk \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact