SDK & integration
Une seule porte d’entrée pour toutes les applications.
One SDK across every Osage Cloud capability domain.
The wrapper
Every Osage and partner application integrates with Osage Cloud through one uniform SDK. The same client, the same auth, the same secrets layer, the same observability hooks, regardless of whether the call lands on AI, crypto, robotics, storage, or databases. There is one integration to learn and one operator surface to support.
Languages
- TypeScript / JavaScript —
@osage/cloud - Python —
osage-cloud - Go —
github.com/osage/cloud-go - Rust —
osage-cloudcrate - CLI —
osagecommand (Cobra/Go)
Auth modes
Three auth modes, all routed through Osage IAM (iam.osage.id):
- API key —
hk--prefixed keys issued by the IAM portal; org-scoped, role-scoped, rotatable. - OAuth / JWT — sign in at osage.id and exchange for a short-lived JWT; the SDK handles refresh.
- Provider key —
sk--style pass-through for compatible upstream providers (used by the AI gateway).
Capability calls
Every capability domain exposes the same shape: namespace, action, scoped to org and project, returning a typed result.
// AI — chat completion
const r = await osage.ai.chat({
model: 'zen-3-32b',
messages: [{ role: 'user', content: 'Summarise this brief.' }],
});
// Crypto — sign a digest with the org's threshold key
const sig = await osage.crypto.sign({
scheme: 'ml-dsa-65',
key: 'org/sigil',
digest: myDigest,
});
// Storage — put an object, enveloped automatically
await osage.storage.put({
bucket: 'docs',
key: 'memo-2026-05-18.pdf',
data: bytes,
// CEK envelope is applied transparently; AAD bound to (bucket, key, org, version)
});
// Database — SQLite via Base
const rows = await osage.db.query(`SELECT * FROM clients WHERE org_id = ?`, [orgId]);
// Database — Supabase-compatible client (drop-in)
import { createClient } from '@supabase/supabase-js';
const sb = createClient('https://api.osage.cloud', osageJwt);
const { data } = await sb.from('clients').select().eq('org_id', orgId);
// Robotics — submit a planning request
const plan = await osage.robotics.plan({
agent: 'ag-9',
goal: {x: 12.4, y: -3.1, theta: 1.57},
map: 'depot-3-r2',
});Backends
The same SDK call can target multiple backends:
- Osage Base (SQLite, default) — embedded CEK envelope, Litestream replication.
- Supabase‑compatible API on top of Osage Base — for apps using Supabase SDKs; same auth and storage shape, SQLite underneath.
- Direct provider integrations — AI gateway routes to upstream providers (OpenAI, Anthropic, DO-AI, Fireworks, local Osage Engine) via the ZAP protocol.
- Customer-owned — sovereign deploys can plug in customer HSMs, customer object storage, customer search engines.
Observability
Every SDK call emits an OpenTelemetry span with the org id, project id, capability domain, action, and result code. Spans land in the customer’s Grafana stack on managed regions, or in their own OTLP collector on sovereign deploys.
Versioning
SDK majors follow the platform major; minors are additive only. Backwards‑incompatible changes require a new SDK major and a 12‑month overlap with the prior major. Sovereign deploys receive the matching SDK in the bundle.
Developer relations: [email protected].