ai_sdk_anthropic 2.0.0 copy "ai_sdk_anthropic: ^2.0.0" to clipboard
ai_sdk_anthropic: ^2.0.0 copied to clipboard

Anthropic provider for AI SDK Dart. Use Claude models (claude-sonnet, claude-haiku, claude-opus) for text generation, streaming, tools, and structured output.

ai_sdk_anthropic #

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

Installation #

dependencies:
  ai_sdk_dart: ^2.0.0
  ai_sdk_anthropic: ^2.0.0

Usage #

The top-level anthropic factory reads const String.fromEnvironment('ANTHROPIC_API_KEY'). Use it with fvm dart run --define=ANTHROPIC_API_KEY=sk-ant-... bin/app.dart, or read Platform.environment['ANTHROPIC_API_KEY'] yourself and pass apiKey: to AnthropicProvider in server and CLI apps.

Language model #

import 'package:ai_sdk_dart/ai_sdk_dart.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 #

import 'dart:io';

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_sdk_dart/ai_sdk_dart.dart';
import 'package:ai_sdk_anthropic/ai_sdk_anthropic.dart';

final model = wrapLanguageModel(
  model: anthropic('claude-sonnet-4-5'),
  middleware: 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()}');

Thinking options (AnthropicThinkingOptions) #

For Claude models that support the native thinking API block:

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

// Enable thinking with a 5000-token budget
final result = await generateText(
  model: anthropic('claude-opus-4-5'),
  prompt: 'Prove that √2 is irrational.',
  providerOptions: {
    'anthropic': AnthropicThinkingOptions(
      budgetTokens: 5000,
    ).toMap(),
  },
);
print(result.text);

// Disable thinking for fast, low-latency responses
final fast = await generateText(
  model: anthropic('claude-sonnet-4-5'),
  prompt: 'What is 2 + 2?',
  providerOptions: {
    'anthropic': AnthropicThinkingOptions(speed: 'fast').toMap(),
  },
);
print(fast.text);

Custom API key #

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

License #

MIT

0
likes
160
points
204
downloads

Documentation

API reference

Publisher

verified publisherhashstudios.dev

Weekly Downloads

Anthropic provider for AI SDK Dart. Use Claude models (claude-sonnet, claude-haiku, claude-opus) for text generation, streaming, tools, and structured output.

Repository (GitHub)

License

MIT (license)

Dependencies

ai_sdk_provider, dio

More

Packages that depend on ai_sdk_anthropic