xh

HTTP client that reimplements HTTPie's syntax with focus on improved performance and speed.

install

xh is an HTTP client that reimplements HTTPie's command-line interface with a focus on performance improvements. It provides a familiar syntax for sending HTTP requests with support for JSON and form data, headers, query parameters, and file uploads. The tool uses HTTPie's request-item syntax where = sets JSON fields, == adds query strings, : manages headers, and @ includes files in multipart requests.

The tool supports advanced HTTP features including authentication (basic, bearer, digest), SSL/TLS configuration, proxy support, session management, and HTTP/2 and HTTP/3 protocols. It can stream responses, follow redirects, and download files with resume capability. xh includes URL shorthand notation where :3000/users resolves to localhost:3000/users, and supports HTTPS-by-default when invoked as xhs.

xh includes a strict HTTPie compatibility mode when invoked as http or https, making it suitable as a drop-in replacement. The tool can output curl command translations and generate shell completions. It's designed for developers, DevOps engineers, and API testers who need a fast, feature-rich HTTP client for testing and debugging web services.

Installation

# via Homebrew
brew install xh
# via Cargo
cargo install xh --locked
# via Apt
sudo apt install xh

xh demonstration

Alternatives & related tools

add a badge to your README

Maintain xh? Show that it's featured on trmn. The badge links back to this page.

Featured on trmn
Markdown
[![Featured on trmn](https://www.trmn.sh/badge/xh.svg)](https://www.trmn.sh/tools/xh?utm_source=badge)
HTML
<a href="https://www.trmn.sh/tools/xh?utm_source=badge"><img src="https://www.trmn.sh/badge/xh.svg" alt="Featured on trmn" height="20"></a>