Alternatives to xh
Send HTTP requests from a concise terminal interface. The listings below can replace it for an important use case. Each note says what changes if you switch.
The original
xh
Send HTTP requests from a concise terminal interface.
Replacements
Listings that take over the same core job as xh.
HTTPie
Human-friendly command line HTTP client with colourised output.
HTTPie is the original tool xh mirrors, BSD-3-Clause licensed and written in Python, so it starts slower than curl.
curlie
Send HTTP requests with readable syntax built around curl.
curlie offers readable formatted output while keeping all curl options, but requires curl to be installed.
curl
Command-line tool for transferring data with URLs, supporting dozens of protocols.
curl supports dozens of protocols and is installed almost everywhere, but has a verbose option surface and plain output.
Hurl
Write HTTP requests and response checks in plain text files.
Hurl stores requests and response assertions in plain text files with chaining, suited to repeatable tests over ad hoc calls.
Restish
A command-line client for REST-style APIs that discovers operations and schemas from OpenAPI documents.
Restish is an MIT-licensed terminal REST client that generates commands from OpenAPI documents and stores auth profiles for API keys, OAuth and mTLS.
Also worth comparing
These listings name xh as their own alternative, so the relationship runs both ways.
ain
A terminal HTTP API client that runs requests defined in plain-text template files.
xh sends requests from a concise command-line syntax with structured data instead of template files, is open source under MIT, and is only partly compatible with HTTPie.
Posting
A keyboard-driven HTTP client with a text interface that runs in the terminal.
xh replaces the interactive interface with concise one-line terminal commands for HTTP requests with structured data, though its HTTPie compatibility is not complete.
Similar software
Related functionality, not a direct replacement.
grpcurl
Call gRPC services from the terminal using JSON input.
Bruno
An API client that saves collections as plain files in a folder, so Git handles the sharing instead of a cloud account.
Hoppscotch
A fast API client that runs in a browser tab, with a self-hostable workspace if you want one.
Yaak
An offline-first API client for REST, GraphQL, gRPC, WebSockets and SSE, with requests stored as files you can commit to git.
ATAC
A Postman-like API client that runs entirely inside the terminal with keyboard-driven navigation.