claudio_sdk 0.1.1 copy "claudio_sdk: ^0.1.1" to clipboard
claudio_sdk: ^0.1.1 copied to clipboard

Multi-provider AI SDK for Dart/Flutter with Anthropic Messages API-compatible interface. Supports Anthropic, DeepSeek, and more.

Claudio Banner

๐Ÿ‡ฌ๐Ÿ‡ง English ยท ๐Ÿ‡ฎ๐Ÿ‡ฉ Bahasa Indonesia

claudio #

Multi-provider AI SDK for Dart/Flutter โ€” one interface, many providers.

pub package License: MIT

Install #

dependencies:
  claudio_sdk: ^0.1.0

Quick Start #

import 'package:claudio_sdk/claudio_sdk.dart';

void main() async {
  final client = ClaudioClient(
    apiKey: 'sk-ant-your-key',
    provider: Provider.anthropic,
  );

  final msg = await client.messages.create(
    CreateMessageRequest(
      model: 'claude-sonnet-4-20250514',
      maxTokens: 1024,
      messages: [
        MessageParam(role: 'user', content: 'Hello!'),
      ],
    ),
  );

  print(msg.text);
  client.close();
}

Providers #

// Anthropic
ClaudioClient(apiKey: 'sk-ant-...', provider: Provider.anthropic);

// DeepSeek (Anthropic-compatible API)
ClaudioClient(apiKey: 'sk-ds-...', provider: Provider.deepseek);

// Auto-detect from environment
ClaudioClient.fromEnvironment();

Features #

  • Messages API โ€” create() and createStream() with SSE
  • Multi-tools โ€” schema builder for type-safe JSON Schema
  • Extended thinking โ€” enabled, disabled, adaptive
  • Streaming โ€” real-time token & tool input chunks
  • Error handling โ€” typed exception hierarchy (auth, rate limit, network, etc.)
  • Retry โ€” exponential backoff + jitter for 429 and 5xx

Tools & Streaming #

final tool = Tool(
  name: 'get_weather',
  description: 'Weather by city.',
  inputSchema: SchemaBuilder().object(
    properties: {
      'city': SchemaProperty.string(description: 'City name'),
    },
    required: ['city'],
  ).build(),
);

final stream = client.messages.createStream(
  CreateMessageRequest(
    model: 'claude-sonnet-4-20250514',
    maxTokens: 1024,
    messages: [MessageParam(role: 'user', content: 'Weather in Jakarta?')],
    tools: [tool],
  ),
);

await for (final event in stream) {
  if (event is ContentBlockDeltaEvent) {
    switch (event.delta) {
      case TextDelta(:final text): stdout.write(text);
      case InputJsonDelta(:final partialJson): print(partialJson);
    }
  }
}

Error Handling #

try {
  final msg = await client.messages.create(request);
} on AuthenticationException catch (e) {
  print('Auth error: ${e.message}');
} on RateLimitException catch (e) {
  print('Rate limited, retry after ${e.retryAfter}');
} on ApiException catch (e) {
  print('Server error ${e.statusCode}: ${e.message}');
} on NetworkException catch (e) {
  print('Network: ${e.message}');
}

License #

MIT


Claudio

0
likes
0
points
370
downloads

Publisher

verified publisherfaisalaffan.com

Weekly Downloads

Multi-provider AI SDK for Dart/Flutter with Anthropic Messages API-compatible interface. Supports Anthropic, DeepSeek, and more.

Repository (GitHub)
View/report issues

License

unknown (license)

Dependencies

http, meta

More

Packages that depend on claudio_sdk