httpie/cli
60.3
Adequate · 26 September 2026
17.1k
lines of production code
Python
primary language
4
measurements over time
What this system is
Features
Add custom Pygments lexers for HTTP, JSON, and metadata output
The HTTPie output module now includes new Pygments lexers for syntax highlighting. The HTTP lexer provides improved contrast for headers and status codes, while the JSON lexer handles cases where non-JSON data precedes the actual JSON body. Additionally, a metadata lexer is introduced to style elapsed time based on speed thresholds (fast, average, slow, very slow).
httpie/output/lexers · high confidence
Add shell completion scripts for Bash and Fish
Users can now enable auto-completion for the \http\ and \https\ commands in Bash and Fish shells. The new \extras/httpie-completion.bash\ and \extras/httpie-completion.fish\ files provide tab-completion for all available options, including the new \--raw\ flag, authentication types, and output formatting styles.
extras · high confidence
Add standalone Linux packaging for single-binary executables
New build infrastructure has been introduced to package HTTPie as self-contained, single-binary executables for Linux. Using PyInstaller, the system now generates standalone \http\ and \httpie\ binaries that bundle all dependencies, ensuring they run without external Python environments. The packaging script also bundles man pages into the resulting \.deb\ and \.rpm\ packages, providing a more complete user experience for Linux users installing via package managers.
extras/packaging · high confidence
Added HTTPie benchmarking infrastructure for performance testing
A new profiling directory has been added to the repository, containing a Python-based benchmarking framework. This includes a main runner script that sets up isolated virtual environments to compare HTTPie's startup and download performance against a baseline (such as the master branch or a fresh clone). The suite uses the \pyperf\ library to measure metrics like startup time and download speeds, allowing developers to quantify performance changes between branches.
extras/profiling · high confidence
Automated man page generation for HTTPie CLI
A new Python script, extras/scripts/generate\_man\_pages.py, has been added to automatically generate man pages for the http, https, and httpie CLI commands. This script parses the CLI definition and options to produce formatted manual pages, ensuring the documentation stays in sync with the command-line interface.
extras/scripts · high confidence
Introduce HTTPie manager CLI for plugin and session management
A new HTTPie manager interface is now available via the \httpie\ command, allowing users to manage plugins and sessions. This includes subcommands for installing, upgrading, and uninstalling HTTPie plugins, as well as upgrading HTTPie sessions to the latest layout. The manager also provides a \--version\ flag and a \--debug\/\--traceback\ flags for debugging. If a user invokes \httpie\ without a subcommand or with an invalid command, they receive a clear error message directing them to use \http\ or \https\ for sending requests.
httpie/manager · high confidence
Introduce Rich-based UI rendering and new color themes
The HTTPie output layer has been refactored to use the Rich library for all terminal rendering, including help messages, progress bars, and status updates. This change introduces a new modular UI package (httpie.output.ui) containing a color palette system that supports 'pie', 'pie-dark', and 'pie-light' themes, along with a generic color system that adapts to the terminal's ANSI capabilities. Users will see improved formatting in help text, more detailed and colorful progress indicators during downloads, and a consistent visual style across the CLI.
httpie/output/ui · high confidence
Introduce new CLI subcommands for sessions, plugins, export-args, and update checks
The \httpie/manager/tasks\ module now exposes four new CLI commands: \sessions\ (for upgrading session files), \plugins\ (for installing, upgrading, and uninstalling plugins), \export-args\ (for exporting arguments as JSON), and \check-updates\ (for checking for new versions). These commands are registered in \\_\init\\_.py\ and implemented in their respective modules, enabling users to manage sessions, plugins, and updates directly through the CLI.
httpie/manager/tasks · high confidence
Introduce plugin architecture for auth, formatters, and transport adapters
The codebase now supports a plugin system that allows third-party extensions for authentication, output formatting, data conversion, and transport adapters. This change introduces base classes for these plugins, a plugin manager to load and manage them via entry points, and registers built-in plugins (Basic, Digest, and Bearer auth; Headers, JSON, XML, and Color formatters) through a central registry. Users can now install and use external plugins to extend HTTPie's capabilities.
httpie/plugins · high confidence
New modular formatter plugin architecture
The output formatters have been refactored into a plugin-based architecture, with dedicated modules for JSON, XML, headers, and colors. Users will see improved JSON formatting with support for leading non-JSON data, prettified XML output, and syntax highlighting for headers and bodies. The system now supports custom color styles via Pygments, with 'auto' mode detecting terminal capabilities for accurate color depth. Header sorting and JSON indentation/sorting are now configurable through format options.
httpie/output/formatters · high confidence
Project configuration and metadata modernized
The project has migrated its build configuration from a minimal \setup.py\ to a more robust \setup.cfg\ and \pyproject.toml\-adjacent structure. This includes defining package metadata, dependencies (such as \requests\, \Pygments\, and \rich\), and entry points in \setup.cfg\, while \setup.py\ is simplified to just call \setuptools.setup()\. Additionally, new configuration files like \.editorconfig\, \pytest.ini\, and \MANIFEST.in\ have been added to standardize code formatting, test execution, and package distribution contents.
(repo-wide) · high confidence
Architecture
Refactored HTTPie's internal architecture and entry points
The codebase has been restructured to improve maintainability and testability. The main entry point is now in \httpie/\_\main\\_.py\, which delegates to \httpie.core.main\. Core logic has been split into dedicated modules: \client.py\ handles request/response collection and session management, \adapters.py\ provides a custom HTTP adapter to preserve multiple headers with the same name, and \context.py\ manages the execution environment. Additionally, internal update warnings are now handled via a daemonized task in \internal/update\_warnings.py\, and legacy session/header formats are supported via migration scripts in \legacy/\. This refactoring isolates concerns, making it easier to test individual components and extend functionality through plugins.
httpie · high confidence
Behavioural changes
Major CLI refactoring and new nested JSON syntax
The CLI argument parsing has been completely refactored into a new modular structure, introducing a dedicated \nested\_json\ module that enables a new bracket-based syntax for constructing nested JSON objects and arrays directly from the command line. This change also brings improved handling of multiple headers with the same name, support for private key passphrases, and a more robust error reporting system for CLI inputs.
httpie/cli · high confidence
Refactored output handling with new stream and processing architecture
The output module has been restructured into a new set of files (models, processing, streams, utils, writer) that introduce a modular stream-based architecture for rendering HTTP responses. This change replaces the previous monolithic output logic with distinct stream classes (RawStream, EncodedStream, PrettyStream) and a plugin-based formatting system, enabling better handling of binary suppression, encoding detection, and prettified output. Users will experience more robust handling of non-UTF8 encodings, improved JSON prefix detection, and consistent streaming behavior for server-sent events and large responses.
httpie/output · high confidence
Updated man pages for HTTPie 3.2.4
The manual pages for the \http\, \https\, and \httpie\ commands have been updated to reflect the current state of the software, including the addition of the \httpie\ CLI for managing plugins and sessions. The \http\ and \https\ man pages now document the full range of supported arguments, such as \--pretty\, \--style\, and \--raw\, ensuring users have access to the latest command-line options and usage examples.
extras/man · high confidence
Test coverage
Added XML test fixtures for invalid and edge-case scenarios; Added test client SSL certificates; Added test fixtures for Unicode, duplicate keys, and session data; Added test utilities for HTTPie's plugin system and mock environment; Comprehensive test suite for HTTPie CLI.
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
This is the PUBLIC form of this artifact. Findings are listed in full, but the details of SECURITY findings — which rule fired, in which file, on which line, and how to fix it — are deliberately withheld, and any secret-scanner results are excluded entirely. Where detail is absent here it was REMOVED FOR PUBLICATION; it is not missing from the analysis. The complete artifact is available from the repository owner.
Score
- CAI 48 → 60 (+11.9)
- Rubric changed (rubric-2026.08.15 → rubric-2026.09.15) — scores are not directly comparable.
Lenses
- Code Health 97 → 94 (-3.2)
- Architecture 94 → 99 (+4.5)
- Maturity 55 → 46 (-9.3)
- Readiness 30 → 72 (+41.7)
- Security 56 → 63 (+7.4)
Resolved (45)
- Coverage not measured — test suite did not build
- Dimension evaluation failed
- High IaC: DS-0029 (extras/packaging/linux/Dockerfile)
- High IaC: DS-0029 (extras/packaging/linux/Dockerfile)
- High IaC: DS-0029 (extras/packaging/linux/Dockerfile)
- High IaC: DS-0029 (extras/packaging/linux/Dockerfile)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- …and 25 more
New (116)
- Dependency hygiene PARTLY measured — Python dependencies read, no exact pin to grade for currency
- Documentation: no installation or build instructions (docs/installation/README.md)
- Dormant codebase
- FixmeComment (httpie/cli/argparser.py)
- FixmeComment (httpie/cli/argparser.py)
- FixmeComment (httpie/downloads.py)
- FixmeComment (httpie/output/formatters/colors.py)
- FixmeComment (tests/test_compress.py)
- FixmeComment (tests/test_json.py)
- FixmeComment (tests/test_sessions.py)
- HTTPieArgumentParser._parse_items (cognitive 18) (httpie/cli/argparser.py)
- HTTPieArgumentParser._process_auth (cognitive 40) (httpie/cli/argparser.py)
- HTTPieArgumentParser._process_auth (cyclomatic 23) (httpie/cli/argparser.py)
- High IaC: DS-0029 (extras/packaging/linux/Dockerfile)
- High IaC: DS-0029 (extras/packaging/linux/Dockerfile)
- High IaC: DS-0029 (extras/packaging/linux/Dockerfile)
- High IaC: DS-0029 (extras/packaging/linux/Dockerfile)
- High IaC: WD-DOCKER-0013 (extras/packaging/linux/Dockerfile)
- High: security finding (details withheld)
- High: security finding (details withheld)
- …and 96 more
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
httpie/cli was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 26 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit 5b604c37c6c67e18e7c3e9aee6c88a8c22b98345 — the exact code this score is about.
- Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-d0929f7ac71f.