ATAC - Terminal API Client Cheatsheet
ATAC (Arguably a Terminal API Client) is a Postman/Insomnia-style API client that lives entirely in your terminal. Its philosophy is free, account-less, and offline — request collections are stored as plain JSON/YAML files you can commit to Git, there is no cloud or login, and it runs as a single Rust binary. It supports the usual HTTP methods, authentication schemes, environments/variables, and pre-/post-request scripts, and can import existing Postman and Insomnia collections.
Installation
| Platform | Command |
|---|
| Cargo (all platforms) | cargo install atac |
| macOS (Homebrew) | brew install atac |
| Arch Linux (AUR) | yay -S atac |
| Binary | download from the GitHub Releases page |
| Verify | atac --version |
Launching
| Command | Description |
|---|
atac | Open with the default collections directory |
atac -d ~/api-collections | Use a specific directory for collections |
atac --help | Full option list |
| Import Postman | point ATAC at a Postman export; it converts it |
Layout & Navigation
| Key | Action |
|---|
Tab / Shift+Tab | Move between panes |
↑ / ↓ or j / k | Move within a list |
Enter | Open/select |
q | Quit |
? / h | Help |
Ctrl+c | Cancel / quit |
Collections & Requests
| Action | How |
|---|
| New collection | Create from the collections pane |
| New request | Add a request under a collection |
| Rename/delete | Manage items in the tree |
| Storage | Everything saved as files (JSON/YAML) → Git-friendly |
Building a Request
| Field | Notes |
|---|
| Method | GET, POST, PUT, PATCH, DELETE, … |
| URL | Supports {{variable}} interpolation |
| Query params | Editable key/value table |
| Headers | Key/value table |
| Body | Raw, JSON, form, multipart |
| Auth | Basic, Bearer token, and more |
Sending & Response
| Key | Action |
|---|
| Send request | Run the current request (async) |
| View response | Status, time, size, headers, body |
| Pretty view | JSON/response formatting |
| Copy | Copy response body |
Environments & Variables
| Concept | Use |
|---|
| Environment files | Define {{base_url}}, tokens, etc. |
| Variable interpolation | {{var}} in URL, headers, body |
| Switch environments | Dev/staging/prod without editing requests |
Scripting
| Hook | Purpose |
|---|
| Pre-request script | Set up variables/auth before sending |
| Post-request script | Extract values from the response (e.g. a token) |
Common Workflows
# Keep API collections in a repo and open them in the terminal
atac -d ./api-tests # edit requests, they save as files you can commit
# Import an existing Postman collection, then run it account-free
atac # import the Postman export, send requests
# Chain requests: capture a token in a post-request script, reuse via {{token}}
ATAC vs Other API Clients
| Aspect | ATAC | Postman | Yaak | Bruno |
|---|
| Interface | Terminal TUI | Desktop GUI | Desktop GUI | Desktop GUI |
| Account | None | Optional/cloud | None | None |
| Storage | Plain files (Git) | Cloud/local | Files (Git) | Files (Git) |
| Best for | Terminal-first, SSH, CI | Teams, cloud sync | GUI + Git | GUI + Git |
Resources