Hurl is a command line tool that runs HTTP requests defined in plain text format.
Hurl solves the problem of testing and automating HTTP interactions by allowing developers to write requests in a simple, readable text format rather than scripting or using graphical tools. The tool chains multiple requests together, captures values from responses, and evaluates queries using XPath and JSONPath against headers and body content. Built on Rust and powered by libcurl, it combines the speed and reliability of curl with a more accessible syntax layer. The tool supports REST, SOAP, and GraphQL APIs, handles both JSON and XML content, and can test HTML responses. It also includes performance testing capabilities and can generate reports in multiple formats including JUnit, TAP, and HTML for CI/CD integration.
Hurl suits developers and DevOps engineers who want to define HTTP tests and requests in version-controllable text files rather than maintaining separate test scripts or API clients. It works well for integration testing, API validation, and local development workflows. The single-binary distribution with no runtime dependencies makes it straightforward to install and run in any environment, including CI/CD pipelines. Teams already familiar with curl will find the transition natural, as Hurl leverages curl's underlying engine while adding higher-level testing and request-chaining capabilities.
The project receives issues from both core maintainers and external users, indicating adoption beyond the original team without an overwhelming support burden. Maintainers typically respond to new issues and pull requests within a day. Work in the issue tracker centers on enhancements, bug fixes, and tasks marked as open to contribution.