gitmyhub

cli

Python ★ 38k updated 1y ago

🥧 HTTPie CLI — modern, user-friendly command-line HTTP client for the API era. JSON support, colors, sessions, downloads, plugins & more.

HTTPie is a command-line HTTP client that makes testing APIs and debugging web requests easy with colorized, formatted output and a simple shorthand syntax, a friendlier alternative to curl for interactive API work.

PythonpipHomebrewsetup: easycomplexity 1/5

HTTPie CLI is a command-line HTTP client designed to make sending web requests and interacting with APIs as readable and convenient as possible. The problem it addresses is that the standard tool for this job — curl — works extremely well but produces dense output, requires verbose flags for common operations like JSON, and has a syntax that can be difficult to remember for infrequent users. HTTPie offers a simpler, more expressive alternative that colors and formats responses automatically so you can actually read them in the terminal.

How it works: you invoke the http or https command, specify the HTTP method (GET, POST, PUT, DELETE, etc.), the URL, and any headers or data using a readable shorthand. For example, http PUT example.com/api X-Token:abc name=John sends a PUT request with a custom header and a JSON body without requiring any JSON-formatting flags. HTTPie automatically detects that you want JSON, sets the content type, and pretty-prints the colorized response. It also supports form submissions, file uploads, HTTPS with authentication, proxy routing, persistent sessions (cookies and headers saved between requests), and wget-style file downloads.

You would reach for HTTPie when testing a REST API during development, debugging what a server actually returns, exploring an unfamiliar API endpoint, or writing quick integration checks. It is not primarily a scripting tool — curl is better for automated pipelines — but for interactive API work, HTTPie's readable output saves significant time.

The tech stack is Python, installable via pip or Homebrew. It runs on macOS, Linux, and Windows. It provides http and https commands in the shell and can be extended with plugins.

Where it fits