mrkeyoor.com_
Wed 16 Sept 05:23 UTC
Dev Toolsevaluationupdated 25 Aug 2026

cli review

HTTPie CLI is a terminal HTTP client built for people who inspect and send API requests by hand. Its `http` and `https` commands turn headers, JSON fields, forms, files, authentication, sessions, downloads, and formatted responses into readable command lines.

+28stars / 7d
Verdict

Our HTTPie CLI run passed 1,016 of 1,019 tests, but the same environment reported 16 known vulnerabilities, so convenience does not erase the need to review its installed dependency set. HTTPie remains one of the clearest tools for exploratory API calls and readable terminal output. Choose curl for durable automation or broad protocol work, and pin HTTPie carefully while its last release remains 3.2.4 from 2024.

We ran it

Lab card: what happened when we ran cliScreenshot of cli (httpie.io)
Install✓ · 54s88 packages · 96 MB
Build✓ · 9s
Tests✗ · 148s1016 passed · 3 failed · 5 skipped of 1019 (pytest)
Known vulns16(pip-audit)
Repo265 files~19,308 lines of source · 2.1 MB · 15 CI workflows · tests dir

Answers from our run

Does cli build from source?

Dependencies installed in 54 seconds (88 packages), and the build succeeded in 9 seconds. We cloned commit 5b604c3 into a clean Debian container with 3 CPUs and no project-specific setup.

Do cli's tests pass?

Not all of them: 1016 of 1019 passed and 3 failed when we ran the project's own test command (pytest). Some failures need services or credentials a bare container does not have.

Does cli have known vulnerabilities in its dependencies?

pip-audit flagged 16 known advisories in the dependency tree at the time of our run.

Who should not use cli?

Security-sensitive environments that require a clean dependency audit: our source environment reported 16 known vulnerabilities.

What are the alternatives to cli?

curl, xh, Insomnia. Our HTTPie CLI run passed 1,016 of 1,019 tests, but the same environment reported 16 known vulnerabilities, so convenience does not erase the need to review its installed dependency set.

Setup4/5Many install routes and a simple command, with Python dependencies
Docs5/5Detailed syntax, sessions, auth, output, scripting, and plugins
Community3/5Active issue and PR work, but default branch merges have stalled
Maturity4/5Established CLI with broad use, offset by release and audit concerns

Who it’s for

Developers who spend their day probing REST or GraphQL endpoints from a terminal.
Support and operations engineers who want colored headers and formatted JSON without adding filters to every request.
Teams that reuse cookies, headers, and authentication across manual calls through named sessions.
Python users who want an extensible HTTP client with authentication, transport, converter, and formatter plugins.

Who it’s NOT for

Security-sensitive environments that require a clean dependency audit: our source environment reported 16 known vulnerabilities.
Users who need WebSocket support in this CLI today: basic WebSocket support remains an open feature request.
Windows users relying on the Chocolatey package to track releases promptly: an open issue says that package is out of date.
Teams that require recent releases and merged default-branch fixes: release 3.2.4 and the last default-branch push both date to 2024, despite active 2026 pull requests.
Software that needs an embeddable transfer library or many non-HTTP protocols: curl and libcurl cover a much wider protocol surface.

Setup reality

Our Python install finished in 54 seconds with 88 packages and 96 MB on disk; the build passed in 9 seconds. Tests ran for 148 seconds: 1,016 passed, 3 failed, and 5 skipped out of 1,019. Two failures involved Big5 charset detection, and one involved the displayed --pretty invalid-choice message. The audit found 16 known vulnerabilities.

Basic requests need no HTTPie account. Authenticated APIs still need their own tokens, certificates, proxy settings, or session files. Persistent sessions can retain headers, credentials, and cookies, so their configuration directory should be treated as sensitive.

PyPI requires a suitable Python environment, while documented alternatives include system packages for macOS, Windows, Linux, and FreeBSD. Plugin installs add their own dependency and compatibility surface.

One readable command replaces a pile of curl flags

HTTPie turns common request parts into compact shell tokens. A field written as name=John becomes JSON data, while headers, query parameters, files, forms, and authentication use related operators. Responses arrive with syntax highlighting, indentation, status and headers suited to a terminal. That makes it faster to inspect an unfamiliar API than a command whose important result is buried between transfer statistics and an unformatted body. The value is human reading and ad hoc work, not a new HTTP capability.

The tool still covers serious daily tasks. It can send arbitrary methods and headers, upload files, follow redirects, use proxies and certificates, stream responses, resume downloads, and print a request without sending it. Named sessions persist selected headers, authentication, cookies, and other defaults across calls. Plugins can add authentication schemes, transports, converters, and formatters. For an engineer diagnosing a staging endpoint, that combination often reaches the answer before a GUI project has finished opening.

