Ryan Reynolds

Bruno - Reinventing the API Client | Local, Native Git, Open Source

The API-client built for developers. Open-source. Local . Native git. Bruno stores collections on your filesystem which allows you to natively interact with git for collaboration and versioning.

Add a comment

Replies

Best
Ryan Reynolds

Hey everyone! 🚀

After five years at another major API client, I left after they made three massive mistakes:
— Forcing a mandatory cloud login
— Jacking up prices, effectively holding user data hostage.

— Bloating the product with unused 'platform' features.


These changes alienated the very developer community that built them.


Around that time, I met Anoop — the creator of Bruno.


Bruno is the antidote: a local-first, open-source API client with native Git integration for true collaboration and versioning.

No proprietary cloud lock-ins.
No sky-high prices for basic control over your own work.
No vendor hostage situations.

With Bruno, you can just:

  • Use a pure API Client without unnecessary bloat

  • Own your collections and data end-to-end

  • Follow your normal Git workflow


🚀 Hope you enjoy today’s launch — and we'd love your feedback!

Launching soon!

@real_ryan_reynolds Huge respect for building something that truly respects developers' workflows 🙌🏽😍

Ryan Reynolds

@hamza_afzal_butt 💪 Definitely! Feels like it's been abandoned in many tools.

Michael Voit

@real_ryan_reynolds And now you are developing it alone - or together with Anoop?

Valentin Kirilov

Oh, it’s such a surprise to see Bruno here! I’ve been using it actively for my side projects for over a year now, and I must say it’s become my default API client. Postman is no longer on my list when I think of an API client.


To be honest, the feature that won me over is that Bruno collections can be part of the source code - a place where they belong naturally, in my opinion. But all the rest is working just fine, bringing a complete experience. So, if you’re keen to try something new and replace Postman/Insomnia and the cloud dependency they come with, I really do recommend Bruno.

Ryan Reynolds

@valkirilov Thanks, Valentin! Really appreciate your support and feedback. Completely agree that colocating collections alongside your source code (and API spec) unlocks something that hasn't been possible with other API clients. It's never made sense having a collection scattered in a different place needing to be maintained.

Gleb Shalimov

The best API-client for me!

Ryan Reynolds

@khlebobul Thanks, Gleb! Love the support. What makes Bruno the best for you? Anything you'd like to see us add?

Gleb Shalimov

@real_ryan_reynolds I think all my favorite features have been mentioned by @valkirilov. I can only add that I like to use Open Source projects

Rohan Gayen

I use this. Doesn't look polished like Httpie but found it more useful.

Ryan Reynolds

@admiralrohan Appreciate the feedback, Rohan! We're planning on some UI/UX improvements within this quarter. Are there any pieces that really stick out to you that we should prioritize polishing?

David Taylor

@real_ryan_reynolds Minor things, but these come to mind from recent experience:

  1. It's not easy to see headers of your HTTP responses. You have to dig under timeline and then follow the network trail to see the raw HTTP response headers. It would be nice to have the response headers easily listed right on your response page just like the request headers are.

  2. I don't see a way to disable automatic following of redirect responses.

  3. The new oauth handling in version 2.x may be improved, but there's still some lack of documentation about exactly how to set it up and how it works. For example, when presented with the wizard to fill in your OAuth config, it asks for the callback. It is not clear what you are supposed to put in this field. Does bruno have a callback url that allows the auth provider to redirect back to bruno? Or are we supposed to supply something else there? If so what?

Ryan Reynolds

@crossbound - this is good feedback!

  1. We released a new timeline view, have you tried that?

    1. This is a good suggestion. I don't see an open feature request, but we can add one. https://github.com/usebruno/bruno/issues

    2. Another good callout. We'll update docs. Today we don't have a URL like Postman does specific to the callback. If your application doesn't require a specific value, you can put any valid url into the callback field.

Mikhail Cruz Andrade

This is truly an unicorn, a post about something that doesn't have AI, LLMs, GenAI or related in ProductHunt in these days. What a great surprise to see Bruno here.

Ryan Reynolds

@jailandrade Ha! You said it not us, Mikhail! Appreciate the feedback and support :).

Evan Paul

A welcome tool to test APIs. Just a few questions, how is this different than Hoppscotch?
Congratulation on the launch!

