Tiger vs Insomnia
Insomnia is a capable API client with a free tier, cloud sync, and a plugin ecosystem. Tiger keeps everything local: no account, no cloud, plain-text collections in Git, and a built-in MCP server so AI assistants can run your requests directly.
Where they overlap
Both Tiger and Insomnia support REST, GraphQL, OAuth 2.0, pre- and post-request
JavaScript, named environments with {{variable}} interpolation, response
captures for request chaining, client certificate authentication (mTLS), multipart file
upload, and native builds on macOS, Windows, and Linux. Both can import Postman
and OpenAPI collections, and both let you set secret variables that are masked in the UI.
Tiger imports Insomnia v4 export files (.json) directly. Open Tiger,
choose File → Import, select your Insomnia export, and every
request, folder, and environment is recreated on disk as .tiger files
in under a minute.
Side-by-side comparison
| Capability | Tiger 0.4.0 | Insomnia |
|---|---|---|
| License | MIT | Partial - core Apache 2.0; product is cloud-leaning with proprietary layers |
| Collections stored as plain text in Git | Yes - one .tiger file per request; committed directly to your repo |
No - stored in a local SQLite database by default; not diff-friendly |
| Account required | Never - zero signup; every feature works offline | Partial - a local scratch project works without sign-in; team sync and some features require an account |
| Works fully offline | Yes - every feature available with no network connection | Partial - core request sending is offline; cloud sync requires connectivity |
| Built-in Git panel | Yes - status, diff, commit, push, pull, branch, checkout, clone, log - all inside the app | No - no native Git UI; uses its own proprietary sync layer |
| MCP server for AI clients | Yes - built-in tiger-mcp binary; exposes list_requests, list_environments, get_request, run_request to Claude, Cursor, and others |
No |
| WSDL / SOAP import | Yes - each binding operation becomes a POST with a ready-to-fill SOAP envelope; SOAP 1.1 + 1.2 (added in 0.4.0) | No - raw XML bodies can be sent manually, but there is no WSDL importer |
| GraphQL | Yes - dedicated body type with a separate variables pane | Yes - GraphQL supported with schema introspection |
| Pre/post-request scripting | Yes - sandboxed JavaScript; assertions surface as pass/fail tests | Yes - pre-request and after-response scripts supported |
| Response captures (request chaining) | Yes - declarative capture block in the .tiger file; no scripting required |
Yes - response chaining via environment variable writes in scripts |
| Collection runner with test assertions | Yes - runs a collection or folder with live pass/fail verdicts and a stop button | Partial - runner available via the separate inso CLI tool; desktop GUI runner is limited |
| OAuth 2.0 client credentials | Yes | Yes |
| Client certificates (mTLS) | Yes - PEM pair or PFX/PKCS12, plus custom CA bundle | Yes |
| Built-in performance runs | Yes - configurable concurrency; min/max/avg/p50/p95 results locally | No - no built-in load or perf runner in the desktop app |
| Plugin ecosystem | Not yet - no plugin API in 0.4.0; scripting covers most custom logic | Yes - published npm plugin API with a community registry |
| Cloud team sync | No - Git is the sync layer; Tiger has no proprietary cloud | Yes - cloud sync with project sharing on paid tiers |
| Import: Insomnia v4, Postman v2.0/2.1, OpenAPI 3 / Swagger 2, Bruno, curl, WSDL | All six | Most - Insomnia native format, Postman, OpenAPI; no WSDL importer |
| macOS / Windows / Linux native builds | Yes - native builds for all three; Linux: AppImage + .deb | Yes |
The core difference: plain text vs a database
Insomnia stores collections in a local SQLite database. That database is not readable in a text editor, does not produce meaningful diffs, and cannot be reviewed in a pull request. Teams work around this by exporting to JSON periodically and committing the snapshot - but that is manual, loses history fidelity, and produces large noisy diffs when many requests change at once.
Tiger stores every request as one .tiger file. The folder is a normal
Git repository. Adding a request is a commit. Changing a base URL is a one-line diff.
Reviewing what changed between releases is a standard pull request. New team members
run git clone and have the full collection history immediately, with no
export step and no Tiger account.
Where Tiger goes further
Built-in MCP server
Tiger ships a Model Context Protocol server (tiger-mcp) that exposes
your saved requests as tools for any MCP-compatible AI client. Claude Desktop, Cursor,
and others can call list_requests, list_environments,
get_request, and run_request against your collection without
leaving the chat. Insomnia has no equivalent.
WSDL / SOAP import
Point Tiger at a .wsdl file and it parses the binding operations and
generates one POST request per operation, pre-filled with a SOAP envelope, the correct
Content-Type header (SOAP 1.1 and 1.2), and the SOAPAction
header for SOAP 1.1 services. Insomnia has no WSDL importer; you must construct the
XML envelope manually.
Git-native storage
Tiger stores every request as a plain-text .tiger file that you commit
to your own repository. API changes show up in pull request diffs. Insomnia stores
data in a local SQLite database that is opaque to git diff.
Built-in Git UI
Tiger surfaces Git operations - status, diff, commit, push, pull, branch, checkout, clone, discard, log, and sync - inside the app. Team members who do not use a terminal can still participate in version control without a separate GUI client. Insomnia uses its own proprietary sync layer instead.
Performance runs
Select any request, open the Perf tab, configure iterations and concurrency, and Tiger reports min, max, avg, p50, and p95 latency inline. Insomnia has no built-in load or performance runner.
Where Insomnia goes further
Plugin ecosystem
Insomnia has a published npm plugin API and a community registry of extensions for authentication helpers, response transformers, and more. Tiger's scripting covers a lot of the same ground in 0.4.0, but if you depend on a specific Insomnia plugin, check whether a pre- or post-request script can replace it before switching.
Cloud team sync
Insomnia's cloud sync lets teams share collections without setting up or maintaining a Git remote. If your team does not already use Git for API definitions, Insomnia's sync model requires less initial setup. Tiger assumes Git as a given.
Non-developer access
Insomnia's cloud UI can give QA engineers or product managers read access to collections without the desktop app or a Git client. Tiger requires the desktop app and a Git workflow, which may add friction for non-engineering audiences.
Which should you choose?
Choose Tiger if any of these apply:
- You want API collections committed alongside code in Git, with readable diffs and pull-request reviews.
- You want AI clients (Claude, Cursor) to discover and run requests via MCP without extra tooling.
- You need WSDL / SOAP import for legacy enterprise services.
- You want built-in load and latency profiling without wiring up a separate runner.
- You want Git commits and pushes accessible inside the app for the whole team, including those who do not use a terminal.
- You prefer MIT-licensed software with no proprietary cloud dependency at all.
Choose Insomnia if any of these apply:
- You need cloud-based team sync without a self-managed Git workflow.
- Non-engineer stakeholders need read access to collections via a web UI.
- You rely on a specific community plugin that Tiger's scripting cannot replicate.
- Your team is already invested in Insomnia's collaboration and workspace features.
Migrating from Insomnia to Tiger
The full migration takes a few minutes for most collections:
- In Insomnia, open the collection and choose Export from the application menu. Select the Insomnia v4 format and save the
.jsonfile. - In Tiger, choose File → Import (or click Import on the welcome screen).
- Select your
.jsonexport file. Tiger recreates every request, folder, and environment as.tigerfiles inside a new collection folder on disk. - Open the collection folder in your terminal and make an initial commit. From this point on, all changes are tracked normally.
- If you had Insomnia environments, Tiger maps them to named environment files under
environments/. Tiger uses the same double-brace{{variable}}syntax, so most values transfer without editing.
Secrets stored in Insomnia environments that are excluded from the export file will need to be re-entered. Tiger marks environment values as secret when you toggle the lock icon next to the field.
Frequently asked questions
Can Tiger import Insomnia collections?
Yes. Tiger imports Insomnia v4 export files (.json) directly. Open
Tiger, choose Import, select your Insomnia export, and every request, folder, and
environment is recreated as .tiger files on disk.
Does Tiger require an account like Insomnia?
No. Tiger has no account system at all. Every feature - collections, environments, scripting, MCP server, collection runner - works without signing in, and nothing is ever sent to a Tiger server. Requests, tokens, and response bodies stay on your machine.
How do teams collaborate in Tiger without cloud sync?
Collections are plain-text .tiger files on disk. You commit them to your
existing Git repository and share changes the same way you share code: branches, pull
requests, and git clone. Tiger also ships a built-in Git panel for status,
diff, commit, push, pull, and branch management without leaving the app.
Does Tiger support Insomnia's plugin-style custom templates?
Tiger does not have a plugin API in 0.4.0. Pre-request and post-response JavaScript
scripts cover most custom logic: you can generate dynamic values, modify the request
before it sends, and assert on response shape. Dynamic built-ins like
{{$uuid}}, {{$timestamp}}, and {{$randomInt}}
handle the most common template-tag use cases. For plugins that do something highly
specific, check whether a pre-request script achieves the same result before deciding.