Key Features
Git-Friendly
Collections are stored as plain text files in your filesystem, making them easy to version control with Git.
Offline-First
No cloud sync required. Your data stays on your machine. Work anywhere, even without internet.
Multiple Protocols
Support for REST, GraphQL, gRPC, and WebSocket requests in a single application.
Scripting & Testing
Powerful JavaScript-based pre-request scripts, post-response scripts, and test assertions.
Technology Stack
Bruno is built using modern web technologies:- Framework: Electron (desktop) + React (UI)
- State Management: Redux
- Styling: Tailwind CSS
- Code Editor: CodeMirror
- HTTP Client: Axios
- Icons: Tabler Icons
- File Watching: Chokidar
Application Structure
The Bruno desktop app consists of several key areas:Sidebar
The left sidebar displays your collections, folders, and requests in a tree structure:Collections
Top-level containers for related API requests. Each collection maps to a folder on your filesystem.
Folders
Organize requests within collections. Folders can be nested and support inheritance of auth, headers, and scripts.
Request Pane
The main area where you configure your API requests:- Query URL: Enter the endpoint URL with variable interpolation support
- Tabs: Params, Body, Headers, Auth, Vars, Script, Assert, Tests, Docs, Settings
- Method Selector: GET, POST, PUT, PATCH, DELETE, etc.
Response Pane
Displays the response from your API:- Response body (formatted JSON, XML, HTML, or raw text)
- Headers
- Timeline and performance metrics
- Test results
- Console output from scripts
Status Bar
Shows collection information, environment selection, and shortcuts to preferences.File Format
Bruno uses a custom.bru file format that’s human-readable and Git-friendly:
Collections vs Workspaces
Understanding Collections
Understanding Collections
A collection is a folder on your filesystem containing
.bru files and a bruno.json configuration file. Collections are self-contained and can be shared via Git.Understanding Workspaces
Understanding Workspaces
A workspace is a way to organize multiple collections in Bruno. You can have multiple workspaces (e.g., “Work”, “Personal”) and switch between them.
Keyboard Shortcuts
Request Actions
Request Actions
- Cmd/Ctrl + Enter: Send request
- Cmd/Ctrl + S: Save request
- Cmd/Ctrl + T: New request tab
- Cmd/Ctrl + W: Close current tab
Sidebar Actions
Sidebar Actions
Navigation
Navigation
Next Steps
Creating Requests
Learn how to create and configure API requests
Request Types
Explore REST, GraphQL, gRPC, and WebSocket support
Authentication
Configure authentication for your requests
Scripts & Tests
Add automation with pre-request and post-response scripts
Bruno’s desktop app is completely offline and privacy-focused. Your data never leaves your machine unless you explicitly share it.