Repolode
ducaale

ducaale/xh

A friendly, fast command-line HTTP client that reimplements much of HTTPie's syntax with better startup performance.

Open-source alternative to:Postman

Stars
8,139
Forks
151
Open issues
39
Last commit
3 days ago

What is it?

xh is a command-line tool for sending HTTP requests, written in Rust. It reimplements much of HTTPie's request syntax, so developers familiar with HTTPie can use the same key-value style to set headers, JSON bodies, query strings and form fields from the terminal.

Compared with HTTPie, xh focuses on faster startup and ships as a single statically linked binary that is easy to install and move between machines. It also supports HTTP/2, can translate a request into an equivalent curl command with --curl, and offers options for sessions, authentication, proxies, client certificates, redirects and downloads.

xh runs on Linux, macOS and Windows and is available through many package managers. It can also run in HTTPie compatibility mode when invoked as http or https.

Key features

  • 01Concise key-value syntax for headers, JSON bodies, form fields and query strings.
  • 02Supports HTTP/2 and HTTP/3 prior-knowledge requests.
  • 03Can print the equivalent curl command for any request with --curl.
  • 04Supports sessions, basic, bearer and digest authentication, and .netrc credentials.
  • 05Provides output coloring, JSON formatting and file download with resume.

Use cases

  • Testing REST APIs from the terminal during development.
  • Quickly sending ad hoc requests in shell scripts or debugging sessions.
  • Converting a working request into a curl command for sharing or CI use.
  • Downloading files over HTTP with resume support.

Quick start

  1. 1

    Install via Homebrew (Linux & macOS)

    brew install xh
  2. 2

    Send a GET request to a URL

    xh httpbin.org/json

Things to know

  • Not all of HTTPie's features are implemented.
  • There is no plugin system.
  • The project is relatively young compared to HTTPie.

Topics

FAQ

What is xh?
A friendly, fast command-line HTTP client that reimplements much of HTTPie's syntax with better startup performance. xh is a command-line tool for sending HTTP requests, written in Rust. It reimplements much of HTTPie's request syntax, so developers familiar with HTTPie can use the same key-value style to set headers, JSON bodies, query strings and form fields from the terminal.
Is xh free to use? What license does it have?
xh is open source under the MIT license. Check the license terms before using it in commercial products.
Is xh still maintained?
Actively maintained. The last commit to xh was on Oct 18, 2026.
What can I use xh for?
Testing REST APIs from the terminal during development. Quickly sending ad hoc requests in shell scripts or debugging sessions. Converting a working request into a curl command for sharing or CI use. Downloading files over HTTP with resume support.
How do I install xh?
Install via Homebrew (Linux & macOS): brew install xh Send a GET request to a URL: xh httpbin.org/json
Where can I get xh?
The source code and installation instructions are on GitHub: https://github.com/ducaale/xh

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects