Claude Code
The ai-sdk-provider-claude-code community provider allows you to access Claude models through the official Claude Agent SDK. It's particularly useful for developers who want to use their existing Claude Pro/Max subscription without managing API keys.
Version Compatibility
| Provider Version | AI SDK Version | NPM Tag | Status |
|---|---|---|---|
| 3.x | v6 | latest | Stable |
| 2.x | v5 | ai-sdk-v5 | Maintenance |
| 0.x | v4 | ai-sdk-v4 | Legacy |
# AI SDK v6 (default)
npm install ai-sdk-provider-claude-code ai
# AI SDK v5
npm install ai-sdk-provider-claude-code@ai-sdk-v5 ai@^5.0.0
# AI SDK v4
npm install ai-sdk-provider-claude-code@ai-sdk-v4 ai@^4.0.0Setup
pnpm add ai-sdk-provider-claude-codenpm install ai-sdk-provider-claude-codeyarn add ai-sdk-provider-claude-codebun add ai-sdk-provider-claude-codeProvider Instance
You can import the default provider instance claudeCode from ai-sdk-provider-claude-code:
import { claudeCode } from 'ai-sdk-provider-claude-code';If you need a customized setup, you can import createClaudeCode and create a provider instance with your settings:
import { createClaudeCode } from 'ai-sdk-provider-claude-code';
const claudeCode = createClaudeCode({
allowedTools: ['Read', 'Write', 'Edit'],
disallowedTools: ['Bash'],
mcpServers: {
'my-server': {
command: 'node',
args: ['server.js'],
},
},
permissionMode: 'default',
});You can use the following optional settings to customize the provider instance:
- allowedTools string[] - List of allowed tools. When specified, only these tools will be available.
- disallowedTools string[] - List of disallowed tools (e.g.,
['Bash(rm:*)']). - mcpServers Record<string, McpServerConfig> - MCP server configurations.
- permissionMode 'default' | 'acceptEdits' | 'bypassPermissions' | 'plan' - Tool permission handling.
- maxTurns number - Maximum conversation turns.
- cwd string - Working directory for CLI operations.
- verbose boolean - Enable debug logging.
Language Models
You can create models that call Claude through the Claude Agent SDK using the provider instance:
const model = claudeCode('sonnet');Supported model shortcuts:
- opus: Claude Opus (most capable)
- sonnet: Claude Sonnet (balanced)
- haiku: Claude Haiku (fastest)
You can also use full model identifiers directly:
const model = claudeCode('claude-opus-4-5');
const model = claudeCode('claude-sonnet-4-5-20250514');Example
import { claudeCode } from 'ai-sdk-provider-claude-code';
import { generateText } from 'ai';
const { text } = await generateText({
model: claudeCode('sonnet'),
prompt: 'Write a vegetarian lasagna recipe for 4 people.',
});Model Capabilities
| Model | Image Input | Object Generation | Tool Usage | Tool Streaming |
|---|---|---|---|---|
opus | ✓ | ✓ | ✗ | ✗ |
sonnet | ✓ | ✓ | ✗ | ✗ |
haiku | ✓ | ✓ | ✗ | ✗ |
Note
Tool Usage and Tool Streaming show ❌ because this provider does not support
AI SDK custom tools (Zod schemas passed to generateText/streamText).
Instead, it uses Claude's built-in tools (Bash, Edit, Read, Write, etc.) and
MCP servers which execute autonomously. Object generation uses native
structured outputs with guaranteed schema compliance. Image input requires
streaming mode and base64/data URL format only.
Authentication
The provider uses your existing Claude Pro or Max subscription through the Claude Code CLI:
claude loginThis opens a browser window for authentication. Once authenticated, the provider will use your subscription automatically.
Requirements
- Node.js 22 or higher
- Claude Code CLI installed (
npm install -g @anthropic-ai/claude-code) - Claude Pro or Max subscription
For more details, see the provider documentation.