Bruno — Open-Source IDE for API Exploration & Testing
Bruno is an open-source IDE for exploring and testing APIs — a lightweight, offline-first alternative to Postman and Insomnia. Stores collections as plain text files in your filesystem so they version-control naturally with Git.
What it is
Bruno is an open-source IDE designed for exploring and testing APIs. It serves as a lightweight, offline-first alternative to Postman and Insomnia. The key differentiator is that Bruno stores collections as plain text files directly in your filesystem, which means they naturally integrate with Git version control.
Bruno targets backend developers, QA engineers, and DevOps teams who want their API collections to live alongside their code rather than locked inside a proprietary cloud platform.
How it saves time or tokens
Bruno removes the friction of syncing API collections across teams. Because collections are plain text files committed to your repository, every team member gets the same requests, environments, and tests through a normal git pull. No paid cloud sync subscriptions, no account management, and no vendor lock-in.
For AI-assisted development, Bruno's text-based format means an LLM can read, generate, and modify API collections directly from your codebase without needing to interact with a proprietary GUI.
How to use
- Download Bruno from the official website or install via package managers (
brew install bruno,choco install bruno). It runs on Windows, macOS, and Linux. - Create a new collection. Each request is saved as a
.brufile in a folder structure that mirrors your API organization. - Write requests, add environment variables, and run tests. Commit the entire collection folder to Git alongside your source code.
Example
meta {
name: Get User Profile
type: http
seq: 1
}
get {
url: {{baseUrl}}/api/v1/users/{{userId}}
body: none
auth: bearer {{authToken}}
}
assert {
res.status: eq 200
res.body.email: isString
}
The .bru format is human-readable and diff-friendly. Code reviewers can see exactly what changed in an API request during a pull request.
Related on TokRepo
- Automation tools — Tools for automating testing and development workflows
- AI tools for testing — AI-powered testing frameworks and utilities
Common pitfalls
- Bruno does not have a built-in cloud sync feature. This is by design. If you need cross-device access, use Git.
- Some Postman features like mock servers and monitoring are not available in Bruno. It focuses on the core request-response workflow.
- Importing large Postman collections may require manual adjustments for complex pre-request scripts that use Postman-specific APIs.
Frequently Asked Questions
Yes. Bruno includes a built-in importer for Postman, Insomnia, and OpenAPI collections. Most requests, environments, and basic tests transfer automatically. Complex pre-request scripts using Postman-specific sandbox APIs may need manual rewriting.
Yes. Bruno supports multiple environment files (dev, staging, production) stored as plain text. Variables use the double-curly-brace syntax ({{variable}}) and can be scoped to collections or individual requests.
Yes. Bruno stores everything locally as files. It never sends your API collections to any server. The application works fully offline. Cloud sync is replaced by Git, which you control entirely.
Both are Postman alternatives, but Bruno stores collections as plain files in your filesystem while Insomnia uses its own database format. Bruno is fully open source with no paid tier for core features. Insomnia has shifted toward cloud-first with paid plans for team sync.
Yes. Bruno provides a CLI tool (`bru run`) that executes collections from the command line. You can integrate it into GitHub Actions, GitLab CI, or any CI/CD system to run API tests as part of your pipeline.
Citations (3)
- Bruno GitHub— Bruno stores collections as plain text files that version-control with Git
- Bruno Documentation— Supports importing Postman, Insomnia, and OpenAPI collections
- Bruno CLI Docs— CLI tool for CI/CD integration
Related on TokRepo
Discussion
Related Assets
NAPI-RS — Build Node.js Native Addons in Rust
Write high-performance Node.js native modules in Rust with automatic TypeScript type generation and cross-platform prebuilt binaries.
Mamba — Fast Cross-Platform Package Manager
A drop-in conda replacement written in C++ that resolves environments in seconds instead of minutes.
Plasmo — The Browser Extension Framework
Build, test, and publish browser extensions for Chrome, Firefox, and Edge using React or Vue with hot-reload and automatic manifest generation.