Hurl
ActiveOverview
Hurl is a command-line tool that executes HTTP requests defined in plain text files. It supports chaining requests, capturing values from responses, and querying headers or body content. The tool handles HTML, REST, SOAP, GraphQL, XML, and JSON APIs for data fetching and session testing.
Key Features
- Plain Text Requests - Defines HTTP requests using simple text format with method, URL, headers, and sections for options.
- Request Chaining - Sequences multiple requests where outputs from one can be captured and used in subsequent requests.
- Response Assertions - Verifies status codes, headers, body content, and JSON/XML queries against expected values.
- Variable Capture - Extracts values from response headers or body using regex, JSONPath, or XPath for reuse.
- Form and Multipart Support - Handles query parameters, form data, cookies, and multipart form uploads via dedicated sections.
- JSON Reports - Generates detailed JSON output of requests, responses, and assertions for CI integration.
- Authentication Options - Supports basic auth, bearer tokens, and OAuth flows within request definitions.
Pricing
| Plan | Price | Includes |
|---|---|---|
| Community | Free | Full feature set, open-source, no limits |
Platforms & Requirements
Hurl runs as a single binary on Linux, macOS, and Windows with no external dependencies. Available via package managers like Homebrew, Arch, and Cargo. Minimum requirements are basic; supports x86_64 and ARM64 architectures.
Integrations & Ecosystem
- CI/CD pipelines (GitHub Actions, GitLab CI)
- Shell scripting (bash, PowerShell)
- JSON export for reporting
- Postman/Curl import via text conversion
- Cargo for Rust ecosystem
- Homebrew package manager
Alternatives
| App | Difference |
|---|---|
| httpie | Interactive command-line HTTP client without scripting or chaining capabilities. |
| Postman | GUI-based API client with collections; lacks plain text format and CLI focus. |
| curl | Universal HTTP client; no built-in assertions, chaining, or text file scripting. |
| Restish | CLI REST client with auto-discovery; less emphasis on testing workflows. |
| Insomnia | Desktop API client with GraphQL support; requires GUI, not CLI-native. |
Reputation
Hurl is praised for its readable plain text format, making HTTP testing accessible without GUI tools or complex scripting. Developers appreciate its speed, CI integration, and single-binary distribution. Criticisms include lack of official GUI and limited Windows package distribution compared to Linux/macOS.
Sources (8)
- https://hurl.dev/docs/manual.html
- https://hurl.dev/docs/request.html
- https://www.ayrshare.com/hurl-run-and-test-http-api-requests/
- https://www.lambrospetrou.com/articles/hurl/
- https://man.archlinux.org/man/extra/hurl/hurl.1.en
- https://dev.to/piersroberts/hurl-3bj3
- https://github.com/Orange-OpenSource/hurl
- https://news.ycombinator.com/item?id=33744106