What Bruno Does
Bruno represents a philosophical break from the Postman model of API development. Instead of storing your collections in a proprietary cloud, syncing them through vendor accounts, and managing access through platform-specific collaboration features, Bruno stores everything as plain-text files in a folder structure that lives directly in your Git repository. Your API collections travel with your code, get reviewed in pull requests, and follow the same branching and merging workflows.
The Bru Format and Developer Experience
The file format — called Bru — is a plain-text markup language designed specifically for describing API requests. Each request is a .bru file containing the method, URL, headers, body, assertions, and variables in a human-readable format. This means you can read and even edit API requests in any text editor, diff them meaningfully in Git, and search across your entire collection with grep. The portability of plain text over proprietary formats is a genuine advantage.
The developer experience inside Bruno is clean and focused. The interface provides what you need for API testing — request building, response inspection, environment management, scripting, and test assertions — without the feature bloat that has accumulated in Postman over the years. There's a visual request builder, a response viewer with pretty-printing and syntax highlighting, and a collection runner for executing test suites.
Environment and Import Support
Environment variables work as expected, with support for multiple environments and dotenv file integration. Bruno supports JavaScript-based pre-request and post-request scripts for dynamic values, chaining requests, and custom assertions. The scripting API is intentionally similar to Postman's, making migration smoother for teams switching over.
The import capabilities help with migration. Bruno can import Postman collections, OpenAPI specifications, and Insomnia collections, converting them to the Bru format. The conversion isn't always perfect — complex Postman scripts may need manual adjustment — but it reduces the friction of switching significantly.
Testing and Automation
Collection running and testing support automated API test execution from both the GUI and command line. The built-in assertion syntax makes it straightforward to validate response status codes, headers, body content, and response times. For CI/CD integration, the CLI runner (bru run) executes collections and returns standard exit codes.
Collaboration and Ecosystem Gaps
Where Bruno falls short is in the collaboration features that Postman has built over years. There's no built-in mock server, no API monitoring, no public documentation generation, and no team workspace with real-time syncing. Bruno's answer is that Git provides collaboration — branches, pull requests, code review — and that API collections should follow the same workflow as code. This is a valid philosophy but requires teams to genuinely embrace Git-based collaboration for API work.