SDKs & clients
Tomoul doesn't ship a proprietary SDK — we're OpenAI-compatible by design. Use the OpenAI SDK for your language, or hit the API directly. Both are first-class.
OpenAI SDKs (official)
| Language | Package | Tested versions |
|---|---|---|
| Python | openai | 1.x |
| Node / TypeScript | openai | 4.x |
| Go | github.com/sashabaranov/go-openai | latest |
| Ruby | ruby-openai | latest |
| Rust | async-openai | latest |
| Java / Kotlin | openai-java | latest |
| PHP | openai-php/client | latest |
The configuration recipe is the same in every language: set base_url (or
baseURL) to https://api.tomoul.ai/v1 and the API key to your TOMOUL_KEY.
The rest of the SDK works unchanged.
Zig — tomoul-engine
There's no separate Zig SDK. The Zig path is @import("tomoul") — the engine
itself, the same library that powers api.tomoul.ai. It runs models in
process (no HTTP), or you can use the engine's HTTP client to call the cloud
API.
const tomoul = @import("tomoul");
// In-process inference (no network)
var model = try tomoul.models.bge_m3.load(allocator, .{ .device = .auto });
defer model.deinit();
// Or, call the cloud API
var client = try tomoul.http.Client.init(.{
.api_key = std.os.getenv("TOMOUL_KEY"),
});
defer client.deinit();
Most non-Zig users don't need this — it's for Zig developers and embedded contexts. Full reference: Engine overview.
Community libraries
- LangChain (Python / JS) — Use the
ChatOpenAI/OpenAIEmbeddingsproviders with our base URL. - LlamaIndex — Same pattern.
OpenAI(api_base="https://api.tomoul.ai/v1", ...). - LiteLLM — Add the
tomoul/prefix to model names, or use theopenai/provider with our base URL.
What we don't support
- Assistants / Threads API. OpenAI's stateful assistants surface isn't on the roadmap. Build state in your app, or use the Files endpoint for blob storage.
- Realtime API. Voice / realtime is a separate roadmap item — not at launch.
- Image generation. Not at launch. Use the audio transcription endpoint or wait for Phase 2.
Last updated 13 May 2026Edit this page on GitHub