v0-dev

작성자: openai

v0 by Vercel 전문가 안내. AI 코드 생성, 프롬프트에서 UI 컴포넌트 생성, v0 CLI 사용법, v0 SDK/API 통합 등을 논의할 때 사용하세요.

npx skills add https://github.com/openai/plugins --skill v0-dev

v0 by Vercel

You are an expert in v0 (v0.app) — Vercel's AI-powered development agent that generates production-ready code from natural language descriptions.

Overview

v0 transforms prompts into working React/Next.js code. It supports 6M+ developers and 80K+ active teams globally. v0 operates as a universal coding agent with research, planning, debugging, and iteration capabilities.

Core Capabilities

  • Natural language → code: Describe what you want, get production React components
  • Visual input: Upload Figma designs, screenshots, or sketches → code
  • Multi-framework: Outputs React, Vue, Svelte, HTML, Markdown
  • Agentic intelligence: Research, plan, debug, iterate autonomously
  • shadcn/ui + Tailwind CSS: Default styling system
  • Full IDE: Built-in VS Code editor, terminal, and git panel in the web UI

CLI Usage

Component Integration CLI (v0 package)

Install and pull v0-generated components into your Next.js project:

# Initialize v0 in an existing Next.js project (one-time setup)
npx v0@latest init

# Add a specific v0-generated component by ID
npx v0@latest add <component-id>

# With pnpm
pnpm dlx v0@latest init
pnpm dlx v0@latest add <component-id>

v0 init installs required dependencies (@radix-ui/react-icons, clsx, lucide-react) and creates a components.json config file.

"Add to Codebase" (Web UI → Local)

From the v0.dev web interface, click the "Add to Codebase" button (terminal icon) to generate a command:

npx shadcn@latest add "https://v0.dev/chat/b/<project_id>?token=<token>"

Run this in your project root to pull the entire generated project into your codebase.

Typical Workflow

# 1. Scaffold a Next.js app
npx create-next-app@latest --typescript --tailwind --eslint

# 2. Initialize v0 integration
npx v0@latest init

# 3. Generate a component on v0.dev, get its ID
# 4. Add the component locally
npx v0@latest add a1B2c3d4

# 5. Import and use in your app

Project Scaffolding CLI

# Create a new project from v0 templates
npx create-v0-sdk-app@latest my-v0-app

# Use the v0-clone template (full v0.dev replica with auth, DB, streaming)
npx create-v0-sdk-app@latest --template v0-clone

v0 SDK (Programmatic API)

Installation

npm install v0-sdk

Authentication

import { v0 } from 'v0-sdk'
// Automatically reads from process.env.V0_API_KEY

// Or create a custom client:
import { createClient } from 'v0-sdk'
const v0 = createClient({ apiKey: process.env.CUSTOM_V0_KEY })

Get your API key at: https://v0.app/chat/settings/keys

Create a Chat and Generate Code

import { v0 } from 'v0-sdk'

const chat = await v0.chats.create({
  message: 'Create a responsive navbar with dark mode toggle using Tailwind',
  system: 'You are an expert React developer',
})

console.log(`Open in browser: ${chat.webUrl}`)

Full Project Workflow (Create → Chat → Deploy)

import { v0 } from 'v0-sdk'

// Create a project
const project = await v0.projects.create({ name: 'My App' })

// Initialize a chat with existing code
const chat = await v0.chats.init({
  type: 'files',
  files: [{ name: 'App.tsx', content: existingCode }],
  projectId: project.id,
})

// Send follow-up instructions
await v0.chats.sendMessage({
  chatId: chat.id,
  message: 'Add a sidebar with navigation links and a user avatar',
})

// Deploy when ready
const deployment = await v0.deployments.create({
  projectId: project.id,
  chatId: chat.id,
  versionId: chat.latestVersion.id,
})

console.log(`Live at: ${deployment.url}`)

Download Generated Code

// Download files from a specific chat version
const files = await v0.chats.downloadVersion({
  chatId: chat.id,
  versionId: chat.latestVersion.id,
})

SDK Method Reference

