ai_sdk_anthropic

Anthropic provider for AI SDK Dart. Supports Claude language models including extended thinking.

Installation

dependencies:
  ai: ^0.1.0
  ai_sdk_anthropic: ^0.1.0

Usage

Set your API key via environment variable:

export ANTHROPIC_API_KEY=sk-ant-...

Language model

import 'package:ai/ai.dart';
import 'package:ai_sdk_anthropic/ai_sdk_anthropic.dart';

final result = await generateText(
  model: anthropic('claude-sonnet-4-5'),
  prompt: 'Explain quantum entanglement simply.',
);
print(result.text);

Streaming

final result = await streamText(
  model: anthropic('claude-sonnet-4-5'),
  prompt: 'Write a haiku about Dart.',
);
await for (final chunk in result.textStream) {
  stdout.write(chunk);
}

Extended thinking (reasoning)

Use extractReasoningMiddleware to surface <think> blocks from reasoning models:

import 'package:ai/ai.dart';
import 'package:ai_sdk_anthropic/ai_sdk_anthropic.dart';

final model = wrapLanguageModel(
  anthropic('claude-sonnet-4-5'),
  [extractReasoningMiddleware(tagName: 'think')],
);

final result = await generateText(
  model: model,
  prompt: 'Solve: if 3x + 5 = 20, what is x?',
);
print('Answer   : ${result.text}');
print('Reasoning: ${result.reasoning.map((r) => r.text).join()}');

Custom API key

final myAnthropic = AnthropicProvider(apiKey: 'sk-ant-...');
final result = await generateText(
  model: myAnthropic('claude-haiku-4-5'),
  prompt: 'Hello!',
);

License

MIT

Libraries

ai_sdk_anthropic
Anthropic provider for the AI SDK (Claude models).