๐Ÿ“ฆ vercel / v0-sdk

SDK for the v0 Platform API

โ˜… 448 stars โ‘‚ 86 forks ๐Ÿ‘ 448 watching โš–๏ธ Other
๐Ÿ“ฅ Clone https://github.com/vercel/v0-sdk.git
HTTPS git clone https://github.com/vercel/v0-sdk.git
SSH git clone git@github.com:vercel/v0-sdk.git
CLI gh repo clone vercel/v0-sdk
Loading files...
๐Ÿ“„ README.md

v0 SDK Monorepo

โš ๏ธ Developer Preview: This SDK is currently in beta and is subject to change. Use in production at your own risk.

A monorepo containing SDKs for interacting with the v0 Platform API to create and manage AI-powered chat conversations, projects, integrations, and more.

Packages

Examples

  • v0-clone (Demo) - Full-featured v0 clone with authentication, database, and AI Elements
  • simple-v0 (Demo) - The simplest way to use v0. Just prompt and see your app generated instantly
  • classic-v0 - Classic v0 interface clone with clean, minimalist design
  • v0-sdk-react-example - Next.js example demonstrating @v0-sdk/react usage with multiple UI themes
  • ai-tools-example - Demonstrates @v0-sdk/ai-tools integration with AI SDK for advanced agent patterns

Quick Start

Option 1: Create a New App (Recommended)

The fastest way to get started is with create-v0-sdk-app:

pnpm create v0-sdk-app@latest my-v0-app
# or
npx create-v0-sdk-app@latest my-v0-app
cd my-v0-app

This will create a new project with everything set up and ready to go.

Option 2: Manual Installation

pnpm add v0-sdk
# or
npm install v0-sdk
# or
yarn add v0-sdk

Usage

Get your API key from v0.dev/chat/settings/keys.

Set V0_API_KEY environment variable.

import { v0 } from 'v0-sdk'

// Create a new chat
const chat = await v0.chats.create({
  message: 'Create a responsive navbar with Tailwind CSS',
  system: 'You are an expert React developer',
})
console.log(`Chat created: ${chat.webUrl}`)

Development

This monorepo uses Turborepo for build orchestration and pnpm for package management.

Prerequisites

  • Node.js 22+
  • pnpm 9+

Setup

# Install dependencies
pnpm install

# Build all packages
pnpm build

# Run tests for all packages
pnpm test

# Type check all packages
pnpm type-check

# Format code
pnpm format

Working with packages

# Run commands in specific package
pnpm --filter v0-sdk build
pnpm --filter v0-sdk test
pnpm --filter v0-sdk generate

# Run commands in all packages
pnpm build
pnpm test

Adding new packages

  • Create a new directory in packages/
  • Add a package.json with the appropriate @v0-sdk/ scope
  • Update the root tsconfig.json paths if needed
  • Add any necessary scripts to turbo.json

Scripts

  • pnpm build - Build all packages
  • pnpm test - Run tests for all packages (CI mode)
  • pnpm test:watch - Run tests in watch mode
  • pnpm type-check - Type check all packages
  • pnpm lint - Lint all packages
  • pnpm format - Format code across all packages
  • pnpm sdk:generate - Generate SDK from OpenAPI spec

Code Quality

The project includes automated code quality checks:

  • Pre-commit hooks: Automatically format code before commits using Husky and lint-staged
  • CI formatting check: Ensures all code is properly formatted in pull requests

Release Management

This project uses Changesets for automated version management and publishing. See CONTRIBUTING.md for detailed release guidelines.

  • pnpm changeset - Create a new changeset (describes changes for release)
  • Releases are automated via GitHub Actions when changesets are merged to main

CI/CD

The project includes GitHub Actions workflows:

  • CI Pipeline (ci.yml): Runs on every push and PR to main
  • Builds all packages
  • Runs linting, formatting, and type checking
  • Runs tests on Node.js 20 and 22
  • Release Pipeline (release.yml): Automated releases
  • Creates "Version Packages" PRs when changesets are added
  • Publishes packages to npm when version PRs are merged
  • Changeset Verification (verify-changesets.yml):
  • Ensures package changes include appropriate changesets
  • Validates changeset format
  • SDK Generation (generate-sdk.yml):
  • Runs daily to check for OpenAPI spec updates
  • Can be triggered manually
  • Creates PRs when the SDK needs updates

Resources

License

Apache 2.0