Tetiva is a desktop API client that speaks HTTP, gRPC, GraphQL and WebSocket in one window. Collections, environments, cookies and request history live in a SQLite file on your machine, an account is only needed for sync and publishing, and the app collects no telemetry. These docs describe what the client does today: installation, your first request, the four protocols, scripting and tests, import from Postman, Insomnia, Hoppscotch, OpenAPI and HAR, sync, publishing collections, and the built-in MCP server for AI agents.
Start here
- Installation — DMG for macOS, installer for Windows,
.debfor Ubuntu and Debian, system requirements. - Quick start — first request in two minutes.
- Migrating from Postman — v2.1 export, what carries over, what you rewrite by hand.
How the client works
Data stays on disk. Everything goes into ~/.tetiva/data.db. Collections, environments and history work offline, with no sign-in and no server.
The network is only used when you ask. The client reaches out in eight cases: you send a request; you open a saved GraphQL or gRPC request that reads its schema from the server — introspection for GraphQL, reflection for gRPC, while a local schema or .proto file is read from disk; the update check is on, and with it the download of a new version (two switches in settings); sync is connected; you sign in through the browser; you fetch an OAuth 2.0 token on the Auth tab; you are signed in and publish a collection or look at its page's status on the Publish tab, in the Publications panel or in the collection menu, and while publishing is on, the app also fetches the publication list by itself at startup and when you switch workspaces; you import a published collection from its link or with Open in Tetiva, and the app downloads it from api.tetiva.app. No analytics, no usage reports.
Four protocols, one interface. Tabs, collections, environments and auth behave the same for HTTP, gRPC, GraphQL and WebSocket — only the request editor changes.
Scripts run in a sandbox. Pre-request and post-response scripts execute on the goja engine with no file system, no network access and a 5-second timeout. See Scripting.
Import and export. Collections come in from Postman v2.1, Insomnia, Hoppscotch, OpenAPI and Swagger specs and HAR files, environments from Postman and Hoppscotch files. They go out as Postman v2.1 JSON and Postman environment files, so you can leave whenever you want — see Import and export.
The desktop client is free and open source — download it here. The sections below list every page; each one answers a single question end to end.