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)

LanguagePackageTested versions
Pythonopenai1.x
Node / TypeScriptopenai4.x
Gogithub.com/sashabaranov/go-openailatest
Rubyruby-openailatest
Rustasync-openailatest
Java / Kotlinopenai-javalatest
PHPopenai-php/clientlatest

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 / OpenAIEmbeddings providers 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 the openai/ 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