xh
github.com
What it is
xh is a free command-line tool for sending HTTP requests, with a focus on improved performance. It uses HTTPie's request-item syntax for setting headers, request bodies, and query strings. It supports JSON and form data, multipart requests, raw data, and request bodies read from standard input or a file. Responses can be pretty-printed, limited to headers or body output, and saved or downloaded to a file. Authentication options include basic, bearer, and digest. The README lists HTTP/2 support, while the current Cargo manifest has an optional HTTP/3 feature. The --curl flag translates a request into a curl command. Security options include TLS version selection, certificate verification settings, and client-side certificates. Prebuilt binaries are provided for Linux, macOS, and Windows, with package-manager installation instructions for those systems and Android. xh is distributed under the MIT License and has a free plan priced at free. It can use HTTPie compatibility mode when invoked as http or https, or when XH_HTTPIE_COMPAT_MODE is set. The README notes that some HTTPie features are not implemented, there is no plugin system, and its documentation is worse than HTTPie's.
Spec sheet
- What it does
- xh is a fast command-line HTTP client that reimplements much of HTTPie’s design in Rust.Read 15 Oct 2026 · github.com
- Purpose
- xh is a friendly, fast tool for sending HTTP requests, with a focus on improved performance.Read 7 Oct 2026 · github.com
- Free plan
- YesRead 20 Sep 2026 · github.com
- Integrations
- xh can translate a request into a curl command with its --curl flag.Read 7 Oct 2026 · github.com
- Support
- The GitHub repository provides issues and discussions of the project through its issue tracker.Read 7 Oct 2026 · github.com
- License
- The project is distributed under the MIT License.Read 7 Oct 2026 · github.com
- API and SDKs
- xh is a standalone command-line API client; the project documents no language SDK or embeddable public API.Read 15 Oct 2026 · github.com
- Authentication
- Basic, bearer and digest authentication are supported, along with .netrc credentials.Read 15 Oct 2026 · github.com
- Build requirement
- Building from Cargo requires Rust 1.85 or later.Read 15 Oct 2026 · github.com
- Compatibility
- xh can run in HTTPie compatibility mode when invoked as http or https, or when XH_HTTPIE_COMPAT_MODE is set.Read 7 Oct 2026 · github.com
- Curl conversion
- The --curl option prints an equivalent curl command instead of sending the request.Read 15 Oct 2026 · man.archlinux.org
- Debian availability
- Debian trixie carries xh 0.24.0-1 in its utils section and describes it as an ergonomic HTTPie-inspired frontend focused on performance.Read 15 Oct 2026 · packages.debian.org
- Documentation
- Documentation consists of a README, FAQ, generated/manual pages, examples and a changelog, and the project itself describes its documentation as worse than HTTPie’s.Read 15 Oct 2026 · github.com
- Downloads
- The client can save response bodies to files and resume interrupted downloads.Read 15 Oct 2026 · clis.dev
- Extensibility
- The README states that xh has no plugin system.Read 15 Oct 2026 · github.com
- Form and multipart data
- xh can submit URL-encoded form fields or force multipart/form-data requests, including file uploads.Read 15 Oct 2026 · github.com
- HTTP versions
- The command supports HTTP/1.0, HTTP/1.1, HTTP/2, HTTP/2 prior knowledge and experimental HTTP/3 modes.Read 15 Oct 2026 · github.com
- HTTPie compatibility
- The tool accepts HTTPie-style request-item syntax for headers, query parameters, JSON fields, forms and file uploads.Read 15 Oct 2026 · github.com
- Independent package availability
- Homebrew provides xh 0.26.2 bottles for Apple Silicon, Intel macOS and Linux ARM64 or x86_64.Read 15 Oct 2026 · formulae.brew.sh
- Independent package metadata
- Arch Linux packages xh 0.26.2-1 for x86_64 under the MIT license, with a 3.1 MB package and 9.6 MB installed size.Read 15 Oct 2026 · archlinux.org
- Installation
- The project provides prebuilt binaries for Linux, macOS, and Windows, plus package-manager installation instructions for those and Android.Read 7 Oct 2026 · github.com
- Installation platforms
- Official installation instructions cover Linux, macOS, Windows, Android through Termux or root managers, FreeBSD, NetBSD and multiple package managers.Read 15 Oct 2026 · github.com
- JSON requests
- Command-line data defaults to a JSON object, with literal JSON values supported through the := syntax.Read 15 Oct 2026 · man.archlinux.org
- Licence
- The software is released under the MIT License with permission to use, modify, distribute and sell copies.Read 15 Oct 2026 · github.com
- Limit: header encoding
- The FAQ explains that non-ASCII HTTP header values may display as ISO-8859-1 text with an additional UTF-8 interpretation, and servers may receive the mangled form.Read 15 Oct 2026 · github.com
- Limit: incomplete parity
- The project says that not all HTTPie features are implemented.Read 15 Oct 2026 · github.com
- Limit: maturity
- The README characterizes xh as generally less mature than the older, well-tested HTTPie project.Read 15 Oct 2026 · github.com
- Limit: output determinism
- CLIs.dev notes that output formatting changes between TTY and non-TTY use, so scripts should pin formatting and stdin flags.Read 15 Oct 2026 · clis.dev
- Limit: session secret storage
- CLIs.dev cautions that session files persist cookies and authentication material on disk.Read 15 Oct 2026 · clis.dev
- Limit: structured output
- CLIs.dev reports that xh lacks a dedicated structured-output mode, which limits machine-readable automation.Read 15 Oct 2026 · clis.dev
- Limitations
- The README says not all HTTPie features are implemented, xh has no plugin system, and its documentation is worse than HTTPie's.Read 7 Oct 2026 · github.com
- Maker identity
- The GitHub account identifies the maintainer as Mohamed Daahir and lists London, United Kingdom as his location.Read 15 Oct 2026 · github.com
- Offline construction
- Offline mode builds a request without transmitting it.Read 15 Oct 2026 · clis.dev
- Praise: focused workflow
- CLIs.dev highlights one-binary request construction, response inspection, downloads, sessions and curl translation for shell workflows.Read 15 Oct 2026 · clis.dev
- Praise: portability
- X-CMD lists Windows, macOS, Linux, FreeBSD and Android support as a cross-platform advantage.Read 15 Oct 2026 · x-cmd.com
- Praise: speed
- X-CMD describes xh as significantly faster than HTTPie and reports tests averaging about 30% faster response time.Read 15 Oct 2026 · x-cmd.com
- Project scale
- The public repository shows about 8.1 thousand stars, 149 forks and 35 open issues.Read 15 Oct 2026 · github.com
- Protocols
- The README lists HTTP/2 support, and the current Cargo manifest has an optional HTTP/3 feature.Read 7 Oct 2026 · github.com
- Recent release changes
- Version 0.26.1 added XML pretty-printing and experimental RFC 9421 HTTP message signatures, while version 0.26.2 fixed empty-username authentication and concatenated zstd decoding.Read 15 Oct 2026 · github.com
- Release status
- The latest listed release is version 0.26.2, released July 26, 2026.Read 15 Oct 2026 · github.com
- Request bodies
- It supports JSON and form data, multipart requests, raw data, and bodies read from standard input or a file.Read 7 Oct 2026 · github.com
- Request syntax
- xh uses HTTPie's request-item syntax to set headers, request bodies, and query strings.Read 7 Oct 2026 · github.com
- Response output
- It can pretty-print responses, select headers or body output, and save or download responses to a file.Read 7 Oct 2026 · github.com
- Response presentation
- Responses can be colorized, syntax-highlighted and pretty-printed, with options to show headers, body or metadata separately.Read 15 Oct 2026 · rustutils.com
- Security controls
- Options include TLS version selection, certificate verification configuration, and client-side certificates.Read 7 Oct 2026 · github.com
- Security maintenance
- The changelog records a January 2025 upgrade of ruzstd to address RustSec advisory RUSTSEC-2024-0400 and a July 2024 fix preventing directory traversal in server-supplied filenames.Read 15 Oct 2026 · github.com
- Sessions
- Named session files persist cookies and headers so repeated API calls can reuse state.Read 15 Oct 2026 · clis.dev
- Shell completions
- The program can generate completion scripts for Bash, Elvish, Fish, Nushell, PowerShell and Zsh.Read 15 Oct 2026 · man.archlinux.org
- TLS controls
- xh supports certificate verification controls, custom certificates, TLS-version selection and optional native TLS.Read 15 Oct 2026 · github.com
- Unix sockets
- xh can connect through a Unix-domain socket.Read 15 Oct 2026 · github.com
Plans and prices
Strong points and limits
Strong points
- Supports JSON, form, multipart, and raw request bodies.
- Offers basic, bearer, and digest authentication.
- Can save responses or translate requests to curl.
- Prebuilt binaries cover Linux, macOS, and Windows.
Limits
- Not all HTTPie features are implemented.
- There is no plugin system.
- Project documentation is worse than HTTPie's.
Who it suits
xh suits command-line users who want to construct HTTP requests and inspect or save responses. Its compatibility mode may be useful to users invoking it as http or https.
Verdict
xh offers a broad set of request, response, and authentication options as a free command-line client. Users who depend on HTTPie features or plugins should account for its stated limitations.
Where Specifiction places it
- Learning Record Store Software#5 of 238.2
- Event Lead Capture Software#9 of 278.1
- Exhibitor Management Software#13 of 318.1
- API clients#18 of 388.3