The API client built for you and your agents.
Connect gRPC, OpenAPI, or MCP. Explore APIs yourself, or let an agent write and run typed scripts. Every request stays visible and inspectable.
No setup. Opens a demo API.

Connect. Run. Inspect.
One window: your APIs on the left, the script in the middle, and every call it made underneath.
01 · Connect
Connect your API
Browse services and methods from gRPC, OpenAPI, MCP, and Twirp.
02 · Run
Run it yourself or ask an agent
Send one request manually, or let an agent write a typed script for a larger task.
03 · Inspect
See exactly what happened
Requests, responses, headers, duration, and status stay visible for every run.
Agents can do the work without becoming a black box.
Let an agent write and run TypeScript against your APIs. Every request it makes appears alongside your own.
You ask
“Check every endpoint in this service and show me anything slower than 500 ms.”
The agent writes a typed script
slow-endpoints.tsimport { kaja } from "kaja"; import { Theatre } from "theatre"; const calls = { ListMovies: () => Theatre.ListMovies({}), ListShows: () => Theatre.ListShows({}), ListTheaters: () => Theatre.ListTheaters({}), }; const slow: string[][] = []; for (const [name, send] of Object.entries(calls)) { const started = Date.now(); await send(); const ms = Date.now() - started; if (ms > 500) slow.push([name, `${ms} ms`]); } kaja.table(["method", "duration"], slow);It runs, and every call lands in Kaja
The run, the calls it made and what came back, in the console your own runs land in.
Try Kaja.
Explore an API in the live demo. No setup required.