DEV Community

Alex Spinov
Alex Spinov

Posted on

Bruno Has a Free API: An Open-Source Alternative to Postman That Stores Collections in Git

Bruno is an API client that stores collections as plain files in your git repo — no cloud accounts, no sync fees, no vendor lock-in.

Why Bruno Matters

Postman moved to cloud-only and started charging for team features. Bruno stores everything as files in your project — version controlled, reviewable, and free forever.

What you get for free:

  • Collections stored as plain files (Bru markup)
  • Git-friendly: diff, merge, review API collections
  • No cloud account required
  • Offline-first
  • Scripting with JavaScript
  • Environment variables
  • Open source (MIT)

Quick Start

# Install
brew install bruno

# Or download from usebruno.com
# Collections are folders with .bru files
Enter fullscreen mode Exit fullscreen mode

Bru File Format

meta {
  name: Get Users
  type: http
  seq: 1
}

get {
  url: {{baseUrl}}/api/users
  body: none
  auth: bearer
}

auth:bearer {
  token: {{authToken}}
}

assert {
  res.status: eq 200
  res.body.length: gt 0
}

script:post-response {
  const data = res.getBody();
  bru.setVar("firstUserId", data[0].id);
}
Enter fullscreen mode Exit fullscreen mode

Environment Variables

# environments/dev.bru
vars {
  baseUrl: http://localhost:3000
  authToken: dev-token-123
}

# environments/prod.bru  
vars {
  baseUrl: https://api.example.com
  authToken: {{process.env.API_TOKEN}}
}
Enter fullscreen mode Exit fullscreen mode

CLI for CI/CD

# Run collection in CI
npx @usebruno/cli run --env dev

# Run specific folder
npx @usebruno/cli run users/ --env staging
Enter fullscreen mode Exit fullscreen mode

Links


Building API workflows? Check out my developer tools on Apify or email spinov001@gmail.com for custom solutions.

Top comments (0)