[HN Gopher] Bruno: Fast and Git-friendly open-source API client ...
       ___________________________________________________________________
        
       Bruno: Fast and Git-friendly open-source API client (Postman
       alternative)
        
       Author : ulrischa
       Score  : 1211 points
       Date   : 2024-03-09 18:29 UTC (1 days ago)
        
 (HTM) web link (www.usebruno.com)
 (TXT) w3m dump (www.usebruno.com)
        
       | cube2222 wrote:
       | That looks nice! I stopped using Insomnia after they introduced
       | the forced login to save your collection and wiped all my stored
       | requests...
        
         | adhamsalama wrote:
         | Have you tried Insomnium?
        
           | cube2222 wrote:
           | Huh, I didn't even know Insomnia was originally open-source.
           | Thanks for this!
        
       | dmart wrote:
       | I like this a lot. Happy to support any project willing to reject
       | the usual "success story" of selling out to VCs and turning your
       | product into subscription-based SaaS junk.
        
       | pkulak wrote:
       | I'm the principal maintainer at work of a couple hundred bash
       | scripts that use httpie and jq. I don't have a huge appetite to
       | redo that work... but this certainly seems nicer!
        
       | sureglymop wrote:
       | Very tempting! But, will there be a lifetime version/license?
       | Would rather pay upfront instead of ending up potentially not
       | really using it much for 2 years.
        
         | throwitaway222 wrote:
         | It looks like the pricing page has lifetime licenses only.
        
           | sureglymop wrote:
           | It says "one time payment" but then it says "2 years of
           | updates". I interpreted that as having to pay a second time
           | two years into the future if I will want another two years of
           | updates then. A bit misleading.
        
             | spiderfarmer wrote:
             | It doesn't require you to upgrade so I don't see the
             | "misleading" part.
        
             | imafish wrote:
             | Not misleading - you understood it.
             | 
             | Lifetime license does not necessarily equal lifetime
             | updates. 2 years of updates is generous enough for $19.
        
               | throwitaway222 wrote:
               | It's similar to a lot of pricing plans out there. For
               | example I purchased Home Designer Pro 2022 a couple years
               | ago for $450 and I can use the HDP 2022 forever. They
               | have, of course, HDP 2024 but I can't use that one. I can
               | upgrade for an upgrade price. However I don't need to
               | upgrade and am happy to just use 2022 for the rest of
               | time.
        
       | emrehan wrote:
       | I created a cli postman test runner 8 years ago due to the pains
       | involved in API testing: https://github.com/hantuzun/jetman
       | 
       | It seems like the API QA developer tooling has still room for
       | disruption.
        
         | ponector wrote:
         | There is an official cli tool called Newman for running the
         | postman collections.
        
           | emrehan wrote:
           | Jetman was enabling writing and managing tests and it was
           | using newman to run the tests.
        
       | skydhash wrote:
       | I myself use Paw [0] because it's native to MacOS, but I'm a
       | little bit worried for it's longevity as it being supported by a
       | SaaS business. But so far it's been great to document API for my
       | personal projects.
       | 
       | [0]: https://paw.cloud/
        
         | jurassicfoxy wrote:
         | Second vote for Paw. I also was not happy about the buyout. It
         | has some quirks, but pretty awesome overall.
        
         | aPoCoMiLogin wrote:
         | the extensions and ability to write your own extensions, or
         | chain request/response values is crazy. when i've switched to
         | linux box from macos last year, paw.cloud (rapidapi) was one of
         | few stoppers for me, that good of a software it is. also not to
         | mention the integration with keychain for credentials
         | encryption was nice.
         | 
         | postman is really bad, nobody should use it. same goes for
         | similar solutions, even this one.
        
         | mberning wrote:
         | Quickly turning into abandonware. I tried moving my paw library
         | from one computer to another and it crashes opening the file.
         | Had to start from scratch.
        
         | thijsvandien wrote:
         | Never "upgraded" from 3.4.0 and never going to. For now it
         | works fine, but at some point I'm going to need to switch...
        
         | ho_schi wrote:
         | I'm envy? I'm hoping for a native GUI application for Linux.
         | 
         | Electron looks ugly, it doesn't integrate, fails to handle
         | HiDPI usually, in best case it eats a ridiculous amount of
         | memory (factor 5x compared to native) and in worst case it has
         | security issues due to Blink and lot of JS.
         | 
         |  _Electron is Flash for the Desktop._
        
           | reddalo wrote:
           | I agree. Whenever I can choose between a webapp/Electron or a
           | native app, I'll always go with the native app.
        
           | ozim wrote:
           | Electron is the only cross platform UI that is open and using
           | web standards that are not tied to a single company.
           | 
           | It is exactly the opposite of flash.
        
           | Shorel wrote:
           | Ohh, I wish it was only a factor of five. It would even be
           | acceptable!
           | 
           | Discord the Electron app uses 1.2 GB of RAM.
           | 
           | Ripcord the compiled client uses about 30 MB of RAM.
           | 
           | That's a factor of over 42 times.
        
       | retrofuturism wrote:
       | Take note makers of HN. If you launch a product with this
       | attitude and respect, I will pay for it in a heartbeat.
        
       | mikaelsouza wrote:
       | Damn, I wasn't sure if I cared about another postman/insomnia
       | like tool, but I saw the cute dog logo, and it sold the tool to
       | me. Maybe I am just silly, but that got me. Congrats to the team
       | for developing it!
        
         | quercusa wrote:
         | There appears to be an _actual_ dog as well:
         | 
         | https://www.usebruno.com/about
        
           | bloopernova wrote:
           | Aww Bruno looks like a Very Good Boy.
        
         | 4goodapp wrote:
         | Actually you're not alone in that boat, software logos play a
         | lot in my adoption apparently...
        
       | throwitaway222 wrote:
       | Postman story:
       | 
       | Layoff happened, and we didn't yet have our postman software in
       | our list of services to remove employees from. This is not
       | Postman's fault.
       | 
       | One person had "deleted" all his collections and workspaces after
       | the layoff to clear his laptop of all things related to our
       | company. After we got an email from Postman saying our workspaces
       | were deleted, I removed the laid off users. Since I removed the
       | laid off user, the "trash bin" associated with them was also
       | deleted. Postman support restored all the collections but the
       | "environment" was gone. Which was all of our QA test keys, etc...
       | 
       | Our Postman collections are still in shambles after that, and we
       | don't have any employees to manage it anymore. While I totally
       | don't hold Postman accountable - there is definitely a reason why
       | "no-cloud" is a good way to go with these kinds of tools.
        
         | sureglymop wrote:
         | It makes no sense in the first place for such a tool to even
         | need a login functionality and cloud saves... What's really
         | needed to store information about a few http requests? Maybe a
         | few kilobytes. I never understood it and I particularly don't
         | understand how any company could fall for that. If they instead
         | invested in teaching their engineers how to use curl even that
         | would have paid off more.
        
           | gardenhedge wrote:
           | The benefit of using postman is that you can open the app,
           | see your (shared) collections, easily change the params and
           | hit send. Can curl be used like that?
        
             | leosanchez wrote:
             | You can use hurl which uses libcurl. You can save it to git
             | and commit your hurl testa in the same repo.
        
             | soraminazuki wrote:
             | Of course you can. You can use any tool that lets you write
             | down commands, run it, and edit it. Shells, editors,
             | interactive notebooks like Org Mode, etc. The beauty is
             | that it's just text that you can copy and paste between
             | your tool of choice. You're not locked in to a single tool.
        
               | throwitaway222 wrote:
               | It's not very fun to run the auth call, then copy and
               | paste the access token to the next call, and have to
               | update all of your curl cmds all the time... Even if you
               | use env variables, that's a horrible way to use env
               | variables.
        
               | soraminazuki wrote:
               | You're making the case for automation, which happens to
               | be something the shell excels at. Use unexported shell
               | variables or command substitution (e.g., "$(pbpaste)").
               | Directly use the result of the auth call without going
               | through the clipboard if possible. Create a shell script
               | if shell history isn't enough. Use interactive notebooks
               | if you need something more advanced. The possibilities
               | are infinite.
        
               | throwitaway222 wrote:
               | At this point, just write a script
               | 
               | Or perhaps write a script that has some kind of GUI.
               | 
               | Or maybe make the gui run the URL
               | 
               | You're right the possibilities are endless. And this
               | Bruno and postman or permutations of that endlessness.
        
               | soraminazuki wrote:
               | If I understood correctly, you claimed that saving
               | requests, modifying it, or parametrizing it was somehow
               | more cumbersome to do with curl than with a GUI. I was
               | just pointing out that the shell is literally designed
               | for all those use cases. And human users don't
               | interactively use curl without a shell.
               | 
               | Also, using curl and the shell allows you to
               | progressively iterate. So "write a script at that point"
               | was kind of the point. Though you don't need to go that
               | far to just feed authentication info.
               | 
               | GUI solutions don't have endless possibilities. You start
               | and end with the exact same tool. The clicks and form
               | fillings can't easily be copied around and iterated on
               | unlike commands in a REPL. You can only perform tasks
               | defined by the author of the application.
        
               | gardenhedge wrote:
               | This feels along the lines of the infamous Dropbox
               | comment
        
               | soraminazuki wrote:
               | I was responding to a claim that essentially boiled down
               | to shells can't parametrize input. How is it even
               | remotely comparable to "the infamous Dropbox comment" to
               | point out that shells can do that better than GUI tools?
               | 
               | Also expecting end users to develop their own file
               | syncing solution on top of FTP is unreasonable. Expecting
               | software engineers to be able to use curl instead of a
               | GUI form is not.
        
               | eviks wrote:
               | You're describing the same tool with a much worse UI of
               | recreating the tool yourself (by everyone). There is much
               | value in avoiding that, hence people use integrated tools
               | even with the risks of lock in
        
               | soraminazuki wrote:
               | What UI do you need to recreate and how is it "much
               | worse?" You essentially type in the same information with
               | curl, but without all the mouse clicks and cursor
               | movements.
        
       | d0gsg0w00f wrote:
       | Thank you. As soon as Postman asked for a login I uninstalled it
       | and have been curling from text files ever since. My younger
       | coworkers won't drop Postman though. Maybe this will help them
       | switch.
        
         | bisby wrote:
         | The irony that I switched to Insomnia after Postman started
         | demanding a login... and now I've been actively looking for
         | alternatives (Bruno being on the list) now that Insomnia has
         | done the same thing.
        
           | leosanchez wrote:
           | Have you tried hurl ?
        
             | winphone1974 wrote:
             | Hurl is great, especially for testing but I fear it's not
             | acceptable by a huge segment of developers because of the
             | lack of a UI
        
           | adhamsalama wrote:
           | Try Insomnium.
        
           | margorczynski wrote:
           | Well based on historical experience with Postman and Insomnia
           | most probably Bruno will go the same way once they get enough
           | users hooked in.
           | 
           | Especially once a VC gets into the fold.
        
             | josephcsible wrote:
             | I foresee this happening too. For me to not worry about
             | this, three things would have to happen:
             | 
             | 1. Open source everything, including the parts of the code
             | that are currently premium
             | 
             | 2. Switch to a copyleft license like the GPL
             | 
             | 3. Start accepting substantial contributions from the
             | community without a CLA
             | 
             | Then they'd be legally unable to do that kind of rug pull.
        
             | helloanoop wrote:
             | Hey there, this is Anoop - creator of Bruno.
             | 
             | Happy to see Bruno at the top of HN
             | 
             | We will never take VC funding. We received around 10
             | inbound reach outs from VCs till date and have denied
             | funding from all of them.
             | 
             | We will remain independent and I have written about it in
             | detail here https://www.usebruno.com/blog/bootstrapping
        
               | biglyburrito wrote:
               | Thank you for posting here, and also for Bruno... I'll be
               | giving it a shot in the coming days, as I only learned
               | about it when I read this post.
        
               | 7fYZ7mJh3RNKNaG wrote:
               | Thank you for clarifying. Just made me download it.
        
               | bloopernova wrote:
               | Please give the real Bruno a hug from this Internet
               | stranger? He looks like a very good boy.
        
               | ARandomerDude wrote:
               | Recommend you copy/paste this as its own top-level
               | comment on this article, so it doesn't get buried.
        
               | Sn0wCoder wrote:
               | Hi Annop. Thanks for sharing this looks like a good
               | alternative to Postman. I see the company is based out of
               | India (awesome) but wanted to know if the company has
               | gone through the steps needed to sell to teams in the
               | healthcare industry in the US/UK i.e.) HIPPA, SOX2, PCI,
               | GDPR, etc....
        
               | unmole wrote:
               | > if the company has gone through the steps needed to
               | sell to teams in the healthcare industry in the US/UK
               | i.e.) HIPPA, SOX2, PCI, GDPR, etc.
               | 
               | They haven't.
        
               | jasonjayr wrote:
               | If they never take possession of the user's data into
               | their environment, then most, if not all of those don't
               | even come into play?
               | 
               | Like, that's kinda the whole point of offline-first,
               | local-only tools, you can 100% use them in a an
               | environment you control and take responsibility for. Once
               | you take control of customer's data, there's a whole
               | litany of due diligence that must considered, and often
               | at considerable cost.
        
               | Sn0wCoder wrote:
               | While I agree with you and understand that the data is
               | local only, we can only use tools approved by the
               | company. I would like to suggest that my team take Bruno
               | for a 3 - 6 month test drive (since Postman was unable to
               | check the boxes) but cannot without approval....
        
               | hyperthesis wrote:
               | > An API client is not venture scale.
               | 
               | Your link makes sense, and I believe you. Have struggled
               | with similar issues. But who knows what the future will
               | bring? Google once said "don't be evil"; Oracle bought
               | Sun. Is there any way you can guarantee your future
               | actions? Contracts, articles of association/company
               | constitution? Maybe setup a trust or charity? I don't
               | think there is.
        
           | dumbo-octopus wrote:
           | Download Insomnia 2023.5.8 and disable automatic updates.
           | 
           | Though Insomnia doesn't work with streaming responses at all,
           | which is a bit of a non-starter in the age of AI. Anyone know
           | a good streaming HTTP UI?
        
             | ponector wrote:
             | Why not to do the same with postman? I still use it without
             | the login.
        
               | dotancohen wrote:
               | From where do you download old Postman versions? More
               | importantly, which was the last version recommended?
        
               | dumbo-octopus wrote:
               | The "Lite API" mode of current Postman is actually
               | decent, it's the only GUI client I know that supports
               | streaming responses, but you have to use `Content-Type:
               | text/event-stream`. You can't save/share queries, but the
               | local history is decent enough for local development. I
               | prefer it to the Insomnia mutable fixed length saved
               | query implementation for "hacking around" with many
               | different APIs.
        
             | 1vuio0pswjnm7 wrote:
             | Does this describe the "streaming HTTP" to which you refer
             | 
             | https://gist.github.com/CMCDragonkai/6bfade6431e9ffb7fe88
             | 
             | If not, is there an example of "streaming HTTP" you could
             | provide that illustrates the limitation
        
               | dumbo-octopus wrote:
               | Yes, that is that I mean. All the modern "ChatGPT" style
               | API's use this, so if you're building anything that
               | invokes them you can choose between buffering the entire
               | response and modifying/relaying it once complete, or
               | building up a toolchain of streaming-capable utilities.
               | 
               | Of all the http-client applications I tested (Curl,
               | Postman, Insomnia, Bruno), somewhat hilariously Curl has
               | the best support. It will output all 'Transfer-Encoding:
               | chunked' with line-by-line buffering, whereas Postman
               | only supports responses precisely following the `Content-
               | Type: text/event-stream` format (strictly less powerful
               | than curl, as this format requires newlines in between
               | events, and a bunch of overhead on top of that). The
               | others buffer the entire response before displaying
               | anything.
               | 
               | The `Content-Type: text/event-stream` format is fine
               | enough, but I personally prefer to just plainly chunk the
               | responses and let the client choose whether to buffer
               | them into memory and operate on the entire value at once,
               | or interpret them live as the chunks come in. With tools
               | like gjp-4-gpt (Gradual JSON Parser 4 GPT's) you can even
               | interpret partial JSON objects live as they come in and
               | display complex/nested data structures in a generative
               | manner.
        
               | 1vuio0pswjnm7 wrote:
               | What if instead of JSON, i.e., strings of unknown length,
               | used something more like netstrings.
               | 
               | https://cr.yp.to/proto/netstrings.txt
               | 
               | Personally I use a lame but effective simple 85.9 KiB
               | static binary filter, a small C program, that removes the
               | chunk sizes so the response is ready for use by other
               | programs, e.g., in a pipe. Buffer is set at 8 KiB.
               | 
               | Is there a way to experiment with one of these streaming
               | JSON GPT APIs non-interactively by just sending an HTTP
               | request, without need for a third party program, an
               | account, use of a Javascript engine, etc.
        
               | dumbo-octopus wrote:
               | The unknown length isn't much of a problem for me in
               | practice: GPT's are slow enough that getting a large
               | chunk is almost impossible. I like the idea of the C
               | filter, but in the end you're just piping the data to the
               | program, why add the middle step? Is it to protect
               | against too-large chunks in some way?
               | 
               | I don't know a public API that returns JSON slowly, but
               | you could simulate it by just taking a JSON string,
               | splitting it into 3-5 char chunks, and sending each of
               | those in a `Transfer-Encoding: Chunked` response at
               | ~100ms intervals.
               | 
               | Actually, now that I look at the underlying mechanism
               | behind `Transfer-Encoding: Chunked`, it looks like it's
               | already basically the same as the netstrings. What I'm
               | referring to is the (variable length) contents of the
               | netstring/chunk being sequential slices of a JSON object.
        
               | 1vuio0pswjnm7 wrote:
               | "I like the idea of the C filter, but in the end you're
               | just piping the data to the program, why add the middle
               | step?"
               | 
               | Only for the flexibility to use more programs. Otherwise
               | every program I use to process HTTP responses needs to be
               | able to accomodate chunked transfer encoding. Plus only a
               | minority of sites send chunked responses. Instead, have
               | one program that does one thing: remove chunked transfer
               | encoding.
               | 
               | IIUC, what you want is uniform chunk sizes where you know
               | the size before you send the request.
               | 
               | GPTs sound annoying if they are so slow that they only
               | output a few characters every ~100ms..
        
               | dumbo-octopus wrote:
               | Ah I see, I'm working a bit further up the stack from you
               | so the JS runtime handles making the transfer encoding of
               | the response more or less irrelevant, for any response
               | with any encoding you can access `response.text()` and
               | get the entire contents when they're ready, or do
               | something like `for await (const chunk of response.body)
               | { ... }` to work with the pieces as they roll in.
               | 
               | > IIUC, what you want is uniform chunk sizes where you
               | know the size before you send the request.
               | 
               | I don't think so... I don't really want anything! Just a
               | GUI that displays existing HTTP chunked responses as they
               | come.
               | 
               | > GPTs sound annoying if they are so slow that they only
               | output a few characters every ~100ms..
               | 
               | That's perhaps an exaggeration, but in general the speed
               | and "smartness" of the model are inversely correlated.
        
               | 1vuio0pswjnm7 wrote:
               | I'm not really a GUI person nor do I use JS. I'm happy to
               | see HTTP responses in textmode. I tried playing around
               | with Postman and some other similar programs a while back
               | in an attempt to understand how they could be superior to
               | working with HTTP as text files. But I failed to see any
               | advantage for what I need to do. One problem with
               | GUIs/TUIs IMHO is that generally few people write them or
               | modify them. And so users must look around to try to find
               | one written by someone else that they like. Then they are
               | stuck with it, and whatever "options" its author chooses
               | to provide. Whereas with textmode programs, I can easily
               | control all the aesthetics myself. Even when using other
               | peoples' software, if there is something that annoys me,
               | I can usually edit the source and change it.
               | 
               | Best of luck. Hope you can find the right program for
               | viewing HTTP.
        
           | dotancohen wrote:
           | It's not open source, but it's in my workflow anyway. The
           | JetBrains HTTP tool is excellent, and has been getting better
           | and better for quite some time.
        
         | interbolt_colin wrote:
         | Great point. I almost wrote, "why use a bru file when more
         | established scripting languages and libs exist for this". But
         | it seems the point here is to bridge the gap between some devs
         | (maybe more junior) on a team that prefer a GUI while also
         | providing a more vc/cli driven experience for the rest of the
         | team.
         | 
         | Not to mention, that bru syntax looks really nice.
        
         | asabla wrote:
         | I did something similar as well. But instead curling from files
         | I've been using http-files.
         | 
         | Depending on which project I'm working on (and customer), I'll
         | be using different tools to run em.
         | 
         | But to show you an easy example to follow, you could check out
         | this jetbrains cli tool
         | https://blog.jetbrains.com/idea/2022/12/http-client-cli-run-...
        
           | d0gsg0w00f wrote:
           | I think it's just the nature of how I use APIs. I do
           | discovery with curl then just write a golang CLI for long
           | term use. I'd probably save a lot of boilerplate using
           | something like http-files though.
        
         | gitaarik wrote:
         | Hehe, always the same. Popular non-FOSS software always dies in
         | these kinds of ways. That, and that it's Chrome-only, is why I
         | never wanted to use Postman. I've been using RESTED [1] in
         | Firefox happily for quite some time. Although I don't use it
         | that much since unit tests and Django Rest Framework's web UI
         | is usually sufficient for testing and debugging.
         | 
         | [1]: https://github.com/RESTEDClient/RESTED
        
         | hn_throwaway_99 wrote:
         | Can't echo this enough. Thank you! Beyond just the login reqs
         | from Postman, the whole Postman UI has become an
         | overcomplicated mess in my opinion. I just want something
         | simple to make remote HTTP calls. I can understand adding some
         | useful extra things like variable interpolation and separate
         | environments, but beyond that, Postman went way off the
         | "enterprisey" deep end.
        
           | Alifatisk wrote:
           | You should try insomnia
        
             | vorticalbox wrote:
             | This also requires a login I believe
        
               | paulryanrogers wrote:
               | Not at first but as of late, yes. :(
        
               | vladvasiliu wrote:
               | You can still use it without an account, although it
               | tries quite hard to get you to use one.
        
               | piyh wrote:
               | They locked users data behind a login screen a week after
               | postman, then had a half assed "sorry you misunderstood
               | our corrupt intentions, we'll back out the change"
               | apology
        
             | winphone1974 wrote:
             | Insomnia and postman are pretty similar these days. I like
             | the REST extension for VS Code and hurl
        
               | Reptur wrote:
               | 100%, its awesome. Link for those interested: https://mar
               | ketplace.visualstudio.com/items?itemName=humao.re...
        
           | myaccountonhn wrote:
           | I use hurl, works absolutely great and the scripts end up
           | reusable by others.
        
           | amirathi wrote:
           | When you raise $$$ - the nice little API client needs to
           | become "Enterprise API Platform"
        
             | parkerrex wrote:
             | ^this
        
         | Poliorcetes wrote:
         | here's the thing, developers probably like to eat, so the
         | program has to eventually make money somehow. how does this
         | program plan to make money?
        
           | croes wrote:
           | https://www.usebruno.com/buy-golden-edition
        
         | YetAnotherNick wrote:
         | While I do hate Postman because its overcomplicated in
         | everything.
         | 
         | But attitude like yours has shifted people and money away from
         | developer tools. Instead of all the possible tools we could
         | have from many developers, we are now totally dependent on big
         | tech to sponsor it, like VSCode etc. And over time it would
         | move in direction that will promote another service from the
         | same company like copilot and vscode.
        
           | ryandrake wrote:
           | Developer Tool Developers are hurting themselves. I think it
           | is reasonable to not want to have to log in to every darn
           | thing you use on the internet. Especially developer tools.
           | 
           | Someone needs to invent a hat that developers have to wear:
           | when the developer starts to write signup, login or
           | authentication code, a hand pokes out of the hat and slaps
           | him.
        
             | nyanpasu64 wrote:
             | Default-on telemetry as well. I'm reminded of Balena Etcher
             | phoning home with the names of ISO files you flash, which
             | leaks the IPs etc. of which users are creating Tor/Tails
             | bootable USBs: https://gitlab.tails.boum.org/tails/tails/-/
             | issues/16381#not...
        
               | ryandrake wrote:
               | Yes, telemetry too! And automatic updates. They are all
               | symptoms of companies' obsession with having some kind of
               | ongoing post-purchase "relationship" with their users. As
               | a user, I don't want this relationship! I just want to
               | buy the tool and use it, without ever interacting with
               | the manufacturer ever again.
               | 
               | If I buy a circular saw, I don't want a relationship with
               | Makita. I don't want to have to log in to use it. I don't
               | want it telling Makita how many boards I cut and how well
               | the saw is working. No offense, but I'm just not that
               | into you, Manufacturer.
        
             | YetAnotherNick wrote:
             | Judging by vscode's or copilot's or postman's popularity,
             | login is not the issue. The issue is the quality of the
             | tool and number of developers they can hire.
        
           | ben_w wrote:
           | "A GUI for a command line tool" is, these days, at the level
           | where you can get the first 80% of the value by asking
           | ChatGPT to write it for you by copy-pasting in the bits of
           | the man page for the options you want.
           | 
           | (The second and third 80%'s still need human intervention).
        
         | _flux wrote:
         | I use httpie's CLI tool for testing application/json endpoints.
         | That and some jq really can make some things nice.
         | 
         | (Apparently it has a GUI version as well, but I'm not
         | interested in trying it.)
        
           | hackernoteng wrote:
           | I also have fallen back to just using curl + jq and a set of
           | saved commands since both postman and insomnia have decided
           | to make my life harder not easer. good old plain unix command
           | line tools never fails you.
        
             | _flux wrote:
             | You may consider giving httpie cli a test drive, if you are
             | dealing with json endpoints. You can put in Bearer header
             | and JSON arguments quite easily with                   http
             | localhost:1234/end/point Authorization:$bearertoken
             | arg1=hello arg2:='{"a":42}'
             | 
             | and get colorized JSON out from it. I use my script called
             | Authorization to fish out the bearer token so in my case
             | the call is just                   http ..
             | "`Authorization`" ..
             | 
             | So while one can achieve the same with some jq+curl, it
             | perhaps is a bit more prepackaged in httpie.
        
         | rozenmd wrote:
         | I started using Yaak after Insomnia and Postman both decided to
         | become user-hostile, it's decent: https://yaak.app/
         | 
         | You'll never guess who makes it.
        
           | roskoez wrote:
           | Jeff Minter?
        
             | ben_w wrote:
             | Was thinking about him earlier (due to a bad pun on my
             | part). Glad he's still around making games.
        
           | staticshock wrote:
           | Heyo, looks like it's Gregory Schier, the maker of Insomnia:
           | https://schier.co/
        
           | gschier wrote:
           | Yes, it's me! Thanks for the mention
        
             | staticshock wrote:
             | Do you have any plans to open source the thing?
        
               | gschier wrote:
               | Not at the moment. If I decide to pursue it full time
               | then probably
        
         | quickthrower2 wrote:
         | I did the same switch. Then went to the Chrome extension YARC
         | https://chrome.google.com/webstore/detail/yet-another-rest-c...
         | which I like for the simplicity. It does remember past queries.
        
         | Eji1700 wrote:
         | I know people don't love VS Code, but is there a reason Thunder
         | Client isn't more popular? I know it's feature lacking compared
         | to postman, but more so than curling?
        
           | CharlesW wrote:
           | This looks nice too, thanks for sharing! I can also recommend
           | RapidAPI for macOS users.
        
           | majkinetor wrote:
           | Team options are behind the paywall. Besides, bruno is simply
           | better.
        
             | MissTake wrote:
             | Not necessarily so. We don't pay but our small team still
             | shares projects with the tool.
        
               | majkinetor wrote:
               | Sure, its possible, not exactly great experience though.
        
           | icandoit wrote:
           | It limits collections to 50 endpoints. I also couldn't
           | immediately see how to plug tokens into variables. Bruno is
           | intuitive and has no pay-to-remove limits.
        
         | ivan888 wrote:
         | vim-rest-console[0] has been my Postman alternative for years.
         | It basically wraps curl and makes it super easy to make
         | different requests from a single text file. Can even write YAML
         | and have it converted to JSON before being sent in the body.
         | Really great tool
         | 
         | 0: https://github.com/diepm/vim-rest-console
        
           | d0gsg0w00f wrote:
           | This looks right up my a alley. Thanks for sharing!
        
         | 4death4 wrote:
         | Do you just store the entire curl command in a text file or do
         | anything more complicated?
        
         | parentheses wrote:
         | I will usually take curl commands i end up calling a lot and
         | use a function or script to make those calls easily. I find
         | this to be way better for me personally. I feel using Postman
         | teaches you only Postman. Whereas making shell tools and
         | learning curl are so much more valuable. Plus, you can combine
         | them with fzf, jq, fx, yq and friends to easily customize.
        
           | jicea wrote:
           | Shameless plug for Hurl [1]: it's a cli tool, based on plain
           | text and curl to run and test HTTP requests. It's just
           | libcurl + the possibility to chain and test response. You may
           | like it! (I'm one of the maintainers)
           | 
           | [1]: https://hurl.dev
        
         | jimbokun wrote:
         | I tend to collect little Ruby one or two liners for common REST
         | calls, and now Go. Takes care of things like getting a JWT
         | token and including it in the right header, as reusable code.
         | 
         | Takes slightly longer the first time than curl or Postman. But
         | much more powerful in terms of using in scripts for operations
         | tasks.
        
         | duxup wrote:
         | I just liked when I could start postman and it would just start
         | fast.
         | 
         | As it is the things I test start up faster than postman who is
         | ... I don't know what it was doing when I quit on it.
        
       | nothrowaways wrote:
       | Looks great
        
       | alecsm wrote:
       | I'm tired of Postman freezing when sending JSONs over a MB in
       | size. I had to purge it from the system a couple times because
       | the tab wouldn't even load on start up making the whole thing
       | unresponsive.
       | 
       | I hope Bruno works better in that regard.
        
       | FlyingSnake wrote:
       | Looks great!
       | 
       | Postman dug its own grave after selling out itself for VC money.
       | The "File over app" philosophy is a direction that we should be
       | supporting after the Post-ZIRP VC money world.
       | 
       | 1: https://stephango.com/file-over-app
        
         | sakjur wrote:
         | Thank you for introducing me to that wording. I quite like it,
         | easy to remember and explain without needing to use industry
         | lingo.
         | 
         | It should also be easier to comply with GDPR's Right to Data
         | Portability (article 20) for applications that follow the "File
         | over app" philosophy.
         | 
         | 1: https://www.edpb.europa.eu/sme-data-protection-
         | guide/respect...
        
       | throwitaway222 wrote:
       | Golden Edition in the pricing page is listed twice, it looks like
       | the middle column should read "Individual plan"
        
       | michaelbuckbee wrote:
       | I have nothing against this app or the other graphical HTTP tools
       | like Postman, Insomnia, etc., as people clearly get value out of
       | them, but personally, I've moved everything over to Hurl -->
       | hurl.dev
       | 
       | - Open source
       | 
       | - Text files all the way down
       | 
       | - Easily understood DSL
       | 
       | - Easily distributed
       | 
       | - Easily versioned
       | 
       | - Fast
       | 
       | Download the executable, copy the two lines below into "first-
       | test.hurl" and you're up and running.                   GET
       | http://localhost:3000         HTTP 200
       | 
       | I realize I'm fanboying a bit here, but Hurl really has been so
       | helpful for our particular use case at wafris.org where we're
       | trying to support a large number of different HTTP clients. We
       | can just give an integration partner access to our hurl suite and
       | they're good.
        
         | leosanchez wrote:
         | +1 for hurl. Been using it from many months now.
         | 
         | IMO only thing missing for me is a predicate that checks every
         | item in the array for some condition.
        
         | twodave wrote:
         | I took a lot of inspiration from Hurl while building Nap[0]. My
         | next goals for it are a UI and/or a VS Code extension.
         | 
         | [0] https://naprun.dev
        
           | emmanueloga_ wrote:
           | curious why you decided to create that instead of using hurl?
        
             | twodave wrote:
             | For fun, of course ;)
        
         | statenjason wrote:
         | I tried Hurl after Insomnia went the way of Postman. The
         | highlights you list were the strong drivers for testing it out.
         | Where Hurl fell short was composing requests. Example: X.hurl
         | response has authToken. Y.hurl uses authToken. Z.hurl uses
         | authToken. There's no import ability[1], so you've got to use
         | other tooling to copy X.hurl into Y.hurl and Z.hurl.
         | 
         | Ultimately settled on Bruno. It's backed by readable text
         | files[2] as well. The CLI works for scripting. And the GUI is
         | familiar enough that I've managed to convert Postman holdouts
         | at my dayjob.
         | 
         | [1]: https://github.com/Orange-OpenSource/hurl/issues/1723
         | 
         | [2]: https://docs.usebruno.com/bru-language-samples.html
        
         | jicea wrote:
         | Hi maintainer of Hurl [1] here! Your comment makes my day,
         | thanks!!
         | 
         | [1]: https://hurl.dev
        
       | anonymous344 wrote:
       | bruno seems really easy and good, but then.. it doesn't support
       | cookies..
        
       | masa331 wrote:
       | Can someone explain what Postman or Bruno is for? I know it's
       | something for interacting with apis but why would i use it. I
       | interact with apis a lot with curl or wrapper in my languages but
       | never really needed something else?
        
         | abledon wrote:
         | Alot of people in tech/tech-adjacent cant use CLI, need an
         | easier alternative. Also, instead of having a huge .txt/.md
         | recursive directory of curl commands, programs like these
         | bundle up request workflows into 'collections' etc..
        
           | epolanski wrote:
           | Also it helps with documenting/testing.
        
         | dt3ft wrote:
         | Can be used to for api testing. Collections, token handling
         | etc. Mostly for api testing, and collections can be shared
         | among team members and source controlled.
        
         | ericyd wrote:
         | For me it's more convenient than curl for three reasons mainly:
         | 
         | 1. Easier to organize collections of requests in a visual
         | hierarchy
         | 
         | 2. Environments mean you can use the same collection to easily
         | execute against local, dev, staging, production, etc.
         | 
         | 3. Pre- and post-execution scripts mean you can
         | programmatically extract values and chain into other requests
         | (think grabbing an access token from an oauth request then
         | using that token for an authenticated request)
         | 
         | It's basically just convenience features, nothing you can't get
         | with other tools.
        
         | jmopp wrote:
         | As someone who uses curl and postman regularly, both tools have
         | their places: I've found curl most useful for quick ad-hoc
         | requests, or if I need to figure out why my service is no
         | longer working. Postman I've found most useful to create a
         | library of requests that are available on-hand: If I need to
         | call services but I don't want to have to remember what the
         | exact URL is or what the exact payload is.
        
           | leosanchez wrote:
           | Have you tried hurl ? It's kind of a mix between curl and
           | Postman
        
         | konaraddi wrote:
         | It's a rich GUI for calling APIs, including rudimentary load
         | testing.
        
         | DotaFan wrote:
         | I really like to use Insomnia (Bruno alike) to import all
         | project API's and debug API's over Insomnia. Does the job much
         | faster for me.
        
         | serial_dev wrote:
         | One more thing I don't see mentioned is that you can share
         | requests with your team easily, so if you worked on an API
         | integration, you can document it, share it with your team, and
         | when the next time someone else needs to fix something, they
         | can find something that worked at some point and has all the
         | required fields.
         | 
         | Of course you could also just check in to version control these
         | requests as curl commands, so if your team has the technical
         | knowhow, that's about almost the same.
         | 
         | Or even better, you write some tests in your language to make
         | these requests, then you have an integration test, too.
        
         | midasz wrote:
         | For me a big usecase is the ability to save specific requests
         | and categorize / name them. It's a good way to document test
         | data. If someone creates a feature which I want to test or
         | debug I'd have to dig into the database to find which
         | parameters I'd need to use, or I just find the right request in
         | the tool.
        
         | fuzzy2 wrote:
         | To put it simply: Postman is for everything _but_ what curl is
         | for. Sure it also performs the actual request somewhere under
         | the hood but that's mostly irrelevant. Having a single
         | integrated user interface (it could also be a text UI) to craft
         | a request, sometimes sending JSON, sometimes a file, then
         | sending it to inspect the result, then modifying the request
         | then doing it again is very powerful. Not to mention OAuth
         | /OIDC support and the like.
         | 
         | Sometimes, you have to find out how an API works, exactly.
         | Sometimes you want to test your own APIs in ways the regular
         | clients do not allow.
        
         | d4rkp4ttern wrote:
         | I had the same question. My current workflow in deploying a
         | REST API is to write my own thin wrapper in Python and publish
         | that so people can use it. I don't know if postman/bruno saves
         | me from having to write a wrapper. I also don't understand the
         | deal with "collections". Maybe postman/bruno are good for
         | creating a test suite ?
        
         | afiori wrote:
         | My use case (covered by postman but not Bruno _) is to test a
         | code base where unit testing is not available.
         | 
         | We have multiple environments with multiple parallel versions
         | (think like dev/staging/prod and current/legacy), these
         | deployments mostly have the same API with slightly different
         | urls and credentials
         | 
         | We use multiple environments to easily switch between the
         | various versions both for one-off operations (like a clear
         | cache call that only needs to be called few times a year in
         | response to external actions) and to manually test features.
         | 
         | I can see why not everybody would have this use case
         | 
         | _ Iirc Bruno does not have enough environment/variables/pre-
         | post-request scripting support
        
       | benrutter wrote:
       | Looks awesome! Having version controlled api collections is a
       | good enough idea that it makes all other ideas seem a little
       | crazy.
       | 
       | Any idea if the CLI app is available as a standalone? Looks like
       | its a "desktop app + cli" or nothing deal from what I can find.
        
       | adhamsalama wrote:
       | Doesn't seem to support advanced stuff like GraphQL, gRPC,
       | WebSockets...
        
         | lazypenguin wrote:
         | Seems it does under the premium version
        
       | sergioisidoro wrote:
       | I found Bruno after Insomnia adopted the Postman strategy of
       | being cloud first, with a disastrous migration - I momentarily
       | lost all my local projects after an update.
       | 
       | I've been using it for a while and I really like the offline
       | first + git collaboration aspect of it. Only missing Websockets
       | functionality at the moment.
        
       | jhoechtl wrote:
       | Insomnia was great. Than they more or less put of 90% of their
       | users by forcing them in their cloud. Did that get any better?
        
       | kirubakaran wrote:
       | If you use Emacs, restclient is awesome
       | 
       | https://github.com/pashky/restclient.el
        
         | progre wrote:
         | If you use VS Code REST Client is awesome
         | https://github.com/Huachao/vscode-restclient
        
           | S04dKHzrKT wrote:
           | If you use IntelliJ based products, the builtin HTTP Client
           | is awesome. https://www.jetbrains.com/help/idea/http-client-
           | in-product-c...
        
             | gamache wrote:
             | If you use computers, Curl is awesome. https://curl.se/
        
               | bdcravens wrote:
               | In the same sense that no one needs a graphics editor
               | when imagemagick is available via the command line.
        
               | BlueFalconHD wrote:
               | If you use a router, manually connecting wires to send
               | data is awesome
        
               | mordae wrote:
               | For JSON based REST APIs httpie is somewhat easier to
               | use.
        
           | eddyg wrote:
           | Came here to recommend this.
           | 
           | It does just about everything you can think of, and since
           | it's just "a text file", easy to store in git.
           | 
           | The ability to easily use the _output_ from previous
           | responses in subsequent requests makes for great story demos
           | and /or test cases.
           | 
           | And it's all done in VS Code, using tools/keystrokes/colors
           | you already know and love. :)
        
         | meonmyphone2 wrote:
         | This is what I use, my main complaint is that it doesn't format
         | json well when using restclient mode.
        
         | joe8756438 wrote:
         | Yes. yes it is. It's basically compatible with the vs code
         | variant too so team compatibility hasn't been a problem.
        
       | James_K wrote:
       | I would love to see more UI done in this style. That is to say
       | treating your business logic as an API and then exposing it
       | publicly to clients on different platforms.
        
       | lovasoa wrote:
       | I am currently looking for a solution to run automated tests on a
       | sql website generator I am working on ( https://sql.ophir.dev )
       | 
       | I wanted to use hurl (https://hurl.dev/), but Bruno's UI seems to
       | be useful while developing the tests... Has someone tried both ?
       | Which is better for automated testing, including when the
       | response type is html and not json?
        
         | ushakov wrote:
         | Maybe try Step CI (https://stepci.com)
        
       | spdustin wrote:
       | MQTT is in the pipeline? That's gonna be a huge deal for those of
       | us working on IoT projects that also use REST for service data.
       | I'll be watching this for sure.
        
       | midnitewarrior wrote:
       | Can this read OpenAPI (Swagger) specs and generate calls based on
       | the service description?
        
       | dgan wrote:
       | Funny, i literally wrote an API tester a week ago for my job. It
       | doesn't have a pretty syntax (in fact, it is the opposite of
       | pretty, tests must be written in XML), but it does understand our
       | authentication flow, and is able to not only assert the status
       | codes and the returned json, but also the contents of Excel
       | files, since we do lots of reporting.
       | 
       | I haven't seen anything being able to compare excels. Also,
       | usually test frameworks are aimed at developers (unsurprisingly),
       | not at testers who might not be comfortable in writing scripts
       | (looking at you, Katalon)
        
       | wzulfikar wrote:
       | I've replaced Postman with Bruno (dekstop app), works great so
       | far! It's nice to put the collection folder in git so I can
       | collaborate with others and commit the changes to the repo.
        
       | INTPenis wrote:
       | But can it handle oauth2? I had to write a httpie script recently
       | just to test an oauth2 api.
        
       | thih9 wrote:
       | One thing I like doing when working with APIa is to have an echo
       | server at hand.
       | 
       | I.e. something that I can query via curl or via a network library
       | that I'm using, and see in response what kind of request it
       | actually received. It helps me verify that I'm making correct
       | requests (and not misusing curl or a network library).
       | 
       | Currently I google for that and use the first online result that
       | comes up. Is there an open source local equivalent, or does Bruno
       | offer some solution for that?
        
         | paol wrote:
         | Sounds like mockserver[0] might be what you want.
         | 
         | [0] https://www.mock-server.com/
        
         | cyunker wrote:
         | I've been using https://httpbin.org/ to so some client testing
         | and so far it has been great. They provide a docker image which
         | makes it easy to run locally.
        
         | ricekot wrote:
         | I use ZAP [1] with the OAST add-on for this at the moment. I
         | admit the UX isn't perfect, but it serves my purpose.
         | 
         | If I also want control over the responses (e.g. return a 401
         | status code for every fifth request), I have a custom extender
         | script [2] for that.
         | 
         | [1]: https://www.zaproxy.org/
         | 
         | [2]: https://www.zaproxy.org/blog/2022-09-13-zap-extender-
         | scripts...
        
         | notRobot wrote:
         | <?php         print_r($_POST);         print_r($_GET);
         | 
         | If all you need is an echo, should be as simple as this in a
         | .php file, no? Can be deployed with PHP's built-in webserver.
        
         | emmanueloga_ wrote:
         | Sound like you need https://mitmproxy.org/#mitmweb
        
         | lelanthran wrote:
         | > One thing I like doing when working with APIa is to have an
         | echo server at hand.
         | 
         | > I.e. something that I can query via curl or via a network
         | library that I'm using, and see in response what kind of
         | request it actually received. It helps me verify that I'm
         | making correct requests (and not misusing curl or a network
         | library).
         | 
         | Did you consider using a proxy during development. A man-in-
         | the-middle server that does nothing but relay and record all
         | communications between client and server?
         | 
         | I made one specifically for this use-case. See it in action (3m
         | video): https://www.youtube.com/watch?v=kpsFSY-G5F0
        
       | daniel-grigg wrote:
       | The IntelliJ http client is pretty great too (after using both
       | postman and insomnia) if you use IntelliJ already.
        
       | kissgyorgy wrote:
       | Here is why you should ditch Insomnia:
       | https://www.youtube.com/watch?v=eqf9kD2XPn8
        
       | rvz wrote:
       | > The source code for Golden Edition features is proprietary.
       | 
       | Here we go again. There are two versions of this tool. One which
       | is "open source" and another that has additional features which
       | are closed source.
       | 
       | Not very "open-source" after all.
        
       | bennyp101 wrote:
       | There was a discussion a while back when the whole insomnia thing
       | happened, where the dev points out how he aims to not go the same
       | route
       | 
       | https://github.com/usebruno/bruno/discussions/269
        
         | zubairshaik wrote:
         | Insightful read; thank you for sharing.
        
       | burnett2k wrote:
       | This looks amazing. Postman is a great tool overall, but
       | definitely seems to have gotten clunky and overly engineered. I
       | don't need so many damn features. 99% of use cases are just hit
       | an api. Will be trying this out immediately!
        
       | JanisErdmanis wrote:
       | I just finished watching the introductory video and found the
       | whole concept of PostMan and Bruno disappointing. It's baffling
       | that one has to dive into the code to unearth the appropriate
       | routes--a completely unnecessary and time-consuming endeavour.
       | This process should be automated, ensuring that documentation and
       | code are always perfectly aligned, eliminating any out of sync
       | issues. The endpoints themselves should be directly accessible
       | from automatically generated documentation using tools like
       | Swagger. This isn't just a convenience; it's a necessity for
       | efficient and effective development.
       | 
       | So, what is the utility of tools like PostMan, Bruno and others
       | when one has automatically generated docs with Swagger with which
       | one can interact? As an example, you can check my current project
       | where I have set docs like that (still need to add an endpoint
       | field): https://peacefounder.org/PeaceFounder.jl/dev/schema
        
         | ponector wrote:
         | Imagine you have a scenario where you need to get a token
         | first, then with GET retrieve an id of the item, then with POST
         | create a new entity related to that id. And then you need to
         | call another microservice with created id from post request.
         | 
         | How you going to do it in swagger?
         | 
         | And more serious question is how you going to force developers
         | keep swagger up to date so I can execute such scenario?
        
           | JanisErdmanis wrote:
           | > Imagine you have a scenario where you need to get a token
           | first, then with GET retrieve an id of the item, then with
           | POST create a new entity related to that id. And then you
           | need to call another microservice with created id from post
           | request.
           | 
           | This is a good explanation. I would however be inclined to do
           | that within a script.
           | 
           | > And more serious question is how you going to force
           | developers keep swagger up to date so I can execute such
           | scenario?
           | 
           | The swagger is created automatically from the routes
           | themselves so it is always up to date. To maintain endpoint
           | an integration test can be written which executes the
           | scenario.
        
         | knallfrosch wrote:
         | We use Swagger for internal APIs and Postman for 3rd party
         | APIs.
         | 
         | It's not like these sites serve swagger.
        
       | hackernoteng wrote:
       | Good. Postman and Insomnia have shot themselves in the foot with
       | overly complex UI and a mess of managing your collection of API
       | calls in some horrible format and messing up the whole sync
       | process and the simple ability to run everything offline without
       | login, etc. I would also add that streaming (SSE) support would
       | be great.
        
       | vsgherzi wrote:
       | This is exactly what I was looking for, never understood why
       | postman decided to monetize that way
        
       | everettwilson wrote:
       | Well this is fun to see. After Postman deleted my local data
       | after I declined a cloud account, I started working on my own
       | tool: https://github.com/EvWilson/sqump
       | 
       | Some similar ideas - actually treats the file system as
       | authoritative, runs locally, can share collections via source
       | control with teammates. Difference in this case is that I used
       | Lua as a lightweight scripting layer that I gave all my necessary
       | tools to. So now I have a HTTP toolkit, and some for Kafka as
       | well (which I use a good bit). I've been able to use it to
       | replace all my API testing and development, as well as perform
       | some more involved migrations and some dashboard-like actions
       | (e.g. can list out resources and then check failures for each of
       | their IDs).
       | 
       | It's also just a single binary with the web UI and CLI bundled
       | in, which works more for me. Still early days for the little
       | tool, but hoping it could be helpful for someone else.
        
       | Zelphyr wrote:
       | Just one minor note about your website: it breaks the back
       | button.
        
       | synthc wrote:
       | I prefer curl and bash for testing API's, it's less polished, but
       | very flexible and it will never break or require an account.
       | 
       | But for sharing requests in a team an app is nice. I had a good
       | experience with Bruno. Bonus point for easy to store configs.
        
       | HNArg024 wrote:
       | Looks nice! Will give it a try, so I can ditch Insomnia
        
       | n00bskoolbus wrote:
       | Been using Bruno for a while now and it's done what I need, I'm
       | not doing any thing crazy just testing endpoints with maybe a
       | small bit of scripting afterwards. Very pleasant to use.
        
       | AHTERIX5000 wrote:
       | I've been looking for an alternative to Postman since its
       | enshittification. Postman does not even work anymore if it can't
       | reach internet. This looks actually useful and seems to have
       | support for OAuth2 (which is the main reason I use something
       | separate app instead of python/curl + sh etc)
        
       | Crowberry wrote:
       | We recently moved over to bruno (from postman) for integration
       | tests, and have had a great experience so far!
       | 
       | Pros:
       | 
       | - DevEx is great, the experience moving between writing tests
       | through text vs the client is seamless (allows different
       | expertise to collaborate more easily)
       | 
       | - Fast and has all the basic features you'd expect
       | 
       | - Offline first
       | 
       | - Continuous improvements being made
       | 
       | Cons:
       | 
       | - Somehow, if the test fails connecting with the server its a
       | passed test. So watch out for that one! I really hope it gets
       | fixed soon!!
       | 
       | - Would be great to be able to dump the variables after a run
       | through CLI
       | 
       | - Failed outputs from assertions and expects could be a bit more
       | verbose, but it's mostly likely the result of a dependency I
       | assume
        
       | yashasolutions wrote:
       | Bruno is awesome. The import from postman thing is really what
       | make the difference - it makes adoption instant (because yes
       | everyone is still running on postman).
       | 
       | Regarding long term strategy, they seems to have a valid (non
       | subscription based) where you can get some very nice premium
       | feature for a one-off licence price (which is the kind of
       | business model we need to support - instead of the madness we
       | have going today with everything is subscription)
        
       | 1vuio0pswjnm7 wrote:
       | What, if anything, differentiates an "API client" from an "HTTP
       | client" (HTTP client includes TCP client)
       | 
       | What is required to be considered an "API client"
       | 
       | Perhaps "API client" is "HTTP client" + "JSON parser"
       | 
       | Could "JSON parser" be a separate program
        
         | thunderbong wrote:
         | API clients mostly expect JSON responses. So, test assertions
         | have to be able to parse the responses and validate them.
        
       | zikohh wrote:
       | I've had my eye on Bruno for a while but this issue with path
       | parameters is somewhat annoying.
       | https://github.com/usebruno/bruno/pull/484
        
         | helloanoop wrote:
         | Hey there!
         | 
         | Thank you for the patience. We have been occupied with adding
         | File Uploads and OAuth2 support in Feb and prepping for the
         | Golden Edition release. This issue is priority. Hoping to get
         | the PR merged soon.
        
       | hota_mazi wrote:
       | I really like IDEA's .http files [1]
       | 
       | Very similar idea as Bruno: everything is configured in text,
       | which I always find myself more productive in that full blown GUI
       | where I need to tab from edit text to edit text to get anything
       | don.
       | 
       | [1] https://www.jetbrains.com/help/idea/http-client-in-
       | product-c...
        
         | Atotalnoob wrote:
         | Several ides support .http files
        
         | lostindetails wrote:
         | Ah, I didn't know that Jetbrains also supports them, as I've
         | been using them with vscode with the extension
         | https://marketplace.visualstudio.com/items?itemName=humao.re...
         | and I am happy so far.
         | 
         | They are plaintext and can be easily diffed and they don't
         | invent a totally new language.
         | 
         | The extension also supports somewhat esoteric features like
         | client certificates, which I already needed.
         | 
         | So I'd be more interested in a comparison between bruno and
         | .http than insomnia.
         | 
         | [edit: grammar & typo]
        
       | cynicalsecurity wrote:
       | Insomnium.
        
       | adra wrote:
       | I just started to use the intellij built-in http client for my
       | quick and dirty curl debugs and I gotta say it's pretty good for
       | my limited needs so far.
        
       | majkinetor wrote:
       | I am using bruno on all my REST projects and the entire team is
       | more than happy. We have bruno file for most endpoints
       | demonstrating basic usage and as soon as something is
       | problematic, someone creates bruno file in the repo and link to
       | it so others can interactively discover what the problem is
       | about. Since its cross platform and doesn't require any kind of
       | on-boarding its joy to use and nobody complained. Previously,
       | people used postman, thunder, curl and whatnot, but now everybody
       | is on the same page. People created all sorts of scripts, such as
       | automatic token refresh, so you jump straight to action. The fact
       | that I can edit it in vscode is also amazing. Thank you.
        
         | jonotime wrote:
         | Care to share any scripts? Automatic token refresh is a feature
         | I am waiting for in Bruno.
        
           | majkinetor wrote:
           | https://gist.github.com/majkinetor/2a67c78af393865e4fa7daaa9.
           | ..
        
       | superfrank wrote:
       | Funny. I just found Bruno two weeks ago after getting fed up with
       | Insomnia and am loving it. It feels like what Postman and
       | Insomnia were when they started. Simple and to the point.
       | 
       | There are a few minor features I miss (being able to bulk edit
       | headers is the main one), but overall I highly recommend it.
        
         | manquer wrote:
         | You can do that by editing the collection file directly , Bruno
         | watches for file system changes on the collection folder
        
           | superfrank wrote:
           | Ah, that's good to know. I'm definitely going to use that
           | trick. I'd still love to have a first class way to do that
           | though.
        
         | fuzzy2 wrote:
         | Just curious, what's your gripe with Insomnia? I find its UX a
         | little clunky at times but haven't found anything limiting my
         | use cases.
        
       | divbzero wrote:
       | I really like the idea of serializing requests to a Git-friendly
       | text format.
       | 
       | But if we want a Git-friendly text format, why not mimic HTTP/1.1
       | request syntax as much as possible? Maybe with Jekyll-like YAML
       | front matter for metadata that doesn't fit?
       | 
       | So for _Get Users.bru_ instead of the current example of:
       | meta {         name: Get Users         type: http         seq: 1
       | }              get {         url: https://reqres.in/api/users
       | body: none       }              headers {         Content-Type:
       | application/json       }
       | 
       | We could adopt a format like:                 ---       name: Get
       | Users       type: http       scheme: https       seq: 1       ---
       | GET /api/users HTTP/1.1       Host: reqres.in       Content-Type:
       | application/json
        
         | Cthulhu_ wrote:
         | I've used a plugin in both VS Code and IntelliJ that is just
         | that, I just saw someone else post it too:
         | https://marketplace.visualstudio.com/items?itemName=humao.re...
         | 
         | Example:                   GET https://example.com/comments/1
         | HTTP/1.1              ###              POST
         | https://example.com/comments HTTP/1.1         content-type:
         | application/json              {             "name": "sample",
         | "time": "Wed, 21 Oct 2015 18:27:50 GMT"         }
        
           | Karupan wrote:
           | Second this. One of the first VSCode extensions I install and
           | recommend for non-devs in the team as well (BAs, QAs, etc).
           | Kind of insane how human friendly HTTP 1.1 is.
        
         | 7fYZ7mJh3RNKNaG wrote:
         | Would love this
        
         | schoenobates wrote:
         | Intellij (and all the other variations) has something very
         | similar to this called [0]HttpClient. Being able to commit and
         | basically just read the file is very useful. You can also do
         | validation and scripting with it too.
         | 
         | [0]https://www.jetbrains.com/help/idea/http-client-in-
         | product-c...
        
         | Aeolun wrote:
         | I think hurl does this?
        
         | lb4r wrote:
         | Just out of curiosity, why is the below example more git-
         | friendly than the above? Smaller deltas? (and if so: why?)
        
         | manquer wrote:
         | There is reason they didn't go with YAML like syntax the author
         | talks about it extensively here
         | https://github.com/usebruno/bruno/discussions/360
        
       | blah-yeah wrote:
       | If you want to:
       | 
       | store REST API requests as files, such that you can git version-
       | control them
       | 
       | may I recommend:
       | 
       | https://marketplace.visualstudio.com/items?itemName=humao.re...
       | 
       | super simple. just requires VS Code.
       | 
       | Im checking out Bruno as well though, looks like a great tool
        
       | jameshart wrote:
       | The complaints about postman collection files being hostile to
       | Git collaboration is valid, but I will just say: we managed to
       | cobble together a reasonable workflow, persisting our postman
       | collections in source control, by writing a utility that strips
       | out all the guids that postman needlessly changes every time you
       | do a collection export. We use Newman to run the collections in
       | our CI pipelines, and as the main way to run tests locally.
       | 
       | It's painful having to do an import/export of the collection from
       | a file every time you want to modify the collection or debug a
       | test, though, and the JSON files are still not entirely
       | diffable/code reviewable even with the guids stripped. But it
       | works - you _can_ collaborate as a team with postman without
       | using their cloud.
       | 
       | But the idea of switching to a tool that actually _wants_ you to
       | work that way is definitely tempting.
        
       | shinzui wrote:
       | Hurl is better than any of those GUIs. You can version your Hurl
       | files and use them for CI/CD.
        
       | vsnf wrote:
       | It's nice, but variable import from OpenAPIv3 needs a bit of
       | work, compared to Postman and Insomina.
       | 
       | Our OpenAPI spec has something like this:
       | servers:             - url: https://{host}/api/v2
       | variables:                 host:                   default:
       | someserver.example
       | 
       | Insomnia and Postman import the collection with the host as a
       | variable, centrally editable, while Bruno imported it resolved
       | with no variable, so I have to edit every one of my endpoints
       | whenever I change the host, which happens often in our setup.
        
         | jrks11o wrote:
         | So there are no env variables?
        
       | nokeya wrote:
       | History goes in circles. New API client appears, adds features,
       | userbase grows. Forced login is added, users are angry and look
       | for alternative. New API client appears...
        
       | MBCook wrote:
       | Does anyone know of any good guides to getting the most out of
       | these kind of tools? I'm mostly interested in Postman since
       | that's what we have to use a work.
       | 
       | I make requests with it, have things organized in collections,
       | and use a variable for JWT handling but that's as fancy as I've
       | gotten and I know these tools have a lot more depth than I'm
       | using.
        
       | jonotime wrote:
       | Bruno is great. I'm in the process of moving my team to it. Cli,
       | gui, human readable files. They are hitting all the right points.
       | And it's open source so I don't care if they close up later down
       | the line. It can always be forked like insomnium. I do admit it
       | is rough around the edges (bugs and a bunch of missing features)
       | but there is a lot of momentum right now and devs are working
       | hard. Not long before postman parity.
        
       | tomhallett wrote:
       | Do you plan on supporting SQL queries? My top 2 would be postgres
       | and snowflake.
        
       | naizarak wrote:
       | I just block Postman servers in my hosts file and run an old
       | version that still allows offline/anonymous mode. Works perfectly
       | for my needs.
        
       | Terretta wrote:
       | I've purchased the golden copy of Bruno, not just because this is
       | the right way to do software, but also because of the Bru DSL and
       | git-based sharing "everything as code" model.
       | 
       | Meanwhile, I often dev on iPad Pro with keyboard and trackpad,
       | and instead of Postman, Insomnia, etc., I've enjoyed HTTPBot:
       | 
       | - HTTPBot for iOS:
       | https://apps.apple.com/us/app/httpbot/id1232603544
       | 
       | - HTTPBot for MacOS: https://www.httpbot.io/
       | 
       | HTTPBot even supports postman collections and environments
       | including sync with postman, along with GraphQL, Websockets, and
       | response metrics.
        
       | coldtea wrote:
       | > _Bruno stores your collections directly in a folder on your
       | filesystem. We use a plain text markup language, Bru, to save
       | information about API requests. You can use git or any version
       | control of your choice to collaborate over your API collections.
       | Bruno is offline-only. There are no plans to add cloud-sync to
       | Bruno, ever._
       | 
       | AMEN! I've been annoyed by Insomnia and Postman for a good while
       | for these reasons exactly. My latest client of use, Thunder
       | client VS Code extension also started pulling the same shit, and
       | I'm cutting it off too.
        
       | wadewatts wrote:
       | I tried Bruno not long ago. Have they added request "examples"
       | like Postman has? If those make it into the codebase, I'm
       | switching!
        
       | DustinBrett wrote:
       | Good thing it's open source. Money being involved, I don't have
       | long term hopes for it's openness.
        
       | rgblambda wrote:
       | I looked into using Bruno ever since Postman enshittened the free
       | client. I ended up just installing the version of Postman pre
       | collections being removed and ignoring the prompt to update.
       | 
       | I'm struggling to remember the reason I didn't stick with Bruno.
       | I think it was due to not having an equivalent to Postman's pre-
       | request scripts. If that could be added, I'd certainly give Bruno
       | another try.
       | 
       | Edit: Another comment has mentioned that Bruno now has (or maybe
       | always had and I just didn't see) pre request scripts.
        
       | cliffwarden wrote:
       | If you use and enjoy Bruno, please consider purchasing the
       | "golden" edition that should be released in a few days.
       | https://www.usebruno.com/pricing
        
       | v3ss0n wrote:
       | Check lama2 https://github.com/HexmosTech/Lama2
        
         | tuananh wrote:
         | this looks very good. i'm not sure why it's not more popular
        
       | agrippanux wrote:
       | I needed something like this today - was going to download
       | Insomnia but I happened to check HN.
       | 
       | I tried it out; it's exactly what I wanted. Postman, as echoed in
       | previous comments, has gotten out of control with the upsell and
       | the confusing UI.
       | 
       | I bought the pre-order, seems like a good deal at $9, that's
       | nearly the cost of a latte around here and if this works out I'll
       | get a lot more use out of it than a latte.
        
       | michaelcampbell wrote:
       | The ability to SCM your "scripts" is so nice.
        
       | hk1337 wrote:
       | I am quite partial RapidAPI (previously Paw) but this looks
       | really nice!
        
         | udkl wrote:
         | Paw is the best tool UI wise.
         | 
         | Postman/Bruno/insomnia all suffer from the 'curse' of web
         | design making it's way into professional tools leading to lower
         | information density and higher 'white space'.
         | 
         | I feel so strongly on the matter is why I started a project
         | that is unfortunately in comatose for the past year :
         | https://nokori.surge.sh/
         | 
         | The design isn't there yet, but I'm aiming for a professional
         | looking information dense UI.
        
       | harel wrote:
       | This looks great, and less bloated than Postman but after a few
       | seconds of testing the Linux (Snap) version, I noticed the system
       | file browser opens with what is probably an invalid font (all
       | characters appear as squares).
       | 
       | As well, it would be nice to be able to import my rather large
       | postman collections (an vice versa - provide a collection from
       | Bruno to a Postman user).
       | 
       | Looking forward to when I can switch to this full time.
        
         | cyclotron3k wrote:
         | How does the Bruno snap compare to the Postman snap, in terms
         | of startup times?
         | 
         | I know snaps are slow, but the Postman snap takes forever (~16
         | seconds)
        
           | harel wrote:
           | Postman snap works, and works well. It takes about 5-7
           | seconds to startup. Honestly startup time doesn't matter too
           | much for me. I was there when tapes transitioned to floppies.
           | We learned patience then. But, it also took about 5-7 to see
           | that the file browser is unusable in Bruno so I backed out. I
           | am looking forward to return though when it's fixed and I can
           | create a collection.
        
       | YouAreADork wrote:
       | Is this native or an electron app?
        
       | grounder wrote:
       | The Insomnium (fork of Insomnia) might be a good alternative to
       | compare. https://github.com/ArchGPT/insomnium
        
       | darylteo wrote:
       | This would complete the e2e DX if you could generate SDKs from
       | .bru. Even if it's through a openapi export, I'm sure it will
       | happen eventually.
       | 
       | I'm sure Bruno is still in the 1st phase of enshittification, but
       | at least with local .bru files we can ensure longterm
       | maintainability.
       | 
       | On the other hand, devs are most likely the stingiest individuals
       | on the planet that expect all of their tools to be free. So I
       | respect the team for even releasing it open source in the first
       | place.
        
       | adobrawy wrote:
       | It looks great. Postman always loses me because I usually only
       | need simple requests and I have to go through a big structure. As
       | a result, it only ever edits one request over and over again,
       | which I have configured correctly.
       | 
       | The key thing about Postman is that I was able to configure my
       | own script to refresh the API token. For the internal API, we
       | have a short-lived "access_token" token (~1 minute) and then a
       | long-lived "refresh_token" (~1 day) based on the user's email
       | address and password. When renewing the token, you receive
       | information about its lifespan. You cannot create a new scratch
       | token every time because you will be rate limited. I put all that
       | logic in Postman hook script.
       | 
       | Making these HTTP requests in Curl - due to token refreshing - is
       | painful.
       | 
       | Will Bruno support this use case?
        
         | adolph wrote:
         | curl + shell                 $ eval $(stat -s refresh_token);
         | #set some stat vars, will use change time st_ctime       $ if [
         | $(expr $(date '+%s') - $st_ctime) > 86400 ]; then rm
         | refresh_token; fi       $ if [ ! -f refresh_token ]; then
         | ./get_refresh_token.sh; fi
        
         | majkinetor wrote:
         | See my script here:
         | https://news.ycombinator.com/item?id=39655266
        
       | jonS90 wrote:
       | This makes me think of an alternative that no one seems to be
       | mentioning: http/rest files. They're git-friendly and there are
       | community plugins to operate them from every major IDE.
       | 
       | I believed the standard was created by jetbrains.
       | 
       | https://www.jetbrains.com/help/idea/http-client-in-product-c...
        
         | helloanoop wrote:
         | What sets Bruno apart?
         | 
         | Nice GUI Clients: Postman, Insomnia, Paw (ease of use)
         | 
         | Nice CLI Clients that use plain text files: Jetbrains Http
         | Client, Hurl, Httpie (privacy)
         | 
         | Bruno: The only GUI client with a Nice UI that works on top of
         | plain text files
         | 
         | It's the best of both worlds.
        
           | devsda wrote:
           | > Nice CLI Clients that use plain text files: Jetbrains Http
           | Client, Hurl, Httpie
           | 
           | In what way is Jetbrain's http client a CLI tool ? There's
           | also vscode rest client.
           | 
           | There's no need to shortsell other clients. I think Bruno has
           | sufficient differentiators to standout on its own.
        
             | helloanoop wrote:
             | Sorry if it came across as trying to shortsell. I was just
             | trying to point out the key thing that makes Bruno unique
             | in the ecosystem
        
               | jicea wrote:
               | I'm the maintainer of Hurl and was really graceful to be
               | cited by you!
        
         | wenbert wrote:
         | Oh yes. This one is Jetbrains only but there is also a VScode
         | alternative for this. There is a plugin called httpyac and I
         | believe it also supports the same kind of configuration (???)
         | and variable syntax. It's great not switching to other apps for
         | making an http request.
        
       | helloanoop wrote:
       | Hey everyone, this is Anoop - creator of Bruno. Happy to see
       | Bruno at the top of HN!
       | 
       | I will try to address some common questions in this comment.
       | 
       | > Well based on historical experience with Postman and Insomnia
       | most probably Bruno will go the same way once they get enough
       | users hooked in. Especially once a VC gets into the fold.
       | 
       | We will never take VC funding. We received around 10 inbound
       | reach outs from VCs till date and have denied funding from all of
       | them. We will remain independent and I have written about it in
       | detail here https://www.usebruno.com/blog/bootstrapping
       | 
       | > I didn't stick with Bruno. I think it was due to not having an
       | equivalent to Postman's pre-request scripts.
       | 
       | Bruno has come a long way, we support pre-request scripts and a
       | lot more
       | 
       | > But can it handle oauth2? I had to write a httpie script
       | recently just to test an oauth2 api.
       | 
       | We have released oauth2 support, some rough edges are being
       | polished
       | 
       | > Good thing it's open source. Money being involved, I don't have
       | long term hopes for it's openness.
       | 
       | I understand this is a hard problem. We are fully bootstrapped
       | and independent. We earn money via selling the Golden Edition. We
       | will build more developer products in the long term, and the goal
       | is to make even the golden edition features also open source in
       | the future. I am committed to this cause.
       | 
       | > History goes in circles. New API client appears, adds features,
       | userbase grows. Forced login is added, users are angry and look
       | for alternative. New API client appears.
       | 
       | I have felt this pain. That's one of the reasons why I denied VC
       | funding and chose to remain independent. Having seen 10 years of
       | this cycle, its enough. We don't want to repeat the same saga.
       | 
       | Some good links where I have discussed about opensource, freedom
       | and monetization
       | 
       | - https://www.usebruno.com/blog/bootstrapping
       | 
       | - https://github.com/usebruno/bruno/discussions/269
       | 
       | - https://www.youtube.com/watch?v=7bSMFpbcPiY
       | 
       | We are also working on standardizing and improving the Bru Lang
       | to bring more features in Bruno. See: https://www.brulang.org/
       | 
       | If you'd like to pre-order the golden edition:
       | https://www.usebruno.com/pricing
       | 
       | Thank you for all the love and kind words, HN!
        
         | nitinreddy88 wrote:
         | Thanks for the awesome work. Pre-ordered one to support
        
         | BlueFalconHD wrote:
         | Did you design the logo? I saw it and immediately wanted to buy
         | a license! Great product!
        
           | helloanoop wrote:
           | Logo is from openemoji:
           | https://openmoji.org/library/emoji-1F436/
           | 
           | The real Bruno looks like the logo too :)
           | https://www.usebruno.com/about
        
             | tolien wrote:
             | > The real Bruno looks like the logo too :)
             | https://www.usebruno.com/about
             | 
             | More places need a CJO!
        
               | BlueFalconHD wrote:
               | agreed
        
         | freedomben wrote:
         | Thank you for the information and the commitment to open
         | source. I know the Gold edition isn't open source under an OSI
         | license, but is it source available for people who purchase it?
         | 
         | I'm strongly considering buying it because it's not a
         | subscription, and is open source. As a general rule, I don't
         | buy proprietary software anymore after having been burned in
         | the past. I have no issues with open source software that has
         | proprietary features as a way to make the project sustainable,
         | if they are source available for paying customers, and personal
         | modifications are allowed. Obviously redistributing any of that
         | code, even my own modifications, would not be acceptable and
         | would violate the license.
         | 
         | You mentioned that the goal is to make the Gold edition
         | features open source eventually, so would you consider going
         | source available?
        
         | mr_mitm wrote:
         | I love your approach and your attitude. VC funding seems to
         | poison everything it touches eventually.
        
           | fullspectrumdev wrote:
           | I can't think of very many products or companies that the
           | dread hand of the VC firms actually improved, unless it was
           | founder/exec payouts.
        
         | elephantum wrote:
         | Anoop, first of all: thanks for your efforts, we switched to
         | Bruno from Postman and are quite happy!
         | 
         | And a question: can you share your plans about Vscode
         | extension? It seems to be broken for a while, do you have
         | plans/capacity to revive it?
        
         | ec109685 wrote:
         | Great write up. Curious why you didn't use xml for brulang
         | since I think it would meet the requirements you set forth:
         | - The need for multimaps to represent duplicate keys       -
         | The need for annotations to ascribe additional information
         | about a key-value pair
        
         | boarnoah wrote:
         | Is there anywhere you have a written explanation of some of the
         | features, especially in the paid version (love a good perpetual
         | fallback license!)
         | 
         | Its really not clear what features like:
         | 
         | - "Performance/Load Testing"
         | 
         | - "Load Data from File for Collection Run"
         | 
         | etc..., are since there is no mention of those in either an
         | upcoming features page or documentation.
        
       | sberder wrote:
       | I personally enjoy using restfox, OSS and in browser, it does the
       | job well.
       | 
       | * web app: https://restfox.dev/ * repo:
       | https://github.com/flawiddsouza/Restfox
        
       | snthpy wrote:
       | There is also HTTPie which I've mostly been using for its
       | excellent `http` CLI as a modern replacement for curl.
       | 
       | However I recently learned that it also has web and desktop
       | client apps which are pretty great too!
       | 
       | https://httpie.io/
        
       | okr wrote:
       | While we are at it, is there a nice tool to document (foreign)
       | APIs in a collaborative way? Maybe using Markup Language? Shared
       | via Git? There are so many undocumented APIs there, that i use
       | daily and it is good to put my annotations anywhere.
        
         | israrkhan wrote:
         | I think you may want to look at OpenAPI specs. It is yaml
         | description of API and can be consumed by many tools.
        
           | okr wrote:
           | No, these APIs have mostly generated docs from code, they are
           | just bad, and i want something, that is documented around it.
           | Like a wiki.
        
       | Piisamirotta wrote:
       | Lately Postman suddenly required creating an account to their
       | cloud, to use my five different rest requests from scratchpad. I
       | got annoyed so bad that deleted that piece of cr*p immediately.
       | Never looking back.
       | 
       | Then I found Bruno and fell in love. Thanks for the great work!
        
         | fifilura wrote:
         | We used Postman but it got forbidden in our org for that
         | reason, so no more.
         | 
         | Can't say I really miss it. I personally prefer just using a
         | jupyter notebook for these kinds of tasks. With a custom tool
         | like this it becomes a dead end with the data. Maybe you want
         | to decode it if it is on a binary format. Or you want to plot
         | some basic stats?
        
           | throwaway56391 wrote:
           | I've always preferred Insomnia over Postman. The interface
           | fits me better. But now they also started requiring cloud
           | login, so maybe I'll give Bruno a try if it degrades further
        
             | giovani wrote:
             | Insomnia has an open source fork from before all the cloud
             | bulls*t: https://github.com/ArchGPT/insomnium
        
               | 360MustangScope wrote:
               | But then you have to deal with this annoying "feature" of
               | it deleting your data when it feels like it. Can't tell
               | you how much work I've lost to this bug.
               | 
               | I've just switched to using hurl. Can't be bothered with
               | any of this nonsense with all these GUI programs
        
           | JeremyNT wrote:
           | This has always been my approach really. Use curl for basic
           | stuff, use a full featured repl for deeper exploration. I use
           | Ruby but same idea.
           | 
           | I never quite saw enough value in tools like postman. Usually
           | either what you are doing is trivial enough for vanilla curl
           | or complex enough to warrant reaching for a general purpose
           | programming language.
        
             | ambigious7777 wrote:
             | I can relate to this. I've tried to use Postman and
             | Insomnia in the past, but the UI is pretty complicated with
             | a lot of domain specific terms.
             | 
             | Instead, I just hacked together a small Python library,
             | called all the APIs from there, and pushed to Git. Everyone
             | on my team understands it, I have 100% control, and no
             | cloud needed.
        
           | hn_throwaway_99 wrote:
           | > With a custom tool like this it becomes a dead end with the
           | data.
           | 
           | Not sure if you're referring to Postman or Bruno. The
           | _biggest_ purported benefit of Bruno over Postman is that it
           | saves API request collection files in simple, human-readable
           | text files that are designed to be committed to a source
           | control repo and easily shared, in a way that 's not
           | particularly tied to the Bruno app.
           | 
           | The demo video explains in detail:
           | https://youtu.be/b_ctmKlEOXg
        
             | fifilura wrote:
             | I think it was pretty obvious I was referring to Postman.
             | 
             | I don't have time to look at a 15 minute marketing
             | ("BILLION dollar") video. Is it available in text form?
             | 
             | Does Bruno decode e.g. AVRO or protobuf? Connect to a
             | schema server?
             | 
             | What is considered "human readable"? A JSON file like
             | postman?
             | 
             | Could you elaborate what is the benefit of using this tool
             | compared to a REPL/notebook?
             | 
             | Are you affiliated with Bruno?
        
               | hn_throwaway_99 wrote:
               | You are putting up all these hypotheticals as if all the
               | info isn't easily available on Bruno's site, and then
               | declare "I don't have time to watch a 15 minute video".
               | Hint, youtube 2x and transcripts are your friend.
               | 
               | I didn't know about Bruno until I saw this post on HN.
        
               | fifilura wrote:
               | I dont know how to answer this rant. Other than that you
               | missed a chance to convince me.
        
               | hn_throwaway_99 wrote:
               | Why don't you just rtfm? I'm not interested in
               | "convincing" you, you're free to proudly declare that you
               | refuse to read the docs, and you have an odd definition
               | of "rant".
        
               | fifilura wrote:
               | I am not interested kn reading the manual.
               | 
               | As i pointed out i am content with my solution. The one
               | you were originally replying to. Replying - not in
               | content but threadwise.
        
         | tdudhhu wrote:
         | Insomnia did the same. There was an option to migrate to an
         | offline account but the migration did not work.
         | 
         | So I turned to Bruno. I have been happy with it but there are
         | some strange issues. Sometimes it does not save settings when I
         | press Ctrl s. I still don't know when this happens but I lost
         | some work a couple of times because of this.
        
         | yard2010 wrote:
         | Imagine this cloud enshitification reaches everything else. You
         | need a cloud account to curl or wget, use ffmpeg or simply sed
         | lol
        
           | ParetoOptimal wrote:
           | Emacs, org-mode, and restclient-mode will be there :)
        
           | cedws wrote:
           | Crunch of capitalism. Anything that provides value can be
           | turned into something that generates money. Not many people
           | will walk away from money out of the goodness of their heart.
        
             | hn_throwaway_99 wrote:
             | > Anything that provides value can be turned into something
             | that generates money.
             | 
             | I don't have much of a problem with that. Heck, looks like
             | Bruno has multiple tiers that they sell the product for,
             | and it looks like a very reasonable way to make money.
             | 
             | The problem is this idea of "infinite growth" that modern
             | markets demand, which results in the eventual
             | enshittification of nearly all tech products these days.
             | Postman could have had a very nice, reasonable business,
             | but once they took an obscene amount of funding (nearly
             | half a BILLION dollars, for an API client tool!!!) their
             | fate was sealed. Beyond taking too much money, Postman
             | clearly thought they had a much bigger moat than they
             | actually do.
        
       | BlueFalconHD wrote:
       | Love the cute puppy logo!
        
       | midasz wrote:
       | I've been using it for a month or so at work and I love how
       | simple and fast it is. I need to dig into the advanced features
       | but it's already useful.
        
       | corytheboyd wrote:
       | I've been happy with Postman, but it has gotten ridiculous
       | lately, and I would ditch it in a heartbeat. It's so painfully
       | obvious that postman has turned into a money generating corpse. A
       | good API testing tool isn't rocket science, go forth and eat
       | their lunch :) $9 for a perpetual license is a pretty damn good
       | deal, and a total slap in the face to postman and insomnia, you
       | have my pre-order!
        
       | dphuang2 wrote:
       | This is awesome, the postman collection format is not version-
       | control friendly. I love what Bruno is doing!
        
       | tobase wrote:
       | Switched from Insomnia around one year ago! Really like Bruno :)
        
       | pulkitsh1234 wrote:
       | Can someone help me understand the difference between the .bru
       | file and an OpenAPI spec (Swagger), aren't they representing the
       | same thing with different syntax?
        
         | karpovv-boris wrote:
         | | aren't they representing the same thing with different
         | syntax? - yes, they are
        
         | isbvhodnvemrwvn wrote:
         | Not quite, openapi doesn't interact with variables and can't
         | contain scripts or assertions.
        
       | _kidlike wrote:
       | Why not the .http files that IntelliJ and VSCode have implemented
       | for years now?
       | 
       | This should've become the standard by now.
        
       | 8bitme wrote:
       | It may already be the case but it's not clear. If Bruno supported
       | importing Postman collections it would be an easy decision moving
       | across
        
         | helloanoop wrote:
         | Yes! Bruno supports importing postman collection's
        
       | elric wrote:
       | Good to see some more open source competition in this space.
       | SoapUI had most of those features some 15 years ago. I never
       | understood why Postman became so popular, my current team even
       | throws money at them.
        
         | pjmlp wrote:
         | Basically because of "blah but it is Java!" kind of argument.
         | 
         | SoapUI is great.
        
           | throwaway56391 wrote:
           | And the "SOAP" part of the name is not helping either.
        
             | antxxxx wrote:
             | I found it uncomfortable to watch it making a request once
             | someone pointed out to me that it highlighted letters in
             | the order SOPA when waiting for a response
        
       | pjmlp wrote:
       | I find interesting on how on a startup related forum, anything
       | related with not paying is always celebrated.
        
         | Merik wrote:
         | Generating revenue through the creation of value via innovation
         | is great; using dark ux patterns to extract revenue from a
         | captive user base, not so much.
         | 
         | I think in cases like postman, people don't like when features
         | they previously had used for free suddenly comes with a price
         | tag; rather than innovate and create new value that is worth
         | paying for, some companies are opting to take away features
         | user previously had. Yes, they own/control the software and
         | want to make money , which fine, but they created a
         | dissatisfying user experience as they tried to coercively move
         | users into their cloud offering, wether they wanted to or not,
         | and regardless if it provided user value. After they did that,
         | they shouldn't be surprise a portion of their user base decide
         | to ditch the product and complain about the experience. This is
         | compounded by the fact that they leveraged the contributions of
         | an open source community, and at the same time there are other
         | options freely available that aren't locked into a proprietary
         | cloud login.
        
         | throwaway220033 wrote:
         | Great to see most people are smart enough to not apply same
         | model on all problems in their life.
         | 
         | Productivity tools better to be lean, simple, free & open
         | source in some cases. This is one of those.
         | 
         | Of course, you can keep throwing money at bulky software
         | continuously making things slower and more complicated, just
         | because you never have to worry about money thanks to the VC
         | money. I'm old enough to not buy that this is how startups
         | operate in general though.
        
         | ianberdin wrote:
         | Once CEO asked me: "why are you spending months of your
         | valuable time to create a tool to solve a thing, instead paying
         | $10/month?"
         | 
         | "I know developers never pay, but why?"
        
           | otabdeveloper4 wrote:
           | It's not the money, it's the control you relinquish in the
           | process. The potential costs of the risks involved are much,
           | much greater than $10/month.
        
             | jampekka wrote:
             | This. Proprietary software tends to be very inflexible,
             | often low quality, and difficult to integrate. Fighting
             | with these often causes more work than just doing from
             | scratch or adapting open source code.
        
           | GraemeMeyer wrote:
           | In my case it's because companies would rather waste 6 months
           | of person-hours than get out the credit card
        
           | sdeframond wrote:
           | People who spend months of their time building open source
           | represent a fraction of developers who "never pay".
           | 
           | Why pay when there is a free, open and, if need arises,
           | hackable alternatives ?
           | 
           | Developers do pay when there is value is. See how profitable
           | cloud hosting is!
        
           | antifa wrote:
           | For a lot of people, it's "Why pay $10/ month for something
           | marginally more useful than a folder of bash files?"
        
         | onion2k wrote:
         | Startups are often all about disrupting an industry by lowering
         | the cost of a product. If you can lower it to zero that
         | demonstrates the incumbent businesses are obviously not
         | providing a valuable service that's worth paying for.
        
         | hk__2 wrote:
         | https://www.usebruno.com/pricing
         | 
         | Bruno is not free. It has a free version, but you can pay to
         | have more features.
        
           | darkstar999 wrote:
           | The pay plan is "pre-order", the features don't exist yet.
        
         | mr_mitm wrote:
         | I can only speak for me, but I come here for the hacker news
         | part, not the ycombinator part.
        
         | aniforprez wrote:
         | There is no universe where I see myself paying for postman. It
         | was a bloated, hobbling mess that is now a chundering monster
         | that has to somehow make money to satisfy VCs who invested in a
         | glorified cURL interface and have to stuff it with features to
         | try and entice enterprises. It is everything wrong with
         | software and I welcome any lightweight alternatives
        
         | jpalomaki wrote:
         | I think one issue is that in organizations it takes effort to
         | get new paid software approved and start paying for those. Even
         | if the money is very small. Like engineer that costs $80-150k/y
         | needs couple of tools that cost EUR50-100/y piece.
         | 
         | Usually in organization it is much easier to just increase the
         | spend on already approved vendors. Increase the AWS spend by
         | $50/year? Nobody is going to ask you about it. Or start using
         | some tool that does not involve payments - nobody even knows
         | you are using it.
         | 
         | It would be great if we could change that. A world where
         | independent software developers could make a decent living by
         | selling small quality tools would be a better place.
        
         | mplewis wrote:
         | We have all been fucked over by VC management, especially from
         | YC-funded product bloat and rot. Free means it will not get
         | worse by the developers adding micro transactions and
         | subscriptions.
        
         | Kinrany wrote:
         | "Civilization advances by extending the number of operations we
         | can perform without thinking about them."
         | 
         | Being non-free is a defect that can always be improved, best
         | technology is always free and something you don't need to think
         | to use.
        
       | madduci wrote:
       | Does anyone know if it supports mTLS and maybe multiple
       | certificates per domain?
       | 
       | That would be great
        
       | _RedPanda wrote:
       | looks very good! gonna import my postman collection and give it a
       | try. my collections in postman keep disappearing and reappearing
       | since the required account update happened. glad there is an
       | alternative now!
        
       | nurgasemetey wrote:
       | gRPC support is still paid
        
       | vendetta_neo wrote:
       | can you tell me where its shortcut is ?
        
       | kalyantm wrote:
       | I would love to show this to my colleagues, but sadly we don't
       | talk about bruno (/s)
        
       | swashbuck1r wrote:
       | Bruno has been taking root in our organization (displacing
       | postman).
       | 
       | It was nice to find out about the for-pay golden edition in this
       | thread to support Bruno's efforts. The feature split for free vs
       | Individuals vs Organizations seems well done.
       | 
       | As feedback to the Bruno team:
       | 
       | for Individuals - I most value the gRPC/websocket, then load-
       | testing
       | 
       | for Organizations - My org would most value central license mgmt
        
       | cunningfatalist wrote:
       | We recently adopted Bruno at our company and I'm very happy with
       | it. Versioning your requests with GIT is great, and the client is
       | really nice as well.
        
       | adonese wrote:
       | how does compare to the rather resources-hog postman? My go-to
       | setup for quick apis was curl with fish, as postman was growing
       | it became so bloated i'd rather stick to my curl.
        
       | FpUser wrote:
       | Just discovered.
       | 
       | Perpetual license - nice. I do not buy software subscriptions for
       | my development tools. Only perpetual. In cases like Postman -
       | sure I'll take free version but I was holding off from doing
       | anything serious with it.
       | 
       | All data local only - even nicer.
       | 
       | Ported couple of requests from Postman. All works.
       | 
       | Congrats. Unless I hit some stones during testing I will be
       | buying license when available
       | 
       | Most likely Postman will go to trash bin very soon
        
       | jagtstronaut wrote:
       | I just switched to Bruno because apparently if you have a secret
       | in the "initial values" column it uploads it to their cloud
       | automatically.
       | 
       | It is cool so far. I like that it is more git friendly. I have
       | noticed an increase in request time which is interesting. I
       | assume because postman caches more stuff.
        
       | wapxmas wrote:
       | How come this as an alternative having "Pricing" in the header?
       | Just another Postman. At least in Postman I can do Websocket for
       | free.
        
       | _obviously wrote:
       | We don't talk about bruno
        
       ___________________________________________________________________
       (page generated 2024-03-10 23:01 UTC)