Skip to content

Guide · Open source

How to use Bruno: install, send requests and run collections

Updated · written with AI from the project's own documentation and checked against our catalogue data

Bruno is an open-source desktop app for exploring and testing APIs, and it is an alternative to tools such as Postman and Insomnia. It stores your request collections as plain-text files in a folder on your computer, so they can be versioned alongside your code. This guide shows you how to install Bruno, understand how collections are stored, and run them from the command line.

Brunousebruno/bruno · ★ 48k · MIT

Quick start

  1. 1Download or install Bruno. Get the binary from the Bruno website or install it with a package manager such as Homebrew on Mac.
  2. 2Open or create a collection. Bruno stores each collection as a folder on your filesystem, so choose a folder that you can keep in Git.
  3. 3Send a request. Create a request, send it to your API, and check the response in the app.
  4. 4Save the collection to a folder. Your requests are saved as plain-text Bru files in the collection folder, ready for version control.
  5. 5Install the Bruno CLI. Run npm install -g @usebruno/cli to add the bru command to your terminal.
  6. 6Run the collection. Move into the collection folder and run bru run to execute its requests from the command line.

Install Bruno on Mac, Windows or Linux

Bruno is available as a binary download from its website for Mac, Windows and Linux. You can also install it through package managers such as Homebrew, Chocolatey, Scoop, winget, Snap, Flatpak, AUR and Apt.

  • Mac: brew install bruno
  • Windows: choco install bruno, scoop install bruno, or winget install Bruno.Bruno
  • Linux: snap install bruno or flatpak install com.usebruno.Bruno
# On Mac via Homebrew brew install bruno # On Windows via winget winget install Bruno.Bruno # On Linux via Snap snap install bruno # On Linux via Flatpak flatpak install com.usebruno.Bruno

Understand how Bruno stores your collections

Bruno saves your collections directly in a folder on your filesystem. It uses a plain-text markup language called Bru to describe API requests. Because the files are plain text, you can use Git or any version control system to collaborate on your API collections, just as you would with other project files.

The README states that Bruno is offline-only and has no plans to add cloud sync. Your data stays on your device.

Install and use the Bruno CLI

The Bruno CLI lets you run your API collections from the command line. It is intended for automated testing and CI/CD pipelines. Install it from npm, then move into the directory that holds your collection and run it.

  • bru run runs every request in the collection
  • bru run request.bru runs a single request
  • bru run folder --env Local runs a folder against a specific environment
npm install -g @usebruno/cli # Run every request in the collection bru run # Run a single request bru run request.bru # Run a folder against a specific environment bru run folder --env Local

Run Bruno CLI with Docker

Official Docker images for the Bruno CLI let you run collections without installing Node.js or npm on the host. Images are published to Docker Hub and the GitHub Container Registry, with alpine and debian variants for linux/amd64 and linux/arm64. The command below mounts the current directory and runs the collection.

docker pull usebruno/cli:latest docker run -v $(pwd):/bruno usebruno/cli run

Collaborate on collections with Git

Because each collection is a folder of Bru files, you can commit it to the same repository as your code. Teammates then get the API collections when they pull the repository. The README notes that Git or any version control system of your choice can be used.

  • Keep the collection folder in your project repository
  • Review changes to requests through normal version control
  • Use the same collections locally and in CI/CD

What people use it for

  • Testing HTTP or GraphQL APIs without creating an account
  • Keeping API collections in the same Git repository as the code they test
  • Running API test collections in CI/CD pipelines with the Bruno CLI
  • Running a single request or folder against a named environment with --env
  • Running the same collection in a Docker container without installing Node.js

Frequently asked questions

Is Bruno free?

The README says the majority of Bruno's features are free and open source. It also mentions paid versions with additional features, which you can review on the pricing page on the Bruno website.

Does Bruno need an account?

The README describes Bruno as offline-only, and the Best-for guidance centres on using it without an account or cloud sync. Your collections are stored in a folder on your device.

How do I install Bruno on Mac?

You can run brew install bruno through Homebrew, or download the binary from the Bruno website. The README lists both options for Mac.

Can I share Bruno collections with my team?

Yes, through version control. Bruno stores collections as plain-text files, so you can use Git or any other version control system to collaborate on them. The README does not describe a cloud sync option.

Is Bruno a good alternative to Postman or Insomnia?

Bruno is similar in purpose to Postman and Insomnia. Its main difference, based on the README, is that it stores collections as local plain-text files and is offline-only. Other comparable tools include Hoppscotch and Thunder Client.

Can I run Bruno tests in CI/CD?

Yes. The README says the Bruno CLI is ideal for automated testing and CI/CD pipelines, and official Docker images are available for running collections without installing Node.js.

New agent skills, repos and AI tools — every week

The best new skills and open-source projects, the fastest-growing repos, and one free prompt. Five minutes to read. Unsubscribe anytime.

Our verdict

Bruno suits developers and teams who keep their code in Git and want API collections stored as local files without an account or cloud sync. If you need collections synced across machines or a hosted service with team dashboards, the README says Bruno is not built for that, so consider a cloud-based tool instead.

Install options & downloads