Bruno is an open-source, offline-first API client replacing Postman and Insomnia by storing request collections directly as plain text files in Git.
Bruno stores API collections directly on the local filesystem as plain-text markup files, co-locating request definitions and environment configurations with application source code. The client avoids remote synchronization servers entirely, relying on standard Git repositories for team collaboration and revision tracking. This architecture keeps endpoint definitions, authentication variables, and automated assertions under internal operational control without external cloud dependencies.
Insomnia shifted toward mandatory cloud synchronization and user accounts, expanding the operational perimeter for teams testing internal microservices and sensitive endpoints. Bruno takes the opposite path: every request, header, and script lives in a plaintext .bru file inside a local folder. Teams manage access control, history, and reviews through standard Git permissions rather than configuring vendor workspaces, user invitations, and cloud access policies. For operations teams bound by data residency and compliance audits, removing external sync eliminates a third-party risk surface.
Where Insomnia and Postman provide hosted cloud monitors, team mock servers, and centralized API registries, Bruno trades server-side tooling for offline execution and pipeline automation. Migrating is straightforward because Bruno imports existing collection exports, but operational workflows change. Instead of querying a remote testing cloud with vendor tokens, continuous integration pipelines execute test suites locally through the Bruno command-line interface. This avoids recurring per-seat subscriptions and runner quota caps, though operators must accept that shared updates move through pull requests rather than instant cloud synchronization.
.bru files, letting engineers review API changes via Git pull requests alongside service code.How does Bruno handle team collaboration without cloud storage? Bruno stores collections as plain text files in local repositories, letting teams use Git branches and pull requests for change tracking. Collaboration follows standard source control workflows instead of proprietary cloud workspaces.
Bruno vs Insomnia: which tool fits CI/CD automation better? Bruno provides a native CLI runner and container images that execute collections offline inside pipelines without cloud account dependencies. Insomnia supports pipeline testing via Inso CLI, but newer releases push users toward cloud-backed accounts.
Is Bruno free for commercial use? Yes, Bruno is open source and free for commercial use without per-seat licensing fees. The desktop application and CLI run entirely on local infrastructure with no mandatory subscriptions.
Bruno is the practical choice for teams that want to eliminate SaaS lock-in by managing API collections as code in Git; it is less suited for organizations that require hosted mock servers and live cloud collaboration. With steady maintenance reflected in recent releases and a permissive MIT license that permits frictionless deployment across workstations and build runners, it delivers a dependable foundation for local-first API development.
Commands from the official package registries. Each package is matched to Bruno through the registry's own link to its source code or website.
brew install --cask brunowinget install --id Bruno.Bruno -eflatpak install flathub com.usebruno.BrunoLint, codegen, breaking-change checks and dependency management in one Git-native CLI. Open source, no registry lock-in.
Show that Bruno is listed as an open-source alternative. Paste into your README: