# xh [![Version info](https://img.shields.io/crates/v/xh.svg)](https://crates.io/crates/xh) [![Packaging status](https://repology.org/badge/tiny-repos/xh.svg)](https://repology.org/project/xh/versions) `xh` is a friendly and fast tool for sending HTTP requests. It reimplements as much as possible of [HTTPie's](https://httpie.io/) excellent design, with a focus on improved performance. [![asciicast](/assets/xh-demo.gif)](https://asciinema.org/a/475190) ## Installation ### via cURL (Linux & macOS) ``` curl -sfL https://raw.githubusercontent.com/ducaale/xh/master/install.sh | sh ``` ### via Powershell (Windows) ``` iwr -useb https://raw.githubusercontent.com/ducaale/xh/master/install.ps1 | iex ``` ### via a package manager | OS | Method | Command | |-------------------------------|------------|--------------------------------------------| | Any | Cargo\* | `cargo install xh --locked` | | Any | [Huber] | `huber install xh` | | Android ([Termux]) | pkg | `pkg install xh` | | Android ([Magisk]/[KernelSU]) | MMRL\*\* | `mmrl install xhhttp` | | Alpine Linux | apk\*\*\* | `apk add xh` | | Arch Linux | Pacman | `pacman -S xh` | | Debian & Ubuntu | Apt\*\*\*\*| `sudo apt install xh` | | FreeBSD | FreshPorts | `pkg install xh` | | NetBSD | pkgsrc | `pkgin install xh` | | Linux & macOS | Nixpkgs | `nix-env -iA nixpkgs.xh` | | Linux & macOS | [Flox] | `flox install xh` | | Linux & macOS | Homebrew | `brew install xh` | | Linux & macOS | [Hermit] | `hermit install xh` | | macOS | MacPorts | `sudo port install xh` | | Windows | Scoop | `scoop install xh` | | Windows | Chocolatey | `choco install xh` | | Windows | Winget | `winget add ducaale.xh` | \* Make sure that you have Rust 1.74 or later installed \*\* You will need to install the [MMRL CLI](https://github.com/DerGoogler/MMRL-CLI/releases) \*\*\* The xh package is available in Edge and will be in v3.17+. It is built with native-tls only. \*\*\*\* You will need to add the apt repository from https://apt.cli.rs/ [Huber]: https://github.com/innobead/huber#installing-huber [Magisk]: https://github.com/topjohnwu/Magisk [KernelSU]: https://kernelsu.org [Termux]: https://github.com/termux/termux-app [Flox]: https://flox.dev/docs/ [Hermit]: https://cashapp.github.io/hermit/ ### via pre-built binaries The [release page](https://github.com/ducaale/xh/releases) contains prebuilt binaries for Linux, macOS and Windows. ## Usage ``` Usage: xh [OPTIONS] <[METHOD] URL> [REQUEST_ITEM]... Arguments: <[METHOD] URL> The request URL, preceded by an optional HTTP method [REQUEST_ITEM]... Optional key-value pairs to be included in the request. Options: -j, --json (default) Serialize data items from the command line as a JSON object -f, --form Serialize data items from the command line as form fields --multipart Like --form, but force a multipart/form-data request even without files --raw Pass raw request data without extra processing --pretty