Bruno is a Git-friendly, offline-first, open-source API client for REST, GraphQL, gRPC, and WebSocket testing. Unlike cloud-dependent alternatives like Postman, Bruno stores collections as plain-text .bru markup files in your local filesystem, making them version-controllable with Git. This approach enables true collaborative workflows, eliminates vendor lock-in, and respects privacy by keeping all data local. Bruno's unique value lies in its plain-text format: collections live alongside code, survive across teams, and integrate seamlessly with existing developer tools—no accounts, no sync conflicts, no cloud dependencies.
What This Cheat Sheet Covers
This topic spans 24 focused tables and 153 indexed concepts, 97 flashcards. Below is a complete table-by-table outline of this topic, spanning foundational concepts through advanced details.
A jump-to index of every table row in this cheat sheet.
An interactive map of every table and concept in this topic.
Table 1: Collection and Workspace Management
Everything in Bruno is built around a folder on your disk: workspaces group collections, collections group requests, and each request is just a .bru text file. Understanding this hierarchy — and the Bru markup language that backs it — is the foundation for everything else, since it's what makes Bruno Git-friendly in the first place.
| Feature | Example | Description | |
|---|---|---|---|
Right-click sidebar → New Workspace | • Container that groups multiple collections, environments, and API specifications together • enables organization by project or team | ||
Click + → Create Collection → Select folder | • Folder-based set of API requests stored in filesystem • stored as .bru files with plain-text markup instead of JSON | ||
Right-click collection → New Folder | • Hierarchical request grouping within collections • supports nested folders for complex API structures | ||
meta { name: Login}get { url: {{baseUrl}}/auth} | • Plain-text DSL for storing API requests • human-readable format with JSON-like semantics, Git-friendly with minimal merge conflicts | ||
Right-click collection → Settings | Configure collection-level defaults: base URL, auth, headers, scripts, client certificates, pre-request variables. | ||
Right-click folder → New Request → Select HTTP method | • Create individual API requests • supports GET, POST, PUT, PATCH, DELETE, and custom HTTP methods |