The API client
that respects your time
A blazing-fast native app built with Rust. HTTP, WebSocket, SSE, GraphQL, gRPC — with scriptable requests, cloud sync, and zero lock-in.
Everything you need, nothing you don't
Built from the ground up for speed, privacy, and developer experience.
Lightning Fast
Native desktop app, not Electron. Under 2-second startup and less than 80MB of RAM.
Scriptable
Pre/post request JavaScript scripts with the kr API. Chain requests, assert responses, generate tokens.
Team Sync via Git
Share collections as .kairo.json files through your existing Git workflow. No cloud accounts required.
Environments & Secrets
Manage variables per environment. Switch between dev, staging, and production instantly.
Smart Autocomplete
Header suggestions, variable hints, and a Cmd+K command palette that keeps you in flow.
Full Response Inspector
JSON tree viewer, request timing waterfall, cookies, headers, and an integrated script console.
Multi-Protocol
WebSocket, SSE, GraphQL, and gRPC with dedicated panels and live streaming.
Cloud Sync & Workspaces
Push/pull collections to cloud, collaborate in team workspaces, and share public collection links.
Built-in Mock Server
Define routes, use template variables, and test against a local mock server — no external tools needed.
Build requests with confidence
A full-featured request builder with syntax-highlighted editors, variable interpolation, and tabbed organization for every part of your request.
- Method selector with all HTTP verbs
- Variable-highlighted URL bar with inline hints
- Tabs for Params, Headers, Body, Auth, and Scripts
- Monaco-powered editor with syntax highlighting
Automate with pre & post scripts
Write JavaScript that runs before or after your request. Generate tokens, chain requests, validate responses — all with the built-in kr API.
- Full kr API for env variables, crypto, and assertions
- Integrated console with color-coded output
- Chain values between requests automatically
- Access response data in post-request scripts
Run entire collections in one click
Select a collection or folder and execute all its requests sequentially. Watch live progress, see pass/fail results, and let pre/post scripts chain data between requests — like a mini test suite for your APIs.
- Sequential execution with live progress bar
- Pre/post request scripts run between each request
- Cancel mid-run — remaining requests marked as skipped
- Run a whole collection or just a specific folder
Cloud sync, workspaces & public collections
Push and pull collections to the cloud, collaborate in team workspaces, or share publicly with a link. Git sync via .kairo.json still works too — use whatever fits your workflow.
- Cloud push/pull to keep collections in sync across devices
- Team workspaces with role-based access control
- Public shareable URLs — anyone can import your collection
- Git .kairo.json sync still fully supported
- Secret variables masked in UI and excluded from exports
Anyone with the link can import this collection into their Kairo.
Import any OpenAPI spec
Point Kairo at an OpenAPI file or URL and import every endpoint in seconds. Preview before importing, auto-organize by tags, and support for OpenAPI 2.0 through 3.1.
- OpenAPI 2.0 (Swagger) and 3.x support
- Import from file or URL
- Preview endpoints, tags, and metadata before importing
- Auto-organize requests by tags into folders
Every protocol, one app
WebSocket, SSE, GraphQL, and gRPC — all built in with dedicated panels, live streaming, and full request/response tooling. No plugins needed.
Real-time, two-way messaging
Connect to any WebSocket endpoint and send/receive messages in real time. Full message log with timestamps, direction indicators, and connection metrics.
- Persistent connections with auto-reconnect
- Send JSON, text, or binary frames
- Live message log with sent/received indicators
- Connection metrics: latency, message count, uptime
- Custom headers and subprotocol support
Stream events as they happen
Subscribe to SSE endpoints and watch events stream in with type badges, auto-reconnect, and filterable event types.
- Live event stream with type-based color coding
- Filter events by type: message, alert, heartbeat, custom
- Auto-reconnect with last-event-id tracking
- Event ID and timestamp for every message
Query with confidence
A full GraphQL client with syntax-highlighted query editor, schema explorer, and variable support — all in one panel.
- Syntax-highlighted query editor with autocomplete
- Interactive schema explorer with type navigation
- Variables panel with JSON validation
- Query, mutation, and subscription support
- Introspection-based schema fetching
Proto-first API testing
Load .proto files, browse services and methods, and send requests with JSON payloads. Full request/response inspection with timing.
- Load .proto files or connect via server reflection
- Browse services, methods, and message types
- JSON request editor with proto field hints
- Unary, server-streaming, and bidirectional calls
- Response timing and metadata inspection
Stress test your APIs
without leaving the app
Load tests, stress tests, spike tests, soak tests, response assertions, and chain tests — all built in. No external tools, no YAML configs, no CLI. Just click and go.
Find the breaking point
Gradually ramp from 1 to 500 virtual users and watch your API's response times, throughput, and error rates in real time. Kairo automatically detects where your service starts to degrade.
- Ramp from 1 to 500 VUs with linear, stepped, or exponential curves
- Live metric cards: avg/p50/p90/p95/p99 response times
- Automatic breaking point detection when error rate exceeds threshold
- Response time distribution with color-coded buckets
- Timeline table with per-interval VU count, RPS, and percentiles
| Time | VUs | RPS | Avg | p95 | Errors |
|---|---|---|---|---|---|
| 0s | 1 | 12 | 45ms | 89ms | 0% |
| 10s | 20 | 234 | 52ms | 112ms | 0% |
| 20s | 40 | 456 | 68ms | 145ms | 0.2% |
| 30s | 60 | 612 | 95ms | 210ms | 0.8% |
| 40s | 80 | 701 | 142ms | 385ms | 2.1% |
| 50s | 100 | 724 | 289ms | 820ms | 5.4% |
| 60s | 100 | 680 | 341ms | 950ms | 8.2% |
One click to start testing
Pick a preset and run. Smart defaults auto-fill your current request's URL, method, headers, and auth — so you're 3 clicks from a running test. Customize anything, or just hit Go.
- 6 preset cards: Load, Stress, Spike, Soak, Assertions, Chain
- "Use Active Request" auto-fills URL, method, headers, and body
- Spike tests show pre-spike / spike / recovery phases with recovery time
- Soak tests support durations from 1 minute to 1 hour
Test complete API flows
Chain requests into sequences that pass data between steps. Extract a token from login, use it to fetch a user, then update their profile — all validated automatically.
- Extract variables from JSON paths, headers, or status codes
- Variables auto-injected into subsequent requests
- Per-step assertions with actual vs. expected comparison
- Visual flow diagram with pass/fail indicators
- Stop on first failure or run all steps
Validate every detail
Define assertions on status codes, response times, headers, body content, and JSON paths. Get instant pass/fail results with actual vs. expected values side by side.
- 11 operators: equals, contains, regex, less than, greater than, and more
- JSON path assertions with dot-notation traversal
- Header and body content matching
- Response time thresholds with color-coded results
And so much more
Every detail crafted for a seamless API development workflow.
cURL Paste DetectionNew
Paste a cURL command directly into the URL bar and it auto-fills method, URL, headers, body, and auth.
Response PersistenceNew
Save responses alongside requests. Reopen a saved request and your last response is right there.
Mock ServerNew
Define routes, template variables, and test against a local mock server without any external tools.
Public CollectionsNew
Share collections via a public link — anyone can import them into their Kairo with one click.
Light & Dark ThemesNew
Warm beige light mode and dark mode, both with opaque and vibrancy variants. Easy on the eyes.
Per-Tab StateNew
Switch between tabs without losing responses. Each tab preserves its full request and response data.
cURL Import/Export
Paste a cURL command or export any request as cURL.
Command Palette
Cmd+K to find requests, switch envs, or run actions.
Request History
Full history with search, filter, and re-send capabilities.
Keyboard Shortcuts
Full keyboard navigation. Send, save, switch tabs — no mouse needed.
Draggable Layouts
Resize panels and arrange your workspace your way.
Collection Tree
Organize requests in nested folders with drag-and-drop.
Cookie Manager
View, edit, and manage cookies across domains and sessions.
Status Badges
Color-coded HTTP status indicators at a glance.
“Man is made by his belief. As he believes, so he is.”


Yooooo Move the mask
Ready to get started?
Download Kairo for free and start building better APIs today.
Built with Rust. Runs on macOS, Windows, and Linux.
Loading version…