Skip to content

Latest commit

ย 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

ClaudeKit

A minimal Swift package for interacting with the Claude API, inspired by the simplicity of Anthropic's Python SDK.

Installation

Swift Package Manager

Add ClaudeKit to your Package.swift file:

dependencies: [
    .package(url: "https://github.com/yourusername/ClaudeKit.git", from: "1.0.0")
]

Or add it through Xcode:

  1. File โ†’ Add Package Dependencies
  2. Enter the repository URL
  3. Click "Add Package"

Requirements

  • macOS 13.0+ / iOS 16.0+
  • Swift 5.9+

Quick Start

import ClaudeKit

// Initialize with API key
let client = ClaudeClient(apiKey: "sk-ant-...")

// Or use environment variable
// export ANTHROPIC_API_KEY="sk-ant-..."
let client = ClaudeClient()

// Send a message
let response = try await client.messages.create(
    model: "claude-sonnet-4-20250514",
    messages: [
        Message(role: .user, content: "Hello, Claude!")
    ]
)

// Print response
if let text = response.content.first?.text {
    print(text)
}

API Reference

ClaudeClient

Initialize the client:

// With explicit API key
let client = ClaudeClient(apiKey: "your-api-key")

// Using ANTHROPIC_API_KEY environment variable
let client = ClaudeClient()

Creating Messages

let response = try await client.messages.create(
    model: "claude-sonnet-4-20250514",    // Model to use
    maxTokens: 1000,                      // Max tokens (default: 1000)
    temperature: 0.7,                     // Temperature (optional)
    messages: [                           // Message history
        Message(role: .user, content: "What is 2+2?")
    ]
)

Message Roles

  • .user - User messages
  • .assistant - Assistant responses

Available Models

  • claude-sonnet-4-20250514 (default)
  • claude-opus-4-20250514
  • claude-haiku-3-20250514

Error Handling

do {
    let response = try await client.messages.create(
        messages: [Message(role: .user, content: "Hello")]
    )
} catch ClaudeError.missingAPIKey {
    print("Please provide an API key")
} catch ClaudeError.httpError(let statusCode) {
    print("HTTP error: \(statusCode)")
} catch {
    print("Error: \(error)")
}

Examples

Basic Conversation

let messages = [
    Message(role: .user, content: "What's the weather like?"),
    Message(role: .assistant, content: "I don't have access to real-time weather data."),
    Message(role: .user, content: "Can you explain why?")
]

let response = try await client.messages.create(messages: messages)

Custom Parameters

let response = try await client.messages.create(
    model: "claude-opus-4-20250514",
    maxTokens: 2000,
    temperature: 0.5,
    messages: [
        Message(role: .user, content: "Write a haiku about Swift programming")
    ]
)

Testing

Run the test suite:

export ANTHROPIC_API_KEY="your-api-key"
swift test

License

MIT License - see LICENSE file for details

About

Simple Swift client for Anthropic's Claude API. Easy-to-use package inspired by the Python SDK. Send messages, get responses. Perfect for iOS/macOS apps. Just client.messages.create() and go! ๐Ÿš€

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages