Two years ago

Changelog #0004 — 🖥️ Desktop app

Another week, another changelog! Check out what we shipped 👇

HTTPie for Web & Desktop

HTTPie’s mission is to make APIs simple and intuitive for all those building the tools of our time. And today we got a bit closer to that goal by becoming the first API testing platform with clients for the Web, Desktop, and Terminal.

🖥️ Desktop app released

Now we can finally say that “HTTPie for Web & Desktop” is entirely accurate: the HTTPie for Desktop app is live!

HTTPie for Desktop login
HTTPie for Desktop icon

A dedicated desktop app has been the most frequent request from our beta users. And for a good reason: without it, it’s hard to test APIs running on localhost and behind a firewall. A focused app also serves as a protection against distraction rabbit holes, which are just a bit harder to avoid when working in the browser (as one of our beta users has pointed out).

HTTPie for Desktop

If you’re a beta member, download the app today, and start working locally & without distractions.

✨ Improvements

  • Whenever you feel like making a new API request, you can now use the short & sweet alias for
  • There’s a new 📣 icon in your left-bottom navigation linking to these changelogs.
  • Layout improvements: you can't see that annoying space at the right anymore, and the scroll works much better, among others.

🪲 Fixes

  • You couldn't send a request with an invalid header name, even if that header was disabled. Now you can.
  • The web app was adding some unnecessary headers to outgoing requests. It’s no longer the case.
  • The panels resizing feature we shipped last week had some naughty bugs. They’re gone now.

HTTPie for Terminal

Here’s a summary of this week’s improvements to the development version of HTTPie for Terminal, which will be part of the upcoming v3.0.0 release.

🌲️ Nested JSON support (#1224)

The long-waited nested JSON support just landed! You can now use a new syntax based on the JSON Form notation to rapidly build complex JSON requests.

http --offline --print=B \
  result[status][type]=ok ids:=1 ids:=2
    "result": {
        "status": {
            "type": "ok"
    "ids": [

This new syntax is very expressive, and we believe it will save a lot of keystrokes. See more examples in the unstable docs.

✨ Improvements

— Startup time is now 40% faster. (#1221)

  • Are you authenticating with a bearer token? Great news then, bearer token auth is now a built-in method. You can use -A bearer -a token to send requests with it. (#1216)
  • There are two new operators: ==@ for reading query params from a file; and :@ for reading headers from a file. (#1218)
  • If any of the response headers include Content-Type: text/event-stream, then we'll now auto-stream the response body. (#1226)

🪲 Fixes

  • An XML declaration was auto-added to the beginning of each formatted XML response, but not anymore. Now you'll only see it if it's already present in the raw response. (#1183)

Happy testing, and see you next week!