A fair comparison
Postman vs Bruno: platform, or plain files?
The short version: Postman is a hosted platform whose collections live in its cloud behind an account, priced per seat per month, with mature collaboration, monitoring and mocking. Bruno is a free, MIT-licensed local client whose collections are plain files in your Git repo, with modest paid tiers. Which one fits you is mostly decided by that first sentence. This page walks the differences with dated numbers, concedes what each does best, and ends with a third option that sits on Bruno's side of the storage question with a different idea of what the file should describe.
v1.0.0-rc.8 is out now on Windows and Linux. v1.0.0 final, and signed macOS builds, in August 2026.
What they cost
Per seat per month, against free with paid tiers.
Postman, as of July 2026
Free for a single user, then per user per month: $9 Solo, $19 Team, $49 Enterprise. AI (Postbot) is billed separately in credits with per-credit overage, and the free Collection Runner is capped per month even for runs on your own machine. A five-person team on Team is $1,140 a year before AI credits.
Bruno, as of August 2026
The Open Source tier is free and MIT-licensed, and it is the full local client, not a trial. Pro is $6 per user per month and Ultimate $11, billed annually, as listed on usebruno.com/pricing. A five-person team on Pro is $360 a year; on the free tier, nothing.
Postman figures from our July 2026 review of Postman's public pricing and documentation; Bruno figures checked August 2026 against usebruno.com. Corrections welcome at [email protected]: we would rather fix a line than win an argument with a stale number.
Category by category
The five differences that decide it.
Where collections live
Postman collections are records in a cloud workspace: an account and sync are
mandatory since the offline Scratch Pad was retired in 2023, exports diff
poorly, and the October 2025 us-east-1 outage took the desktop app down with
it. Bruno collections are .bru files on disk, in whatever repo you
put them in, and the app works with no account and no network. For a security
review or a Git-first team, this row alone often ends the comparison.
Git workflow
Bruno's collections diff line by line in a pull request and clone with the code; Git is the collaboration layer, free, for any team size. Postman's equivalent is workspace sharing inside its platform, per seat, and its exports are JSON that reviews poorly. If PR review of test changes matters, Bruno wins this outright.
Scripting and multi-step tests
Both chain requests with JavaScript: Postman with pm.* scripts and
its cloud-only Flows canvas, Bruno with scripts and a collection runner. In
both, the logic between requests (branch, loop, poll, reuse) is code you write
and maintain. Neither has a visual editor over a local file, and neither has a
step-through debugger.
Protocols
Postman is broader: REST, GraphQL, gRPC and WebSocket, plus MQTT and Socket.IO. Bruno covers REST, GraphQL, gRPC and WebSocket, without Server-Sent Events as of August 2026. For most API suites either list is enough; if MQTT or Socket.IO is in yours, that decides it for Postman.
AI
Postman's Postbot runs in Postman's cloud and is billed in credits with per-credit overage, on top of the seat price. Bruno ships an AI assistant on its Pro tier. Different shapes of the same arrangement: the AI is a vendor feature, priced by the vendor, running where the vendor runs it.
CI
Both are solid here: Postman via Newman and the Postman CLI, Bruno via its own CLI, both widely used. The difference is upstream of the runner: what CI executes is a cloud export in one case and the repo's own files in the other. Bandura's own pipeline step is written out in the CI recipes.
The honest fit
Which should I choose, Postman or Bruno?
Choose Postman if a hosted workspace is doing real work for you: live collaboration across a large team, monitors, a hosted mock, MQTT or Socket.IO, or non-developers editing collections in a browser. Choose Bruno if the collections belong in your Git repository, an MIT-licensed codebase matters, or a security review keeps flagging cloud sync. Everything else, including price, follows from that one decision: Postman recurs per seat per month, Bruno's full local client is free.
Postman is the right call if…
- Hosted real-time collaboration across a large team is load-bearing today
- You depend on its monitoring or hosted mock cloud
- You need MQTT or Socket.IO in the same tool
- Non-developers work in your collections through the hosted UI daily
- A decade of ecosystem, integrations and hiring familiarity matters
Bruno is the right call if…
- Collections belong in your repo, reviewable in pull requests
- An MIT-licensed, forkable codebase is a requirement
- Security review keeps flagging cloud-synced collections
- Budget is zero and free needs to really mean free
- Your work is requests and short chains, not long scenarios
The third option
If you got as far as "files in the repo", one more question.
Bandura, the tool this site is about, agrees with Bruno's side of the storage
argument: plain files, your repo, offline, no account. The question it adds is
what the file describes. A .aether file is a flow: ten node
types make branching, loops, parallel fan-out, subflows and retry/poll-until
fields in the YAML rather than scripts you maintain, a graph canvas and a code
editor are two live renderings of the same file, and the same local engine runs
it in the app, the CLI, CI, and an MCP server for AI agents. It also covers
Server-Sent Events beside REST, GraphQL, gRPC and WebSocket, and ships a
step-through debugger with breakpoints, which neither Postman nor Bruno has.
The commercial shape sits between the other two: free indefinitely for personal
projects, learning and open source, and a one-time per-seat licence for commercial
use after a 30-day evaluation that disables nothing, priced when checkout opens at
launch. That covers 12 months of
releases, with a perpetual fallback: after the window, the build you have keeps
working, permanently. It is also the youngest of the three by far, still on
release candidates, and its installers are unsigned today. Both comparison pages
concede the rows the incumbents win:
Bandura vs Postman and
Bandura vs Bruno. Trying it costs an export either
way: Postman collections and Bruno .bru files both come across, field by
field, per the
import reference, and the
node reference lists the ten node types the
paragraph above is describing.
All three, side by side
Postman vs Bruno vs Bandura, at a glance.
| Bandura | Postman | Bruno | |
|---|---|---|---|
| Where tests live | Plain-YAML files in your repo | Cloud workspace, account required | Plain files in your repo |
| Works offline, no account | ✓ fully | ✗ core features depend on the cloud | ✓ fully |
| Open source | ✗ commercial; the file format is documented | ✗ proprietary platform | ✓ MIT on GitHub |
| Visual flow editing | ✓ graph and code, same local file | Flows: cloud-only, no code view | ✗ request-and-folder tree |
| Multi-step logic | Declarative nodes: condition, loop, parallel, subflow, retry | pm.* scripts and Flows blocks | Scripts and a collection runner |
| Step-through debugging | ✓ breakpoints, step, run-from-node | ✗ | ✗ |
| Protocols | REST, GraphQL, gRPC, WebSocket, SSE | Broader: adds MQTT, Socket.IO | REST, GraphQL, gRPC, WebSocket |
| Hosted collaboration, monitors, mock cloud | ✗ local mock only, generated from flows | ✓ mature | ✗ |
| AI | BYO key (Anthropic, Gemini, OpenAI-compatible) or a local model | Postbot, in Postman's cloud, metered credits | AI assistant on the Pro tier |
| What it costs | Free for personal use; one-time per-seat commercial licence, priced at launch | Free (1 user) · $9 · $19 · $49 per user/month | Free · Pro $6 · Ultimate $11 per user/month |
Postman wins the platform row and the protocol-breadth row outright; Bruno wins open source and matches the files row. Bandura is the youngest and least proven of the three: 1.0.0-rc.8 on Windows and Linux today, unsigned installers, 1.0.0 final and signed macOS builds in August 2026. Postman figures from our July 2026 review; Bruno figures checked August 2026 against usebruno.com/pricing and github.com/usebruno/bruno.
The questions a switch raises
FAQ
Should I use Postman or Bruno?
It hangs on one question: do you want a hosted platform or files in your repo? Postman is a cloud workspace with mature collaboration, monitoring and mock hosting, priced per seat per month, and your collections live in its database behind an account. Bruno is a free, MIT-licensed local client whose collections are plain files you keep in Git, with paid tiers at $6 and $11 per user per month for extras. If a security review or a Git-first workflow is driving the choice, Bruno; if hosted team features are load-bearing, Postman. The dated details for both are on this page.
Is Bruno really free, and what do its paid tiers add?
The Open Source tier is genuinely free and MIT-licensed: it is the product, not a trial. As listed on usebruno.com/pricing in August 2026, Bruno Pro is $6 per user per month and Ultimate $11, billed annually, adding features such as an AI assistant on Pro and an OpenAPI sync metered on the paid tiers. The client itself, the local collections and the CLI cost nothing.
Why do people leave Postman for Bruno?
The recurring reasons are the direction of the platform rather than any one feature. Collections are records in Postman's cloud rather than files in your repo: an account and workspace sync are mandatory since the offline Scratch Pad was retired in 2023, and when AWS's us-east-1 went down in October 2025 the Postman desktop app went down with it. The meter also keeps finding new things to run on: as of our July 2026 review, the free plan covers a single user, the free Collection Runner is capped per month even for local runs, and AI is billed in credits with per-credit overage. Bruno's answer to all of that is plain files and no account.
What does Bruno give up against Postman?
Real things, and anyone switching should weigh them. Postman has mature hosted collaboration, monitors, a hosted mock cloud, a broader protocol list (it adds MQTT and Socket.IO), and a large ecosystem built over a decade. Bruno has none of the hosted layer, by design: if non-developers work in your collections through a hosted UI, or monitoring and a mock cloud are load-bearing today, Postman is further along and the honest advice is to stay.
Where does Bandura fit between Postman and Bruno?
On Bruno's side of the storage question, with a different answer to what the file describes. Like Bruno, Bandura keeps tests as plain files in your repo, works offline, and has no account. Unlike either, the file describes a flow: ten node types cover branching, loops, parallel fan-out, subflows and retry/poll-until as YAML fields rather than scripts, a graph canvas and a code editor are two renderings of the same file, and there is a step-through debugger, deterministic OpenAPI drift detection, and a first-party MCP server. Commercially it is a one-time per-seat licence with a perpetual fallback, not a subscription; the price is announced at launch.
Can I import Postman collections and Bruno files into Bandura?
Both. Postman Collection v2.1 exports import one flow per request, with environments becoming .env values and pm.* scripts landing in the flow's hooks block where they map directly. Bruno .bru files and OpenCollection YAML import the same way, including body:graphql blocks as real GraphQL nodes. Every import shows a review step first: what was detected, each flow with its node count, checkboxes, and a destination folder, with nothing overwritten.
Which of the three tools is open source?
Only Bruno: MIT-licensed, on GitHub, auditable and forkable, which is a genuine advantage neither of the other two matches. Postman is a proprietary platform, and Bandura is commercially licensed. Bandura's counterweight is that its .aether format is documented plain YAML, so leaving is a cp -r rather than an export tool, and the app is downloadable today (1.0.0-rc.8 on Windows and Linux) with a 30-day commercial evaluation that disables nothing and a free personal-use tier.
Keep reading
The deeper cuts.
Bandura vs Postman, in full
The switching guide: what imports (collections, environments,
pm.* scripts), and the rows Postman still wins.
Bandura vs Bruno, in full
The hardest comparison on the site, including the straight answer to "why pay for Bandura when Bruno is free".
Weighing Insomnia too?
What the 2023 account episode did and did not change, and how Git Sync differs from files.
Tests as files in your repo
The argument Bruno and Bandura share, written out: diffs, blame, clone-to-run.
Offline, and where data sits
The row-by-row answer for a security review, including the two network requests the app can make.
Run the suite in CI
One binary, deterministic exit codes, JUnit XML, and GitHub annotations on the pull request.
v1.0.0-rc.8 is out now. v1.0.0 final in August 2026
Whichever you pick, keep the files yours.
Bandura imports Postman collections and Bruno files either way, so trying it costs an export and a drag: the review step shows what was found before anything is written, and nothing in your existing tool is touched. Windows and Linux builds are up now; on a Mac, leave an address and you get the signed build the day it is notarized.
Deciding on paper first? The import reference lists field by field what comes across from each format.