29 December 2025

I made a prettify for Bruno files

As all the engineers in my team gradually went offline for the last time in 2025, I found myself spending my final day helping the QA guy in our team with some end-of-year housekeeping. On his laptop were hundreds of .bru files containing over 27,000 lines of automated tests. Months of work and none of it tracked in Git (shocked face emoji).

I think his journey over the past year is fairly typical of a wider industry trend. Having been a manual tester for years, today he finds he's expected to focus his time maintaining the code of automated tests, but the problem is he has never been mentored in the art of clean code.

As the lead engineer I've got the skills he needs, but I don't line manage him, he reports to the head of QA, who also is not a programmer. Together, we all decided in 2026 that I would mentor him in clean code and good Git etiquette and in good time he would pass those skills back to the wider QA team.

My new CLI tool

With the sight of 265 badly formatted files still burned into my retinas I clocked off for the Christmas holiday. Now on my own time I sunk into the indulgent bath of an open source project and decided to build a command-line prettifier tool for Bruno's .bru files.

Publishing a public Node.js package has been on my todo list for a while but opportunities are few and far between. Generally these days, by the time you realise you need a tool, someone else has already built it. So fingers crossed, this gets some traction with Test Engineers across the community.

To install my tool as a dev-dependency, simply run:

npm install --save-dev prettify-bru

Once it's installed, to reformat all .bru files, simply run:

npx prettify-bru --write

The output will look something like this...

Screenshot of output after running prettify-bru with the --write option

You can see all commands and options by viewing the package on NPM at https://www.npmjs.com/package/prettify-bru

Bruno fanboy

Bruno is the long desired open source replacement to Postman. A few years ago Postman didn't just put the ability to share collections behind a paywall, it actively made it difficult to not use their cloud to save collections. You could save requests as local files and track them using Git but it took significantly more menu clicks than using their cloud and you had to remember to manually reload the collection in the GUI for it to recognise files changes.

Bruno – on the other hand – seems to take a local file first approach, with the open and save options assuming you're going to be working off disk. File changes are also reflected immediately in the GUI so when you pull down changes from the remote repo you can't accidentally revert them like you would in Postman. I was an instant convert.

Keep up the good work Bruno team!