TypeScript SDK
Install, authenticate, and send your first message with the typed SDK.
@kortix/sdk is the typed client for the Kortix platform. It wraps the Kortix
REST API and the agent runtime in one interface. React sessions can use the
server-selected OpenCode REST or ACP transport. Your app never calls either
runtime transport directly. The core client is fetch-based and runs in Node,
Bun, and browsers.
Install
npm install @kortix/sdkreact (18+) and @tanstack/react-query (5.75+) are optional peers, needed only for React hooks.
Create a client
Call createKortix once, with your API base URL and a function that returns your token.
import { createKortix } from '@kortix/sdk';
export const kortix = createKortix({
backendUrl: 'https://api.kortix.com/v1',
getToken: async () => process.env.KORTIX_API_KEY!,
});backendUrl and getToken are the only required fields. The SDK calls getToken on every request and caches nothing — your host owns token storage and refresh.
Create an API key at User settings → API keys. The key starts with kortix_pat_ and shows only once. Store it as a secret and return it from getToken. See Auth for token types and scopes.
Start your first session
-
Create a session in your project.
const created = await kortix.project(projectId).sessions.create(); const session = kortix.session(projectId, created.session_id); -
Wait for the sandbox to accept work.
await session.ensureReady();ensureReady()starts or resumes the session sandbox. It polls the session's/startendpoint — each call long-polls up to 30 s — until the runtime is ready, hits a terminal stage, or its deadline elapses (default ~3 min, configurable via{ readyTimeoutMs }). On a cold boot it keeps polling while the sandbox reportsretriable: true; it only throws anApiErrorwithcode: 'RUNTIME_UNAVAILABLE'if the runtime is still not ready when the deadline expires. See Sessions. -
Send a message to the agent.
await session.send('Add a README');send()callsensureReady()for you, then sends the message.
createKortix gives you an imperative client: call methods for every action, like projects, sessions, secrets, and triggers. @kortix/sdk/react gives you hooks for live UI data — useSession runs a whole session in one hook.