# httpie/cli

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/httpie-cli).**

37,578 stars · 3,815 forks · Python · bsd-3-clause

## Links

- GitHub: https://github.com/httpie/cli
- Homepage: https://httpie.io
- awesome-repositories: https://awesome-repositories.com/repository/httpie-cli.md

## Topics

`api` `api-client` `api-testing` `cli` `client` `curl` `debugging` `developer-tools` `development` `devops` `http` `http-client` `httpie` `json` `python` `rest` `rest-api` `terminal` `usability` `web`

## Description

This project is a terminal-based HTTP client designed for interacting with web services, debugging APIs, and automating network requests. It provides a specialized command-line interface that simplifies the construction of complex HTTP exchanges, allowing users to test and inspect web services directly from the shell.

The tool distinguishes itself through a declarative syntax engine that translates shorthand command-line tokens into fully formed HTTP requests, including headers, parameters, and body payloads. It features a modular, plugin-based architecture that enables users to extend core functionality with custom authentication schemes, transport protocols, and data formatting logic. Furthermore, it supports persistent session management, allowing for the maintenance of cookies and authentication states across multiple related requests to simulate browser-like interactions.

Beyond its core request capabilities, the tool provides a comprehensive suite of features for handling network traffic, including automated shell scripting with error handling, remote file downloading with progress tracking, and robust proxy support. It also offers advanced configuration options for HTTPS security, response streaming for large payloads, and terminal-aware output formatting that provides syntax-highlighted, human-readable displays.

## Tags

### Development Tools & Productivity