Version 3.2.4 has a two-year merge gap

Release 3.2.4 was published on 2024-11-01, and GitHub reports the default branch was last pushed on 2024-12-17. By 2026-08-25, the repository held 187 open issues and 145 open pull requests. Recent pull requests address certificate fallback, URL-encoded credentials, Windows man-page behavior, Python 3.14 tests, and invalid format-option errors. The issue tracker is active, but that work has not produced a new default-branch push or release visible through GitHub's repository data.

That is different from abandonment. Contributors and users are still discussing bugs and submitting fixes in August 2026. It does mean an installer cannot assume a recent-looking pull request is present in the published package. Windows users have a current report that Chocolatey is out of date, and basic WebSocket support remains a feature request. Teams should evaluate the actual 3.2.4 artifact they plan to deploy, rather than reading an open fix and mentally treating it as shipped.

What happened when we ran it

Our sandbox installed commit 5b604c3 in 54 seconds. The Python environment contained 88 packages and took 96 MB on disk; the source checkout had 265 files and about 19,308 lines. Building the package succeeded in 9 seconds. The repository included a tests directory and 15 CI workflow files, but no Dockerfile. A dependency audit found 16 known vulnerabilities, the largest negative result in this review. The supplied audit count does not state severity or exploitability.

Pytest ran for 148 seconds and exited with code 1. It reported 1,016 passed, 3 failed, and 5 skipped out of 1,019 tests, plus 4 expected failures and 138 warnings. One failure compares the help text for an invalid --pretty choice, where quoting differs. The other 2 involve Big5 charset detection for terminal request and response output. Those named differences are all the log establishes; the tail does not prove whether the container locale, a dependency, or HTTPie itself caused them.

Sixteen audit findings change the install decision

The 16 known vulnerabilities came from the environment produced by our installation, so they belong in the buying decision even though HTTPie's own code may not be the affected component. Dependency scanners can include development and transitive packages, and a count alone does not show severity. A security-conscious team should reproduce the audit against the exact installation method, identify each affected package and path, then decide whether isolation, upgrading, or replacement is appropriate. Ignoring the count because most tests passed would confuse correctness checks with dependency risk.

Installation choice matters here. HTTPie's docs cover PyPI, Homebrew, MacPorts, Chocolatey, several Linux packages, and FreeBSD. System package versions may lag PyPI, while Python environments can resolve different transitive versions. pipx or another isolated application environment keeps HTTPie's packages out of a project's dependency graph. Persistent sessions deserve similar care because saved cookies, authentication, and headers can become credentials on disk. Use restricted file permissions and avoid committing HTTPie configuration with a project.

curl wins automation; HTTPie wins inspection

HTTPie's expressive operators are easiest for a person composing a request at a prompt. They can be awkward inside scripts where shell quoting, version stability, and ubiquitous availability matter more than colored output. curl is installed almost everywhere, supports many more protocols, and has libcurl for embedding. HTTPie's offline mode and explicit output controls help with scripting, but a production job should pin the executable and disable presentation features that could change parsing.

For interactive HTTP and JSON work, the trade remains favorable. The documentation is thorough, examples are close to copyable, and 1,016 passing tests show substantial exercised behavior in our run. The stale published line and dependency audit stop us from recommending an unexamined global install. Put HTTPie in an isolated environment, inspect the 16 findings, and keep curl available for scripts that must survive machines and years.

Alternatives

ProjectWhat it isPick it when
curl gh↗The ubiquitous transfer tool and library with a much wider protocol and option surface.pick this instead when portability, scripting stability, libcurl embedding, or non-HTTP protocols matter most.
xhA Rust HTTP client that intentionally mirrors much of HTTPie's friendly syntax.pick this instead when you want an HTTPie-like command style in a single fast native binary.
Insomnia gh↗A desktop API client for REST, GraphQL, WebSockets, SSE, and gRPC.pick this instead when saved workspaces, a GUI, or protocols beyond HTTP request-response work are central.

What people are saying

  1. [github-trending] stripe/link-cli
  2. [github-trending] aws/agentcore-cli
  3. [github-trending] bbernhard/signal-cli-rest-api
  4. [github-trending] google-gemini/gemini-cli
  5. [github-trending] larksuite/cli
  6. [github-trending] entireio/cli

Sources

  1. HTTPie CLI README
  2. HTTPie CLI documentation
  3. HTTPie installation guide
  4. HTTPie sessions guide
  5. HTTPie 3.2.4 release
  6. Chocolatey package issue
  7. WebSocket support request

More dev tools reviews

noty · forward-implementation-first · breakscale · black · ASC · BrewUI · the whole board →