I use hurl [1], a text-based HTTP testing tool. It's like the proprietary one that jetbrains ships, but as a CLI tool and can be perfectly integrated into CI. It is based on curl, as the name suggests.
What I was also playing around with is using it as a scripting tool. Comments are made using #, so you can add a shebang to a file, make it executable and use it as a lightweight script for HTTP stuff.
As maintainer of Hurl, I'm very happy that HTTP clients is the new place to be! I'm not able to write a text editor, but a tool relying almost entirely on curl is in my reach...
Again recommend the HTTP client in the Jetbrains IDEs for this. Everything is text based and goes neatly in your repo. You can pull in npm and script against responses and for tests if you like. It’s also constantly updated.
> The JetBrains IDEs don't have an ultimate version, I think you're thinking of VSCode.
This is not true. I installed intellij community, searched through it's plugins for http clients, and Jetbrains' plugin shows up all greyed out with the message "ultimate only".
I understand why/how you use GitHub, but I don't understand linking to an empty repo from a HackerNews post. The product home page would have worked better.
I don't know what the problem is precisely, but I suspect the issue lies somewhere other than the browser's standard HTTP version negotiation.
I think this because, when I was testing Postman, if I set up my web server to support only HTTP/2 in the TLS ALPN, Postman didn't fall back to HTTP/2, it just failed.
If the standard browser negotiation were happening in Postman, I would have expected my setup to force HTTP/2, even if it generally wanted HTTP/1. My guess is on the Postman side, they simply don't support H2 in the ALPN.
I admit, I know nothing about Electron, so maybe there really is some weird limitation. But I think it's more likely Postman just didn't want to write the code to support HTTP/2. Most API users don't care about the transport; but I maintain a web server, and learning this rendered Postman useless for me. For now, it's curl or Insomnia.
Check out bruno[0]. It's decent for what it is, replaced Insomnia when they made some dumb moves a week or so ago and is completely file based though I wish there were ways to make less files. I don't want to check in so much stuff every time I make a change. It's still missing a few features but the dev seems passionate and there's frequent updates
There was some discussion and links on https://hackertimes.com/item?id=37708582 recently - tldr, Insomnia now requires a cloud account and can’t run purely locally.
the ones that aren’t Silicon Valley businesses currently in their “growth” phase will openly let you save off your entire collection of queries as plain text, and will ideally handle storage of this in git for you. After “growth” is “capture” where they turn free users into paid ones.
The number of people who get foaming-at-the-mouth angry over Microsoft because they did this in the 1990s and who also ignore the hundreds of companies doing this as part of the startup playbook is staggering.
I know this is more of an information security oriented tool, but Burp Suite by Portswigger is an amazing HTTP proxy. Over the years, as an information security consultant, I have used it quite a bit when writing my own little web apps to diagnose and debug any issues. It isn't a proper software testing tool in the DevOps sense, but if you are manually debugging and poking at a larger API there isn't a better tool out there IMO.
Why is the license for this GUI tool so different than the license for their command line tool? The source isn’t even in this repository.
There is 0% chance that this will avoid the route that POSTman and Insomnia have paved.
WTF is it about these tools that the creators think will make us tolerate the sudden switch from free to paid? I am dead tired of watching this play out over and over.
> Why is the license for this GUI tool so different than the license for their command line tool? The source isn’t even in this repository.
The desktop app is not ready to be open-sourced yet.
> There is 0% chance that this will avoid the route that POSTman and Insomnia have paved.
HTTPie has been around for 10+ years, and the new desktop product is built around the idea that we can do much better than the incumbents (from a much simpler interface and more pleasant UX to a more aligned set of incentives supporting incognito, free, as well as paying users/companies).
> WTF is it about these tools that the creators think will make us tolerate the sudden switch from free to paid? I am dead tired of watching this play out over and over.
What Postman and Insomnia did is not cool. But that does not mean it’s unavoidable. Even though it complicates development, we’re local-first from the very start. Accounts and sync are optional layers on top of it.
Electron is Flash for the Desktop[1]. It is cheap to implement. It wastes resources, doesn’t integrate natively and is a security problem.
As usual the industry safes money and the customer has to pay for the memory. I’m sick of applications which doesn’t adapt to HiDPI (automatically) and consume 500 MB of memory whereas a C/C++, Rust or even Python with Gtk or Qt will consume about 50 MB.
Aside from that Postman has become unusable because the company behind it want to earn „now“ money. I don’t say HTTPies UI is bad it just not what users want.
We did multi platform apps when we still called them programs. We used some cross platform toolkits with either cross platform UIs that felt out of place everywhere or a layer that hooked to a common subset of the native ones, with maybe an option to go really native. We wrote C or C++, mostly.
Then HTML became that common subset of the UI and the browser JS runtime and rendering engine replaced the cross platform toolkit. Bloated, not optimized for space and time as it could be, etc, but very convenient.
And again no support for websockets all these tools are just basic implementations of what postman was doing at the beginning. Do we have to go through all of the feedback again? Why are you not scoring through the docs and forums of other tools and try to learn from it? I mean you have no moat at least have convenience.
Going slightly off tangent to ask about something.
I often find myself in a situation when testing API to request for "API request and API response", including header, body, etc, the full complete information. This helps to identify any issue with it, and keep the full record for the future reference (it happens a lot that I need some information on the old API behavior weeks later).
There seems to be lack of a single word in English to describe this except the long phrase above. Anyone has good suggestion?
It goes without saying that this is a hard requirement I have for any API client but sadly most ones I tried always lack some information somewhere.
Rather than a general term, though, what you probably want to focus on — especially because you want to "keep a record" — is the common file format used for these: https://en.wikipedia.org/wiki/HAR_(file_format)
(It was created and initially supported by web browsers, but many CLI/GUI dev tools should be capable of emitting HARs as well, often "off to the side" in some logging directory while also presenting separate, pretty info on stdout.)
The problem with HAR file is that it is by definition an archive format, and not design to be human-readable.
For these types of records you typically want to store them in internal documentation system which usually consist of markdown or rich text documents for ease of browsing.
Saving it as an attachment is possible, but it would require whoever that is reading it to download and view it inside a HAR viewer (Chrome), a few extra steps.
> There seems to be lack of a single word in English to describe this except the long phrase above. Anyone has good suggestion?
If you mean the request and response message pair, we call it "exchange" [0].
> It goes without saying that this is a hard requirement I have for any API client but sadly most ones I tried always lack some information somewhere.
Both HTTPie Desktop and HTTPie CLI allow you to see the entire exchange. In the CLI, you can use the --verbose flag [0]. In the desktop app, there’s a “Request” tab.
They both also support previewing the request without sending it. The CLI has --offline [1], and the Desktop has a live preview feature [2].
Thanks for the response. Does the client (desktop app) support exporting the full exchange as txt? I would switch to HTTPie Desktop if this is supported.
We show the request/response in two separate panes, each with a menu offering Copy and Download actions. So it’s possible; it’s just a matter of multiple clicks.
The desktop app also allows you to copy a corresponding HTTPie CLI command, which you can then enrich with --verbose, run in the terminal, and more easily copy the whole exchange output.
Thanks. So it is the same amount of steps as I have for Chrome now.
Please do consider adding a feature to export everything in one shot. It would save people like me a lot of clicks (for a lot of APIs across different environments).
In this case I recommend capturing your whole traffic for an endpoint, e.g. with MITMProxy as you are doing your requests.
Often I test SPAs and do so by turning on MITMProxy with some filtering, using the app in the browser normally and then saving the traffic capture. Later I can even generate API docs from that.
Regarding terminology, I'm also not sure how you'd describe that.
Another day, another HTTP client. Why do we need so many of them? I and my team are thinking about just ditch all of these, and use python + requests/httpx as the client. If need a quick call, just curl/wget.
You probably don't need all of them. But we've created HTTPie Desktop based on the feedback of HTTPie CLI users over the past decade who wanted to have the same comfort on the desktop as they do in the terminal. The feedback we've been receiving from devs actually using has been incredible.
I think OpenAPI is a better choice for this kinda stuff. The API docs are the source code and less lock-in that way. Devs can still use the tools they want.
OpenAPI only describes the endpoints. Ultimately people want examples and to test their endpoints collaboratively rather than just see a description of it with the fields it accepts. Actual use cases and a proper flow of being able to authenticate and use that token to call the other APIs and check the responses is what people seem to want more than a "dumb" curl GUI
One must ask themselves why a REST testing tool has venture capital and needs to be closed source (despite their website proudly claiming "Open source"). I'll pass on installing this onto my computer.
> closed source (despite their website proudly claiming "Open source")
HTTPie CLI has been open-source for a decade. HTTPie Desktop has yet to be open-sourced. We first want to get the product, architecture, and codebase somewhat stable. As the README says, we use the GitHub repo to host releases and issues.
> You gave this exact same answer to me in your Discord a year ago. If nothing sketchy is going on why not just open source the thing?
We appreciate your interest, but we never gave an ETA. I do regret having made the intention public, though.
> At a minimum you should remove the banner at the bottom of the page claiming it's open source.
That’s a good point. As I wrote in another comment below: I’ve now updated the website template not to show the image with the slogan on this page. Thanks for the feedback.
Good on you for altering the page. I very much hope to see the desktop client become open source soon, as I would very much like to use it. Best of luck with the project.
I don't understand; why do you think it is "sketchy" to try to make a living out of software?
(For reference, I work as a software engineer and am also the author of a popular open source project which I give away for free and have put thousands of hours into.)
>I don't understand; why do you think it is "sketchy" to try to make a living out of software?
I don't think the original comment meant that it is sketchy to make a living out of software. I think the issue is the posturing as open source, having a github repo with no code just to attract devs and look open source-y and even sharing it on HackerNews right after the issues with closed source by Postman too. Feels like an "open source alternative", but not really, hence the sketchy accusation.
> I think the issue is the posturing as open source, having a github repo with no code just to attract devs and look open source-y
As the first paragraph in the README says, we use the GitHub repo to host releases and issues.
Having it on GitHub under the same organization as our other projects that already are open-source is convenient for both us and our users — https://github.com/httpie.
> and even sharing it on HackerNews right after the issues with closed source by Postman too. Feels like an "open source alternative", but not really, hence the sketchy accusation.
The person who shared it is not related to HTTPie.
Given the quality of the discourse here, I almost wish they did not! ;-)
Why everyone is getting their knickers in a massive twist because they have an Electron wrapper that they haven't open sourced is mystifying.
I haven't studied the codebase but I highly doubt they are going to have a separate client implementation for the Electron product vs the CLI! They're just trying to create a nice Electron client, in addition to their well-known CLI, and start a business around it aren't they?
We started httpie/desktop as a separate codebase but are working on unifying it with httpie/cli and our cloud to avoid multiple implementations by extracting a shared runtime that will be used everywhere. One of the interesting challenges here is that HTTPie Desktop is written in TypeScript while the rest is in Python.
Thanks, of course, that makes sense. How are you planning on doing it -- use a language like Rust that can easily be called from both and packaged? Or rewrite the CLI in Typescript?
We have a PoC where the runtime is implemented in Python and the Electron and web apps use it through https://pyodide.org/. Still exploring but looks surprisingly viable.
For creating requests the GUI of postman is way over the top. HTTP is so simple, why not just write that directly in a literate format you can checkin to a repo? For actually running the requests though I agree a gui is nice. I actually use dot-http as an embedded tool in a browser extension. They're still alternatives, just not in the style you're used to.
So is email. The simplicity of a protocol has nothing to do with the complexity of the workflow that produces it.
> why not just write that directly in a literate format you can checkin to a repo?
Because nothing I work on in Postman is something I need to check in to a repo. I need to test HTTP requests, and I've never worked with a code base that had raw HTTP requests in it.
> They're still alternatives, just not in the style you're used to.
The "style" is different enough that entire use cases become impossible.
Let's say I want to copy HTTP response headers out of a log in JSON format. In Postman, I can paste JSON (and various other key-value formats) into the headers field, and it automatically parses it for me.
There are a hundred little conveniences like that that require a good GUI.
It would be a little funny that GitHub, a proprietary code hosting platform, suddenly cares that proprietary software uses it to host bug reports or other assets. This isn't the first project I've seen that is nothing more than a README and exists simply for people to file issues. e.g. there is https://github.com/cursive-ide/cursive
With that said, Codeberg has a strict policy of hosting software licensed under an OSI or FSF approved license.[1] They will actually take down repositories that do not follow this guideline.
at this page, https://httpie.io/desktop, there's a logo that says "open sores, open hearted, open minded." it's misleading, then. at least remove that part in the page.
Can you be more clear? Is the Desktop app going to be open-source in the future? If so, what license?
Do you intend to monetize this product? If so, how?
As a side note: I find it strange that you feel the product is not stable enough to share the code, but apparently stable enough to share the product itself.
> Can you be more clear? Is the Desktop app going to be open-source in the future? If so, what license?
Yes, but have no ETA or license choice yet.
> Do you intend to monetize this product? If so, how?
Yes. We strongly believe in a freemium where both free and premium users are happy. We’ll primarily monetize collaboration and enterprise features without cannibalizing free users. In this sense, we’re inspired by companies like GitHub or Figma. And in our case, free also includes users without an account.
> As a side note: I find it strange that you feel the product is not stable enough to share the code, but apparently stable enough to share the product itself.
Running an open-source project well is not easy and takes resources. Building a great product is hard on its own. Our primary goal is to design and build the best API product possible, so we direct all our energy there for now.
They're not "making an API testing client". They're trying to start something called a "business". People do this to try to get enough of this thing called "money", to pay for the costs in their lives and their family's lives.
If they are based in America, they would be calculating at least, say $200k per year per employee, since they need to pay healthcare etc. So multiply that by the number of employees you want in your business, then add all the other costs, and extend over the period you want the funding to cover.
Nice, thanks for sharing your wisdom. And still insane they need that much money, we all have examples here of businesses that succeeded without having to raise millions of dollars
Ok, but I guess httpie are raising money in an environment where investors are wanting to invest a lot of money, and they thought "why not, it will raise lots of exciting possibilities for the business". So I'm still not getting why there's so much criticism from people in this thread. You'd probably have done the same in their situation.
Yeah, but normally taking money from investors means they want growth and a return on their investment which often skews business decisions to get quick money at some point. This often leads to an enshittified product.
It seems unrealistic to make millions of dollars in short time in return for a simple product that already exists in many variants even for free. So people believe the product will suffer which makes the users suffer.
> Yeah, but normally taking money from investors [...] often skews business decisions [...] This often leads to an enshittified product.
Wow, I'm glad we've got you here to point out that the startup model doesn't work!
I don't understand why this thread on HTTPie has led to so much low quality teenagerish anti-commercial rhetoric; this is far below normal HN standards.
I reacted snarkily because you appeared to be giving a one-sentence criticism of the entire model of startup investment. Doesn't that seem much too large a topic, and too well-established an aspect of modern economies, to dismiss in such a shallow manner?
Is it greedy to accept large amounts of money that an investor offers you? It had never occurred to me to think of it that way. I think of it as being fortunate to be in a position where someone says "I'll give you lots of funding to start a software company". That sounds to me like an exciting opportunity that's definitely worth taking, but apparently you think it's greed?
> "I'll give you lots of funding to start a software company
But in this case there was a mildly successful company that didn't seem to need that much money to fulfill their business plan. That is the direction I was aiming at.
So they took more than they needed (greed) but didn't get it for free, but with expectations from investors that might not align with the original companies goals.
My critique went into the direction of taking more money than your plan needs.
They're not "making a REST testing tool". They're trying to start something called a "business". This has been a prominent feature of human society for many centuries. People do it to pay for their lives and their family's lives.
Because they're trying to make a living from software? And why the fuck, exactly, should they not do that? Reread your comment and perhaps you'll see how insufferably entitled, as well as naive, it sounds.
What I was also playing around with is using it as a scripting tool. Comments are made using #, so you can add a shebang to a file, make it executable and use it as a lightweight script for HTTP stuff.
[1]: https://hurl.dev