Your first request
This guide walks through the full loop from a blank workspace to a committed
.tiger file: create a collection, add a request, send it, inspect the
response, save, and commit with Tiger's built-in Git panel.
Step 1 - Open or create a collection
A collection in Tiger is a plain folder on disk. Every request you create inside it
becomes a .tiger text file. There are three ways to start:
.tiger files they appear immediately; if it is empty you get a blank collection ready for new requests.After any of these steps the collection appears in the left sidebar with its name at the top and any folders or requests nested below it.
If you just installed Tiger and want to explore the format first, look for the
examples/jsonplaceholder folder in the Tiger repository. Open it as a
collection to see a real set of .tiger files in action.
Step 2 - Add a request
With a collection open, press Cmd+T (macOS) or Ctrl+T (Windows / Linux) to create a new request tab, or click the + icon next to the collection name in the sidebar. A new untitled request opens as an editor tab.
Two things to set right away:
-
Method - click the method badge on the left of the URL bar (defaults
to
GET) and choose the HTTP method you need: GET, POST, PUT, PATCH, DELETE, HEAD, or OPTIONS. -
URL - click into the URL field and type the endpoint. You can use
a literal URL or a
{{variable}}placeholder. A warning appears under the bar for any variable that is not defined in the active environment.
For a quick sanity check, try the public JSONPlaceholder API:
GET https://jsonplaceholder.typicode.com/posts/1
Step 3 - Add headers, query params, and a body
Below the URL bar a set of tabs lets you configure every part of the request. You only need to fill in what the endpoint actually requires - all tabs are optional.
Query params
Switch to the Params tab and add key/value rows. Tiger appends them
to the URL as a query string. Uncheck a row to disable it without deleting it (the
~ prefix in the saved file marks disabled lines).
Headers
Switch to the Headers tab and add rows in the same way. A
Content-Type header is added automatically when you choose a structured
body type, so you usually do not need to set it by hand.
Authentication
The Auth tab covers the most common schemes: Bearer token, Basic
(username + password), API key (sent as a header or a query parameter), and OAuth 2.0
client credentials. Tiger resolves {{variable}} references in every auth
field, so you can store tokens in an environment instead of hard-coding them.
See Authentication for the full reference.
Request body
The Body tab offers several body types. Pick the one that matches the endpoint:
| Body type | When to use |
|---|---|
json | REST APIs that consume application/json. A format button and invalid-JSON indicator are shown in the editor. |
xml | SOAP and other XML APIs. Raw XML editor with no auto-wrapping. |
form | URL-encoded form submissions (application/x-www-form-urlencoded). |
multipart | File uploads and mixed field/file payloads (multipart/form-data). Each row can be a text value or a file picker. |
graphql | GraphQL queries and mutations. A separate variables pane sits alongside the query editor. |
text | Plain text or any content type not covered above. |
none | No body (GET, HEAD, DELETE with no payload). |
For a POST request to JSONPlaceholder, switch to Body, choose json, and enter:
{
"title": "Hello from Tiger",
"body": "My first request",
"userId": 1
}
Dynamic variables like {{$uuid}}, {{$timestamp}},
{{$isoTimestamp}}, and {{$randomInt}} are re-evaluated on
every send, so you can use them to generate unique IDs or timestamps without any
scripting.
Step 4 - Send and read the response
Click Send (or press Cmd+Enter / Ctrl+Enter) to fire the request. The response panel on the right fills in immediately.
The response panel shows:
- Status - the HTTP status code and reason phrase, color-coded (green for 2xx, yellow for 3xx/4xx, red for 5xx).
- Timing - total round-trip time. Hover over it for a breakdown: DNS lookup, TCP handshake, TLS negotiation, time to first byte (TTFB), and download time.
- Size - response body size after transfer.
- Headers - switch to the Headers sub-tab to inspect every response header.
- Body - JSON is syntax-highlighted and pretty-printed by default. Toggle between Pretty and Raw with the button in the panel, or turn on word-wrap. HTML responses can be previewed in a sandboxed frame; images are shown inline.
To search inside a large response body, press Cmd+F / Ctrl+F while the response panel is focused. Matches are highlighted and you can cycle through them.
If the request fails (network error, timeout, or certificate problem) the error is shown instead of a status code. You can cancel a slow in-flight request with the Cancel button that replaces Send while a request is running.
Step 5 - Save the request
Press Cmd+S / Ctrl+S, or click
Save in the toolbar. Tiger writes a .tiger file to disk
inside the collection folder. The filename is derived from the request name; you can
rename it by double-clicking the name in the sidebar (or pressing F2).
The saved file is plain text and readable in any editor. For the POST example above it would look like this:
meta {
name: Create post
seq: 1
}
post {
url: https://jsonplaceholder.typicode.com/posts
}
headers {
Content-Type: application/json
}
body:json {
{
"title": "Hello from Tiger",
"body": "My first request",
"userId": 1
}
}
A ~ prefix on any line disables that header or param without removing it
from the file. The format is designed to produce clean, readable diffs when you change
a URL, add a header, or update a body field.
Give requests meaningful names before saving. The name appears in the sidebar, in the tab strip, in the collection runner, and in the MCP tool list that AI clients see. A name like Create post is more useful than POST /posts.
Step 6 - Commit with built-in Git
If your collection folder is a Git repository, Tiger shows a Git status indicator in the sidebar next to the collection name (a count of uncommitted changes and ahead/behind counts for the remote). Click the Git icon to open the Git panel.
From the Git panel you can:
- See a diff of every changed
.tigerfile. - Stage files, write a commit message, and commit.
- Pull and push to the configured remote.
- Create or switch branches.
- View the commit log.
- Discard local changes to revert a file to its last committed state.
If the collection folder is not yet a Git repository, use Init in the Git panel to initialize one, then Set remote to add an origin and start pushing.
The diff for the new request file above would be clean and readable in any Git host's
pull request view - which is exactly what makes the .tiger format useful
for team workflows.
You can also use your external Git client or the command line instead of Tiger's built-in panel. Tiger does not lock the folder - it is just a folder of text files.
Quick-reference: keyboard shortcuts
Press Cmd+/ / Ctrl+/ at any time to open the full shortcuts overlay. The most useful ones while building requests:
| Action | macOS | Windows / Linux |
|---|---|---|
| New request tab | Cmd+T | Ctrl+T |
| New collection | Cmd+N | Ctrl+N |
| Open collection | Cmd+O | Ctrl+O |
| Send request | Cmd+Enter | Ctrl+Enter |
| Save request | Cmd+S | Ctrl+S |
| Close tab | Cmd+W | Ctrl+W |
| Jump to tab 1-9 | Cmd+1-9 | Ctrl+1-9 |
| Command palette | Cmd+K | Ctrl+K |
| Search in response | Cmd+F | Ctrl+F |
| Settings | Cmd+, | Ctrl+, |
| Shortcuts overlay | Cmd+/ | Ctrl+/ |
Every one of these also lives in the native application menu (File, Edit, Request, View, Window, Help), so you can reach them with the mouse too. Tiger reopens at the window size and position you left it in, and remembers a maximized window.
What to explore next
- Environments and variables - swap base URLs and tokens without editing each request.
- Authentication - Bearer, Basic, API key, and OAuth 2.0 client credentials.
- The .tiger format - the full file format reference, including captures and scripts.
- Importing - bring in a Postman collection, OpenAPI spec, or curl command.