SDKs
The TypeScript and Python SDKs.
Every curl call in these docs is an HTTP request you can make yourself. The SDKs are the same Core API with the tedious parts already written: a stream that resumes from the sequence number it last saw, a client that answers the tool calls the agent routes to your code, and types for every event.
TypeScript
@subako-ai/sdk, plus React bindings and ready-made tools for a page the
agent drives.
Python
subako — an async client for a backend, a job, or a worker.
TypeScript
npm install @subako-ai/sdk
Node 22 or newer on the server, and the same package runs in the browser. It is ESM only and ships no runtime dependencies. The Subako console is built on it.
It splits the API along the credential: one client for your backend, which holds the API key and creates sessions, and one for the browser, which holds a session token and does everything inside a session. The types say which routes each one reaches, so the key cannot end up in page code by accident.
A session connection reads the log, opens the stream, and keeps both. A dropped connection comes back on its own, resuming where it left off. What it hands your renderer is one immutable snapshot: the events, the transcript, and the approvals and forms waiting on someone.
| Package | What it is |
|---|---|
@subako-ai/sdk |
The client. Sessions, streaming, tools, errors, pagination. |
@subako-ai/react |
A provider and hooks over a session connection. |
@subako-ai/tools |
Ready-made tools that drive a page: fill a form, submit it, navigate. |
@subako-ai/assistant-ui |
A working chat over a session, or a runtime for your own thread. |
@subako-ai/react-hook-form |
react-hook-form as a form-tool spec. |
@subako-ai/react-router |
React Router as a navigate-tool spec. |
@subako-ai/tanstack-router |
TanStack Router as a navigate-tool spec. |
Every package is Apache-2.0 and versioned together. The TypeScript SDK documentation has its quickstart, its reference, and a worked example of a backend minting a token for a browser.
Python
uv add subakopip install subakoPython 3.12 or newer. The client is async only, so it belongs in a backend, a job, or a worker.
It covers the same ground: a namespace per resource, typed errors, cursor pagination, a session connection that reconnects on its own, and tool clients that serve functions from your process to a session. Idempotency keys cover the calls you do not want to run twice. subako on PyPI has the install and a backend-and-frontend example.