Swift Package Manager:
.package(url: "https://github.com/steipete/Tachikoma.git", branch: "main"),.product(name: "Tachikoma", package: "Tachikoma"),import Tachikoma
let text = try await generate("Write a haiku about Swift.", using: .anthropic(.opus45))
print(text)import Tachikoma
let stream = try await stream("Explain actors in Swift.", using: .openai(.gpt52))
for try await delta in stream {
print(delta.content ?? "", terminator: "")
}import Tachikoma
let conversation = Conversation()
conversation.addUserMessage("You are a concise assistant.")
conversation.addUserMessage("Summarize Swift concurrency in 3 bullets.")
let reply = try await conversation.continue(using: .anthropic(.opus45))
print(reply)import Tachikoma
let pngData: Data = /* ... */
let image = ImageInput(data: pngData, mimeType: "image/png")
let answer = try await analyze(image: image, prompt: "What’s in this image?", using: .openai(.gpt4o))
print(answer)import Tachikoma
let tool = createTool(
name: "add",
description: "Add two integers",
parameters: [
.init(name: "a", type: .integer, description: "First"),
.init(name: "b", type: .integer, description: "Second"),
]
) { args in
let a = try args.intValue("a")
let b = try args.intValue("b")
return ["sum": a + b]
}
let result = try await generateText(
model: .openai(.gpt52),
messages: [.user("Compute 123 + 456 using the add tool.")],
tools: [tool],
maxSteps: 3
)
print(result.text)Common picks:
- Anthropic:
claude-opus-4-5(LanguageModel.default) - OpenAI:
gpt-5.2(flagship),gpt-5(coding/agents),o4-mini(reasoning),gpt-4o(vision) - Google:
gemini-3-flash - Grok:
grok-4-fast-reasoning - Local:
ollama/llama3.3
Full catalog (including enum case names + provider notes): docs/models.md.
Set API keys via env vars (or use TKAuthManager):
- OpenAI:
OPENAI_API_KEY - Anthropic:
ANTHROPIC_API_KEY - Gemini:
GEMINI_API_KEY(alias:GOOGLE_API_KEY) - Grok:
X_AI_API_KEY(aliases:XAI_API_KEY,GROK_API_KEY)
Hosts can change the credential storage root:
TachikomaConfiguration.profileDirectoryName(Peekaboo uses.peekaboo)
- Model catalog:
docs/models.md - Modern API overview:
docs/modern-api.md - Realtime voice + Harmony patterns:
docs/openai-harmony.md - Architecture:
docs/ARCHITECTURE.md - Local models:
docs/lmstudio.md,docs/gpt-oss.md - Azure notes:
docs/azure.md - Vercel AI SDK reference snapshot:
docs/ai-sdk.md - Contributing/dev setup:
docs/contributing.md
MIT. See LICENSE.