Chats:

  • v0.chats.create(params) — Create a new chat
  • v0.chats.sendMessage(params) — Send a message to an existing chat
  • v0.chats.getById(params) — Retrieve a specific chat
  • v0.chats.update(params) — Update chat properties
  • v0.chats.findVersions(params) — List all versions of a chat
  • v0.chats.getVersion(params) — Retrieve a specific version
  • v0.chats.updateVersion(params) — Update files within a version
  • v0.chats.downloadVersion(params) — Download files for a version
  • v0.chats.resume(params) — Resume processing of a message

Projects:

  • v0.projects.create(params) — Create a new project
  • v0.projects.getById(params) — Retrieve a project
  • v0.projects.update(params) — Update a project
  • v0.projects.find() — List all projects
  • v0.projects.assign(params) — Assign a chat to a project
  • v0.projects.getByChatId(params) — Get project by chat ID
  • v0.projects.createEnvVars(params) — Create env vars for a project

Deployments:

  • v0.deployments.create(params) — Create deployment from a chat version
  • v0.deployments.getById(params) — Get deployment details
  • v0.deployments.delete(params) — Delete a deployment
  • v0.deployments.find(params) — List deployments
  • v0.deployments.findLogs(params) — Get deployment logs

REST API

Base URL: https://api.v0.dev/v1 Auth: Authorization: Bearer <V0_API_KEY>

MethodEndpointDescription
GET/v1/projectsList projects
POST/v1/projectsCreate project
GET/v1/projects/:idGet project
PUT/v1/projects/:idUpdate project
DELETE/v1/projects/:idDelete project
POST/v1/chatsCreate/initialize chat
GET/v1/chats/:id/messagesGet messages
POST/v1/chats/:id/messagesSend message
POST/v1/deploymentsCreate deployment

Rate Limits

  • API Requests: 10,000/day
  • Chat Messages: 1,000/day
  • Deployments: 100/day
  • File Uploads: 1 GB/day
  • Projects per account: 100

Available Models

  • v0-1.5-md — Everyday tasks and UI generation
  • v0-1.5-lg — Advanced reasoning
  • v0-1.0-md — Legacy model

AI SDK Integration

Using v0 as an AI Provider

npm i @ai-sdk/vercel
import { vercel } from '@ai-sdk/vercel'
import { generateText } from 'ai'

const { text } = await generateText({
  model: vercel('v0-1.5-md'),
  prompt: 'Create a login form with email and password fields',
})

v0 AI Tools (Agent Integration)

Use v0's full capabilities as tools within an AI SDK agent:

npm install @v0-sdk/ai-tools ai
import { generateText } from 'ai'
import { openai } from '@ai-sdk/openai'
import { v0Tools } from '@v0-sdk/ai-tools'

const result = await generateText({
  model: openai('gpt-5.2'),
  prompt: 'Create a new React dashboard project with charts and a data table',
  tools: v0Tools({ apiKey: process.env.V0_API_KEY }),
})

For granular control, import specific tool sets:

import { createChatTools, createProjectTools, createDeploymentTools } from '@v0-sdk/ai-tools'

The v0Tools export includes 20+ tools: createChat, sendMessage, getChat, updateChat, deleteChat, favoriteChat, forkChat, listChats, createProject, getProject, updateProject, listProjects, assignChatToProject, createEnvironmentVariables, createDeployment, getDeployment, deleteDeployment, listDeployments, getDeploymentLogs.

MCP Server

Connect v0 to any MCP-compatible IDE (Cursor, Codex, etc.):

{
  "mcpServers": {
    "v0": {
      "command": "npx",
      "args": [
        "mcp-remote",
        "https://mcp.v0.dev",
        "--header",
        "Authorization: Bearer ${V0_API_KEY}"
      ]
    }
  }
}

Exposes 4 tools: create chat, get chat info, find chats, send messages.

GitHub Integration

Setup

  1. In the v0 chat sidebar → Git section → click Connect
  2. Select GitHub account/org scope and repository name
  3. Click Create Repository — links chat to a new private GitHub repo
  4. A Vercel deployment is automatically created

Branch Behavior (Automatic)

  • Every chat creates a new branch (e.g., v0/main-e7bad8e4)
  • Every prompt that changes code automatically commits and pushes
  • You never work directly on main

PR Workflow

  1. Click the Publish button (shows PR icon when GitHub-connected)
  2. Select Open PR — creates PR from v0/main-abc123main
  3. Review in the GitHub modal or on GitHub.com
  4. Merge the PR → closes the chat permanently
  5. Every PR gets a Preview Deployment; merging triggers Production Deployment

Importing Existing Repos

  1. In v0 prompt bar → click + → "Import from GitHub"
  2. v0 reads your existing codebase and env vars from Vercel
  3. Iterate with prompts; all changes committed to a new branch

Prompt Engineering Tips

1. Be Specific About Design

Weak:  "Build a dashboard"
Strong: "Build a support ticket dashboard. Mobile-first, light theme, high
        contrast. Color code: red for urgent, yellow for medium, green for low.
        Show agent status badges. Maximum 2 columns on mobile."

2. Specify Your Tech Stack

"Build a real-time chat app using: Next.js 16 with App Router,
Socket.io for messaging, Vercel Postgres for storage,
NextAuth.js for authentication."

3. Define User Roles

"Create a team collaboration tool with admin, manager, and member
roles, task assignment, progress tracking, and file sharing."

4. Queue Multiple Prompts

You can queue up to 10 prompts while v0 is still generating:

  1. "Create the base layout with navigation"
  2. "Add authentication with NextAuth"
  3. "Connect the database and add CRUD operations"
  4. "Add a settings page with dark mode toggle"

5. Specify Error and Empty States

"Add comprehensive error handling for network failures, invalid
input, and empty states with helpful recovery suggestions."

6. Use Visual Selection for Precision

Click a specific element in the preview before typing to target exactly what you want to change. Eliminates ambiguity for multi-instance components.

7. Use Design Mode vs Prompts

  • Prompts: Structural changes, adding features, wiring up logic
  • Design Mode (click element → adjust): Colors, spacing, typography tweaks

8. v0's Default Output Stack

When no framework is specified, v0 generates:

  • React with JSX + TypeScript
  • Tailwind CSS
  • shadcn/ui components
  • Lucide React icons
  • Complete, copy-paste-ready code (never partial stubs)

Design Normalization for v0 Output

v0 is strongest when you specify both structure and aesthetic direction. For Vercel-stack projects, include guidance like: use shadcn/ui primitives, use Geist fonts, default to dark mode, use zinc/neutral tokens, avoid generic card grids. After importing v0 code, normalize it: replace ad-hoc controls with shadcn components, collapse repeated card grids into stronger patterns, align typography to Geist, remove mixed radii and decorative effects.

Integration Patterns

Pattern 1: Generate Components, Import Locally

Best for adding individual UI components to an existing app.

npx v0@latest init
npx v0@latest add <component-id>

Then import the component:

import { DataTable } from '@/components/data-table'

export default function DashboardPage() {
  return <DataTable data={rows} columns={columns} />
}

Pattern 2: GitHub Round-Trip

Best for iterating on a full feature branch with non-engineers.

  1. Import repo into v0 from GitHub
  2. Non-engineer iterates via prompts
  3. v0 auto-commits each change to a feature branch
  4. Engineer reviews the PR, merges

Pattern 3: SDK Automation

Best for CI/CD pipelines or programmatic component generation.

import { v0 } from 'v0-sdk'

// Generate a component from a design spec
const chat = await v0.chats.create({
  message: `Create a pricing table component with these tiers:
    - Free: 0/mo, 1 project, community support
    - Pro: $20/mo, unlimited projects, priority support
    - Enterprise: Custom, SLA, dedicated support`,
})

// Wait for generation, then download
const files = await v0.chats.downloadVersion({
  chatId: chat.id,
  versionId: chat.latestVersion.id,
})

Pattern 4: v0 as AI Agent Tool

Best for autonomous agents that need to generate and deploy UI.

import { Agent } from 'ai'
import { v0Tools } from '@v0-sdk/ai-tools'

const agent = new Agent({
  model: openai('gpt-5.2'),
  tools: {
    ...v0Tools({ apiKey: process.env.V0_API_KEY }),
    // ... other tools
  },
  system: 'You are a full-stack developer. Use v0 to generate UI components.',
})

const { text } = await agent.generateText({
  prompt: 'Create a dashboard for our analytics data and deploy it',
})

Built-in Integrations

v0 has native support for these services in its sandbox:

  • Databases: Neon (PostgreSQL), Supabase, Upstash Redis, Vercel Blob
  • AI: OpenAI, Anthropic, Groq, Grok, fal, Deep Infra (via Vercel AI Gateway)
  • Payments: Stripe
  • External APIs: Twilio, and others via the "Vars" panel

Limitations

  • Best for UI components and layouts (~20% of a full application)
  • Backend, database, auth, and AI integration require separate implementation or explicit prompting
  • Generated code may need manual fixes for complex business logic
  • Enterprise-level scalability needs additional architecture review
  • shadcn/ui is the primary component library; other libraries require explicit prompting

Official Documentation

openai의 다른 스킬

user-context
openai
데이터 분석 플러그인의 지속적인 소스 라우팅 기본 설정, 온보딩 로직, 설정 진행 상황 및 의미 계층 레지스트리를 로드하거나 관리합니다.
official
notion-research-documentation
openai
Notion 콘텐츠를 조사하고 인용문과 함께 구조화된 브리핑, 보고서 또는 비교 자료로 종합합니다. 대상 질의를 사용해 Notion 페이지를 검색하고 가져온 후, 인라인 출처 인용과 참고 문헌 섹션을 포함해 주제별로 결과를 정리합니다. 범위와 사용자 목표에 따라 네 가지 출력 형식(빠른 브리핑, 연구 요약, 비교, 종합 보고서) 중에서 선택합니다. 내장 템플릿을 사용해 Notion 페이지를 생성 및 업데이트하고, 새 정보가 도착하면 출처를 직접 연결하고 변경 사항을 추적합니다...
official
rcsb-pdb-skill
openai
핵심 메타데이터, Search API 쿼리 및 FASTA 다운로드를 위한 간결한 RCSB PDB 요청을 제출합니다. 사용자가 간결한 RCSB 요약을 원할 때 사용하며, 원시 JSON 또는…을 저장합니다.
official
pdf
openai
PDF 읽기, 생성 및 검증 기능을 제공하며, 시각적 렌더링과 프로그래매틱 생성을 지원합니다. Poppler(pdftoppm)를 사용하여 PDF 페이지를 PNG로 렌더링하여 레이아웃, 간격, 타이포그래피를 시각적으로 검사할 수 있습니다. reportlab을 사용하여 프로그래매틱 방식으로 PDF를 생성하여 안정적인 포맷을 보장하며, pdfplumber 또는 pypdf를 통해 텍스트와 메타데이터를 추출합니다. 품질 기준을 준수합니다: 잘린 텍스트, 겹치는 요소, 깨진 표, 렌더링 아티팩트가 없어야 하며, ASCII 하이픈만 사용하고 사람이 읽을 수 있는 인용을 사용합니다.
official
test-coverage-improver
openai
Improve test coverage in the OpenAI Agents JS monorepo: run `pnpm test:coverage`, inspect coverage artifacts, identify low-coverage files and branches, propose…
official
playwright
openai
터미널 기반 브라우저 자동화로 요소 스냅샷 및 대화형 UI 워크플로우 지원. playwright-cli 래퍼 스크립트를 통해 작동하며(npx 필요), 헤드리스 및 헤드 모드 모두 지원하여 시각적 디버깅 가능. 핵심 워크플로우: 페이지 열기, 안정적인 요소 참조를 위한 스냅샷 생성, 참조를 사용한 상호작용, 탐색 또는 DOM 변경 후 재스냅샷. 양식 작성, 클릭, 타이핑, 다중 탭 관리, 스크린샷/PDF 캡처, 흐름 디버깅을 위한 트레이스 기록 포함. 요소 참조(예: e3, e15)...
official
ukb-topmed-phewas-skill
openai
단일 변이에 대한 간결한 UKB-TOPMed PheWAS 요약을 가져오며, rsID, GRCh37 또는 GRCh38 입력을 받아 필요한 GRCh38 쿼리로 변환합니다. 다음과 같은 경우에 사용하세요…
official
code-review-context
openai
모델 가시 컨텍스트
official