Bruno is an open-source, offline-first API client for macOS (and other platforms) that stores every collection, request, and environment variable as plain text files in your project repository — not in a proprietary cloud account.
What is Bruno?
Bruno is a free-to-download API testing tool that treats your HTTP collections the same way your IDE treats source code: as files on disk, versioned by Git, diffable in pull requests, and owned entirely by you. Where Postman and Insomnia keep your workspaces in the cloud (or behind a sync subscription), Bruno writes everything to a .bru folder alongside your service code. Open a terminal, git clone, and every teammate immediately has the full request history without importing a shared JSON export or creating an account.
What does Bruno do best?
Bruno's killer feature is Git-native collaboration — and once you experience it, cloud-locked alternatives feel like a regression. Every collection lives as human-readable .bru files (a lightweight, purpose-built markup format), so a PR diff shows exactly which endpoint changed, which header was added, and which test assertion was tweaked. No more "someone overwrote the staging environment" chaos.
Beyond the version-control story, Bruno punches well above its weight on day-to-day ergonomics:
- Offline by default — the app functions with zero network access to any Bruno server, because there is no Bruno server.
- Scripting — pre-request and post-response JavaScript hooks let you chain tokens, compute HMAC signatures, or assert response shapes without leaving the client.
- Environment management — local secrets can be kept in a .env file that is gitignored, while shared variables commit normally. It's the workflow senior engineers already use, formalized.
- GraphQL support — query, mutation, and subscription requests work out of the box, with schema introspection.
- Newman-style CLI — the companion @usebruno/cli package runs your collections in CI pipelines, so the same requests you use for exploration become your integration test suite.
Is Bruno free?
The core Bruno desktop app is free and open-source (MIT-licensed). A paid "Golden Edition" tier exists for teams that want priority support and a handful of advanced features, but the free build covers everything an individual developer or small team needs for serious API work. There is no request limit, no collection size cap, and no account required — you download the .dmg, install, and start making requests.
Who should use Bruno?
Bruno is built for developers who already live in the terminal and treat Git as the ground truth for every artifact their team produces. If you've been managing Postman exports through a shared Dropbox folder, or arguing with teammates about whose environment variables are authoritative, Bruno is the obvious fix. Backend engineers, API designers, and DevOps practitioners building CI-driven test suites will feel right at home.
It is probably not the right first tool for non-engineers — the concept of a collection living as a folder of text files requires a mental model that presupposes Git literacy. If you want point-and-click cloud sharing with no setup, Insomnia's free tier or Postman's basic plan will have a lower learning curve, at the cost of giving those services custody of your data.
What are the best Bruno alternatives?
The three most common comparisons I hear: Postman is the 800-pound gorilla with a huge ecosystem but has steadily pushed users toward its cloud and subscription tiers — the "legacy" free plan was significantly curtailed. Insomnia (now owned by Kong) had its own painful cloud-sync controversy that sent a wave of users looking for local-first alternatives, Bruno being the primary beneficiary. HTTPie Desktop is another offline-friendly option with a cleaner UI, though it lacks Bruno's Git-as-first-class-citizen philosophy. If you are already running JetBrains IDEs, the built-in HTTP client inside IntelliJ or WebStorm is surprisingly capable, but it's tethered to the IDE ecosystem.
Bruno's unique position is that it is the only mainstream API client where the entire workflow — create, edit, share, test — happens through plain files that Git handles natively. That's a real architectural difference, not a marketing distinction.
How does Bruno compare to Postman?
Postman is more feature-complete: mock servers, documentation publishing, a visual flow builder, API monitoring, and a vast library of community collections. If your team needs a hosted, all-in-one API platform, Postman delivers it. Bruno makes a different trade: zero cloud dependency, full data ownership, and a Git workflow that scales to large engineering teams without per-seat costs. I switched my own projects to Bruno after Postman deprecated its Scratch Pad offline mode, and I have not missed the cloud features once. For pure request-and-test work, Bruno is faster, lighter, and significantly more privacy-respecting.