Text generationChatCompletion
The core call. Same builder chain in every language.
built by aktagon.com
The LLM client Aktagon built to power its agents, in Go, TypeScript, Python, and Rust. One API for Anthropic, OpenAI, Google, and 20+ more, including local models through Ollama and vLLM.
c := llmkit.New("anthropic", key) resp, err := c.Text. System("You plan sprints."). Prompt(ctx, "Plan the next sprint.")
const client = anthropic(process.env.ANTHROPIC_API_KEY); const resp = await client.text .system("You plan sprints.") .prompt("Plan the next sprint.");
c = anthropic(os.environ["ANTHROPIC_API_KEY"]) resp = await ( c.text .system("You plan sprints.") .prompt("Plan the next sprint.") )
let c = anthropic(key);
let resp = c
.text()
.system("You plan sprints.")
.prompt("Plan the next sprint.")
.await?;
Every capability
The same feature in Go, TypeScript, Python, and Rust.
The core call. Same builder chain in every language.
Token-by-token output; the final response carries usage.
Ask the model to think harder; usage reports reasoning tokens.
Reuse a large system prefix; usage reports cache read/write. OpenAI automatic, Anthropic explicit, Google resource.
Many prompts, one call. Anthropic, OpenAI.
Register tools, set a max-iteration cap, let the model loop.
Introspect models and providers, filter by capability, list live.
Generate and image-to-image (vision). Providers: google, grok, openai, openrouter, together, vertex.
Hooks fire pre/post each op; returning an error vetoes the call.
Two forms: a path, or raw bytes with an explicit filename + mime.
Vertex Lyria 2, instrumental, ~30s WAV. Providers: google, minimax, vertex.
Asynchronous: submit returns a handle, wait() polls to a hosted URL. Provider: grok.
Generated with llmkit
Both clips below were produced by llmkit itself — the video by its Grok Imagine capability, the score by Google Lyria 3.
submit/wait call.In production
The same client powers the agents behind Aktagon's own products.