Starting with Bruno v3.1, any newly created or imported collections will be stored in YAML format instead.
This change does not impact your existing workflows or how you use Bruno; it only affects the underlying file format used to store requests.
As you know, Bruno stores collections directly on your filesystem, with each request saved in a plain-text .bru format.
Starting with Bruno v3.1, any newly created or imported collections will be stored in YAML format instead.
This change does not impact your existing workflows or how you use Bruno; it only affects the underlying file format used to store requests.
If you already have collections in the .bru format, nothing will break. We will continue to maintain full feature parity, and both formats will remain fully supported.
| Category | BRU | YAML |
|---|---|---|
| Performance | Parsing time increases sharply as collection size grows; slow loading with larger files | Consistent and predictable parsing performance; scales and handles large collections efficiently |
| Tooling & Editor Support | Limited to Bruno-specific extension; no native linting, formatting, or schema validation in standard editors | Native support in most editors; rich ecosystem including yamllint, Prettier, JSON Schema validation, structural diffs |
| AI & Ecosystem Compatibility | Custom proprietary syntax; limited external understanding outside Bruno | Industry-standard format; widely understood by AI tools, CI pipelines, and developer tooling |
When we introduced the BRU format, the goal was to support both GUI-first and CLI workflows while keeping collections plain text and Git-friendly.
Two years later, we've learned that most users primarily use Bruno as a GUI tool, and maintaining a custom syntax alongside a growing feature set has become increasingly difficult.
Tooling has also been a consistent concern. As a custom format, BRU doesn't benefit from the broader ecosystem; no native editor support, standard linting, schema tooling, or strong AI understanding.
So we evaluated alternatives. While TOML works well for small configs, API collections often involve deeply nested structures and arrays; which YAML handles more naturally. Read more about it here.
Today, you can migrate via exporting and re-importing. In future versions, we will provide a better way to automatically migrate. Migration to YAML is completely lossless.
In our benchmarks, YAML parsing is 4-5x faster than BRU and scales significantly better with large collections.
As part of this release, we're also excited to introduce a new specification we've been working on: OpenCollection.
YAML in Bruno is powered by Opencollection, a developer first open specification for defining and sharing API collections. Bruno now uses this format to store your collections.
We're excited about this next chapter for Bruno. YAML gives us a solid foundation to build on; better tooling, faster performance, and a format that developers already know and trust. We're looking forward to seeing what you build with it.
If you have any feedback with YAML migration or have some questions or comments, please share them here.
No. Migration is lossless.
No. YAML is the file format how we store collections in the filesystem, how you work with collections remains the same.
Yes. Collections are independent; workspaces are just containers.
No, all requests in a collection should be either YAML or BRU.
We will be maintaining both BRU and YAML file formats for the near future.
Exporting and re-importing should get it converted to YAML. New collections are in YAML by default.
Yes.
Yes.