Kaja

macOS ยท Docker

A canvas for your APIs

An API client like Postman or Bruno, except your agent writes the payloads. Kaja draws the flow, and you can inspect every call.

An agent

writes the script, runs it

MCP

Kaja

every call lands here, for you to see and approve

Calls

gRPC.proto
OpenAPIschema
MCPtools
Twirp.proto

Output

See the results, not a log

A script can draw its output instead of printing it. Tables fill in as a loop runs, and they page and search on their own.

See the results, not a log

The record

Every call is on the record

Request, response, headers and duration for every call a run made, kept whether you or an agent started it.

Every call is on the record

Writing calls

You can write the calls too

Click a method and Kaja writes the call for you. Autocomplete covers apps, methods and message fields.

You can write the calls too

What else it does

Connect the apps you already have, and let an agent work in the same window you do.

An agent can drive it

Kaja runs an MCP server, so your agent can read what your apps expose, write TypeScript against them, and run it. Those runs show up in the sidebar next to your own.

Approval when you want it

A script can pause and wait for you before it makes a call. Useful when something writes.

gRPC, OpenAPI and MCP

Read the surface from your .proto files, from gRPC server reflection, from an OpenAPI document, or from another MCP server. Twirp is supported too.

gRPCOpenAPIMCPTwirp

macOS & Docker

Available on the Mac App Store or as a Docker container for any environment.

docker run --pull always --name kaja -d \
    -p 41520:41520 kajatools/kaja:latest

A closer look

Scroll sideways.

Runs and scripts side by side in the sidebar.
Runs and scripts side by side in the sidebar.
Typed imports for every connected app.
Typed imports for every connected app.
One run: its calls, or the canvas it drew.
One run: its calls, or the canvas it drew.
Response, headers, status and duration per call.
Response, headers, status and duration per call.
Every app, service and method, one tree.
Every app, service and method, one tree.

Try it on your own apps

Free and open source. Point it at a server and see how it goes.