Ryan Reynolds

@evan_paul - It's a good question, Evan. The biggest difference with Bruno compared to any current API client is our storage of collections as plain text files on your file system. This allows direct/native synchronization with Git so that collections can be treated/versioned just like code is.


API collections historically suffer from two problems: 1. people don't know where to find them 2. they aren't versioned correctly.


By storing collections in Git and alongside your spec/code, we solve this issue.

Evan Paul

@real_ryan_reynolds Thank you for sharing this. This was helpful.

Andrei Babrounik

Wishing you lots of success!

Ryan Reynolds

@andrewbro Thanks, Andrei! Appreciate your support!

Samuel Briskar

Bruno's focus on local-first development and native Git integration is a breath of fresh air! It's great to see an open-source API client that prioritizes collaboration and versioning. 😊

Ryan Reynolds

@samuel_briskar Thanks, Samuel! We feel having collections versioned and shared with Git is critical - glad it resonates with you. Anything you'd like to see next?

Jun Shen

I appreciate Git integration for APIs! 👍

Ryan Reynolds

@shenjun Absolutely - it feels like the only way it should be!

David Taylor

Originally used Postman, but after the cloud push, I left it behind. I've tried insomnia, rapidApi (Paw), and others, but bruno's simplicity and focus on local devs won me over and it's the go-to HTTP client for me now. I use it on both Windows and Mac, and it works great in both places.


As someone has already mentioned, the interface is not as advanced as some of the other tools, but in functionality it covers the essentials of what I need and what it's missing is only minor things. I've been using Bruno for a while now, and it's continued to improve since I first started using it, so I'm perfectly content to continue using Bruno for my daily workflows.

Thank you to the developers for making a tool that's actually what the community wants instead of focusing only on what makes the most money.

Ryan Reynolds

@crossbound Thanks, David! Your feedback means a lot. I also see your comments in the reply above and will put some notes in there. All valid points.

Alvaro Tejada

Bruno is the best...I used to hate Postman...so when Bruno came along, I just hated Postman even more 😅 Bruno rules! 💪🏻 Best tool I used so far 🤩

Ryan Reynolds

@alvaro_tejada - Thanks, Alvaro!! Anything you'd want to see put into the product to make it even better?

Alvaro Tejada

@real_ryan_reynolds Can't think of anything right now 🤔 Bruno is great the way it is 🤩 But will for sure drop whenever I have something in mind 🤓

Chuck Chen

Long-time user here. And I have to say, I'm pretty happy with all the features Bruno offers, especially code generation.


Congrats on the launch!

Ryan Reynolds

@chuckchen - Thanks, Chuck!

Adam Chmara

Finally an API client prioritising an actual developer experience without the bloat! Looks promising!

Ryan Reynolds

@adamchmara Thanks Adam! Give us a try and let us know what you think!

Samuel Akinwunmi

love bruno - super lightweight!!

Ryan Reynolds

@0x_s13i Thanks for the support, Samuel! Anything you'd like to see improved/changed?

Francesco Piccoli

oh this looks great!

Ryan Reynolds

@francescopiccoli Thanks, Francesco!

Novian Andika

been using it since the first iteration. congrats on launch !

Ryan Reynolds

@novian_andika - Thanks, Novian! Glad to have you as part of the community!

Jean-Patrick

Bruno is a great day to day tool for me + as a dog lover, how can I continue without it.

Ryan Reynolds

@jeantanneau - we're local-first and dog-first :)

Jijo Sunny
congrats on the launch!!
Gaudenz

I love the local first approach and it's being "Free" and Open Source.

I can strongly recommend it because:

  • flexible configuration on environment and collection etc. levels

  • the easy scripting integration for defining response asserts and advanced scripting

  • OpenAPI yaml file import and export

  • OAuth 2 support

  • The CLI for running automated integration or system tests.

However one crucial thing that is missing in the free version is the "Vault Secrets" feature for storing secrets safely.

Keep up the good work!

Rohan Gayen

I would like one feature, ability to test responses from Temporary API routes. Not all the times we need full-fledged collections.

Ryan Reynolds

@admiralrohan Hey Rohan - so just the ability to make a request without a collection? We're actually planning for something like that soon - it's a popular request.

Rohan Gayen

@real_ryan_reynolds That is great!