SDKs
Use an SDK when your code should talk directly to a Thalovant hub.
The Thalovant API is the control plane at https://api.thalovant.com. It discovers hubs and creates client identities. The SDK is the data plane. It sends runtime traffic to the hub over WSS, HTTPS, or MQTT over TLS.
Best First Path
Section titled “Best First Path”- Pick the SDK for your runtime. Python, Node.js, Go, Rust, Kotlin, Swift, and .NET expose the same core behavior. Embedded C is a protocol library for devices that bring their own transport.
- Use the hosted API. Start with
https://api.thalovant.com. - Create one client identity per app, device, or agent. Store the returned identity in a secret store or protected SDK config file.
- Connect with WSS first. It is the default realtime path for public clients, and it is the only data-plane protocol in the v0.1 Kotlin, Swift, and .NET SDKs.
- Add HTTPS, MQTT, or browser origin access only when needed. Create a fresh identity after enabling a new protocol on the hub, and request an approved SDK Origin before calling the API from a customer-owned browser app.
Choose A Language
Section titled “Choose A Language”| Language | Install | Best fit |
|---|---|---|
| Python | pip install thalovant |
Agents, tools, notebooks, tests, and service workers. |
| Node.js | npm install @thalovant/sdk |
TypeScript services, bots, scripts, web backends, and bundled browser apps. |
| Go | go get github.com/thalovant/thalovant-go-sdk |
Gateways, CLIs, small services, and long-running workers. |
| Rust | cargo add thalovant |
Strict clients, embedded work, and reliability-focused services. |
| Kotlin | implementation("com.thalovant:thalovant-sdk:0.1.3") |
JVM services and Android apps. |
| Swift | SwiftPM package from the GitHub repository | iOS, macOS, and Swift-on-Linux apps. |
| C# / .NET | dotnet add package Thalovant.Sdk |
Enterprise .NET services and Unity apps. |
| C | Vendored source pinned to a release tag | Microcontroller and embedded devices that bring their own MQTT or WebSocket client. |
Capability Tiers
Section titled “Capability Tiers”Not every SDK covers every protocol yet. Pick the tier that matches your runtime needs.
| Tier | SDKs | Data plane | Control plane |
|---|---|---|---|
| Full | Python, Node.js, Go, Rust | WSS, HTTPS, and MQTT over TLS | Full, including MFA sign-in, device login, API token auth, and typed operation polling |
| WSS-only (v0.1) | Kotlin, Swift, .NET | WSS only; requesting HTTPS or MQTT raises a clear unsupported-protocol error | Full, including MFA sign-in, device login, API token auth, and typed operation polling |
| Protocol library | Embedded C | None built in; you bring the MQTT or WebSocket client and the library supplies identity parsing, topics, encryption, and wire framing | None |
Browser apps use the Node SDK behind a bundler: the control plane and the WSS and HTTPS data plane work in web bundles, while MQTT and identity file helpers stay Node-only. See Browser usage in the Node SDK.
Supported Versions
Section titled “Supported Versions”The following versions were the current published package set recorded on September 3, 2026. Use the compatibility requirement in a feature’s release note when it needs a newer client.
| Consumer | Supported package version | Registry |
|---|---|---|
| Python SDK | thalovant 0.4.35 |
PyPI |
| Node.js SDK | @thalovant/sdk 0.2.37 |
npm |
| Go SDK | github.com/thalovant/thalovant-go-sdk v0.3.12 |
Public Go module; requires Go 1.25 or newer |
| Rust SDK | thalovant 0.2.26 |
crates.io |
| Kotlin SDK | com.thalovant:thalovant-sdk 0.1.6 |
Maven Central; requires JVM 17 or newer, or a compatible Android toolchain |
| Swift SDK | thalovant-swift-sdk 0.1.6 |
Swift Package Manager, resolved by Git tag from the public GitHub repository; Swift 5.9 or newer |
| .NET SDK | Thalovant.Sdk 0.1.9 |
NuGet; targets net8.0 and netstandard2.1 for Unity 2021 and newer |
| Embedded C library | thalovant-embedded-c v0.1.3 |
Immutable Git tag and attested GitHub release archives; C99 source, no package registry |
| MCP server | @thalovant/mcp-server 0.1.16 |
npm, GHCR, and the MCP Registry |
All control-plane calls use the backward-compatible /api/v1 boundary. Additive server fields are safe for older SDKs because clients ignore fields they do not understand. A client that needs a newly added capability must use the minimum version listed in that capability’s release note.
The MCP server uses the Node SDK and is released after its compatible SDK version. MCP 0.1.16 declares @thalovant/sdk ^0.2.37 and is published with aligned npm, OCI, and MCP Registry metadata.
This package set is the first that supports signing in without a password through login_with_browser and its language-native equivalents, and it documents direct API token auth in every SDK. See Sign In Without A Password.
It is also the first package set that can create hubs, runtime groups, and skill installs from code. Every SDK in the table above ships the same provisioning and skill-discovery surface, and the MCP server exposes it as tools. See Provision Hubs.
How SDK Access Works
Section titled “How SDK Access Works”- Discover a hub. Public hub discovery can be used before sign-in.
- Sign in for private API actions. Creating client identities requires API access on the workspace. Use a password login, a browser-approved device sign-in, or a scoped API token.
- Create a client identity. The SDK stores the returned identity locally or in your secret store.
- Connect to the hub. Runtime traffic goes directly to the hub endpoint.
- Send a request. Start with one
askcall, then add sessions, context, actions, or rich output.
Browser Origins
Section titled “Browser Origins”Browser apps on customer-owned domains need an approved SDK Origin before cross-origin SDK or API calls are accepted.
Approval is exact-origin based and non-credentialed. It allows requests from a reviewed origin, but it does not allow dashboard cookies, refresh-session headers, setup links, or long-lived client identities to be exposed in browser bundles.
Protocols
Section titled “Protocols”| Protocol | Use it when | Notes |
|---|---|---|
| WSS | You want the default public realtime path. | Best first choice for agents and clients that may listen for events. Supported by every SDK. |
| HTTPS | You want request-response calls, health checks, CLIs, or jobs. | Must be enabled on the hub before public clients can use it. Python, Node.js, Go, and Rust only. |
| MQTT over TLS | You want broker-mediated device or edge traffic. | Requires per-client broker credentials and topic access. Python, Node.js, Go, and Rust only; Node.js supports it outside browsers. |
What To Keep Secret
Section titled “What To Keep Secret”Every client identity is secret. Store it like a password.
Do not put identity files, access keys, passwords, broker passwords, setup links, or crypto keys in browser bundles, public repos, screenshots, logs, or support tickets.
Production Checklist
Section titled “Production Checklist”| Check | Good default |
|---|---|
| API base URL | https://api.thalovant.com |
| First runtime protocol | WSS |
| Browser usage | Use SDK Origins for reviewed browser domains. Keep secrets on a backend. |
| Identity storage | Use a secret manager, CI secret, mounted secret file, or ~/.config/thalovant/config.yaml with mode 600. |
| MQTT | Use mqtts://, per-client credentials, and SDK-managed topics. |
| Rotation | Rotate by creating a new client identity and replacing the old secret. |
| Logs | Redact identity JSON, broker passwords, API tokens, and crypto keys. |
If you already know your language, open the SDK page.
Use SDK Functions when you need method names across languages. Use MQTT when the client connects through the broker. If you are designing a shared SDK feature, use the SDK Contract.
Last reviewed: August 15, 2026. Review this page when an SDK or MCP package version, registry, compatibility requirement, or install command changes.