- [Command-Line HTTP Clients](https://awesome-repositories.com/f/development-tools-productivity/command-line-http-clients.md) — Provides a terminal-based interface for constructing, sending, and inspecting web service requests.
- [Declarative Request Builders](https://awesome-repositories.com/f/development-tools-productivity/declarative-request-builders.md) — Translates shorthand tokens into fully formed HTTP requests including headers and payloads.
- [Plugin Architectures](https://awesome-repositories.com/f/development-tools-productivity/plugin-architectures.md) — Uses a modular registration system to allow third-party code to inject custom authentication, transport, and formatting logic.
- [Plugin Managers](https://awesome-repositories.com/f/development-tools-productivity/plugin-managers.md) — Supports installing third-party plugins to extend core command-line functionality. ([source](https://httpie.io/docs/cli/HEAD))
- [Command Line Parsers](https://awesome-repositories.com/f/development-tools-productivity/command-line-parsers.md) — Translates shorthand command-line tokens into structured HTTP request objects through a rule-based transformation engine.
- [Command Line Utilities](https://awesome-repositories.com/f/development-tools-productivity/command-line-utilities.md) — HTTPie manages output behavior when redirecting to files or pipes by automatically disabling formatting and binary suppression, with options to force colorization. ([source](https://httpie.io/docs/cli/HEAD))
- [Persistent Configurations](https://awesome-repositories.com/f/development-tools-productivity/persistent-configurations.md) — Supports defining persistent default command-line arguments and specifying custom directories for plugin installations. ([source](https://httpie.io/docs/cli/HEAD))

### Networking & Communication

- [Terminal API Clients](https://awesome-repositories.com/f/networking-communication/terminal-api-clients.md) — Provides a human-readable interface for interacting with web services that features syntax-highlighted output.
- [HTTP Request Builders](https://awesome-repositories.com/f/networking-communication/http-request-builders.md) — HTTPie allows specifying raw request bodies directly on the command line, useful for generating documentation examples or when piping is inconvenient. ([source](https://httpie.io/docs/cli/HEAD))
- [Request Debuggers](https://awesome-repositories.com/f/networking-communication/request-debuggers.md) — Displays full HTTP request and response exchanges to assist with debugging and documentation. ([source](https://httpie.io/docs/cli/HEAD))
- [Session Management Tools](https://awesome-repositories.com/f/networking-communication/session-management-tools.md) — HTTPie persists cookies across requests using session files, with automatic handling for expiration, server-sent updates, and command-line overrides. ([source](https://httpie.io/docs/cli/HEAD))
- [Network Request Tools](https://awesome-repositories.com/f/networking-communication/network-request-tools.md) — Enables setting specific connection timeouts and ignoring standard input streams to prevent scripts from hanging. ([source](https://httpie.io/docs/cli/HEAD))
- [Session Management](https://awesome-repositories.com/f/networking-communication/session-management.md) — Maintains persistent storage files to track cookies and authentication headers across multiple independent network requests. ([source](https://httpie.io/docs/cli/HEAD))
- [URL Parameter Parsers](https://awesome-repositories.com/f/networking-communication/url-parameter-parsers.md) — HTTPie appends URL parameters to requests using dedicated syntax that automatically handles URL encoding and shell escaping for parameter names and values. ([source](https://httpie.io/docs/cli/HEAD))
- [Automatic Redirect Handlers](https://awesome-repositories.com/f/networking-communication/automatic-redirect-handlers.md) — Follows HTTP redirects automatically to simplify multi-step request workflows. ([source](https://httpie.io/docs/cli/HEAD))
- [Network Streaming](https://awesome-repositories.com/f/networking-communication/network-streaming.md) — Handles large data payloads by processing network chunks in real-time to minimize memory usage during high-volume transfers.
- [Offline Request Generators](https://awesome-repositories.com/f/networking-communication/offline-request-generators.md) — HTTPie constructs and prints HTTP requests to the terminal without sending them over the network for dry runs or documentation generation. ([source](https://httpie.io/docs/cli/HEAD))
- [Request Payloads](https://awesome-repositories.com/f/networking-communication/request-payloads.md) — HTTPie sends file contents as request bodies by referencing file paths, automatically detecting and setting appropriate content-type headers based on extensions. ([source](https://httpie.io/docs/cli/HEAD))
- [HTTP Exchange Inspectors](https://awesome-repositories.com/f/networking-communication/http-exchange-inspectors.md) — Provides full visibility into the request-response chain, including redirects and authentication handshakes. ([source](https://httpie.io/docs/cli/HEAD))
- [HTTP Method Inference Engines](https://awesome-repositories.com/f/networking-communication/http-method-inference-engines.md) — HTTPie determines HTTP methods automatically based on the presence of request data, defaulting to GET for requests without bodies and POST for those with data. ([source](https://httpie.io/docs/cli/HEAD))
- [Proxy Clients](https://awesome-repositories.com/f/networking-communication/proxy-clients.md) — HTTPie routes requests through SOCKS proxies by specifying the protocol and credentials in command-line arguments for individual HTTP or HTTPS requests. ([source](https://httpie.io/docs/cli/HEAD))
- [Request Header Configuration](https://awesome-repositories.com/f/networking-communication/request-header-configuration.md) — Provides flexible configuration for custom request headers via arguments and file inputs. ([source](https://httpie.io/docs/cli/HEAD))
- [Response Streaming Utilities](https://awesome-repositories.com/f/networking-communication/response-streaming-utilities.md) — HTTPie streams HTTP responses in real-time by disabling output buffering, allowing the client to process data chunks as they arrive from the server. ([source](https://httpie.io/docs/cli/HEAD))
- [Resumable Downloads](https://awesome-repositories.com/f/networking-communication/resumable-downloads.md) — Enables resuming interrupted downloads by sending range requests to servers that support partial content. ([source](https://httpie.io/docs/cli/HEAD))
- [Stream Processing Utilities](https://awesome-repositories.com/f/networking-communication/stream-processing-utilities.md) — HTTPie pipes data from standard input, files, or other programs into the request body, with support for streaming, chunked encoding, and compression. ([source](https://httpie.io/docs/cli/HEAD))

### Testing & Quality Assurance

- [API Debugging Tools](https://awesome-repositories.com/f/testing-quality-assurance/api-debugging-tools.md) — Provides tools for testing and inspecting web services directly from the terminal to verify request structures.
- [Network Debugging Tools](https://awesome-repositories.com/f/testing-quality-assurance/network-debugging-tools.md) — Analyzes HTTP traffic through verbose logging and syntax-highlighted output for API testing.

### Security & Cryptography

- [Authentication Strategies](https://awesome-repositories.com/f/security-cryptography/authentication-strategies.md) — Supports authentication via basic, digest, or bearer schemes by providing credentials directly in the command line. ([source](https://httpie.io/docs/cli/HEAD))
- [Extensible Authentication](https://awesome-repositories.com/f/security-cryptography/extensible-authentication.md) — Allows extending authentication capabilities by installing third-party plugins to support custom or proprietary security mechanisms. ([source](https://httpie.io/docs/cli/HEAD))
- [Client Certificate Authentication](https://awesome-repositories.com/f/security-cryptography/client-certificate-authentication.md) — Authenticates with servers using client-side SSL certificates and private keys. ([source](https://httpie.io/docs/cli/HEAD))

### Web Development

- [API Prototyping](https://awesome-repositories.com/f/web-development/api-prototyping.md) — Enables constructing and refining API calls using shorthand syntax to quickly iterate on request payloads and headers.

### DevOps & Infrastructure

- [Network Automation](https://awesome-repositories.com/f/devops-infrastructure/network-automation.md) — Supports executing complex HTTP exchanges within shell scripts to automate data transfers and integrate with remote services.

### Software Engineering & Architecture

- [Extensible Plugin Architectures](https://awesome-repositories.com/f/software-engineering-architecture/extensible-plugin-architectures.md) — Supports third-party extensions for custom authentication, protocols, and data formatting.

### Data & Databases

- [JSON Request Serializers](https://awesome-repositories.com/f/data-databases/json-request-serializers.md) — Serializes request data as JSON by default for standard API interactions. ([source](https://httpie.io/docs/cli/HEAD))
- [Nested JSON Builders](https://awesome-repositories.com/f/data-databases/nested-json-builders.md) — Enables construction of complex, nested JSON structures directly from the command line. ([source](https://httpie.io/docs/cli/HEAD))

### User Interface & Experience

- [Terminal Output Formatters](https://awesome-repositories.com/f/user-interface-experience/terminal-output-formatters.md) — Processes raw HTTP responses through a syntax-highlighting engine that adapts display logic based on terminal capabilities.
