Bruno
A desktop API client that stores collections as plain-text files designed for local use and Git collaboration.
Why consider Bruno?
Bruno is a fast, git-friendly, open-source API client that stores collections directly on your filesystem as plain text.
Learn Bruno by building
Practical setup notes, real use cases, and copy-ready examples in one focused guide.
In this guide3 sections
Getting Started with Bruno for API Testing
When exploring and testing APIs, developers often rely on dedicated clients to format requests, manage headers, and inspect responses. However, many of the leading tools in this space have shifted toward cloud-centric models that lock configurations in proprietary formats or mandate server synchronization. Bruno provides a lightweight, open-source alternative that integrates seamlessly into standard local development workflows.
Bruno stores collections directly in a folder on your filesystem using a plain text markup language called Bru. Because every endpoint, variable, and environment is saved as a readable text file, you do not need to rely on the application's interface to understand what is being tested. This file-based approach fundamentally changes how teams manage their testing infrastructure.
Collaboration Through Version Control
Since configurations are not trapped in a database or a proprietary cloud service, you can use Git or any version control of your choice to collaborate over your API collections. Developers can create branches for new API features, submit pull requests with updated request structures, and review changes to the collections exactly as they would review source code.
This prevents the common problem of team members working with outdated endpoint definitions. When someone pulls the latest branch of a repository, they instantly receive the most up-to-date API collection alongside the application code.
Data Privacy and Offline Access
A core philosophy of the project is that API configuration data should remain entirely under your control. Bruno is designed to be an offline-only application without cloud synchronization, ensuring data privacy on the user's device. You are not required to create a user account or connect to a third-party server to save your work.
By keeping all collections localized, organizations avoid the risk of leaking sensitive credentials, authorization tokens, or internal endpoint URLs to external servers. This architecture also guarantees that your API testing environment remains fully functional regardless of internet connectivity or restrictive corporate firewalls.
Automating Tests with the CLI
While the graphical application is excellent for building and debugging requests manually, automated workflows require a different approach. A Command Line Interface (CLI) is available for running API collections in automated testing environments or CI/CD pipelines.
You can install the CLI tool via npm and use it to execute your requests headlessly. Once installed, the tool allows you to trigger individual requests, run entire collections, or target specific folders while applying designated environment variables.
# Run every request in the collectionbru run# Run a single requestbru run request.bru# Run a folder against a specific environmentbru run folder --env LocalIntegrating this command into a continuous integration pipeline makes it straightforward to validate your API endpoints continuously. If any assertion within a request fails, the CLI returns a non-zero exit code. This automatically halts the pipeline, providing immediate feedback and ensuring that breaking API changes do not reach production systems.
For further information on setting up environments and utilizing the Bru markup language, you can explore the official repository at https://github.com/usebruno/bruno.
Related tools
More options with a similar category or technology profile.
diskus
Minimal, fast alternative to du -sh written in Rust using multi-threaded directory traversal.
peco
Simplistic interactive filtering tool for Unix pipelines, process lists, and file trees.
Dapr CLI
Command-line tool for managing Dapr distributed application runtime environments and sidecars.
Freeze
Generate beautiful image screenshots and SVGs of code snippets and terminal outputs.