LIVEReading: Test Any API Without the Cloud — Bruno Setup GuideTotal time: 8 minSteps: 5Worked first time: 92% LIVEReading: Test Any API Without the Cloud — Bruno Setup GuideTotal time: 8 minSteps: 5Worked first time: 92%
CBW
Test Any API Without the Cloud — Bruno Setup Guide
Easygithub.com/usebruno/bruno2026-06-15

Test Any API Without the Cloud — Bruno Setup Guide

Bruno is a free, offline API testing tool that replaces Postman. Your requests stay on your computer — no account, no cloud sync, no subscription required.

// Build stats

  • Total time8 min
  • Number of steps5
  • DifficultyEasy
  • Worked first time92%
// Before you start

What you need

  • A Mac, Windows, or Linux computer
  • Basic idea of what an API is (a URL you send requests to and get data back)
  • No coding knowledge needed for the desktop app
01
Step 1 of 5

Download and install Bruno

3 min

Bruno is a normal desktop app. Pick the install command for your operating system below, or go to usebruno.com and download the installer directly if you prefer clicking through a wizard. The package manager commands do the same thing automatically.

Terminal · mac
$ # Mac (paste this in Terminal):
$ brew install bruno
$
$ # Windows — pick ONE of these (paste in PowerShell or Command Prompt):
$ winget install Bruno.Bruno
$ # OR
$ choco install bruno
$
$ # Linux (Ubuntu/Debian):
$ sudo mkdir -p /etc/apt/keyrings
$ sudo apt update && sudo apt install gpg curl
$ curl -fsSL "https://keyserver.ubuntu.com/pks/lookup?op=get&search=0x9FA6017ECABE0266" \
$ | gpg --dearmor \
$ | sudo tee /etc/apt/keyrings/bruno.gpg > /dev/null
$ sudo chmod 644 /etc/apt/keyrings/bruno.gpg
$ echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/bruno.gpg] http://debian.usebruno.com/ bruno stable" \
$ | sudo tee /etc/apt/sources.list.d/bruno.list
$ sudo apt update && sudo apt install bruno
$
$ # Linux (Snap):
$ snap install bruno
$
$ # Linux (Flatpak):
$ flatpak install com.usebruno.Bruno
What you should see
The Bruno app appears in your Applications folder (Mac), Start Menu (Windows), or app launcher (Linux). You can open it like any other program.
This might happen

On Mac you see 'cannot be opened because the developer cannot be verified'

Go to System Settings → Privacy & Security → scroll down and click 'Open Anyway' next to the Bruno message.

02
Step 2 of 5

Create your first collection (a folder for your requests)

2 min

In Bruno, a 'collection' is just a regular folder on your computer that holds your saved API requests. Think of it like a project folder. You create it once and Bruno remembers it. No account or login needed.

Terminal · mac
$ # No command needed — do this inside the Bruno app:
$ # 1. Open Bruno
$ # 2. Click 'Create Collection'
$ # 3. Give it a name (e.g. 'My First Collection')
$ # 4. Choose a folder on your computer to save it in
$ # 5. Click 'Create'
What you should see
Your new collection appears in the left sidebar of Bruno. A folder with that name now exists on your computer.
03
Step 3 of 5

Send your first API request

3 min

Now you'll make an actual API call. We'll use a free public test API so you can see a real response immediately — no API key needed. This is exactly how you'd test any real API you're building or using.

Terminal · mac
$ # Do this inside the Bruno app:
$ # 1. Click the '+' button next to your collection name
$ # 2. Select 'New Request'
$ # 3. Name it anything (e.g. 'Test Request')
$ # 4. Make sure the method dropdown says 'GET'
$ # 5. Paste this URL into the address bar:
$ https://jsonplaceholder.typicode.com/posts/1
$ # 6. Click the orange 'Send' arrow button
What you should see
The right panel shows a JSON response with fields like "userId", "id", "title", and "body". Status shows "200 OK" in green.
This might happen

You see a network error or no response

Check that your internet connection is working. Bruno is offline-only for storage, but it still needs internet to reach external APIs.

04
Step 4 of 5

Save the request and explore the response

2 min

Bruno saves requests as plain text files in your collection folder. You can open them in any text editor, back them up, or share them via Git. The response panel shows the body, headers, and timing — everything you need to understand what an API returned.

Terminal · mac
$ # Inside Bruno:
$ # 1. Press Ctrl+S (Windows/Linux) or Cmd+S (Mac) to save the request
$ # 2. Click the 'Headers' tab in the response panel to see response headers
$ # 3. Click 'Timeline' to see how long the request took
$ # Your .bru file is now saved in your collection folder on disk
What you should see
The request appears saved in the sidebar (no unsaved indicator). You can see response headers and timing in their respective tabs.
05
Step 5 of 5

Set up an environment for different base URLs

3 min

Most APIs have a 'development' URL and a 'production' URL. Bruno lets you define environments so you can switch between them with one click instead of editing every request. You store a variable like 'baseUrl' once, then use it everywhere.

Terminal · mac
$ # Inside Bruno:
$ # 1. Click the 'Environments' button (looks like a flask/beaker icon) at the top right
$ # 2. Click 'Create Environment'
$ # 3. Name it 'Local'
$ # 4. Add a variable: Name = baseUrl, Value = http://localhost:3000
$ # 5. Click Save
$ # 6. Create another environment named 'Production'
$ # 7. Add the same variable: Name = baseUrl, Value = https://your-real-api.com
$ # 8. In any request URL, you can now type: {{baseUrl}}/endpoint
What you should see
Two environments appear in the environment dropdown at the top of Bruno. Switching between them changes what {{baseUrl}} resolves to across all your requests.
This might happen

{{baseUrl}} shows up literally in the URL instead of being replaced

Make sure you have an environment selected in the dropdown at the top right of Bruno — it defaults to 'No Environment'.

// Status

cooked. baked. worked.

Bruno is installed and open on your computer. You have a saved collection with at least one working API request, and you know how to switch between environments. You can now test any API without a Postman account or internet-connected storage.

// the honest bit

The honest part

Bruno is a desktop GUI app — this guide covers the app, not the CLI or Docker runner (those are for developers running automated tests). Bruno does not sync to any cloud, which is a feature, not a bug — but it means you must back up your collection folder yourself (a simple Git repo works great). The free version covers everything most people need; paid tiers add team features.