Install the framework
- Deno
- Node.js
Add the framework to your project:Then add it to your
deno.json import map along with your provider:How it fits together
Vibes is a thin orchestration layer over the Vercel AI SDK. You install Vibes once and choose any supported AI provider separately.Choose a provider
Install the provider package that matches your preferred AI service:| Provider | Package | Install (Deno) | Env Variable |
|---|---|---|---|
| Anthropic (Claude) | @ai-sdk/anthropic | deno add npm:@ai-sdk/anthropic | ANTHROPIC_API_KEY |
| OpenAI (GPT) | @ai-sdk/openai | deno add npm:@ai-sdk/openai | OPENAI_API_KEY |
| Google (Gemini) | @ai-sdk/google | deno add npm:@ai-sdk/google | GOOGLE_GENERATIVE_AI_API_KEY |
| Groq | @ai-sdk/groq | deno add npm:@ai-sdk/groq | GROQ_API_KEY |
| Mistral | @ai-sdk/mistral | deno add npm:@ai-sdk/mistral | MISTRAL_API_KEY |
| Ollama (local) | ollama-ai-provider | deno add npm:ollama-ai-provider | (none) |
| OpenAI-compatible | @ai-sdk/openai | deno add npm:@ai-sdk/openai | varies |
Set your API key
Export your provider’s API key as an environment variable before running your agent:Never commit API keys to source control. Use a
.env file locally and your deployment platform’s secret management in production.Verify the install
Createhello.ts and run it to confirm everything is working:
- Deno
- Node.js
Agent skill (Claude Code)
If you use Claude Code, install the@vibesjs/sdk agent skill so your coding assistant can write idiomatic framework code without looking up docs:
Troubleshooting
Wrong registry: npm:@vibesjs/sdk does nothing
If you import from npm:@vibesjs/sdk instead of jsr:@vibesjs/sdk, the import will resolve silently but produce no useful exports — the npm name is a placeholder stub.
Fix: Always use the JSR registry:
Zod version mismatch (Zod v3 vs v4)
Vibes requires Zod v4. If you installzod without a version constraint you may get Zod v3, which uses a different API. Symptoms include TypeScript errors on z.object, z.string, etc.
Fix:
Deno cache corruption
If Deno reports an empty module or missing export for a package that exists, its local cache entry may be corrupted. This can happen after a failed download. Detect: The import resolves but the module exports nothing (e.g.import { z } from "zod" gives z is undefined).
Fix: Clear the corrupted cache entry and re-run:
<package> and <version> with the affected package (e.g. zod/4.0.0).
Next steps
Hello World Tutorial
Build a complete weather agent with tools, structured output, and tests in one progressive tutorial.
Introduction
Learn the design philosophy and why Vibes was built.