The workshop · Edition No. 37 · 1 Oct 2026

ducaale/xh

Sends web requests from a terminal in short readable commands, and is the maintained way to keep the habit HTTPie invented.

← The workshopRead the whole edition →

8,100 stars · MIT · v0.26.2 (2026-07-26), confirmed by crates.io · Track this in Scout

Sends web requests from a terminal in short readable commands, and is the maintained way to keep the habit HTTPie invented.

▶Repo detailsthe review · specs · pros & cons · install

What it is

xh is a command-line program, written in Rust, that reimplements most of HTTPie's design with a focus on starting up and running faster. It is one downloaded file with nothing else required.

What it is good for. Anyone who checks a web interface by hand. The specific pain it removes is the shape of a curl command: to send a small piece of JSON you end up with nested quotes, a -H flag for the content type and no colour in the reply. Here the same request is a few words, the JSON is built from key=value pairs, and the answer comes back formatted. Edition 36 found that HTTPie, which invented this style, has taken no new code since 17 December 2024 — twenty-one months — and carries no notice saying so. That makes this the maintained way to keep the habit.

Stars8,100
LicenceMIT
Latestv0.26.2 (2026-07-26), confirmed by crates.io
Good
  • It is a deliberate drop-in. Rename the binary to http or https, or set the XH_HTTPIE_COMPAT_MODE variable, and it runs in HTTPie compatibility mode; the README says the only current difference is that --check-status is off by default. An xhs command is also installed, which defaults to HTTPS so you can leave the scheme off.
  • A plain MIT licence read from /blob/master/LICENSE, unmodified, "Copyright (c) 2021 Mohamed Daahir". Nothing to agree to and no paid version.
  • Small and current: 33 open issues against 4 pull requests, release v0.26.2 of 26 July 2026 — the yearless date on GitHub was confirmed against the Rust package index, which timestamps it 2026-07-26 — and the newest code landed on 23 August 2026.
Watch for
  • The README states it plainly: "Not all of HTTPie's features are implemented." If you rely on HTTPie plugins or on one of its less common flags, check before you switch.
  • The quickest documented install pipes a script from the internet into a shell. A package manager is the safer route and the project publishes packages for apt, pacman, dnf, Homebrew and others.
  • It sends requests and nothing more. It does not record a test, chain one request's answer into the next, or check a result — the three things that turn a manual poke into something a machine can repeat. Edition 36 covered Orange-OpenSource/hurl for exactly that gap.
Similar repositories
  • httpie/cli

    The project that invented this way of writing requests and still the better-known name, with more features and plugins, but its last code landed on 17 December 2024 and nothing on its page says so.

    Track this in Scout
  • rs/curlie

    Takes the other route to the same comfort: it is a thin front end over curl itself, so every curl feature is still there, but its own newest code is from 7 December 2025.

    Track this in Scout
  • Orange-OpenSource/hurl

    Edition 36 covered this: requests written in a plain text file with assertions, which is better for repeatable checks and worse for a quick look.

    Track this in Scout
Install
brew install xh                       # macOS or Linux with Homebrew
cargo install xh --locked             # if Rust is installed
# apt, dnf, pacman and Scoop packages also exist
xh httpbin.org/post name=ada role=engineer
xhs example.com/api/status            # xhs defaults to HTTPS
Screenshots
ducaale/xh: GitHub preview cardducaale/xh: Screenshot 1

Get the next edition in your inbox

A dozen repositories, opened and checked. The licence read, the last release dated, and the ones that did not make it named with the reason. It is the half most lists leave out.

No tracking pixels. One click to leave. The archive stays free either way.

We use your address to send the edition and nothing else. Confirm by email, leave in one click. How we handle it.