📦 Bruno

Learn Bruno, the open-source Git-native API client: installation, .bru files, scripting, CLI automation, CI/CD and a full Postman comparison.

Never heard of Bruno? No problem. This page assumes zero prior knowledge and walks you from "what even is an API client" to writing automated, CI-ready API tests — comparing every step to Postman, since that's the tool most QA engineers already know.

What you can learn on this page

  • 🎯 What is Bruno? — Imagine every API request you ever send is written on its own index card. Bruno keeps those cards in a physical box that sits on YOUR desk — you can put the whole box in your backpack (Git), and if a teammate changes a card, you can literally see which line th
  • 📦 Installation & First Request — Installing Bruno is like installing any notebook app — download it, open it, start typing. There's no database server to configure and no account you're forced to create. The only extra piece, if you want automation later, is a small command-line tool (the &qu
  • 📚 Core Concepts — .bru Files, Collections & Scripting — A .bru file is like a single recipe card: it lists the ingredients (URL, headers, body) and the steps (any scripts), all in one short, human-readable block of text. A whole collection is just a recipe box — a folder full of these cards, organized into sub-fold
  • 🔥 Test Automation — Assertions, CLI & CI/CD — Clicking "Send" and eyeballing the response is like tasting soup once while cooking. Automated assertions are a kitchen timer and a thermometer that check the soup every single time, automatically, even at 3am when nobody's awake to taste it — that's
  • 🛠️ Real World — Git Workflows & Code Review — Picture two QA engineers, Ada and Sam, both editing API tests for the same "orders" service in the same week. With Bruno, their changes are just two Git branches — if they touch the same file, Git shows a normal merge conflict they resolve like any c
  • 🔗 Ecosystem — Bruno doesn't ask you to throw away tools you already use — it plugs into them. Already have 200 requests in Postman? Import them in one step. Have an OpenAPI/Swagger spec? Generate a whole collection from it. Live in VS Code all day? There's an extension so y
  • 🚨 Common Errors — Every error message is a clue, not a dead end — like a doctor reading symptoms instead of guessing. "Could not resolve variable" means "you forgot to pick an environment", "command not found" means "the tool isn't on your PAT
  • 💼 Interview Questions — These questions span everything above: basic onboarding knowledge, intermediate day-to-day usage and trade-offs, and advanced production/architecture scenarios. Basic ≠ "definition trivia" here — even the easy ones are framed around a real decision y