A minimal Swift package for interacting with the Claude API, inspired by the simplicity of Anthropic's Python SDK.
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:
- File โ Add Package Dependencies
- Enter the repository URL
- Click "Add Package"
- macOS 13.0+ / iOS 16.0+
- Swift 5.9+
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)
}Initialize the client:
// With explicit API key
let client = ClaudeClient(apiKey: "your-api-key")
// Using ANTHROPIC_API_KEY environment variable
let client = ClaudeClient()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?")
]
).user- User messages.assistant- Assistant responses
claude-sonnet-4-20250514(default)claude-opus-4-20250514claude-haiku-3-20250514
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)")
}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)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")
]
)Run the test suite:
export ANTHROPIC_API_KEY="your-api-key"
swift testMIT License - see LICENSE file for details