Vercel AI SDK — Build AI Apps with React
You are an expert in the Vercel AI SDK, the TypeScript toolkit for building AI-powered applications. You help developers create streaming chat interfaces, AI-generated UI, tool calling, multi-step agents, and structured output — with React hooks (useChat, useCompletion, useObject), server-side streaming, and a unified provider interface supporting OpenAI, Anthropic, Google, Mistral, and 20+ LLM providers.
Best use case
Vercel AI SDK — Build AI Apps with React is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
You are an expert in the Vercel AI SDK, the TypeScript toolkit for building AI-powered applications. You help developers create streaming chat interfaces, AI-generated UI, tool calling, multi-step agents, and structured output — with React hooks (useChat, useCompletion, useObject), server-side streaming, and a unified provider interface supporting OpenAI, Anthropic, Google, Mistral, and 20+ LLM providers.
Teams using Vercel AI SDK — Build AI Apps with React should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/vercel-ai-sdk/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How Vercel AI SDK — Build AI Apps with React Compares
| Feature / Agent | Vercel AI SDK — Build AI Apps with React | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
You are an expert in the Vercel AI SDK, the TypeScript toolkit for building AI-powered applications. You help developers create streaming chat interfaces, AI-generated UI, tool calling, multi-step agents, and structured output — with React hooks (useChat, useCompletion, useObject), server-side streaming, and a unified provider interface supporting OpenAI, Anthropic, Google, Mistral, and 20+ LLM providers.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
Related Guides
SKILL.md Source
# Vercel AI SDK — Build AI Apps with React
You are an expert in the Vercel AI SDK, the TypeScript toolkit for building AI-powered applications. You help developers create streaming chat interfaces, AI-generated UI, tool calling, multi-step agents, and structured output — with React hooks (useChat, useCompletion, useObject), server-side streaming, and a unified provider interface supporting OpenAI, Anthropic, Google, Mistral, and 20+ LLM providers.
## Core Capabilities
### Chat with Streaming
```typescript
// app/api/chat/route.ts — Streaming chat API
import { openai } from "@ai-sdk/openai";
import { streamText, tool } from "ai";
import { z } from "zod";
export async function POST(req: Request) {
const { messages } = await req.json();
const result = streamText({
model: openai("gpt-4o"),
system: "You are a helpful assistant for a project management app.",
messages,
tools: {
createTask: tool({
description: "Create a new task in the project",
parameters: z.object({
title: z.string(),
priority: z.enum(["low", "medium", "high"]),
assignee: z.string().optional(),
}),
execute: async ({ title, priority, assignee }) => {
const task = await db.tasks.create({ data: { title, priority, assignee } });
return { taskId: task.id, message: `Created task: ${title}` };
},
}),
searchDocs: tool({
description: "Search project documentation",
parameters: z.object({ query: z.string() }),
execute: async ({ query }) => {
const results = await vectorSearch(query);
return { results: results.map(r => ({ title: r.title, snippet: r.content.slice(0, 200) })) };
},
}),
},
maxSteps: 5, // Multi-step: agent can call tools, then continue
});
return result.toDataStreamResponse();
}
```
```tsx
// components/Chat.tsx — React chat UI
"use client";
import { useChat } from "ai/react";
export function Chat() {
const { messages, input, handleInputChange, handleSubmit, isLoading } = useChat();
return (
<div className="flex flex-col h-[600px]">
<div className="flex-1 overflow-y-auto space-y-4 p-4">
{messages.map((m) => (
<div key={m.id} className={m.role === "user" ? "text-right" : "text-left"}>
<div className={`inline-block p-3 rounded-lg ${
m.role === "user" ? "bg-blue-500 text-white" : "bg-gray-100"
}`}>
{m.content}
{/* Tool results rendered inline */}
{m.toolInvocations?.map((ti) => (
<div key={ti.toolCallId} className="mt-2 text-sm bg-white p-2 rounded">
🔧 {ti.toolName}: {JSON.stringify(ti.result)}
</div>
))}
</div>
</div>
))}
</div>
<form onSubmit={handleSubmit} className="border-t p-4 flex gap-2">
<input value={input} onChange={handleInputChange} placeholder="Ask anything..."
className="flex-1 border rounded-lg px-4 py-2" disabled={isLoading} />
<button type="submit" disabled={isLoading}>Send</button>
</form>
</div>
);
}
```
### Structured Output
```typescript
import { generateObject } from "ai";
import { openai } from "@ai-sdk/openai";
import { z } from "zod";
const { object: analysis } = await generateObject({
model: openai("gpt-4o"),
schema: z.object({
sentiment: z.enum(["positive", "negative", "neutral"]),
topics: z.array(z.string()),
urgency: z.number().min(1).max(5),
suggestedAction: z.string(),
}),
prompt: `Analyze this support ticket: "${ticketText}"`,
});
// analysis is typed and validated — guaranteed to match schema
```
### Multi-Provider
```typescript
import { openai } from "@ai-sdk/openai";
import { anthropic } from "@ai-sdk/anthropic";
import { google } from "@ai-sdk/google";
// Switch models by changing one line
const result = await generateText({
model: anthropic("claude-sonnet-4-20250514"), // Or openai("gpt-4o") or google("gemini-2.0-flash")
prompt: "Explain async/await",
});
```
## Installation
```bash
npm install ai @ai-sdk/openai @ai-sdk/anthropic
```
## Best Practices
1. **useChat** — React hook for chat UIs; handles streaming, message state, loading, and error automatically
2. **streamText** — Server-side streaming; response starts immediately, tokens arrive as generated
3. **Tool calling** — Define tools with Zod schemas; AI calls them, you execute, results feed back to AI
4. **maxSteps** — Enable multi-step agent behavior; AI can call tools, reason about results, call more tools
5. **generateObject** — Type-safe structured output; Zod schema enforces output format
6. **Provider-agnostic** — Same code works with OpenAI, Anthropic, Google; swap model string only
7. **Middleware** — Add caching, logging, guardrails via AI SDK middleware; intercept any model call
8. **AI-generated UI** — Use `streamUI` to stream React components from the server; dynamic AI interfacesRelated Skills
sklearn-pipeline-builder
Sklearn Pipeline Builder - Auto-activating skill for ML Training. Triggers on: sklearn pipeline builder, sklearn pipeline builder Part of the ML Training skill category.
sam-template-builder
Sam Template Builder - Auto-activating skill for AWS Skills. Triggers on: sam template builder, sam template builder Part of the AWS Skills skill category.
building-recommendation-systems
This skill empowers Claude to construct recommendation systems using collaborative filtering, content-based filtering, or hybrid approaches. It analyzes user preferences, item features, and interaction data to generate personalized recommendations. Use this skill when the user requests to build a recommendation engine, needs help with collaborative filtering, wants to implement content-based filtering, or seeks to rank items based on relevance for a specific user or group of users. It is triggered by requests involving "recommendations", "collaborative filtering", "content-based filtering", "ranking items", or "building a recommender".
react-hook-creator
React Hook Creator - Auto-activating skill for Frontend Development. Triggers on: react hook creator, react hook creator Part of the Frontend Development skill category.
react-context-setup
React Context Setup - Auto-activating skill for Frontend Development. Triggers on: react context setup, react context setup Part of the Frontend Development skill category.
react-component-generator
React Component Generator - Auto-activating skill for Frontend Development. Triggers on: react component generator, react component generator Part of the Frontend Development skill category.
prefect-flow-builder
Prefect Flow Builder - Auto-activating skill for Data Pipelines. Triggers on: prefect flow builder, prefect flow builder Part of the Data Pipelines skill category.
building-neural-networks
This skill allows Claude to construct and configure neural network architectures using the neural-network-builder plugin. It should be used when the user requests the creation of a new neural network, modification of an existing one, or assistance with defining the layers, parameters, and training process. The skill is triggered by requests involving terms like "build a neural network," "define network architecture," "configure layers," or specific mentions of neural network types (e.g., "CNN," "RNN," "transformer").
graphql-mutation-builder
Graphql Mutation Builder - Auto-activating skill for API Development. Triggers on: graphql mutation builder, graphql mutation builder Part of the API Development skill category.
building-gitops-workflows
This skill enables Claude to construct GitOps workflows using ArgoCD and Flux. It is designed to generate production-ready configurations, implement best practices, and ensure a security-first approach for Kubernetes deployments. Use this skill when the user explicitly requests "GitOps workflow", "ArgoCD", "Flux", or asks for help with setting up a continuous delivery pipeline using GitOps principles. The skill will generate the necessary configuration files and setup code based on the user's specific requirements and infrastructure.
funnel-analysis-builder
Funnel Analysis Builder - Auto-activating skill for Data Analytics. Triggers on: funnel analysis builder, funnel analysis builder Part of the Data Analytics skill category.
form-builder-helper
Form Builder Helper - Auto-activating skill for Business Automation. Triggers on: form builder helper, form builder helper Part of the Business Automation skill category.