DEV Community

Cover image for What’s new in HTTPie for Terminal 3.2
Jakub Roztocil for HTTPie

Posted on • Edited on • Originally published at httpie.io

What’s new in HTTPie for Terminal 3.2

HTTPie has always been about making interaction with APIs as human-friendly as possible. Part of that is ensuring our apps are ubiquitous and up-to-date. This release of HTTPie for Terminal brings many improvements in all these areas.

Check out what’s new 👇

Summary

🤩 Refined UI Improved user experience and usability.

📖 Man pages HTTPie is finally getting complete manuals available through man httpie, man http, and man https.

📦 Single binary executables download HTTPie as a single binary file and run it without installation.

🌀 Debian releases most recent releases will now be offered also through our custom Apt repo with new releases instantly available for Debian, Ubuntu, etc.

⬆️ Update warnings get notified about new versions as soon as they become available for your system straight in the terminal.

⚖️ Improved persistence for headers multiple headers with the same name are persisted in the sessions.

🪲 Bug fixes multiple headers with the same name are persisted in the sessions.

♥️ Community contributions lots of amazing people who have contributed to this release.

🤩 Refined UI

This release brings various UI and UX improvements. For example, here is HTTPie’s new progress bar:

New Style Progress Bars

Even though our original progress bar implementation was simple and elegant, we’ve decided to adopt the powerful Rich library for various parts of the UI.

By the way, the example above uses the recently-added --style=pie-dark style. We highly recommend making it your default style for the best experience and consistency with HTTPie for Web & Desktop.

📖 Colors & formatting docs →

📖 Man Pages

The long-awaited man pages are here now. You can use man http or man https to have the full man page experience with colors and pager:

$ man http
Enter fullscreen mode Exit fullscreen mode

We have also introduced a shorthand for this operation, http --manual:

$ http --manual
Enter fullscreen mode Exit fullscreen mode

When the man pages are available (installed by your platform’s packager), it will automatically open you the HTTPie’s manual. When they are not, this command will open the regular manual but inside of a pager.

The httpie management command now has a man page as well:

$ man httpie
Enter fullscreen mode Exit fullscreen mode

📖 Help & manual docs →

📦 Single binary executables

For Linux systems, we now offer single binary executables which you can download and start using without installation. The new asset named http now included in every release of HTTPie on GitHub is all you need:

$ https -do http_standalone github.com/httpie/httpie/releases/download/3.2.1/http
Enter fullscreen mode Exit fullscreen mode
$ chmod +x ./http_standalone
Enter fullscreen mode Exit fullscreen mode
$ ./http_standalone --version
Enter fullscreen mode Exit fullscreen mode

📖 Single binary installation docs →

🌀 Debian releases

We now host our own Debian Apt repository to provide instant updates with new features to users of Debian, Ubuntu, and other derived distros:

$ curl -SsL https://packages.httpie.io/deb/KEY.gpg | apt-key add -
$ curl -SsL -o /etc/apt/sources.list.d/httpie.list https://packages.httpie.io/deb/httpie.list
$ apt update
$ apt install httpie
Enter fullscreen mode Exit fullscreen mode

📖 Debian & Ubuntu installation docs →

⬆️ Update warnings

HTTPie for Terminal is now part of a broader platform, and we iterate quickly and deliver new features frequently. To keep existing users up-to-date, this version adds a gentle new warning:

$ http pie.dev/get
http: info: A new HTTPie release (3.3.0) is available.
To see how you can update, please visit https://httpie.io/docs/cli/pypi

HTTP/1.1 200 OK
Content-Encoding: gzip
Content-Type: application/json

{
    "args": {},
    "headers": {
        "Accept": "*/*",
        "Accept-Encoding": "gzip",
        "Cdn-Loop": "cloudflare",
    },
    "url": "http://pie.dev/get"
}

Enter fullscreen mode Exit fullscreen mode

You can also check the latest release by manually running check-updates:

$ httpie cli check-updates
Enter fullscreen mode Exit fullscreen mode

📖 Update warning docs →

⚖️ Improved persistence for headers

Multiple headers with the same name are now correctly persisted inside sessions. E.g.:

$ http --session test pie.dev/headers X-Foo:bar X-Foo:baz
Enter fullscreen mode Exit fullscreen mode
$ http --session test pie.dev/headers
Enter fullscreen mode Exit fullscreen mode

For upgrading your old sessions, you can use httpie cli sessions upgrade:

$ httpie cli sessions upgrade pie.dev test
Enter fullscreen mode Exit fullscreen mode

To upgrade all named sessions in one go, you can try httpie cli sessions upgrade-all.

$ httpie cli sessions upgrade-all
Enter fullscreen mode Exit fullscreen mode

📖 Session upgrade docs →

✨ Other improvements

Moved httpie plugins * command to the new httpie cli plugins namespace. This provides a more scalable namespacing of the management subcommands. The original httpie plugins * commands are now hidden aliases.

🪲 Bug fixes

  • Removed the redundant addition of Content-Length: 0 header to body-less OPTIONS requests.
  • The thread observing standard input to provide a warning when no data arrives is now properly terminated when HTTPie itself exists.

🐙 Full changelog →

♥️ Community contributions

Last but not least, we’d like to thank the amazing people who’ve contributed to this release of HTTPie: Ethan Mills, Jan Verbeek, Mohamed Daahir, Nicklas Ansman Giertz, Oliver Fish, Roberto López López, luzpaz, and zhaohanqing95.

🐙 How to contribute →

Top comments (0)