httpie
Send HTTP requests
TLDR
Check updates for http
List installed http plugins
Install/upgrade/uninstall plugins
SYNOPSIS
http [options...] [URL] [key[=value] [key[=value] ...]]
PARAMETERS
-h, --help
Show help and exit.
--version
Display version info.
-v, --verbose
Enable verbose mode; show request/response details.
-q, --quiet
Suppress all output except errors.
-s, --stream
Stream response body continuously.
-p, --print
Specify output: H=req headers, h=resp headers, b=body, B=both.
-j, --json
Send JSON; auto for APIs (Content-Type: application/json).
--form
Use form-encoded data (Content-Type: application/x-www-form-urlencoded).
-f, --files
Upload files with field names.
-a, --auth
Basic auth credentials.
--session=NAME
Load/save session (cookies, auth).
-d, --download
Download to stdout; show progress.
-o, --output
Save response body to file.
-X, --method
Request method (GET, POST, PUT, etc.).
--timeout
Request timeout in seconds.
--headers
Custom headers.
DESCRIPTION
HTTPie (pronounced aitch-tee-tee-pie) is a modern, user-friendly command-line HTTP client designed to make interacting with web services and APIs as simple as possible. It serves as a colorful alternative to tools like curl, offering intuitive syntax, automatic JSON handling, colorized output, and progress bars by default.
Unlike verbose tools, HTTPie lets you send requests with minimal typing: http example.com fetches a page, while http POST pie.dev/post hello=world sends JSON data effortlessly. It supports HTTP methods via flags, authentication, sessions for cookies, file uploads, streaming, and more.
Key strengths include human-readable output (headers, body), plugin ecosystem for extensions like OAuth, and compatibility with proxies and custom headers. Ideal for developers testing endpoints, debugging responses, or scripting API calls. Written in Python, it's cross-platform and extensible.
HTTPie shines in readability: responses show status, size, encoding, and formatted JSON/XML. It auto-detects content types and prettifies output, reducing errors in fast-paced workflows. With over 50k GitHub stars, it's widely adopted for its simplicity over curl's complexity.
CAVEATS
Not installed by default; requires Python/pip. Lacks some low-level curl features like custom SSL. Large responses may overwhelm terminal.
INSTALLATION
pip install httpie
Debian/Ubuntu: sudo apt install httpie
macOS: brew install httpie.
EXAMPLE USAGE
http GET pie.dev/get name=John — JSON request.
http POST pie.dev/post files:=@image.jpg — upload file.
HISTORY
Created by Jakub Roztočil in 2011 as a Python script to simplify curl. Evolved into open-source project with 50k+ stars. Now v3.2+ under httpie-org; supports Python 3.7+, active plugins community.


