Skip to content

Making YAML the Default in Bruno v3.1

Overview

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.

STRONG

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.

Key Differences

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

Why we're making this change?

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.

Migration

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.

Performance improvements

In our benchmarks, YAML parsing is 4-5x faster than BRU and scales significantly better with large collections.

Request Loading (0.1–2 MB)

 

Collection Loading (1–10 MB)

 

OpenCollection: A Standard for API 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.

Conclusion

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.

faq

Will I lose any data when migrating from BRU to YAML?

No. Migration is lossless.

Do I need to change anything before using YAML?

No. YAML is the file format how we store collections in the filesystem, how you work with collections remains the same.

Can I use both BRU and YAML collections in the same workspace?

Yes. Collections are independent; workspaces are just containers.

Can I use both BRU and YAML requests in the same collection?

No, all requests in a collection should be either YAML or BRU.

Will BRU format be unsupported from now on?

We will be maintaining both BRU and YAML file formats for the near future.

How do I migrate my existing collection to YAML?

Exporting and re-importing should get it converted to YAML. New collections are in YAML by default.

Will my folder structure be preserved?

Yes.

Can I use the Bruno CLI with YAML collections?

Yes.