YA

Yaak

Offline-first API client for REST, GraphQL and gRPC

Developer Tools & Git ★ 19.2k stars Easy setup MIT

Yaak is a desktop API client for sending HTTP, GraphQL, and gRPC requests, designed to be fast and privacy-respecting. It stores data locally and supports plugins and Git-friendly workspaces.

Key features

  • REST, GraphQL and gRPC support
  • Local data storage
  • Plugin system
  • Git-friendly workspaces

Pros & cons

Strengths

  • Fast native app
  • Local-first data storage
  • Git-friendly workspaces

Trade-offs

  • Younger than rivals
  • No built-in cloud sync

Yaak replaces

Last reviewed Aug 26, 2026 · 816 words

There is nothing to deploy for Yaak. It is a desktop application for macOS, Windows and Linux that sends REST, GraphQL, gRPC, WebSocket and server-sent-event requests, and it keeps every workspace in a local database on your machine. It appears in a self-hosting directory because it answers a specific complaint: Postman and Insomnia both moved their sync and, at times, their basic workflows behind cloud accounts, and Yaak is the MIT-licensed client from Insomnia's original author that refuses to. The self-hosting question with Yaak is not "where do I run it" but "how do I share and back up the workspaces", and the answer is a folder in git.

Local-first means your requests never leave the laptop

Yaak stores workspaces, environments, cookies and history locally and makes no calls home for them. Nothing requires an account. That matters for a homelab more than it sounds: the requests you keep in an API client are a map of every internal service, its auth headers and, unless you are careful, its tokens. In a cloud-synced client that map sits on a vendor's servers under a free-tier account you created years ago. In Yaak it sits in a file you control. The trade is stated plainly in its cons: there is no built-in cloud sync, so two machines do not see the same workspace unless you arrange it.

Sync directory plus git is the sharing model

Yaak's answer to sync is a per-workspace setting that mirrors the workspace to a directory as plain text files, one per request, folder and environment. Point that directory at a git repo and you have versioned, diffable, reviewable API definitions:

mkdir -p ~/code/homelab-api/yaak
cd ~/code/homelab-api && git init
# In Yaak: workspace settings, then Sync, choose ~/code/homelab-api/yaak
git add yaak && git commit -m "Add homelab API workspace"

Push it to your own Gitea or Forgejo and any collaborator who clones the repo and points their Yaak at the same folder gets the workspace. Edits on either side become commits. It is slower than a real-time sync and it will not merge two people editing the same request in the same minute, but for a household or a small team it is the exact right amount of infrastructure, which is none.

Keep secrets in environments and out of the repo

The one discipline the git model demands is separating environment values from requests. Yaak's environments hold variables like base_url and api_token, and requests reference them with {{ api_token }} template syntax. Commit the request files; keep the environment that holds real tokens either uncommitted or replaced with a template of empty values. Yaak also supports template functions for things like timestamps and encoding, so derived values are computed at request time instead of typed in. If you are already running Vaultwarden, keep the actual secrets there and paste them on setup.

It is fast, and it is young

The application is built on Tauri, which is why the binary is small and startup is instant compared with the Electron clients it competes with; the 256 MB figure is about what it idles at. The other side of that is age: the first release was in 2024. Importers for Postman, Insomnia, OpenAPI and curl are present and work, but if you rely on a niche Postman feature such as its scripting sandbox or mock servers, check the plugin list before switching. Plugins are written in TypeScript and cover auth flows, importers and template functions, and the ecosystem is growing but not large.

The pairing that makes it a workflow, not just a tool

Yaak is for exploring and building requests. Once a request matters enough to run unattended, transcribe it into a Hurl file and commit that beside the Yaak folder: Hurl runs in CI and cron with assertions, which a GUI client cannot do without a runner. The two together, both file-based and both in the same repo, replace the whole Postman collection-plus-monitor bundle with nothing to host and nothing to pay for. The broader dev-tools category lists the hosted alternatives such as Hoppscotch if you specifically want a browser-based client on your own server.

What I'd do

Install Yaak, create one workspace per environment you manage, turn on directory sync into a git repo hosted on your own forge, and gitignore the environment file that carries real tokens. Import your existing Postman or Insomnia export on day one and delete the cloud account within the week. For requests that must keep working, write a Hurl file. That is the whole setup, and it is the first API client arrangement I have had in years where the question "where is that request" has a boring answer: in git.

Compare Yaak

11 head-to-head comparisons.

Similar developer tools & git apps