Yaak - Desktop API Client Cheatsheet
Yaak is a modern, offline-first desktop API client built with Tauri, Rust, and React. It organizes and executes REST, GraphQL, gRPC, WebSocket, and Server-Sent Events (SSE) requests in a fast, lightweight app that is privacy-first: no telemetry, no account required, and no cloud lock-in. Workspaces are stored as plain files, so you can sync them with Git, and it supports environments, variables, and importing from Postman/Insomnia.
Installation
| Platform | Method |
|---|
| macOS | Download the .dmg from yaak.app, or brew install --cask yaak |
| Windows | Download the installer from yaak.app |
| Linux | AppImage / .deb / .rpm from yaak.app |
| Verify | Launch the app; check Help → About for version |
Request Types
| Type | Use |
|---|
| REST / HTTP | Standard API requests |
| GraphQL | Queries/mutations with schema introspection |
| gRPC | Call gRPC services (with reflection) |
| WebSocket | Bidirectional socket connections |
| SSE | Server-Sent Events streams |
Core Concepts
| Term | Meaning |
|---|
| Workspace | A project grouping requests/environments |
| Folder | Organizes requests within a workspace |
| Environment | Named set of variables (dev/staging/prod) |
| Variable | ${[ name ]} template used across requests |
| Plain-file sync | Workspace data stored as files → Git-friendly |
Building Requests
| Element | Notes |
|---|
| Method + URL | With variable templating |
| Query params | Key/value editor |
| Headers | Key/value editor |
| Body | JSON, form, GraphQL, binary, etc. |
| Auth | Bearer, Basic, OAuth 2.0, API key |
Environments & Variables
| Feature | Use |
|---|
| Environments | Switch base URLs/secrets per stage |
| Variables | Reference with ${[ var ]} in any field |
| Dynamic values | Generated values (timestamps, UUIDs) |
| Secrets | Kept out of synced plain files where configured |
Productivity Features
| Feature | Description |
|---|
| Response viewer | Pretty JSON, headers, timing, size |
| History | Previous responses per request |
| Import | Postman, Insomnia, cURL, OpenAPI |
| Plugins | Extend via a plugin system |
| Git sync | Commit the workspace files to version control |
| Templating | Chain requests by referencing prior responses |
gRPC & GraphQL Notes
| Protocol | Capability |
|---|
| gRPC | Server reflection to discover services/methods; streaming |
| GraphQL | Schema introspection, query builder, variables |
Common Workflows
# Team workflow with Git-based sync
1. Create a workspace; store it in your repo
2. Define dev/staging/prod environments with variables
3. Build REST/GraphQL/gRPC requests using ${[ base_url ]}
4. Commit the plain files; teammates pull and get the same collection
# Chain requests
- Send a login request, capture the token from the response
- Reference it as a variable in subsequent authorized requests
Yaak vs Other API Clients
| Aspect | Yaak | Postman | ATAC | Bruno |
|---|
| Interface | Desktop GUI | Desktop GUI | Terminal TUI | Desktop GUI |
| Protocols | REST/GraphQL/gRPC/WS/SSE | Broad | REST | REST/GraphQL |
| Telemetry | None | Yes | None | None |
| Storage | Plain files (Git) | Cloud/local | Files | Files (Git) |
| Best for | Privacy-first GUI, multi-protocol | Teams/cloud | Terminal-first | GUI + Git |
Resources