xh is a command-line HTTP client designed for developers who need a convenient way to send requests and inspect responses. Its syntax is inspired by HTTPie, with an emphasis on fast startup, efficient execution and straightforward interaction with web services.
The program supports common HTTP operations, allowing users to specify methods, URLs, request headers, query parameters and data directly on the command line. It presents responses in a readable format, including formatted JSON and colourized output.
xh is useful for exploring APIs, testing endpoints, downloading resources and reproducing HTTP requests during development. Its command syntax is particularly convenient for routine operations that would otherwise require more verbose options.
The software can also translate requests into equivalent curl commands, helping users move between tools or incorporate tested requests into existing scripts.
This is free and open source software.
Key Features
- Provides concise syntax for sending HTTP requests.
- Supports GET, POST, PUT, PATCH, DELETE and custom methods.
- Allows request headers and query parameters to be specified directly.
- Supports JSON bodies with typed values.
- Handles form data and file uploads.
- Formats and colourizes HTTP responses.
- Supports HTTP/2 connections.
- Provides authentication and proxy options.
- Supports persistent sessions and cookies.
- Can download responses directly to files.
- Accepts request data through standard input.
- Translates requests into equivalent curl commands.
- Provides concise help output and additional detailed command documentation.
- Supports custom user-agent headers.
- Offers request and response inspection for API debugging.
- Cross-platform support – runs on Linux, macOS, and Windows.
Website: github.com/ducaale/xh
Support:
Developer: Mohamed Daahir and contributors
License: MIT License
xh is written in Rust. Learn Rust with our recommended free books and free tutorials
Related Software
| Alternatives to curl | |
|---|---|
| Wget2 | Successor of Wget |
| Wget | Makes retrieving large files or mirroring entire web or FTP sites easy |
| aria2 | Multi-protocol and multi-source command-line download utility |
| HTTPie | HTTP client with an intuitive user interface |
| curlie | The power of curl, the ease of use of httpie |
| xh | Fast and friendly tool for sending HTTP requests |
| hurl | Run and test HTTP requests with plain text |
| TerminusDM | User-friendly terminal interface for managing your downloads efficiently |
| getparty | HTTP download manager with multi-parts |
| Restish | CLI for interacting with REST-ish HTTP APIs |
| Posting | Terminal-based HTTP client for developing and testing APIs |
| Slumber | Terminal-based HTTP client |
| Alternatives to Wget | |
|---|---|
| Wget2 | Successor of Wget |
| curl | Tool and library for transferring data with URLs |
| aria2 | Multi-protocol and multi-source command-line download utility |
| HTTPie | HTTP client with an intuitive user interface |
| curlie | The power of curl, the ease of use of httpie |
| xh | Fast and friendly tool for sending HTTP requests |
| hurl | Run and test HTTP requests with plain text |
| TerminusDM | User-friendly terminal interface for managing your downloads efficiently |
| getparty | HTTP download manager with multi-parts |
| Surge | Download manager built in Go |
| aria2tui | TUI client for the aria2c download utility |
| gosh-dl-cli | Modern command-line download manager built on top of the gosh-dl engine |
| Axel | Lightweight CLI download accelerator |
| Command line HTTP clients | |
|---|---|
| HTTPie | Command line interface, cURL-like tool for humans |
| aria2 | Multi-protocol and multi-source command-line download utility |
| Wget2 | Successor of Wget |
| Posting | Terminal-based HTTP client for developing and testing APIs |
| hurl | Run and test HTTP requests with plain text |
| curl | Command line tool for transferring data with URL syntax. Transfer library too |
| axel | Command-line download accelerator |
| xh | Fast and friendly tool for sending HTTP requests |
| Wget | Retrieves content from web servers |
| Restish | CLI for interacting with REST-ish HTTP APIs |
| curlie | The power of curl, the ease of use of httpie |
| Slumber | Terminal-based HTTP client |
| TerminusDM | User-friendly terminal interface for managing your downloads efficiently. |
| getparty | HTTP download manager with multi-parts |
Read our verdict in the software roundup.
LinuxLinks helps you discover the best free and open source software for Linux. Explore our extensive collection of recommended applications, including alternatives to popular proprietary software.We also publish software reviews, Linux tutorials, hardware reviews, free programming books and articles covering the wider open source community. Browse our Linux resources to discover more. Know a useful free and open source Linux application we haven't covered? Suggest a program for inclusion. Has your software been featured on LinuxLinks? Display one of our Featured on LinuxLinks badges on your website or GitHub README. |


Please read our Comment Policy before commenting.