Collections & folders
A collection is an ordinary folder on your disk. Every request inside it is a
plain-text .tiger file, subfolders nest arbitrarily, and the whole
tree is version-controlled with Git - no proprietary database, no account.
What a collection looks like on disk
When you open a folder in Tiger, or create a new one, Tiger reads it as a collection. The layout is straightforward:
my-api/ ← collection root (the folder you open)
collection.tiger ← optional collection settings
environments/
staging.tiger ← named environment
production.tiger
get-users.tiger ← a request at the collection root
auth/
login.tiger ← a request in the "auth" folder
refresh-token.tiger
posts/
create-post.tiger
folder.tiger ← optional folder settings
drafts/
list-drafts.tiger
Tiger scans the root recursively. Any .tiger file that is not
named collection.tiger or folder.tiger, and is not
inside the environments/ directory, is treated as a request.
Hidden directories (names starting with .) are skipped, so your
.git folder is never touched.
Because the files are plain text, you can rename, move, duplicate or delete requests from your file manager or terminal - Tiger picks up the changes the next time you open the collection.
collection.tiger - collection settings
Placing a collection.tiger file at the root lets you store
collection-level settings. The file is optional; Tiger opens the folder
even without one.
Three things can go in collection.tiger:
- A display name - overrides the folder name in the sidebar.
- A default auth - inherited by every request in the collection
unless the request sets its own auth (including an explicit
auth:noneto opt out of inheritance). - Free-form documentation - a
docsblock that holds Markdown notes shown on the collection page.
meta {
name: JSONPlaceholder API
}
auth:bearer {
token: {{token}}
}
docs {
Public REST API at https://jsonplaceholder.typicode.com.
Rate-limited to 100 requests/minute per IP.
}
The auth:bearer block above means every request inherits bearer auth
automatically. A request that adds its own auth:basic block will use
basic auth instead. A request that adds auth:none sends no auth at all,
regardless of the collection default.
folder.tiger - folder-level settings
A folder.tiger file inside any subfolder stores the same three fields
as collection.tiger: a display name, a default auth for requests inside
that folder, and a docs block. Folder settings override collection
settings for requests inside the folder.
Creating a new collection
Tiger offers three ways to start a collection:
-
New collection - click the
+button in the sidebar header (or use the welcome screen). Tiger prompts you to pick a parent directory, creates an empty folder there, and immediately opens it. The folder starts with no files; add your first request with the+button on the collection header in the sidebar. -
Open a folder - click the folder icon in the sidebar header to
open any existing directory. Tiger reads it as a collection whether or not it
already contains
.tigerfiles. - Clone from Git - click the branch icon to clone a remote repository directly inside Tiger. After the clone finishes, the collection opens automatically.
Multiple collections can be open at the same time. Each appears as its own collapsible section in the sidebar.
Sidebar - the full action set
Everything you need to manage a collection is in the sidebar, accessible from the row buttons or the right-click context menu.
Collection-level actions
| Action | How to trigger |
|---|---|
| New request | + icon on the collection row, or Cmd/Ctrl+T |
| Open collection settings | Click the collection name row (opens it as a tab) |
| Git panel | Git branch icon on the collection row, or the inline git-status chips |
| Close collection | × icon on the collection row |
| Context menu | Right-click anywhere on the collection name row |
Folder actions
| Action | How to trigger |
|---|---|
| Expand / collapse | Click the chevron, or click the folder row |
| Open folder settings | Click the folder name (opens it as a tab) |
| Rename folder | Double-click the folder name, or right-click and choose Rename |
| Duplicate folder | Copy icon on the folder row, or right-click and choose Duplicate |
| Drop a request into a folder | Drag a request row and release it on the target folder row (moves the file on disk) |
Request actions
| Action | How to trigger |
|---|---|
| Open request | Click the request row |
| Rename request | Double-click the request name, or press F2 while the request is active |
| Duplicate request | Copy icon on the request row |
| Delete request | Trash icon on the request row (confirmation required) |
| Move to a different folder | Drag the request row and drop it onto a folder row or the collection header |
| Right-click menu | Right-click any request row for Close / Close others / Close to right / Close all / Reveal in sidebar |
Drag-and-drop moves the .tiger file on disk. The change is
immediately reflected in your working directory, so it will appear as a rename
in git status.
Inline rename
Tiger follows the file-manager convention for renaming. Double-click any request or folder name in the sidebar to start editing it inline. Press Enter to confirm or Escape to cancel. For the currently active request, pressing F2 starts rename without needing the mouse.
Renaming a request renames the underlying .tiger file on disk (and
updates the meta.name field inside it). Renaming a folder renames the
directory.
Search
The search box at the top of the sidebar filters across all open collections by request name. Matching requests are shown flat, grouped by collection name, so you can find a request without knowing which folder it lives in. Clear the search to return to the full tree view.
Git status chips
When a collection folder is a Git repository, the collection header shows small status chips:
- A number - uncommitted changes in the working tree.
- An up arrow with a count - commits ahead of the remote (ready to push).
- A down arrow with a count - commits behind the remote (available to pull).
- A check mark - the working tree is clean and in sync with the remote.
Clicking any chip opens the Git panel for that collection. The full Git workflow (status, diff, commit, pull, push, branch, log, and more) is documented on the Git integration page.
Tabs
Every request and every collection or folder page opens in its own tab at the top of the editor area. Tabs let you work on several requests at once and switch between them quickly.
Tab shortcuts
| Action | macOS | Windows / Linux |
|---|---|---|
| Switch to tab 1-9 | Cmd+1 - 9 | Ctrl+1 - 9 |
| Close current tab | Cmd+W | Ctrl+W |
| Cycle to next tab | Cmd+Shift+] | Ctrl+Shift+] |
| Cycle to previous tab | Cmd+Shift+[ | Ctrl+Shift+[ |
| New request tab | Cmd+T | Ctrl+T |
Drag-to-reorder
Drag any tab left or right along the tab bar to reorder it. The new order is remembered within the session.
Unsaved-change indicator
A small dot appears on a tab when the request has unsaved changes. The dot disappears after you save (Cmd/Ctrl+S).
Session restore
When you quit and reopen Tiger, the sidebar restores all previously open collections, and the tab strip and active tab are exactly as you left them. You pick up where you stopped without manually reopening anything.
Right-click tab menu
Right-clicking a tab shows options to close just that tab, close all other tabs, close tabs to the right, close all tabs, or reveal the corresponding request in the sidebar.
The .tiger file format
Each request is stored as a single .tiger text file. The format uses
named blocks, is readable in any editor, and produces clean, reviewable diffs.
A minimal example:
meta {
name: Create post
seq: 2
}
post {
url: {{baseUrl}}/posts
}
headers {
Content-Type: application/json
}
body:json {
{ "title": "Hello from Tiger" }
}
auth:bearer {
token: {{token}}
}
capture {
postId: body.id
}
A ~ prefix on a header or query-param line disables it without deleting
it - handy for commenting out a value during debugging. The capture
block writes a value from the response into an environment variable for the next
request in a chain.
For the full field reference see the .tiger format page.
Importing an existing collection
If your team already has a collection in Postman, Insomnia, Bruno, or OpenAPI, you
can import it instead of rebuilding it by hand. Tiger converts each request into
its own .tiger file and creates matching subfolders. The importer
handles:
- Postman v2.0 and v2.1 JSON exports
- Insomnia v4 exports
- Bruno folder of
.brufiles - OpenAPI 3 and Swagger 2 specs (
.jsonor.yaml) - WSDL / SOAP (
.wsdlor.xml) - each binding operation becomes a POST with a ready-to-fill SOAP envelope (new in 0.4.0) - A pasted curl command - creates a single request
Click the Import / Export icon (double-arrow) in the sidebar header to open the importer. The full import guide is on the Importing page.