CheckOps
Hurl
Hurl is an Apache-2.0 command-line tool, written in Rust on libcurl, that runs and tests HTTP requests defined in plain text files, with captures, assertions and JUnit, TAP, HTML and JSON reports.
Latest public signals
Not refreshed yet. Refresh reads the public site and, when the entry has a GitHub repository, the latest release.
Introduction
Hurl is a command-line tool that runs HTTP requests written in a simple plain-text format. A Hurl file is a list of requests, each followed by optional captures and asserts. You can chain requests, capture values such as a CSRF token or an ID from one response, and use them in the next. The README describes it as versatile enough for both fetching data and testing HTTP sessions.
Hurl is a lightweight binary written in Rust, and its HTTP engine is powered by libcurl. That gives it the protocol support and reliability of curl (HTTP/1.1, HTTP/2 and, depending on the build, HTTP/3, plus proxies and client certificates) while the file format stays readable. Hurl can also export each request as an equivalent curl command for debugging.
For testing, Hurl’s asserts check status codes, headers, cookies and bodies. Queries include JSONPath for JSON, XPath for HTML and XML, regular expressions, byte counts, hashes, durations and SSL certificate attributes. Predicates such as ==, contains, matches, exists and isInteger express the expectation. Because it can parse HTML, Hurl handles form-based web flows as well as REST, SOAP and GraphQL APIs.
In --test mode Hurl runs files as a test suite and prints a summary, and it can run files in parallel. It produces text, JUnit, TAP, HTML and JSON reports, so results show up in CI systems’ test tabs. Variables can be injected from the command line, a file or environment variables, which makes the same files usable across local, staging and production checks.
The project is maintained by Orange’s open-source group, has about 19,300 GitHub stars and released version 8.1.0 on 28 October 2026. It is distributed through package managers for Linux, macOS and Windows, as well as Docker and npm.
In the quality loop, Hurl fits at the API and integration stages and works well as a lightweight smoke check after deployment. It is a natural choice for teams that want API tests in Git as readable text, without a GUI client or a full programming-language test framework.
The source code is at Orange-OpenSource/hurl on GitHub under the Apache-2.0 licence, with about 19,300 stars; the most recent commit was on 10 November 2026.
Features
- Plain-text format: Requests, captures and asserts in readable
.hurlfiles. - Request chaining: Capture values from responses with JSONPath, XPath, headers or regex and reuse them.
- Rich assertions: Status, headers, cookies, body queries, durations and certificates.
- HTML support: XPath queries make form-based web flows testable.
- GraphQL: Send GraphQL queries with variables.
- Test mode:
--testruns files as a suite with a summary. - Parallel runs: Execute many files concurrently.
- Reports: Text, JUnit, TAP, HTML and JSON reports.
- Variables: Inject values from CLI, files or environment.
- curl export: Print equivalent curl commands for debugging.
Pros
- Readable in code review: Tests are short text files that anyone can follow.
- Fast and portable: A single native binary built on libcurl.
- Free to use: Open source under the Apache-2.0 licence, so the core tool costs nothing to use.
- Actively maintained: The repository had commits as recent as 10 November 2026.
- Community: About 19,300 GitHub stars.
Cons
- Limited logic: No loops or general-purpose scripting; complex flows need another tool.
- Custom format: Teams must learn the Hurl syntax and query language.
- No GUI: Exploration is less convenient than in a desktop API client.
Usage and Links (Example)
A test file:
# login.hurl
POST https://api.example.com/login
{
"email": "user@example.com",
"password": "{{password}}"
}
HTTP 200
[Captures]
token: jsonpath "$.token"
GET https://api.example.com/me
Authorization: Bearer {{token}}
HTTP 200
[Asserts]
jsonpath "$.email" == "user@example.com"
duration < 1000
Run it as a test with a JUnit report:
hurl --test --variable password=$TEST_PASSWORD --report-junit build/hurl.xml login.hurl
Practical tips:
- Keep one Hurl file per user journey and run the whole folder in CI with
--test. - Use
--variables-fileper environment instead of editing URLs. - Add a few Hurl files as post-deploy smoke checks; they run in seconds.
- Use
--verboseor--very-verboseto debug failing requests.
Resources:
Pricing
Hurl is free and open source under the Apache-2.0 licence.
Recommended for?
- Teams that want API tests as readable text in Git.
- Post-deployment smoke checks in CI/CD.
- Developers who like curl but need assertions and chaining.
- Not a fit for complex data-driven logic; use a code-based framework.
Conclusion
Hurl is one of the best tools for simple, reliable HTTP testing from the command line. Its text format is easy to read and review, and libcurl underneath makes it robust.
For teams that want API checks in Git without adopting a full test framework or GUI client, Hurl is a strong default.
On CheckOps, Hurl is filed under the API & contract testing and Integration testing stages. Related tools listed here include HTTPie, Curl, Bruno, Karate, Rest-Assured and Venom. Before choosing, compare them on licence, supported languages and platforms, hosting model, and how well each fits your existing CI pipeline. Facts on this page were checked against the official website, documentation and repository on 11 November 2026; statements the vendor makes about its own product are marked as vendor claims.
Compare
CheckOps pages that put Hurl next to related tools. There is no paid placement on these lists.
Roundups
Alternatives
Other tools on CheckOps that cover similar ground. Open a page, or compare one with Hurl side by side.
HHTTPie🥧 HTTPie CLI — modern, user-friendly command-line HTTP client for the API era.Compare with Hurl
CCurlA command line tool and library for transferring data with URL syntax, supporting DICT, FILE, FTP, FTPS, GOPHER, GOPHERS, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, MQTT, MQTTS,…Compare with Hurl
BBrunoOpensource IDE For Exploring and Testing API's (lightweight alternative to Postman/Insomnia).Compare with Hurl
KKarateTest Automation Made Simple.Compare with Hurl
RRest-AssuredJava DSL for easy testing of REST services.Compare with Hurl
VVenomVenom is an Apache-2.0 CLI from OVHcloud for writing and running integration tests as YAML test suites, with executors for HTTP, gRPC, SQL, Kafka, SSH, SMTP, Redis, shell commands and more.Compare with Hurl